王志樂,付戰(zhàn)平,周秀芝
(海軍航空工程學院青島校區(qū)軍用虛擬仿真研究與訓練中心,山東 青島 266041)
顯示與控制系統(tǒng)(簡稱顯控)作為現(xiàn)代飛機綜合航空電子系統(tǒng)的核心部分,既負責管理航空電子系統(tǒng)的工作模式和狀態(tài),又對座艙內(nèi)的各種操作進行處理[1],顯示其他系統(tǒng)的各種數(shù)據(jù),通過各型顯示裝置向飛行員輸出顯示信息[2]。
顯控系統(tǒng)仿真是模擬器研制的重要組成部分[3-4]。傳統(tǒng)的顯控系統(tǒng)仿真都基于顯示畫面,整理顯控中主要的顯示畫面,然后對畫面菜單進行分級開發(fā),編寫畫面間的切換邏輯,交聯(lián)系統(tǒng)的數(shù)據(jù)處理集中在畫面開發(fā)中完成,如某型飛機多功能顯示系統(tǒng)的仿真[5],此方法會增加邏輯編寫的復雜度,易造成畫面重疊出現(xiàn),多個顯示終端的數(shù)據(jù)實時性不好;而且系統(tǒng)的靈活性和通用性差,當研制同一型號另一功能模擬器或者應用于虛擬環(huán)境的訓練系統(tǒng)時無法適應,而模擬器的研制費用昂貴,因此在現(xiàn)有模擬器基礎上進行新的實驗改進尤為重要[6-8],NASA的LaSRS++項目使用面向對象技術設計的模擬器框架進行了多年持續(xù)的改進,項目代碼復用率達96%[9-10]。所以,采用可重構的技術研制的模擬器仿真軟件才能適應模擬器的發(fā)展[11]。本文在進行顯控系統(tǒng)仿真時,將前臺顯示部分和后臺控制處理軟件分開設計,結合軟件的可重構特性、代碼和設計模式的可復用性,提出一種基于指令控制方式的顯控系統(tǒng)仿真方法,在編寫后臺圖元控制和數(shù)據(jù)處理軟件時無須考慮有多少顯示畫面以及顯示畫面之間的切換關系,以提高顯控系統(tǒng)的開發(fā)效率和可靠性,以及模擬器研制的重構能力。
顯控處理系統(tǒng)從軟件結構上劃分包括綜合任務處理機軟件和圖元顯示軟件。
(1)綜合任務處理機軟件作為顯控后臺軟件(簡稱處理機軟件),主要完成與各個交聯(lián)機載系統(tǒng)的數(shù)據(jù)處理與收發(fā)、航電顯示軟件的邏輯處理和畫面圖元組織繪制。
(2)圖元顯示軟件作為顯控前臺軟件,呈現(xiàn)給訓練人員的是可視化的圖形圖象和操作菜單,該軟件主要接收處理機軟件發(fā)送的圖元指令信息,解析指令信息后通過圖形圖象處理算法完成圖元的繪制和顯示。
為了使顯控系統(tǒng)框架和代碼能夠復用,主要采用面向對象技術,另外實現(xiàn)系統(tǒng)的重構必須使軟件設計完全與硬件脫離,因此,在顯控系統(tǒng)和多功能顯示器(MFD)、多功能鍵盤(MFK)等硬件之間的通信必須通過測控中間軟件完成。顯控系統(tǒng)交互結構如圖1所示。
圖1 顯控系統(tǒng)交互結構
由于顯控系統(tǒng)需要顯示的內(nèi)容比較多,圖形圖像運算量比較大,邏輯解算和數(shù)據(jù)處理量很大,而且對系統(tǒng)實時性要求較高,同時又具有一定的可重構性和維護性,因此對仿真軟件的設計尤為關鍵。
處理機仿真軟件選用Visual C++.Net,采用面向對象的類開發(fā)技術為主,將處理機仿真軟件各個功能分別封裝成類進行調(diào)用,圖元顯示軟件采用專業(yè)的儀表仿真軟件GL Studio。
GL Studio[12]是DISTI公司為儀表仿真軟件開發(fā)提供的一套系統(tǒng)解決方案,用來創(chuàng)建實時、二維或三維、照片級的互動圖形界面[13]。
用戶可以利用其圖形交互界面以所見即所得的方式來完成儀表面板的制作,通過代碼編輯器調(diào)用GL Studio及Windows提供的API來完成儀表內(nèi)圖元的控制,因此,可以利用GL Studio實現(xiàn)圖元顯示軟件的開發(fā)。GL Studio仿真儀表能被創(chuàng)建成可執(zhí)行文件(.exe)、動態(tài)鏈接庫(.dll)、ActiveX控件,可以很方便地用于模擬器的重構。
根據(jù)仿真功能,可以將處理機軟件劃分為指令畫面繪制類、邏輯控制類、數(shù)據(jù)處理類,系統(tǒng)軟件架構如圖2所示。在圖2中,元件是指開關、按鈕等某一器件,僅發(fā)出信號和狀態(tài)。系統(tǒng)設計采用的C/S模式,描述了航電顯控系統(tǒng)與圖元顯示軟件的交互關系和交互方式,該系統(tǒng)在設計時兼容了顯控硬件設備和純虛擬顯控設備2種研制模式。
圖2 系統(tǒng)軟件架構設計
處理機軟件仿真包括利用指令進行繪制圖元形成顯示畫面、鍵盤控制邏輯,以及與各個系統(tǒng)交聯(lián)數(shù)據(jù)的運算處理。
指令是指用戶自定義的圖元繪制和控制接口。該指令包含指令代碼和特征字。每調(diào)用完一個指令之后會將每個圖元指令代號和圖元特征以十六進制數(shù)存放在unsigned short數(shù)組中,形成指令幀。由網(wǎng)絡模塊通過UDP方式發(fā)送給圖元顯示軟件。
鍵盤邏輯控制包括MFK、MFD周邊鍵。按壓鍵盤之后,將鍵盤的RS485信號和狀態(tài)發(fā)送給測控中間件,該軟件將接受的信號重新編碼,形成新的協(xié)議發(fā)送給處理機仿真軟件。與各個系統(tǒng)交聯(lián)數(shù)據(jù)的運算處理主要是將系統(tǒng)輸入的原始數(shù)據(jù)進行二次加工,通過計算產(chǎn)生飛行員等使用人員所關心的一些數(shù)據(jù),以易讀易交互的數(shù)據(jù)方式顯示在圖元顯示軟件上。
處理機軟件繪制圖元在顯示軟件上的畫面時,通過調(diào)用指令來完成。處理機軟件將構成畫面的指令幀存儲在數(shù)組_BUFF[2048]中。
指令幀的信息字段如表1所示。在表1中,每一個指令和指令數(shù)據(jù)(圖元特征)都按順序排列在數(shù)組中,當畫面繪制完畢之后調(diào)用結束指令。根據(jù)顯示畫面的符號特征可以把圖元指令分為通用指令和特殊指令。
表1 指令幀的信息字段
3.3.1 通用指令
通用指令用于繪制矩形、圓弧、直線等圖形,繪制字母、數(shù)字、漢字和標點符號。
多功能顯示器(MFD)以象素點為衡量單位,從上至下為0~1023;從左至右為0~767,顯示器左上角為(0,0)點。因此,用指令描述圖元坐標x,y時同樣采用象素點,編碼方式為二進制編碼;字母、數(shù)字、漢字和標點符號的編號采用內(nèi)碼方式實現(xiàn)。字母、數(shù)字編碼的低8位與ASCII碼的碼值相同,高8位為0。例如圓(弧)指令和字符顯示指令,見表2和表3。
表2 圓(弧)指令
表3 字符顯示指令
特征字的格式為0xXXXX(16 進制):
字號:為0,表示16號字體;為1,表示10號字體。
閃爍:為0,表示不閃爍,為1,表示閃爍。
顏色:根據(jù)需要自定義。
3.3.2 特殊指令
特殊圖符指令:繪制特殊的圖符。除通用圖符以外的所有符號。需要一一定義圖符的指令代碼和特征描述,如圖3飛行姿態(tài)所示,指令描述如表4所示。數(shù)據(jù)字1的單位為°,編碼方式為二進制編碼,最低位為0.1;數(shù)據(jù)字2的單位為°,編碼方式為二進制編碼,最低位為0.1。
圖3 飛行姿態(tài)圖符
表4 飛行姿態(tài)顯示指令
圖元顯示軟件利用GL Studio進行開發(fā),通過接收處理機軟件發(fā)送的繪制顯示頁面指令集,完成每一個圖元的實時繪制和刷新,具體流程如圖4所示。對于圖元顯示軟件來說,所有的圖元處理函數(shù)都在GL Studio動態(tài)庫中完成,主要包括指令解析、通用圖元處理算法和特殊圖元處理算法。
圖4 圖元的構建
3.4.1 指令解析
任務處理機軟件將頁面繪制的所有指令轉為16進制數(shù)后以字符串發(fā)送給GL Studio動態(tài)庫,再在內(nèi)部還原成short型數(shù)組iReBuffer[2048],此方法解決了GL Studio對外只提供Property交互方式,實現(xiàn)了只用一個屬性完成大數(shù)據(jù)量的交互。圖5是指令解析N-S算法的流程。字符串轉換之后,通過遍歷數(shù)組chReBuffer獲得每一個指令及其特征數(shù)據(jù),解析指令后調(diào)用繪制函數(shù)完成圖元的繪制。
圖5 指令解析N-S算法流程
3.4.2 圖元處理
頁面上顯示的每一個圖元都是利用指令數(shù)據(jù)(圖元特征)進行計算處理后完成正確顯示的。通用指令的圖元是通過GL Studio提供的接口動態(tài)創(chuàng)建的;特定圖元是通過加載貼圖后,調(diào)用GL Studio提供的接口驅動。
通用指令通過定義各自的容器來存放,優(yōu)點是可以動態(tài)存放不定數(shù)量的圖元數(shù)據(jù);容器是一個多功能的,能夠操作多種數(shù)據(jù)結構和算法的模板類和函數(shù)庫,可以很方便地處理其中的數(shù)據(jù)。
首先根據(jù)指令及數(shù)據(jù)定義數(shù)據(jù)結構,然后定義指令數(shù)據(jù)容器,將相同的圖元數(shù)據(jù)存放在容器中(如字符串、航路點、航線等)。本文以字符圖元和圓(弧)圖元進行設計。
圖元處理過程如圖6所示。然后根據(jù)容器中圖元的數(shù)據(jù)調(diào)用GL Studio提供的接口動態(tài)繪制圖元、驅動圖元顯示或者運動,圖元都存儲在對象容器中。動態(tài)繪制圖元流程如圖7所示。再根據(jù)容器中圖元的數(shù)據(jù)調(diào)用GL Studio提供的接口動態(tài)繪制圖元、驅動圖元顯示或者運動,圖元都存儲在對象容器中。動態(tài)繪制圖元流程如圖7所示。
圖6 圖元處理過程
圖7 動態(tài)繪制圖元流程
該仿真方法已成功應用于某型飛機模擬器。處理機軟件運行在Inter(R)Core(TM)2 CPU 4300@1.80 GHz、內(nèi)存1 GB、顯卡NVIDIA GeForce9300硬件條件下,圖元顯示軟件運行在單板機上,圖8和圖9是該型模擬器顯控運行部分的效果。定義指令幀unsigned short_BUFF[2048],經(jīng)過對每一個頁面指令幀分析發(fā)現(xiàn),2048的空間足夠顯控系統(tǒng)圖元數(shù)據(jù)的存儲,在測試過程中結合了模擬器的飛行和武器操縱功能,圖元驅動的實時性完全滿足飛行訓練需求。對圖元較多較復雜的頁面做分析,如表5所示。
圖8 導航界面
圖9 駕駛界面
表5 指令存儲與圖元驅動仿真時間
顯控系統(tǒng)操作響應的實時性會嚴重影響模擬器的性能,進而影響飛行員訓練的逼真度和效果。影響軟件實時性的主要因素是處理機軟件接受用戶操作信號后,進行邏輯運算、組織顯示畫面的時間。由于顯控系統(tǒng)畫面復雜多變,因此邏輯關系的解算極其復雜,傳統(tǒng)仿真方法是基于畫面一一進行仿真,邏輯判斷及嵌套很深,有時候一個菜單一個符號的改變都要作為一個畫面進行制作驅動,很容易出現(xiàn)菜單或符號等重疊出現(xiàn)或者畫面多次操作后顯示不對。表6和表7給出了2種設計方式邏輯解算的效率。
表6 基于指令邏輯的處理時間
表7 基于畫面邏輯的處理時間
該型顯控仿真軟件同時應用于該型直升機雷達仿真模擬器,無須改動指令和處理機軟件,直接在圖元顯示軟件上疊加雷達仿真視頻,實現(xiàn)了軟件重構,見圖10。同樣該顯控仿真軟件應用于別的機型時,通用指令和特殊指令的圖元顯示軟件無需改變,只需要修改處理機軟件,通過調(diào)用指令來組織新的畫面。
圖10 疊加雷達視頻界面
針對現(xiàn)代飛機模擬器研制過程中顯控系統(tǒng)仿真存在的局限性和不穩(wěn)定性,本文綜合考慮顯控邏輯處理和圖元顯示構建,提出一種基于指令重構技術構建顯控頁面的方法,仿真實驗及結果的定性定量分析表明,該方法有效地簡化了系統(tǒng)仿真的過程,降低邏輯復雜度,提高了系統(tǒng)的穩(wěn)定性和實時性,并且可以有效應對系統(tǒng)的變更。今后需要進一步對圖元特征進行抽象,完善顯控后臺邏輯仿真方法,構建顯控仿真通用平臺。
[1]范天慈.機載綜合顯示系統(tǒng)[M].北京:國防工業(yè)出版社,2008.
[2]吳華興,康鳳舉,黃 偉,等.基于虛擬現(xiàn)實環(huán)境的飛機顯控系統(tǒng)軟件仿真[J].系統(tǒng)仿真學報,2012,24(6):1232-1235.
[3]羅春波,沈為群,宋子善,飛行多功能顯示器仿真系統(tǒng)的研究與實現(xiàn)[J].計算機仿真,2004,21(12):249-251.
[4]張鳳鳴,褚文奎,樊曉光,等.綜合模塊化航空電子體系結構研究[J].電光與控制,2009,16(9):47-51.
[5]陳 曦,李國清,宋吉江,等.某型軍機多功能顯示系統(tǒng)的仿真[J].系統(tǒng)仿真學報,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]北京華力創(chuàng)通科技有限公司.GL Studio:真實儀表面板開發(fā)平臺[J].軟件世界,2004,8(2):44-45.
[13]Distributed Simulation Technology Inc..Gl Studio User’s Guide Ver3.0[M].[S.l.]:Disti Inc.,2005.