張雷,羅興锜,李輝,白亮,李煒華
(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的英文使用手冊里對具體調用方法也未作詳細說明,使得科研工作者在探討兩個軟件互聯方面,付出一定的時間和精力,本文就具體實現方法給出詳細說明,以期使仿真研究人員能節省大量時間,將精力放在仿真內容的研究上。
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版本。
在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的文件格式。
為了驗證該方法的正確有效性,編寫可以產生正弦波函數的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
仿真結果表明:該方法可實現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.