低压电器(2011No.15) ・测试技术・ Proteus仿真在谐波检测器 设计中的应用 江 和 (福州大学电气工程与自动化学院,福建福州摘350108) 要:利用Proteus软件能仿真单片机程序和输入复杂波形的特点,解决了谐波 江 和(1955一), 检测器设计过程中无谐波发生器及验证问题。通过单片机的C语言编程,完成了对单 片机而言是复杂的计算。仿真结果表明,该程序是正确的。 关键词:谐波检测;Proteus仿真;单片机 中图分类号:TM 935.2文献标志码:B文章编号:1001-5531(2011)15-0056-06 男,副教授,研究方 向为智能电器及相 关产品。 Application of Proteus Simulation in Design of Harmonic Detector 1lANG He (School of Electrical Engineering and Automation,Fuzhou Unviersity,Fuzhou 350108,China) Abstract:The features of Proteus software that can simulate microcontroller program and input complex wave— forms were used to solve the problems of harmonic detector design process without harmonic generator and verifica— tion.Through C language of the microcontroller,the complex calculation was completed for the microcontroller.The simulation results show that the program is correct. Key words:harmonic detection;Proteus simulation;microcontroller 0 引 言 在谐波检测器的设计开发中,需要专用的谐 波发生器,才能对所设计的软件、硬件进行设计与 1 硬件设计 本设计假设要检测的谐波信号的最高谐波次 数为19,根据香农采样定理,只有采样频率大于 原始信号频率中最高频率的2倍,采样结果才能 复现原始信号的特征 J,因此,在一个周期中采 样的点数设为40个点。由于最高次数为l9的谐 评估。为了能在无相关设备下也能进行谐波检测 器的产品设计与开发,许多技术人员用各种仿真 软件,如Matlab进行仿真计算。但是,这些软件 无法直接用于单片机或DSP仿真,给设计增加了 许多困难。 波采样与计算要求较高的计算速度以及要求单片 机的数据存储器容量较大,常用的单片机 PIC16F877A难以胜任,本设计选用了另一款单片 机PIC18F4620,属于8 bit机中的高档机,主要资 Proteus ISIS是一款集电子仿真、单片机仿真 于一体的EDA软件,是极具竞争力的仿真软件。 Proteus ISIS可以仿真各种复杂的输入电压、电流 源及参数如下: (1)最高频率:40 MHz(指令周期为 0.1 s)。 信号,因此,很容易用来仿真谐波信号的输入。在 Proteus ISIS中,可以仿真各种单片机,这些单片 机可以根据各种输入信号,如按键、标准与自定义 波形、运行程序,并与仿真各种接口芯片进行通 信、仿真LED数码管或LCD显示。因此,将Pro— teus ISIS应用于谐波检波器的设计,既经济又方 便。 一(2)程序存储器容量:32 kByte。 (3)数据存储器(RAM):3 968 Byte。 (4)E PROM存储器:1 024 Byte。 (5)13路的10 bit A/D转换器。 (6)2个CCP模块(捕捉、比较、脉宽调制)。 (7)SPI、12C、USART通信接口。 56— ・测试技术・ 低压电器(2011No.15) (8)2个比较器。 由于PIC18F4620及大部分单片机都只能对 (9)1个比较器参考电压模块。 (1O)1个8 bit定时器、3个16 bit定时器。 (11)8 x 8单周期硬件乘法器。 从上述数据可见,其性能优于常用的 PIC16F877A,比较适合于谐波检测。 本设计中,外接10 MHz晶振,加上内部的4 倍锁相环,总的工作频率为40 MHz,即工作于该 单片机的最高频率。 谐波电压检测就是检测电网电压中的谐波分 正的电压信号进行AMD采样,故对输入的交流电 压信号要经过绝对值线路环节后才能送到单片机 的A/D采样引脚,其输出与输入的关系为 。 为正时, 输出关断, viN= ouT(1+RI2/RI4) (2) (3) 。 为负时, 输出关断, UIN=一 ouT( 10/尺l1) 根据图1中参数,绝对值线路的放大倍数为 2,同时,在谐波检测中需要对电源的周期进行采 量,其输入信号从电压互感器得到,经信号调理后 送至单片机进行谐波计算。所用的电压互感器为 电流型微型电压互感器,传输比为5 mA/5 mA,因 此,要用电流/电压转换线路把电流信号转换为电 压信号,如图1所示,图中,通过运算放大器U4 和电阻、电位器构成的输出电压与输入电流的关 系为 v4ouT=,IN(Rv1+Rl6) 样,确定采样的间隔时间,因此,要将交流信号经 脉冲形成线路调理成周期为电源周期的数字信 号,供单片机检测电源周期之用,该信号送入单片 机的RB0/INT引脚,在周期采样期间,当信号从 高电平跳变为低电平时将产生中断。 采用4 bit 8段数码管动态显示;与上位机通 信采用的RS.232接口,其中用到了常用的电平转 换芯片MAX232,设计图如图1所示。 (1) 图1仿真线路图 输人仿真波形如图2所示,由图可见,输出的 基波电流5 mA,奇次谐波从3~l9次电流均为 0.5 mA,即为基波的10%输入的波形复杂,经过 信号调理线路的输出结果是正确的;偶次谐波均 为零,经电流/电压转换、绝对值线路、脉冲形成线 路后的波形。 一57— 低压电器(2011No.15) 电流转换为电压 。二 二二 转换为绝对值 ]厂] 01 1111110 l0lI111 1 采样标志 图2输入、输出的仿真波形 2 软件设计 单片机用c编程,具有编程效率高、可读性 和可移植性强等优点。本设计采用MCC18的c 编译器,所编制的软件调试方便,容易移植到PIC 其他型号甚至其他公司的单片机中。 根据傅里叶级数的分解式,任意的周期函数 (o)t)的第n次谐波的实部 与虚部 可用下 式计算: W ,, Rn=I (t)COS ntot dt (4) r, I =J (t)sin ntot dt (5) 而在单片机应用中,需按离散式计算: XRn= cos(nk ) (6) = sin(nk ) (7) X = ̄/碾 +XI2 (8) 式中 ——第k次采样值 ——第n次谐波的有效值 可见,计算谐波时,要计算正弦、余弦值,显 然,这在单片机程序中用查表的方式比较方便。 为了提高计算速度,软件中将正弦、余弦值放大 l 000倍后取整数,供查表用的常数数组是用VB 高级语言自动输出表格如下: . const int Ssin[40]={0,156,309,454,588,707,809,891, 951,988,1000,988,951,891,809,707,588,454,309,156, 0,一156,一309,一454,一588,一707,一809,一891, 一951,一988,一1000,一988,一951,一891,一809,一707, 一588,一454,一309,一156} eonst int Ccos[40]={1000,988,951,891,809,707,588, 一58— ・测试技术・ 454,309,156,0,一156,一309,一454,一588,一707, 一809,一891,一951,一988,一1000,一988,一951,一891, 一809,一707,一588,一454,一309,一156,0,156,309, 454,588,707,809,891,951,988} 限定词“const”是让这些数据于程序存储器, 把0。一360。分隔为40等分,即每隔9。给出一个 值得到的。实际上,只要从出0。一45。的正弦(或 余弦)表经过计算,就可获得完整的正弦、余弦。 但为了减少计算,且由于所选用的单片机的程序 存储器容量足够大,故把需要的正弦、余弦表完整 给出。 程序的整个过程示意如图3所示,用一变量 FUN控制整个程序的执行过程。当FUN:0时, 只允许RBO/INT中断;当RBO/INT下降沿中断 时,令FUN=1,清TMR1,TMR1开始计时。当下 一次RB0/INT下降沿中断时,令FUN=2,先把得 到的TMR1值计算为频率,并将该时间40等分作 为采样间隔时问,经计算后作为TMR1的初值,此 时,禁止RB0/INT中断,允许TMR1溢出中断;进 行40次A/D采样,每当TMR1溢出中断时进行 一次A/D采样,采样结果存于A/D[]数组中。 当40次采样完成时,令FUN=3,允许TMR0中 断,禁止其他中断;将采样数据经异步串行接口发 出,再进行谐波计算,若为动态显示频率、总的电 压有效值和各次谐波电压有效值,TMR0每隔 2 ms溢出中断一次,进行显示刷新;显示完成后, 又令FUN=0,开始下一个循环。 RBO/INT l l l  Il l  I信号+ l 40次采样 1谐波计算、动誊显示 FUN=0 l FUN=I + FUN:2  lFUN=3 第一个下降沿 第二个下降沿 中断TMRI清零, 中断计算周期、 开始计时 频率,计算采样间 隔时问,开始采样 图3程序采样、计算、显示过程示意图 谐波计算是本程序中的重点,由于采用c语 言编程,程序比汇编程序要简练得多,其计算谐波 子程序如下: void XB(void) {unsigned char i, , ; long ,Y; lfoat al,a2,a3; YXZ1:0;//YXZ1为按照有效值的定义计算 YXZ2=0;//YXZ2为按照各次谐波的均方根计算 ・测试技术・ for(i=0; <Nn;i++)//Nn为常数,每周期采样的 点数,前已定义为40 {al:AD[i]; al=al KV;//KV为系数,常数,由互感器的参数及 线路参数确定 =al: YXZ1=YXZ1+ : k=i: f0r( =0; <Nx;j++)//Nx为常数,要计算的谐波 的最高次数,前已定义为19 {Y= Ceos[k]; RR[j]=RR[j]+y;//RR[]为谐波分量的实部,公共 变量 Y= Ssin[k]; XX[j]=XX[j]+_y;//XX[]为谐波分量的虚部,公共 变量 k=k+i+1: while(k>=Nn)//k为正弦、余弦的查表用的下标, 超出Nn时从头开始 {k=k-Nn;}  }} YXZI=YXZ1/Nn: YXZI=sqrt(YXZ1); for(i=0;i<Nx;i++) {RR[i]=RR[i]/1000;//由于正弦、余弦表为扩大 1000倍,这里恢复原值 XX[i]=XX[i]/1000; al=RR[i]; al=a1 al: a2=XX[i]; a2=a2 a2: a3=al+a2;; a3=sqrt(a3); a3=(1.414213562¥a3)/Nn; W[i]=a3;// []为各次谐波的有效值,公共变量 YXZ2=YXZ2+a3¥a3: YXZ2=sqrt(YXZ2); 3 仿真结果 谐波有效值计算按照式(6)~式(8)编程计 算。几个仿真的局部界面如图4所示。 低压电器(2011No.15) (g)3次谐波的显示标志 (h)3次谐波的有效值 图4显示结果界面 此处,总有效值1和总有效值2分别按下式 计算,即按基波和所有次数的谐波分量的有效值 的均方根值计算: X= √ 2 N (9) /N X= √ 2 (10) 式中: 是采样值(瞬时值); 是按式(6)~(8) 计算第k次谐波有效值。 在仿真输入基波频率为50 Hz,基波电流 =5 mA,奇次谐波从3~19次电流均为 0.5 mA,即为基波的10%,第k次谐波误差 按 下式计算: : —— — (11)L¨  仿真运行得到的结果如表1所示。 (下转第63页) 59— ・测试技术・ 低压电器(2011No.15) 路试验中控制和测量的一体化问题,提供了一种 实现符合测试管理体系和钡0试标准的测量方法, 相较于以PLC+高速数据采集系统为主流的低压 电器测试系统,具有保护安全性级别高,试验数据 可追溯性强,并且在试验数据可追溯的前提下易 于快速构建与试验管理系统的接口等,同时降低 试验系统的人力成本和硬件成本。 【参考文献】 图6短路试验报告界面 [1] 陆俭国,李文雄.低压电器试验技术与检测技术 [J].电工技术,2003(11):6-9. 和软件的采集数据判断试验是否成功,提高系统 [2] GB 14048.2—2o01低压开关设备与控制设备第 的安全性,保证单个试验人员可以操作该系统。 2部分断路器[S].2001. (4)程序执行过程中,对系统操作和发生的 [3]ISO/IEC 17025:2005检测和校准实验室能力认可 各项事件如各种故障信息和操作事件进行记录, 准则[G].2005. 为系统维护提供依据。 [4] 王承,何志伟.基于虚拟仪器的网络化自动测试系 统的构架及实现[D].广州:华南理工大学,2001. 3 结 语 收稿日期:2011一O8—10 基于虚拟仪器的短路试验测控系统解决了短 4 结 语 的精度。仿真结果表明,谐波监测器能监测直到 19次的谐波,且精度较高,有一定的实用性。 利用Proteus仿真,可很好地解决许多复杂的 输入波形的问题,且可与单片机程序同时进行调 【参考文献】 试,是单片机首选的调试仿真软件,特别适合于在 [1]王汝文.电器智能化原理及应用[M].北京:电子 电器中的大电流、高电压、复杂的暂态波形的检测 工业出版社,2006. 与计算的场合。可外扩分辨率更高的A/D转换 [2] 江和.PIC16系列单片机C程序设计与Proteus仿真 芯片,同时将正弦、余弦表的有效位数增加(如扩 [M].北京:北京航空航天大学出版社,2010. 大10 000倍或更高),以进一步提高采样与计算 收稿日期:2010-08—10 欢迎投稿http://lva.chinaelc.0n 一63—