温嘉斌, 满 超, 张 羽
(哈尔滨理工大学,哈尔滨150080)
随着电力系统的快速发展以及快速励磁系统的广泛应用,电力系统低频振荡问题已成为影响电网安全、稳定运行的重要因素之一[1];因而,在电力系统励磁调节器上附加电力系统稳定器(Power System Stabilizer,PSS)的附加励磁控制方案已经得到广泛应用。目前,PSS设计与参数整定的各种方案层出不穷,但所设计的PSS较难放到发电机组上去验证其工作的可靠性与稳定性。本文利用PC机制作一套PSS性能测试系统,使电力系统稳定器的实验和测试研究在实验室里通过计算机完成,节省了大量现场调试时间,减少了对实际机组的依赖。该测试系统的特点在于界面友好、易于操作,在实现方法上大胆地运用Matlab与VB混合编程技术进行彼此之间的数据交换。Matlab是一套集数值分析、矩阵运算、信号处理和图形显示于一体的高性能数学软件[2],而VB可以制作出各种风格的界面,虽然单纯利用Matlab软件便可以实现对PSS功能的测试,但是直接在model文件内对模型参数进行修改相当复杂,不利于多次使用。该测试系统将二者的优势结合到一起,利用Matlab的Simulink平台建立单机无穷大系统仿真模型,通过VB制作系统的前台界面,可以反复操作和修改。与其他的混合编程更为不同的是,本文的混合编程打破了以往只有仿真结束后才能进行数据交换的惯例,通过将仿真过程分成若干仿真单元的方法完成了数据的实时交换,实现单机无穷大系统、测试系统前台界面和被测设备三者之间的即时通信,不仅美化了系统界面,更提高了测试系统的准确程度。该系统既可以对电力系统稳定器的工作性能进行测试,又可以对其参数进行整定,运行稳定,性能可靠。
电力系统低频振荡是指发生在弱联系的互联网之间,或者发电机组和发电机组之间的、由于系统弱阻尼或负阻尼引起的一种功率振荡,其频率一般较低,位于0.1~2.5Hz内,故称之为低频振荡。产生低频振荡的原因主要有两方面:① 远距离、重负荷输电;② 大型发电机普遍采用集成电路和可控硅组成的励磁调节器,加上晶闸管直接励磁和快速励磁系统的广泛使用[3]。
PSS最早是由美国学者Demello和Concodri提出的。它采集发电机端的角速度、功率或频率等参数,经过放大、隔直、超前—滞后、限幅等环节后,将产生的附加励磁控制信号和机端电压一起作为励磁系统的输入。隔直环节使时间t→∞时,PSS的输出为零,而过渡过程时该环节使得动态信号顺利通过,从而使PSS只在动态过程中起作用。相位补偿环节可以使附加力矩与转速偏差Δω同相位,一般由1~3个超前校正环节组成,即n=1~3,一个超前环节最大可以校正电角度30°~40°[4]。限幅环节可以保证系统在受到大扰动时,不会造成发电机端的电压剧烈变化。其基本原理是在自动电压调节的基础上,通过把Δω、功率偏差Δp、频率偏差Δf中的一种或两种信号作为附加控制信号,产生与输入信号同向的附加力矩,PSS通过发电机励磁控制来增强系统抑制振荡的阻尼,从而提高系统的动态稳定性[5]。数学模型如图1所示,其中:K为放大环节的放大系数;T为隔直环节(微分环节)时间常数;S为时间变量t在复数域的表示;T1n,T2n,T1d,T2d均为超前滞后环节的时间常数;Vs为PSS输出的控制信号。
图1 PSS数学模型
Matlab提供了与C++,Fortran的程序接口,但并没有提供直接与VB的接口。实现Matlab与VB的对接,可以使用一般动态链接库、动态数据交换(Dynamic Data Exchange,DDE)及 ActiveX组件等多种方法。动态链接库技术通常是用Matlab编译器将m文件编译成动态链接库文件,然后在VB环境中声明以后调用库中的函数,实现一定的功能。当库函数有输入和返回值时常出现数据类型不兼容等情况;而DDE虽然允许应用程序之间共享数据,但其实现动态数据交换功能的函数也较复杂,故本文采用了ActiveX技术。
Microsoft把所有以COM为基础的技术统称为ActiveX技术,它既不是一种程序语言,也不是一种操作系统,而是一种协议。其允许应用程序或组件控制另一个应用程序或组件的运行,可以使VB能够在不了解应用程序实现细节的情况下控制自动化对象。Matlab实现了ActiveX自动化服务支持,在VB下通过ActiveX自动化接口可将Matlab作为VB语言的一个ActiveX组件调用。可以认为,Matlab是自动化服务器,VB为自动化控制器,可由VB编程驱动Matlab。
Matlab ActiveX自动化服务的主要功能包括在Matlab工作空间执行Matlab命令,以及直接从Matlab工作空间存取矩阵等。Matlab提供了一个自动化对象,其外部名为Matlab Application,支持COM技术,其他程序(如VB)通过COM技术提供的函数,得到自动化服务器对象支持的指针,并通过调用接口函数控制和使用自动化对象。在VB中创建Matlab ActiveX对象后,就可以使用该对象所包含的各种方法实现对Matlab的调用。对Matlab自动化服务器的使用必须通过服务器提供的3种方法:①Execute方法。该方法接收字符串命令并在Matlab中执行,将结果以字符串形式返回。②GutFullMatrix方法。该方法从指定的工作空间检索一个完整的一维或二维的实型或虚型mxArray,其实步和虚步分别存放到两个单独的double型数组中。③PutFullMatrix方法。该方法将一个mxArray放入指定的工作空间[6]。与DDE技术相比,ActiveX技术在运行时不需要先启动 Matlab,较为方便[7]。
该测试系统由2个m文件、2个Model模型文件、1个VB界面以及1个PCI插槽数据采集卡组成。2个 m 文件分别命名为“ceshi.m”和“chushihua.m”,其作用是把Simulink中产生的数据读到Matlab工作空间,供VB读取和把Matlab工作空间里的控制信号送给Model模型文件;2个Model文件利用Matlab的Simulink建立,分别命名为“ceshi.mdl”和“chushihua.mdl”,主体由单机无穷大系统组成,可以对电力系统的故障进行模拟,检验以Δω为输入信号的PSS对电力系统稳定性的影响;数据采集卡实现单机无穷大仿真系统和现实PSS设备之间的通信,进行数字信号与模拟信号的互相转换。系统的信号流程图由图2所示。
图2 信号流程图
测试系统充分考虑面向对象的需求,为了方便用户操作和查看测试结果,利用VB制作了面向用户的系统界面。系统界面有2个命令按钮、1个图片框、2个文本框和2组单选按钮。2个命令按钮分别控制测试程序的启动和退出;2个文本框分别进行测试结果的数字输出;图片框进行结果的图形输出;4个单选按钮对用户关心的参数输出进行选择,还可以进行投入PSS和不投入PSS的对比测试;另有3个单选按钮对系统故障模式进行设置。测试结果可同时进行数字输出和图形显示,既直观,又便于对结果进行细致分析。
单机无穷大系统作为测试PSS的直接载体,其组成是否合理关系到测试结果的准确性。本文所建立的单机无穷大系统由同步发电机、厂用负荷、变压器、双回路输电线和无穷大系统等组成。其中,发电机带有快速励磁系统;变压器为Yd11接法,高压侧星接可以接地,低压侧角接对系统运行有利;双回路输电线为“π”型输电线路;无穷大系统由三相无穷大电源和负载组成。系统结构如图3所示。
图3 单机无穷大系统示意图
发电机额定功率Pn=200MW,额定电压Un=13.8kV,额定频率fn=50Hz,其余参数均由 Matlab的powergui模块自动生成。其中:直轴同步电抗Xd=1.305p.u;直轴暂态电抗X′d=0.296p.u;直轴次暂态电抗X″d= 0.252p.u;交轴同步电抗Xq=0.474p.u;交轴次暂态电抗X″q= 0.243p.u;漏抗XL=0.184p.u;直 轴 暂 态 开 路 时 间 常 数T′d0=4.49S;直轴次暂态开路时间常数T″d0=0.068 1S;交轴次暂态短路时间常数T″q=0.051 3S。
主调节器一阶系统增益Ka=300,主调节器一阶系统时间常数Ta=0.003,励磁机一阶系统增益Ke=1,励磁机一阶系统时间常数Te=0,一阶导数反馈系统增益Kf=0.001,一阶导数反馈系统时间常数Tf=0.1。
型号:PCI8320;
模拟输入部分:单端8路输入通道,0~5V信号输入范围,8位A/D转换分辨率,系统综合误差≤0.4%F.S,其中,F.S为满量程误差。
模拟输出部分:4路输出通道,支持电压输出或电流输出,D/A转换器件为DAC0832,8位D/A转换分辨率,D/A转换综合建立时间不超过5μs,D/A转换综合误差为电压方式≤0.4%F.S、电流方式≤1%F.S。
根据传统电力系统稳定器的基本模型,结合模拟电路用电阻、电容和运算放大器等器件制作了一个简易的电力系统稳定器,其传递函数
模拟电路如图4所示,其中,R1=30kΩ,R2=1Ω,R3=100kΩ,R4=10kΩ;电容C1=1μF,C2=10μF,C3=8μF,C4=5μF;接地电阻Rf=1kΩ。
图4 PSS模拟电路
为使PSS运行在一个更为接近实际情况的环境中,测试系统由Simulink搭建了2个单机无穷大系统模型。该模型包括同步发电机、信号分离器、励磁调节器、厂用负荷、变压器、断路器、双回路输电线路、无穷大系统、三相故障模块以及励磁调节器扰动输入等组成,具体结构如图5所示。
测试系统为了实现被测设备与Simulink模型文件之间数据的实时交换,要先把模型文件中的发电机转速偏差参数离散化并存储到Matlab工作空间,而Simulink的模型文件在仿真运行期间又不能把数据存储到Matlab工作空间,只有在仿真停止或暂停的情况下才能把数据存到Matlab工作空间供外部文件使用[9]。然而将仿真程序停止显然是无法实现实时传递数据的。虽然Matlab自身可以通过break方法暂停仿真程序,但是,VB通过AxtiveX控件调用Matlab程序时不支持break方法,故本系统采用了将20s的仿真过程分成2 000个小的仿真单元的方法,每一小步仿真作为一个独立的仿真单元,仿真时间为0.01s。为了能形成一个持续的仿真过程,每一个仿真单元运行结束时都自动记录模型的最终状态,并且在下一次仿真开始时重新读入该状态作为本次仿真的初始状态。这样,每一个仿真单元结束运行后,转速偏差信号都可以存储到工作空间,从而实现被测设备与模型文件的通信,而且当2 000个仿真单元运行完,便可近似地认为是20s的连续仿真实现了数据的实时交换。单机无穷大系统仿真时用变步长ode23tb算法,仿真时间设置为0.01s,因为该模型会被VB调用2 000次,所以测试系统结束后相当于该模型连续仿真20s。
图5 仿真系统结构图
本次试验以0.5s时发生A相对地短路故障,且断路器在该时间点跳闸,0.6s时故障排除,断路器重合闸为例,得到如图6、7所示的测试结果。
图6 投入PSS的测试结果
图7 未投入PSS的测试结果
图6中以投入PSS运行时的功率角δ和Δω为观察对象。系统在发生A相断路故障后短路故障后,在PSS的作用下,Δω迅速恢复稳定,用时不到2s,且δ波动较小;而图7中以未投入PSS作用的δ和Δω为观察对象,在这一组试验中频率约1Hz的震荡次数明显增加,发电机Δω经过大约15s才趋于零,而且最终导致了发电机的δ发生偏移,并且在短路故障发生的一瞬间δ幅值波动约120°,会导致发电机电磁功率剧烈震荡,对电力系统构成严重威胁。从实验结果可以看出,所测试的电力系统稳定器能有效地抑制系统低频振荡,从而证实该测试系统可以测试PSS对电力系统低频振荡的抑制,并能对所给PSS参数的合理性进行验证。
本文分析了电力系统低频振荡的抑制措施以及PSS对低频振荡的抑制作用。建立了较为合理的单机无穷大系统模型和面向用户的系统界面,在VB与Matlab混合编程的基础上,尝试了将仿真过程分成若干小的仿真单元的方法,实现了VB与Matlab之间的实时数据交换。对该测试系统进行了实验,实验结果证实:该测试系统界面友好、性能稳定,可以测试PSS对电力系统低频振荡的抑制作用,并能进行PSS的参数整定,有很好的实用价值。
[1]孟凡超,吴 龙.发电机励磁技术问答与事故分析[M].北京:中国电力出版社,2009.
[2]赵毅君,李 立,邱 泓,等.基于VB和Matlab混合编程的可视化数据采集与处理软件的研究[J].湖南工程学院学报,2008,18(1):1-4.
[3]蔺 红,晁 勤.基于Matlab电力系统稳定器参数优化仿真分析[J].水力发电,2008,34(6):77-78.
[4]温嘉斌,汤 伟.基于 Matlab的PSS的仿真分析[J].上海电器技术,2010(1):39-43.
[5]He P,Wang K W,Tse C T,et al.Studies of the improvement of probabilistic PSSs by using the single neuron model[J].International Journal of Electrical Power&Energy Systems,2007,29(3):217-221.
[6]龚运新,季越江,陈 华.Visual Basic在自动控制中的编程技术[M].北京:清华大学出版社,2008:145-151.
[7]黎洪生,龚 荣,陈 雷.基于 Matlab与VB混合编程的电力系统仿真设计[J].电力科学与工程,2004(3):44-46.
[8]李维波.MATLAB在电气工程中的应用[M].北京:中国电力出版社,2007:45-46.