梁彥剛,高曉升,張 翼,唐國(guó)金
(國(guó)防科學(xué)技術(shù)大學(xué)航天與材料工程學(xué)院,湖南 長(zhǎng)沙 410073)
建模與仿真的高層體系結(jié)構(gòu)HLA(High Level Architecture)自1995年提出后得到社會(huì)普遍認(rèn)可,在工業(yè)、軍事等仿真領(lǐng)域得到廣泛應(yīng)用。HLA的基本思想就是使用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)、開發(fā)和實(shí)現(xiàn)系統(tǒng)的對(duì)象模型,從而獲得仿真聯(lián)邦高層次的互操作和重用,其最顯著的特點(diǎn)就是實(shí)現(xiàn)了仿真功能與運(yùn)行支撐系統(tǒng)的分離。運(yùn)行支撐環(huán)境RTI(Run Time Infrastructure)是HLA體系結(jié)構(gòu)的核心,它實(shí)現(xiàn)了HLA接口規(guī)范中定義的服務(wù),提供底層和基本功能支持。但是,基于RTI應(yīng)用程序接口(API)編程給仿真應(yīng)用的開發(fā)帶來(lái)了很大的不便,因此國(guó)內(nèi)外很多學(xué)者研究開發(fā)了聯(lián)邦成員代碼生成工具,用以輔助仿真聯(lián)邦成員的開發(fā)[1~4]。這些方法都是通過(guò)對(duì)FOM/SOM表的解析,獲取HLA仿真聯(lián)邦中的成員交互信息,通過(guò)一定的映射關(guān)系生成聯(lián)邦成員代碼框架。還有一種方式是對(duì)RTI的API函數(shù)進(jìn)行封裝,如 MAK-RTI的程序開發(fā)工具箱VR-Link。但是,無(wú)論是代碼框架還是工具箱形式,聯(lián)邦成員用戶的模型代碼與RTI提供的服務(wù)代碼都存在相互耦合的問題,在調(diào)試過(guò)程中具有一定的靈活性,但需要用戶掌握RTI的基本服務(wù)功能,如對(duì)象實(shí)例注冊(cè)/注銷、對(duì)象實(shí)例屬性更新/反射、交互實(shí)例參數(shù)發(fā)送/接收等,因此需要仿真專業(yè)人員進(jìn)行輔助和指導(dǎo)。國(guó)內(nèi)周忠等[5]對(duì)HLA中通用而獨(dú)立的功能模塊進(jìn)行抽象,建立了通用管理模型,開發(fā)了仿真應(yīng)用程序開發(fā)框架BH HLA FM。它類似于MFC,提供給用戶豐富的類庫(kù)以支持仿真應(yīng)用系統(tǒng)開發(fā),實(shí)質(zhì)上它仍然是一個(gè)程序框架,開發(fā)具體的應(yīng)用程序需要對(duì)框架進(jìn)行實(shí)例化。而對(duì)仿真應(yīng)用模型開發(fā)者而言,往往要求接口部分越簡(jiǎn)單越好,且不希望改變其原有程序框架和編程習(xí)慣。這樣就需要對(duì)RTI服務(wù)功能進(jìn)一步封裝,使得仿真計(jì)算模型部分與HLA功能模塊完全隔離。本文通過(guò)仿真適配器技術(shù)和共享內(nèi)存、中斷回調(diào)技術(shù)將仿真模型與仿真運(yùn)行環(huán)境有效隔離,開展了基于HLA的分布式仿真框架自動(dòng)生成技術(shù)研究,提高了仿真系統(tǒng)開發(fā)效率和可靠性。
在基于HLA的仿真系統(tǒng)中,仿真應(yīng)用程序一般包含兩部分內(nèi)容,一是實(shí)體模型計(jì)算部分,另一部分是RTI的服務(wù)程序。仿真成員要正常參與聯(lián)邦運(yùn)行,除了需要進(jìn)行自身模型部分解算,還要按照HLA的規(guī)則響應(yīng)RTI的管理和回調(diào),這里稱之為RTI服務(wù)程序,包括初始化成員數(shù)據(jù)、創(chuàng)建并加入聯(lián)邦、聲明時(shí)間推進(jìn)策略、聲明公布/訂購(gòu)關(guān)系、請(qǐng)求時(shí)間推進(jìn)、更新和反射對(duì)象實(shí)例、發(fā)送和接收交互、退出并撤銷聯(lián)邦等,具體運(yùn)行過(guò)程如圖1所示[2],其中虛線框?yàn)楹笈_(tái)執(zhí)行線程。
從圖1可以看出,仿真成員中計(jì)算模型和RTI服務(wù)程序最主要的耦合就是數(shù)據(jù)耦合和計(jì)算調(diào)度的耦合,因此必須采用一種仿真中間件技術(shù),解除二者的強(qiáng)耦合,對(duì)仿真成員的模型計(jì)算部分進(jìn)行隔離,從而提高計(jì)算模型的獨(dú)立性。與聯(lián)邦成員程序框架不同,該仿真中間件為獨(dú)立的執(zhí)行程序,本文稱其為仿真適配器,負(fù)責(zé)對(duì)RTI的服務(wù)程序部分的封裝,相應(yīng)的仿真計(jì)算模型為另一獨(dú)立執(zhí)行程序。這樣即實(shí)現(xiàn)了兩者在設(shè)計(jì)上的有效隔離,使得計(jì)算模型的開發(fā)用戶完全得到解放,接下來(lái)的問題就是如何實(shí)現(xiàn)兩個(gè)獨(dú)立進(jìn)程在單機(jī)環(huán)境下的數(shù)據(jù)交互和調(diào)度管理。
Figure 1 The running process of federate圖1 聯(lián)邦成員運(yùn)行過(guò)程
數(shù)據(jù)交互的問題可以通過(guò)共享內(nèi)存解決,所謂共享內(nèi)存,就是多個(gè)進(jìn)程把一段內(nèi)存映射到自己的進(jìn)程空間,以此來(lái)實(shí)現(xiàn)數(shù)據(jù)的共享以及傳輸,這是所有進(jìn)程間通信方式中最快的一種。而調(diào)度管理的問題可以通過(guò)中斷回調(diào)機(jī)制解決,所謂中斷回調(diào),是指多進(jìn)程運(yùn)行過(guò)程中,主控進(jìn)程通過(guò)向受控進(jìn)程發(fā)送中斷消息,觸發(fā)受控進(jìn)程所注冊(cè)的回調(diào)接口函數(shù),完成相應(yīng)任務(wù),從而達(dá)到控制和調(diào)度其它進(jìn)程運(yùn)行的目的。
本文的核心思想就是在共享內(nèi)存/中斷回調(diào)技術(shù)基礎(chǔ)上,采用仿真適配器對(duì)仿真應(yīng)用成員中與RTI服務(wù)相關(guān)的部分進(jìn)行封裝,適配器和用戶計(jì)算模型程序間引入共享內(nèi)存,從而進(jìn)一步降低用戶程序開發(fā)的難度。在此情況下,系統(tǒng)整體架構(gòu)如圖2所示,其中分布在不同計(jì)算機(jī)節(jié)點(diǎn)的仿真適配器通過(guò)RTI環(huán)境構(gòu)成一個(gè)聯(lián)邦原型,可在仿真管理節(jié)點(diǎn)控制下實(shí)現(xiàn)聯(lián)邦推進(jìn)。
所謂適配器,是為了解決不同系統(tǒng)間的交互信息格式不統(tǒng)一而開發(fā)的信息格式轉(zhuǎn)換接口。HLA仿真適配器是用戶模型程序與RTI運(yùn)行環(huán)境的橋梁,適配器的實(shí)現(xiàn)一般需要有專業(yè)的分布式仿真領(lǐng)域知識(shí)。為提高程序設(shè)計(jì)效率,本文研究并實(shí)現(xiàn)了仿真適配器自動(dòng)生成技術(shù)。
Figure 2 Schematic of system integration圖2 系統(tǒng)集成架構(gòu)圖
在HLA技術(shù)框架中,對(duì)象模型OM(Object Model)是核心內(nèi)容之一,它描述了聯(lián)邦在運(yùn)行過(guò)程中需要交換的各種數(shù)據(jù)及相關(guān)信息[6,7]。對(duì)象模型分為聯(lián)邦對(duì)象模型FOM(Federate Object Model)和仿真對(duì)象模型SOM(Simulation Object Model)。FOM提供一個(gè)聯(lián)邦內(nèi)各成員間所有用于交換的數(shù)據(jù)的詳細(xì)說(shuō)明,如公共的對(duì)象類及其屬性、交互類及其參數(shù)等信息;SOM提供每個(gè)仿真成員能夠提供給聯(lián)邦的自身功能的詳細(xì)說(shuō)明。進(jìn)行HLA仿真程序開發(fā)必須首先完成FOM表設(shè)計(jì)與編輯[8]。
由于FOM表記錄了聯(lián)邦成員間進(jìn)行數(shù)據(jù)交換的各類結(jié)構(gòu)體,可以通過(guò)FOM表的設(shè)計(jì)和編輯輸出數(shù)據(jù)接口結(jié)構(gòu)體到仿真計(jì)算模型,同時(shí)輸出接口描述文件到適配器自動(dòng)生成軟件。基于適配器技術(shù)的仿真應(yīng)用成員設(shè)計(jì)與開發(fā)流程框架如圖3所示。仿真系統(tǒng)研制中,由FOM表設(shè)計(jì)與編輯軟件建立規(guī)范的數(shù)據(jù)接口,由適配器自動(dòng)生成軟件生成HLA仿真適配器,依據(jù)模型規(guī)范開發(fā)相應(yīng)的仿真計(jì)算模型,仿真計(jì)算模型通過(guò)HLA仿真適配器聯(lián)入底層的分布式仿真支撐環(huán)境。仿真計(jì)算模型和適配器之間通過(guò)共享內(nèi)存進(jìn)行數(shù)據(jù)交換。
Figure 3 Design and development process of simulation memeber圖3 仿真應(yīng)用成員設(shè)計(jì)與開發(fā)過(guò)程
下面進(jìn)一步討論仿真適配器自動(dòng)生成技術(shù)。根據(jù)聯(lián)邦成員的運(yùn)行過(guò)程分析,生成一個(gè)聯(lián)邦成員所需的完整信息包括:成員的詳細(xì)信息、對(duì)象的詳細(xì)信息、實(shí)例數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)信息、公布/訂購(gòu)關(guān)系等。因此,HLA適配器自動(dòng)生成過(guò)程抽象為五個(gè)基本步驟,即:
(1)輸入聯(lián)邦成員接口描述文件,提取仿真成員名稱和仿真模型名稱及對(duì)應(yīng)實(shí)例情況;
(2)確定仿真實(shí)例類型與對(duì)象類和交互類的對(duì)應(yīng)關(guān)系;
(3)確定聯(lián)邦成員公布能力與訂購(gòu)需求(聲明管理);
(4)確定聯(lián)邦成員時(shí)間推進(jìn)策略(時(shí)間管理);
(5)生成源代碼并編譯生成HLA仿真適配器的執(zhí)行程序。
在此基礎(chǔ)上,HLA仿真適配器還需要實(shí)現(xiàn)和封裝HLA接口規(guī)范中定義的聯(lián)邦管理服務(wù)和對(duì)象管理服務(wù)。對(duì)于數(shù)據(jù)分發(fā)管理服務(wù)和所有權(quán)管理服務(wù),根據(jù)仿真系統(tǒng)功能需求,暫時(shí)不予考慮。
此外,HLA仿真適配器還作為共享內(nèi)存管理的主控程序,完成共享內(nèi)存數(shù)據(jù)管理功能,通過(guò)發(fā)送中斷消息觸發(fā)仿真模型實(shí)例的回調(diào)函數(shù),控制實(shí)例程序按照RTI服務(wù)要求進(jìn)行仿真推進(jìn)。
通過(guò)HLA仿真適配器對(duì)RTI服務(wù)程序進(jìn)行封裝后,回避了仿真計(jì)算模型與RTI直接的交互關(guān)系,但增加了計(jì)算模型與仿真適配器間的數(shù)據(jù)交互和計(jì)算模型的調(diào)度管理問題。為簡(jiǎn)化接口關(guān)系,本文采用動(dòng)態(tài)庫(kù)形式對(duì)共享內(nèi)存數(shù)據(jù)管理程序和計(jì)算模型調(diào)度管理程序進(jìn)行封裝,提供給用戶的是標(biāo)準(zhǔn)化接口函數(shù),包括節(jié)點(diǎn)注冊(cè)、數(shù)據(jù)結(jié)構(gòu)體注冊(cè)以及數(shù)據(jù)讀寫,如表1所示。
Table 1 Interface functions of computation model表1 仿真計(jì)算模型的接口函數(shù)
在共享內(nèi)存中交換的數(shù)據(jù)采用訂購(gòu)和發(fā)布的方式進(jìn)行管理,每個(gè)計(jì)算進(jìn)程稱為一個(gè)節(jié)點(diǎn),各進(jìn)程在完成自己的節(jié)點(diǎn)注冊(cè)之后就可以進(jìn)行數(shù)據(jù)注冊(cè),凡是注冊(cè)的數(shù)據(jù)都自動(dòng)進(jìn)行發(fā)布,需要獲取該數(shù)據(jù)的進(jìn)程可通過(guò)查找數(shù)據(jù)標(biāo)識(shí)ID號(hào)讀取該數(shù)據(jù)。
在單機(jī)運(yùn)行的多個(gè)仿真進(jìn)程間的同步推進(jìn),采用中斷回調(diào)機(jī)制實(shí)現(xiàn)。仿真運(yùn)行過(guò)程中,HLA仿真適配器作為主控進(jìn)程負(fù)責(zé)發(fā)送中斷消息,各計(jì)算進(jìn)程分別響應(yīng)其回調(diào)接口函數(shù),依據(jù)主控進(jìn)程下發(fā)的消息獲取仿真時(shí)鐘與行為類型,調(diào)用Get Data-ByID()函數(shù)讀取訂購(gòu)的數(shù)據(jù),然后將自身狀態(tài)推進(jìn)至指定時(shí)刻,調(diào)用WriteDataByID()函數(shù)更新發(fā)布的數(shù)據(jù),從而完成一步推進(jìn)并等待下一次消息。其中,模型回調(diào)接口函數(shù)的實(shí)現(xiàn)原型如下:
當(dāng)計(jì)算模型的回調(diào)接口函數(shù)被調(diào)用的時(shí)候,根據(jù)主控進(jìn)程傳入的消息類型msg.MSGTYPE決定當(dāng)前仿真進(jìn)程是初始化、推進(jìn)計(jì)算或退出仿真。用戶通過(guò)填寫初始化函數(shù)、運(yùn)行函數(shù)和退出函數(shù),完成每一段case分支中相應(yīng)的操作程序。
彈道導(dǎo)彈攻防過(guò)程是一個(gè)多實(shí)體參與的復(fù)雜過(guò)程,包括進(jìn)攻彈和防御方的攔截彈、預(yù)警衛(wèi)星、預(yù)警雷達(dá)以及指控系統(tǒng)等,采用分布式仿真可降低計(jì)算機(jī)負(fù)載,增強(qiáng)演示效果。
在彈道導(dǎo)彈攻防仿真中,可以按照參與仿真的模型實(shí)體分配仿真節(jié)點(diǎn),形成多個(gè)仿真成員。如可按照各模型功能分為進(jìn)攻彈成員、攔截彈成員、防御方指控成員、預(yù)警衛(wèi)星成員、預(yù)警雷達(dá)成員以及仿真管理成員。仿真管理系統(tǒng)需要用到管理對(duì)象模型信息,因此獨(dú)立實(shí)現(xiàn),其它成員可通過(guò)HLA仿真適配器自動(dòng)生成技術(shù)生成各成員適配器。在此基礎(chǔ)上,通過(guò)聯(lián)邦運(yùn)行支撐環(huán)境RTI將各成員適配器組合在一起,便可形成導(dǎo)彈攻防仿真系統(tǒng)分布式仿真框架,如圖4所示。
該仿真框架為導(dǎo)彈攻防仿真的聯(lián)邦原型,各仿真成員可以在仿真管理系統(tǒng)協(xié)調(diào)下完成仿真運(yùn)行過(guò)程中的相關(guān)操作,如初始化、運(yùn)行、終止等。但是,由于沒有計(jì)算模型參與,因此沒有相關(guān)數(shù)據(jù)交互。各仿真適配器在本地節(jié)點(diǎn)通過(guò)共享內(nèi)存與各自模型計(jì)算進(jìn)程實(shí)現(xiàn)同步運(yùn)行,便可完成彈道導(dǎo)彈攻防仿真系統(tǒng)構(gòu)建。在這種機(jī)制下,仿真計(jì)算模型的接入更加靈活,從而方便不同粒度模型的替換和使用。
Figure 4 Distributed simulation framework of missile combat圖4 導(dǎo)彈攻防分布式仿真框架
隨著基于HLA的分布式仿真技術(shù)廣泛應(yīng)用,如何進(jìn)一步簡(jiǎn)化仿真系統(tǒng)開發(fā)流程,對(duì)來(lái)自不同用戶的仿真模型進(jìn)行快速有效集成成為大家普遍關(guān)注的問題。本文對(duì)此開展了深入研究,采用仿真適配器對(duì)RTI服務(wù)程序進(jìn)行封裝,并研制了相關(guān)軟件使得用戶無(wú)需編寫程序即可自動(dòng)生成仿真適配器,提高了仿真系統(tǒng)開發(fā)效率。在仿真系統(tǒng)運(yùn)行效率方面,由于采用仿真適配器作為中間件,增加了共享內(nèi)存數(shù)據(jù)交換和中斷回調(diào)的時(shí)間消耗,使運(yùn)行效率有所降低。仿真實(shí)驗(yàn)表明,這種機(jī)制下額外增加的仿真時(shí)延約為原仿真推進(jìn)時(shí)延的1%左右,在可接受范圍之內(nèi)。
此外,該適配器目前只適用于基于時(shí)間步長(zhǎng)推進(jìn)的連續(xù)系統(tǒng)仿真,只實(shí)現(xiàn)了RTI服務(wù)中的部分功能,仍需要在數(shù)據(jù)分發(fā)管理、仿真推進(jìn)管理等方面進(jìn)一步開展研究。
[1]Cox K.A framework-based approach to HLA federate development[C]∥Proc of 1998 Fall Simulation Interoperability Workshop,1998,14(6):14-18.
[2]Yin Juan,Hao Jian-guo,Huang Ke-di.Research and implementation of automatically geerating federate software framework from high level architecture object model[J].Journal of System Simulation,2002,14(6):718-722.(in Chinese)
[3]Zhou Wei,Shao Dong-qing,Dong Xiao-she.Research on XSLT application in the realization of a HLA federate member code generation tool[J].Journal of Shanghai Institute of Technology,2006,6(3):166-171.(in Chinese)
[4]Gan Bin,Wang Yue-ping.Design and Implementation of component-based federate generation framework[J].Journal of System Simulation,2007,19(1):1622-1624.(in Chinese)
[5]Zhou Zhong,Wu Wei.Distributed virtual environments[M].Beijing:The Science Press,2009.(in Chinese)
[6]IEEE standard for modeling and simulation(M&S)high level architecture(HLA)-framework and rules[S].USA:IEEE Std 1516-2000,2000.
[7]IEEE standard for modeling and simulation(M&S)high level architecture(HLA)-object model template(OMT)specification[S].USA:IEEE Std 1516.2-2000,2000.
[8]Liang Yan-gang,Tang Guo-jin,Yong En-mi.The analysis and design of missile-combat simulation system based on HLA[J].Journal of National University of Defense Technology,2004,26(5):18-21.(in Chinese)
附中文參考文獻(xiàn):
[2]尹娟,郝建國(guó),黃柯棣.基于高層體系結(jié)構(gòu)對(duì)象模型的聯(lián)邦成員軟件框架自動(dòng)生成研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2002,14(6):718-722.
[3]周煒,邵東青,董小社.XSL在HLA聯(lián)邦成員代碼生成工具實(shí)現(xiàn)中的應(yīng)用研究[J].上海應(yīng)用技術(shù)學(xué)院學(xué)報(bào),2006,6(3):166-171.
[4]甘斌,王月平.基于組件的聯(lián)邦成員生成框架設(shè)計(jì)與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2007,19(11):1622-1624.
[5]周忠,吳威.分布式虛擬環(huán)境[M].北京:科學(xué)出版社,2009.
[8]梁彥剛,唐國(guó)金,雍恩米.基于HLA的導(dǎo)彈攻防仿真系統(tǒng)分析與設(shè)計(jì)[J].國(guó)防科技大學(xué)學(xué)報(bào),2004,26(5):18-21.
LIANG Yan-gang,born in 1979,PhD,lecturer,his research interests include modeling and simulation of weapon system,and distributed simulation system integration.
高曉升(1979-),男,山東青島人,碩士,助理工程師,研究方向?yàn)轱w行器系統(tǒng)建模與仿真。E-mail:gaoxiaosheng@sohu.com
GAO Xiao-sheng,born in 1979,MS,assistant engineer,his research interests include modeling and simulation of spacecraft system.
張翼(1975-),男,云南鹽津人,博士生,講師,研究方向?yàn)楹教煜到y(tǒng)仿真和仿真平臺(tái)技術(shù)。E-mail:zhangyi@263.net
ZHANG Yi,born in 1975,PhD candidate,lecturer,his research interests include simulation of aerospace system,and simulation platform technology.