趙玉強 鞠夢賢 孫維玉 張文君 郭帥
摘 要:針對飛行仿真的研究通常會忽略仿真模型或平臺的通用性、可重性及互操作性等問題,采用對所設(shè)計仿真平臺的功能進行詳細劃分和描述,構(gòu)建總體仿真系統(tǒng)框架的措施來解決這些問題。首先,在Matlab環(huán)境下建立飛行器全數(shù)字仿真平臺,利用該平臺可以進行動力學(xué)分析、飛行控制系統(tǒng)設(shè)計及航跡規(guī)劃等不同任務(wù)。其次,利用MATLAB 提供的GUI 接口實現(xiàn)人機交互界面的設(shè)計的設(shè)計。所設(shè)計平臺模塊的劃分相對獨立,人機交互界面可修改飛行器的相關(guān)信息,具有較強的通用性。
關(guān)鍵詞:Matlab/Simulink GUI 飛行控制 數(shù)字仿真 仿真平臺
中圖分類號:V274 文獻標(biāo)識碼:A 文章編號:1674-098X(2013)02(c)-00-01
飛行器可以被應(yīng)用于運輸、救生、對地觀測、空中預(yù)警以及通訊中繼,因此其在軍事和民事領(lǐng)域中都有很大的應(yīng)用前景。因此對飛行器進行仿真分析很有必要,同時仿真也是對飛行器的動力學(xué)特性分析、控制律設(shè)計等工作的重要手段。MATLAB作為一種面向科學(xué)計算、可視化以及交互式程序設(shè)計軟件。
它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真集于一身,為科學(xué)研究、工程設(shè)計以及必須進行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案。Simulink是MATLAB提供的仿真工具,可以方便地進行動態(tài)系統(tǒng)建模、仿真、分析等。該文基于Matlab GUI建立飛行器的全數(shù)字仿真平臺。利用該平臺可以快速地進行用飛行器的全數(shù)字仿真,根據(jù)參數(shù)設(shè)置的不同進行航跡規(guī)劃、實時狀態(tài)參數(shù)顯示和仿真結(jié)果顯示等仿真工作。
1 仿真系統(tǒng)框架設(shè)計
仿真系統(tǒng)可分為導(dǎo)航和控制模塊、執(zhí)行模塊、飛行器動力學(xué)模塊和人機交互界面模塊。其中導(dǎo)航控制模塊又分為航跡規(guī)劃模塊、接受指令模塊、飛行管理系統(tǒng)、導(dǎo)航系統(tǒng)及控制系統(tǒng)五個子模塊,導(dǎo)航子模塊把飛行器的狀態(tài)信息傳給飛行管理系統(tǒng),飛行管理系統(tǒng)根據(jù)航跡規(guī)劃的要求處理后給出模態(tài)控制信號從而控制著飛行器的飛行,執(zhí)行模塊由舵機模型組成。如圖1所示。
2 基于Matlab/Simulink的非線性數(shù)學(xué)模型的建立
該文在Matlab/Simulink下建立飛行器非線性數(shù)學(xué)模型,飛行器非線性數(shù)學(xué)模型主要包括縱向和橫側(cè)向插值模塊、發(fā)動機模塊、力變換模塊、力矩變換模塊、飛機動力學(xué)模塊。氣動數(shù)據(jù)反映到飛行器運動方程中主要是以三個力和三個力矩形式給出的,即阻力D、側(cè)力Y、升力L、滾轉(zhuǎn)力矩R、俯仰力矩M、偏航力矩N。這些力和力矩在數(shù)學(xué)模型中通過力變換模塊和力矩變換模塊進行計算。在所建立的非線性數(shù)學(xué)模型基礎(chǔ)上,基于PID及非線性控制方法即可設(shè)計飛行控制系統(tǒng)。如圖2所示。
3 基于Matlab GUI的人機交互界面設(shè)計
圖形用戶界面(GUI,Graphical User Interfaces)在MATLAB程序開發(fā)中起著舉足輕重的作用。隨著Matlab中GUI技術(shù)的發(fā)展,己經(jīng)可以像VC一樣,建立一個界面進行數(shù)據(jù)、曲線顯示和控制操作。Matlab用戶圖形接口GUI,則可以編出圖形、數(shù)據(jù)顯示以及指令輸入界面。圖形用戶界面(GUI)可以通過Matlab提供的界面設(shè)計工作臺(Layout Editor),設(shè)計出具有菜單和用戶控件的復(fù)雜窗口。Simulink通過S-function對GUI的數(shù)據(jù)傳輸。在GUI模塊中,每個控件都有獨立的句柄。通過句柄就能實現(xiàn)對數(shù)據(jù)的控制及刷新。例如質(zhì)量M的輸入編輯框的句柄Tag為M_input,該編輯框?qū)?yīng)著一個回調(diào)函數(shù):function M_input_Callback(hObject,eventdata,handles)
如果需獲取相關(guān)信息,只要先找到相關(guān)的句柄即可,如需獲取飛行器的質(zhì)量M信息,即需先找到其句柄,如下所示:M=str2num(get(handles.M_input,String));
其中handles.M_input是獲取相應(yīng)編輯框的句柄。
4 結(jié)語
該文對飛行器的仿真系統(tǒng)及其平臺設(shè)計進行研究及分析,基于Matlab simulink建立飛行器的數(shù)學(xué)模型,同時利用GUI建立人機交互界面,對飛行器數(shù)學(xué)模型及控制系統(tǒng)進行仿真驗證。
參考文獻
[1] 王永龍,張兆忠,張桂紅.MATLAB語言基礎(chǔ)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[2] 張明廉.飛行控制系統(tǒng)[M].北京航空航天大學(xué)出版社,1993.
[3] 薛定宇.控制系統(tǒng)仿真與計算機輔助設(shè)計[M].北京:機械工業(yè)出版社,2005.
[4] 劉金琨.先進PID控制MATLAB仿真[M].北京:電子工業(yè)出版社,2005.
[5] 張麗科.MATLAB7.0 從入門到精通[M].北京:人民郵電出版社,2006.