简易电能质量监测装置设计报告_第1页
简易电能质量监测装置设计报告_第2页
简易电能质量监测装置设计报告_第3页
简易电能质量监测装置设计报告_第4页
简易电能质量监测装置设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简易电能质量监测装置目录一、系统设计方案及原理图21.1 设计要求21.2设计思想2二、系统硬件设计42.1信号波一周期采样点数的确定42.2 电路设计图42.2.1 移相电路42.2.2 整形电路42.2.3 采样电路52.2.4 总电路图62.3电路分析63 软件设计73.1 主程序流程图73.2各子程序流程图74 系统测试134.1测试仪器及测量方法134.2测试结果及分析135结束语14参考文献14附录15程序附录1:15摘要: 本简易电能质量检测装置由单片机控制模块,电源模块,信号变换与处理模块等构成。c8051f020为主控单片机,它能准确的完成同时对一路工频交流电的频率、电压有效

2、值、电流有效值、有功功率、无功功率、功率因素等进行测量。通过软件对输入电压信号进行实时采样。系统调试时,用函数发生器输出正弦电压信号作为交流信号的电压信号输入,此电压信号经自制的移向电路相后代表同一路信号的电路信号输入。关键词:电能质量 单片机 工频交流电 一、系统设计方案及原理图1.1 设计要求1、测量交流输入电压有效值频率:50hz;测量范围:100500v;准确度:±0.5。2、测量交流输入电流有效值频率:50hz;测量范围:1050a;准确度:±0.5。3、测量有功功率p(单位为w)、无功功率q(单位为var)、视在功率s(单位为va)及功率因数pf(功率因数为有功

3、功率与视在功率之比)。有功功率、无功功率、视在功率准确度:±2;功率因数显示格式:0.000.99。4、在交流电压、交流电流、有功功率、无功功率、视在功率的测试过程中,能够记录它们的最大值和最小值。1.2设计思想通过分析题目,本检测装置主要有主控制器模块、显示模块、按键模块和信号变换与处理模块等组成。方案一、分别测量电压信号和电流信号,但是,电流信号不易测量,需用到大量元器件,硬件电路会变得很复杂,成本也高。方案二、直接测量电压信号,通过模拟测量电流信号,即对电压信号移相测量电流信号, 再通过对电压和电流的采样和处理,计算出频率,相位差、电压有效值,最大电压,最小电压、电流有效值,最

4、大电流,最小电流、 有功功率,无功功率,视在功率,功率因素,同时通过打点的方法将正弦波输出到lcd12864显示器上。设计中,对电压进行移相得到模拟电流,再通过采样保持电路实现对同一时刻的电压和电流两路信号的分别保持,将采样得到的电压电流进行模数转换,以得到实际电压电流。再对电路进行整形,通过捕获上升沿来测量相位及频率,这样能确保功率测量的准确性,而且成本比较低。设计图如图表 1: 图表 1显示模块中通过按键1、2、3、4分别在lcd1602显示频率,相位差、电压有效值,最大电压,最小电压、电流有效值,最大电流,最小电流、 有功功率,无功功率,视在功率,功率因素。及在lcd12864显示电压和

5、电流各自的信号。二、系统硬件设计2.1信号波一周期采样点数的确定在一个周期内,每次都从同一起点开始通过定时来采样64个点。将每采集的点,通过ad转换。 2.2 电路设计图2.2.1 移相电路 图1通过硬件模拟来达到电能质量监测的。考虑到电压信号所相对的电流信号与电压信号之间存在90度的相位差,电流信号滞后于电压信号。所以通过移相电路即对输入电压信号移相来模拟电流信号。2.2.2 整形电路图2整形模块利用比较器lm393,将正弦波转换成方波,再由in4148整流二极管来限制方波的幅值,将输出的方波幅值限定在 -1v+4.3v内。2.2.3 采样电路 图3采样保持模块我们采用lf398采样/保持器

6、来设计采样电路。lf398是一种高性能单片采样/保持器。它通过1k的电位器来实现调零的作用,8引角的采样控制信号可以由单片机来设定实现,也可利用函数信号发生器的产生脉冲信号来实现控制lf398的采样的点数。2.2.4 总电路图2.3电路分析对电压进行移相得到模拟电流,再通过采样保持电路实现对同一时刻电压和电流两路信号的分别保持,将采样得到的电压电流进行模数转换后,以得到实际电压电流。再对电路进行整形,通过捕获上升沿来测量相位及频率。测量相位时,通过d触发器来判断相位超前还是滞后,如果输出为0则相位滞后,如果输出为1则相位超前。3 软件设计3.1 主程序流程图3.2各子程序流程图(1)电压、电流

7、测量(2)频率测量(3)功率测量(4)定时器0中断(5)pca0中断4 系统测试4.1测试仪器及测量方法 测试仪表:函数信号发生器,数字万用表,示波器 测试方法:用函数信号发生器产生正弦信号波作为电压信号波输入,此电压信号经移相电路移相后作为同一路的电流信号输入,经采样送单片机处理后显示,将显示的各数值同示波器观察值作比较,计算出各误差值。4.2测试结果及分析电压有效值:u= 电流有效值:i=有功功率:p=视在功率:s=u*i无功功率:q=s-p功率因素:输入信号峰峰值3v2v1v最大电压1.4910.52最小电压-1.49-1-0.52相对误差0.0066670-0.04理论电压有效值1.0

8、6080.70720.3536电压有效值1.05260.71020.3746相对误差0.00773-0.00424-0.05939最大电流1.51.010.54最小电流-1.5-1.01-0.54相对误差0-0.01-0.08理论电流有效值1.06080.70720.3536电流有效值1.0530.71320.3787相对误差0.007353-0.00848-0.07098理论有功功率0.9745070.4331140.108279有功功率0.840.380.1相对误差0.1380260.1226330.076456理论视在功率1.1252970.5001320.125033视在功率1.050

9、.470.12相对误差0.0717110.064110.041941理论功率因素0.8660.8660.866功率因素0.80.810.8相对误差0.0762120.0646650.0762125结束语 通过此次实验对于软件和硬件方面的调试能力有所提高。在软件编程方面,对于单片机中的一些芯片的接口的定义和调用接口的数据。根据单片机编程需要对硬件的一些指标有所了解。在按电路图焊接完,进行硬件调试是发现lm393的2脚和6脚的输入信号中有一些毛刺信号的干扰,为了消除这些毛刺信号的干扰,于是在这两个引脚上加了两个对地小电容。测相位的引脚也存在同样的问题,就用了同样的方法来解决。在软件调试过程中发现,

10、用定时器2、3来启动adc0,虽然理论上是可以的,但是,由于adc0启动和完成转换,需要一定时间,而我们是在启动adc0转换的下一个时刻就直接读取转换结果,所以,中间出现了一些差错。于是,改用了置一ad0busy的方式来启动,并且使用while语句等到adc0转换完成时才读取转换结果。这些天实验中发现目前所做的效率显然高于之前的每一个实验,原因很多,一是因为没有其他旁事,这样会更专注。二是学习氛围,学习氛围很浓厚,每天都是12小时都在编程。更多的是得到了太多的帮助,学长一次次解决了我们看似无解的麻烦,并教会我们一些无从得知的基础知识,让我们在单片机这条路上走得更长。这些天学会了很多,但是最重要

11、的还是学会自主学习,问题学会自己解决,这样才能永无止尽地学下去。参考文献1. 黄志伟主编,全国大学生电子设计竞赛训练教程 北京:电子工业出版社,2004年 2. 赵佩华,眭碧霞主编,单片机原理及接口技术 北京:机械工业出版社,2008年3. 张友德主编,单片机微型机原理应用于实验 上海:复旦大学出版社,2000年附录程序附录1:#include "c8051f020.h"#include "sysinit.h"#include "lcd1602.h"#include "keyscan.h"#include &quo

12、t;adc.h"#include "lcd12864.h"#include "math.h"#include <stdio.h>extern unsigned char xdata lcd_buff016;/1602显示缓冲区extern unsigned char xdata lcd_buff116;unsigned char xdata tab10;unsigned char xdata tab20;unsigned char xdata tab30;unsigned char xdata tab40;unsigned char

13、 code zuobiao;unsigned int zhouqi,jiange;unsigned char j=0,ccf0_overflow,key,key_value; float freqvalue,xiangweicha,u,umax,umin,u0,i,imax,imin,i0,power,s,pf,t;float powerl=0;float xdata adc0_buff064;float xdata adc0_buff164;sbit control=p03;sbit flag=p05;void pl(void);void dy(void);void dl(void);voi

14、d gl(void);void caiji(unsigned char adc0_buff0,unsigned char adc0_buff1);void tuxing(float adc0_buff0,float adc0_buff1);void printstring(unsigned char *str);void pho_disp(unsigned char* tab);void main(void)wdtcn=0xde;wdtcn=0xad;sysclkinit();/配置系统时钟,使用外部晶振,系统上电默认使用内部2m时钟portinit();/i/o端口配置lcd1602_ini

15、t();/lcd1602初始化lcd12864_init();adc0_init ();pca0cpm0=0x21;pca0cpm1=0x21;pca0md=0x01;ea=1;et0=1;eie1=0x08;pca0cn = 0x40; /启动pca0计数器工作tmod=0x01;th0=0xfd;tl0=0x8f;amx0cf = 0x00;while(1)key_value=get_key();if(key_value!=0xff) key=key_value; while(key=1) pl(); key_value=get_key(); if(key_value!=0xff) key

16、=key_value;while(key=2) dy(); key_value=get_key(); if(key_value!=0xff) key=key_value; while(key=3) dl(); key_value=get_key(); if(key_value!=0xff) key=key_value;while(key=4) gl(); key_value=get_key(); if(key_value!=0xff) key=key_value; void pl(void) ccf0_overflow = 0; /清零捕获次数计数器,开始测量频率信号 while(ccf0_o

17、verflow<2); /等待第二次捕获freqvalue = 2000000.0/zhouqi;/计算频率值xiangweicha=jiange*1.0/(zhouqi*1.0)*360-0.14;if(xiangweicha>180)xiangweicha=360-xiangweicha;if(flag=0)sprintf(lcd_buff0,"pd:+%-6.3f ",xiangweicha);if(flag=1)sprintf(lcd_buff0,"pd:-%-6.3f ",xiangweicha);lcd_set_cursor(1,

18、1); printstring(lcd_buff0); sprintf(lcd_buff1,"freq:%-8.4f ",freqvalue);lcd_set_cursor(2,1);printstring(lcd_buff1);delay_ms(100);void dy(void) ccf0_overflow = 0; /清零捕获次数计数器,开始测量频率信号 while(ccf0_overflow<2); /等待第二次捕获 caiji(adc0_buff0,adc0_buff1); u=0; umax=adc0_buff00; umin=adc0_buff00; f

19、or(j=0;j<64;j+) if(adc0_buff0j>umax) umax=adc0_buff0j; if(adc0_buff0j<umin) umin=adc0_buff0j; for(j=0;j<64;j+) u=u+pow(adc0_buff0j-(umax+umin)/2,2); u=sqrt(u/64); u = u/4095.0*3.0+0.025;/将电压数字量转换为实际电压值 u0=umax; umax = (umax-(umax+umin)/2)/4095.0*3.0+0.025; umin = (umin-(u0+umin)/2)/4095.

20、0*3.0-0.025; sprintf(lcd_buff0,"l:%-6.2fs:%-6.2f",umax,umin); lcd_set_cursor(1,1); printstring(lcd_buff0); sprintf(lcd_buff1,"urms:%-6.4f ",u); lcd_set_cursor(2,1); printstring(lcd_buff1); tuxing(adc0_buff0,adc0_buff1); delay_ms(100); void dl(void) /电流测量 ccf0_overflow = 0;/清零捕获次数

21、计数器,开始测量频率信号 while(ccf0_overflow<2); caiji(adc0_buff0,adc0_buff1); i=0; imax=adc0_buff10; imin=adc0_buff10; for(j=0;j<64;j+) if(adc0_buff1j>imax) imax=adc0_buff1j; if(adc0_buff1j<imin) imin=adc0_buff1j; for(j=0;j<64;j+) i=i+pow(adc0_buff1j-(imax+imin)/2,2); i=sqrt(i/64); i = i/4095.0*

22、3.0+0.035;/将电压数字量转换为实际电压值 i0=imax; imax = (imax-(imax+imin)/2)/4095.0*3.0+0.05; imin = (imin-(i0+imin)/2)/4095.0*3.0-0.05; sprintf(lcd_buff0,"l:%-6.2fs:%-6.2f",imax,imin); lcd_set_cursor(1,1); printstring(lcd_buff0); sprintf(lcd_buff1,"irms:%-6.4f ",i); lcd_set_cursor(2,1); print

23、string(lcd_buff1); tuxing(adc0_buff0,adc0_buff1); delay_ms(100); void gl(void) ccf0_overflow = 0; while(ccf0_overflow<2); caiji(adc0_buff0,adc0_buff1); umax=adc0_buff00; umin=adc0_buff00; imax=adc0_buff10; imin=adc0_buff10; for(j=0;j<64;j+) if(adc0_buff0j>umax) umax=adc0_buff0j; if(adc0_buf

24、f0j<umin) umin=adc0_buff0j; if(adc0_buff1j>imax) imax=adc0_buff1j; if(adc0_buff1j<imin) imin=adc0_buff1j; power=0; for(j=0;j<64;j+) u=(adc0_buff0j-(umax+umin)/2)/4095.0*3.0; i=(adc0_buff1j-(imax+imin)/2)/4095.0*3.0; power=u*i+power; u=0; i=0; for(j=0;j<64;j+) u=u+pow(adc0_buff0j-(umax

25、+umin)/2,2); i=i+pow(adc0_buff1j-(imax+imin)/2,2); u=sqrt(u/64); u = u/4095.0*3.0; i=sqrt(i/64); i = i/4095.0*3.0; power=power/64.0; if(abs(t-umax)>136) powerl=0; if(power>powerl) powerl=power;t=umax; sprintf(lcd_buff0,"p:%-5.2fpl:%-5.2f ",power,powerl); lcd_set_cursor(1,1); printstr

26、ing(lcd_buff0); s=u*i; pf=power/s; sprintf(lcd_buff1,"s:%-5.2fpf:%-3.2f ",s,pf); lcd_set_cursor(2,1); printstring(lcd_buff1); delay_ms(100); void pca0_0int(void) interrupt 9 if(cf = 1)cf = 0;/计数器溢出标志清零,必须用软件清零,硬件不能自动清零if(ccf0 = 1) /捕获中断处理ccf0 = 0;if(ccf0_overflow = 0) /第一次捕获发生时候清零计数器pca0l = 0;pca0h = 0;if(ccf0_overflow = 1) /第二次捕获发生后,就可以计算周期zhouqi = pca0cph0*256 + pca0cpl0; ccf0_overflow +; /捕获次数加调整if(ccf0_overflow>=2) ccf0_overflow = 2; if(ccf1 = 1) /捕获中断处理ccf1 = 0;if(ccf0_overflow =1)jiange = pca0cph1*256 + pca0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论