劉一超1,李慧2
(1.空軍石家莊飛行學(xué)院 司令部,河北 石家莊 050000;2.河北經(jīng)貿(mào)大學(xué) 人文學(xué)院,河北 石家莊 050000)
摘要:采用模塊化設(shè)計方法,構(gòu)建了基于高層體系結(jié)構(gòu)/運行支撐環(huán)境(HLA/RTI)分布式協(xié)議的分布式機載武器仿真系統(tǒng)框架,具體介紹了各個模塊的功能、工作流程以及實現(xiàn)方法,形成了一套較為完整實用的系統(tǒng)開發(fā)解決方案。
關(guān)鍵詞:分布式;機載武器;仿真系統(tǒng)
中圖分類號:V411.8文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.04.026
引用格式:劉一超,李慧.基于HLA的機載武器仿真系統(tǒng)框架設(shè)計及實現(xiàn)[J].微型機與應(yīng)用,2017,36(4):87-89,93.
0引言
現(xiàn)代空中作戰(zhàn)對協(xié)同配合提出了更高的要求。單個的仿真系統(tǒng)很難再滿足實戰(zhàn)化模擬訓(xùn)練的各種需求,因此,分布式仿真成為當前計算機仿真領(lǐng)域發(fā)展的一個熱點方向。從實用化角度開展對分布式仿真系統(tǒng)的應(yīng)用研究并進行驗證,有著更為重要的意義。為了提高飛行射擊訓(xùn)練的實戰(zhàn)化訓(xùn)練水平,結(jié)合在研項目,本文基于高層體系結(jié)構(gòu)(High Level Architecture,HLA)仿真標準,通過運行支撐環(huán)境(RunTime Infrastructure,RTI),提出了分布式機載武器仿真系統(tǒng)的設(shè)計框架,并就其各模塊的功能和實現(xiàn)進行了分析研究和驗證,形成了一套比較完整的解決方案,供同仁研究探討。
1環(huán)境平臺簡介
1.1HLA/RTI
HLA是一種支持互操作和仿真模型重用的分布交互仿真標準,它在整個系統(tǒng)中負責消息的分發(fā)和時間的同步推進,是系統(tǒng)實現(xiàn)分布式交互操作的基礎(chǔ)。HLA通過RTI提供通用的、相對獨立的支撐服務(wù)程序,將仿真應(yīng)用同底層的支撐環(huán)境分開,即將具體的仿真功能實現(xiàn)、仿真運行管理和底層通信傳輸三者分離,各自的實現(xiàn)細節(jié)被隱藏,也就是說,開發(fā)者可以只專注于頂層的功能實現(xiàn)[1]。
RTI是HLA接口規(guī)范的具體實現(xiàn),它是基于HLA仿真的核心部件。RTI的功能與分布式操作系統(tǒng)類似,是HLA仿真應(yīng)用程序設(shè)計和運行的基礎(chǔ)。RTI的主要作用是為仿真應(yīng)用提供運行管理功能,如仿真過程的開始、暫停、回復(fù)、時間同步、仿真時鐘推進等;提供底層通信傳輸服務(wù),是具體的仿真功能實現(xiàn)、仿真運行管理和底層通信傳輸三者分離的基礎(chǔ)[2]。RTI的原型系統(tǒng)由DMSO于1995年開發(fā),目前有不同組織開發(fā)的多種版本的RTI。
BH RTI是北京航空航天大學(xué)研發(fā)的分布交互仿真開發(fā)與運行平臺中的運行平臺部分。該平臺支持HLA 1.3和IEEE 1516標準,是支持分布交互仿真應(yīng)用開發(fā)和高效運行的軟件系統(tǒng)平臺,可應(yīng)用于視景仿真、模擬訓(xùn)練、城市仿真、工業(yè)設(shè)計、交互式游戲等應(yīng)用領(lǐng)域。BH RTI的接口功能涵蓋標準中定義的六類管理服務(wù)(聯(lián)盟管理、聲明管理、對象管理、數(shù)據(jù)分發(fā)管理、所有權(quán)管理、時間管理) [3]、支撐服務(wù)以及管理對象模型(MOM)。
1.2Multigen Creator和VegaPrime
Multigen Creator是Multigen-Paradigm公司針對可視化仿真的應(yīng)用特點開發(fā)的可視化三維建模軟件系統(tǒng),整個系統(tǒng)中所有3D物體模型都是由它建立的。Creator實現(xiàn)了運行于高端SGI工作站和低端PC平臺的不同版本,因此可以適應(yīng)不同的硬件資源,給用戶提供一個“所見即所得”的交互式可視建模軟件環(huán)境。
Multigen Vega Prime是Multigen-Paradigm公司用于虛擬現(xiàn)實、實時視景仿真等可視化領(lǐng)域的應(yīng)用軟件工具,整個系統(tǒng)通過對其進行二次開發(fā)實現(xiàn)了仿真視景,模擬空中射擊訓(xùn)練的真實環(huán)境。它包括不同平臺下統(tǒng)一的圖形環(huán)境界面、完整的基于C++的應(yīng)用程序接口API、豐富的相關(guān)實用庫函數(shù)和一批可選的功能模塊[4]。Vega Prime是基于線程的,模塊接口通過模塊類調(diào)用,并且采用基于XML的ADF/ACF文件,因此執(zhí)行效率更高。
1.3基于DirectX 的下一代跨平臺體系結(jié)構(gòu) XNA
XNA(DirectX and Xbox Next-generation Architecture)是微軟開發(fā)的三維圖形程序設(shè)計開發(fā)平臺,本項目中主要用于飛機座艙儀表的實現(xiàn)。它以DirectX作底層支持,提供內(nèi)容導(dǎo)入、數(shù)據(jù)庫、輸入獲取、音視頻播放、網(wǎng)絡(luò)連接等常用工具。XNA是DirectX的替代者,相比后者,XNA的特點包括:運行在.NET環(huán)境下;圖形程序設(shè)計、聲音效果、輸入設(shè)備、網(wǎng)絡(luò)編程等所有功能集為一體;可編程流水線;通過素材管線(Content Pipeline)加載資源等。
以上三個技術(shù)平臺既相互依賴關(guān)聯(lián)又具有獨立性。HLA/RTI作為本項目核心的技術(shù)支撐,用于底層消息交互和時間同步推進模塊的研發(fā),它主要適用于構(gòu)建分布式交互仿真環(huán)境;Multigen Creator和Vega Prime則適用于三維仿真視景的構(gòu)建,通過接收、設(shè)置參數(shù)模擬空中射擊訓(xùn)練的真實環(huán)境;XNA基于DirectX且更加易用,因此適用于本系統(tǒng)飛機座艙儀表的仿真。三個技術(shù)平臺既可以專注于系統(tǒng)獨立模塊開發(fā),也可以通過數(shù)據(jù)聯(lián)動成為一個有機整體。由于易于開發(fā)、易于擴展、性能穩(wěn)定,它們構(gòu)成了分布式仿真應(yīng)用系統(tǒng)的核心技術(shù)平臺。
2系統(tǒng)框架
為了實現(xiàn)分布式機載武器仿真系統(tǒng),開展射擊訓(xùn)練和對抗演練,提升訓(xùn)練的效益和安全性,設(shè)計了基于HLA/RTI分布式機載武器仿真系統(tǒng)框架。該系統(tǒng)框架由HLA/RTI分布式仿真平臺和盟員程序兩部分組成,如圖1所示。
本系統(tǒng)中,HLA/RTI采用結(jié)合中心服務(wù)節(jié)點的分布式交互體系結(jié)構(gòu)。其中,多個RTI系統(tǒng)作為RTI節(jié)點獨立運行,同時有一個獨立運行的中心服務(wù)節(jié)點。RTI節(jié)點負責接收和轉(zhuǎn)發(fā)盟員程序交互所需要的數(shù)據(jù),主要是目標機的位置、姿態(tài)等信息,它是系統(tǒng)最基本的數(shù)據(jù)交互管理單位。RTI節(jié)點之間使用RTIRTI交互協(xié)議進行通信,它們的關(guān)系是平等的。中心服務(wù)節(jié)點管理多個RTI節(jié)點,負責分布式系統(tǒng)中全局數(shù)據(jù)的處理,是底層數(shù)據(jù)通信的協(xié)調(diào)中心,它通過RTICS交互協(xié)議與RTI節(jié)點進行通信[5]。各主機上獨立運行的RTI節(jié)點對于盟員程序來說像一個集中服務(wù)器一樣,同時各盟員程序之間可以實現(xiàn)互操作。
基于該框架實現(xiàn)的仿真系統(tǒng)不僅可以實現(xiàn)單機對空對地射擊訓(xùn)練、成績評定,而且可以通過聯(lián)網(wǎng)將分布于不同空間的多臺單機融合到一個場景中,實現(xiàn)不同飛行員之間聯(lián)網(wǎng)對抗,模擬實戰(zhàn)。
2.1聯(lián)邦的設(shè)計與開發(fā)
聯(lián)邦是指參與信息交互的實體和它們所處的同一場景環(huán)境構(gòu)成的集合體。每架戰(zhàn)機作為一個參與信息交互的實體,是一個聯(lián)邦成員。本機訂閱并動態(tài)接收其他戰(zhàn)機的名稱和實時坐標、姿態(tài),進而顯示在本機的視景中進行瞄準射擊,同時本機更新發(fā)布自身的名稱和實時坐標、姿態(tài)。這些交互的數(shù)據(jù)既可以通過更新/反映對象類屬性值來完成,也可以通過發(fā)送/接收交互實例來實現(xiàn)[6]。由于交互類不具有持續(xù)性,本系統(tǒng)選用對象類進行成員間的互操作。HLA/RTI在一個通用的聯(lián)盟對象模型文件(FED文件)中定義了對象類和交互類,以下是FED文件片段。
user object classes here
(class Aircraft
(attribute Name reliable timestamp)
(attribute Poszd reliable timestamp)
(attribute Poshp reliable timestamp)
(attribute Posxd reliable timestamp)
(attribute Thet reliable timestamp)
(attribute Psi reliable timestamp)
(attribute Gama reliable timestamp)
)
聯(lián)邦成員的底層擁有相同的運行流程,如圖2所示。
通過以上實現(xiàn),每個單機實體可以首先作為一個成員加入到聯(lián)邦中,然后聲明自己要接收和發(fā)送的數(shù)據(jù),在將這些感興趣的數(shù)據(jù)集合為一個對象并在聯(lián)邦環(huán)境中注冊后,圖2運行流程圖就可以進行消息循環(huán)了。隨著時間推進,每個單機實體實時發(fā)布數(shù)據(jù)、接收訂閱信息并據(jù)此更新狀態(tài)。即每個單機實體可以同步地推進時間和交互信息,它們感知的是同一個世界。
2.2飛行子系統(tǒng)
飛行子系統(tǒng)對飛機空氣動力特性進行仿真,解算飛機的六自由度非線性全量運動方程,獲取飛機的位置、姿態(tài)、角速度、速度等飛行參數(shù)[7],并將這些參數(shù)通過網(wǎng)絡(luò)輸出到其他子系統(tǒng)。
本系統(tǒng)首先使用數(shù)據(jù)采集模塊采集輸入座艙控制電門的開關(guān)狀態(tài),操縱系統(tǒng)的操縱面位置(即舵偏角)、液壓系統(tǒng)的襟翼、起落架狀態(tài)和油門桿的位置。通過判斷座艙電門的開關(guān)狀態(tài),發(fā)動機決定啟動或者停車。若發(fā)動機啟動成功,發(fā)動機模塊根據(jù)采集的油門桿位置查表插值得到發(fā)動機的轉(zhuǎn)速、推力以及耗油率,氣動系數(shù)模塊則根據(jù)舵偏角、襟翼和起落架的狀態(tài)以及運動方程模塊反饋的飛行參數(shù)(馬赫數(shù)、高度、迎角、側(cè)滑角等)查表插值取得飛機的氣動系數(shù)、氣動力和力矩。另外,起落架力和力矩模塊根據(jù)飛機飛行狀態(tài)和姿態(tài)、剎車壓力等計算起落架力和力矩。最終,運動方程模塊根據(jù)發(fā)動機推力、啟動力/力矩、自身質(zhì)量特性、反饋的起落架力/力矩以及系統(tǒng)接收的控制臺設(shè)定的環(huán)境參數(shù)(紊流、風和大氣等)積分解算六自由度非線性全量運動方程。解算得到的飛機運動參數(shù)通過網(wǎng)絡(luò)發(fā)送到視景子系統(tǒng)、火控子系統(tǒng)、儀表音響子系統(tǒng)以及訂閱了這些值的其他盟員程序。
為了滿足方程解算實時性的要求(本系統(tǒng)設(shè)定每個循環(huán)周期為10 ms),使用了多媒體計時器服務(wù)。使用該服務(wù),可以滿足系統(tǒng)高分辨率計時的需求,最小分辨率為1 ms。多功能USB數(shù)據(jù)采集卡的采集周期超過了10 ms,本系統(tǒng)為數(shù)據(jù)采集創(chuàng)建了新的線程。主要代碼如下。
timeGetDevCaps(tmcap,sizeof(LPTIMECAPS));
timeBeginPeriod(1);
timeEndPeriod(1);
…
HANDLE hThread=::CreateThread(NULL,0,RWdatacard,NULL,0,NULL);
CloseHandle(hThread);
飛行方程解算屬于計算密集型的應(yīng)用,實時性要求高。對于Windows系統(tǒng),一般每個線程的時間片耗時是不穩(wěn)定的,在15 ms左右變動,這難以滿足時間要求。通過使用多媒體定時器,能夠保證每個計算周期的耗時恒定為10 ms。解算時間的恒定可控使飛機在視景中的運動更為平滑。
2.3視景子系統(tǒng)
視景子系統(tǒng)提供仿真系統(tǒng)外部動態(tài)視覺
景觀的模擬,為使用者建立一個逼真的視覺環(huán)境。視景子系統(tǒng)根據(jù)飛行子系統(tǒng)和火控子系統(tǒng)傳遞的數(shù)據(jù),精確模擬飛行區(qū)域天空(太陽、月亮、云層)、地物地貌、飛行區(qū)域景觀、射擊作戰(zhàn)對象、瞄準具以及射擊效果顯示等視景,提供動態(tài)視覺場景,使能夠通過視景判斷飛行狀態(tài)(正?;蚍钦?、位置、姿態(tài)、戰(zhàn)術(shù)信息、目標信息等。
視景子系統(tǒng)的開發(fā)流程主要包括三步。首先,使用Creator或者其他3D模型軟件制作視景數(shù)據(jù)庫,如機場模型庫、目標模型庫(每種目標模型建有靜態(tài)、動態(tài)、毀損狀態(tài))、地形數(shù)據(jù)庫以及特殊效果庫(燃燒、粉塵、碎片等效果)等;第二步,在LynX Prime中調(diào)入.flt模型,完成基本環(huán)境設(shè)置、特效設(shè)置,從而完成.acf文件的配置;最后,在Visual Stdio 2005編程環(huán)境中設(shè)計視景仿真程序,直接調(diào)用Vega Prime的API函數(shù),利用接收的仿真數(shù)據(jù)驅(qū)動整個場景。
VP的工作流程為初始化—定義—配置—幀循環(huán)—關(guān)閉,可以劃分為靜態(tài)工作和動態(tài)循環(huán)兩個階段。如圖3所示。
系統(tǒng)初始化vp::initialize()完成的工作包括檢查許可證和初始化靜態(tài)變量、單模式類、內(nèi)存分配器、渲染函數(shù)庫、ACF解析器、模塊接口、核圖3視景子系統(tǒng)的開發(fā)流程心類等。接著,通過代碼或者將ACF文件傳遞給define()方法在系統(tǒng)定義中創(chuàng)建類實例并進行初始化。系統(tǒng)定義后,在配置階段設(shè)置多線程模式、線程優(yōu)先和分配器分配等,同時建立基于附加消息的類實例之間的關(guān)系。在幀循環(huán)階段,動態(tài)循環(huán)場景的刷新和渲染。最后關(guān)閉系統(tǒng),需要使用核心類分配的內(nèi)存、調(diào)用模塊的關(guān)閉方法清理內(nèi)存、結(jié)束同步線
程以及向許可證服務(wù)器返回許可證。
2.4火控子系統(tǒng)
火控子系統(tǒng)負責火控工作狀態(tài)解算、瞄準解算、外掛處理、武器彈道解算等,模擬武器使用的控制流程,并對武器的攻擊效果進行效能評估,分為7個模塊,如圖4所示。
中央解算模塊負責火控系統(tǒng)工作狀態(tài)的處理,對瞄準具、軍械綜合顯示器的狀態(tài)進行控制,進行武器的瞄準解算,確定瞄準光環(huán)的位置。彈道解算模塊分別建立航炮、火箭和炸彈的彈道方程,解算出炮彈的彈道軌跡。武器外掛處理模塊負責武器掛點選擇邏輯狀態(tài)的分析,確定所選武器的工作狀態(tài),根據(jù)采集的武器裝配數(shù)據(jù)和發(fā)射狀態(tài)計算武器發(fā)射類型及數(shù)量。效能分析模塊對放射/投放武器的毀傷效果進行分析處理,進行效能評估,其結(jié)果傳輸至控制臺顯示。數(shù)據(jù)交互處理模塊負責火控子系統(tǒng)與其他子系統(tǒng)的信息交互,包括對火控相關(guān)電門的數(shù)據(jù)采集和飛行參數(shù)的接收。顯示模塊負責瞄準具顯示器和軍械綜合顯示器的信息顯示。多功能邏輯分析模塊完成火控配置狀態(tài)判斷,并結(jié)合中央解算模塊的解算結(jié)果控制結(jié)果信息的顯示。
2.5儀表與音響子系統(tǒng)
儀表與音響子系統(tǒng)應(yīng)用XNA框架,在計算機屏幕上顯示飛機座艙的虛擬儀表,并模擬飛行設(shè)計訓(xùn)練中的各種音響特效。儀表與音響子系統(tǒng)接收飛行子系統(tǒng)發(fā)送的相關(guān)運動參數(shù),進而控制儀表指針的轉(zhuǎn)動,并發(fā)出聲音。本子系統(tǒng)的難點在于實物建模的準確性。另外,為了模擬真實機械儀表指針轉(zhuǎn)動時的慣性作用,采用了累加求和取平均值的方法。
3結(jié)論
基于HLA/RTI分布式協(xié)議的分布式機載武器仿真系統(tǒng)框架,采用了模塊化設(shè)計方法,明晰了設(shè)計思路,給出了具體的設(shè)計方法,實現(xiàn)了各技術(shù)平臺之間的數(shù)據(jù)無縫連接,構(gòu)成了一個相對完整的分布式仿真系統(tǒng)的實用解決方案。該方案在本項目的研發(fā)過程中進行了多次優(yōu)化,并通過了實踐驗證,為類似系統(tǒng)的研發(fā)提供了一個具體的成功范例,也為今后項目拓展打下了堅實的基礎(chǔ)。
參考文獻
[1] 劉瑕,鄭建華,張皓.基于HLA的小衛(wèi)星編隊飛行分布式仿真[J]. 計算機仿真,2010,27(5):66-70.
[2] 馬云龍,王堅.基于RTI的交通態(tài)勢實時仿真技術(shù)研究[J].系統(tǒng)仿真學(xué)報,2008,20(22):6129-6132.
[3] 劉寒冰,劉琳,周忠,等.面向HLA的交叉檢驗自動化測試方法研究[J].系統(tǒng)仿真學(xué)報,2009,21(17):54405444.
[4] 馬超,陳燦,吳彥軍.河流水環(huán)境可視化仿真系統(tǒng)開發(fā)[J].計算機仿真,2011,28(12):310313.
?。?] 杜鵑. RTI運行支撐環(huán)境規(guī)范化測試與分析[D].西安:西安電子科技大學(xué),2013.
[6] 張貴生. HLA中數(shù)據(jù)分發(fā)管理算法的研究[D].太原:山西大學(xué),2007.
[7] 李鵬.輕型飛行模擬器飛行仿真建模研究[D].南京:南京航空航天大學(xué),2008.