朱國華,丁建軍,楊 晨,代 揚
基于HLA的模型級仿真成員組合技術研究
朱國華,丁建軍,楊晨,代揚
(江漢大學 數(shù)學與計算機學院,湖北 武漢430056)
基于高層體系結構(HLA)的仿真中通常以COM服務組件的形式對HLA接口進行封裝,實現(xiàn)仿真模型的復用。隨著仿真規(guī)模的進一步擴大,會產(chǎn)生聯(lián)邦成員過多的問題,從而提高仿真成本。提出模型級別成員組合的概念,在基于COM的聯(lián)邦仿真成員重用技術基礎上,探討采用有向圖描述數(shù)據(jù)訂購關系的相關理論問題,設計通用仿真成員依據(jù)有向圖調(diào)度多個仿真模型,在不破壞成員之間數(shù)據(jù)傳遞關系的前提下,將多個仿真模型組合為一個聯(lián)邦仿真成員,從而減少了仿真聯(lián)邦成員的數(shù)量,降低了仿真的成本。
HLA仿真;聯(lián)邦成員;模型組合;數(shù)據(jù)訂購
HLA(High Level Architecture)仿真系統(tǒng)中最重要的資源是仿真模型[1]。模型組合的目的是最大限度地實現(xiàn)仿真模型的組合與重用,通過替換組件的方式實現(xiàn)仿真系統(tǒng)的結構和行為的發(fā)展演化。國內(nèi)外己有的研究取得了不少成果[2],但是目前模型描述復雜,建模過程繁瑣,驗模,最重要的缺陷是模型組合后,仿真聯(lián)邦成員的數(shù)量過多。本文針對基于HLA的并行仿真系統(tǒng)設計了一個基于通用聯(lián)邦成員[3]的組合建模的方法。該系統(tǒng)滿足以下特征:針對控制系統(tǒng)建模,知識庫設計難度相對較低;基于HLA仿真成員重用技術,模型的可重用性強;將多個仿真模型組合成為一個仿真聯(lián)邦成員,減少聯(lián)邦成員數(shù)量。
1.1HLA仿真中的成員重用技術
在基于HLA的仿真成員的重用技術[4]中,每個仿真聯(lián)邦成員由三個組件構成:
(1)承擔調(diào)度仿真責任可執(zhí)行文件。該執(zhí)行文件通過加載DLL(Dynamic Link Library)模型算法和讀取成員模型描述XML(Extensible Markup Language)文件后形成一個聯(lián)邦成員。
(2)模型關聯(lián)描述文檔。該文檔描述了公布和訂購的對象類和交互類,以及相關的成員的初始化參數(shù)等信息。
(3)若干DLL文件,主要實現(xiàn)了仿真實體的具體功能算法,被稱為仿真模型。比如實現(xiàn)了聯(lián)邦成員中的一個PID(Proportional?Integral?Derivative)控制器算法等。
1.2仿真模型的概念
仿真模型是一個仿真成員的核心功能。多個模型構成模型庫為:
ML={M1,M2,…,Mn|n∈N}
其中每一個模型:M={(I1,I2,…,Im,O1,O2,…,On,N1,N2,…,N)j|m∈N∧n∈Ν∧j∈Ν},對于任一個模型存在多個相關向量,包括輸入?yún)?shù)I,輸出參數(shù)O,初始參數(shù)N。
1.3仿真聯(lián)邦成員之間的訂購關系
并行仿真中發(fā)布/訂購關系,對于對象類,從給定的聯(lián)邦成員的角度來看是存在該對象類的已訂購屬性;對于交互類,該交互類是一個已訂購交互類。
成員之間的訂購關系,由于每個成員有不同的交互類和對象類公布,當另一成員發(fā)現(xiàn)自己需要的交互類和對象類,就會進行訂購操作,即訂購了其他成員的發(fā)布的對象類和交互類。這種訂購可以是一對一的關系,也可以是一對多的關系。對于任何一個成員而言,成員之間存在的訂購關系有兩種:交互類訂購關系和對象類訂購關系。
1.4組合模型的兩種途徑
在基于HLA的仿真系統(tǒng)中,實現(xiàn)模型的組合有兩種方式:
(1)成員級別的組合[5?6]:組合模型在用戶層次見到的是一個成員,但是在底層實現(xiàn)依然是多個聯(lián)邦成員,以某種關系組合而成。
(2)模型級別的組合:組合模型只生成一個實在的聯(lián)邦成員,也就是說一個仿真成員底層是由多個仿真模型算法實現(xiàn);多個算法模型DLL組合成一個聯(lián)邦成員。
這兩種方式各有優(yōu)缺點。雖然在并行仿真系統(tǒng)中,模型與成員一對一的關系更符合并行仿真系統(tǒng)的調(diào)度方式,但是在實際仿真項目中,大多數(shù)投資者不愿意采用這種方式,原因是實際仿真項目中成員的數(shù)量成千上萬,使得系統(tǒng)需要生成大量的仿真聯(lián)邦成員,直接使運營成本提高。第二個方式,組合成員不僅能解決成員數(shù)量的問題,還能解決成員之間復雜的數(shù)據(jù)傳遞關系,即組合成員可以嵌套組合成員,存在的問題是可能產(chǎn)生代數(shù)環(huán)問題,使用時有特定的限制。
圖(Graph)是圖論的基本研究對象,表示物件與物件之間的關系。一個圖由多個頂點或和連結這些頂點的線組成。
有向圖是一個二元組<V,E>,其中:V是非空集合,稱為頂點集;E是V×V的子集,稱為弧集。直觀來說,若圖中的每條邊都是有方向的,則稱為有向圖。有向圖中的邊是由兩個頂點組成的有序對,有序對通常用尖括號表示,如<vi,vj>表示一條有向邊,其中vi是邊的始點,vj是邊的終點。<vi,vj>和<vj,vi>代表兩條不同的有向邊。
完全有向圖有n個頂點的有向圖有n(n-1)條邊,則此圖稱為完全有向圖。從某個頂點出發(fā)經(jīng)過若干條邊回到該點的圖是一個有向無環(huán)圖DAG(Directed Acy? cline Praph)。因為有向圖中一個點經(jīng)過兩種路線到達另一個點未必形成環(huán),因此有向無環(huán)圖未必能轉化成樹,但任何有向樹均為有向無環(huán)圖。有向無環(huán)圖的生成樹個數(shù)等于入度非零的節(jié)點的入度積。
本系統(tǒng)將內(nèi)部成員的訂購關系,先轉化為DAG,再進行拓撲排序,生成組合成員內(nèi)部的DLL調(diào)度順序。
2.1組合模型關系描述[7]
為了描述清楚,本文使用內(nèi)部成員的概念來描述一個組合模型中的一個組成成分。但其在HLA仿真運行中,內(nèi)部成員并不會作為一個聯(lián)邦成員加入聯(lián)邦,其只是組合成員內(nèi)部的一個運行部分。同時組合模型的內(nèi)部成員之間仍然存在和聯(lián)邦成員之間同樣的訂購交互關系和互操作性[8]。
模型之間的關聯(lián)信息表達為:
R={(Mref1,Mref2)|Mref1∈ML∧Mref2∈ML}
其中可用關系集:RL={R1,R2,…,Rn},其中RL表示模型的內(nèi)部成員需要滿足的傳遞關系集合;NL={N1,N2,…,Nn},NL表示所有聯(lián)邦成員之間能夠滿足的數(shù)據(jù)傳遞關系集合;A表示模型庫中所有模型能夠滿足數(shù)據(jù)傳輸關系集合。則有關系A=RL∨NL。
組合模型定義如下:
CM=({M1,M2,…,Mm,A)|Mm∈ML∧Rn∈RL∧m,n∈N},其中ML已定義。
2.2規(guī)則與推論
對于任意兩個模型M1與M2,可以形成如下關系:
Os={O1,O2,…,Om},O是模型M1的所有輸出集合;
Is={I1,I2,…,In},I是模型M2的所有接收集合;
做笛卡爾積則對于所有產(chǎn)生的輸入輸出關系,有傳輸關系:
K ={(o,i)|o∈O}s,i∈Is
則對于任意兩個模型,二者產(chǎn)生的關聯(lián)關系為:
R={Os,Is,K}
關系R可以映射成為有向圖G。對于傳輸關系K,可以映射成為有向圖<V,E>中的弧集E。對于輸入輸出集合Is和Os,可以映射成為有向圖<V,E>中的頂點集V中的輸入輸出頂點。
2.3將訂購關系建模成有向圖
由于組合成員內(nèi)部成員存在和普通成員一樣的訂購交互關系,這種關系可以簡單的采用關系對來描述:假設D1,D2代表組合成員里的內(nèi)部成員,如D2訂購了D1的消息,可以記錄這種關系為D1?D2,同理D3訂購D1的消息,D4訂購了D2,D3的消息即D1?D3,D2?D4,D3?D4,如圖1所示。把這種關系理解為有向圖里的頂點以及其前驅,于是可以把這種關系進行匯總,從而生成有向圖。
圖1 訂購關系有向示意圖
2.4組合模型調(diào)度原理介紹
先檢查訂購關系是否存在閉環(huán);如果存在閉環(huán)需要先對閉環(huán)進行單獨處理,打開有向環(huán)從而重構成為一個DAG。然后按照拓撲排序解AOE網(wǎng)(Activity on Edge Network)的過程求解組合成員之間的數(shù)據(jù)傳遞關系:
(1)在有向圖中選一個沒有前驅的頂點并輸出;
(2)在圖中刪除該頂點和所有以它為尾的弧。
具體調(diào)度方法采用遞歸算法。在內(nèi)部成員的描述文件中,記錄了組合成員中的發(fā)布/訂購關系,即數(shù)據(jù)傳遞順序。取出一對關系,采用拆分的方法,分別存儲為關系數(shù)組里的頂點及其前驅點,例如D1?D2,D1就加入第一個數(shù)組,D2加入第2個數(shù)組。然后調(diào)度函數(shù)對比兩個數(shù)組,如果第1個數(shù)組中有元素第2個數(shù)組沒有對應訂購元素,則將這個元素加入第3個數(shù)組,在循環(huán)外遍歷關系數(shù)組分別刪除此元素和與其對應的元素,然后遞歸調(diào)用,直至關系數(shù)組為空。如果同一層的訂購數(shù)組不止一個,就同時啟動多線程調(diào)用多個DLL,以達到分組并行的目的。
圖2 無環(huán)有向圖(DAG)的調(diào)度策略
在處理組合成員數(shù)據(jù)傳遞關系時可能會遇到有環(huán)有向圖的現(xiàn)象(控制系統(tǒng)中的閉環(huán)),此時就無法得到DAG。這是常規(guī)拓撲排序解決不了的問題,需要先對有向環(huán)進行單獨處理。
有環(huán)有向圖處理流程如圖3所示。
在處理有環(huán)圖的過程中要保持平衡準則:在處理整個有向環(huán)的前后,有向環(huán)中定義的數(shù)據(jù)傳遞關系不能有增加或缺失。有環(huán)有向圖與AOE網(wǎng)惟一的區(qū)別在于有無環(huán),本質(zhì)的區(qū)別在于排序過程中是否會存在所有頂點都有前驅的情況。以這種思路考慮,問題就變得相當簡單,即在拓撲排序過程中加判斷,當拓撲排序遇到環(huán)時,拆掉環(huán)變成無環(huán)有向圖,對于拆掉的弧線,保留其數(shù)據(jù)傳遞關系,然后繼續(xù)拓撲排序,也就是說有環(huán)有向圖是一個部分頂點帶有特殊傳遞關系的無環(huán)有向圖。這種方法不僅快速地解決了有環(huán)有向圖產(chǎn)生的問題,同時滿足了平衡準則,避免了數(shù)據(jù)流失的問題。
圖3 有環(huán)有向圖的處理流程
示例如下:設D1為組合成員的輸入成員,D5,D6為組合成員的輸出成員,如圖4所示。
圖4 存在有向環(huán)的圖
首先刪除初始頂點D1,判斷以D1為前驅的所有頂點即D2,D3中是否存在入度不為0的頂點,D3是入度不為0的頂點,也就是說發(fā)現(xiàn)D3是環(huán)路的匯合點,那么組合模型內(nèi)部必然存在閉環(huán)的問題。此時刪除D5?D3的弧線,改為D5?結束點的弧線,如圖5所示,經(jīng)過開環(huán)處理后原圖成為DAG圖,與此同時D5?D3的訂購關系依然存在于仿真運行過程中。
在這種有向環(huán)處理的過程中,會產(chǎn)生數(shù)據(jù)滯后一個時鐘周期的現(xiàn)象。產(chǎn)生數(shù)據(jù)滯后的原因是:在解開環(huán)的過程中,會根據(jù)一個點的入度來解開數(shù)據(jù)的傳遞關系。如圖5所示,在解開D5→D3的數(shù)據(jù)傳遞關系過程中,當D5和D1的值同時傳遞到D3時,才能有數(shù)據(jù)的更新。在第一步時,D5是將從XML中讀取到的初始值作為數(shù)據(jù)傳入D3;第二次時,D5是將第一次處理過后得到的數(shù)據(jù)傳入D3,這樣在D5這個內(nèi)部成員的數(shù)據(jù)處理中,得到的值總是上一個時鐘周期的值,這樣在D5這里有效數(shù)據(jù)就產(chǎn)生了一個時鐘周期滯后的現(xiàn)象。
圖5 有向環(huán)解環(huán)過程中的滯后
本文基于HLA仿真模型理論,提出模型組合的概念,在不破壞原有數(shù)據(jù)傳遞關系的前提下,對多個仿真成員進行組合,從而減少實際加入聯(lián)邦的成員數(shù)量,闡述了對仿真成員進行組合的理論基礎。通過對不同描述文件的讀取實現(xiàn)普通的通用模型和組合模型之間的切換,提高了模型的重用率,減少了對仿真模型進行開發(fā)的成本消耗。
[1]蔣曉原.HLA仿真程序設計[M].北京:電子工業(yè)出版社,2002:11?12.
[2]雷永林.仿真模型重用理論、方法與異構集成技術研究[D].長沙:國防科學技術大學,2006.
[3]吳義明,齊歡.基于HLA的城市交通控制系統(tǒng)仿真[J].計算機仿真,2004,21(6):159?161.
[4]李震,余銀,劉向東,等.一種應用于HLA分布式仿真方法的通用聯(lián)邦成員:中國,CN103514321A[P].2014?01?15.
[5]姜麗麗.基于HLA的中間件方法研究及工具設計[D].長沙:國防科學技術大學,2006.
[6]王志勇,李志猛,凌云翔,等.HLA仿真的模型體系和支持工具研究[J].計算機仿真,2005,22(5):115?119.
[7]朱國華,王杰,余維偉.一種可重用可組合的并行仿真模型技術分析[J].電子測試,2014(22):28?30.
[8]PAGE E H,BRIGGS R,TUFAROLO J A.Toward a family of maturity models for the simulation interconnection problem [C]//ProceedingsoftheSpringSimulationInteroperability Workshop.[S.l.]:IEEE,2004:123?129.
Research on HLA?based combination technique of simulation members in model level
ZHU Guohua,DING Jianjun,YANG Chen,DAI Yang
(College of Mathematics and Computer Science,Jianghan University,Wuhan 430056,China)
HLA(high level architecture)interface is packaged usually in the form of COM serviced component in HLA?based simulation to realize reuse of simulation model.With further expansion of simulation scale,too many federal members may be generated,which may make the simulation cost increased.The concept of member combination in model level is put for?ward in this paper.On the basis of the federal simulation members’reusing technology based on COM,the correlation theory of the data order relationship described by digraph is discussed,and a general simulation number was designed to dispatch multi?ple simulation models according to the digraph.Under the premise of no destruction of data transmitting relation among mem?bers,multiple simulation members are combined into a federal simulation member to reduce the number of federal simulation members and the cost of simulation.
HLA simulation;federal member;model combination;data order
TN915?34
A
1004?373X(2016)12?0010?04
10.16652/j.issn.1004?373x.2016.12.003
2015?11?11 基金項目:國家科技支撐計劃專題項目(2013BAD11B02?06);武漢市科技局產(chǎn)學研項目(cxy201405)
朱國華(1969—),男,山東膠州人,講師,博士。主要研究方向為軟件工程、并行仿真。