用STM32采集了64个点的交流信号,如何计算有效值。。

2019-12-27 18:38发布

采集的交流信号经过了FFT,出来了64点的幅度,相位,虚部和实部。如何计算交流电流有效值,频率?
现在用了很多计算方法,结果不太好!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
again
1楼-- · 2019-12-29 14:04
采用锁相倍频采样对谐波或者其次频段干扰严重的情况下也是没用的,采用FFT选频外加高精度频谱泄漏校正算法是非常可靠准备的
Clinging
2楼-- · 2019-12-27 23:18
本帖最后由 Clinging 于 2013-7-2 16:54 编辑

有效值算法,俗称 “均方根”,就是先对这64个数分别求平方,然后平均,再然后开方,结果就是有效值

测频率最好用比较器,采样频率要和测量到的频率同步

相位差可以由有功功率和视在功率计算得出
i55x
3楼-- · 2019-12-28 01:52
不理解你做FFT意欲何为?
again
4楼-- · 2019-12-28 04:30
给你个三点校正算法,精度已经满高的!自己慢慢研究吧!这些算法我们都是实际应用于现场的!
clear all;clc  
N=256;
fs=1000;
f=51.1234;
a=1.2345;
ph=30.123;
dc=0.123;
t=0:N-1;
x=a*sin(2*pi*f*t/fs+ph*pi/180)+dc;
xfft=fft(x,N);
y=abs(xfft);
[Y1, k]=max(y(2:N/2));
k=k+1;
z1=xfft(k)-(xfft(k-1)+xfft(k+1))/2;
z2=xfft(k+1)-(xfft(k)+xfft(k+2))/2;
ka=abs(z1)/abs(z2);
r=(2-ka)/(1+ka)
fo=(k-1+r)*fs/N
ao=2*pi*r*(1-r*r)*(abs(z1))/(N*sin(r*pi))
pho=(angle(z1)-pi*r)*180/pi+90

MATLAB输出结果,精度自己看
fo =

  51.123401059088216


ao =

   1.234499850166726


pho =

  30.122670622875049
mon51
5楼-- · 2019-12-28 08:43
均方根用过了,但和万用表对比,误差大,所以就是想用Fft处理后,再用各分量的均方和对比一下。
mon51
6楼-- · 2019-12-28 12:09
 精彩回答 2  元偷偷看……

一周热门 更多>