王印松,賈思宇,劉佳微
(華北電力大學控制與計算機工程學院,河北 保定 071003 )
建模仿真是研究解決電力系統問題的重要方法,所以選用何種軟件進行建模和仿真是面臨的主要問題。
近幾年國內外主流的電力系統仿真平臺有電磁暫態仿真軟件PSCAD 以及MATLAB 中所包含的可視化仿真平臺Simulink 等。在眾多仿真軟件中,MATLAB/Simulink 是當前高校和科研機構使用較多的仿真軟件,但存在以下不足:MATLAB 使用成本高,作為一款商業軟件,大部分高校和實驗室沒有財力購買正版的MATLAB;MATLAB 源碼封閉,Simulink 模塊庫中元件模型的內部代碼是嚴格保密的,用戶只能通過固定界面來定義模型內部參數,查閱和改變元件內部代碼是禁止的,所以完善和維護模型的后期工作是比較困難的[1]。
開源軟件Scilab 越來越受到國內科研人員的關注。陳京元、甘光勇等人利用Scilab 開發出自適應光學建模和仿真所需要的工具箱,并介紹了基本結構及可用功能模塊,同時給出幾個簡單應用實例[2];董興華團隊利用Scilab 開發出Scicom 通信仿真的工具箱[3];李勇波等人在Linux 環境下利用開源軟件Scilab 建立數學仿真模型,進行了某型探空火箭的半實物仿真試驗[4]。
本文介紹一種在開源軟件Scilab/Xcos 進行電力元件開發的新方法,可以避免上述MATLAB 使用的不足。在Xcos 框圖編輯器中進行電力系統元件的開發,建立網側變流器及其控制系統的模型,并且驗證仿真結果的合理性。
Scilab(Science Laboratory)是由INRIA 開發的一款開源科學計算軟件,在21 世紀初期發布了Scilab的第一個版本,后面INRIA 成立了專門的協會來對軟件進行后續的開發和維護,Scilab發展到現在已經相當成熟[5]。Scilab 的功能與用法跟MATLAB 相似,但它是免費的開源科學計算軟件,Scilab已經可以滿足大部分高校師生和科研人員的使用,能夠實現信號的分析與處理、矩陣的運算、圖像顯示與處理,數學建模、深度學習等功能。
Xcos是一個可用于創建動態系統模型的框圖編輯器,其提供了一個可用于建模的模塊庫。Scicos 提供三種用戶自定義模塊:超級模塊功能、Scifunc 模塊、使用C或Scilab程序動態鏈接加載到Scilab,分別對應Simulink 中的subsystem、MATLAB function 以及S function 模塊,但在Xcos 還支持面向物理模型的非因果建模語言Modelica,可以輕松地描述不同類型的工作組件(例如彈簧、電阻、離合器等)工作特性。
Scilab/Xcos 使用方便,是目前可以替代MATLAB/Simulink 等對電力系統和控制系統建模仿真商業軟件的開源軟件。
直流側電源通過背靠背結構的全功率變流器并網[6-9],網側變流器拓撲結構如圖1所示。

圖1 網側變流器拓撲結構
dq坐標系下網側變流器數學模型方程如式(1)所示。

式中:ed、eq、id、iq分別為電網側電壓和電流的d、q軸分量;ud、uq分別為變流器側的電壓d、q軸分量;ω為電網同步角頻率。
網側變流器承擔著電能并網的任務[10],為了使并網電流相位與電網電壓相位相關,引入鎖相環來獲取電網電壓的相位[11-13]。由式(1)分析得知d、q軸電流的大小與電壓ud、uq和耦合項ωLid、ωLiq都有關系,想要同時消除耦合項的影響,網側變流器的控制策略采用的是鎖相環結合前饋解耦雙閉環控制的方法[14-16]。如式(2)所示。

即將PI 調節器引入id和iq的控制之中就可以得到,同時為了得到控制電壓量ud和uq,將式(1)中的兩個耦合項ωLid和ωLiq加入中,再進行dq到αβ(兩項靜止)坐標系變換,之后采用SVPWM 調制方法來控制逆變器完成直流到交流操作。網側變流器控制系統,如圖2所示。

圖2 網側變流器控制系統
空間矢量脈寬調制方式(Space Vector Pulse Width Modulation,SVPWM)主要有電壓利用率高、動態響應快等優點[17]。在空間和時間上的正弦性是SVPWM 的一個顯著特點,其經常應用在整流器和逆變器的控制系統中。SVPWM 調制方式主要有四個步驟:電壓矢量扇區的確定、電壓矢量作用時間的計算、比較時間的確定、PWM 波形的產生。搭建好的SVPWM模型如圖3所示。

圖3 SVPWM仿真模型
Xcos 以模塊庫的形式提供了一些常用模塊,但其種類并不像Simulink 模塊庫那么全面。Xcos 中的模塊對于簡單的控制系統設計、信號處理分析是夠用的,但是面對一些復雜的控制系統搭建或者電力、熱力其他領域的建模時就需要開發某些特定功能的元件。
在Scilab/Xcos 中,每一個元件都是由接口函數(Interface_function)和計算函數(Computational_function)組成。元件的外觀、顏色、接口的類型和輸入輸出接口的個數、變量的初始值等信息都是由接口函數確定的。元件里面輸入和輸出變量之間的邏輯關系是由計算函數決定的。常用元件開發模塊及其功能介紹見表1。

表1 元件開發模塊
Xcos 中的元件開發過程,可以根據模型應用的場合和復雜程度,采取不同的實現方法,Xcos中有三種元件開發的方法。
方法一通過從模塊庫中復制和粘貼模塊到超級模塊編輯器窗口,再相互連接即可,設置好輸入輸出,然后使用超級模塊(Super block)封裝,在一個超級模塊內部也可以嵌套多個超級模塊。
方法二是利用模塊庫自定義函數頁面里的C block或者Modelica block 模塊來開發新的元件,模塊的參數設置頁面相當于實現了新元件的接口函數功能,確定好參數后進入模塊的計算函數編寫窗口,根據元件功能使用C 語言或者Modelica 語言編寫函數。
方法三從接口函數到計算函數完全由用戶自己開發定義。使用Scilab 語言編寫接口函數,計算函數根據元件功能需求選擇合適的語言編寫。
控制系統中的元件一般使用C 語言模塊來開發,控制系統的元件有明確的輸入與輸出接口,在Scilab中這樣的接口定義為顯式接口,而電力系統元件的接口大多為隱式接口(兩側的端口沒有明確的輸入輸出標志,端口之間滿足基爾霍夫電流電壓定律這樣的約束條件),帶有隱式接口元件的開發就需要用到Modelica block模塊,Modelica語言是一種非因果(通常用于創建面向原理的物理模型設計)建模語言,非常適合電力、機械、流體、熱學等系統的建模。
下面以電力系統中的可控電壓源和IGBT 為例進行新元件的開發。
接口函數的定義。明確所建立元件的接口,可控電壓源的接口,兩個隱式接口和一個顯式接口,兩個隱式接口就是電壓源的兩端,顯式接口用來接收電壓的數字信號,輸入輸出端口的類型中“E”代表顯式接口,“I”代表隱式接口,由于電壓信號從外部給定,所以不需要定義其他模塊參數,具體端口設置如圖4所示,確定即可進入計算函數編輯界面。

圖4 Modelica block參數設置
定義好了新元件的接口函數,可控電壓源元件的計算函數示例如下。


還建立了可控電流源、三相變壓器等元件,具體過程不再描述,建立好的元件可以直接添加進Xcos的模塊庫中,以便下次使用。
在Scilab/Xcos 平臺上搭建的網側變流器及其控制模塊仿真模型如圖5 所示,其中網側變流器的參數見表2。

圖5 網側變流器仿真模型

表2 網側變流器主要參數
根據建立的模型可得變流器在逆變狀態下仿真結果。為了便于觀察,下面圖像中的變量都經過了標幺化處理,圖6 為并網電流與電網電壓相位圖,圖7為并網電流仿真波形。

圖6 并網電流與電網電壓相位

圖7 并網電流仿真波形
從仿真結果可以看出網側變流器實現將直流電逆變成交流電的功能,同時實現了并網電流與電網電壓同頻反相功能,驗證了所開發元件和建立鎖相環模型的正確性。
可控電壓源給定一個變化的擾動信號來模擬機側的擾動,機側的串聯電阻值為0.1 Ω,擾動信號在0.07 s 由570 V 躍升到800 V,再經過0.04 s 回到570 V。仿真結果如圖8所示。

圖8 擾動時的直流側電壓
從圖8 中的仿真結果可以看出,在三相平衡對稱電網電壓下機側電壓發生變化時,直流側電壓U可以很好跟蹤系統給定及抵抗外界的干擾。驗證了控制系統模型搭建的正確性。
本文提出在Scilab/Xcos 平臺上將建模語言Modelica引用到網側變流器的元件開發中,擴展了模塊庫中電力系統元件種類,完成了網側變流器及其控制系統元件級模型的搭建,并驗證了在開源軟件平臺上所開發元件以及所搭建模型的正確性。
在建模過程中也注意到Scilab 仿真軟件的不足之處,Modelica 語言開發模塊的界面不能更改;仿真速度與Simulink 比也要慢一些;操作界面比較粗糙還需要進一步的優化提升;最新版本6.1中還存在一些bug 需要修復。但是由于軟件的開源性,其擴展性很強,一些問題可以通過努力解決。從功能性的角度來看,Scilab 軟件可以勝任大學、研究所等機構在電力系統方向的教學科研任務的,Scilab軟件不失為一條在電力系統領域建模仿真的新途徑。