張雷,羅興锜,李輝,白亮,李煒華
(1.西安電力高等專科學校,陜西西安 710032;2.西安理工大學,陜西西安 710048;3.商洛供電局,陜西商洛 726000)
電力系統(tǒng)是目前世界上最大的人造復雜系統(tǒng)工程,電力系統(tǒng)的研究工作是以大量的仿真分析為基礎(chǔ)的,電力系統(tǒng)仿真軟件被廣大電力系統(tǒng)的科研工作者所使用[1-2],其中EMTDC/PSCAD(Electro-Magnetic Transient in DC System,PSCAD)是目前世界上被使用和國內(nèi)高度認可的專業(yè)電力系統(tǒng)仿真軟件,該軟件是由Dennis Woodford提出,在曼尼托巴大學的高壓直流輸電中心(Manitoba HVDC Research Center)完成的,尤其是隨著使用者的增多,軟件研發(fā)人員為它開發(fā)了方便用戶的可視化PSCAD圖像操作界面,支持電子電子仿真和非線性控制,它具有精確而完整的元件庫和仿真模型[3],但是在大量計算和智能控制方面有所欠缺[4]。
以數(shù)據(jù)計算及處理聞名的MATLAB軟件,是美國mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設(shè)計的高級計算環(huán)境,主要用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,包括MATLAB和Simulink兩大部分,它具有諸多優(yōu)點:人機交互性強,操作簡單;程序語言易學易用;數(shù)據(jù)處理功能非常強大;圖形處理也令人滿意;功能齊全的工具箱;程序接口實用方便等,它為科學研究、工程設(shè)計和數(shù)值計算等領(lǐng)域提供了全面的解決方案[5-8]。
PSCAD/EMTDC軟件是得到廣泛的國際認可的專業(yè)的電力系統(tǒng)電磁暫態(tài)分析仿真軟件,具有模型精確和高品質(zhì)仿真的優(yōu)點,將MATLAB的強大計算能力和PSCAD軟件的精確仿真結(jié)合起來,將會完美的實現(xiàn)兩個軟件的優(yōu)勢互補[9-12]。
在理論上PSCAD調(diào)用MATLAB是可行的,但是沒有論著對具體的實現(xiàn)技術(shù)進行闡述,而PSCAD的英文使用手冊里對具體調(diào)用方法也未作詳細說明,使得科研工作者在探討兩個軟件互聯(lián)方面,付出一定的時間和精力,本文就具體實現(xiàn)方法給出詳細說明,以期使仿真研究人員能節(jié)省大量時間,將精力放在仿真內(nèi)容的研究上。
PSCAD里調(diào)用MATLAB的原理如圖1所示,對MATLAB模塊而言,假設(shè)有m個輸入變量、n個輸出變量。
圖1 PSCAD調(diào)用MATLAB示意圖Fig.1 The diagram of PSCAD call MATLAB
一般而言,仿真模型是在PSCAD軟件里搭建的,而大量的計算工作需要在MATLAB里進行。
PSCAD/EMTDC軟件里有一個Fortran文件DSDYN,通過它可以調(diào)用Fortran子程序,而這個Fortran子程序可以啟動MATLAB程序并使M文件在MATLAB里運行,從而實現(xiàn)PSCAD與MATLAB之間的數(shù)據(jù)通信,用戶可以根據(jù)仿真需要編寫MATLAB環(huán)境下實現(xiàn)特定計算功能的M文件,數(shù)據(jù)傳輸原理見圖2。
圖2 數(shù)據(jù)的內(nèi)部傳輸原理Fig.2 Data internal transmission principle
本文研究中以可在WINDOWS XP系統(tǒng)運行的較新版本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版本。
在PSCAD軟件里,需要設(shè)置一些參數(shù),使得子程序可以正確讀取MATLAB的安裝路徑和使用Vision Fortran 6.6編譯器。選擇PSCAD里Edit菜單下的Workspace Settings,在Fortran一欄,選擇已經(jīng)安裝的Compaq Visual Fortran Standard Edition 6.6,在MATLAB一欄里,選擇Version 6 or higher,在Library Path里打開MATLAB安裝的路徑。完成以上設(shè)置,可以打開PSCAD里自帶的例程,選擇matlab文件夾里的例程運行,如果可無錯誤運行,則說明PSCAD與MATLAB軟件實現(xiàn)了數(shù)據(jù)通信。
用戶可根據(jù)自己的需要在PSCAD里設(shè)計接口元件,自定義接口元件的設(shè)計有固定的格式和步驟,主要有3個方面:接口元件模塊創(chuàng)建,接口模塊參數(shù)設(shè)置,M文件的編輯。
創(chuàng)建接口元件的過程,按以下步驟操作即可,單擊PSCAD軟件工具欄的New Component,彈出PSCAD Component Wizard-step 1,在Name一欄對接口模塊命名,在Connections一欄,根據(jù)模塊輸入、輸出變量的個數(shù),確定模塊上下左右4個方向上的接線個數(shù)。如果需要在該接口模塊里有下一層頁面,勾選Page Module即可,在該模塊右鍵的Edit Definision下的script無法書寫程序,需要雙擊該模塊,在進入模塊頁面之后,右鍵單擊輸入和輸出變量的Edit Definision然后在script中書寫代碼。在Component Wizard-step 1階段,需要設(shè)置的是輸入或輸出變量名和確定數(shù)據(jù)類型,Dimension在默認狀態(tài)下是未勾選的,數(shù)值是1,它表示的是輸入或輸出變量的維數(shù)為1,如果勾選并改數(shù)值為2,則表示該變量是2維數(shù)組。接連下一步,接口模塊創(chuàng)建完畢。
接口模塊參數(shù)的設(shè)置,選中該模塊,右鍵選擇Edit Definision,需要編輯的部分是Graphic(圖形)、Parameters(參數(shù))、Script(腳本)。
Graphic的編輯,包括圖形的外觀,標簽注釋,雙擊輸入輸出參數(shù)可修改其名稱、類型及其維數(shù)。
Parameters(分類)的編輯,單擊New Category,根據(jù)需要單擊工具菜單按鈕ab(New Text Label)、re(New Input Field)和New Choice Box等,可以在Category Properties欄目下更改分類的名稱和作用條件(Enabled When)。一般可以創(chuàng)建兩個Text Label,雙擊創(chuàng)建好的Text Label,在Text Field Properties里Symbol里對它命名,在Default里要寫上待調(diào)用的MATLAB程序的M文件名,在另一個Text Label里設(shè)置路徑和缺省M文件類型。
在Script編輯部分,需要敲入以下代碼:
#STORAGE數(shù)據(jù)類型:N
IF($Enable.GT.0.9)THEN
STORF(NSTORF)=$input
CALL MLAB_INT(“$Path”,“M文件名”,“數(shù)據(jù)類型”,“數(shù)據(jù)類型”)
$output=STORF(NSTORF+1)
END IF
NSTORF=NSTORF+N-1
其中“數(shù)據(jù)類型”可以是Real(R)、Integer(I)、Logical(L),N表示這種類型的變量的個數(shù)。
至于M文件的編輯,用戶可根據(jù)需要實現(xiàn)的功能在記事本下編輯,也可以再MATLAB軟件里進行編輯,但必須經(jīng)過MATLAB軟件輸出為.M的文件格式。
為了驗證該方法的正確有效性,編寫可以產(chǎn)生正弦波函數(shù)的M文件,在PSCAD/EMTDC軟件里搭建簡易的仿真模型如圖3所示,限于篇幅在此不給出M文件代碼。
圖3所示的仿真模型由受控電壓源和8個負荷組成,負荷參數(shù)設(shè)置為:負荷1~負荷5額定有功100MW,額定無功100 Mvar,負荷6~負荷8額定有功100 MW,額定無功-100 Mvar,電源功率100 MV·A,各個負荷的受控電壓源的輸入是頻率f和電壓v,在變化的f和v的激勵下,各個負荷的有功、無功和電流值會隨之變化,仿真結(jié)果見圖4~圖7所示,而這個變化的激勵是由接口模塊調(diào)用M文件實現(xiàn)的。
圖3 仿真模型圖Fig.3 Simulation model drawing
由圖4、圖5分析可知:在PSCAD中搭建的驗證接口正確與否的模型,為簡單易見,頻率值直接取自M文件所產(chǎn)生的波形,電壓值經(jīng)過30°延遲。對比圖4與圖5,發(fā)現(xiàn)圖5中的頻率和電壓波形符合M文件程序原意。
圖4 MATLAB環(huán)境里M文件產(chǎn)生的正弦波Fig.4 Sine wave produced by M-file in the context of MATLAB
圖5 PSCAD環(huán)境里的電壓及頻率曲線Fig.5 Curve of voltage and frequency in the context of PSCAD
由圖6、圖7分析可知:有功曲線波形跟隨頻率波形變化,無功曲線跟隨電壓波形變化,負荷電力系統(tǒng)有功功率—頻率特性和無功功率—電壓特性曲線;圖7中無功曲線反轉(zhuǎn),對應(yīng)了負荷6~負荷8設(shè)置的無功功率為負值。圖6和圖7中所有負荷的有功和無功數(shù)值之和接近于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
仿真結(jié)果表明:該方法可實現(xiàn)PSCAD/EMTDC調(diào)用MATLAB軟件進行電力系統(tǒng)仿真研究,它融合了兩者的優(yōu)點,仿真結(jié)果精確并彌補了PSCAD/EMTDC環(huán)境里不易實現(xiàn)智能控制的缺點,該調(diào)用方法是可行和有效的,簡易明了,便于讀者操作。
[1] 盧強,梅生偉,孫元章.電力系統(tǒng)非線性控制[M].北京:清華大學出版社,2008.
[2] 于群,曹娜.MATLAB/Simulink電力系統(tǒng)建模與仿真[M].北京:機械工業(yè)出版社,2011.
[3] 林良真,葉林.電磁暫態(tài)分析軟件包PSCAD/EMTDC[J].電網(wǎng)技術(shù),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] 朱桂萍,陳建業(yè).電力電子電路的計算機仿真[M].北京:清華大學出版社,2008.
[5] 尚濤,謝龍漢,杜如虛.MATLAB工程計算及分析[M].北京:清華大學出版社,2011.
[6] 王中鮮.MATLAB建模與仿真應(yīng)用 [M].北京:機械工業(yè)出版社,2010.
[7] 吳天明,趙新力,劉建存.MATLAB電力系統(tǒng)設(shè)計與分析[M].北京:國防工業(yè)出版社,2010.
[8] 張德豐.MATLAB控制系統(tǒng)設(shè)計與仿真 [M].北京:電子工業(yè)出版社,2009.
[9] 楊健維,麥瑞坤,何正友.PSCAD/EMTDC與MATLAB接口研究[J].電力自動化設(shè)備,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接口技術(shù)在繼電保護仿真中的運用[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].北京:國防工業(yè)出版社,2010.