cshm0101 发表于 2013-1-6 17:13:58

M16 实现市电电压、电流采集出现问题。。。

最进有个项目需要采集市电的电压电流

电压:通过电阻降压后,使用单运放,基准源为2.5V,送M16 ADC采集

电流:使用电流互感器I-->V电路,使用单运放,基准源为2.5V,送M16 ADC采集

现在出现问题如下:

1、在市电电压没有接的情况下,有2V左右的电压,这个该如何的滤掉,使用电流互感器采电流情况类似

2、在接上市电的情况下,电压大体是对的,但是会频繁地跳动。例如市电电压是220V,算出来电压在219V 221V 跳动

电压,电流的算法:连续采20点,算有效值的

请问坛里的高手有什么比较的好的解决方案吗?谢谢了!

cshm0101 发表于 2013-1-7 08:28:35

不要沉了!

turf456 发表于 2013-1-7 08:35:50

没有直接测量的,都是用电压互感器和电流互感器。

cshm0101 发表于 2013-1-7 09:42:46

turf456 发表于 2013-1-7 08:35 static/image/common/back.gif
没有直接测量的,都是用电压互感器和电流互感器。

不太明白你的意思,我也是使用电流互感器的。但是在没有电流的情况下,会采到噪声的AD值,从而计算得到噪声的电压

能说明下,这个有什么办法解决吗?谢谢!

turf456 发表于 2013-1-7 09:51:26

cshm0101 发表于 2013-1-7 09:42 static/image/common/back.gif
不太明白你的意思,我也是使用电流互感器的。但是在没有电流的情况下,会采到噪声的AD值,从而计算得到噪 ...

具体算法我不太懂,你说的采集几次取平均不可取。。
标准的做法是对采样进行傅里叶分析,只提取到50HZ基频进行处理,还可以计算出各次谐波分量的大小,也就包括你说的噪声。
这一般是电力测量系统用的方案。
单片机系统绝对不能直接测量市电,必须要隔离的。

cshm0101 发表于 2013-1-7 10:13:28

turf456 发表于 2013-1-7 09:51 static/image/common/back.gif
具体算法我不太懂,你说的采集几次取平均不可取。。
标准的做法是对采样进行傅里叶分析,只提取到50HZ基 ...

我这个只是简单的电压电流采集,应该不需要用到傅里叶,但是目前不知道有比较好的方法...

xzyang 发表于 2013-1-7 10:21:21

抬高2.5V了吗?

hdxet 发表于 2013-1-7 10:27:11

1、安全起见,电压采集也要有电压互感器隔离。
2、没接电压、电流也有数值是因为2.5V参考值不准确,有零漂,你可以再用一个AD通道采2.5V基准参与运算。
3、每个周波采20个点太少,想比较准确的话还要加电源频率同步措施。
4、AVR采样位数只有10位,不可能很精确。
5、要有软件滤波。

langbaiyue 发表于 2013-1-7 10:39:34

前段时间做的采市电,也没用傅里叶分析,但是采集了80个点,连续采集20个周期,情况还不是很好,20个点确实太少了!

cyq001 发表于 2013-1-7 10:54:59

采集电压,偶直接用变压器,降压,整流,进入AD,标定,50V,100V,200V标好后,测试,误差1V内

cshm0101 发表于 2013-1-7 11:03:50

xzyang 发表于 2013-1-7 10:21 static/image/common/back.gif
抬高2.5V了吗?

是的,抬高2.5V后,可以全波

xjmlfm1 发表于 2013-1-7 11:06:07

电压可以直接采的,很多单相表或者三相表里面都是这么做的,没有什么。
采20个点基本上可以满足0.5级的精度,不过M16只有10位的ADC,能不能做出0.5级要看设计了。
另外,20个点应该是一个周波内根据频率来采的,而不是随意的连续采20个点。
算法可以用FFT,也可以用均方根,普通的算法行不通。

cshm0101 发表于 2013-1-7 11:10:29

hdxet 发表于 2013-1-7 10:27 static/image/common/back.gif
1、安全起见,电压采集也要有电压互感器隔离。
2、没接电压、电流也有数值是因为2.5V参考值不准确,有零漂 ...

1、成本问题,电压互感器就没考虑了。
2、你的意思是用一个ADC通道采一个基准源来做AD值计算的 参考吗?
3、能说明下电源频率同步措施是怎么回事吗?
4、这个波动在可以接受的范围之内
5、能说明下具体软件滤波的流程和方法吗?
谢谢!

cshm0101 发表于 2013-1-7 11:12:18

langbaiyue 发表于 2013-1-7 10:39 static/image/common/back.gif
前段时间做的采市电,也没用傅里叶分析,但是采集了80个点,连续采集20个周期,情况还不是很好,20个点确实 ...

点数多了好像是会好点,但是没有无输入时,这个问题还是不清楚如何处理

cshm0101 发表于 2013-1-7 11:14:17

cyq001 发表于 2013-1-7 10:54 static/image/common/back.gif
采集电压,偶直接用变压器,降压,整流,进入AD,标定,50V,100V,200V标好后,测试,误差1V内
...

能具体说明下,如何标定50V,100V,200V呢?谢谢!

cshm0101 发表于 2013-1-7 11:23:13

xjmlfm1 发表于 2013-1-7 11:06 static/image/common/back.gif
电压可以直接采的,很多单相表或者三相表里面都是这么做的,没有什么。
采20个点基本上可以满足0.5级的精度 ...

新手!FFT还有难度

之前就是均方根值的算法的,但是算出来波动比较的大,但是没有判断是否在同一周期内,难道是这个问题吗?

hdxet 发表于 2013-1-7 11:33:07

2、这要看你的算法,如果用FFT就和参考值没关系了,但是很费时间,要求很快的时候不能用。如果采用积分方式,假设输入为零,2.5V基准略有偏移,假设偏移0.1V,AD采样值会偏移大约20个点,每次采样都会有这个数值,计算出来当然会有偏差,如果用一个通道采2.5V基准,假设采到的是525,就用525作为零点来计算。
3、电源同步可以采用电压比较器进行过零检测,中断触发AD采样,但如果输入电压极低时不能同步,需要看应用场合。
5、多采几个周波,做平均。

xjmlfm1 发表于 2013-1-7 11:33:51

cshm0101 发表于 2013-1-7 11:23 static/image/common/back.gif
新手!FFT还有难度

之前就是均方根值的算法的,但是算出来波动比较的大,但是没有判断是否在同一周期内 ...

不在一个周期内采20点,算出来肯定是不准的。
比如50HZ,那么你需要每间隔1ms作一次AD采样。
这样每个周期刚好采20次。
频率同步的意思,就是你要有专门的测频电路。
当频率改变时,这里的1ms间隔时间也必须相应的改变,以保证还是在每个周期内采20个点。
比如频率变成60HZ时,采样的间隔时间就变成了833us了。这就是所谓的频率跟踪。

cshm0101 发表于 2013-1-7 21:56:15

xjmlfm1 发表于 2013-1-7 11:33 static/image/common/back.gif
不在一个周期内采20点,算出来肯定是不准的。
比如50HZ,那么你需要每间隔1ms作一次AD采样。
这样每个周 ...

明白你的意思了,谢谢!

那请问下在没有电压或者电流输入的情况下,有幅值输出,这种情况有什么比较好的方法解决吗?

xjmlfm1 发表于 2013-1-8 11:53:07

cshm0101 发表于 2013-1-7 21:56 static/image/common/back.gif
明白你的意思了,谢谢!

那请问下在没有电压或者电流输入的情况下,有幅值输出,这种情况有什么比较好的 ...

如果你的硬件及软件都是正确的,那么这种零输入状态下的值应该是很小,几乎可以忽略不计。
电压如果额定值是220V,满量程是250V的情况下,0点电压一般小于0.5V,远小于标称精度值。
电流就跟你选用的CT和电路有关了,但也非常小,也是远小于标称精度值,都可以忽略的。

langbaiyue 发表于 2013-1-9 20:00:11

只要是在20毫秒内采集,精度都是可以的,只不过需要做一下分阶段精度校准

HZKJ 发表于 2013-1-9 21:33:49

高精度测量用真有效值芯片,简单。成本高些

czdavid 发表于 2013-1-9 23:06:42

本帖最后由 czdavid 于 2013-1-9 23:09 编辑

在未加交流信号时,取1个周波 多次(8-16次)平均的AD原始数据作为零点, 然后均方根计算之前减掉这个零点 就行了 ,但要注意校准满度之后的零漂 要重新计算。
至于满度会跳动,如楼上所说,与你的AD精度、采样频率(周波频率、采样点数)有关,即根据输入值频率确定采样率。
页: [1]
查看完整版本: M16 实现市电电压、电流采集出现问题。。。