搜索
bottom↓
回复: 149

介绍一种简单的交流电压测量方法

  [复制链接]
头像被屏蔽

出0入0汤圆

发表于 2005-10-17 22:53:08 | 显示全部楼层 |阅读模式
通常,在测量220V或380V工频电压时,并不要求非常高的精度,一般的控制系统中,能精确到1%就足够了。在这里向大家介绍一种我设计的非常简单的测量方法,实践证明,该方法实用、可靠,成本低廉,完全能够满足一般监控系统的要求。

   硬件电路:仅用一个220V/6V-1W的普通电源变压器,经过全波整流,小电容滤波,滤除其高频干扰谐波,然后电阻分压成适合A/D转换的带有纹波的电压。直接连接到A/D输入脚。如果测量380V的电压,将两只220V的变压器串联使用即可。

   软件设计:

   1、先进行一次A/D转换,存入一个变量x中,作为参考值;

   2、再进行一次A/D转换,与上次比较,如果小于x,说明正处于交流电压的下降沿,存入 x中;继续A/D转换,至到大于前次的转换值,说明已经进入了交流电压的上升沿,存入x;

   3、继续A/D转换,如果转换结果大于x,存入x;直到转换结果小于x,说明x中保存的就是交流电压的最大值!

   4、然后把x除以一个常数,得出你想显示出的值即可。完成一次测量。

   这样完成一次测量最长时间是10ms,最短时间只需三次A/D转换时间。如果软件还执行其它操作,便转入其它子程序,之后继续1-4的步骤,将每次结果累加。

   测量n次后,求算术平均值。也可以采取其它数字滤波的方法。

   为避免测量0电压程序进入死循环,可以设置一个A/D转换次数计数器,转换一定次数之后退出。



   校准电压可以在分压电阻中设置一个电位器,也可以软件校准。软件校准的方法:例如在380V点校准,把结果乘以380,再除以380,假如得382。那么,把除数变成382即可。

  

   这样测量交流电压,在宽范围内的线性不是太好,主要原因是全波整流的二极管电压降是一个常数(约1.4V)。但针对220V或380V的电压测量来讲,电压波动不可能超过30%,在此范围内的线性误差还是可以接受的。我曾以一只0.5级的电压表与采取该方法的测量显示值相比较,基本一致。



附一段测量程序:

//电压测量程序

int mesure(void)

{     

    uchar m_cAdccount;    //ADC转换次数

    uint m_nAdcValue;     //当前ADC转换值

    uint m_nPreAdcValue;  //前次ADC转换值

   // enum condition eX;

        //定义A口为输入,A0无上拉电阻,A1~A7有上拉电阻

        DDRA=0X00;

        PORTA=0XFE;

       

        //有关变量初始化

    m_nAdcValue=0;

    m_nPreAdcValue=0;

               

        //内部2.56V参考电压,0通道

        ADMUX=0Xc0;

       

        //使能ADC, 时钟:ck/32

        ADCSRA=_BV(ADEN)|_BV(ADPS2)|_BV(ADPS0);

       

        //开始第一次转换

        ADCSRA|=_BV(ADSC);

       

        //等待转换结束

        while(ADCSRA&_BV(ADSC))

        ;

       

        //读取第一次转换值

        m_nAdcValue=ADCL;

        m_nAdcValue|=(uint)(ADCH<<8);

       

        for(m_nPreAdcValue=m_nAdcValue,m_cAdccount=0;

            (m_nAdcValue<=m_nPreAdcValue)&&(m_cAdccount<100);

                m_cAdccount++)

            {

                    m_nPreAdcValue=m_nAdcValue;

                    ADCSRA|=_BV(ADSC);

                        //等待转换结束

                while(ADCSRA&_BV(ADSC))

                ;

                        m_nAdcValue=ADCL;

                m_nAdcValue|=(uint)(ADCH<<8);

                }





    for(m_nPreAdcValue=m_nAdcValue,m_cAdccount=0;

            (m_nAdcValue>=m_nPreAdcValue)&&(m_cAdccount<100);

                m_cAdccount++)

            {

                    m_nPreAdcValue=m_nAdcValue;

                    ADCSRA|=_BV(ADSC);

                        //等待转换结束

                while(ADCSRA&_BV(ADSC))

                ;

                        m_nAdcValue=ADCL;

                m_nAdcValue|=(uint)(ADCH<<8);

                }

       

        if(g_nBaseVoltage==100)

            m_nPreAdcValue=m_nPreAdcValue/4;

    else

        m_nPreAdcValue=m_nPreAdcValue/2;



    return(m_nPreAdcValue);

}



   

-----此内容被lvhoujun于2005-10-17,22:55:32编辑过


-----此内容被lvhoujun于2005-10-17,23:11:29编辑过

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

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

出0入0汤圆

发表于 2006-11-15 14:43:40 | 显示全部楼层
的确是一个比较好的思路,请问楼主精度如何?

出0入0汤圆

发表于 2006-11-15 14:53:09 | 显示全部楼层
下一步正要做电子监控,还望楼主能提供些帮助。

出0入0汤圆

发表于 2006-11-28 16:39:42 | 显示全部楼层
能不能把电路图也提供出来,最好源程序详细一点,谢谢!

出0入0汤圆

发表于 2006-11-28 19:46:46 | 显示全部楼层
一般用大电容转换成直流效果也不错

出0入0汤圆

发表于 2006-11-28 21:00:15 | 显示全部楼层
这么复杂啊,你变压器输出直接整流滤波成一个直流电平,再分压进行AD转换不行吗?

出0入0汤圆

发表于 2006-11-29 11:40:54 | 显示全部楼层
楼主,有个顾虑:如果电压受到干扰比如工厂中大负荷电机,电压会发生畸变,再用这种方法还行吗?

出0入0汤圆

发表于 2006-11-29 23:07:19 | 显示全部楼层
哼哼,就这方法?你先量量给直流变频空调供电的线路上的波形看看,保证你眼珠子都掉下来。

出0入0汤圆

发表于 2006-11-30 14:06:31 | 显示全部楼层
楼上的看看搂主说的:在测量220V或380V工频电压时,并不要求非常高的精度,一般的控制系统中,能精确到1%就足够了。

搂主又没说什么条件都适合。

出0入0汤圆

发表于 2007-5-21 21:48:46 | 显示全部楼层
楼主,电路图能看看么?这样做大概花到多少钱呢?

出0入0汤圆

发表于 2007-5-21 22:49:09 | 显示全部楼层
楼主,你想过这种方法,你做出来的东西有多大体积吗?就几个变压器就不得了了!

出0入0汤圆

发表于 2007-5-22 11:41:10 | 显示全部楼层
互感器的体积其实不是很大的,长宽就2~3cm。

出0入0汤圆

发表于 2007-5-22 13:09:42 | 显示全部楼层
开始时我做项目也是这个方法,当市电波形并不是理想的波形,精度极其差,后来参考RMS的计算公式,采用10mS采样32个点来做RMS运算发现结果才可以精确到1%。

出0入162汤圆

发表于 2007-5-22 15:21:38 | 显示全部楼层
何必这么麻烦???



用电阻分压将交流信号分压并直流偏置1.27V

交流电压另外用三极管做一个过零脉冲





程序控制电压过零开始采样,每隔20ms/64间隔采样一次,累加。



最后该累加值/64就是平均值+1.27v

出0入0汤圆

发表于 2007-5-22 15:22:32 | 显示全部楼层
感觉结果不可能像楼主想象的精确到1%,也就能精确到10%。



交流电压测量是个很严谨的话题,普通的变压器、硅桥、电容又哪能担当的了??



尤其是变压器的误差非常大,还受负载影响,所以楼主的方法用来判断电压大致范围还可以,想显示出来的话就让人疑惑了。

出0入0汤圆

发表于 2007-5-23 13:01:35 | 显示全部楼层
都是高手呀!人家只是抛砖引玉一下,没有引来玉却引来你们一顿砖头。

出0入0汤圆

发表于 2007-5-23 13:44:04 | 显示全部楼层
不如直接用峰值电路,最好加一个同步信号(过零)



这种方法是基于波形不歧变的基础,用峰值*波形转换系数

出0入0汤圆

发表于 2007-7-20 11:02:56 | 显示全部楼层
不知道用真有效值芯片做出来会怎么样?我正要做一个工频多用表,计划使用AD637来试试

出0入0汤圆

发表于 2007-7-20 15:56:04 | 显示全部楼层
这个我以前就帮人设计时就用过,不过精度不高,

出0入0汤圆

发表于 2007-7-20 15:56:56 | 显示全部楼层
还是用运放做比较好

出0入0汤圆

发表于 2007-8-19 22:18:03 | 显示全部楼层
我研究过这种电路,我的电路只用了一个限流电阻和一个取样电阻,实现测量220V或380V工频电压,当市电波形理想时测量较准,当市电波形并不理想时,能高出30V.我认为12楼的做法值得参考,很想学一学啊。我的电路是最简线路。

我的产品非常小,不能用硬件实现有效值计算,哪位高手能提供软件有效值计算,非常感谢。

出0入0汤圆

发表于 2007-8-20 15:37:33 | 显示全部楼层
用互感器,我上次用了一个EI19的变压器原副边各2000匝。初级220通过100k电阻限流,副边接一个电阻采电压。就是变压器用作电流互感器,感觉性能比变压器性能高。最后出来的电压通过有效值算法计算出来。初步校准了一下,100V时偏低1V,270V时偏高2V。已经比较准了。

出0入0汤圆

发表于 2008-10-26 22:14:08 | 显示全部楼层
12楼的:关于rms算法能不能详细的讲解一下,好想了解呀!

出0入0汤圆

发表于 2008-10-26 22:19:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-1-4 15:26:00 | 显示全部楼层
挺新的一个思路呢,不过如果电源不干净谐波太多的话恐怕测不准哦。

出0入0汤圆

发表于 2009-1-4 15:34:28 | 显示全部楼层
mark&nbsp;

出0入0汤圆

发表于 2009-1-4 18:12:13 | 显示全部楼层
互感器+Low&nbsp;Cost,&nbsp;Low&nbsp;Power,True&nbsp;RMS-to-DC&nbsp;Converter+单片机自带AD,最简单可靠

点击此处下载&nbsp;ourdev_571383.pdf(文件大小:256K)&nbsp;(原文件名:ad736.pdf)&nbsp;

书册是0-0.2V,实际上可以0-5V输入。

出0入0汤圆

发表于 2009-1-4 18:54:18 | 显示全部楼层
楼主方法似乎不可行,交流电经变压器后畸变严重,如电源不纯净误差更大。正如【14楼】&nbsp;hankw所说,感觉结果不可能像楼主想象的精确到1%,也就能精确到10%。

出0入0汤圆

发表于 2009-1-5 10:53:04 | 显示全部楼层
mark

出330入0汤圆

发表于 2009-1-5 11:49:20 | 显示全部楼层
有这么好使吗

出0入0汤圆

发表于 2009-3-10 10:10:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-10 17:06:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-3-10 17:10:46 | 显示全部楼层
体积太大了,如果做一个自己用用还行!!!

出0入0汤圆

发表于 2009-3-11 12:27:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-11 23:59:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-12 01:04:05 | 显示全部楼层
应该就是搞了玩下还可以,真正做产品的时候,就。。。。

出0入0汤圆

发表于 2009-3-12 09:02:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-12 09:14:34 | 显示全部楼层
【26楼】 hali
你成本太贵了,用AD737

出0入0汤圆

发表于 2009-3-12 09:22:06 | 显示全部楼层
用CS5463交流电所有参数都可以产量,价格便宜8元

出0入0汤圆

发表于 2009-8-6 23:44:22 | 显示全部楼层
【27楼】 cowboy
楼主方法似乎不可行,交流电经变压器后畸变严重,如电源不纯净误差更大。正如【14楼】 hankw所说,感觉结果不可能像楼主想象的精确到1%,也就能精确到10%。

同意这个说法,我做可控硅调压时试过这方法,因经过可控硅后电压波形畸变太大,测量出来的数值非常不准确,现在还在思索测量交流电什么方法比较好,有没有高手解答下。

出0入0汤圆

发表于 2009-8-7 08:25:47 | 显示全部楼层
在20ms时间内每1ms测一个数据,20个数据之和作为测量值,有电压平均值的意思

出0入0汤圆

发表于 2009-8-7 08:35:07 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-8-7 13:47:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-7 14:19:09 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-8-30 09:57:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-30 10:06:39 | 显示全部楼层
原边的220V或380V串电阻和电压互感器,串的电阻可以切换成二个档位,以适应测量不同电压。副边的输出如你所说,进行全波整流,分压后直接用AD采,采样频率最好到500Hz以上,平均两个半波能采到10个点,在单片机里可以获得电压最大值了,再计算10个点的平均值就能得到电压的有效值。

出0入0汤圆

发表于 2009-8-30 10:24:26 | 显示全部楼层
LS的平均值不能代表有效值,尽管实际上可能比较接近,但波型畸变严重时误差就显现。

出0入0汤圆

发表于 2009-12-11 07:05:09 | 显示全部楼层
学习!

出0入0汤圆

发表于 2009-12-17 23:48:32 | 显示全部楼层
变压器加上,体积得多大啊~~。还有电涌咋整。

出0入0汤圆

发表于 2009-12-18 14:47:36 | 显示全部楼层
太复杂了

出0入0汤圆

发表于 2010-1-24 15:00:49 | 显示全部楼层
学习!

出0入0汤圆

发表于 2010-1-25 16:54:53 | 显示全部楼层
学习!

出0入0汤圆

发表于 2010-1-28 17:07:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-8 19:48:37 | 显示全部楼层
用电压互感器,不知道谁用过

出0入0汤圆

发表于 2010-3-2 16:46:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-2 16:50:55 | 显示全部楼层
mark

出0入18汤圆

发表于 2010-3-7 11:06:45 | 显示全部楼层
一种容易实现的检测方法!

出0入0汤圆

发表于 2010-3-7 15:34:23 | 显示全部楼层
看到楼主这个方案我说两句。
关于全波整流二极管的压降,一个比较巧妙的解决方法是用一大电阻跨接在AD的地和变压器的公共端之间,这种方法直接从波形上就能看出结果。

我做的电网示波器和这个方案基本大同小异,包括沿触发的判断和最大值判断。
不过楼主的方法是用来做快速检测的,软件开销小很多。
该示波器所有开源资料如下:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3896204&bbs_page_no=1&bbs_id=9999
欢迎楼主拍砖~

出0入0汤圆

发表于 2010-3-7 17:25:40 | 显示全部楼层
这种方案,几乎是没有实际应用价格。但用变压器二次侧取电压可取如果算法合适基本可以做2%,但交流采样最好用RMS,然后均方根。像测交测电最好用电压互感器,这个精度很高,可以轻松做到0.5级

出0入0汤圆

发表于 2010-3-7 21:59:48 | 显示全部楼层
记号。

出0入0汤圆

发表于 2010-3-8 18:50:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-9 08:00:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-9 08:51:23 | 显示全部楼层
Atmega128,ADC为差分输入方式,采样率10ksps,然后将采样的结果进行5点算术平均值方式平滑波形,再以5点导数方式求出波形上每一点的斜率,在斜率绝对值最大的地方为交流波形的过零点,找出2个过零点,即可计算出频率,多次平均可以计算出较为精确的频率。

由此可见1L的方法是到点子上了,但还是比较粗糙的。

出0入0汤圆

发表于 2010-3-9 17:22:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-10 02:30:11 | 显示全部楼层
我来说个相对科学的方法,最简单的RMS方法。
按 1.6k 采样速率对正弦波采样,首次采样时间间隔为625us.对采样的32点找出过零点,然后对零点附件前一点和后一点进行插值计算,可以算出相对精确的频率。(楼上的采样10点按过零点直接算或者多次平均的方法,不可行,实际这样做几乎是没有精度可言的)。测频是算有效值的第一步,然后根据测得的频率调整采样时间间隔。,采够一个周波后即可按均方根算法。如果只算基波,可以用傅里叶变换,把实部和虚部算出来,然后求出幅值,这样会有滤波作用,抗干扰能力较好。
当然测交流电是很复杂的(我个人觉得),如果想更科学就要用到数字滤波器,进行fir冲击了,然后算出基波和各次谐波的幅值即可。一般我们只需要算基波即可。
半夜睡不着,说个思路。具体的网上可以查关键词: 交流采样

出0入0汤圆

发表于 2010-3-10 02:50:57 | 显示全部楼层
模拟测量输入端需要耦合差模和共模的浪涌,EFT,衰减震荡波这些简单的EMC测试,如果是直流采样的方法来测交流电我觉得很难通过这些实验的,举个最简单的例子,网内有大型马达,电感类的设备通断时产生的震荡波通过变压器进来后,直流采样我不知道该如何搞定,模拟滤波器,可能需要很高的阶数才可以。

出0入0汤圆

发表于 2010-3-12 17:00:38 | 显示全部楼层

全波整流器和平均值滤波器 (原文件名:QQ截图未命名.png)

这个是以前做的一个电路,电路的功能是把交流变换成直流的有效值,电路变换的速度基本上能做到实时变换,220V/380V部分用一个电压互感器变换,电路的输出进入AD采集,

出0入42汤圆

发表于 2010-3-13 19:15:41 | 显示全部楼层
见过不要AD的
就三个IO口,实现电压的测量

出0入0汤圆

发表于 2010-3-13 19:39:35 | 显示全部楼层
唉,真是要无语了。交流电,就是要交流采样。为什么都喜欢弄些整流的变成直流来呢,如果不是做玩具或者实验室自己玩的话,测交流电请不要用直流采样。

出0入0汤圆

发表于 2010-3-14 15:18:46 | 显示全部楼层
16点交流采样,傅氏变换即可

出0入0汤圆

发表于 2010-3-14 17:51:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-14 21:37:17 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-5-14 17:58:43 | 显示全部楼层
我测220V交流电用一个106的贴片电阻加一个50K的多圈电位器,M48用8位AD,最大值255V,AD转换每次取得的值与上次值比较如果比上次 值大就保存为上次值,直到AD值比上次值小就说明上次值是最大值,比如AD值是100,用万用表测电压为220V,调电位器就可以将100调成220了.数字会上下跳一点,但对我是够用了.

出0入0汤圆

发表于 2010-5-14 18:38:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-14 19:55:00 | 显示全部楼层
mark

出0入4汤圆

发表于 2010-5-14 23:36:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-19 17:10:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-19 20:08:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-19 20:19:24 | 显示全部楼层
好贴呀!!正在学习中!!

出0入0汤圆

发表于 2010-7-20 17:35:15 | 显示全部楼层

出0入0汤圆

发表于 2010-7-31 17:49:30 | 显示全部楼层
这个速度能达到多少?

出0入0汤圆

发表于 2010-7-31 21:30:07 | 显示全部楼层
用真有效值芯片行不?看过这方面的文献,甚至可以测量畸变波形。。。。

出0入0汤圆

发表于 2010-8-21 16:26:35 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-8-22 22:58:40 | 显示全部楼层
回复【69楼】ppa8086xp
唉,真是要无语了。交流电,就是要交流采样。为什么都喜欢弄些整流的变成直流来呢,如果不是做玩具或者实验室自己玩的话,测交流电请不要用直流采样。

-----------------------------------------------------------------------

请问能不能解释一下,为什么不推荐直流采样呢?

出0入0汤圆

发表于 2010-8-22 23:30:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-5 11:29:12 | 显示全部楼层
回复【69楼】ppa8086xp
唉,真是要无语了。交流电,就是要交流采样。为什么都喜欢弄些整流的变成直流来呢,如果不是做玩具或者实验室自己玩的话,测交流电请不要用直流采样。

-----------------------------------------------------------------------
这位老大能否提供一个不整流,测交流电不是直流采样的方法,多谢

出0入0汤圆

发表于 2010-9-5 11:33:27 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-9-5 13:33:02 | 显示全部楼层
标记一下

出0入0汤圆

发表于 2010-9-9 21:13:18 | 显示全部楼层
如果把交流电叠加到稳定直流电上给单片机测量也行,我还是喜欢使用单个二极管整流方式测量

出0入0汤圆

发表于 2010-9-10 08:59:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-10 11:28:25 | 显示全部楼层
这里真热闹,不错不错,围观并学习。

出0入0汤圆

发表于 2010-9-10 11:54:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-26 13:58:37 | 显示全部楼层
那么交流电的电流如何检测

出0入0汤圆

发表于 2010-11-8 18:44:53 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-11-8 19:02:58 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-11-8 23:23:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-8 23:24:02 | 显示全部楼层
学习 记号

出0入0汤圆

发表于 2010-12-31 18:33:31 | 显示全部楼层
万用表上的交流挡是咋弄的 ?

出0入0汤圆

发表于 2011-1-3 14:38:21 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-26 07:02

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

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