王 皓,李 輝,白金平
(電子科技大學(xué)空天科學(xué)技術(shù)研究院,四川成都 611731)
高層體系結(jié)構(gòu)通過運行支撐(Run-Time Infrastructure,RTI)提供通用的、相對獨立的支撐服務(wù)程序,將仿真應(yīng)用同底層的分布式支撐環(huán)境分開,即將具體的仿真功能實現(xiàn)、仿真運行管理和底層通信傳輸三者分離,隱蔽各自的實現(xiàn)細(xì)節(jié),因而其受到仿真領(lǐng)域的普遍重視.目前,基于HLA的分布交互式仿真已成為仿真系統(tǒng)發(fā)展的主要方向.
時間管理是HLA的核心技術(shù)之一,也是RTI的重點和難點.時間管理使得事件在仿真系統(tǒng)中的時序管理與自然世界中的時序關(guān)系相一致,從而保證仿真系統(tǒng)在執(zhí)行時的正確性和可重復(fù)性.由于HLA時間管理機制包括消息傳遞機制和時間推進(jìn)機制,因而在時間策略中,時間推進(jìn)必須與負(fù)責(zé)傳遞消息的機制相配合.
仿真時間又稱邏輯時間,是對物理時間的擴展或壓縮,仿真時間可以停頓或回溯.聯(lián)邦時間軸是聯(lián)邦運行的背景時間,仿真沿著聯(lián)邦時間軸推進(jìn).每個聯(lián)邦成員有各自的聯(lián)邦成員時間,聯(lián)邦成員時間表明聯(lián)邦成員所處的邏輯時間.時間管理服務(wù)協(xié)調(diào)聯(lián)邦成員時間是通過仿真成員間的交互進(jìn)行的.
離散事件仿真(Parallel Discrete Event Simulation, PDES)的核心在于為所有仿真節(jié)點選擇一個相同的精確時鐘,確保在仿真過程中所發(fā)生時間邏輯上的正確性和有序性[1].時間管理復(fù)雜性涉及到模擬系統(tǒng)的運行效率.時間管理可以提高仿真系統(tǒng)的運行效率[2].
通過對保守策略分析和研究后可知,兩個重要的變量:時間前瞻量和時戳下限是RTI在處理聯(lián)邦成員的時間推進(jìn)請求時的兩個關(guān)鍵參數(shù)[1].而采用對比時戳的方法可以解決在仿真應(yīng)用系統(tǒng)開發(fā)中聯(lián)邦成員對所接收消息進(jìn)行確認(rèn),從而得到所需數(shù)據(jù)的問題,進(jìn)而有效保證整個聯(lián)邦同步運行[3].HLA時間管理的目標(biāo)是減少時間偏差(Time Warp,TW)或降低偏差帶來的不良影響,其主要任務(wù)是使仿真世界中事件發(fā)生的順序與真實世界中事件的發(fā)生的順序一致,保證各成員能以同樣的順序觀察到時間的產(chǎn)生.
火箭測發(fā)系統(tǒng)按功能可劃分為,任務(wù)規(guī)劃、控制系統(tǒng)、動力系統(tǒng)、測量系統(tǒng)與利用系統(tǒng)等.任務(wù)規(guī)劃在測發(fā)系統(tǒng)中為其他各系統(tǒng)提供最頂層的測發(fā)流程控制及規(guī)劃.火箭測試仿真系統(tǒng)基于HLA對現(xiàn)實中測發(fā)系統(tǒng)進(jìn)行仿真,是依據(jù)靶場長期以來形成的火箭測發(fā)經(jīng)驗,將文檔類型的測發(fā)報告開發(fā)為數(shù)字化的火箭測發(fā)仿真系統(tǒng),其仿真劇情來源于火箭測發(fā)的操作規(guī)程,仿真數(shù)據(jù)來源于對象模型數(shù)據(jù)字典.
對火箭系統(tǒng)內(nèi)部功能模塊及真實測發(fā)系統(tǒng)的體系結(jié)構(gòu)進(jìn)行分析后,本文將仿真系統(tǒng)從系統(tǒng)的橫向角度劃分為火箭結(jié)構(gòu)系統(tǒng)與火箭測發(fā)系統(tǒng);從仿真成員內(nèi)部各個功能模塊間的級聯(lián)的縱向角度劃分為RTI接口模塊、仿真劇情推動模塊、數(shù)值計算模塊、視景模型計算模塊、NI界面操作及狀態(tài)數(shù)據(jù)顯示模塊.火箭結(jié)構(gòu)系統(tǒng)分為各子火箭系統(tǒng)數(shù)值模型模塊與視景模型模塊.火箭結(jié)構(gòu)系統(tǒng)通過RTI服務(wù)可以集成為各系統(tǒng)具有互操作的火箭系統(tǒng)整體.測發(fā)仿真中,火箭結(jié)構(gòu)系統(tǒng)為仿真提供了數(shù)學(xué)模型、視景模型的調(diào)用及交互接口,與測試系統(tǒng)集成后仿真才能運行.火箭的數(shù)值計算模塊作為子模塊與測發(fā)數(shù)據(jù)模塊聚合向聯(lián)邦發(fā)布測試仿真數(shù)值模型輸出與模型狀態(tài)信息,火箭視景模塊與測試項測發(fā)視景驅(qū)動集成使用數(shù)值模型數(shù)據(jù)作輸入展示火箭測發(fā)視景動作.數(shù)值模型運行后可以局部推進(jìn)仿真進(jìn)行,數(shù)值模型由測發(fā)過程中的交互信息調(diào)用后運行.測發(fā)流程整體由任務(wù)規(guī)劃、系統(tǒng)導(dǎo)調(diào)中的測發(fā)劇情推動模塊與NI控制模塊依據(jù)仿真劇情層級式推進(jìn).NI數(shù)值、狀態(tài)模塊展示仿真中的數(shù)據(jù)和狀態(tài).
本文重點介紹對仿真系統(tǒng)的時間管理,并進(jìn)行時間管理測試.
任務(wù)規(guī)劃邦員是火箭測發(fā)系統(tǒng)的總指揮,靶場稱之為“01”號,各個測試項的進(jìn)行都是在任務(wù)規(guī)劃的支配下進(jìn)行的.圖1為測試項協(xié)同圖.
圖1 動力系統(tǒng)第三次總檢查邦員交互圖
從圖1中可看出,任務(wù)規(guī)劃需發(fā)布并發(fā)送測試項管理交互類以管理各個系統(tǒng)測試項進(jìn)程,各個系統(tǒng)需訂購此交互類并發(fā)布測試項反饋信息供任務(wù)規(guī)劃訂購.發(fā)送/接收規(guī)則如圖1中所示.
在仿真系統(tǒng)中,聯(lián)邦成員的時間管理策略可設(shè)置為以下4種形式之一:既時間控制又時間受限;既不時間控制又不時間受限;時間受限;時間控制.
由于任務(wù)規(guī)劃和系統(tǒng)導(dǎo)調(diào)需互相同步,視景現(xiàn)實需占用大量仿真時間,其仿真狀態(tài)也需同步,故將任務(wù)規(guī)劃、各系統(tǒng)導(dǎo)調(diào)、視景邦員的時間管理策略設(shè)置為,既時間控制又時間受限.數(shù)值、狀態(tài)僅需展示仿真信息,不參與仿真同步,故數(shù)值、狀態(tài)和其他邦員的時間管理策略設(shè)置為,時間受限.
通過對圖1中的仿真交互進(jìn)行分析,可得出仿真進(jìn)程的推動過程為:任務(wù)規(guī)劃邦員推動4個系統(tǒng)導(dǎo)調(diào)邦員進(jìn)行子項目的仿真,采用測試項劇情推進(jìn)交互類進(jìn)行推進(jìn);系統(tǒng)導(dǎo)調(diào)控制系統(tǒng)內(nèi)的數(shù)據(jù)/狀態(tài)/視景邦員進(jìn)行推進(jìn),采用測試項劇情推進(jìn)交互類和測試項劇情推進(jìn)對象類屬性進(jìn)行推進(jìn).推進(jìn)交互圖示例如圖2所示.交互步驟圖詳細(xì)描述了仿真中各個邦員之間嚴(yán)格的交互關(guān)系,仿真交互設(shè)計和集成的目的便是連接各個仿真模塊,實現(xiàn)圖2中所示交互規(guī)則的前提下進(jìn)行仿真推進(jìn),從而實現(xiàn)運載火箭測試仿真.
圖2 時間推進(jìn)交互步驟圖
在仿真系統(tǒng)中,消息傳遞機制包括消息傳輸方式與消息傳遞順序.消息傳輸方式分為,可靠和快遞.消息的傳遞順序分為接收順序(RO)與時戳順序(TSO).最終的消息的發(fā)送順序類型有,首選順序類型、發(fā)送成員時間管理策略,是否使用時戳和發(fā)送消息的順序類型.最終的消息的接受順序類型有,接收成員時間管理策略和對應(yīng)的發(fā)送消息的順序類型.
依據(jù)以上分析,可將消息分為4類,并采用表1、表2所示的方法確定消息發(fā)送和接受的順序類型.
表1 消息發(fā)送順序的確定方法
表2 消息接收順序類型的確定方法
所有消息的傳輸方式均設(shè)計為“可靠”以提高系統(tǒng)的可靠性.
圖3為系統(tǒng)導(dǎo)調(diào)聯(lián)邦級別的運行規(guī)劃圖.從圖3中可清晰看出時間管理和聯(lián)邦運行的關(guān)系.
圖3 系統(tǒng)導(dǎo)調(diào)運行圖
圖4以動力導(dǎo)調(diào)和任務(wù)規(guī)劃為例介紹同一模塊C++火箭測試操作類與火箭C++火箭模型類的交互.這兩者是一個聚合關(guān)系,火箭測試系統(tǒng)數(shù)值模型類調(diào)用火箭數(shù)值模型C++類,形成特定于測試項的測試類,不同的測試類滿足不同的測試項.火箭測試系統(tǒng)是局部推進(jìn)仿真進(jìn)程的模塊,在仿真時鐘的控制下,測試系統(tǒng)類構(gòu)建的對象與針對于測試的火箭模型對象發(fā)布/訂購相關(guān)對象類/交互類,推進(jìn)仿真進(jìn)程.一個測試指令結(jié)束后,任務(wù)規(guī)劃下達(dá)下一個測試指令,系統(tǒng)導(dǎo)調(diào)收到測試指令后下達(dá)子測試指令,收到子測試指令的測試仿真數(shù)值仿真類進(jìn)行局部仿真時間的推進(jìn).
圖4 火箭系統(tǒng)數(shù)值模塊與火箭測試系統(tǒng)間的時間推進(jìn)
仿真系統(tǒng)的時間管理原則為,聯(lián)邦中不存在通用和全局的時鐘,聯(lián)邦中可以產(chǎn)生“時戳”是未來的事件,聯(lián)邦成員不能產(chǎn)生“時戳”小于當(dāng)前成員的邏輯時間的事件,不要求成員以“時戳”順序產(chǎn)生事件.
HLA時間管理中保守策略的時間推進(jìn)是以PDES的保守算法為基礎(chǔ),通過時戳消息進(jìn)行時間管理交互,并且僅當(dāng)每個邏輯進(jìn)程按非遞減的時戳順序處理件事.
邦員的邏輯時間推進(jìn)時,必須向RTI提出申請,要求RTI推進(jìn)自己的邏輯時間并等待RTI的回調(diào)確認(rèn).這一過程可以用Request Time Advance或者Next Event Request函數(shù)來向RTI發(fā)出申請;Time Advance Grant相應(yīng)RTI的服務(wù)要求.
時間前瞻量(Lookahead)和時戳下限(Lower Bound Time Stamp,LBTS)是影響時間推進(jìn)的兩個關(guān)鍵變量,引入這兩個變量可解決死鎖.
時間前瞻量為T(邏輯時鐘)+L(Lookahead),則稱Lookahead值L為該聯(lián)邦成員邏輯時鐘推進(jìn)的超前量,它表明該聯(lián)邦成員可以預(yù)測未來L個時間單位內(nèi)的屬性更新和交互.因此,RTI在長度為L個時間單位的時間窗內(nèi)可以并發(fā)處理消息的發(fā)送和接受[7].LBTS的公式定義如下,
聯(lián)邦的LBTS為,LBTS=Min(LBTSj),i=1,2,3……,n,在HLA模式下,聯(lián)邦成員通過向RTI發(fā)送“時間推進(jìn)請求”表明其希望推進(jìn)的時間,并保證以后不會再產(chǎn)生時戳大于所請求時間的消息.
在數(shù)字化火箭系統(tǒng)中,可采用保守的時間推進(jìn)機制,此時系統(tǒng)為協(xié)同運行,時間推進(jìn)方式采用步進(jìn)推進(jìn)方式.故仿真系統(tǒng)是對測試過程的仿真,其仿真實時性要求較高,擬采用0.2 s為仿真計時基數(shù).依據(jù)各邦員的消息收發(fā)最小間隔,將任務(wù)規(guī)劃時間瞻量設(shè)置為1 s,其他邦員的時間瞻量設(shè)置為0.2 s.可以計算的任務(wù)規(guī)劃的LBTS=0.2 s,其他邦員的LBTS=1 s.下面驗證這樣的推進(jìn)策略的正確性.
仿真系統(tǒng)任務(wù)規(guī)劃與系統(tǒng)導(dǎo)調(diào)的推進(jìn)關(guān)系如圖5所示.圖5中,圓點表示聯(lián)邦成員的當(dāng)前邏輯時間,軸上的粗線表示時間控制成員的時間前瞻量(Lookahead).假設(shè)聯(lián)邦成員的當(dāng)前邏輯時間是T,該聯(lián)邦成員時間前瞻量是L,那么該聯(lián)邦成員可向RTI保證在從T到T+L的時間窗內(nèi)不會產(chǎn)生新事件.軸下方的虛線表示時間受限成員的時戳下限值(LBTS).
圖5 任務(wù)規(guī)劃與系統(tǒng)導(dǎo)調(diào)的推進(jìn)關(guān)系圖
圖5中,任務(wù)規(guī)劃在0時刻,其Lookahead為1, LBTS為0.2;系統(tǒng)導(dǎo)調(diào)在 0時刻,其Lookahead為0.2,LBTS為1;故當(dāng)且僅當(dāng)系統(tǒng)導(dǎo)調(diào)順利進(jìn)行推進(jìn)步驟1、推進(jìn)步驟2推進(jìn)步驟3,推進(jìn)到1秒的時候,任務(wù)規(guī)劃可以推進(jìn)到1秒,當(dāng)且僅當(dāng)任務(wù)規(guī)劃推進(jìn)到1秒的時候,系統(tǒng)導(dǎo)調(diào)才可以向前推進(jìn).
由于數(shù)值、視景邦員是非時間控制,而非時間控制的聯(lián)邦成員不可以影響其他邦員的推進(jìn).所以,數(shù)值、視景邦員對其他邦員推進(jìn)無影響.同時,其他聯(lián)邦成員都是雙控的,因此,它們的時間推進(jìn)都不能超過各自的時戳下限值(LBTS).這充分體現(xiàn)了基于數(shù)值模型驅(qū)動的思想.
仿真系統(tǒng)任務(wù)規(guī)劃與規(guī)劃端時間管理運行圖如圖6所示.
從圖6可看出,各個系統(tǒng)的事件發(fā)生均按照仿真中的時間管理需求發(fā)生,不同消息傳遞順序與傳遞方式組合的成員之間按正常時序互操作.
圖6 任務(wù)規(guī)劃與規(guī)劃端時間管理運行圖
時間管理是基于HLA程序設(shè)計的一個關(guān)鍵點.本文介紹了一種保守時間管理的程序設(shè)計方法,有效解決了運載火箭測試仿真系統(tǒng)中時間管理需求,并通過對任務(wù)規(guī)劃邦員和系統(tǒng)導(dǎo)調(diào)模塊間的推進(jìn)實現(xiàn)時間管理并驗證方案的可行性.
[1]周炎,戴劍偉.HLA仿真程序設(shè)計[M].北京:電子工業(yè)出版社,2002.
[2]王學(xué)慧.并行與分布式仿真系統(tǒng)中的時間管理技術(shù)研究[D].成都:電子科技大學(xué),2006.
[3]梁彥剛,唐國金.基于HlA的仿真應(yīng)用系統(tǒng)開發(fā)中的時間同步研究[J].計算機仿真,2005,22(5):131-133.
[4]嚴(yán)海蓉,孫國基,張亞崇,等.基于HLA的樂觀時間同步的實現(xiàn)研究[J].系統(tǒng)仿真學(xué)報,2004,20(2):281-283.
[5]高霞.分層式HLA/RTI仿真平臺保守機制時間管理的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2006.
[6]曹裕華,江敬灼,馬利輝.一種分布式交互式作戰(zhàn)模擬的保守時間同步算法[J].計算機仿真,2004,21(4):19-21.
[7]歐陽伶俐,宋星,卿杜政,等.HLA時間管理與PDES仿真算法研究[J].系統(tǒng)仿真學(xué)報,2000,12(3):237-240.
[8]劉步權(quán).分布式仿真運行支撐平臺中時間管理服務(wù)的研究[D].長沙:國防科技大學(xué),2004.
[9]羅正偉.基于復(fù)雜系統(tǒng)仿真系統(tǒng)的體系結(jié)構(gòu)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2009.
[10]李輝,毛萬標(biāo),敬錦.HLA架構(gòu)下數(shù)值仿真與視景仿真集成方法的研究[J].系統(tǒng)仿真學(xué)報,2008,20(7):1749-1753.
[11]敬錦.基于HLA運載火箭飛行仿真系統(tǒng)體系結(jié)構(gòu)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2007.