劉厚坤 吳志紅 譚詩瀚
(1、四川大學(xué)視覺合成圖形圖像技術(shù)重點(diǎn)學(xué)科實(shí)驗(yàn)室,四川 成都610064 2、四川川大智勝軟件股份有限公司,四川 成都610064)
我國的航空事業(yè)正處在高速發(fā)展時(shí)期,目前來看,制約我國航空事業(yè)發(fā)展的重要因素之一就是飛行員的短缺[1]。但是,國內(nèi)飛行員和相關(guān)從業(yè)者培訓(xùn)的容量遠(yuǎn)遠(yuǎn)不能滿足市場(chǎng)的需求。按照國際慣例,飛行員的培訓(xùn)包含理論學(xué)習(xí)、飛行模擬訓(xùn)練器(Flight Training Device, FTD)的練習(xí)、全任務(wù)飛行模擬機(jī)(Full Flight Simulator, FFS)的練習(xí)、實(shí)際飛機(jī)飛行練習(xí),特別是模擬機(jī)的練習(xí),是保障飛行員使用真實(shí)飛機(jī)訓(xùn)練前的關(guān)鍵步驟[2]。全動(dòng)模擬機(jī)價(jià)格昂貴,采購量較少,排隊(duì)使用的情況比較嚴(yán)重。所以常采用飛行模擬訓(xùn)練器對(duì)飛行員進(jìn)行初級(jí)訓(xùn)練、航空管制人員的飛行知識(shí)訓(xùn)練以及相關(guān)人員的復(fù)飛訓(xùn)練、轉(zhuǎn)機(jī)型訓(xùn)練等[3]。
本文把已有的飛行訓(xùn)練器作為實(shí)驗(yàn)平臺(tái),參考飛行訓(xùn)練大綱和飛行學(xué)院專家提出的飛行規(guī)則,使用vs+Qt 的開發(fā)方式在已有軟件上進(jìn)行了擴(kuò)展,分別在教員臺(tái)和仿真服務(wù)器上部署了相關(guān)程序。經(jīng)過測(cè)試,系統(tǒng)表現(xiàn)穩(wěn)定,飛行階段劃分良好,基本滿足實(shí)時(shí)性,能夠給帶飛教員不錯(cuò)的評(píng)分參考。
飛行模擬機(jī)根據(jù)真實(shí)飛機(jī)的情況,在地面上模擬了大量真實(shí)飛機(jī)的環(huán)境信息,力求在視覺、聽覺、觸覺甚至運(yùn)動(dòng)感上進(jìn)行信息提供。一臺(tái)飛行模擬機(jī)通常含有座艙模擬子系統(tǒng)、視景仿真子系統(tǒng)、航電仿真子系統(tǒng)、教員臺(tái)控制系統(tǒng)、六自由度運(yùn)動(dòng)子系統(tǒng)等;本文使用的實(shí)驗(yàn)平臺(tái)為飛行訓(xùn)練器,除運(yùn)動(dòng)平臺(tái)子系統(tǒng),其余系統(tǒng)均完善。

圖1 系統(tǒng)流程圖
基于易用性的考慮,機(jī)場(chǎng)選擇模塊直接與已有教員臺(tái)程序的機(jī)場(chǎng)選擇、跑道及跑道頭選擇同步。如圖1,教員在訓(xùn)練開始時(shí)使用本系統(tǒng),僅需點(diǎn)擊開始按鈕,結(jié)束點(diǎn)擊結(jié)束按鈕即可。結(jié)束以后即可看見學(xué)員在一次飛行訓(xùn)練過程中,各個(gè)階段的成績以及在各個(gè)階段的規(guī)則偏差;
基于對(duì)培訓(xùn)時(shí)長的考慮,在使用飛行模擬機(jī)培訓(xùn)時(shí)常進(jìn)行距離較近的兩個(gè)機(jī)場(chǎng)進(jìn)行一次訓(xùn)練,如上海虹橋國際機(jī)場(chǎng)至上海浦東國際機(jī)場(chǎng)(ZSSS/ZSPD),成都雙流國際機(jī)場(chǎng)至九寨黃龍機(jī)場(chǎng)(ZUUU/ZUJZ)等,或者直接進(jìn)行五邊飛行,進(jìn)行快速的綜合性訓(xùn)練。
五邊飛行是飛行員訓(xùn)練的重要課程,學(xué)員駕駛飛機(jī)繞機(jī)場(chǎng)飛行一周后降落,主要經(jīng)過滑行、起飛爬升、轉(zhuǎn)向、三邊巡航、進(jìn)近、著陸這幾個(gè)過程[4]。本文在五邊飛行的基礎(chǔ)上參考飛行訓(xùn)練大綱和飛行專家建議,將一次飛行分為七個(gè)階段:起飛、爬升、三邊轉(zhuǎn)彎、三邊飛行、進(jìn)近、著陸、著陸滑行。其中各個(gè)部分按照需要考察的操作知識(shí)點(diǎn)、安全性等,給分10 分到20 分不等,最終總分為100 分。
本文測(cè)試機(jī)型為空客A320,考慮以后使用其他機(jī)型的可能性和飛行階段評(píng)價(jià)標(biāo)準(zhǔn)偏差問題,將所有階段的評(píng)價(jià)標(biāo)準(zhǔn)設(shè)計(jì)成清晰的配置文件,可以根據(jù)使用的需求,針對(duì)性的進(jìn)行更改。如針對(duì)飛行員的訓(xùn)練標(biāo)準(zhǔn)較管制人員的訓(xùn)練標(biāo)準(zhǔn)就嚴(yán)格很多,如果有航空科普的需求,配置的標(biāo)準(zhǔn)可以更加寬松。配置文件的格式如下:
[SECTION1_TAKEOFF]
SCORE_TOTAL=10.0
SPEED_AIR=160
SPEED_AIR_OFFSET=10
SPEED_OFFSET_VALUE_UNIT=0.3
RUNWAY_OFFSET=50
…
配置文件中包含階段總分、詳細(xì)階段考察點(diǎn)和該考察點(diǎn)動(dòng)作不到位時(shí)的扣分標(biāo)準(zhǔn);在配置文件的注釋部分會(huì)對(duì)各個(gè)考察點(diǎn)做出相應(yīng)解釋。
對(duì)系統(tǒng)進(jìn)行需求分析和總體設(shè)計(jì),在已有相關(guān)系統(tǒng)的基礎(chǔ)上進(jìn)行擴(kuò)展,主要包含飛機(jī)位置信息相關(guān)數(shù)據(jù)包的請(qǐng)求和轉(zhuǎn)發(fā)處理模塊、數(shù)據(jù)庫處理模塊、后臺(tái)評(píng)分算法模塊和界面交互顯示模塊,如圖2:

圖2 系統(tǒng)的主要模塊
美國洛克希德. 馬丁公司的飛行模擬軟件P3D(Prepar3D),同樣使用了微軟的FSX(Microsoft Flight Simulator X)開發(fā)的軟件平臺(tái)ESP,為私人飛行員、商業(yè)組織、學(xué)術(shù)界共和軍隊(duì)提供了沉浸式的體驗(yàn)式學(xué)習(xí)。Fsuipc 即飛行模擬器通用進(jìn)程間通信,是第三方插件,在FSX 時(shí)期即可獲取仿真內(nèi)部數(shù)據(jù)并且與之交互。P3D 在效果上和性能上較FSX 進(jìn)行了優(yōu)化,對(duì)Fsuipc 插件同樣支持[5]。
Fsuipc 保留了65535 個(gè)字節(jié)的內(nèi)存塊,在對(duì)數(shù)據(jù)進(jìn)行請(qǐng)求的時(shí)候,根據(jù)使用版本提供的開發(fā)文檔,查找到相應(yīng)的變量偏移地址,并且根據(jù)文檔記錄的計(jì)算公式,就可以得到需要的飛行數(shù)據(jù)。此外,P3D 自身提供了相應(yīng)的SDK, 使用當(dāng)前版本的simconnect 靜態(tài)庫,查看相關(guān)文檔進(jìn)行開發(fā)即可直接獲取數(shù)據(jù),但經(jīng)過測(cè)試這種方法嚴(yán)重影響了系統(tǒng)幀率,無法保證實(shí)時(shí)性需求。針對(duì)系統(tǒng)的功能需求,獲取數(shù)據(jù)種類為:緯度、經(jīng)度、空速、朝向、俯仰角、滾轉(zhuǎn)角、雷達(dá)高度、垂直速度。
如圖2,數(shù)據(jù)使用UPD 在局域網(wǎng)發(fā)送和處理,考慮系統(tǒng)幀率為60,在局域網(wǎng)內(nèi)丟包率忽略不計(jì),數(shù)據(jù)包的可靠性在應(yīng)用層保證,使用統(tǒng)一小端、字節(jié)緊湊、統(tǒng)一包頭的方式進(jìn)行處理。
Sql Server,是由微軟公司研發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有伸縮性好、集成度高的優(yōu)點(diǎn)。歷史上,Sql Server 最初不是微軟自己研發(fā)的產(chǎn)品,是為了和IBM競(jìng)爭(zhēng),微軟和Sybase 合作研發(fā),自6.0 版本后才是微軟自行研發(fā)的。最初的幾個(gè)版本適用于中小企業(yè)的數(shù)據(jù)庫管理,但是近些年的發(fā)展,已經(jīng)可以涉及到大型、跨國企業(yè)的數(shù)據(jù)庫管理;
本文所涉及的數(shù)據(jù)存儲(chǔ)是十幾分鐘到幾十分鐘不等的幀率為60 的飛行數(shù)據(jù),并且不考慮并發(fā)的情況,數(shù)據(jù)量總體不是特別大,考慮針對(duì)數(shù)據(jù)規(guī)模不大的數(shù)據(jù)庫即可,采用的數(shù)據(jù)庫版本為Sql Server 2005。對(duì)數(shù)據(jù)庫的連接需要配置ODBC,采用Qt提供的數(shù)據(jù)庫接口,對(duì)數(shù)據(jù)庫進(jìn)行連接和操作。數(shù)據(jù)庫主要維護(hù)兩個(gè)表:學(xué)員歷史成績表和學(xué)員一次訓(xùn)練的詳細(xì)飛行數(shù)據(jù)表(圖3)。

圖3 某學(xué)員一次成訓(xùn)練數(shù)據(jù)分截圖
飛行評(píng)價(jià)標(biāo)準(zhǔn)需要在導(dǎo)入所有的飛行數(shù)據(jù)后能夠根據(jù)給定的飛行規(guī)則將飛行數(shù)據(jù)所表示的飛行過程正確劃分飛行階段,然后根據(jù)所配置的評(píng)價(jià)標(biāo)準(zhǔn)進(jìn)行評(píng)價(jià)。一份參考的部分規(guī)則表格如表1。

表1 評(píng)分標(biāo)準(zhǔn)示例
算法過程根據(jù)實(shí)際飛行訓(xùn)練產(chǎn)生的數(shù)據(jù),考察飛行訓(xùn)練時(shí)學(xué)員駕駛模擬飛機(jī)飛行的軌跡是否符合預(yù)期。在本文中,實(shí)際獲得的數(shù)據(jù)是飛機(jī)的位置信息和自身的姿態(tài)等信息,需要考察的相對(duì)位置信息需要算法自行計(jì)算。需要自行計(jì)算的包括在第三邊直飛的平穩(wěn)度,飛機(jī)進(jìn)近時(shí)候?qū)嶋H下滑道的角度,需要根據(jù)實(shí)際機(jī)場(chǎng)的模型獲得當(dāng)前跑道另一頭導(dǎo)航臺(tái)的位置信息,飛機(jī)過跑到頭時(shí)的高度根據(jù)飛機(jī)的位置轉(zhuǎn)換成地球坐標(biāo)系,計(jì)算投影的高度。
Qt 是Digia 公司開發(fā)的跨平臺(tái)c++應(yīng)用程序開發(fā)框架,廣泛用于GUI 的程序開發(fā),也可以用在非GUI 開發(fā)的程序中。Qt使用使用標(biāo)準(zhǔn)的c++語言和特殊的代碼生成擴(kuò)展,及元對(duì)象編譯器(Meta Object Compiler,moc),以及宏,在正式代碼預(yù)處理前處理程序,來實(shí)現(xiàn)Qt 的相關(guān)特性。Qt 是自由開源代碼的軟件,支持廣泛的編譯器。本文的開發(fā)環(huán)境為Qt4.8+visual studio 2008,后臺(tái)網(wǎng)絡(luò)傳輸和對(duì)數(shù)據(jù)庫的操控均采用了Qt 的接口。
基于Qt 提供的強(qiáng)大GUI 處理功能,可以方便的設(shè)計(jì)交互界面。本文涉及的界面交互模塊的設(shè)計(jì)和實(shí)現(xiàn)均是使用了Qt 設(shè)計(jì)器方便的拖拽相關(guān)的控件,控件的相關(guān)特殊特性可以的在后臺(tái)指定。教員在使用本系統(tǒng)的時(shí)候,可以不修改以前使用系統(tǒng)的習(xí)慣,即選擇機(jī)場(chǎng)、機(jī)場(chǎng)跑道、跑道頭后,本系統(tǒng)對(duì)以前的數(shù)據(jù)進(jìn)行同步。教員在訓(xùn)練開始的時(shí)候只需要點(diǎn)擊開始,訓(xùn)練結(jié)束的時(shí)候點(diǎn)擊結(jié)束,即可獲得一次完整訓(xùn)練的成績。一次訓(xùn)練的記錄截圖(圖4)。
本文在結(jié)合民航飛行訓(xùn)練大綱和相關(guān)專家意見的基礎(chǔ)上,實(shí)現(xiàn)了基于飛行規(guī)則的飛行訓(xùn)練自動(dòng)評(píng)分系統(tǒng)。能夠在培訓(xùn)飛行員或者管制員等有飛行原理,航空器、動(dòng)力裝置與系統(tǒng)的操作原理與功能等知識(shí)體系職業(yè)需求的時(shí)候,使用飛行訓(xùn)練器訓(xùn)練,收集訓(xùn)練數(shù)據(jù)并且自動(dòng)計(jì)算出參考分?jǐn)?shù),一定程度上解決了傳統(tǒng)訓(xùn)練模式下教員純主觀帶來的評(píng)估偏差。經(jīng)過測(cè)試,系統(tǒng)工作良好,簡(jiǎn)單易用,可以較好的輔助教員訓(xùn)練。學(xué)員訓(xùn)練的歷史數(shù)據(jù)不僅可以評(píng)估學(xué)員的當(dāng)前相關(guān)知識(shí)水平,還能用于預(yù)測(cè)后面可能的水平情況,可針對(duì)性的安排訓(xùn)練。此外,記錄的大量數(shù)據(jù)還可以使用數(shù)據(jù)挖掘等方式分析出需要的特別信息,具有不菲的研究價(jià)值。

圖4 一次飛行訓(xùn)練評(píng)估結(jié)果記錄的界面