找回密码
 立即注册
查看: 77|回复: 4

请教关于交流电流检测算法如何优化

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:108
  • 最近打卡:2025-12-18 09:07:02
已绑定手机

13

主题

25

回帖

139

积分

注册会员

积分
139
发表于 2025-11-29 23:19:22 | 显示全部楼层 |阅读模式
      在调试一个ai8051u程序中,需要检测市电电流作为判断数据。大体的思路如下:
      交流电的周期是20ms,每隔2秒启动一次AD(12位)进行电流数据采集,每次采集时,每隔460μs(加上1次AD转换时间约40μs,时间间隔为500μs)采样一次,连续采样40次,刚好覆盖一个市电周期,然后将40个采样数据计算出有效值,最后用采样数据有效值/4096*VCC计算出电压值再换算成电流值。
      从程序的实际验证来看,基本能达到设计的目的,但也有不足的地方。首先是由于程序运行需要,每隔2秒才进行一次采样,有时检测到的电流值会有跳变,不够平滑。其次是检测阻性负载时,电流值与实际比较接近,但在检测非阻性负载如开关电流时,电流值比实际值高30%左右,并且跳变现象更加明显。
      这里向大家请教一下通过单片机AD采样来检测市电电流时,有什么好的算法或者方法来提高检测精度呢?

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:103
  • 最近打卡:2025-12-18 09:23:56
已绑定手机

7

主题

136

回帖

770

积分

高级会员

DIY玩家

积分
770
发表于 2025-12-1 11:43:42 | 显示全部楼层
具体设计细节
真正的学徒往往怀着大师的心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-12-17 11:28:25

84

主题

7156

回帖

1万

积分

超级版主

积分
15260
发表于 2025-12-1 23:23:09 | 显示全部楼层
你的采样点数不够会造成抖动和误差。
采样交流电电压、电流计算有效值,使用均匀采样,采样N个周期(即20ms*N),点数越多越好,我推荐20KHz,如果采样一个周期就是400点,采样2个周期就是800点,采样4个周期就是1600点,按项目需要来确定。然后计算均方值作为有效值。最好使用PWM自动触发ADC转换,ADC中断读取ADC值,这样采样会无抖动,计算最准确。

可以参考我下面的贴:
交流电压/直流电压ADC测量, 计算有效值 ,送【AiCube-ISP | 调试接口】显示
https://www.stcaimcu.com/thread-2199-1-1.html
(出处: 国芯人工智能技术交流网站)
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:108
  • 最近打卡:2025-12-18 09:07:02
已绑定手机

13

主题

25

回帖

139

积分

注册会员

积分
139
发表于 2025-12-2 15:56:14 | 显示全部楼层
梁*** 发表于 2025-12-1 23:23
你的采样点数不够会造成抖动和误差。
采样交流电电压、电流计算有效值,使用均匀采样,采样N个周期(即20ms ...

谢谢梁工的解答,我借鉴你的例程调试一下。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:587
  • 最近打卡:2025-12-18 12:29:34

9

主题

564

回帖

3811

积分

论坛元老

积分
3811
发表于 2025-12-2 17:47:26 | 显示全部楼层
抽样个数太少,间隔太大是检测不稳的根本原因,需要进一步平滑处理.
非正弦波测量要看用的表是不是真有效值电压表,
开关负载的电流可能不是正弦波,软件按照有效值算法计算出的值,
如果使用非真有效值电压表测量会有不小差异.
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-18 19:01 , Processed in 0.121528 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表