王 岳, 陳憶杭
(中國民航大學 飛行技術(shù)學院, 天津 300300)
?
基于FlightGear的飛行仿真教學實驗設(shè)計
王岳, 陳憶杭
(中國民航大學 飛行技術(shù)學院, 天津300300)
研究了FlightGear飛行仿真軟件中Xml文件的應(yīng)用及配置機制,通過修改FlightGear動力學模塊和數(shù)據(jù)采集模塊,搭建了一個基于FlightGear的飛行仿真演示系統(tǒng),并根據(jù)需求設(shè)計了飛行仿真實驗。經(jīng)教學實踐驗證,該系統(tǒng)方便使用,擴展和維護方便,有較高的使用價值。
飛行仿真; FlightGear; 實驗教學
飛行原理、飛行性能是飛行技術(shù)專業(yè)主干課程的重要組成部分,由于其內(nèi)容復雜且抽象,如何為學生講授一直是眾多教師面臨的難題。采用飛行仿真實驗教學是破解這一難題的有效辦法。飛行仿真,是在地面上使用設(shè)備再現(xiàn)飛機在空中的行為,通過仿真的方法,把飛行員在操縱飛機時所感覺到的飛機姿態(tài)、飛行運動的變化,所能看到的各種儀表的顯示、機艙外的視景以及所能聽到的各種聲音逼真地反映出來[1-2]。在飛行原理、飛行性能的教學中,運用飛行模擬演示,將理論與仿真過程結(jié)合起來,可幫助學生更好地掌握相關(guān)知識點。
FlightGear飛行模擬器是一項開源、多平臺、合作的飛行模擬器項目,目標是搭建一個先進的飛行模擬器框架,開發(fā)和追求有趣的飛行模擬思路,并最終作為用戶的程序終端。它主要由駕駛艙系統(tǒng)、儀表系統(tǒng)、音效系統(tǒng)、動力學系統(tǒng)、自動駕駛系統(tǒng)、視景系統(tǒng)、助航系統(tǒng)等組成。系統(tǒng)啟動時,自動生成一個包含飛行器、儀表面板、跑道、地形、天氣等的圖像仿真環(huán)境,逼真地模擬出真實飛行時的飛行狀態(tài),如飛機姿態(tài)、各控制面板位置、飛行軌跡、儀表指示、艙音等。由于其開源特性以及開發(fā)時預留了外部數(shù)據(jù)接口,用戶可以方便地進行更改以及二次開發(fā)[3-4]。例如英國威爾士大學的飛行智能機器人研究[5]、明尼蘇達大學人文因素研究實驗室和美國Illinois大學智能結(jié)冰系統(tǒng)的研究等都使用了FlightGear[6]。
本文通過編寫FlightGear中Xml配置文件,依據(jù)不同的飛機數(shù)據(jù)修改其動力學模塊,然后在FlightGear啟動時載入預先設(shè)置好的Xml配置文檔,利用自定義的數(shù)據(jù)采集模塊,實現(xiàn)了對模擬飛行數(shù)據(jù)的讀取和保存,進而利用采集到的數(shù)據(jù)進行了飛行仿真實驗。
2.1Xml配置文件
Xml(extensible markup language)意為可擴展標記語言,與HTML同是標準通用標記語言(standard generalized markup language,SGML)的一個子集,是W3C為解決HTML擴展性不強、交互性差和語法定義不強等缺點而開發(fā)的。Xml將數(shù)據(jù)和程序分開,以開放的、自我敘述的方式定義了數(shù)據(jù)結(jié)構(gòu),在描述數(shù)據(jù)內(nèi)容的同時能突出數(shù)據(jù)的結(jié)構(gòu),進而體現(xiàn)出數(shù)據(jù)與數(shù)據(jù)間的關(guān)系。
Xml是一種元標記語言,其文檔由Xml元素組成。每個元素需要有開始標簽和結(jié)束標簽,開始標簽和結(jié)束標簽之間的信息為該元素的內(nèi)容。標簽表示的是數(shù)據(jù)的含義而不是數(shù)據(jù)的顯示形式,并且可以由用戶自定義元素的名稱,使其具有特定的含義,方便用戶理解作者的意圖。
Xml語言的優(yōu)點是:
(1) 良好的語法格式,每個元素都有開始標簽和結(jié)束標簽;
(2) 良好的擴展性和驗證機制,允許用戶自定義標簽,可以利用文檔定義類型DTD和Schema并且校驗文檔中的標記;
(3) 平臺無關(guān)性,即Xml獨立于平臺,與具體的編程語言無關(guān);
(4) 靈活的Web應(yīng)用,數(shù)據(jù)與顯示格式相分離;
(5) 面向?qū)ο蟮奶匦?Xml是信息的對象化語言,DTD和Schema是界面和類,Xml是對象實例,Xsl是方法和實現(xiàn)。
Xml語言的缺點是:
(1) 樹形存儲結(jié)構(gòu),搜索效率雖高,但插入、修改和刪除比較困難;
(2) Xml的文本表現(xiàn)手法和標記的符號化會使Xml的數(shù)據(jù)量大于二進制數(shù)據(jù)量,當Xml數(shù)據(jù)量很大時,效率較低;
(3) 管理功能不完善,Xml文檔多作為數(shù)據(jù)提供者使用,沒有數(shù)據(jù)庫系統(tǒng)的完善的管理系統(tǒng);
(4) 通信困難,Xml是元標記語言,任何人都可以利用其定義新的標準,新標準之間通信比較困難。在FlightGear系統(tǒng)中使用的Xml文件以聲明開頭,此行之前不能有空行或字符。根元素為PropertyList,其數(shù)據(jù)形成一個樹形層次的結(jié)構(gòu)。標準配置格式如下:
< ?xml version=″1.0″?>
< PropertyList>
< orientation>
< heading-deg type=″double″>0.0 heading-deg >
< pitch-deg type=″double″>0.0 pitch-deg >
< roll-deg type=″double″>0.0 roll-deg >
< / orientation >
< /PropertyList>
其中,PropertyList是根元素,它存在一個子元素orientation,即方向?qū)傩?。方向?qū)傩宰陨碛?個子元素——heading-deg、pitch-deg和roll-deg,表示飛機的航向角、俯仰角和滾轉(zhuǎn)角,type=″double″表示值為雙精度型實數(shù),3個方向的值都設(shè)置為0.0。
2.2飛行數(shù)據(jù)的采集
FlightGear自帶的Logging功能可以將任意屬性值以任意的時間間隔記錄到CSV文件內(nèi)。但該方法的缺點是可重復性差、系統(tǒng)不會自動記憶面板內(nèi)信息、每次重新飛行都需要重新輸入數(shù)據(jù)的名字和路徑。用戶通過對FG_ROOT/data/gui/dialogs文件夾內(nèi)logging.xml文件以及FG_ROOT/data/preferences.xml進行修改,可以實現(xiàn)對logging對話框的修改和即時滿足用戶定義的數(shù)據(jù)記錄。
另外,用戶也可通過自己編寫Xml文件,然后通過FlightGear的“-config=‘文件位置完成路徑’”命令或者圖形化界面中的相應(yīng)功能,在程序啟動時進行配置并最終實現(xiàn)數(shù)據(jù)采集。文件主要格式為:
……
每個“l(fā)og”子節(jié)點包含一個必需的“enabled”屬性、一個可選擇的“filename”屬性(默認為“fg_log.csv”)、一個可選擇的“delimiter”屬性(默認為“,”)、一個可選擇的“interval-ms”屬性(默認為“0”,每幀記錄)以及一系列“entry”子節(jié)點。每個“/entry”子節(jié)點包含一個必需的“enabled”屬性、一個“property”屬性來定義需要記錄的屬性名,一個可選擇的“tile”屬性來定義csv文件中使用的標題(默認為屬性的完整路徑)。用戶只需根據(jù)自身需要增減節(jié)點個數(shù),并對其中內(nèi)容進行修改,即可完成所需參數(shù)的記錄與保存。某次飛行數(shù)據(jù)記錄如圖1所示。
圖1 數(shù)據(jù)記錄文件示例
2.3動力學模塊的修改
飛機飛行狀態(tài)的變化,歸根到底是力和力矩作用的結(jié)果。飛行器的運動姿態(tài)可以通過3個軸來進行描述,即橫軸、縱軸和立軸。飛機在3個軸上的動作分別為俯仰、滾轉(zhuǎn)和偏轉(zhuǎn)。進行飛行模擬仿真,即是模擬力與力矩的作用,使飛行器在3個軸上進行不同的動作。需要模擬的力與力矩有阻力、升力、側(cè)力、俯仰力矩、滾轉(zhuǎn)力矩和偏航力矩等[7-8]。
動力學模塊的修改主要是在
該段Xml文件定義了襟翼阻力,其值為q、s、襟翼位置以及0.0500相乘,其中q為動壓項,s為面積項。通常氣動力是由q×s×氣動系數(shù)來得到。文件中的fcs/flap-pos-norm(襟翼位置)與0.0500相乘即為氣動系數(shù)。從本質(zhì)上來說
氣動系數(shù)數(shù)據(jù)一般由幾項構(gòu)成,有些可以細化成幾十項,也可以簡化成1項,與個人需要以及條件有關(guān)。以俯仰力矩為例,其一般表現(xiàn)形式為:
在Xml配置文件中一般以氣動系數(shù)的最小單元為整體來進行定義,這樣更加簡潔、直觀,定義以及查閱、修改更加便利。當然用戶也可以根據(jù)自身需要,將氣動系數(shù)劃分成各個部分,然后通過加、減、乘、商等運算關(guān)系進行定義。若按照上式對俯仰力矩進行定義,則其形式應(yīng)為:
在每個
以下以俯仰力矩為例,說明如何修改對應(yīng)的Xml文件來完成動力學模塊的修改。修改前的B747型飛機的俯仰力矩系數(shù)表現(xiàn)形式為
修改后的俯仰力矩系數(shù)表現(xiàn)形式為
Cm(q)為一給定常數(shù)與俯仰角速度q的乘積,而Cm(α,δe)則為與α和δe相關(guān)的二維矩陣。由于M=q×s×c×Cm,因此
通過以上形式的定義,即完成了動力學模塊中俯仰力矩的重新定義。使用該方法可進行包括阻力、升力、側(cè)力、俯仰力矩、滾轉(zhuǎn)力矩和偏航力矩等空氣動力參數(shù)的修改,從而實現(xiàn)飛行仿真。
通過修改不同機型的數(shù)據(jù)、相關(guān)的動力學模塊,或是模擬相應(yīng)的失效科目,讓學生在FlightGear中操作飛行,然后把仿真飛行數(shù)據(jù)記錄下來,用相應(yīng)軟件繪制出不同動力學參數(shù)之間的函數(shù)關(guān)系曲線。其優(yōu)越性在于不僅可以讓學生切身感受到飛行動力學參數(shù)變化對于飛行的影響,而且可以對照特定的飛行動力學參數(shù)函數(shù)關(guān)系曲線,更加深入地理解對應(yīng)的知識點。這種方式也有利于教師及時、方便地更新和完善教學資源。
3.1實驗內(nèi)容
按照前面所介紹的方法,基于FlightGear開發(fā)了飛行原理和性能課程[11-12]的4個教學實驗:阻力特性、起飛航跡、單發(fā)失效、縱向靜穩(wěn)定性實驗。
3.2實驗案例說明
以B747-200單發(fā)失效實驗為案例說明實驗內(nèi)容。
使用B747-200型飛機的氣動參數(shù)修改后的動力學模塊及系統(tǒng)故障選單,模擬B747單發(fā)失效。模擬的情況為當飛機飛行到某一高度并配平飛行時最右側(cè)臨界發(fā)動機失效,其發(fā)動機推力曲線如圖2所示。
圖2 油門以及4號發(fā)動機推力曲線
圖2中藍色曲線為右側(cè)臨界發(fā)動機推力,綠色曲線表示油門??梢钥闯鲇烷T不變,而4號發(fā)動機推力在第270 s時降為0。
圖3中,綠色曲線為滾轉(zhuǎn),藍色曲線為側(cè)滑角;圖4中,藍色曲線為方向舵變化情況,綠色曲線為副翼輸入情況。
圖3 滾轉(zhuǎn)及側(cè)滑角曲線
圖4 方向舵及副翼輸入曲線
可以看出,當4號發(fā)動機失效后出現(xiàn)明顯的偏航與滾轉(zhuǎn)運動。此時必須通過操縱副翼以及方向舵來進行糾正,以使飛機仍以合適的姿態(tài)進行飛行。從操縱面的輸入可以看出:在發(fā)動機剛失效時,由于飛機運動情況復雜,方向舵與副翼的操作相當頻繁而且隨機,需要耗費飛行員大量精力進行校正;當飛行姿態(tài)趨于穩(wěn)定后方向舵以及副翼操縱變得相對穩(wěn)定。當飛機能穩(wěn)定飛行時,必須以一定的方向舵偏轉(zhuǎn)來補償左右兩邊發(fā)動機的推力差,以保證飛機能不偏航轉(zhuǎn)向飛行。
3.3教學意義
通過上述的仿真實驗,可以給學生駕駛員以較為直觀的視覺現(xiàn)象,同時在模擬結(jié)束后還能通過記錄的數(shù)據(jù)進行分析并查找發(fā)動機故障原因。這對于學生將感性認識上升到理性認識是非常有幫助的。
在探究了飛行仿真教學實驗模式的基礎(chǔ)之上,研究了利用FlightGear開源模擬飛行軟件和Xml配置文件,構(gòu)建一個基于FlightGear的飛行仿真演示系統(tǒng),并設(shè)計了飛行仿真實驗。飛行仿真實驗表明,該實驗系統(tǒng)對于飛行原理和性能的課程教學有明顯的輔助作用,并且成本低廉、二次開發(fā)性強,擴展和維護也很方便。良好的直觀體驗使得學生容易深刻地理解和掌握所學的知識。
對于飛行仿真實驗系統(tǒng)的深度開發(fā)和設(shè)計更復雜的應(yīng)用,還有待進一步的研究。例如,可以將此系統(tǒng)用于飛行技術(shù)的評估、航線飛行經(jīng)濟性的計算以及演示飛行事故征候等??傊?在航空業(yè)蓬勃發(fā)展的今天,飛行技術(shù)專業(yè)課程教學改革更加迫切,該種飛行仿真教學實驗設(shè)計方法的應(yīng)用范圍也將更加廣泛。
References)
[1] 劉興堂,萬少松,張雙選.論軍用模擬訓練器/系統(tǒng)的發(fā)展趨勢[J].系統(tǒng)仿真學報,2002(5):647-649.
[2] 劉澤坤,昂海松,羅東明.基于DirectX的無人機實時飛行仿真系統(tǒng)開發(fā)[J].系統(tǒng)仿真學報,2006(4):918-920.
[3] 黃華,徐幼平,鄧志武.基于FlightGear模擬器的實時可視化仿真系統(tǒng)[J].系統(tǒng)仿真學報,2007(19):4421-4423.
[4] 郭衛(wèi)剛,韓維,王秀霞.基于Matlab/Flightgear飛機飛行性能的可視化仿真系統(tǒng)[J].實驗技術(shù)與管理,2010,27(10):110-112.
[5] Shaw A,Barnes D P,Summers P. Landmark Recognition for Localisation and Navigation of Aerial Vehicles[C]//7th ESA Workshop on Advanced Space Technologies for Robotics and Automation.Netherlands:ESA,2002.
[6] Bragg M B,Basar T. Smart Icing Systems for Aircraft Icing Safety[C]//40th AIAA Aerospace Sciences Meeting and Exhibit. Reno,USA,2002.
[7] 趙建衛(wèi).基于模型的飛行仿真系統(tǒng)設(shè)計[J].飛機設(shè)計,2001,18(6):31-33.
[8] Ray C C, Ye C E. Flying qualities for a twin-jet transport in serve atmospheric turbulence[J].Journal of Aircraft, 2009,46(5):1673-1680.
[9] 方振平,陳萬春,張曙光.航空飛行器飛行動力學[M].北京:北京航空航天大學出版社,2005.
[10] 方振平.飛機飛行動力學[M].北京:北京航空航天大學出版社,2003.
[11] 王大海,楊俊,余江.飛行原理[M].成都:西南交通大學出版社,2004.
[12] 陳治懷,谷潤平,劉俊杰.飛機性能工程[M].北京:兵器工業(yè)出版社,2006.
Design of flight simulation teaching experiments based on FlightGear
Wang Yue, Chen Yihang
(Flight Technology College,Civil University of China,Tianjin 300300, China)
The application and configuration of Xml documents in FlightGear flight simulation software are studied first. The dynamic modules and data collecting modules of FlightGear are successfully modified in order to construct a flight simulation demonstration system. Additionally,several flight simulation experiments are developed according to demands. Teaching practice has shown the significant practicality of the flight simulation system for its simple structure,scalability and maintainability.
flight simulation; FlightGear; experimental teaching
10.16791/j.cnki.sjg.2016.10.033
2016-04-21
中央高?;究蒲袠I(yè)務(wù)費項目(3122014X002);中國民航大學校級教育教學項目(CAUC-ETRN-2015-74);天津市大學生創(chuàng)業(yè)創(chuàng)新項目(201610059086)
王岳(1983—),男,天津,博士研究生,講師,主要研究領(lǐng)域為飛行動力學與控制、飛行技術(shù)和飛行安全.
TP391.9;V211.73
A
1002-4956(2016)10-0130-05