搜索
bottom↓
回复: 25

闲的蛋疼,打算做个TrueRMS功率表,周末开工,画个草图大家看看有什么问题。

[复制链接]

出0入0汤圆

发表于 2007-7-12 00:25:55 | 显示全部楼层 |阅读模式






TA14Z是电流互感器,12V电源变压器兼做电压采样。

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

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2007-7-12 08:30:37 | 显示全部楼层
精度很低

出0入0汤圆

发表于 2007-7-12 09:15:07 | 显示全部楼层
可以参考avr465 的设计 精度应该还可以吧

出0入0汤圆

发表于 2007-7-12 10:01:45 | 显示全部楼层
果然是闲的,呵呵,有很多集成的IC,ADI,炬力,SAMES,Microchip

出0入0汤圆

发表于 2007-7-12 12:19:14 | 显示全部楼层
现成的芯片都是电度表吧?不能显示功率而且必须搭配专用LCD面板。

出0入0汤圆

 楼主| 发表于 2007-7-12 15:59:48 | 显示全部楼层
刚才把avr465看了,精度不能满足要求。

用免费的Visual C++ 2005 Express验证了一下算法,还是相当理想的,最终输出如下:



25003602 (Watt0)

21651414 (Watt30)

49       (Watt90)

49       (VAR0)

-12498567(VAR30)

-25003504(VAR90)

866      (PF30)



下面是源程序:



#include "stdafx.h"

#include <iostream>

#include <fstream>  

#include <string>

#include <math.h>



#define PI 3.1415926535

#define SAMPLES 200   // interval 100us @ a 20ms cycle

#define OFFSET 512    // a/d sample dc middle level indicating AC zero

#define SCALE 500     // a/d full scale



using namespace std;





int _tmain(int argc, _TCHAR* argv[])

{   

        unsigned int v[SAMPLES],i0[SAMPLES],i30[SAMPLES],i90[SAMPLES];

        unsigned int i;

        long watt0,watt30,watt90,var0,var30,var90,temp0,temp1,temp2;

        double d;



// make the origin sample data

        for(i=0;i<SAMPLES;i++){

                v=SCALE*sin(PI*2*i/SAMPLES)+OFFSET;

                i0=SCALE*sin(PI*2*i/SAMPLES)+OFFSET;

                i30=SCALE*sin(PI*2*i/SAMPLES-PI*2/12)+OFFSET;

                i90=SCALE*sin( PI*2*i/SAMPLES-PI*2/4)+OFFSET;

                cout<<"
i0:"<<i0<<" i30:"<<i30<<" i90:"<<i90;

        }



// process the data

        watt0=0;

        watt30=0;

        watt90=0;

        var0=0;

        var30=0;

        var90=0;

        for(i=0;i<SAMPLES;i++){

                temp0=v[i+(SAMPLES/4)<SAMPLES?i+(SAMPLES/4):i-(SAMPLES*3/4)]; // voltage in quadrature

                temp0-=OFFSET; cout<<'
'<<temp0;

                temp1=v;  // voltage in phase

                temp1-=OFFSET;

                temp2=i0;

                temp2-=OFFSET;

                watt0+=temp1*temp2;

                var0+=temp0*temp2;

                temp2=i30;

                temp2-=OFFSET;

                watt30+=temp1*temp2;

                var30+=temp0*temp2;

                temp2=i90;

                temp2-=OFFSET;

                watt90+=temp1*temp2;

                var90+=temp0*temp2;

        }

    cout<<'
'<<watt0;   

        cout<<'
'<<watt30;   

        cout<<'
'<<watt90;

    cout<<'
'<<var0;   

        cout<<'
'<<var30;   

        cout<<'
'<<var90;



        // Power Factor

        watt30/=4000;

        var30/=4000;

        d=watt30*watt30+var30*var30;

        d=sqrt(d)/1000;

        d=watt30/d;

        temp0=d;

        cout<<'
'<<temp0;

       



        return 0;

}

出0入0汤圆

发表于 2007-7-13 19:31:42 | 显示全部楼层
等着看你的大作。
-----此内容被fetish于2007-07-13,19:32:47编辑过

出0入0汤圆

 楼主| 发表于 2007-7-15 16:20:17 | 显示全部楼层
板子焊完了,Show一下,下面就要把三块板子(+1602)连起来了。





出0入0汤圆

发表于 2007-7-15 18:39:37 | 显示全部楼层
你这个壳子漂亮,实用。在哪买的?好想买几个,自己做的东西都祼体中。。。

出0入0汤圆

 楼主| 发表于 2007-7-15 18:46:51 | 显示全部楼层


出0入0汤圆

 楼主| 发表于 2007-7-16 00:58:48 | 显示全部楼层
电压测试基本完成









































































为什么没人给点建议?

出0入0汤圆

 楼主| 发表于 2007-7-18 00:40:00 | 显示全部楼层
顶一下

出0入0汤圆

 楼主| 发表于 2007-7-30 13:50:50 | 显示全部楼层
可耻地失败了,测白炽灯没问题,测电脑这种谐波分量大的负载,差的一塌糊涂。

出0入0汤圆

发表于 2007-7-30 14:08:51 | 显示全部楼层
替 楼主的 精神 顶你一下~! 呵呵

出0入0汤圆

发表于 2007-7-31 16:26:18 | 显示全部楼层

出0入0汤圆

发表于 2007-7-31 16:29:20 | 显示全部楼层
对呀,早期发的图片不显了,估计服务器做什么调整或出了差错。

出0入0汤圆

发表于 2008-4-11 16:05:57 | 显示全部楼层
哎呀
疼死我啦!

出0入0汤圆

发表于 2008-4-11 16:26:32 | 显示全部楼层
你用电流互感器采样电流,直流分量没了,并且直流分量会导致互感器饱和,即使使用抗直流的互感器,精度也只能到达百分之几,电压采样经过了电容,在低频下,阻抗太大,并且对频率太敏感。

出0入0汤圆

发表于 2008-4-11 17:01:19 | 显示全部楼层
你用AVR做不成的,因为你不能作到U,I同步采样,而且精度不够,最少要16位的AD,还涉及到算法,你头就晕了,

出0入0汤圆

发表于 2008-4-11 21:16:28 | 显示全部楼层
不能作到U,I同步采样,可以补偿的

出0入0汤圆

发表于 2008-4-12 06:11:31 | 显示全部楼层
对于开关电源这种负载,给负载加上功率因素补偿再测

出0入0汤圆

发表于 2008-4-12 11:18:59 | 显示全部楼层
对于开关电源这种负载,给负载加上功率因素补偿再测
电表还限制用户怎么用电,不现实啊,只是MCU做,因为采样次数太低,谐波肯定做不好,普通的电表芯片4K采样速度4K左右的采样速度,大谐波时候也是有些误差。

出0入0汤圆

发表于 2008-4-12 12:11:25 | 显示全部楼层
参考18楼19楼。两种方法:同步采样或加补偿

出300入0汤圆

发表于 2008-4-13 00:28:32 | 显示全部楼层
蛋疼的人蛋继续痛
痛并快乐着……

出0入0汤圆

发表于 2009-9-26 23:50:58 | 显示全部楼层
强帖留名

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-3-28 16:27

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

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