使用单片机和电流互感器对非正弦周期电流有效值测定

前言:使用单片机加电流互感器测量交流电路的电流,是非常常见的手段。最简单的方案就是直接使用采样电阻,整流滤波,再进入MCU的ADC进行转换,再通过软件滤波得到一个代表着电流大小的数值。对于电流保护功能来说,这是行之有效的方法,只需要测量出电流在保护阈值情况下,MCU计算出数值即可。
对于采集正弦交流电流有效值,也可以使用峰值检波法,通过采集峰值电压的方法,再进行计算,也可得到。
而对于非正弦周期交流电流,想使用电流互感器采集其有效值,变得不那么简单了。

下面介绍一下我使用的一种高速采样的方法来进行有效值测定。

一、首先是理论分析

在这里插入图片描述
这是一个非正弦周期交流电流图形。我们想要得到它的有效值。根据有效值定义:

当交流电通过一个电阻时,如果在一定的周期内产生的热量与某个直流电在相同时间内通过同一电阻产生的热量相等,那么这个直流电的大小就被定义为交流电的有效值。

直流电流I通过电阻R,经过时间t产生的热量为:
在这里插入图片描述
根据微积分的思想,将交流电流进行分割得到了无数时刻的瞬时电流i(t),计算其通过电阻R产生的热量,在进行积分。得到一个周期内产生的热量为:
在这里插入图片描述
离散化处理后得到近似的计算公式:
在这里插入图片描述
根据有效值定义,将二者相等
在这里插入图片描述
换算后得到:
在这里插入图片描述
其实这也就是均方根值,其中

t=N*△t
i(n)代表着第n次采集到的电流值,N是采样的总次数,△t是采样间隔

t可以是信号整周期,也可以选择半周期(因为正负半周对称),N的数量越多则△t越小,精度越高,但是计算量也越大。
在这里插入图片描述

二、接下来是电路上的处理

1、通过电流互感器及采样电阻将电流信号转换为电压信号
在这里插入图片描述

2、经过精密整流电路将交流电压信号整流成直流
3、进行幅值运算放大,选取适当的放大倍数可以大幅减少后续计算量
在这里插入图片描述

4、经缓冲器进入单片机,对信号进行高速采样
在这里插入图片描述
因为高速采样最好使用DSP芯片,但是在产品方案中往往使用的还是单片机,最好使用带DMA的芯片,这样不会过多占用CPU的资源。并且计算过程中需要大量的32位平方运算,以及浮点运算。可以权衡一下精度与计算资源,选择恰当的采样数量。

三、软件处理

经过电路的处理,之前的公式也会相应做出变化
设电流互感器电流比为1:β
流过采样电阻电流i
采样电阻压降v
电路放大倍数为α
采样电阻RL
进入单片机ADC的电压为VADC=α*v

电流有效值:
在这里插入图片描述
其中
在这里插入图片描述

上面说过,如果放大倍数α取值得当,将会大幅度简化计算,如此,将I(n)的系数求平方之后如果恰好等于N,那么所有系数将会约掉,达到了简化后续软件计算的目的。

由于一下子处理N个数的平方和,再进行除法及开方运算,势必会造成程序阻塞,所以如果没有操作系统,裸奔情况下,只能一次处理少量数据,然后利用主循环进行多次数据处理,直至所有数据平方和结束,再进行取平均及开方运算。事实证明,这种方案是可行的。我所使用的芯片是没有DMA的,只能通过TIMER中断进行数据采集。好在产品功能并不复杂,完全可以应付过来。
另外在处理平方计算时,是选择浮点数平方还是32位变量平方,我曾经纠结了挺长时间,最后还是使用TIMER测试,实际测算出32位变量平方的用时略短一些。至于为什么使用32位变量而不是16位(ADC结果是12位,存放在16位单元中),是因为如果变量设计为16位,进行乘法之后,结果仍然是16位,会导致数据溢出。索性用32位变量计算。

四、误差

这种方法的误差主要在数据采集量,采集越多肯定越精确。另外电路中线性元器件的误差,二极管漏电流,运放的失调电压,以及电源误差,都会造成最终的结果存在误差。另外,不推荐使用二极管直接全波整流,使用运放精密整流会大幅降低误差。实际测量后,误差在0.3A左右,至少可以满足我的产品需求。

五、值得注意的地方

1、运放选取时,由于使用LM324,考虑的是廉价及供货比较稳定,产品也不需要太高的精度,但是LM324不是轨到轨运放,所以放大倍数不能太大,否则会导致后续信号失真,尽量使输出信号最大值小于3V(±5V供电下)
2、当被测电流较大时,电流互感器二次侧电流过大,会导致运放输出电流超过额定值,使运放无法正常工作。如果发现小功率时电路工作正常,大功率时工作不正常。
一种方法是增加电流互感器匝数比,将电流互感器二次侧电流降到运放电流输出范围内。
另一种办法就是运放扩流,利用三级管的放大作用,增加运放反馈网络电流。需要注意的是后续电路放大时注意不要超过运放最大输出电压范围。

在这里插入图片描述

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 电流互感器模块STM32是一种具有高精度、高性能的电流检测模块,基于STM32微控制器设计和开发。该模块通过其内部的互感器,能够实时、准确地检测和测量电流信号。 这个模块采用了STM32系列微控制器作为核心控制器,具有高性能、低功耗、丰富的接口和强大的处理能力。它能够根据不同的电流检测需求,灵活配置检测范围和采样频率。同时,它还具备丰富的外设功能,可以与其他设备进行数据通信和控制。 互感器是该模块的核心部件,它能够将通过电流传导介质(如导线)中的电流信号转换成低电平信号。这样就可以将电流信号传递给STM32微控制器进行处理和分析。通过内部的算法和采样技术,可以实时计算电流的大小和方向。 电流互感器模块STM32广泛应用于各种电力系统和电能管理系统中,用于实时监测和检测电流信号。它可以用于电力系统的过流保护、电能质量分析、电能计量等应用场景。同时,它还可以与其他模块或设备集成,实现电流信号的采集、传输和控制。 总之,电流互感器模块STM32是一种功能强大、性能优良的电流检测模块。它具有高精度、高性能和灵活的配置特点,可以广泛应用于各种电力系统和电能管理系统中,为电流检测和分析提供可靠的解决方案。 ### 回答2: 电流互感器模块是一种集成了电流传感器及相关电路的模块,常用于电流测量和监控,主要用于电力系统、电力仪表以及工控领域。 STM32是一种基于ARM Cortex-M内核的32位单片机系列,具有较高的性能和低功耗特性,广泛应用于各种嵌入式系统中。 电流互感器模块 stm32结合了电流互感器和STM32单片机,主要用于测量电流的大小和方向。电流互感器通过电感耦合原理,将大电流传感器的电流转化为小电流,通过STM32单片机进行放大、滤波、采样等处理。 电流互感器模块 stm32具有以下优势: 1. 高精度:通过精确的电流测量电路和高性能的ADC(模数转换器),能够实现对电流的准确测量。 2. 快速响应:STM32单片机具有高速处理能力,能够实时处理电流信号,实现快速响应。 3. 低功耗:STM32单片机采用低功耗设计,能够节省能量并延长电池寿命。 4. 通信接口:通过串口、I2C、SPI等通信接口,可以将电流数据传输给其他设备进行进一步处理和分析。 5. 稳定可靠:采用优质的模数转换器和电感耦合技术,能够实现稳定和可靠的电流测量。 总之,电流互感器模块 stm32是一种功能强大、高精度、低功耗、稳定可靠的电流测量和监控解决方案,广泛应用于各种电力系统和工控场景中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值