湖北民族學院 張 俊 完顏幸幸 邢潤國 陳坤燚 譚必燈
隨著計算機技術的發展,數字仿真技術也逐漸發展起來,目前已經成為研究電力系統的有效手段之一,MATLAB/simul ink為電力系統數字仿真提供了便捷的平臺。迄今,有許多學者利用simul ink作了大量的電力系統仿真研究,然而,這些研究多是以解決某一特殊問題而設計的仿真模型,具有較強的針對性,不適合用于電力系統實驗教學。利用圖形用戶界面的直觀性、可調性、便捷性可以很好地向學生們展示電力系統實驗的實驗原理和過程。從以上分析來看,本文借助MATLAB/simul ink方便、快捷的電力系統數字仿真能力以及MATLAB/GUI的界面制作功能來研制具有通用性、直觀性、系統性的電力系統數字實驗平臺具有重要意義。
本仿真平臺的設計流程圖如圖1所示。用戶通過主界面選擇實驗項目,仿真平臺切換至相應的GUI實驗界面,在這個GUI界面上有一些實驗所要用到的模塊。編輯框用來儲存simul ink參數的值和顯示實驗結果的數據部分,坐標系則用來顯示實驗原理圖和實驗結果中的圖形部分,“電力系統實驗simul ink模型”和“電力電子實驗simul ink模型”用來儲存實驗所需要的simul ink模型,按鈕是運行整個界面的開始鍵,點擊按鈕,GUI界面首先會將編輯框內的數據賦給simul ink模型,然后調用并運行該模型,運行結束后的實驗結果將顯示在坐標系和編輯框內,其縮放比例可以通過修改用戶界面的編輯框內的值來進行調整。為便于對圖像進行更多的后期處理,本平臺還將自動創建了f igure處理框。

圖1 系統結構圖
在明確系統功能后,搭建完成主界面框圖。在這個界面中設計了兩個坐標系:上方坐標系用來顯示實驗的原理圖,下方坐標系用來顯示實驗的結果圖;設計了靜態文本框,用來顯示控件功能說明;設計了按鈕,用于開始運行simul ink模型;設計了編輯框,用于對simul ink模型中相應元件賦值和顯示實驗數據;建立一級菜單“電力系統實驗”、“電力電子實驗”,并在相應菜單下建立子菜單項,對應于兩類實驗的各個子實驗。由于每個實驗的控制參數和輸出結果都不同,一個界面難以滿足所有實驗需求,所以每一個實驗都需要搭建獨有的界面,這些界面可以通過點擊一級菜單下的子菜單來相互切換。
界面搭建完成后會生成相應的m文件,通過在m文件中編寫函數來給相應控件賦予相應的功能。
(1)電壓、電阻、電抗編輯框的功能實現。將simulink中的元件值賦成變量,例如為k,則用:k=str2num(get(handles.edit1,’string’));語句將GUI界面中編輯框中的的值賦值給k,這樣就可以隨意在GUI界面更改simulink模型里的各個元件參數值,也因此可以獲得不同參數值下的輸出結果。這里我們已經設定了其初始值。
(2)功率曲線結果圖,控制信號結果圖按鈕的功能實現。使用options = simset(‘SrcWorkspace’,
‘current’);sim(‘fengli’,[],options);會在按鈕激活時運行名為guangfu的simulink模型,并通過plot(tout,yout)和plot(tout,yout1)繪圖函數將所得結果顯示在相應的坐標系中。
(3)測量值編輯框功能實現。其功能是將莫一時刻運行的結果值顯示到編輯框內,回調函數為:
w=q/3.5591e-004;
e=round(w);
y=yout(e);
set(handles.edit4,’string’,y);
其中q值我們所需測量的時間值。由于y=yout(e)語句是取第e步的輸出值,所以需要將q值轉換為步長,既w=q/3.5591e-004 ,通過assignin(‘base’,’valueX’,tout);函數將基本工作空間里的tout值以valueX名字保存到workspace空間,進而可以獲得每步的時間3.5591e-004。此外還要對其取整e=round(w);注意的是,由于simulink取得是變步長,所以得到的y值并不為十分精確的值。
(4)“可更改坐標軸”編輯框的功能實現。有時候我們只需要研究某一段時間內的結果圖,因此就需要根據我們的要求限定返回圖形的x、y軸的坐標上下限。因為坐標限定函數axis[k1,k2,k3,k4]中k的值必須都為有效值,不能為空,當只需限定x軸或者y軸時該函數就會報錯。而xlim和ylim函數只允許單獨對x、y坐標的限定,當我們沒有給出有效值時,該函數會出錯。因此在這里可以將xlim、ylim和axis函數相結合,使用try——catch——end結構可以使其功能得以兼顧優化,既:
try
axis([k1,k2,k3,k4]);
catch
try
xlim([k1 k2]);
catch
ylim([k3 k4]);
end
當坐標軸的范圍值超出仿真時長或者編輯框輸入格式不正確時,GUI界面就不會運行,此時就需要顯示錯誤類型并提醒用戶更改參數,將顯示錯誤輸入框。一般的GUI界面關閉時沒有任何提示,為了防止錯誤關閉設計了提醒框,關閉時會提醒是否關閉當前界面,避免了錯誤關閉。
當需要對結果圖進行保存或者對圖形做更多的處理時,可以在仿真按鈕函數下添加h=fi gure;plot(tout,yout)語句,運行時會自動彈出fi gure處理框,在這里面可以對圖形做更多的處理。
GUI界面運行時會調用運行“電力系統實驗simulink模型”和“電力電子實驗simulink模型”中的模型,其運行結果將會顯示在GUI界面中,每個實驗對應一個simulink模型。以“電力電子實驗simulink模型”中的太陽能發電最大功率點的simulink模型為例,此模型意在用采用爬山法實現光伏系統的MPPT自動控制(為簡化過程,光伏電池可用電壓源+內阻模型代替),并將輸出功率穩定在最大功率點附近,最終搭建完成總模型。

圖2 沒有使用爬山算法時的功率輸出圖
在進行用爬山法實現太陽能發電最大功率點跟蹤這一實驗時,當系統沒有使用爬山算法模型時,其功率輸出如圖2所示。橫坐標顯示時間,縱坐標顯示系統輸出功率的大小。根據實驗原理,輸出功率曲線隨時間表現為一條先上升后下降的曲線,最終功率不能穩定在最大功率點附近。由圖可知,此系統的輸出功率不能穩定在最大發電功率下。在使用爬山法模型后的功率輸出結果如圖3所示。此系統的輸出功率就可以穩定在最大功率點的附近。綜上所述,此平臺的輸出結果與實驗本身結果一致。

圖3 使用爬山法模型后的功率輸出圖
這個平臺擁有較為完善的電力系統實驗和電力電子實驗仿真模型,在使用時可以直接調用,并且參數修改方便,所得結果也很清晰明確,節省了大量時間,有很好的教學實用性,直觀的結果圖還方便大家理解。后期還可以進一步擴展開發其他的實驗功能和添加工程實例,增加實驗的多樣性有效性。
此界面可生成獨立于MATLAB之外的可執行程序,使其運行可以不依賴于MATLAB軟件的有無,使其具有的功能滿足了大部分情況下的教學要求。
[1]王兆安,劉進軍.電力電子技術:第5版[M].北京:機械工業出版社,2009.
[2]陳曉娟.基于Matlab/GUI的電力電子技術應用仿真實驗設計[J].電子世界,2014,01:141-142.
[3]王二飛.基于MATLAB的GUI信號與系統實驗平臺設計[J].硅谷,2013,21:29-30.
[4]尚麗,淮文軍.基于Matlab/Simulink和GUI的運動控制系統虛擬實驗平臺設計[J].實驗室研究與探索,2010,06:66-71.
[5]余長庚,韋秋云.基于Matlab的電力系統短路電流分析與仿真[J].中國西部科技,2011,17:13-14+85.
[6]周志剛,敖章洪.基于MATLAB/SIMULINK的電力電子實驗仿真[J].赤峰學院學報(自然科學版),2011,09:204-205.