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