APP下载

PSCAD/EMTDC调用MATLAB的方法研究

2012-10-23张雷罗兴锜李辉白亮李炜华

电网与清洁能源 2012年12期
关键词:数据类型调用负荷

张雷,罗兴锜,李辉,白亮,李炜华

(1.西安电力高等专科学校,陕西西安 710032;2.西安理工大学,陕西西安 710048;3.商洛供电局,陕西商洛 726000)

电力系统是目前世界上最大的人造复杂系统工程,电力系统的研究工作是以大量的仿真分析为基础的,电力系统仿真软件被广大电力系统的科研工作者所使用[1-2],其中EMTDC/PSCAD(Electro-Magnetic Transient in DC System,PSCAD)是目前世界上被使用和国内高度认可的专业电力系统仿真软件,该软件是由Dennis Woodford提出,在曼尼托巴大学的高压直流输电中心(Manitoba HVDC Research Center)完成的,尤其是随着使用者的增多,软件研发人员为它开发了方便用户的可视化PSCAD图像操作界面,支持电子电子仿真和非线性控制,它具有精确而完整的元件库和仿真模型[3],但是在大量计算和智能控制方面有所欠缺[4]。

以数据计算及处理闻名的MATLAB软件,是美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高级计算环境,主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,包括MATLAB和Simulink两大部分,它具有诸多优点:人机交互性强,操作简单;程序语言易学易用;数据处理功能非常强大;图形处理也令人满意;功能齐全的工具箱;程序接口实用方便等,它为科学研究、工程设计和数值计算等领域提供了全面的解决方案[5-8]。

PSCAD/EMTDC软件是得到广泛的国际认可的专业的电力系统电磁暂态分析仿真软件,具有模型精确和高品质仿真的优点,将MATLAB的强大计算能力和PSCAD软件的精确仿真结合起来,将会完美的实现两个软件的优势互补[9-12]。

在理论上PSCAD调用MATLAB是可行的,但是没有论著对具体的实现技术进行阐述,而PSCAD的英文使用手册里对具体调用方法也未作详细说明,使得科研工作者在探讨两个软件互联方面,付出一定的时间和精力,本文就具体实现方法给出详细说明,以期使仿真研究人员能节省大量时间,将精力放在仿真内容的研究上。

1 软件的接口原理

PSCAD里调用MATLAB的原理如图1所示,对MATLAB模块而言,假设有m个输入变量、n个输出变量。

图1 PSCAD调用MATLAB示意图Fig.1 The diagram of PSCAD call MATLAB

一般而言,仿真模型是在PSCAD软件里搭建的,而大量的计算工作需要在MATLAB里进行。

PSCAD/EMTDC软件里有一个Fortran文件DSDYN,通过它可以调用Fortran子程序,而这个Fortran子程序可以启动MATLAB程序并使M文件在MATLAB里运行,从而实现PSCAD与MATLAB之间的数据通信,用户可以根据仿真需要编写MATLAB环境下实现特定计算功能的M文件,数据传输原理见图2。

图2 数据的内部传输原理Fig.2 Data internal transmission principle

本文研究中以可在WINDOWS XP系统运行的较新版本PSCAD 4.2.0 professional为例进行研究,该软件自身配备的是EGCS/GUN Fortran 77编译器,而软件接口需要在VISIO Fortran 90及以上标准下编译运行,因此需要在安装PSCAD 4.2.0 professional软件的时候不选中自带GUN Fortran 77编译器,可以使用Compaq Vision Fortran 6.6及MATLAB7.0版本。

2 具体实现方法

在PSCAD软件里,需要设置一些参数,使得子程序可以正确读取MATLAB的安装路径和使用Vision Fortran 6.6编译器。选择PSCAD里Edit菜单下的Workspace Settings,在Fortran一栏,选择已经安装的Compaq Visual Fortran Standard Edition 6.6,在MATLAB一栏里,选择Version 6 or higher,在Library Path里打开MATLAB安装的路径。完成以上设置,可以打开PSCAD里自带的例程,选择matlab文件夹里的例程运行,如果可无错误运行,则说明PSCAD与MATLAB软件实现了数据通信。

用户可根据自己的需要在PSCAD里设计接口元件,自定义接口元件的设计有固定的格式和步骤,主要有3个方面:接口元件模块创建,接口模块参数设置,M文件的编辑。

创建接口元件的过程,按以下步骤操作即可,单击PSCAD软件工具栏的New Component,弹出PSCAD Component Wizard-step 1,在Name一栏对接口模块命名,在Connections一栏,根据模块输入、输出变量的个数,确定模块上下左右4个方向上的接线个数。如果需要在该接口模块里有下一层页面,勾选Page Module即可,在该模块右键的Edit Definision下的script无法书写程序,需要双击该模块,在进入模块页面之后,右键单击输入和输出变量的Edit Definision然后在script中书写代码。在Component Wizard-step 1阶段,需要设置的是输入或输出变量名和确定数据类型,Dimension在默认状态下是未勾选的,数值是1,它表示的是输入或输出变量的维数为1,如果勾选并改数值为2,则表示该变量是2维数组。接连下一步,接口模块创建完毕。

接口模块参数的设置,选中该模块,右键选择Edit Definision,需要编辑的部分是Graphic(图形)、Parameters(参数)、Script(脚本)。

Graphic的编辑,包括图形的外观,标签注释,双击输入输出参数可修改其名称、类型及其维数。

Parameters(分类)的编辑,单击New Category,根据需要单击工具菜单按钮ab(New Text Label)、re(New Input Field)和New Choice Box等,可以在Category Properties栏目下更改分类的名称和作用条件(Enabled When)。一般可以创建两个Text Label,双击创建好的Text Label,在Text Field Properties里Symbol里对它命名,在Default里要写上待调用的MATLAB程序的M文件名,在另一个Text Label里设置路径和缺省M文件类型。

在Script编辑部分,需要敲入以下代码:

#STORAGE数据类型:N

IF($Enable.GT.0.9)THEN

STORF(NSTORF)=$input

CALL MLAB_INT(“$Path”,“M文件名”,“数据类型”,“数据类型”)

$output=STORF(NSTORF+1)

END IF

NSTORF=NSTORF+N-1

其中“数据类型”可以是Real(R)、Integer(I)、Logical(L),N表示这种类型的变量的个数。

至于M文件的编辑,用户可根据需要实现的功能在记事本下编辑,也可以再MATLAB软件里进行编辑,但必须经过MATLAB软件输出为.M的文件格式。

3 仿真研究

为了验证该方法的正确有效性,编写可以产生正弦波函数的M文件,在PSCAD/EMTDC软件里搭建简易的仿真模型如图3所示,限于篇幅在此不给出M文件代码。

图3所示的仿真模型由受控电压源和8个负荷组成,负荷参数设置为:负荷1~负荷5额定有功100MW,额定无功100 Mvar,负荷6~负荷8额定有功100 MW,额定无功-100 Mvar,电源功率100 MV·A,各个负荷的受控电压源的输入是频率f和电压v,在变化的f和v的激励下,各个负荷的有功、无功和电流值会随之变化,仿真结果见图4~图7所示,而这个变化的激励是由接口模块调用M文件实现的。

图3 仿真模型图Fig.3 Simulation model drawing

由图4、图5分析可知:在PSCAD中搭建的验证接口正确与否的模型,为简单易见,频率值直接取自M文件所产生的波形,电压值经过30°延迟。对比图4与图5,发现图5中的频率和电压波形符合M文件程序原意。

图4 MATLAB环境里M文件产生的正弦波Fig.4 Sine wave produced by M-file in the context of MATLAB

图5 PSCAD环境里的电压及频率曲线Fig.5 Curve of voltage and frequency in the context of PSCAD

由图6、图7分析可知:有功曲线波形跟随频率波形变化,无功曲线跟随电压波形变化,负荷电力系统有功功率—频率特性和无功功率—电压特性曲线;图7中无功曲线反转,对应了负荷6~负荷8设置的无功功率为负值。图6和图7中所有负荷的有功和无功数值之和接近于100 MV·A,与电源出力基本一致。

图6 负荷1~负荷4的有功和无功曲线Fig.6 Active and reactive powers of load 1 to load 4

图7 负荷5~负荷8的有功和无功曲线Fig.7 Active and reactive powers oflLoad 5 to load 8

4 结论

仿真结果表明:该方法可实现PSCAD/EMTDC调用MATLAB软件进行电力系统仿真研究,它融合了两者的优点,仿真结果精确并弥补了PSCAD/EMTDC环境里不易实现智能控制的缺点,该调用方法是可行和有效的,简易明了,便于读者操作。

[1] 卢强,梅生伟,孙元章.电力系统非线性控制[M].北京:清华大学出版社,2008.

[2] 于群,曹娜.MATLAB/Simulink电力系统建模与仿真[M].北京:机械工业出版社,2011.

[3] 林良真,叶林.电磁暂态分析软件包PSCAD/EMTDC[J].电网技术,2000,24(1):65-66.LIN Liang-zhen,YE Lin.An introduction to pscad/emtdc[J].PowerSystemTechnology,2000,24(1):65-66(in Chinese).

[4] 朱桂萍,陈建业.电力电子电路的计算机仿真[M].北京:清华大学出版社,2008.

[5] 尚涛,谢龙汉,杜如虚.MATLAB工程计算及分析[M].北京:清华大学出版社,2011.

[6] 王中鲜.MATLAB建模与仿真应用 [M].北京:机械工业出版社,2010.

[7] 吴天明,赵新力,刘建存.MATLAB电力系统设计与分析[M].北京:国防工业出版社,2010.

[8] 张德丰.MATLAB控制系统设计与仿真 [M].北京:电子工业出版社,2009.

[9] 杨健维,麦瑞坤,何正友.PSCAD/EMTDC与MATLAB接口研究[J].电力自动化设备,2007,27(11):83-86.YANG Jian-wei,MAI Rui-kun,HE Zheng-you.Interface between PSCAD/EMTDC and MATLAB[J].Electric Power Automation Equipment,2007,27(11):83-87(in Chinese).

[10]钟波,赵华军.PSCAD/EMTDC程序与MATLAB语言接口的研究[J].广东电力,2005,18(8):28-30.ZHONG Bo,ZHAO Hua-jun.Study on pscad/emtdc-matlab inerface[J].Guangdong Electric Power,2005,18(8):28-30(in Chinese).

[11]袁欣.PSCAD/EMTDC与MATLAB接口技术在继电保护仿真中的运用[J].电力学报,2010,25(3):214-217.YUAN Xin.The appl ication of the interface technique between PSCAD/EMTDC and Matlab in power system simulation[J].Journal of Electric Power,2005,18(8):28-30 (in Chinese).

[12]董振海.MATLAB编译程序和外部接口[M].北京:国防工业出版社,2010.

猜你喜欢

数据类型调用负荷
详谈Java中的基本数据类型与引用数据类型
如何理解数据结构中的抽象数据类型
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
基于SeisBase模型的地震勘探成果数据管理系统设计
基于系统调用的恶意软件检测技术研究
相似度计算及其在数据挖掘中的应用
防止过负荷时距离保护误动新判据
主动降负荷才是正经事
负荷跟踪运行下反应堆一回路控制系统仿真与验证