• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

交流有效值计算

这是别人写的代码,请大家帮我分析下面的代码:这个是计算交流电压有效值的,看不懂什么意思?

              for(i=0;i<20;i++)
                {
                 if(Ua_adc_buf[i]>0)
                   sum+=Ua_adc_buf[i];
                  else
                    sum-=Ua_adc_buf[i];
                }          
                EINT;
                tmp = sum*63;
                effe_Ua = tmp>>6;     
                tmp = sum*25;

                para_efe_modbus[2] = tmp>>8;

Ua_adc_buf[i]:为从AD中读取的有符号的10位电压转换值,1ms秒读一次转换值,一共20次。但程序好像没有从零点开始读的

effe_Ua:是不是计算出来的电压有效值啊?但是这个我怎么都看不懂,是咋计算出来的。将绝对值的和*63在除以64,咋就是有效值啊,还有*25在除以256得出来的是什么值啊?

请大侠指点下?谢谢

全部回复(22)
正序查看
倒序查看
2013-01-19 23:02

这个程序和有效值没有半点关系

这个就是计算了一个绝对值的平均而已

0
回复
2013-01-20 09:09
@wangshujun
这个程序和有效值没有半点关系这个就是计算了一个绝对值的平均而已
0
回复
zwsyau
LV.2
4
2013-01-21 21:16
@wangshujun
这个程序和有效值没有半点关系这个就是计算了一个绝对值的平均而已

这个是人家已经量产的产品的程序代码,应该不会有问题的。

0
回复
zwsyau
LV.2
5
2013-01-21 21:23
@zwsyau
这个是人家已经量产的产品的程序代码,应该不会有问题的。

有效值和最大值是1.414倍的关系,然后每个相位的瞬时值和最大值之间是正弦的固定值,在一个周期里所有正弦值和是相等的。所以有效值和瞬时值也可以线性的一个关系。

不知道我这样分析是不是正确的,请大侠指教

 

0
回复
2013-01-22 11:15
@zwsyau
有效值和最大值是1.414倍的关系,然后每个相位的瞬时值和最大值之间是正弦的固定值,在一个周期里所有正弦值和是相等的。所以有效值和瞬时值也可以线性的一个关系。不知道我这样分析是不是正确的,请大侠指教 

有效值是每一个点测量的均方根,这里面哪里有开方和平方的操作了

如果是理想正弦波可以用1.414的关系求,但是你能说现在的输出是理想的吗

0
回复
yunyun909
LV.5
7
2013-01-22 12:05

BU  DONG  A

 

0
回复
zwsyau
LV.2
8
2013-01-22 12:42
@wangshujun
有效值是每一个点测量的均方根,这里面哪里有开方和平方的操作了如果是理想正弦波可以用1.414的关系求,但是你能说现在的输出是理想的吗

均方根是按照有效值的原理定义来的求解的,

0
回复
zwsyau
LV.2
9
2013-01-22 12:44
@wangshujun
有效值是每一个点测量的均方根,这里面哪里有开方和平方的操作了如果是理想正弦波可以用1.414的关系求,但是你能说现在的输出是理想的吗
这个确实是人家成熟产品的源代码,是不太明白所以拿出来讨论下,
0
回复
wangshujun
LV.8
10
2013-01-22 23:29
@zwsyau
这个确实是人家成熟产品的源代码,是不太明白所以拿出来讨论下,

产品中的代码有问题的也不少,但是这个估计设计人员就是做的平均值,市场宣传就变成了有效值。

典型的中国式产品指标。

0
回复
251683652
LV.6
11
2013-01-26 22:37
@yunyun909
BU DONG A 
0
回复
yuzhou.yu
LV.5
12
2013-02-01 14:16
有效值計算很麻煩,我在做東西玩時也想用程序計算,沒成功。后來买了个AD536 集成电路,专门计算有效值的。什么交流波形都可以计算。
0
回复
2013-02-01 14:51
@yuzhou.yu
[图片]有效值計算很麻煩,我在做東西玩時也想用程序計算,沒成功。后來买了个AD536集成电路,专门计算有效值的。什么交流波形都可以计算。
536应该好贵吧。不过现在的的处理器速度惊人了,还带了硬件乘除法器,做这个难度并不大了。
0
回复
2013-02-01 16:27
@lizlk
536应该好贵吧。不过现在的的处理器速度惊人了,还带了硬件乘除法器,做这个难度并不大了。
以后的逆变器就配一台电脑专门用来计算和实现各种功能与对话就行了
0
回复
wangshujun
LV.8
15
2013-02-02 10:00
@斌520
[图片]以后的逆变器就配一台电脑专门用来计算和实现各种功能与对话就行了
不需要现在的32位的arm低端的不到10块钱,用来发pwm,顺便计算有效值运算速度也绰绰有余
0
回复
2013-02-02 15:21
@wangshujun
不需要现在的32位的arm低端的不到10块钱,用来发pwm,顺便计算有效值运算速度也绰绰有余

有鱼吗,我看是有肉,要做高精度的波型,微秒级的动态检测,毫伏级的稳压效果,人性化的控制界面或直接人机对话,可接受遥控指令,可编程的工作状态,全自动电池监测与最佳管理模式,什么动态宽功率输出适时管理,自动检测多种类电池,多种宽电压自适应匹配输入,什么太阳能电池接入与管理什么并网全兼容等等。。。。请问32位的以ARM能做到不?

0
回复
wangshujun
LV.8
17
2013-02-02 18:51
@斌520
有鱼吗,我看是有肉,要做高精度的波型,微秒级的动态检测,毫伏级的稳压效果,人性化的控制界面或直接人机对话,可接受遥控指令,可编程的工作状态,全自动电池监测与最佳管理模式,什么动态宽功率输出适时管理,自动检测多种类电池,多种宽电压自适应匹配输入,什么太阳能电池接入与管理什么并网全兼容等等。。。。请问32位的以ARM能做到不?

us级的动态检测是没有用的,因为20ms的工频周期,更短的反馈调节意义不大。

mv及的稳压也是没意义的,用于分压的电阻电容批量能获得1%就不错了,再高的精度成本受不了,对于220v的电压来说绝对精度到2v足够了。

宽动态范围和宽电压自适应是由拓扑结构决定的,和使用什么控制关系不大。

至于遥测,遥调,遥控都是很简单的

0
回复
2013-02-02 19:46
@wangshujun
us级的动态检测是没有用的,因为20ms的工频周期,更短的反馈调节意义不大。mv及的稳压也是没意义的,用于分压的电阻电容批量能获得1%就不错了,再高的精度成本受不了,对于220v的电压来说绝对精度到2v足够了。宽动态范围和宽电压自适应是由拓扑结构决定的,和使用什么控制关系不大。至于遥测,遥调,遥控都是很简单的
首先,有没有意义不是由你说了算,再者你理解不了强大处理器的系统处理与管理的简单和便捷性,没有长远的发展眼光和你争论也没有意义
0
回复
gnaijnaoul
LV.6
19
2013-02-02 20:00
@wangshujun
这个程序和有效值没有半点关系这个就是计算了一个绝对值的平均而已

同意楼上的说法!

这程序和有效值没半点关系,只是在某些条件下可以达到那个效果,例如谐波成分比较少的正弦波!如果是纯正弦波,我只需要测得一个周期的峰值值就可以知道有效值了!

如果拿这个程序去测一下方波或畸变的正弦波的有效值看它还准不准!

有效值应该是方均根值!

for(i=0;i<20;i++)
{
sum+=Ua_adc_buf[i]*Ua_adc_buf[i]; //平方求和
}

sum=sum/20;//求平均

rms=sqrt(sum);//开方

0
回复
zwsyau
LV.2
20
2013-02-04 11:59
@gnaijnaoul
同意楼上的说法!这程序和有效值没半点关系,只是在某些条件下可以达到那个效果,例如谐波成分比较少的正弦波!如果是纯正弦波,我只需要测得一个周期的峰值值就可以知道有效值了!如果拿这个程序去测一下方波或畸变的正弦波的有效值看它还准不准!有效值应该是方均根值!for(i=0;i

我后来看了下,这种计算有效值的方法也是一种近似的计算的。而且是正弦波的。因为有效值和平均值存在一个1.1倍的近似关系,所有大致的也可以这样计算有效值。

0
回复
zwsyau
LV.2
21
2013-02-04 12:00
@zwsyau
我后来看了下,这种计算有效值的方法也是一种近似的计算的。而且是正弦波的。因为有效值和平均值存在一个1.1倍的近似关系,所有大致的也可以这样计算有效值。
我计算了下,也是1.1倍的
0
回复
2013-02-04 12:23
@zwsyau
我计算了下,也是1.1倍的
1.141
0
回复
yuzhou.yu
LV.5
23
2013-02-04 13:04
@lizlk
536应该好贵吧。不过现在的的处理器速度惊人了,还带了硬件乘除法器,做这个难度并不大了。
很貴,AD536八九十呢
0
回复