什么是真有效值 怎么测量真有效值

电子说

1.3w人已加入

描述

一、什么是真有效值

对于用电设备、其用电量是最为关注的电气参数,因为它与电费直接相关。

我们测量电信号的电流、电压大小时,需要能快速从测试结果中计算得到消耗的电量。

根据焦耳定律,阻值为R的电器在一个周期T内所消耗的电压,也即一个周期的平均功率:

C语言

如果直流测量出电压的均方根值U,以及电流的均方根值I,

所谓均方根值即将瞬间数值平方之后、计算一个周期的平均,再开方,

也被称为真有效值,表示有效产生电量的数值,从而:

C语言

 

C语言

得到真有效值U和I,我们只需要通过简单的乘法运算得到功率:

C语言

因此,在我看来,真有效值是为了便于计算电量而定义的数值。

二、怎么测量真有效值

为什么是真有效值,而不是有效值,难道还有假的有效值?

还真是如此。

从真有效值的定义,为了计算出交流电流、电压的真有效值,

我们需要在一个周期内,等间隔采样,

计算采样得到的数值u(i)平方值,再进行累加,

累加到N个数据之后,再除以总采样次数,得到结果做开方运算,

再进行标定,公式如下:

C语言

其中,k、b是标定系数;

因为,真有效值需要对信号在一个周期内进行等间隔采样,

为了保证精度,需要在20ms周期内采样128个数值。

即每隔156.26us做一次A/D采样,再做平方和加法运算。

计算周期结束之后,还需要计算除法和开方。

在8位单片机的时代,需要非常昂贵的处理器才能做这样复杂的运算。

因而,真有效值的计算只是一些高端仪表才有的功能。

更多的是将信号做绝对值处理并滤成直流之后,计算平均值,

由平均值换算得到假的有效值。

C语言

不含高次谐波的交流市电及其取绝对值之后的波形

C语言

十四年前,在一款马达保护器上使用的精密绝对值电路,用于测平均电流

对于峰值为A的正弦信号u(t),可以表示为:

C语言

其真有效值为:

C语言

由二倍角公式,得到:

C语言

而取绝对值之后,得到的平均值为:

C语言

进一步计算,得到:

C语言

所以,对于标准正弦信号,真有效值和平均值满足以下关系:

C语言

计算得到电流、电压的平均值之后,再乘以1.11即可以得到有效值。

1.11又被称为波形系数。

对于真有效值为220V的交流市电,其峰值为311V,平均值为198V;

当含有高次谐波成份成,通过平均值换算出有效值不再准确。

三、C语言算法推导

当处理器在一个周期内对交流信号进行等间隔采样,比如以156.25us的时间间隔进行采样。

每一次采样得到的数据表示为Ui,一个周期内采样N个点;

因为处理器不能输入负信号,因为我们需要采用下图的电路在交流信号上叠加直流信号,

C语言

采用真有效值算法的信号处理电路

这样,采样得到的信号既有直流分量,也有交流分量,

表示为Ui=U1i+U2i,其中U1i为直流分量,U2i为交流分量;

直流分量在一个周期内的平均值即为瞬间值,交流分量在一个周期内的平均值为0,表示为:

C语言

交流信号的真有效值表示为:

C语言

C语言

C语言

C语言

最终得到:

C语言

可见,对每一次采样的数据,我们只需要计算其和以及平方和即可,

代码如下:

C语言

真有效值计算算法

四、处理器资源情况

采用定时器作为A/D采样的触发源,每隔156.25us触发A/D启动采样。

采用处理器的regular group的采样功能,将三相电流和电压作为一个组,让A/D模块被触发之后,自动完成一组输入的采样。

采用DMA自动将采样得到的结果搬移到缓存。

程序在主循环中判断缓存是否有数据,有数据由调用真有效值处理函数进行处理。

调用math库的开方函数sqrt,大概耗时为几个us,忽略不计。

原文标题:真有效值的定义及其C语言算法推导

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分