王 岳, 陳憶杭
(中國民航大學 飛行技術學院, 天津 300300)
?
基于FlightGear的飛行仿真教學實驗設計
王岳, 陳憶杭
(中國民航大學 飛行技術學院, 天津300300)
研究了FlightGear飛行仿真軟件中Xml文件的應用及配置機制,通過修改FlightGear動力學模塊和數據采集模塊,搭建了一個基于FlightGear的飛行仿真演示系統,并根據需求設計了飛行仿真實驗。經教學實踐驗證,該系統方便使用,擴展和維護方便,有較高的使用價值。
飛行仿真; FlightGear; 實驗教學
飛行原理、飛行性能是飛行技術專業主干課程的重要組成部分,由于其內容復雜且抽象,如何為學生講授一直是眾多教師面臨的難題。采用飛行仿真實驗教學是破解這一難題的有效辦法。飛行仿真,是在地面上使用設備再現飛機在空中的行為,通過仿真的方法,把飛行員在操縱飛機時所感覺到的飛機姿態、飛行運動的變化,所能看到的各種儀表的顯示、機艙外的視景以及所能聽到的各種聲音逼真地反映出來[1-2]。在飛行原理、飛行性能的教學中,運用飛行模擬演示,將理論與仿真過程結合起來,可幫助學生更好地掌握相關知識點。
FlightGear飛行模擬器是一項開源、多平臺、合作的飛行模擬器項目,目標是搭建一個先進的飛行模擬器框架,開發和追求有趣的飛行模擬思路,并最終作為用戶的程序終端。它主要由駕駛艙系統、儀表系統、音效系統、動力學系統、自動駕駛系統、視景系統、助航系統等組成。系統啟動時,自動生成一個包含飛行器、儀表面板、跑道、地形、天氣等的圖像仿真環境,逼真地模擬出真實飛行時的飛行狀態,如飛機姿態、各控制面板位置、飛行軌跡、儀表指示、艙音等。由于其開源特性以及開發時預留了外部數據接口,用戶可以方便地進行更改以及二次開發[3-4]。例如英國威爾士大學的飛行智能機器人研究[5]、明尼蘇達大學人文因素研究實驗室和美國Illinois大學智能結冰系統的研究等都使用了FlightGear[6]。
本文通過編寫FlightGear中Xml配置文件,依據不同的飛機數據修改其動力學模塊,然后在FlightGear啟動時載入預先設置好的Xml配置文檔,利用自定義的數據采集模塊,實現了對模擬飛行數據的讀取和保存,進而利用采集到的數據進行了飛行仿真實驗。
2.1Xml配置文件
Xml(extensible markup language)意為可擴展標記語言,與HTML同是標準通用標記語言(standard generalized markup language,SGML)的一個子集,是W3C為解決HTML擴展性不強、交互性差和語法定義不強等缺點而開發的。Xml將數據和程序分開,以開放的、自我敘述的方式定義了數據結構,在描述數據內容的同時能突出數據的結構,進而體現出數據與數據間的關系。
Xml是一種元標記語言,其文檔由Xml元素組成。每個元素需要有開始標簽和結束標簽,開始標簽和結束標簽之間的信息為該元素的內容。標簽表示的是數據的含義而不是數據的顯示形式,并且可以由用戶自定義元素的名稱,使其具有特定的含義,方便用戶理解作者的意圖。
Xml語言的優點是:
(1) 良好的語法格式,每個元素都有開始標簽和結束標簽;
(2) 良好的擴展性和驗證機制,允許用戶自定義標簽,可以利用文檔定義類型DTD和Schema并且校驗文檔中的標記;
(3) 平臺無關性,即Xml獨立于平臺,與具體的編程語言無關;
(4) 靈活的Web應用,數據與顯示格式相分離;
(5) 面向對象的特性,Xml是信息的對象化語言,DTD和Schema是界面和類,Xml是對象實例,Xsl是方法和實現。
Xml語言的缺點是:
(1) 樹形存儲結構,搜索效率雖高,但插入、修改和刪除比較困難;
(2) Xml的文本表現手法和標記的符號化會使Xml的數據量大于二進制數據量,當Xml數據量很大時,效率較低;
(3) 管理功能不完善,Xml文檔多作為數據提供者使用,沒有數據庫系統的完善的管理系統;
(4) 通信困難,Xml是元標記語言,任何人都可以利用其定義新的標準,新標準之間通信比較困難。在FlightGear系統中使用的Xml文件以聲明開頭,此行之前不能有空行或字符。根元素為PropertyList,其數據形成一個樹形層次的結構。標準配置格式如下:
< ?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,即方向屬性。方向屬性自身有3個子元素——heading-deg、pitch-deg和roll-deg,表示飛機的航向角、俯仰角和滾轉角,type=″double″表示值為雙精度型實數,3個方向的值都設置為0.0。
2.2飛行數據的采集
FlightGear自帶的Logging功能可以將任意屬性值以任意的時間間隔記錄到CSV文件內。但該方法的缺點是可重復性差、系統不會自動記憶面板內信息、每次重新飛行都需要重新輸入數據的名字和路徑。用戶通過對FG_ROOT/data/gui/dialogs文件夾內logging.xml文件以及FG_ROOT/data/preferences.xml進行修改,可以實現對logging對話框的修改和即時滿足用戶定義的數據記錄。
另外,用戶也可通過自己編寫Xml文件,然后通過FlightGear的“-config=‘文件位置完成路徑’”命令或者圖形化界面中的相應功能,在程序啟動時進行配置并最終實現數據采集。文件主要格式為:
……
每個“log”子節點包含一個必需的“enabled”屬性、一個可選擇的“filename”屬性(默認為“fg_log.csv”)、一個可選擇的“delimiter”屬性(默認為“,”)、一個可選擇的“interval-ms”屬性(默認為“0”,每幀記錄)以及一系列“entry”子節點。每個“/entry”子節點包含一個必需的“enabled”屬性、一個“property”屬性來定義需要記錄的屬性名,一個可選擇的“tile”屬性來定義csv文件中使用的標題(默認為屬性的完整路徑)。用戶只需根據自身需要增減節點個數,并對其中內容進行修改,即可完成所需參數的記錄與保存。某次飛行數據記錄如圖1所示。

圖1 數據記錄文件示例
2.3動力學模塊的修改
飛機飛行狀態的變化,歸根到底是力和力矩作用的結果。飛行器的運動姿態可以通過3個軸來進行描述,即橫軸、縱軸和立軸。飛機在3個軸上的動作分別為俯仰、滾轉和偏轉。進行飛行模擬仿真,即是模擬力與力矩的作用,使飛行器在3個軸上進行不同的動作。需要模擬的力與力矩有阻力、升力、側力、俯仰力矩、滾轉力矩和偏航力矩等[7-8]。
動力學模塊的修改主要是在
該段Xml文件定義了襟翼阻力,其值為q、s、襟翼位置以及0.0500相乘,其中q為動壓項,s為面積項。通常氣動力是由q×s×氣動系數來得到。文件中的fcs/flap-pos-norm(襟翼位置)與0.0500相乘即為氣動系數。從本質上來說
氣動系數數據一般由幾項構成,有些可以細化成幾十項,也可以簡化成1項,與個人需要以及條件有關。以俯仰力矩為例,其一般表現形式為:
在Xml配置文件中一般以氣動系數的最小單元為整體來進行定義,這樣更加簡潔、直觀,定義以及查閱、修改更加便利。當然用戶也可以根據自身需要,將氣動系數劃分成各個部分,然后通過加、減、乘、商等運算關系進行定義。若按照上式對俯仰力矩進行定義,則其形式應為:
在每個
以下以俯仰力矩為例,說明如何修改對應的Xml文件來完成動力學模塊的修改。修改前的B747型飛機的俯仰力矩系數表現形式為
修改后的俯仰力矩系數表現形式為
Cm(q)為一給定常數與俯仰角速度q的乘積,而Cm(α,δe)則為與α和δe相關的二維矩陣。由于M=q×s×c×Cm,因此
通過以上形式的定義,即完成了動力學模塊中俯仰力矩的重新定義。使用該方法可進行包括阻力、升力、側力、俯仰力矩、滾轉力矩和偏航力矩等空氣動力參數的修改,從而實現飛行仿真。
通過修改不同機型的數據、相關的動力學模塊,或是模擬相應的失效科目,讓學生在FlightGear中操作飛行,然后把仿真飛行數據記錄下來,用相應軟件繪制出不同動力學參數之間的函數關系曲線。其優越性在于不僅可以讓學生切身感受到飛行動力學參數變化對于飛行的影響,而且可以對照特定的飛行動力學參數函數關系曲線,更加深入地理解對應的知識點。這種方式也有利于教師及時、方便地更新和完善教學資源。
3.1實驗內容
按照前面所介紹的方法,基于FlightGear開發了飛行原理和性能課程[11-12]的4個教學實驗:阻力特性、起飛航跡、單發失效、縱向靜穩定性實驗。
3.2實驗案例說明
以B747-200單發失效實驗為案例說明實驗內容。
使用B747-200型飛機的氣動參數修改后的動力學模塊及系統故障選單,模擬B747單發失效。模擬的情況為當飛機飛行到某一高度并配平飛行時最右側臨界發動機失效,其發動機推力曲線如圖2所示。

圖2 油門以及4號發動機推力曲線
圖2中藍色曲線為右側臨界發動機推力,綠色曲線表示油門。可以看出油門不變,而4號發動機推力在第270 s時降為0。
圖3中,綠色曲線為滾轉,藍色曲線為側滑角;圖4中,藍色曲線為方向舵變化情況,綠色曲線為副翼輸入情況。

圖3 滾轉及側滑角曲線

圖4 方向舵及副翼輸入曲線
可以看出,當4號發動機失效后出現明顯的偏航與滾轉運動。此時必須通過操縱副翼以及方向舵來進行糾正,以使飛機仍以合適的姿態進行飛行。從操縱面的輸入可以看出:在發動機剛失效時,由于飛機運動情況復雜,方向舵與副翼的操作相當頻繁而且隨機,需要耗費飛行員大量精力進行校正;當飛行姿態趨于穩定后方向舵以及副翼操縱變得相對穩定。當飛機能穩定飛行時,必須以一定的方向舵偏轉來補償左右兩邊發動機的推力差,以保證飛機能不偏航轉向飛行。
3.3教學意義
通過上述的仿真實驗,可以給學生駕駛員以較為直觀的視覺現象,同時在模擬結束后還能通過記錄的數據進行分析并查找發動機故障原因。這對于學生將感性認識上升到理性認識是非常有幫助的。
在探究了飛行仿真教學實驗模式的基礎之上,研究了利用FlightGear開源模擬飛行軟件和Xml配置文件,構建一個基于FlightGear的飛行仿真演示系統,并設計了飛行仿真實驗。飛行仿真實驗表明,該實驗系統對于飛行原理和性能的課程教學有明顯的輔助作用,并且成本低廉、二次開發性強,擴展和維護也很方便。良好的直觀體驗使得學生容易深刻地理解和掌握所學的知識。
對于飛行仿真實驗系統的深度開發和設計更復雜的應用,還有待進一步的研究。例如,可以將此系統用于飛行技術的評估、航線飛行經濟性的計算以及演示飛行事故征候等。總之,在航空業蓬勃發展的今天,飛行技術專業課程教學改革更加迫切,該種飛行仿真教學實驗設計方法的應用范圍也將更加廣泛。
References)
[1] 劉興堂,萬少松,張雙選.論軍用模擬訓練器/系統的發展趨勢[J].系統仿真學報,2002(5):647-649.
[2] 劉澤坤,昂海松,羅東明.基于DirectX的無人機實時飛行仿真系統開發[J].系統仿真學報,2006(4):918-920.
[3] 黃華,徐幼平,鄧志武.基于FlightGear模擬器的實時可視化仿真系統[J].系統仿真學報,2007(19):4421-4423.
[4] 郭衛剛,韓維,王秀霞.基于Matlab/Flightgear飛機飛行性能的可視化仿真系統[J].實驗技術與管理,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] 趙建衛.基于模型的飛行仿真系統設計[J].飛機設計,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].北京:兵器工業出版社,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
中央高校基本科研業務費項目(3122014X002);中國民航大學校級教育教學項目(CAUC-ETRN-2015-74);天津市大學生創業創新項目(201610059086)
王岳(1983—),男,天津,博士研究生,講師,主要研究領域為飛行動力學與控制、飛行技術和飛行安全.
TP391.9;V211.73
A
1002-4956(2016)10-0130-05