专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
用STM32采集了64个点的交流信号,如何计算有效值。。
2019-12-27 18:38
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
20936
35
35
采集的交流信号经过了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 元偷偷看……
加载中...
1
2
3
4
5
6
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
有效值算法,俗称 “均方根”,就是先对这64个数分别求平方,然后平均,再然后开方,结果就是有效值
测频率最好用比较器,采样频率要和测量到的频率同步
相位差可以由有功功率和视在功率计算得出
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
一周热门 更多>