摘 要: 基于高層體系結(jié)構(gòu)(HLA)的仿真中通常以COM服務(wù)組件的形式對(duì)HLA接口進(jìn)行封裝,實(shí)現(xiàn)仿真模型的復(fù)用。隨著仿真規(guī)模的進(jìn)一步擴(kuò)大,會(huì)產(chǎn)生聯(lián)邦成員過多的問題,從而提高仿真成本。提出模型級(jí)別成員組合的概念,在基于COM的聯(lián)邦仿真成員重用技術(shù)基礎(chǔ)上,探討采用有向圖描述數(shù)據(jù)訂購關(guān)系的相關(guān)理論問題,設(shè)計(jì)通用仿真成員依據(jù)有向圖調(diào)度多個(gè)仿真模型,在不破壞成員之間數(shù)據(jù)傳遞關(guān)系的前提下,將多個(gè)仿真模型組合為一個(gè)聯(lián)邦仿真成員,從而減少了仿真聯(lián)邦成員的數(shù)量,降低了仿真的成本。
關(guān)鍵詞: HLA仿真; 聯(lián)邦成員; 模型組合; 數(shù)據(jù)訂購
中圖分類號(hào): TN915?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)12?0010?04
Abstract: 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 forward 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 multiple simulation models according to the digraph. Under the premise of no destruction of data transmitting relation among members, multiple simulation members are combined into a federal simulation member to reduce the number of federal simulation members and the cost of simulation.
Keywords: HLA simulation; federal member; model combination; data order
HLA(High Level Architecture)仿真系統(tǒng)中最重要的資源是仿真模型[1]。模型組合的目的是最大限度地實(shí)現(xiàn)仿真模型的組合與重用,通過替換組件的方式實(shí)現(xiàn)仿真系統(tǒng)的結(jié)構(gòu)和行為的發(fā)展演化。國內(nèi)外己有的研究取得了不少成果[2],但是目前模型描述復(fù)雜,建模過程繁瑣,驗(yàn)?zāi)?,最重要的缺陷是模型組合后,仿真聯(lián)邦成員的數(shù)量過多。本文針對(duì)基于HLA的并行仿真系統(tǒng)設(shè)計(jì)了一個(gè)基于通用聯(lián)邦成員[3]的組合建模的方法。該系統(tǒng)滿足以下特征:針對(duì)控制系統(tǒng)建模,知識(shí)庫設(shè)計(jì)難度相對(duì)較低;基于HLA仿真成員重用技術(shù),模型的可重用性強(qiáng);將多個(gè)仿真模型組合成為一個(gè)仿真聯(lián)邦成員,減少聯(lián)邦成員數(shù)量。
1 相關(guān)技術(shù)介紹
1.1 HLA仿真中的成員重用技術(shù)
在基于HLA的仿真成員的重用技術(shù)[4]中,每個(gè)仿真聯(lián)邦成員由三個(gè)組件構(gòu)成:
(1) 承擔(dān)調(diào)度仿真責(zé)任可執(zhí)行文件。該執(zhí)行文件通過加載DLL(Dynamic Link Library)模型算法和讀取成員模型描述XML(Extensible Markup Language) 文件后形成一個(gè)聯(lián)邦成員。
(2) 模型關(guān)聯(lián)描述文檔。該文檔描述了公布和訂購的對(duì)象類和交互類,以及相關(guān)的成員的初始化參數(shù)等信息。
(3)若干DLL文件,主要實(shí)現(xiàn)了仿真實(shí)體的具體功能算法,被稱為仿真模型。比如實(shí)現(xiàn)了聯(lián)邦成員中的一個(gè)PID(Proportional?Integral?Derivative)控制器算法等。
1.2 仿真模型的概念
仿真模型是一個(gè)仿真成員的核心功能。多個(gè)模型構(gòu)成模型庫為:
ML={M1,M2,…,Mn [n∈N}]
其中每一個(gè)模型:M={(I1,I2,…,Im,O1,O2,…,On,N1,N2,…,Nj)[m∈N∧]n∈Ν∧j∈Ν},對(duì)于任一個(gè)模型存在多個(gè)相關(guān)向量,包括輸入?yún)?shù)I,輸出參數(shù)O,初始參數(shù)N。
1.3 仿真聯(lián)邦成員之間的訂購關(guān)系
并行仿真中發(fā)布/訂購關(guān)系,對(duì)于對(duì)象類,從給定的聯(lián)邦成員的角度來看是存在該對(duì)象類的已訂購屬性;對(duì)于交互類,該交互類是一個(gè)已訂購交互類。
成員之間的訂購關(guān)系,由于每個(gè)成員有不同的交互類和對(duì)象類公布,當(dāng)另一成員發(fā)現(xiàn)自己需要的交互類和對(duì)象類,就會(huì)進(jìn)行訂購操作,即訂購了其他成員的發(fā)布的對(duì)象類和交互類。這種訂購可以是一對(duì)一的關(guān)系,也可以是一對(duì)多的關(guān)系。對(duì)于任何一個(gè)成員而言,成員之間存在的訂購關(guān)系有兩種:交互類訂購關(guān)系和對(duì)象類訂購關(guān)系。
1.4 組合模型的兩種途徑
在基于HLA的仿真系統(tǒng)中,實(shí)現(xiàn)模型的組合有兩種方式:
(1) 成員級(jí)別的組合[5?6]:組合模型在用戶層次見到的是一個(gè)成員,但是在底層實(shí)現(xiàn)依然是多個(gè)聯(lián)邦成員,以某種關(guān)系組合而成。
(2) 模型級(jí)別的組合:組合模型只生成一個(gè)實(shí)在的聯(lián)邦成員,也就是說一個(gè)仿真成員底層是由多個(gè)仿真模型算法實(shí)現(xiàn);多個(gè)算法模型DLL組合成一個(gè)聯(lián)邦成員。
這兩種方式各有優(yōu)缺點(diǎn)。雖然在并行仿真系統(tǒng)中,模型與成員一對(duì)一的關(guān)系更符合并行仿真系統(tǒng)的調(diào)度方式,但是在實(shí)際仿真項(xiàng)目中,大多數(shù)投資者不愿意采用這種方式,原因是實(shí)際仿真項(xiàng)目中成員的數(shù)量成千上萬,使得系統(tǒng)需要生成大量的仿真聯(lián)邦成員,直接使運(yùn)營成本提高。第二個(gè)方式,組合成員不僅能解決成員數(shù)量的問題,還能解決成員之間復(fù)雜的數(shù)據(jù)傳遞關(guān)系,即組合成員可以嵌套組合成員,存在的問題是可能產(chǎn)生代數(shù)環(huán)問題,使用時(shí)有特定的限制。
2 模型組合原理介紹
圖(Graph)是圖論的基本研究對(duì)象,表示物件與物件之間的關(guān)系。一個(gè)圖由多個(gè)頂點(diǎn)或和連結(jié)這些頂點(diǎn)的線組成。
有向圖是一個(gè)二元組
完全有向圖有n個(gè)頂點(diǎn)的有向圖有n(n-1)條邊,則此圖稱為完全有向圖。從某個(gè)頂點(diǎn)出發(fā)經(jīng)過若干條邊回到該點(diǎn)的圖是一個(gè)有向無環(huán)圖DAG(Directed Acycline Praph)。因?yàn)橛邢驁D中一個(gè)點(diǎn)經(jīng)過兩種路線到達(dá)另一個(gè)點(diǎn)未必形成環(huán),因此有向無環(huán)圖未必能轉(zhuǎn)化成樹,但任何有向樹均為有向無環(huán)圖。有向無環(huán)圖的生成樹個(gè)數(shù)等于入度非零的節(jié)點(diǎn)的入度積。
本系統(tǒng)將內(nèi)部成員的訂購關(guān)系,先轉(zhuǎn)化為DAG,再進(jìn)行拓?fù)渑判?,生成組合成員內(nèi)部的DLL調(diào)度順序。
2.1 組合模型關(guān)系描述[7]
為了描述清楚,本文使用內(nèi)部成員的概念來描述一個(gè)組合模型中的一個(gè)組成成分。但其在HLA仿真運(yùn)行中,內(nèi)部成員并不會(huì)作為一個(gè)聯(lián)邦成員加入聯(lián)邦,其只是組合成員內(nèi)部的一個(gè)運(yùn)行部分。同時(shí)組合模型的內(nèi)部成員之間仍然存在和聯(lián)邦成員之間同樣的訂購交互關(guān)系和互操作性[8]。
模型之間的關(guān)聯(lián)信息表達(dá)為:
R={(Mref1,Mref2)[Mref1∈]ML∧Mref2∈ML}
其中可用關(guān)系集:RL={R1,R2,…,Rn},其中RL表示模型的內(nèi)部成員需要滿足的傳遞關(guān)系集合;NL={N1,N2,…,Nn},NL表示所有聯(lián)邦成員之間能夠滿足的數(shù)據(jù)傳遞關(guān)系集合;A表示模型庫中所有模型能夠滿足數(shù)據(jù)傳輸關(guān)系集合。則有關(guān)系A(chǔ)=RL∨NL。
組合模型定義如下:
CM={(M1,M2,…,Mm,A)[Mm]∈ML∧Rn∈RL∧m,n∈N},其中ML已定義。
2.2 規(guī)則與推論
對(duì)于任意兩個(gè)模型M1與M2 ,可以形成如下關(guān)系:
Os={O1,O2,…,Om },O是模型M1的所有輸出集合;
Is={I1,I2,…,In},I是模型M2的所有接收集合;
做笛卡爾積則對(duì)于所有產(chǎn)生的輸入輸出關(guān)系,有傳輸關(guān)系:
[K=(o,i)o∈Os,i∈Is]
則對(duì)于任意兩個(gè)模型,二者產(chǎn)生的關(guān)聯(lián)關(guān)系為:
R={Os,Is,K}
關(guān)系R可以映射成為有向圖G。對(duì)于傳輸關(guān)系K,可以映射成為有向圖
2.3 將訂購關(guān)系建模成有向圖
由于組合成員內(nèi)部成員存在和普通成員一樣的訂購交互關(guān)系,這種關(guān)系可以簡單的采用關(guān)系對(duì)來描述:假設(shè)D1,D2代表組合成員里的內(nèi)部成員,如D2訂購了D1的消息,可以記錄這種關(guān)系為D1?D2,同理D3訂購D1的消息,D4訂購了D2,D3的消息即D1?D3,D2?D4,D3?D4,如圖1所示。把這種關(guān)系理解為有向圖里的頂點(diǎn)以及其前驅(qū),于是可以把這種關(guān)系進(jìn)行匯總,從而生成有向圖。
2.4 組合模型調(diào)度原理介紹
先檢查訂購關(guān)系是否存在閉環(huán);如果存在閉環(huán)需要先對(duì)閉環(huán)進(jìn)行單獨(dú)處理,打開有向環(huán)從而重構(gòu)成為一個(gè)DAG。然后按照拓?fù)渑判蚪釧OE網(wǎng)(Activity on Edge Network)的過程求解組合成員之間的數(shù)據(jù)傳遞關(guān)系:
(1) 在有向圖中選一個(gè)沒有前驅(qū)的頂點(diǎn)并輸出;
(2) 在圖中刪除該頂點(diǎn)和所有以它為尾的弧。
具體調(diào)度方法采用遞歸算法。在內(nèi)部成員的描述文件中,記錄了組合成員中的發(fā)布/訂購關(guān)系,即數(shù)據(jù)傳遞順序。取出一對(duì)關(guān)系,采用拆分的方法,分別存儲(chǔ)為關(guān)系數(shù)組里的頂點(diǎn)及其前驅(qū)點(diǎn),例如D1?D2,D1就加入第一個(gè)數(shù)組,D2加入第2個(gè)數(shù)組。然后調(diào)度函數(shù)對(duì)比兩個(gè)數(shù)組,如果第1個(gè)數(shù)組中有元素第2個(gè)數(shù)組沒有對(duì)應(yīng)訂購元素,則將這個(gè)元素加入第3個(gè)數(shù)組,在循環(huán)外遍歷關(guān)系數(shù)組分別刪除此元素和與其對(duì)應(yīng)的元素,然后遞歸調(diào)用,直至關(guān)系數(shù)組為空。如果同一層的訂購數(shù)組不止一個(gè),就同時(shí)啟動(dòng)多線程調(diào)用多個(gè)DLL,以達(dá)到分組并行的目的。
3 成員組合關(guān)系中有環(huán)有向圖的處理
在處理組合成員數(shù)據(jù)傳遞關(guān)系時(shí)可能會(huì)遇到有環(huán)有向圖的現(xiàn)象(控制系統(tǒng)中的閉環(huán)),此時(shí)就無法得到DAG。這是常規(guī)拓?fù)渑判蚪鉀Q不了的問題,需要先對(duì)有向環(huán)進(jìn)行單獨(dú)處理。
有環(huán)有向圖處理流程如圖3所示。
在處理有環(huán)圖的過程中要保持平衡準(zhǔn)則:在處理整個(gè)有向環(huán)的前后,有向環(huán)中定義的數(shù)據(jù)傳遞關(guān)系不能有增加或缺失。有環(huán)有向圖與AOE網(wǎng)惟一的區(qū)別在于有無環(huán),本質(zhì)的區(qū)別在于排序過程中是否會(huì)存在所有頂點(diǎn)都有前驅(qū)的情況。以這種思路考慮,問題就變得相當(dāng)簡單,即在拓?fù)渑判蜻^程中加判斷,當(dāng)拓?fù)渑判蛴龅江h(huán)時(shí),拆掉環(huán)變成無環(huán)有向圖,對(duì)于拆掉的弧線,保留其數(shù)據(jù)傳遞關(guān)系,然后繼續(xù)拓?fù)渑判颍簿褪钦f有環(huán)有向圖是一個(gè)部分頂點(diǎn)帶有特殊傳遞關(guān)系的無環(huán)有向圖。這種方法不僅快速地解決了有環(huán)有向圖產(chǎn)生的問題,同時(shí)滿足了平衡準(zhǔn)則,避免了數(shù)據(jù)流失的問題。
示例如下: 設(shè)D1為組合成員的輸入成員,D5,D6為組合成員的輸出成員,如圖4所示。
首先刪除初始頂點(diǎn)D1,判斷以D1為前驅(qū)的所有頂點(diǎn)即D2,D3中是否存在入度不為0的頂點(diǎn),D3是入度不為0的頂點(diǎn),也就是說發(fā)現(xiàn)D3是環(huán)路的匯合點(diǎn),那么組合模型內(nèi)部必然存在閉環(huán)的問題。此時(shí)刪除D5?D3的弧線,改為D5?結(jié)束點(diǎn)的弧線,如圖5所示,經(jīng)過開環(huán)處理后原圖成為DAG圖,與此同時(shí)D5?D3的訂購關(guān)系依然存在于仿真運(yùn)行過程中。
4 缺陷分析
在這種有向環(huán)處理的過程中,會(huì)產(chǎn)生數(shù)據(jù)滯后一個(gè)時(shí)鐘周期的現(xiàn)象。產(chǎn)生數(shù)據(jù)滯后的原因是:在解開環(huán)的過程中,會(huì)根據(jù)一個(gè)點(diǎn)的入度來解開數(shù)據(jù)的傳遞關(guān)系。如圖5所示,在解開D5→D3的數(shù)據(jù)傳遞關(guān)系過程中,當(dāng)D5和D1的值同時(shí)傳遞到D3時(shí),才能有數(shù)據(jù)的更新。在第一步時(shí),D5是將從XML中讀取到的初始值作為數(shù)據(jù)傳入D3;第二次時(shí),D5是將第一次處理過后得到的數(shù)據(jù)傳入D3,這樣在D5這個(gè)內(nèi)部成員的數(shù)據(jù)處理中,得到的值總是上一個(gè)時(shí)鐘周期的值,這樣在D5這里有效數(shù)據(jù)就產(chǎn)生了一個(gè)時(shí)鐘周期滯后的現(xiàn)象。
5 結(jié) 論
本文基于HLA仿真模型理論,提出模型組合的概念,在不破壞原有數(shù)據(jù)傳遞關(guān)系的前提下,對(duì)多個(gè)仿真成員進(jìn)行組合,從而減少實(shí)際加入聯(lián)邦的成員數(shù)量,闡述了對(duì)仿真成員進(jìn)行組合的理論基礎(chǔ)。通過對(duì)不同描述文件的讀取實(shí)現(xiàn)普通的通用模型和組合模型之間的切換,提高了模型的重用率,減少了對(duì)仿真模型進(jìn)行開發(fā)的成本消耗。
參考文獻(xiàn)
[1] 蔣曉原.HLA仿真程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002:11?12.
[2] 雷永林.仿真模型重用理論、方法與異構(gòu)集成技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2006.
[3] 吳義明,齊歡.基于HLA的城市交通控制系統(tǒng)仿真[J].計(jì)算機(jī)仿真,2004,21(6):159?161.
[4] 李震,余銀,劉向東,等.一種應(yīng)用于HLA分布式仿真方法的通用聯(lián)邦成員:中國,CN103514321A[P].2014?01?15.
[5] 姜麗麗.基于HLA的中間件方法研究及工具設(shè)計(jì)[D].長沙:國防科學(xué)技術(shù)大學(xué),2006.
[6] 王志勇,李志猛,凌云翔,等.HLA仿真的模型體系和支持工具研究[J].計(jì)算機(jī)仿真,2005,22(5):115?119.
[7] 朱國華,王杰,余維偉.一種可重用可組合的并行仿真模型技術(shù)分析[J].電子測(cè)試,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]// Proceedings of the Spring Simulation Interoperability Workshop. [S.l.]: IEEE, 2004: 123?129.