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

前言:使用单片机加电流互感器测量交流电路的电流,是非常常见的手段。最简单的方案就是直接使用采样电阻,整流滤波,再进入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

电流有效值:

其中

由于一下子处理N个数的平方和,再进行除法及开方运算,势必会造成程序阻塞,所以如果没有操作系统,裸奔情况下,只能一次处理少量数据,然后利用主循环进行多次数据处理,直至所有数据平方和结束,再进行取平均及开方运算。事实证明,这种方案是可行的。我所使用的芯片是没有DMA的,只能通过TIMER中断进行数据采集。好在产品功能并不复杂,完全可以应付过来。

另外在处理平方计算时,是选择浮点数平方还是32位变量平方,我曾经纠结了挺长时间,最后还是使用TIMER测试,实际测算出32位变量平方的用时略短一些。至于为什么使用32位变量而不是16位(ADC结果是12位,存放在16位单元中),是因为如果变量设计为16位,进行乘法之后,结果仍然是16位,会导致数据溢出。索性用32位变量计算。

四、误差

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

相关推荐
微信1532379424312 小时前
离线语音识别 ( 小语种国家都支持)可定制词组
嵌入式硬件
weixin_5088216513 小时前
1ms软延时,不用定时器,stm32
stm32·单片机·嵌入式硬件
月阳羊14 小时前
【无人机】无人机PX4飞控系统高级软件架构
嵌入式硬件·架构·系统架构·无人机
weixin_5088216515 小时前
stm32 主频216MHz,写个ms延时函数,us延时函数
stm32·单片机·嵌入式硬件
华清远见IT开放实验室15 小时前
【新书上市】《STM32嵌入式系统开发—基于STM32CubeMX和HAL库》,高校教学推荐,STM32入门必读书籍!
stm32·单片机·嵌入式硬件·虚拟仿真·必读书籍·高校教学
智木芯语15 小时前
【58】编程技巧:单片机编程命名规范
单片机·嵌入式硬件·嵌入式·#stm32·#stc8
捷配datasheet15 小时前
OP2177运算放大器:高性能模拟信号处理的关键元件
嵌入式硬件·信号处理
逼子格17 小时前
五种音频器件综合对比——《器件手册--音频器件》
嵌入式硬件·音视频·硬件工程师·硬件测试·电子器件·硬件笔试真题·音频器件
niuTaylor19 小时前
STM32平衡车开发实战教程:从零基础到项目精通
stm32·单片机·嵌入式硬件