任碧詩



【摘 要】以某型飛機起落架收放控制系統收放控制邏輯為對象,建立Matlab GUI(graphic user interface)和Simulink聯合仿真模型,與單獨采用Simulink建模相比,聯合仿真模型具有顯示直觀、便于測試分析等優點。仿真結果表明,聯合仿真模型能夠實現不同測試方案的快速測試、仿真結果對比分析及記錄,能夠完成起落架收放控制邏輯的全數字仿真需求,為起落架收放控制邏輯的驗證分析提供有力的支持。
【關鍵詞】起落架控制系統;GUI;Simulink;收放控制邏輯
【Abstract】Based on aircraft landing gear retraction and extension, a control logic simulation model is constituted by GUI and Simulink. Compared with model based on Simulink, joint model has advantage at display directly, easy to test and analysis and so on. The simulation result shows the joint model could realize multiple cases test, result analysis and record. Its also carried out the requirement of landing gear retraction and extension control logic simulation, and support to the logic validation.
【Key words】Landing gear control system; GUI; Simulink; Retraction and extension control logic
0 引言
起落架收放控制系是飛機的一個重要子系統,其控制邏輯的設計及性能影響著飛機的起降安全,因此需要對收放控制邏輯建立模型進行仿真分析,以驗證控制邏輯的性能和功能。
Matlab Simulink是目前應用較為廣泛的建立仿真軟件,通過添加display、scope、sin和constant等模塊可實現模型輸入輸出的設置和顯示。但是當模型的輸入、輸出的變量很多時,通過手動逐一修改輸入參數等進行模塊測試就顯得特別麻煩,容易出錯;并且顯示結果不直觀。Matlab GUI是一種圖形化的溝通界面,通過定制界面能夠彌補Simulink顯示和設置不直觀的問題。將Simulink和GUI聯合起來進行仿真無疑是一種較好的分析手段。
近年來,一些學者采用GUI和Simulink相結合進行建模的方式來分析解決實際遇到的問題。其中,葛述卿[1]以滑塊-單擺為研究對象,采用了一種在Simulink模型中自動打開GUI界面,通過GUI界面輸入仿真數據的方式實現Simulink和GUI的聯合建模仿真。這種方式以Simulink作為主導,方便對Simulink進行調試,但是對于模型無須更改或者需要對模型進行加密封裝以及存在大量仿真數據的情況,這種方法就略顯不足。安樹[2]等人以整流電路為研究對象,利用GUI GUIDE向導進行建模,實現整流電路的建模與仿真,但對于界面中存在多個相同類型控件的情況,利用GUIDE向導無疑增加了建模的工作量。
本文根據起落架收放控制系統仿真需求,設計了一種Simulink和GUI聯合仿真模型,在Simulink中搭建起落架收放控制邏輯仿真模型,并對模型進行封裝;同時,借助GUI便于實現人機交互的特點,通過編寫腳本文件的方式,實現仿真數據的輸入、輸出初始化設置、仿真數據的顯示與記錄,實現了對收放控制邏輯進行仿真的目標。
1 Simulink仿真模型
飛機起落架收放系統采用電傳操縱、液壓作動形式;正常收放系統由兩個起落架控制單元冗余控制,控制單元接收起落架收放手柄以及相關傳感器的信號,經過邏輯運算,控制起落架選擇閥電磁鐵的通斷電狀態,通過液壓作動,完成起落架的收放動作控制。
根據控制單元的控制邏輯,在Simulink中分別利用“AND”,“OR”和“NOT”等模塊搭建模型,實現控制邏輯的仿真。主要包括:輪載信號邏輯仿真模塊、起落架手柄信號邏輯仿真模塊、起落架上位鎖信號判斷邏輯仿真模塊、起落架下位鎖信號判斷邏輯仿真模塊、起落架選擇閥控制信號邏輯仿真模塊等。
圖1所示為控制邏輯子模型示意圖。圖2為整個控制邏輯模型示意圖;其中,模型中對關鍵控制邏輯部分進行了封裝;并根據真實的輸入信號的類型及數據長度,對輸入和輸出數據進行拆分和打包。此外,還在模型中添加了數據顯示模塊,模型的便于調試、檢測和分析處理。
2 GUI建模
Matlab中GUI的創建有兩種方式。一種是利用uicontrol、uimenu等函數以編寫m文件的方式來創建GUI模型,這種方式的優點是當界面上需要布置較多相同類型的控件時,利用for、while等函數能夠快速方便的實現;并且代碼的通用性較高。另一種方式是利用Matlab提供的GUIDE向導來創建,通過鼠標對控件進行拖拽即可快速構建出整個GUI[3];但是,控件較多時,這種方法實現起來比較繁瑣。本文針對起落架收放控制系統輸入輸出變量控件較多(40余個)的情況,采用編寫m文件的方式,快速構建GUI模型,便于理解和后續維護修改,簡化模型代碼。圖3為利用編寫M文件的形式編寫的仿真界面示意圖。
在GUI界面中,利用“for”、“set”以及“get”等函數,實現批量的創建和設置check box控件,以完成對控制系統輸入信號的設置。此外,為了能夠簡化操作、方便測試,設置導入數據按鈕,將設置好的excel測試數據文件導入,完成對輸入變量名字和數值的設置,實現多組測試方案的快速測試,避免模型修改后,手動逐一設置帶來不必要的麻煩。而經過Simulink仿真運算獲得的數據,以表格的形式在界面上顯示,并且通過導出數據選項將測試數據記錄保存在excel文件中。
3 Simulink和GUI聯合建模仿真
本文采用GUI和Simulink聯合建模的方式,以GUI界面作為主要的平臺,實現模型的仿真分析,仿真流程如圖4所示。通過GUI將數據導入Simulink模型,運行Simulink模型,輸出數據到GUI,并在GUI 中顯示記錄仿真結果。
聯合仿真過程中,Simulink和GUI的數據交互是仿真的一個關鍵的問題,主要通過以下4個步驟來實現這一問題。
1)打開名為control.mdl 的Simulink模型。語句如下:
open_system(control);
2)將GUI界面中設置或導入的數據data_from_GUI賦給Simulink模型中名為input_1的常量模塊。語句如下:
set_param(control/input_1,Value,data_from_GUI);
3)運行Simulink模型,語句如下:
sim(control);
4)獲取Simulink仿真結果,方法為通過evalin函數,從workspace中,獲取名為output變量的值,具體語句如下:
evalin(base, control/output)。
4 仿真結果
以飛機位于空中,起落架處于放下上鎖的位置作為輸入狀態,對聯合仿真模型進行測試。
圖5(b) 所示為利用GUI進行輸入參數設置界面,運行程序,得到圖5(a) 所示的模型參數,從圖中可以看出,若在Simulink中設置參數,則需要輸入較長的數據,且沒有相應的信息提示,而利用GUI進行設置則清晰明了,并且在GUI中還可以通過導入數據文件功能直接參數導入,方便測試。
圖6所示為聯合仿真結果,GUI界面將Simulink的仿真結果進行解碼,以列表的形式顯示出來。從圖中可以看出,經過仿真運算,得到起落架的狀態為“放下上鎖”,仿真運行結果正確,此外,聯合仿真模型還可以實現不同信號輸入條件下的仿真,仿真結果準確可靠。
5 結論
利用Simulink和GUI聯合建模充分發揮二者的優勢,特別地,對于起落架收放控制邏輯測試這種輸入輸出信號多,仿真測試過程中,具有多組輸入信號的情況,利用聯合建模的方式,達到了對起落架收放控制邏輯聯合建模仿真的目的,實現了對控制邏輯的快速測試和分析,且模型交互性好,方便數據的管理,編程簡潔便于后期維護和使用。
【參考文獻】
[1]葛述卿.Simulink和GUI結合實現機械系統仿真及動畫[J].機械研究與應用,2006,19(1):104-106.
[2]安樹,趙霞,徐小華.基于Matlab GUI 的整流電路仿真設計[J].現代電子技術,2011,34(4):155-158.
[3]李顯宏.Matlab界面設計與編譯技巧[M].北京:電子工業出版社,2006.
[責任編輯:湯靜]