引言
傳統(tǒng)的試驗存在著試驗組織過程復(fù)雜、試驗成本代價高昂、試驗易受自然客觀條件限制等問題。利用通用體系結(jié)構(gòu)(如DIS,HLA,TENA)構(gòu)建仿真試驗系統(tǒng)來模擬現(xiàn)實中的靶場試驗,可以解決部分傳統(tǒng)靶場試驗中存在的問題。HIT-GPTA平臺即是基于HLA體系結(jié)構(gòu)建立的通用仿真實驗平臺,該平臺可提高試驗資源的互操作性、重用性和組合應(yīng)用能力,可以根據(jù)具體的任務(wù)需要將分布在各靶場、設(shè)施中的試驗、仿真及高性能計算能力集成起來,構(gòu)成一個用于試驗的開放式環(huán)境。
仿真試驗系統(tǒng)存在著對高速、實時性等相關(guān)性能指標(biāo)的要求,而HIT-GPTA平臺為方便資源的集成與可重復(fù)利用,采用了Windows+以太網(wǎng)的模式進(jìn)行設(shè)計,為提高HIT-GPTA平臺在仿真試驗領(lǐng)域的應(yīng)用,需要提高平臺的實時性。Windows+以太網(wǎng)的模式的優(yōu)點在于資源的重復(fù)利用及系統(tǒng)構(gòu)建方便,不足在于實時性受限于Windows系統(tǒng)的性能和以太網(wǎng)的傳輸速率。為擴(kuò)展平臺在實時仿真領(lǐng)域的應(yīng)用,需要擴(kuò)展一個實時的仿真支撐系統(tǒng)以提高仿真平臺的整體實時性。RTX是美國Ardence公司開發(fā)的基于Windows操作系統(tǒng)的實時解決方案。RTX 向Windows 添加一個實時子系統(tǒng)(RTSS),實時性能由RTX 子系統(tǒng)提供,具有完全自己獨立的實時性能強(qiáng)大的調(diào)度器。反射內(nèi)存網(wǎng)內(nèi)每個節(jié)點上的反射內(nèi)存卡存儲器中都有其他節(jié)點的共享數(shù)據(jù)拷貝,相較于仿真系統(tǒng)的仿真步長而言,反射內(nèi)存網(wǎng)的數(shù)據(jù)傳輸延遲可以忽略。為提高HIT-GPTA平臺的實時性,本設(shè)計采用了RTX與Windows相結(jié)合的機(jī)制,將實時性要求較高的數(shù)據(jù)傳輸接口及處理算法在RTX 內(nèi)實現(xiàn),提高仿真系統(tǒng)數(shù)據(jù)處理及調(diào)度的實時性,采用反射內(nèi)存網(wǎng)替代以太網(wǎng),提高了數(shù)據(jù)傳輸?shù)膶崟r性。該仿真模式在武器裝備的半實物仿真、調(diào)試、高覆蓋率測試等領(lǐng)域,具有廣闊的應(yīng)用前景。
1 實時仿真系統(tǒng)簡介
本設(shè)計中采用RTX+Windows的設(shè)計方式改進(jìn)了仿真系統(tǒng)算法及調(diào)度的實時性,采用了反射內(nèi)存網(wǎng)提高了節(jié)點之間數(shù)據(jù)傳輸?shù)膶崟r性,并為各種總線接口設(shè)計了RTX系統(tǒng)下的驅(qū)動程序,提高設(shè)備接入的實時性。改進(jìn)后的設(shè)計如圖1所示,該實時系統(tǒng)包含以下幾個組成部分:平臺接口模塊、實時仿真組件、實時流程控制、設(shè)備驅(qū)動接口、反射內(nèi)存網(wǎng)絡(luò)。平臺接口模塊承擔(dān)定義仿真類型、配置仿真參數(shù)、處理非實時數(shù)據(jù)、顯示仿真結(jié)果等任務(wù)。實時仿真組件運(yùn)行實時仿真算法,是實時仿真系統(tǒng)的主體。實時流程控制是仿真系統(tǒng)的控制中樞,用于控制仿真系統(tǒng)的執(zhí)行流程。設(shè)備驅(qū)動接口用于向仿真系統(tǒng)接入實物設(shè)備,使仿真系統(tǒng)具有了半實物仿真的能力。反射內(nèi)存網(wǎng)絡(luò)用于完成各仿真節(jié)點之間的數(shù)據(jù)交互。該系統(tǒng)的實時仿真部分采用Windows+RTX的設(shè)計模式,Windows部分對應(yīng)Win32進(jìn)程,為非實時進(jìn)程,完成非實時的仿真任務(wù);RTX部分對應(yīng)RTSS進(jìn)程,為實時進(jìn)程,完成實時仿真運(yùn)算,通過共享內(nèi)存與Win32進(jìn)程通信,獲取配置數(shù)據(jù)并更新發(fā)布數(shù)據(jù),通過反射內(nèi)存操作,完成與實時組件之間的訂購發(fā)布,同時接受流程控制組件的調(diào)度的推進(jìn)。
對該系統(tǒng)各組成部分的功能進(jìn)行分析可以發(fā)現(xiàn),可以從兩個方面保證仿真系統(tǒng)實時性:一是建立一個完成實時仿真運(yùn)算的實時仿真子系統(tǒng);二是構(gòu)建實時數(shù)據(jù)傳輸鏈路,包括數(shù)據(jù)的傳輸、設(shè)備的接入等。
2 實時仿真子系統(tǒng)設(shè)計
實時仿真子系統(tǒng)包括仿真平臺接口、實時仿真設(shè)備、實時流程控制等幾個部分。
2.1 平臺接口
模塊圖1 中非實時組件、本地通信代理、信息傳輸管理平臺等部分屬于仿真平臺接口模塊。仿真平臺接口提供參數(shù)的配置用戶接口界面,由用戶對仿真系統(tǒng)進(jìn)行配置,配置完成后生成仿真接口文件,供實時仿真組件加載和使用。此外,仿真平臺接口還承擔(dān)實時系統(tǒng)與非實時系統(tǒng)的交互任務(wù),完成系統(tǒng)內(nèi)實時設(shè)備與非實時設(shè)備的交互。
仿真平臺的參數(shù)配置主要包含表1中的內(nèi)容。
仿真優(yōu)先級規(guī)定了各仿真節(jié)點的執(zhí)行次序。優(yōu)先級設(shè)定如下:不同設(shè)備可以處于同一優(yōu)先級,執(zhí)行權(quán)限相同,無先后順序要求,但是低優(yōu)先級的設(shè)備要等待高優(yōu)先級設(shè)備全部執(zhí)行完成后才能獲得執(zhí)行權(quán)限。本地仿真時采用共享內(nèi)存作為仿真系統(tǒng)各節(jié)點交互數(shù)據(jù)的中介,分布式仿真時采用反射內(nèi)存作為各節(jié)點之間的數(shù)據(jù)傳輸途徑。兩種方式的配置方式類似,可做統(tǒng)一處理。反射內(nèi)存結(jié)構(gòu)設(shè)計如圖2所示。
2.2 實時仿真組件
實時仿真組件包含兩個進(jìn)程,該模板的Win32進(jìn)程為平臺組件,繼承自組件基類,提供與平臺的接口,RTSS進(jìn)程為實時進(jìn)程,運(yùn)行實時仿真算法,并讀寫反射內(nèi)存完成實時訂購發(fā)布。靜態(tài)建模完成后,由Win32進(jìn)程創(chuàng)建RTSS進(jìn)程,RTSS初始化完成后仿真組件準(zhǔn)備就緒,根據(jù)推進(jìn)命令及流程控制命令進(jìn)行相關(guān)仿真。實時仿真組件運(yùn)行流程如圖3所示。
仿真開始后RTSS進(jìn)程根據(jù)仿真節(jié)拍的順序進(jìn)行仿真,節(jié)拍開始時查詢仿真標(biāo)識,當(dāng)所有高優(yōu)先級的組件仿真完成后,從共享內(nèi)存(本地仿真)或反射內(nèi)存(分布式仿真)中取出訂購數(shù)據(jù),進(jìn)行仿真計算;完成后將發(fā)布數(shù)據(jù)寫入反射內(nèi)存,根據(jù)抽樣間隔將數(shù)據(jù)抽點寫入共享內(nèi)存,交由Win32 進(jìn)程發(fā)布;設(shè)置組件相關(guān)的仿真標(biāo)識。Win32進(jìn)程檢測共享內(nèi)存的更新狀態(tài),有數(shù)據(jù)更新時將所更新的數(shù)據(jù)發(fā)布到平臺,供其他非實時組件訂購。
實時仿真組件的兩個進(jìn)程之間通過共享內(nèi)存通信,并通過互斥信號量來保證讀寫的正確進(jìn)行。每個仿真組件分別創(chuàng)建發(fā)布區(qū)和訂購區(qū)共享內(nèi)存,為發(fā)布區(qū)創(chuàng)建“雙事件”進(jìn)行互鎖,確保共享內(nèi)存的讀/寫安全與及時;為訂購區(qū)創(chuàng)建互斥信號量確保讀/寫統(tǒng)一。
2.3 實時流程控制
實時流程控制是仿真系統(tǒng)的控制中樞,通過分析系統(tǒng)各組成部分的運(yùn)行狀態(tài)決定下一步的仿真動作?;镜姆抡婷钣虚_始、初始化、同步、暫停、運(yùn)行、停止等命令,實時流程控制設(shè)計了開放式的接口,便于擴(kuò)展仿真控制命令。
靜態(tài)建模完成后,啟動流程控制組件的實時進(jìn)程,讀取仿真信息文件,組件自身完成初始化并設(shè)置相關(guān)寄存器。然后按照流程控制的各個步驟完成發(fā)布流程控制命令,各設(shè)備根據(jù)具體的流程控制命令執(zhí)行相應(yīng)操作。實時流程控制組件運(yùn)行流程圖如圖4所示。
3 實時數(shù)據(jù)傳輸鏈路構(gòu)建
提高仿真系統(tǒng)實時性的另一個途徑是提高數(shù)據(jù)傳輸鏈路的實時性,這主要從兩個方面來提高,一是提高仿真實物設(shè)備接入的實時性;另一個是提高系統(tǒng)內(nèi)各節(jié)點之間數(shù)據(jù)傳輸?shù)膶崟r性。
3.1 實時設(shè)備驅(qū)動
一般的實時仿真系統(tǒng)都會有實物設(shè)備接入系統(tǒng),為提高仿真系統(tǒng)的實時性,必須提高設(shè)備接入的實時性。
實物設(shè)備是通過驅(qū)動程序接入到仿真系統(tǒng)中的,Win-dows的實時性由于系統(tǒng)本身的調(diào)度機(jī)制難以達(dá)到實時系統(tǒng)的需求,必須為實物設(shè)備設(shè)計在RTX 系統(tǒng)中的驅(qū)動程序。如圖1中所示,實物設(shè)備通過各種總線接口接入到上位機(jī)的系統(tǒng)中,仿真組件的RTSS進(jìn)程通過訪問設(shè)備驅(qū)動程序完成對設(shè)備的控制。RTX設(shè)備驅(qū)動可直使用Visual Studio開發(fā)工具開發(fā),工程向?qū)е苯由沈?qū)動框架程序,開發(fā)簡單且開發(fā)周期較短。
3.2 實時數(shù)據(jù)傳輸
實時支撐子系統(tǒng)的數(shù)據(jù)傳輸采用反射內(nèi)存網(wǎng)完成。反射內(nèi)存網(wǎng)內(nèi)每個節(jié)點的存儲器中都有其他節(jié)點的共享數(shù)據(jù)拷貝,相較于上位機(jī)的仿真節(jié)拍,數(shù)據(jù)的傳輸延遲可以忽略。通過反射內(nèi)存,各個仿真系統(tǒng)可以及時地獲取仿真控制命令和仿真數(shù)據(jù)。使用反射內(nèi)存進(jìn)行仿真節(jié)點的數(shù)據(jù)傳輸可以極大地縮小數(shù)據(jù)鏈路的延遲,保證仿真系統(tǒng)的整體實時性。
4 測試結(jié)果及分析
為對比改進(jìn)的結(jié)果,對含有實時支撐平臺和不含實時支撐平臺的仿真系統(tǒng)進(jìn)行了測試,測試流程按照仿真周期遞減開始測試,結(jié)果如表2所示。
從測試結(jié)果可知,仿真系統(tǒng)中加入實時支撐子系統(tǒng)后可以極大地提高仿真系統(tǒng)整體的實時性,彌補(bǔ)了HIT-GPTA平臺的一個缺陷。
5 結(jié)語
本文對組成仿真系統(tǒng)的各個環(huán)節(jié)的實時性進(jìn)行了分析,從軟件、驅(qū)動、硬件三個層次改進(jìn)仿真系統(tǒng)的各組成部分,縮小了仿真延遲的最大瓶頸,提高了仿真系統(tǒng)的整體實時性。
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3541瀏覽量
88622 -
HLA
+關(guān)注
關(guān)注
0文章
18瀏覽量
10778 -
實時仿真
+關(guān)注
關(guān)注
0文章
23瀏覽量
8653
發(fā)布評論請先 登錄
相關(guān)推薦
評論