国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于實(shí)裝軟件的構(gòu)造仿真技術(shù)研究

2018-10-29 01:39段雨昕卿杜政周敏王源源
現(xiàn)代防御技術(shù) 2018年5期
關(guān)鍵詞:同步控制中間件組件

段雨昕,卿杜政,周敏,王源源

(1.中國航天科工集團(tuán)有限公司 第二研究院,北京 100854;2.北京仿真中心 航天系統(tǒng)仿真重點(diǎn)實(shí)驗(yàn)室,北京 100854; 3.北京電子工程總體研究所,北京 100854)

0 引言

仿真系統(tǒng)根據(jù)系統(tǒng)中人員參與和仿真模型的組成關(guān)系不同可分為實(shí)況仿真(live simulation)、虛擬仿真(virtual simulation)、構(gòu)造仿真(constructive simulation)[1-2]。構(gòu)造仿真重點(diǎn)應(yīng)用于對(duì)戰(zhàn)爭的分析和演練。其在軍事領(lǐng)域應(yīng)用廣泛,涵蓋了武器裝備效能評(píng)估、模擬戰(zhàn)爭過程和基于仿真的試驗(yàn)評(píng)估等。構(gòu)造仿真系統(tǒng)具有人員參與少,系統(tǒng)自身閉環(huán),批量運(yùn)行,運(yùn)行過程中計(jì)算量大和數(shù)據(jù)處理要求高的特點(diǎn)[3]。

目前國內(nèi)構(gòu)造仿真中構(gòu)建分布式仿真系統(tǒng)時(shí)通常是基于HLA標(biāo)準(zhǔn),使用運(yùn)行支撐環(huán)境(run time infrastructure,RTI)[4]。在構(gòu)造仿真中仿真軟件存在重新建模帶來的仿真可信度問題[5]。而且模型的校核也需要大量的工作,難以與裝備的研制同步進(jìn)行。隨著實(shí)際裝備不斷的更新?lián)Q代,仿真模型開發(fā)者為保證與實(shí)裝同步需要進(jìn)行大量重復(fù)的開發(fā)工作。

使用實(shí)裝軟件接入構(gòu)造仿真系統(tǒng)是提高仿真置信度與仿真效率,減少仿真系統(tǒng)開發(fā)建模重復(fù)工作的重要途徑。但因?yàn)閷?shí)裝軟件與仿真系統(tǒng)軟件的通信機(jī)制和時(shí)間管理策略都存在差異,所以需要通過適配中間件的形式使實(shí)裝軟件和仿真平臺(tái)間實(shí)現(xiàn)交互信息的正確傳遞和統(tǒng)一的時(shí)間管理。通信組件將實(shí)裝軟件的網(wǎng)絡(luò)通信數(shù)據(jù)轉(zhuǎn)換成為HLA標(biāo)準(zhǔn)的交互類消息通過RTI分發(fā)。時(shí)統(tǒng)組件統(tǒng)一仿真系統(tǒng)中各個(gè)實(shí)裝軟件的時(shí)間來實(shí)現(xiàn)仿真系統(tǒng)的時(shí)間一致性。

1 HLA/RTI與實(shí)裝軟件特點(diǎn)

1.1 HLA/RTI特點(diǎn)

HLA并不考慮怎么在對(duì)象的基礎(chǔ)上構(gòu)建成員,它重點(diǎn)在于解決構(gòu)建聯(lián)邦的問題。它把仿真支撐環(huán)境的工作和聯(lián)邦成員的開發(fā)工作作為2部分,將運(yùn)行管理工作還有通信工作與仿真功能分別進(jìn)行[6]。HLA以面向?qū)ο蟮乃悸穪順?gòu)建、研發(fā)和應(yīng)用仿真對(duì)象模型,進(jìn)而能夠使這樣開發(fā)出來的仿真聯(lián)邦擁有很好的互操作和可重用性[7-8]。RTI按照HLA的接口規(guī)范標(biāo)準(zhǔn)進(jìn)行開發(fā),它具體支持了HLA規(guī)范中的服務(wù),使基于HLA標(biāo)準(zhǔn)開發(fā)的軟件在RTI平臺(tái)的支撐下組成分布式仿真系統(tǒng)成為可能。基于HLA標(biāo)準(zhǔn)的仿真系統(tǒng)邏輯結(jié)構(gòu)如圖 1所示。

圖1 HLA標(biāo)準(zhǔn)的仿真系統(tǒng)邏輯結(jié)構(gòu)Fig.1 Logic structure of HLA simulation system

HLA所規(guī)定的是一種分布式仿真標(biāo)準(zhǔn)體系,RTI是基于HLA標(biāo)準(zhǔn)結(jié)構(gòu)的軟件實(shí)現(xiàn)。HLA標(biāo)準(zhǔn)定義的通信是以對(duì)象類和交互類的發(fā)布/訂閱來完成聯(lián)邦成員之間的信息交互。由對(duì)象管理服務(wù)統(tǒng)一對(duì)聯(lián)邦執(zhí)行過程中的信息交互進(jìn)行管理。HLA/RTI的時(shí)間推進(jìn)方式可以分為3類:基于步長的時(shí)間推進(jìn),基于事件的時(shí)間推進(jìn)以及樂觀的時(shí)間推進(jìn)。最為常用的是采用固定步長和基于下一事件的時(shí)間推進(jìn)方式[9]。

1.2 實(shí)裝軟件特點(diǎn)

實(shí)裝軟件是武器系統(tǒng)實(shí)際裝備軟件的簡稱,一般具有多個(gè)節(jié)點(diǎn),是多個(gè)軟件組成的一套整體運(yùn)行的軟件集合。部分實(shí)裝軟件具有高實(shí)時(shí)性要求,是在VxWorks硬實(shí)時(shí)操作系統(tǒng)上開發(fā)運(yùn)行的。還有部分軟件是在Windows系統(tǒng)上直接運(yùn)行的。本研究中基于VxWorks系統(tǒng)的實(shí)裝軟件經(jīng)過操作系統(tǒng)移植后,能夠正確在Windows+RTX(8.1.2)系統(tǒng)上運(yùn)行且測(cè)試通過。

實(shí)裝軟件之間通信主要通過網(wǎng)絡(luò)套接字實(shí)現(xiàn),在與HLA集成之前需要采用模擬套接字方式通過共享內(nèi)存進(jìn)行通信數(shù)據(jù)接管[10-11]。實(shí)裝軟件時(shí)間來源一般是GPS等硬件授時(shí)設(shè)備,也可以采用本機(jī)時(shí)間作為相對(duì)時(shí)間來執(zhí)行任務(wù)。

2 實(shí)裝軟件構(gòu)造仿真技術(shù)基本原理

根據(jù)實(shí)裝軟件仿真適配中間件數(shù)據(jù)交互方式以及時(shí)間管理策略,通過與HLA/RTI的標(biāo)準(zhǔn)進(jìn)行通信適配并采用統(tǒng)一的時(shí)統(tǒng)技術(shù),構(gòu)建集成運(yùn)行的仿真系統(tǒng)。

本文提出實(shí)裝軟件接入仿真平臺(tái)總體架構(gòu)如圖2所示,圖中的實(shí)裝軟件都可以運(yùn)行在Windows系統(tǒng)上,仿真適配中間件承接了實(shí)裝軟件的網(wǎng)絡(luò)通信,以共享內(nèi)存的形式提供了通信數(shù)據(jù)的接口。通信組件和時(shí)間統(tǒng)一組件則完成了與仿真平臺(tái)的信息交互和時(shí)間同步。通信組件使實(shí)裝軟件原本基于網(wǎng)絡(luò)傳遞的消息以HLA標(biāo)準(zhǔn)的交互類進(jìn)行交互。通過RTI發(fā)送實(shí)裝軟件需要發(fā)送的數(shù)據(jù),同時(shí)從RTI接收其他節(jié)點(diǎn)的交互數(shù)據(jù)。時(shí)間統(tǒng)一組件則主要完成仿真系統(tǒng)和實(shí)裝軟件間的運(yùn)行時(shí)間、任務(wù)同步等方面的匹配,從而保證實(shí)裝軟件運(yùn)行時(shí)序正確。

圖2 仿真集成總體架構(gòu)Fig.2 General structure of integrated simulation system

3 通信組件

實(shí)裝軟件的通信消息從原本的網(wǎng)絡(luò)套接字的形式通過共享內(nèi)存機(jī)制,分別以接收共享內(nèi)存和發(fā)送共享內(nèi)存的形式提供數(shù)據(jù)對(duì)其他進(jìn)程的共享通道。因此通信組件的功能是制定通用的HLA交互數(shù)據(jù)協(xié)議,通過RTI標(biāo)準(zhǔn)接口將數(shù)據(jù)正確發(fā)送和接收。

3.1 RTI數(shù)據(jù)交互協(xié)議

3.1.1 交互協(xié)議模型

為了使通信組件的數(shù)據(jù)交互協(xié)議能夠盡可能的通用,本文只定義了交互類并沒有定義對(duì)象類,也沒有對(duì)消息的內(nèi)容進(jìn)行區(qū)分。本文定義的交互類只設(shè)計(jì)了一個(gè)基類BaseMsg。其他的交互類則繼承自該基類,因此也繼承了基類中的全部參數(shù)。在HLA聯(lián)邦數(shù)據(jù)傳輸中有reliable模式和best_effort模式,reliable模式在RTI中使用TCP協(xié)議發(fā)送,保持消息可靠性,而best_effort模式RTI中采用UDP方式發(fā)送[12]。本文考慮到使用的網(wǎng)絡(luò)環(huán)境是局域網(wǎng)基本不存在丟包的現(xiàn)象,因此交互類消息全部采用best_effort方式,而且希望設(shè)計(jì)的組件盡量具有通用性因此只使用一個(gè)交互類基類進(jìn)行交互。以繼承自BaseMsg 類的A_Inter和B_Inter 2個(gè)交互類為例,對(duì)象數(shù)據(jù)模型如下:

(interactions)

(class BaseMsg best_effort receive

(parameter SendSockAddr)

∥發(fā)送方IP地址

(parameter RecvSockAddr)

∥接收方IP地址

(parameter CurrentTime)

∥發(fā)送時(shí)間

(parameter EventTime)

∥事件發(fā)生時(shí)間

(parameter MsgType)

∥消息類型

(parameter CommType)

∥通訊類型

(parameter MsgLength)

∥消息長度

(parameter MsgContent)

∥消息內(nèi)容

(class A_Inter best_effort receive)

∥繼承自BaseMsg的交互類A

(class B_Inter best_effort receive)

∥繼承自BaseMsg的交互類B

(class _Outer best_effort receive)

∥繼承自BaseMsg的交互類B

)

)

上面定義的_Inter類對(duì)應(yīng)著一套閉環(huán)運(yùn)行的軟件的內(nèi)部的交互,當(dāng)需要多套軟件之間交互時(shí)還需要訂購與發(fā)布_Outer類。

3.1.2 交互類發(fā)布/訂購模式

交互類的發(fā)布/訂購模式如圖 3所示,如果所有成員采用統(tǒng)一的BaseMsg交互類進(jìn)行發(fā)布和訂購會(huì)使A組內(nèi)的成員間的消息也被B組成員接收,因而降低網(wǎng)絡(luò)傳輸效率。本研究采用的是為組成一個(gè)火力單元的實(shí)裝軟件定義單獨(dú)的交互類的模式。以圖中結(jié)構(gòu)為例,定義A_Inter,B_Inter 2種交互類。其中A_Inter用于A組內(nèi)成員的交互,B_Inter用于B組內(nèi)成員的交互。如果A組成員需要與B組成員交互則通過_Outer類進(jìn)行。通過這種方式可以有針對(duì)性地對(duì)交互類進(jìn)行管理與擴(kuò)展,避免網(wǎng)絡(luò)中的通信冗余。

圖3 交互類發(fā)布/訂購關(guān)系圖Fig.3 Relation structure of interactive publishing & subscription

3.2 RTI交互數(shù)據(jù)通訊

RTI支持HLA標(biāo)準(zhǔn)的交互類數(shù)據(jù)的訂購與發(fā)布功能,在仿真聯(lián)邦運(yùn)行過程中通過標(biāo)準(zhǔn)的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收接口可以實(shí)現(xiàn)交互類數(shù)據(jù)的發(fā)送與接收。

當(dāng)實(shí)裝軟件要通過RTI發(fā)送交互數(shù)據(jù)時(shí),其在仿真適配中間件中設(shè)置了一個(gè)發(fā)送信息的回調(diào)函數(shù),該函數(shù)回調(diào)RTI交互數(shù)據(jù)發(fā)送標(biāo)準(zhǔn)接口。在RTI平臺(tái)接收到交互數(shù)據(jù)需要傳遞給實(shí)裝軟件時(shí),RTI的接收消息處理框架中調(diào)用通信組件提供的接收消息處理接口函數(shù)。交互數(shù)據(jù)的發(fā)送和接收信息流程如圖4所示,圖中上半部分是通信組件與實(shí)裝軟件的信息流程本文不再贅述,下半部分SendMsg()與SubmitRecvMsg()是RTI與通信組件的數(shù)據(jù)發(fā)送和接收的函數(shù)接口。

圖4 交互數(shù)據(jù)信息流程示意圖Fig.4 Schematic flow chart of interaction message

4 時(shí)間統(tǒng)一組件

時(shí)間統(tǒng)一組件實(shí)現(xiàn)實(shí)裝軟件與RTI多個(gè)節(jié)點(diǎn)軟件的同步運(yùn)行功能和時(shí)間管理功能。

4.1 同步控制

在RTI基于步長推進(jìn)方式的框架中控制仿真周期任務(wù)的函數(shù)為OnStep( )也稱為周期調(diào)度函數(shù)。它隨著每一幀的仿真運(yùn)行不斷的循環(huán)執(zhí)行,每執(zhí)行完一次都使仿真時(shí)間推進(jìn)一個(gè)周期[13]。實(shí)裝軟件運(yùn)行時(shí)同樣具有周期定時(shí)執(zhí)行的任務(wù)。同步控制需要把RTI周期調(diào)度函數(shù)與實(shí)裝軟件的周期任務(wù)進(jìn)行同步。在RTI周期調(diào)度函數(shù)開始時(shí)觸發(fā)實(shí)裝軟件的任務(wù)運(yùn)行信號(hào)量,任務(wù)結(jié)束后設(shè)置結(jié)束信號(hào)量通知RTI。如此采用信號(hào)量控制的方式與RTI的周期調(diào)度函數(shù)進(jìn)行同步,實(shí)現(xiàn)同步控制功能。

本文中同步控制函數(shù)有2組共4個(gè)。其中一組為部署在實(shí)裝軟件端的WaitingForEnterOnStep( )和ExitOnStep( )函數(shù),另一對(duì)為部署在RTI仿真集成框架周期調(diào)度函數(shù)OnStep()中的EnterOnStep( )和WaitingForExitOnStep( )函數(shù)。

其中EnterOnStep( )和ExitOnStep( )函數(shù)的實(shí)現(xiàn)主要是借助RTX的系統(tǒng)事件觸發(fā)函數(shù)RtSet-Event( )[14]。其功能是使括號(hào)內(nèi)的特定的事件激活。

而與之對(duì)應(yīng)的WaitingForEnterOnStep( )和WaitingForExitOnStep( )函數(shù)的實(shí)現(xiàn)主要是借助RTX的事件等待函數(shù)RtWaitForSingleObject( )。其功能是等待括號(hào)內(nèi)的特定事件處于激活狀態(tài)直到事件超時(shí)。

在此基礎(chǔ)上能夠?qū)崿F(xiàn)RTI的周期調(diào)度函數(shù)對(duì)實(shí)裝軟件的運(yùn)行周期進(jìn)行同步調(diào)度。WaitingForEnterOnStep( )部署在實(shí)裝軟件周期控制函數(shù)的周期開始之前, ExitOnStep( )函數(shù)部署在周期結(jié)束后。同理在RTI生成的仿真框架中的周期調(diào)度函數(shù)開始位置部署EnterOnStep( )函數(shù),在周期結(jié)束位置部署WaitingForExitOnStep( )函數(shù)。通過RTX事件控制函數(shù)就可以完成同步控制任務(wù),其同步過程如圖 5所示。

圖5 同步控制過程圖Fig.5 Procedure chart of synchronous control

(1) 實(shí)裝軟件中需要同步的任務(wù)在初始化之后進(jìn)入等待信號(hào)量狀態(tài);

(2) RTI周期調(diào)度函數(shù)中EnterOnStep激活處于等待狀態(tài)的任務(wù),實(shí)裝周期任務(wù)開始執(zhí)行;

(3) 周期任務(wù)執(zhí)行結(jié)束后由ExitOnStep通知RTI周期調(diào)度函數(shù);

(4) RTI周期調(diào)度函數(shù)接收到ExitOnStep信號(hào)量,向聯(lián)邦申請(qǐng)時(shí)間推進(jìn);

(5) RTI時(shí)間管理推進(jìn)仿真時(shí)間后繼續(xù)本同步過程。

4.2 循環(huán)等待機(jī)制

循環(huán)等待機(jī)制的功能是實(shí)現(xiàn)實(shí)裝軟件的運(yùn)行線程與仿真運(yùn)行的主線程之間相互協(xié)調(diào)。保證實(shí)裝軟件在運(yùn)行過程中與仿真執(zhí)行的主線程在運(yùn)行時(shí)間不一致時(shí)能夠統(tǒng)一調(diào)度,防止線程阻塞而影響仿真運(yùn)行。循環(huán)等待機(jī)制通過在RTI周期調(diào)度中獲得本成員節(jié)點(diǎn)的實(shí)裝軟件調(diào)度結(jié)束的標(biāo)志,但其它成員節(jié)點(diǎn)的調(diào)度并未結(jié)束時(shí)循環(huán)調(diào)用RTI標(biāo)準(zhǔn)接口的等待函數(shù)進(jìn)行等待。當(dāng)所有節(jié)點(diǎn)的實(shí)裝軟件都發(fā)出周期調(diào)度結(jié)束標(biāo)志后,循環(huán)等待任務(wù)結(jié)束,向RTI發(fā)出時(shí)間推進(jìn)請(qǐng)求。

4.3 運(yùn)行時(shí)間管理

基于VxWorks系統(tǒng)的實(shí)裝軟件在沒有硬授時(shí)設(shè)備時(shí)系統(tǒng)采用tick數(shù)作為任務(wù)運(yùn)行的時(shí)間參考標(biāo)志[15]。軟件移植的時(shí)候已經(jīng)采用RTX定時(shí)器的方式實(shí)現(xiàn)了一個(gè)硬實(shí)時(shí)的時(shí)鐘tick計(jì)數(shù)器,并設(shè)置有計(jì)數(shù)器的啟動(dòng)和停止的標(biāo)志位。

當(dāng)實(shí)裝軟件與HLA/RTI仿真平臺(tái)集成之后,軟件運(yùn)行的時(shí)間應(yīng)該以仿真實(shí)際執(zhí)行的時(shí)間為標(biāo)準(zhǔn),通過RTI統(tǒng)一進(jìn)行時(shí)間的推進(jìn)。而如果實(shí)裝軟件依然在運(yùn)行時(shí)按照本身系統(tǒng)時(shí)鐘的tick數(shù)執(zhí)行任務(wù),則會(huì)出現(xiàn)運(yùn)行時(shí)序與任務(wù)邏輯的錯(cuò)誤。本文采用的方法是通過控制實(shí)裝軟件時(shí)鐘tick計(jì)數(shù)器啟停的方法,在接入仿真系統(tǒng)后停止時(shí)鐘tick計(jì)數(shù)器的目的。

TicksRunning標(biāo)志位是控制時(shí)鐘tick計(jì)數(shù)器的標(biāo)志,其值為0時(shí)系統(tǒng)內(nèi)tick數(shù)不再隨物理時(shí)間進(jìn)行自加,值為1時(shí)系統(tǒng)tick數(shù)隨物理時(shí)間繼續(xù)執(zhí)行自加。該標(biāo)志位部署在實(shí)裝軟件同步控制函數(shù)前。同步控制函數(shù)發(fā)出激活實(shí)裝軟件周期任務(wù)事件之前將TicksRunning標(biāo)志位置0,在實(shí)裝軟件周期任務(wù)執(zhí)行結(jié)束事件之后將系統(tǒng)tick數(shù)加一個(gè)周期時(shí)間。如此部署后,實(shí)裝軟件內(nèi)部任務(wù)執(zhí)行時(shí)讀取的tick數(shù)實(shí)際上就是仿真任務(wù)執(zhí)行的時(shí)間。

5 系統(tǒng)應(yīng)用

本文中的適配中間件已經(jīng)成功的應(yīng)用在一個(gè)基于實(shí)裝軟件的分布式仿真系統(tǒng)中。系統(tǒng)組成如圖 6所示。

計(jì)算機(jī)A上的各個(gè)雷達(dá)軟件組成的小閉環(huán)系統(tǒng)運(yùn)行狀態(tài)正常,雷達(dá)主控軟件通過RTX輸出面板顯示軟件運(yùn)行狀態(tài)信息無異常無報(bào)錯(cuò)。計(jì)算機(jī)C上指控軟件和發(fā)射車軟件工作狀態(tài)正常,顯控顯示各軟件狀態(tài)更新正確。雷達(dá)系統(tǒng)能穩(wěn)定跟蹤目標(biāo),向指控發(fā)送目標(biāo)信息,指控系統(tǒng)判斷后發(fā)出打擊指令,完成攔截任務(wù)。系統(tǒng)整體運(yùn)行狀態(tài)與實(shí)際裝備狀態(tài)一致,證明軟件交互正確、時(shí)間管理正確、邏輯正常。

采用線程模式對(duì)同一仿真場(chǎng)景進(jìn)行20次重復(fù)試驗(yàn)并記錄。仿真虛擬時(shí)間需要750~800 s的情況下,仿真系統(tǒng)都可以在實(shí)際物理時(shí)間520~620 s完成仿真執(zhí)行。仿真加速比記錄如表1所示。系統(tǒng)平均加速比為1.37,證明系統(tǒng)具有一定超實(shí)時(shí)運(yùn)行能力。

圖6 典型應(yīng)用系統(tǒng)組成Fig.6 Structure of typical application system

次數(shù)加速比次數(shù)加速比11.26111.4021.23121.3931.36131.4541.48141.2451.53151.3361.35161.3171.38171.4281.42181.4091.38191.32101.45201.37

注:平均加速比:1.37

6 結(jié)束語

本文提出了一種以實(shí)裝軟件為基礎(chǔ)構(gòu)建HLA仿真系統(tǒng)的方法。重點(diǎn)分析了帶有仿真適配中間件的實(shí)裝軟件通信機(jī)制和時(shí)間管理機(jī)制。通過設(shè)計(jì)統(tǒng)一交互類協(xié)議實(shí)現(xiàn)了實(shí)裝軟件通信消息以交互類的形式通過RTI平臺(tái)進(jìn)行發(fā)送和接收的方法,并以同步控制機(jī)制和相應(yīng)的時(shí)間管理策略實(shí)現(xiàn)對(duì)實(shí)裝軟件與仿真平臺(tái)運(yùn)行時(shí)間的統(tǒng)一管理。最后由一套實(shí)裝軟件作為仿真節(jié)點(diǎn)接入到閉環(huán)仿真系統(tǒng)中的實(shí)際應(yīng)用驗(yàn)證了該方法的可行性和優(yōu)勢(shì)。未來可探索基于Windows系統(tǒng)的自主可控的集成中間件技術(shù)方案,提升本研究應(yīng)用深度。

猜你喜歡
同步控制中間件組件
無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
Kistler全新的Kitimer2.0系統(tǒng)組件:使安全氣囊和安全帶測(cè)試更加可靠和高效
基于速度觀測(cè)的雙余度電液舵機(jī)系統(tǒng)容錯(cuò)同步控制
一種嵌入式軟件組件更新方法的研究與實(shí)現(xiàn)
我國自主可控中間件發(fā)展研究
通用(OA)辦公自動(dòng)化系統(tǒng)的組件運(yùn)用
RFID中間件技術(shù)及其應(yīng)用研究
煤礦井下綜采面刮板運(yùn)輸機(jī)變頻驅(qū)動(dòng)的研究/翟海波
開啟橋智能控制系統(tǒng)及其關(guān)鍵技術(shù)
雙吊點(diǎn)液壓啟閉機(jī)同步控制的研究