搜索
bottom↓
回复: 39

请教下,如何用单片机测量交流电的功率因数

[复制链接]

出235入8汤圆

发表于 2021-6-29 10:39:45 | 显示全部楼层 |阅读模式
100汤圆
电路比较简单 :交流电压与电流通过互感器输入到MCU的AD口上

目前已测到频率,        方法是:AD ->DMA,一次读100个数据,然后在100个数中,找出一个时间周期。
目前已测到有效电压,方法是:在一个周期内算出峰峰值。
目前已测到电流,       方法是:在一个周期内算出峰峰值。(不确定这个值可以怎么用)

最佳答案

查看完整内容

有同步的电压电流瞬时值就能计算,先计算瞬时功率的平均值,就是有功功率,再把电压电流的有效值分别算出来(按有效值的定义计算,均方根),S=U*I就是视在功率,有功功率除以视在功率得出功率因数,这种方法不管电流谐波多大都能用。峰值受干扰太大数值不可靠,计算相角也不可靠,电流谐波大的情况下根本没法计算相角 ...

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入42汤圆

发表于 2021-6-29 10:39:46 | 显示全部楼层
本帖最后由 lzy888 于 2021-6-30 09:12 编辑

有同步的电压电流瞬时值就能计算,先计算瞬时功率的平均值,就是有功功率,再把电压电流的有效值分别算出来(按有效值的定义计算,均方根),S=U*I就是视在功率,有功功率除以视在功率得出功率因数,这种方法不管电流谐波多大都能用。峰值受干扰太大数值不可靠,计算相角也不可靠,电流谐波大的情况下根本没法计算相角

出1310入193汤圆

发表于 2021-6-29 10:50:22 | 显示全部楼层
功率因数   需要把这个概念搞清楚了  才有思路  

出0入4汤圆

发表于 2021-6-29 10:55:02 来自手机 | 显示全部楼层
电压电流相位差,这个必须要分流器采集或者抗直流互感器采集  不然有些情况不准确的。相位差就是起始波形的相位差啦,也就是0度波形的相位差

出50入4汤圆

发表于 2021-6-29 10:55:05 | 显示全部楼层
这个有谐波,有相位差。

如果你是测单一负载还好。

如果是未知的负载就复杂点了

出235入8汤圆

 楼主| 发表于 2021-6-29 11:02:15 | 显示全部楼层
我看到网上有些讲解,如:计算电压与电流的相位。--------我觉得只有理想状态的话,才能算得出来。不知是否对?
可否帮忙讲解下

出0入54汤圆

发表于 2021-6-29 11:08:26 | 显示全部楼层
如果这些基础你都没有的话,建议使用电表IC来做,以前用过矩力的,设置好后用单片机读出来就可以了。

出235入8汤圆

 楼主| 发表于 2021-6-29 11:11:07 | 显示全部楼层
csformatru 发表于 2021-6-29 10:55
这个有谐波,有相位差。

如果你是测单一负载还好。

我要做的是发电机的控制器,那个负载比较复杂。

出235入8汤圆

 楼主| 发表于 2021-6-29 11:13:42 | 显示全部楼层
lusson 发表于 2021-6-29 11:08
如果这些基础你都没有的话,建议使用电表IC来做,以前用过矩力的,设置好后用单片机读出来就可以了。 ...

图纸有抄了其它厂家的电路,就是一个电压与电流的采集。需要把功率因数,有功功率,无功功率。计算出来。
有什么建议吗?

出20入22汤圆

发表于 2021-6-29 11:17:44 | 显示全部楼层
找到一个周期里面的峰峰值,然后通过时间算角度

出235入8汤圆

 楼主| 发表于 2021-6-29 11:19:56 | 显示全部楼层
gyzzg2030 发表于 2021-6-29 11:17
找到一个周期里面的峰峰值,然后通过时间算角度

这个可以算出来,只通过角度,算出来的功率因素准吗?

出50入58汤圆

发表于 2021-6-29 11:23:35 | 显示全部楼层
坛里之前有人讨论过,帖子找不到了,我把某一楼的内容收藏下来

首先要保证电压和电流必须有时间上的关联性,或者说你采集的100个电压数据和100个电流数据必须是一一对应的,那么接下来:
1、实时电压乘以电流再累加,得到有功功率
2、实时电压乘以超前90度的电流再累加,得到无功功率
3、有功和无功算功率因数

另外有效值用峰峰值算不可取,你算的有效值是用不到的



出235入8汤圆

 楼主| 发表于 2021-6-29 11:40:04 | 显示全部楼层
鲜衣怒马 发表于 2021-6-29 11:23
坛里之前有人讨论过,帖子找不到了,我把某一楼的内容收藏下来

首先要保证电压和电流必须有时间上的关联性 ...

100个电压数据和100个电流-----------------我是用DMA来操作的,理论上关连性比较强。

1、实时电压乘以电流再累加,得到有功功率           ---------------这个可计算一个周期期吧?
2、实时电压乘以超前90度的电流再累加,得到无功功率---------------------------------------------这个是要把电流的相位往前90度,然后计算一个周期?
3、有功和无功算功率因数------

出50入58汤圆

发表于 2021-6-29 11:42:35 | 显示全部楼层
z31com 发表于 2021-6-29 11:13
图纸有抄了其它厂家的电路,就是一个电压与电流的采集。需要把功率因数,有功功率,无功功率。计算出来。 ...

https://www.amobbs.com/forum.php ... F%E7%8E%87%E8%AE%A1
可以看看这个

出50入58汤圆

发表于 2021-6-29 12:01:11 | 显示全部楼层
z31com 发表于 2021-6-29 11:40
100个电压数据和100个电流-----------------我是用DMA来操作的,理论上关连性比较强。

1、实时电压乘以 ...

是的,说的都是一个周期20ms,电流数据超期90度,就是5ms,
如果你每20ms采样100个数据,那么算无功时数据会不够,电流至少要125个数据,前25个就是超前90度的数据,第26个电压和第1个电流相乘,依次类推

出235入8汤圆

 楼主| 发表于 2021-6-29 16:22:23 | 显示全部楼层
鲜衣怒马 发表于 2021-6-29 12:01
是的,说的都是一个周期20ms,电流数据超期90度,就是5ms,
如果你每20ms采样100个数据,那么算无功时数 ...

我的理解是下面:假设正弦波电压的0周期是从,第26开始-------到第125,正好是一个周期(20MS)

有功功率计算是26*26----125*125的乘积,共100个数取平均

电压       1---------25、26-----------------100---------------125
                                      | >                                                  < |
                                      | >                                                  < |
电流       1---------25、26-----------------100---------------125


无功功率计算是26*1----125*100的乘积,共100个数取平均

电压       1---------25、26-----------------100---------------125
                                     />                                                 </
                                 /                                                   /
                         /                                                   /
                    /                                                     /
               />                                                  < /
电流       1---------25、26-----------------100---------------125

出50入58汤圆

发表于 2021-6-29 16:54:53 | 显示全部楼层
z31com 发表于 2021-6-29 16:22
我的理解是下面:假设正弦波电压的0周期是从,第26开始-------到第125,正好是一个周期(20MS)

有功功率 ...

算法是这样,但需要处理的问题还很多,比如电压、电流、功率都是有正负的,信号调理部分是怎么处理负信号的,是电压抬升还是绝对值电路,都跟后面的数据处理有关系

另外,电流超前90度的情况下计算如果无功功率为正代表容性无功,为负代表感性无功

出0入4汤圆

发表于 2021-6-30 10:57:40 | 显示全部楼层
z31com 发表于 2021-6-29 11:13
图纸有抄了其它厂家的电路,就是一个电压与电流的采集。需要把功率因数,有功功率,无功功率。计算出来。 ...

用电表 芯片做。不管纯计量还是soc

出235入8汤圆

 楼主| 发表于 2021-6-30 11:43:35 | 显示全部楼层
lzy888 发表于 2021-6-30 09:04
有同步的电压电流瞬时值就能计算,先计算瞬时功率的平均值,就是有功功率,再把电压电流的有效值分别算出来 ...

有些电流峰峰值是瞬间的,这样也是可靠的。需要做什么滤波吗?

出0入42汤圆

发表于 2021-6-30 11:53:30 | 显示全部楼层
本帖最后由 lzy888 于 2021-6-30 11:56 编辑
z31com 发表于 2021-6-30 11:43
有些电流峰峰值是瞬间的,这样也是可靠的。需要做什么滤波吗?


求平均或者累加本身就是滤波了,结果不会由一两个数值决定。不过最好还是软件或者硬件上滤一下,时间常数不要太大,否则会影响精度

出235入8汤圆

 楼主| 发表于 2021-6-30 14:18:31 | 显示全部楼层
lzy888 发表于 2021-6-30 11:53
求平均或者累加本身就是滤波了,结果不会由一两个数值决定。不过最好还是软件或者硬件上滤一下,时间常数 ...

谢谢你的回复,
那我想问下:电压电流的有效值分别算出来(按有效值的定义计算,均方根),S=U*I就是视在功率
这个怎么理解,我现在计算有效果是,V峰峰值/2/根号2  *  I峰峰值/2/根号2 .-------这个相当于只有一个数值。
这样可以吗?

出0入42汤圆

发表于 2021-6-30 14:40:09 | 显示全部楼层
本帖最后由 lzy888 于 2021-6-30 14:48 编辑
z31com 发表于 2021-6-30 14:18
谢谢你的回复,
那我想问下:电压电流的有效值分别算出来(按有效值的定义计算,均方根),S=U*I就是视在功 ...


这个简单,电压有效值=SQRT((u1*u1+u2*u2+.........un*un)/n)。电流有效值=SQRT((i1*i1+i2*i2+.........in*in)/n)。n是一个周期的采样点数。只用一个峰值计算不合适。
有功功率=u1*i1+u2*i2+u3*i3+.......,为了精度好点儿,可以多累积几个周期的,再除以个系数。

出0入4汤圆

发表于 2021-6-30 15:16:21 来自手机 | 显示全部楼层
交流步釆样,fft处理

出235入8汤圆

 楼主| 发表于 2021-7-1 10:41:11 | 显示全部楼层
lzy888 发表于 2021-6-30 14:40
这个简单,电压有效值=SQRT((u1*u1+u2*u2+.........un*un)/n)。电流有效值=SQRT((i1*i1+i2*i2+.........i ...

明白了你的意思,我先试下,谢谢

出0入0汤圆

发表于 2021-7-1 20:47:18 | 显示全部楼层
现在有很多的电表芯片,为何要自己做?

出0入0汤圆

发表于 2021-7-1 20:48:54 | 显示全部楼层
还有一个问题,采样点要足够,计量芯片其实就是一个单片机+高精度ADC.如果自己做,单片机可能其他事就做不了了.一个周波至少64个点.

出235入8汤圆

 楼主| 发表于 2021-7-6 20:04:53 | 显示全部楼层
amcey 发表于 2021-7-1 20:48
还有一个问题,采样点要足够,计量芯片其实就是一个单片机+高精度ADC.如果自己做,单片机可能其他事就做不了了 ...

我是1个周期采40个点。

出0入0汤圆

发表于 2021-7-7 08:22:18 | 显示全部楼层
每周期采样64个点,电压电流用ADC1和ADC2同步采样,然后FFT,根据需要只取基波幅值和角度,或者再取谐波参数,就用103的12位AD,不用特殊处理就能得出误差只有零点几度的结果,一般用足够了

出15入178汤圆

发表于 2021-7-7 09:29:16 | 显示全部楼层
我用的24bit的ADC,采样率256点每周波,参考这个专利:

电力正弦信号过零时间、频率、相位差的检测方法

出0入42汤圆

发表于 2021-7-7 09:57:30 | 显示全部楼层
求电压与电流之间的角度

出0入42汤圆

发表于 2021-7-7 10:10:09 | 显示全部楼层
方针代码     

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入42汤圆

发表于 2021-7-8 15:45:19 | 显示全部楼层
还没解决吗?我还盯着你的汤圆呢

出0入0汤圆

发表于 2021-7-8 17:07:34 | 显示全部楼层
瑞芯微电能计量芯片 完全可以    论坛有源码的

出15入178汤圆

发表于 2021-7-8 23:01:33 | 显示全部楼层
diego2003 发表于 2021-7-8 17:07
瑞芯微电能计量芯片 完全可以    论坛有源码的

瑞芯微是做DSP的吧,也有计量芯片?什么型号呀

出0入4汤圆

发表于 2021-7-9 08:36:59 | 显示全部楼层
2nd 发表于 2021-7-8 23:01
瑞芯微是做DSP的吧,也有计量芯片?什么型号呀

他是想说瑞能微吧.

出235入8汤圆

 楼主| 发表于 2021-7-12 10:10:44 | 显示全部楼层
zhwd102198 发表于 2021-7-8 15:45
还没解决吗?我还盯着你的汤圆呢

谢谢你的回复,汤圆已供上。问题还在解决中

出0入42汤圆

发表于 2021-7-12 10:14:43 | 显示全部楼层
z31com 发表于 2021-7-12 10:10
谢谢你的回复,汤圆已供上。问题还在解决中

哈哈     于心不安        卡在了哪里?

出235入8汤圆

 楼主| 发表于 2021-7-12 14:30:49 | 显示全部楼层
本帖最后由 z31com 于 2021-7-12 14:54 编辑

用的芯片是STM32F103VBT6   ROM 128K, RAM 20K
我要测2个三相交流电压+1个三相交流电流。共需要9路ADC输入。每个时钟周期还不能采太多的数据
需要检没的电压频率范围 10--70HZ.
DMA每次采集的数据是: 300*9(9路ADC)*2(2字节数据) = 5400(占用RAM = 5.4K),DMA采集一次波形,大概120MS,1000ms/120ms = 8.3HZ
硬件已把负载电流设成阻性的 100A,
现在是先采集1路与1路电流,把负载电流
有功功率 = (电压1*电流1 + 电压2*电流2 ---------电压N * 电流N,)/N---(N=50) --------测出来是  17.3W,,,,,,,,,,,,感谢楼上几位给的公式
视在功率 = 有效电压*有效电流-------------------------------------------------------           测出来是  22.5W,,,,,,,,,,,,感谢楼上几位给的公式
问题:
我现在测的是阻性负载,有功功率与视在功率应该是一样或接近的。

出235入8汤圆

 楼主| 发表于 2021-8-2 08:51:06 | 显示全部楼层
问题解决了,是因为我把相电压与相电流没有对应上。Ua与Ib相乘了。感谢楼上各位的

出100入312汤圆

发表于 2021-8-2 09:03:09 | 显示全部楼层
学习,不错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 17:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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