【摘 要】針對傳統(tǒng)飛機(jī)動力學(xué)模型通用性差、代碼執(zhí)行效率低的問題。綜合JSBSim、MATLAB軟件的優(yōu)點,提出基于某小型無人機(jī)的飛行仿真系統(tǒng)。新設(shè)計的系統(tǒng)具有通用性強(qiáng)、運(yùn)行速度快、易操作性、數(shù)據(jù)精度高、便于二次開發(fā)等優(yōu)點。
【關(guān)鍵詞】無人機(jī) 建模 JSBSim MATLAB 飛行控制
1 引言
常規(guī)的無人機(jī)建模通常是基于Matlab/Simulink的建模存在模型通用性差、開發(fā)效率低等問題。使用JSBSim建模時,只需重新配置XML格式的模型規(guī)格文件,就可以實現(xiàn)對不同機(jī)型的仿真,同時可以將研究集中在控制律設(shè)計。
由于JSBSim飛控模塊相對有限,無法實現(xiàn)某些控制算法。基于模塊化設(shè)計思想,分別利用JSBSim軟件建立了飛行動力學(xué)模塊、MATLAB軟件設(shè)計了飛行控制模塊,為飛行品質(zhì)的評估提供仿真平臺。
2 可視化飛行仿真系統(tǒng)設(shè)計
本文采用模塊化的設(shè)計思想完成了仿真平臺的搭建。由于飛機(jī)系統(tǒng)是一個非常復(fù)雜的系統(tǒng),因而研制全新的仿真無人機(jī)系統(tǒng)將是一個非常復(fù)雜的過程。
首先,采用JSBSim軟件完成對某型無人機(jī)氣動力的建模;其次,采用MATLAB與C++混合編程技術(shù),編寫C++MEX S函數(shù)模塊實現(xiàn)了對JSBSim軟件的調(diào)用和數(shù)據(jù)通信;再次,在MATLAB環(huán)境中設(shè)計有效的飛行控制系統(tǒng)。
3 基于JSBsim的無人機(jī)建模
JSBSim是一個開源的、支持多平臺的、由數(shù)據(jù)驅(qū)動的飛行動力學(xué)模型框架。由C++語言編寫,能夠支持各類型的航空器仿真模型。本文基于開放的JSBSim-XML標(biāo)準(zhǔn),利用XML技術(shù)實現(xiàn)對運(yùn)輸機(jī)靈活的建模。
對于JSBsim的建模,其模型為xml的配置方式實現(xiàn),可以用JSBSimCommander輔助對xml文件進(jìn)行配置,包括飛機(jī)外形、質(zhì)量、發(fā)動機(jī)參數(shù)、推進(jìn)系統(tǒng)、空氣動力系數(shù)等,完成模型的建立。
4 Simulink飛行仿真平臺搭建
在MATLAB/Simulink平臺下,通過編寫S函數(shù)運(yùn)行JSBSim程序,對飛行數(shù)據(jù)進(jìn)行解算,返回飛機(jī)狀態(tài)等參數(shù)。
本文在系統(tǒng)搭建過程中,使用編譯器編譯后生成MEX文件,成為MATLAB可調(diào)用的函數(shù)(動態(tài)鏈結(jié)子程序),實現(xiàn)JSBSim模型在Simulink中的直接調(diào)用。
5 飛行控制系統(tǒng)
由于JSBSim模型的飛行控制模塊功能有限,本文在Simulink下設(shè)計飛控系統(tǒng)。
無人機(jī)的飛行控制系統(tǒng)有俯仰、滾轉(zhuǎn)控制通道,設(shè)計飛行控制律時一般需要考慮各通道間的獨立性和關(guān)聯(lián)性。
在控制方法的設(shè)計中,把各航段的復(fù)雜飛行狀態(tài)分解為幾個基本的飛行任務(wù)。通過相對獨立的縱向控制通道和橫側(cè)向控制通道協(xié)調(diào)實現(xiàn)無人機(jī)的平飛、升降、轉(zhuǎn)彎等基本飛行任務(wù)。
5.1 無人機(jī)縱向控制律設(shè)計
縱向控制系統(tǒng)包含俯仰角的控制回路和高度控制回路。
在俯仰控制回路上,考慮采用高度控制結(jié)構(gòu),通過設(shè)定高度和實際飛行高度h的差值經(jīng)過控制器輸出俯仰目標(biāo)角,再疊加一個副翼轉(zhuǎn)彎時的拉桿補(bǔ)償量,經(jīng)過合理限幅得到目標(biāo)俯仰角。俯仰角控制回路根據(jù)輸出控制量到副翼舵機(jī),改變當(dāng)前的飛機(jī)俯仰角,采用PID控制器,通過對控制器參數(shù)調(diào)節(jié)可以獲得較好的高度控制響應(yīng)。
其中俯仰角控制回路還引入了內(nèi)環(huán)的俯仰角速率負(fù)反饋可以改善短周期阻尼。
5.2 無人機(jī)橫側(cè)向控制律設(shè)計
無人機(jī)的橫側(cè)向姿態(tài)穩(wěn)定和控制就是要保證高精度的偏航角ψ和滾轉(zhuǎn)角φ的穩(wěn)定與控制,可以完成平穩(wěn)的轉(zhuǎn)彎飛行。
無人機(jī)橫側(cè)向運(yùn)動控制有副翼和方向舵兩個控制回路。其中方向舵回路比較簡單,而副翼把滾轉(zhuǎn)角作為控制的內(nèi)回路,偏航控制為外回路。偏航控制也要通過調(diào)節(jié)副翼偏轉(zhuǎn)來實現(xiàn)滾轉(zhuǎn)角的變化,達(dá)到控制無人機(jī)側(cè)偏的目的。
滾轉(zhuǎn)角控制內(nèi)回路是滾轉(zhuǎn)角速率q的反饋回路,外回路是滾轉(zhuǎn)角φ的反饋回路。
方向舵的控制采用與副翼聯(lián)動的方式,則有,其中為聯(lián)動系數(shù)。通過調(diào)整兩個通道的控制信號實現(xiàn)協(xié)調(diào)轉(zhuǎn)彎。
6飛行仿真實現(xiàn)
仿真初始高度為2000m,給定航向角90度則仿真結(jié)果如圖1。
升降舵平穩(wěn)在某一恒定值,此時飛機(jī)有一定的仰角(平飛仰角)。橫側(cè)向控制部分主要有對滾轉(zhuǎn)角的控制和航向角控制,滾轉(zhuǎn)角保持響應(yīng)曲線,給定滾轉(zhuǎn)角8度。由仿真曲線可以看出無人機(jī)模型可以準(zhǔn)確快速的響應(yīng),航向角穩(wěn)定在90度。
7結(jié)論
本文完成了某型無人機(jī)仿真系統(tǒng)的搭建,后臺程序JSBSim負(fù)責(zé)對飛機(jī)空氣動力特性進(jìn)行仿真,并將仿真數(shù)據(jù)的結(jié)果返回MATLAB處理環(huán)境中,在Simulink下實現(xiàn)了先進(jìn)控制律的設(shè)計。該仿真環(huán)境為無人機(jī)全過程飛行仿真的性能驗證提供了良好的集成環(huán)境。在此仿真環(huán)境中無人機(jī)的控制規(guī)律得到了驗證。
參考文獻(xiàn):
[1] 馬 駿 孫秀霞 董文瀚.基于JSBSim 的運(yùn)輸機(jī)重裝空投飛行仿真系統(tǒng)[J]. 計算機(jī)應(yīng)用與軟件, 2012(29),65-68.
[2] Jon S. Berndt and the JSBSim Development Team. JSBSim Reference Manual.[M].2011.
[3]李圓圓劉靜靜。基于Matlab的虛擬飛行仿真系統(tǒng)設(shè)計與實現(xiàn)[J].科技創(chuàng)新導(dǎo)報,2013(3),31.