摘 要:介绍了一种无功补偿控制器中的软件设计。该软件设计巧妙,确保了功率因数角检测的精度,使系统具有较强的抗干扰能力。
关键词:单片机 干扰 软件
0 引 言
随着计算机技术在电网中的应用的进一步发展,单片机控制的无功补偿装置的使用也已经很多。作为微机控制系统,其软件质量的高低直接关系到补偿设备运行状况。另外,微机系统在现场使用时会受到各种噪声干扰,干扰源的存在使得数据采集的误差加大、控制系统失灵、程序运行失常等。微机系统的抗干扰除了硬件技术之外,软件抗干扰也是一个重要的方面。本文从补偿控制器的软件设计的角度出发,论述了一种高效的无功补偿软件编程方法和抗干扰措施,提高了系统的可靠性。
1 无功补偿的硬件
电路原理如图1,它是以单片机8031最小系统为核心的。单片机能根据T0、T1端的脉冲计数后计算出功率因数角,作为投切电容的主要依据,当功率因数角大于18°(功率因数小于0.95)时发出投入电容器指令;当功率因数角小于11°(功率因数大于0.98)时发出切除电容器指令;功率因数角在11°与18°之间时,单片机发出不投亦不切电容指令。与此同时,系统无功电流检测环节检测无功电流余量,当电网无功电流小于单台(组)电容器无功电流量时,轻载信号有效,控制器维持电容投切状况不变,有效的杜绝了反复投切现象的发生。另外,单片机还要对电网过压作出判断,高过压时发出全部切除电容指令;低过压时,发出不投可切电容指令。执行指令由p1口送出。电容投切采取“先投先切后投后切”的循环方式,投切均从P1.0开始。
2 软件设计
本系统的软件包括主程序、子程序和CPU抗干扰程序。子程序又包括功率因数角计算及滤波子程序、延时子程序、自检程序等。
2.1 主程序设计
主程序主要完成初始化、功率因数角的判断、过压和轻载的判断处理、子程序的调用与协调、投切电容指令的发出等功能。其流程图如图2,各主要环节说明如下。2.1.1 计数器工作方式与控制
8031的计数器的计数值用来计算功率因数角,计数器采用方式1工作,计数的启停采用查询方式,由p3.0的电压过零信号控制。其控制寄存器状态字如下:2.1.2 电容器的投切实现
在本系统中R2用于存放当前投切状态,R3用于寄存下次预投电容器号,R4用于寄存下次预切电容器号。投入时,将(R2)+(R3)→(R4)作为本次投入的状态,并将R3中的内容左移一次以备下次投入。程序为:
循环切除时,(R3)+(R4)→(R3)作为本次切除后的状态,再将R4中的内容一次左移以备下次切除。其程序为:
2.2 计算功率因数角子程序及加权滤波
功率因数角与功率因数有对应关系,故通过检测功率因数角作为判据可简化程序的设计,提高效率。本系统每隔一周波做一次计数计算,且持续10秒钟,最后求出功率因数角作为一次判投。为了保证一次判投的准确性,抗击随机干扰,使功率因数角的采样具有平滑性、实时性和灵敏性,采用加权数字滤波。每次采样以后进行一次的运算(其中φi为当前功率因数角,为本次加权值,为前次加权值。这样采样250次后加权系数依次为满足总和为1的约束条件。这使滤波程序大大简化,且精度较高。在每次检测功率因数角的过程中还同时监测高过压和轻载,增加了系统对故障的反应灵敏度。
确良求加权平均值时用RRC右移指令,φi及-1均为奇数或为偶数时不产生误差,当φi与-1有奇偶之分时,φi+-1为奇数,每右移一次使产生0.5°的误差。若考虑φi+-1在250次加权计算中全为奇数的极限状态,加权计算最大误差Sn=最终使功率因数的最大误差为千分之几,可满足对功率因数的控制要求。
3 软件抗干扰设计
(1)CPU抗干扰措施
为了单片机CPU按正常程序运行,尽可能无扰动的恢复系统的正常状态,特设计CPU抗干扰程序,它的功能是减少程序弹飞次数,方法是指令冗余和软件陷阱。指令冗余NOP放在程序中对流程起决定作用或系统工作状态至关重要指令之前。软件陷阱考虑到弹飞程序落在非程序区及程序区指令断裂点时会造成程序混乱执行,为此,在该区用一条指令将捕捉到的程序引向指定地址,该地址对出错处理,并引向主程序。引导程序为:
(2)高过压时延时10秒,以免瞬时过压引起误操作;
(3)数字加权滤波;
(4)对p1口用软件刷新技术;
(5)WATCHDOG看门狗设计防止干扰引起的“飞车”及“死循环”。
4 结 论
经过软件的调试和运行说明:
(1)主程序设计合理,调试简便,方便的实现了补偿电路的循环自动投切;
(2)隔一周波检测功率因数角一次求一次平均值,计算得加权值。此方法简单,减少了数据采集的误差,具有较高的精度;
(3)功率因数决定电容投切减少了软程编制的工作量,节约了微机资源;
(4)设计的软件可作为其它相位检测的借鉴,具有普遍意义。
参考文献
1 周航慈.单片机应用程序设计[M].北京:北京航天航空大学出版社,1991.8
2 丁群.无功补偿器中电容器投切控制[J].电测与仪表,1996.8