梁彥剛,高曉升,張 翼,唐國金
(國防科學技術大學航天與材料工程學院,湖南 長沙 410073)
建模與仿真的高層體系結構HLA(High Level Architecture)自1995年提出后得到社會普遍認可,在工業、軍事等仿真領域得到廣泛應用。HLA的基本思想就是使用面向對象的方法設計、開發和實現系統的對象模型,從而獲得仿真聯邦高層次的互操作和重用,其最顯著的特點就是實現了仿真功能與運行支撐系統的分離。運行支撐環境RTI(Run Time Infrastructure)是HLA體系結構的核心,它實現了HLA接口規范中定義的服務,提供底層和基本功能支持。但是,基于RTI應用程序接口(API)編程給仿真應用的開發帶來了很大的不便,因此國內外很多學者研究開發了聯邦成員代碼生成工具,用以輔助仿真聯邦成員的開發[1~4]。這些方法都是通過對FOM/SOM表的解析,獲取HLA仿真聯邦中的成員交互信息,通過一定的映射關系生成聯邦成員代碼框架。還有一種方式是對RTI的API函數進行封裝,如 MAK-RTI的程序開發工具箱VR-Link。但是,無論是代碼框架還是工具箱形式,聯邦成員用戶的模型代碼與RTI提供的服務代碼都存在相互耦合的問題,在調試過程中具有一定的靈活性,但需要用戶掌握RTI的基本服務功能,如對象實例注冊/注銷、對象實例屬性更新/反射、交互實例參數發送/接收等,因此需要仿真專業人員進行輔助和指導。國內周忠等[5]對HLA中通用而獨立的功能模塊進行抽象,建立了通用管理模型,開發了仿真應用程序開發框架BH HLA FM。它類似于MFC,提供給用戶豐富的類庫以支持仿真應用系統開發,實質上它仍然是一個程序框架,開發具體的應用程序需要對框架進行實例化。而對仿真應用模型開發者而言,往往要求接口部分越簡單越好,且不希望改變其原有程序框架和編程習慣。這樣就需要對RTI服務功能進一步封裝,使得仿真計算模型部分與HLA功能模塊完全隔離。本文通過仿真適配器技術和共享內存、中斷回調技術將仿真模型與仿真運行環境有效隔離,開展了基于HLA的分布式仿真框架自動生成技術研究,提高了仿真系統開發效率和可靠性。
在基于HLA的仿真系統中,仿真應用程序一般包含兩部分內容,一是實體模型計算部分,另一部分是RTI的服務程序。仿真成員要正常參與聯邦運行,除了需要進行自身模型部分解算,還要按照HLA的規則響應RTI的管理和回調,這里稱之為RTI服務程序,包括初始化成員數據、創建并加入聯邦、聲明時間推進策略、聲明公布/訂購關系、請求時間推進、更新和反射對象實例、發送和接收交互、退出并撤銷聯邦等,具體運行過程如圖1所示[2],其中虛線框為后臺執行線程。
從圖1可以看出,仿真成員中計算模型和RTI服務程序最主要的耦合就是數據耦合和計算調度的耦合,因此必須采用一種仿真中間件技術,解除二者的強耦合,對仿真成員的模型計算部分進行隔離,從而提高計算模型的獨立性。與聯邦成員程序框架不同,該仿真中間件為獨立的執行程序,本文稱其為仿真適配器,負責對RTI的服務程序部分的封裝,相應的仿真計算模型為另一獨立執行程序。這樣即實現了兩者在設計上的有效隔離,使得計算模型的開發用戶完全得到解放,接下來的問題就是如何實現兩個獨立進程在單機環境下的數據交互和調度管理。

Figure 1 The running process of federate圖1 聯邦成員運行過程
數據交互的問題可以通過共享內存解決,所謂共享內存,就是多個進程把一段內存映射到自己的進程空間,以此來實現數據的共享以及傳輸,這是所有進程間通信方式中最快的一種。而調度管理的問題可以通過中斷回調機制解決,所謂中斷回調,是指多進程運行過程中,主控進程通過向受控進程發送中斷消息,觸發受控進程所注冊的回調接口函數,完成相應任務,從而達到控制和調度其它進程運行的目的。
本文的核心思想就是在共享內存/中斷回調技術基礎上,采用仿真適配器對仿真應用成員中與RTI服務相關的部分進行封裝,適配器和用戶計算模型程序間引入共享內存,從而進一步降低用戶程序開發的難度。在此情況下,系統整體架構如圖2所示,其中分布在不同計算機節點的仿真適配器通過RTI環境構成一個聯邦原型,可在仿真管理節點控制下實現聯邦推進。
所謂適配器,是為了解決不同系統間的交互信息格式不統一而開發的信息格式轉換接口。HLA仿真適配器是用戶模型程序與RTI運行環境的橋梁,適配器的實現一般需要有專業的分布式仿真領域知識。為提高程序設計效率,本文研究并實現了仿真適配器自動生成技術。

Figure 2 Schematic of system integration圖2 系統集成架構圖
在HLA技術框架中,對象模型OM(Object Model)是核心內容之一,它描述了聯邦在運行過程中需要交換的各種數據及相關信息[6,7]。對象模型分為聯邦對象模型FOM(Federate Object Model)和仿真對象模型SOM(Simulation Object Model)。FOM提供一個聯邦內各成員間所有用于交換的數據的詳細說明,如公共的對象類及其屬性、交互類及其參數等信息;SOM提供每個仿真成員能夠提供給聯邦的自身功能的詳細說明。進行HLA仿真程序開發必須首先完成FOM表設計與編輯[8]。
由于FOM表記錄了聯邦成員間進行數據交換的各類結構體,可以通過FOM表的設計和編輯輸出數據接口結構體到仿真計算模型,同時輸出接口描述文件到適配器自動生成軟件。基于適配器技術的仿真應用成員設計與開發流程框架如圖3所示。仿真系統研制中,由FOM表設計與編輯軟件建立規范的數據接口,由適配器自動生成軟件生成HLA仿真適配器,依據模型規范開發相應的仿真計算模型,仿真計算模型通過HLA仿真適配器聯入底層的分布式仿真支撐環境。仿真計算模型和適配器之間通過共享內存進行數據交換。

Figure 3 Design and development process of simulation memeber圖3 仿真應用成員設計與開發過程
下面進一步討論仿真適配器自動生成技術。根據聯邦成員的運行過程分析,生成一個聯邦成員所需的完整信息包括:成員的詳細信息、對象的詳細信息、實例數據存儲的結構信息、公布/訂購關系等。因此,HLA適配器自動生成過程抽象為五個基本步驟,即:
(1)輸入聯邦成員接口描述文件,提取仿真成員名稱和仿真模型名稱及對應實例情況;
(2)確定仿真實例類型與對象類和交互類的對應關系;
(3)確定聯邦成員公布能力與訂購需求(聲明管理);
(4)確定聯邦成員時間推進策略(時間管理);
(5)生成源代碼并編譯生成HLA仿真適配器的執行程序。
在此基礎上,HLA仿真適配器還需要實現和封裝HLA接口規范中定義的聯邦管理服務和對象管理服務。對于數據分發管理服務和所有權管理服務,根據仿真系統功能需求,暫時不予考慮。
此外,HLA仿真適配器還作為共享內存管理的主控程序,完成共享內存數據管理功能,通過發送中斷消息觸發仿真模型實例的回調函數,控制實例程序按照RTI服務要求進行仿真推進。
通過HLA仿真適配器對RTI服務程序進行封裝后,回避了仿真計算模型與RTI直接的交互關系,但增加了計算模型與仿真適配器間的數據交互和計算模型的調度管理問題。為簡化接口關系,本文采用動態庫形式對共享內存數據管理程序和計算模型調度管理程序進行封裝,提供給用戶的是標準化接口函數,包括節點注冊、數據結構體注冊以及數據讀寫,如表1所示。

Table 1 Interface functions of computation model表1 仿真計算模型的接口函數
在共享內存中交換的數據采用訂購和發布的方式進行管理,每個計算進程稱為一個節點,各進程在完成自己的節點注冊之后就可以進行數據注冊,凡是注冊的數據都自動進行發布,需要獲取該數據的進程可通過查找數據標識ID號讀取該數據。
在單機運行的多個仿真進程間的同步推進,采用中斷回調機制實現。仿真運行過程中,HLA仿真適配器作為主控進程負責發送中斷消息,各計算進程分別響應其回調接口函數,依據主控進程下發的消息獲取仿真時鐘與行為類型,調用Get Data-ByID()函數讀取訂購的數據,然后將自身狀態推進至指定時刻,調用WriteDataByID()函數更新發布的數據,從而完成一步推進并等待下一次消息。其中,模型回調接口函數的實現原型如下:

當計算模型的回調接口函數被調用的時候,根據主控進程傳入的消息類型msg.MSGTYPE決定當前仿真進程是初始化、推進計算或退出仿真。用戶通過填寫初始化函數、運行函數和退出函數,完成每一段case分支中相應的操作程序。
彈道導彈攻防過程是一個多實體參與的復雜過程,包括進攻彈和防御方的攔截彈、預警衛星、預警雷達以及指控系統等,采用分布式仿真可降低計算機負載,增強演示效果。
在彈道導彈攻防仿真中,可以按照參與仿真的模型實體分配仿真節點,形成多個仿真成員。如可按照各模型功能分為進攻彈成員、攔截彈成員、防御方指控成員、預警衛星成員、預警雷達成員以及仿真管理成員。仿真管理系統需要用到管理對象模型信息,因此獨立實現,其它成員可通過HLA仿真適配器自動生成技術生成各成員適配器。在此基礎上,通過聯邦運行支撐環境RTI將各成員適配器組合在一起,便可形成導彈攻防仿真系統分布式仿真框架,如圖4所示。
該仿真框架為導彈攻防仿真的聯邦原型,各仿真成員可以在仿真管理系統協調下完成仿真運行過程中的相關操作,如初始化、運行、終止等。但是,由于沒有計算模型參與,因此沒有相關數據交互。各仿真適配器在本地節點通過共享內存與各自模型計算進程實現同步運行,便可完成彈道導彈攻防仿真系統構建。在這種機制下,仿真計算模型的接入更加靈活,從而方便不同粒度模型的替換和使用。

Figure 4 Distributed simulation framework of missile combat圖4 導彈攻防分布式仿真框架
隨著基于HLA的分布式仿真技術廣泛應用,如何進一步簡化仿真系統開發流程,對來自不同用戶的仿真模型進行快速有效集成成為大家普遍關注的問題。本文對此開展了深入研究,采用仿真適配器對RTI服務程序進行封裝,并研制了相關軟件使得用戶無需編寫程序即可自動生成仿真適配器,提高了仿真系統開發效率。在仿真系統運行效率方面,由于采用仿真適配器作為中間件,增加了共享內存數據交換和中斷回調的時間消耗,使運行效率有所降低。仿真實驗表明,這種機制下額外增加的仿真時延約為原仿真推進時延的1%左右,在可接受范圍之內。
此外,該適配器目前只適用于基于時間步長推進的連續系統仿真,只實現了RTI服務中的部分功能,仍需要在數據分發管理、仿真推進管理等方面進一步開展研究。
[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)
附中文參考文獻:
[2]尹娟,郝建國,黃柯棣.基于高層體系結構對象模型的聯邦成員軟件框架自動生成研究與實現[J].系統仿真學報,2002,14(6):718-722.
[3]周煒,邵東青,董小社.XSL在HLA聯邦成員代碼生成工具實現中的應用研究[J].上海應用技術學院學報,2006,6(3):166-171.
[4]甘斌,王月平.基于組件的聯邦成員生成框架設計與實現[J].系統仿真學報,2007,19(11):1622-1624.
[5]周忠,吳威.分布式虛擬環境[M].北京:科學出版社,2009.
[8]梁彥剛,唐國金,雍恩米.基于HLA的導彈攻防仿真系統分析與設計[J].國防科技大學學報,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-),男,山東青島人,碩士,助理工程師,研究方向為飛行器系統建模與仿真。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-),男,云南鹽津人,博士生,講師,研究方向為航天系統仿真和仿真平臺技術。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.
