王志樂,付戰平,周秀芝
(海軍航空工程學院青島校區軍用虛擬仿真研究與訓練中心,山東 青島 266041)
顯示與控制系統(簡稱顯控)作為現代飛機綜合航空電子系統的核心部分,既負責管理航空電子系統的工作模式和狀態,又對座艙內的各種操作進行處理[1],顯示其他系統的各種數據,通過各型顯示裝置向飛行員輸出顯示信息[2]。
顯控系統仿真是模擬器研制的重要組成部分[3-4]。傳統的顯控系統仿真都基于顯示畫面,整理顯控中主要的顯示畫面,然后對畫面菜單進行分級開發,編寫畫面間的切換邏輯,交聯系統的數據處理集中在畫面開發中完成,如某型飛機多功能顯示系統的仿真[5],此方法會增加邏輯編寫的復雜度,易造成畫面重疊出現,多個顯示終端的數據實時性不好;而且系統的靈活性和通用性差,當研制同一型號另一功能模擬器或者應用于虛擬環境的訓練系統時無法適應,而模擬器的研制費用昂貴,因此在現有模擬器基礎上進行新的實驗改進尤為重要[6-8],NASA的LaSRS++項目使用面向對象技術設計的模擬器框架進行了多年持續的改進,項目代碼復用率達96%[9-10]。所以,采用可重構的技術研制的模擬器仿真軟件才能適應模擬器的發展[11]。本文在進行顯控系統仿真時,將前臺顯示部分和后臺控制處理軟件分開設計,結合軟件的可重構特性、代碼和設計模式的可復用性,提出一種基于指令控制方式的顯控系統仿真方法,在編寫后臺圖元控制和數據處理軟件時無須考慮有多少顯示畫面以及顯示畫面之間的切換關系,以提高顯控系統的開發效率和可靠性,以及模擬器研制的重構能力。
顯控處理系統從軟件結構上劃分包括綜合任務處理機軟件和圖元顯示軟件。
(1)綜合任務處理機軟件作為顯控后臺軟件(簡稱處理機軟件),主要完成與各個交聯機載系統的數據處理與收發、航電顯示軟件的邏輯處理和畫面圖元組織繪制。
(2)圖元顯示軟件作為顯控前臺軟件,呈現給訓練人員的是可視化的圖形圖象和操作菜單,該軟件主要接收處理機軟件發送的圖元指令信息,解析指令信息后通過圖形圖象處理算法完成圖元的繪制和顯示。
為了使顯控系統框架和代碼能夠復用,主要采用面向對象技術,另外實現系統的重構必須使軟件設計完全與硬件脫離,因此,在顯控系統和多功能顯示器(MFD)、多功能鍵盤(MFK)等硬件之間的通信必須通過測控中間軟件完成。顯控系統交互結構如圖1所示。

圖1 顯控系統交互結構
由于顯控系統需要顯示的內容比較多,圖形圖像運算量比較大,邏輯解算和數據處理量很大,而且對系統實時性要求較高,同時又具有一定的可重構性和維護性,因此對仿真軟件的設計尤為關鍵。
處理機仿真軟件選用Visual C++.Net,采用面向對象的類開發技術為主,將處理機仿真軟件各個功能分別封裝成類進行調用,圖元顯示軟件采用專業的儀表仿真軟件GL Studio。
GL Studio[12]是DISTI公司為儀表仿真軟件開發提供的一套系統解決方案,用來創建實時、二維或三維、照片級的互動圖形界面[13]。
用戶可以利用其圖形交互界面以所見即所得的方式來完成儀表面板的制作,通過代碼編輯器調用GL Studio及Windows提供的API來完成儀表內圖元的控制,因此,可以利用GL Studio實現圖元顯示軟件的開發。GL Studio仿真儀表能被創建成可執行文件(.exe)、動態鏈接庫(.dll)、ActiveX控件,可以很方便地用于模擬器的重構。
根據仿真功能,可以將處理機軟件劃分為指令畫面繪制類、邏輯控制類、數據處理類,系統軟件架構如圖2所示。在圖2中,元件是指開關、按鈕等某一器件,僅發出信號和狀態。系統設計采用的C/S模式,描述了航電顯控系統與圖元顯示軟件的交互關系和交互方式,該系統在設計時兼容了顯控硬件設備和純虛擬顯控設備2種研制模式。

圖2 系統軟件架構設計
處理機軟件仿真包括利用指令進行繪制圖元形成顯示畫面、鍵盤控制邏輯,以及與各個系統交聯數據的運算處理。
指令是指用戶自定義的圖元繪制和控制接口。該指令包含指令代碼和特征字。每調用完一個指令之后會將每個圖元指令代號和圖元特征以十六進制數存放在unsigned short數組中,形成指令幀。由網絡模塊通過UDP方式發送給圖元顯示軟件。
鍵盤邏輯控制包括MFK、MFD周邊鍵。按壓鍵盤之后,將鍵盤的RS485信號和狀態發送給測控中間件,該軟件將接受的信號重新編碼,形成新的協議發送給處理機仿真軟件。與各個系統交聯數據的運算處理主要是將系統輸入的原始數據進行二次加工,通過計算產生飛行員等使用人員所關心的一些數據,以易讀易交互的數據方式顯示在圖元顯示軟件上。
處理機軟件繪制圖元在顯示軟件上的畫面時,通過調用指令來完成。處理機軟件將構成畫面的指令幀存儲在數組_BUFF[2048]中。
指令幀的信息字段如表1所示。在表1中,每一個指令和指令數據(圖元特征)都按順序排列在數組中,當畫面繪制完畢之后調用結束指令。根據顯示畫面的符號特征可以把圖元指令分為通用指令和特殊指令。

表1 指令幀的信息字段
3.3.1 通用指令
通用指令用于繪制矩形、圓弧、直線等圖形,繪制字母、數字、漢字和標點符號。
多功能顯示器(MFD)以象素點為衡量單位,從上至下為0~1023;從左至右為0~767,顯示器左上角為(0,0)點。因此,用指令描述圖元坐標x,y時同樣采用象素點,編碼方式為二進制編碼;字母、數字、漢字和標點符號的編號采用內碼方式實現。字母、數字編碼的低8位與ASCII碼的碼值相同,高8位為0。例如圓(弧)指令和字符顯示指令,見表2和表3。

表2 圓(弧)指令

表3 字符顯示指令
特征字的格式為0xXXXX(16 進制):

字號:為0,表示16號字體;為1,表示10號字體。
閃爍:為0,表示不閃爍,為1,表示閃爍。
顏色:根據需要自定義。
3.3.2 特殊指令
特殊圖符指令:繪制特殊的圖符。除通用圖符以外的所有符號。需要一一定義圖符的指令代碼和特征描述,如圖3飛行姿態所示,指令描述如表4所示。數據字1的單位為°,編碼方式為二進制編碼,最低位為0.1;數據字2的單位為°,編碼方式為二進制編碼,最低位為0.1。

圖3 飛行姿態圖符

表4 飛行姿態顯示指令
圖元顯示軟件利用GL Studio進行開發,通過接收處理機軟件發送的繪制顯示頁面指令集,完成每一個圖元的實時繪制和刷新,具體流程如圖4所示。對于圖元顯示軟件來說,所有的圖元處理函數都在GL Studio動態庫中完成,主要包括指令解析、通用圖元處理算法和特殊圖元處理算法。

圖4 圖元的構建
3.4.1 指令解析
任務處理機軟件將頁面繪制的所有指令轉為16進制數后以字符串發送給GL Studio動態庫,再在內部還原成short型數組iReBuffer[2048],此方法解決了GL Studio對外只提供Property交互方式,實現了只用一個屬性完成大數據量的交互。圖5是指令解析N-S算法的流程。字符串轉換之后,通過遍歷數組chReBuffer獲得每一個指令及其特征數據,解析指令后調用繪制函數完成圖元的繪制。

圖5 指令解析N-S算法流程
3.4.2 圖元處理
頁面上顯示的每一個圖元都是利用指令數據(圖元特征)進行計算處理后完成正確顯示的。通用指令的圖元是通過GL Studio提供的接口動態創建的;特定圖元是通過加載貼圖后,調用GL Studio提供的接口驅動。
通用指令通過定義各自的容器來存放,優點是可以動態存放不定數量的圖元數據;容器是一個多功能的,能夠操作多種數據結構和算法的模板類和函數庫,可以很方便地處理其中的數據。
首先根據指令及數據定義數據結構,然后定義指令數據容器,將相同的圖元數據存放在容器中(如字符串、航路點、航線等)。本文以字符圖元和圓(弧)圖元進行設計。


圖元處理過程如圖6所示。然后根據容器中圖元的數據調用GL Studio提供的接口動態繪制圖元、驅動圖元顯示或者運動,圖元都存儲在對象容器中。動態繪制圖元流程如圖7所示。再根據容器中圖元的數據調用GL Studio提供的接口動態繪制圖元、驅動圖元顯示或者運動,圖元都存儲在對象容器中。動態繪制圖元流程如圖7所示。

圖6 圖元處理過程

圖7 動態繪制圖元流程
該仿真方法已成功應用于某型飛機模擬器。處理機軟件運行在Inter(R)Core(TM)2 CPU 4300@1.80 GHz、內存1 GB、顯卡NVIDIA GeForce9300硬件條件下,圖元顯示軟件運行在單板機上,圖8和圖9是該型模擬器顯控運行部分的效果。定義指令幀unsigned short_BUFF[2048],經過對每一個頁面指令幀分析發現,2048的空間足夠顯控系統圖元數據的存儲,在測試過程中結合了模擬器的飛行和武器操縱功能,圖元驅動的實時性完全滿足飛行訓練需求。對圖元較多較復雜的頁面做分析,如表5所示。

圖8 導航界面

圖9 駕駛界面

表5 指令存儲與圖元驅動仿真時間
顯控系統操作響應的實時性會嚴重影響模擬器的性能,進而影響飛行員訓練的逼真度和效果。影響軟件實時性的主要因素是處理機軟件接受用戶操作信號后,進行邏輯運算、組織顯示畫面的時間。由于顯控系統畫面復雜多變,因此邏輯關系的解算極其復雜,傳統仿真方法是基于畫面一一進行仿真,邏輯判斷及嵌套很深,有時候一個菜單一個符號的改變都要作為一個畫面進行制作驅動,很容易出現菜單或符號等重疊出現或者畫面多次操作后顯示不對。表6和表7給出了2種設計方式邏輯解算的效率。

表6 基于指令邏輯的處理時間

表7 基于畫面邏輯的處理時間
該型顯控仿真軟件同時應用于該型直升機雷達仿真模擬器,無須改動指令和處理機軟件,直接在圖元顯示軟件上疊加雷達仿真視頻,實現了軟件重構,見圖10。同樣該顯控仿真軟件應用于別的機型時,通用指令和特殊指令的圖元顯示軟件無需改變,只需要修改處理機軟件,通過調用指令來組織新的畫面。

圖10 疊加雷達視頻界面
針對現代飛機模擬器研制過程中顯控系統仿真存在的局限性和不穩定性,本文綜合考慮顯控邏輯處理和圖元顯示構建,提出一種基于指令重構技術構建顯控頁面的方法,仿真實驗及結果的定性定量分析表明,該方法有效地簡化了系統仿真的過程,降低邏輯復雜度,提高了系統的穩定性和實時性,并且可以有效應對系統的變更。今后需要進一步對圖元特征進行抽象,完善顯控后臺邏輯仿真方法,構建顯控仿真通用平臺。
[1]范天慈.機載綜合顯示系統[M].北京:國防工業出版社,2008.
[2]吳華興,康鳳舉,黃 偉,等.基于虛擬現實環境的飛機顯控系統軟件仿真[J].系統仿真學報,2012,24(6):1232-1235.
[3]羅春波,沈為群,宋子善,飛行多功能顯示器仿真系統的研究與實現[J].計算機仿真,2004,21(12):249-251.
[4]張鳳鳴,褚文奎,樊曉光,等.綜合模塊化航空電子體系結構研究[J].電光與控制,2009,16(9):47-51.
[5]陳 曦,李國清,宋吉江,等.某型軍機多功能顯示系統的仿真[J].系統仿真學報,2006,18(S2):457-459.
[6]Heesbeen B W,Ruigrok W M.A Versatile Simulator Architecture Making Simulation of Multiple Complex Aircraft Simple[C]//Proc. of AIAA Modeling and Simulation Technologies Conference.Colorado,USA:[s.n.],2006:6477-6481.
[7]Jordan T L,Bailey R M.NASA Langley’s Airstar Testbed:A Subscale Flight Test Capability for Flight Dynamics and Control System Experiments[C]//Proc.of AIAA Guidance,Navigation and Control Conference and Exhibit.Honolulu,USA:[s.n.],2008:6660-6665.
[8]劉廣達,黃其濤,韓俊偉.可重構研究用飛行模擬器設計[J].哈爾濱工程大學學報,2011,32(4):492-498.
[9]Wusk M S,Wusk M S.Aries Nasa Langley’s Airborne Research Facility[C]//Proc.of AIAA Aircraft Technology Integration and Operations Forum.Los Angeles,USA:[s.n.],2002:134-139.
[10]Jason R N,Patrick K.Rapid Prototyping of an Aircraft Model in an Object-oriented Simulation[C]//Proc.of AIAA Modeling and Simulation Technologies Conference and Exhibit.Austin,USA:[s.n.],2003:5816-5820.
[11]Liu H T.Interactive Design and Simulation Platform for Flight Vehicle Systems Development[C]//Proc.of AIAA Molding and Simulation Technologies Conference and Exhibit.San Francisco,USA:[s.n.],2006:6812-6828.
[12]北京華力創通科技有限公司.GL Studio:真實儀表面板開發平臺[J].軟件世界,2004,8(2):44-45.
[13]Distributed Simulation Technology Inc..Gl Studio User’s Guide Ver3.0[M].[S.l.]:Disti Inc.,2005.