摘 要: 隨著半實(shí)物仿真系統(tǒng)的發(fā)展,基于Windows+以太網(wǎng)的仿真模式不能滿足仿真系統(tǒng)對(duì)實(shí)時(shí)性的要求,為達(dá)到提高仿真系統(tǒng)整體實(shí)時(shí)性的目的,采用了基于RTX+反射內(nèi)存網(wǎng)的模式,改進(jìn)了仿真系統(tǒng)的運(yùn)行平臺(tái)和數(shù)據(jù)傳輸模式,改進(jìn)了仿真設(shè)備的接入方式,規(guī)劃了改進(jìn)模式后的仿真框架,搭建了該模式下的示例工程。該系統(tǒng)的仿真步長可以達(dá)到1 ms以內(nèi),能夠滿足半實(shí)物仿真的需求。
關(guān)鍵詞: 實(shí)時(shí)仿真; 反射內(nèi)存; 共享內(nèi)存; RTX驅(qū)動(dòng); 仿真控制
中圖分類號(hào): TN964?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)18?0065?04
0 引 言
傳統(tǒng)的靶場試驗(yàn)存在著試驗(yàn)組織過程復(fù)雜、試驗(yàn)成本代價(jià)高昂、試驗(yàn)易受自然客觀條件限制等問題。利用通用體系結(jié)構(gòu) (如 DIS,HLA,TENA)構(gòu)建仿真試驗(yàn)系統(tǒng)來模擬現(xiàn)實(shí)中的靶場試驗(yàn),可以解決部分傳統(tǒng)靶場試驗(yàn)中存在的問題[1]。HIT?GPTA平臺(tái)即是基于HLA體系結(jié)構(gòu)建立的通用仿真實(shí)驗(yàn)平臺(tái),該平臺(tái)可提高試驗(yàn)資源的互操作性、重用性和組合應(yīng)用能力,可以根據(jù)具體的任務(wù)需要將分布在各靶場、設(shè)施中的試驗(yàn)、仿真及高性能計(jì)算能力集成起來,構(gòu)成一個(gè)用于試驗(yàn)的開放式環(huán)境[2]。仿真試驗(yàn)系統(tǒng)存在著對(duì)高速、實(shí)時(shí)性等相關(guān)性能指標(biāo)的要求,而HIT?GPTA平臺(tái)為方便資源的集成與可重復(fù)利用,采用了Windows+以太網(wǎng)的模式進(jìn)行設(shè)計(jì),為提高HIT?GPTA平臺(tái)在仿真試驗(yàn)領(lǐng)域的應(yīng)用,需要提高平臺(tái)的實(shí)時(shí)性[3]。Windows+以太網(wǎng)的模式的優(yōu)點(diǎn)在于資源的重復(fù)利用及系統(tǒng)構(gòu)建方便,不足在于實(shí)時(shí)性受限于Windows系統(tǒng)的性能和以太網(wǎng)的傳輸速率。為擴(kuò)展平臺(tái)在實(shí)時(shí)仿真領(lǐng)域的應(yīng)用,需要擴(kuò)展一個(gè)實(shí)時(shí)的仿真支撐系統(tǒng)以提高仿真平臺(tái)的整體實(shí)時(shí)性[4]。RTX是美國Ardence公司開發(fā)的基于Windows操作系統(tǒng)的實(shí)時(shí)解決方案。RTX向Windows添加一個(gè)實(shí)時(shí)子系統(tǒng)(RTSS),實(shí)時(shí)性能由RTX子系統(tǒng)提供,具有完全自己獨(dú)立的實(shí)時(shí)性能強(qiáng)大的調(diào)度器[4]。反射內(nèi)存網(wǎng)內(nèi)每個(gè)節(jié)點(diǎn)上的反射內(nèi)存卡存儲(chǔ)器中都有其他節(jié)點(diǎn)的共享數(shù)據(jù)拷貝[5],相較于仿真系統(tǒng)的仿真步長而言,反射內(nèi)存網(wǎng)的數(shù)據(jù)傳輸延遲可以忽略。為提高HIT?GPTA平臺(tái)的實(shí)時(shí)性,本設(shè)計(jì)采用了RTX與Windows相結(jié)合的機(jī)制,將實(shí)時(shí)性要求較高的數(shù)據(jù)傳輸接口及處理算法在RTX內(nèi)實(shí)現(xiàn),提高仿真系統(tǒng)數(shù)據(jù)處理及調(diào)度的實(shí)時(shí)性[6],采用反射內(nèi)存網(wǎng)替代以太網(wǎng),提高了數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。該仿真模式在武器裝備的半實(shí)物仿真、調(diào)試、高覆蓋率測試等領(lǐng)域,具有廣闊的應(yīng)用前景。
1 實(shí)時(shí)仿真系統(tǒng)簡介
本設(shè)計(jì)中采用RTX+Windows的設(shè)計(jì)方式改進(jìn)了仿真系統(tǒng)算法及調(diào)度的實(shí)時(shí)性,采用了反射內(nèi)存網(wǎng)提高了節(jié)點(diǎn)之間數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,并為各種總線接口設(shè)計(jì)了RTX系統(tǒng)下的驅(qū)動(dòng)程序,提高設(shè)備接入的實(shí)時(shí)性。改進(jìn)后的設(shè)計(jì)如圖1所示,該實(shí)時(shí)系統(tǒng)包含以下幾個(gè)組成部分:平臺(tái)接口模塊、實(shí)時(shí)仿真組件、實(shí)時(shí)流程控制、設(shè)備驅(qū)動(dòng)接口、反射內(nèi)存網(wǎng)絡(luò)。平臺(tái)接口模塊承擔(dān)定義仿真類型、配置仿真參數(shù)、處理非實(shí)時(shí)數(shù)據(jù)、顯示仿真結(jié)果等任務(wù)。實(shí)時(shí)仿真組件運(yùn)行實(shí)時(shí)仿真算法,是實(shí)時(shí)仿真系統(tǒng)的主體。實(shí)時(shí)流程控制是仿真系統(tǒng)的控制中樞,用于控制仿真系統(tǒng)的執(zhí)行流程[7]。設(shè)備驅(qū)動(dòng)接口用于向仿真系統(tǒng)接入實(shí)物設(shè)備,使仿真系統(tǒng)具有了半實(shí)物仿真的能力。反射內(nèi)存網(wǎng)絡(luò)用于完成各仿真節(jié)點(diǎn)之間的數(shù)據(jù)交互。該系統(tǒng)的實(shí)時(shí)仿真部分采用Windows+RTX的設(shè)計(jì)模式,Windows部分對(duì)應(yīng)Win32進(jìn)程,為非實(shí)時(shí)進(jìn)程,完成非實(shí)時(shí)的仿真任務(wù);RTX部分對(duì)應(yīng)RTSS進(jìn)程,為實(shí)時(shí)進(jìn)程,完成實(shí)時(shí)仿真運(yùn)算,通過共享內(nèi)存與Win32進(jìn)程通信,獲取配置數(shù)據(jù)并更新發(fā)布數(shù)據(jù),通過反射內(nèi)存操作,完成與實(shí)時(shí)組件之間的訂購發(fā)布,同時(shí)接受流程控制組件的調(diào)度的推進(jìn)[8]。
對(duì)該系統(tǒng)各組成部分的功能進(jìn)行分析可以發(fā)現(xiàn),可以從兩個(gè)方面保證仿真系統(tǒng)實(shí)時(shí)性:一是建立一個(gè)完成實(shí)時(shí)仿真運(yùn)算的實(shí)時(shí)仿真子系統(tǒng);二是構(gòu)建實(shí)時(shí)數(shù)據(jù)傳輸鏈路,包括數(shù)據(jù)的傳輸、設(shè)備的接入等。
2 實(shí)時(shí)仿真子系統(tǒng)設(shè)計(jì)
實(shí)時(shí)仿真子系統(tǒng)包括仿真平臺(tái)接口、實(shí)時(shí)仿真設(shè)備、實(shí)時(shí)流程控制等幾個(gè)部分。
2.1 平臺(tái)接口模塊
圖1中非實(shí)時(shí)組件、本地通信代理、信息傳輸管理平臺(tái)等部分屬于仿真平臺(tái)接口模塊。仿真平臺(tái)接口提供參數(shù)的配置用戶接口界面,由用戶對(duì)仿真系統(tǒng)進(jìn)行配置,配置完成后生成仿真接口文件,供實(shí)時(shí)仿真組件加載和使用。此外,仿真平臺(tái)接口還承擔(dān)實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)的交互任務(wù),完成系統(tǒng)內(nèi)實(shí)時(shí)設(shè)備與非實(shí)時(shí)設(shè)備的交互。
仿真平臺(tái)的參數(shù)配置主要包含表1中的內(nèi)容。
2.2 實(shí)時(shí)仿真組件
實(shí)時(shí)仿真組件包含兩個(gè)進(jìn)程,該模板的Win32進(jìn)程為平臺(tái)組件,繼承自組件基類,提供與平臺(tái)的接口,RTSS進(jìn)程為實(shí)時(shí)進(jìn)程,運(yùn)行實(shí)時(shí)仿真算法,并讀寫反射內(nèi)存完成實(shí)時(shí)訂購發(fā)布。靜態(tài)建模完成后,由Win32進(jìn)程創(chuàng)建RTSS進(jìn)程,RTSS初始化完成后仿真組件準(zhǔn)備就緒,根據(jù)推進(jìn)命令及流程控制命令進(jìn)行相關(guān)仿真。實(shí)時(shí)仿真組件運(yùn)行流程如圖3所示。
仿真開始后RTSS進(jìn)程根據(jù)仿真節(jié)拍的順序進(jìn)行仿真,節(jié)拍開始時(shí)查詢仿真標(biāo)識(shí),當(dāng)所有高優(yōu)先級(jí)的組件仿真完成后,從共享內(nèi)存(本地仿真)或反射內(nèi)存(分布式仿真)中取出訂購數(shù)據(jù),進(jìn)行仿真計(jì)算;完成后將發(fā)布數(shù)據(jù)寫入反射內(nèi)存,根據(jù)抽樣間隔將數(shù)據(jù)抽點(diǎn)寫入共享內(nèi)存,交由Win32進(jìn)程發(fā)布;設(shè)置組件相關(guān)的仿真標(biāo)識(shí)。Win32進(jìn)程檢測共享內(nèi)存的更新狀態(tài),有數(shù)據(jù)更新時(shí)將所更新的數(shù)據(jù)發(fā)布到平臺(tái),供其他非實(shí)時(shí)組件訂購。
實(shí)時(shí)仿真組件的兩個(gè)進(jìn)程之間通過共享內(nèi)存通信,并通過互斥信號(hào)量來保證讀寫的正確進(jìn)行。每個(gè)仿真組件分別創(chuàng)建發(fā)布區(qū)和訂購區(qū)共享內(nèi)存,為發(fā)布區(qū)創(chuàng)建“雙事件”進(jìn)行互鎖,確保共享內(nèi)存的讀/寫安全與及時(shí);為訂購區(qū)創(chuàng)建互斥信號(hào)量確保讀/寫統(tǒng)一。
2.3 實(shí)時(shí)流程控制
實(shí)時(shí)流程控制是仿真系統(tǒng)的控制中樞,通過分析系統(tǒng)各組成部分的運(yùn)行狀態(tài)決定下一步的仿真動(dòng)作。基本的仿真命令有開始、初始化、同步、暫停、運(yùn)行、停止等命令,實(shí)時(shí)流程控制設(shè)計(jì)了開放式的接口,便于擴(kuò)展仿真控制命令。
靜態(tài)建模完成后,啟動(dòng)流程控制組件的實(shí)時(shí)進(jìn)程,讀取仿真信息文件,組件自身完成初始化并設(shè)置相關(guān)寄存器。然后按照流程控制的各個(gè)步驟完成發(fā)布流程控制命令,各設(shè)備根據(jù)具體的流程控制命令執(zhí)行相應(yīng)操作。實(shí)時(shí)流程控制組件運(yùn)行流程圖如圖4所示。
3 實(shí)時(shí)數(shù)據(jù)傳輸鏈路構(gòu)建
提高仿真系統(tǒng)實(shí)時(shí)性的另一個(gè)途徑是提高數(shù)據(jù)傳輸鏈路的實(shí)時(shí)性,這主要從兩個(gè)方面來提高,一是提高仿真實(shí)物設(shè)備接入的實(shí)時(shí)性;另一個(gè)是提高系統(tǒng)內(nèi)各節(jié)點(diǎn)之間數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性[9]。
3.1 實(shí)時(shí)設(shè)備驅(qū)動(dòng)
一般的實(shí)時(shí)仿真系統(tǒng)都會(huì)有實(shí)物設(shè)備接入系統(tǒng),為提高仿真系統(tǒng)的實(shí)時(shí)性,必須提高設(shè)備接入的實(shí)時(shí)性。實(shí)物設(shè)備是通過驅(qū)動(dòng)程序接入到仿真系統(tǒng)中的,Windows的實(shí)時(shí)性由于系統(tǒng)本身的調(diào)度機(jī)制難以達(dá)到實(shí)時(shí)系統(tǒng)的需求,必須為實(shí)物設(shè)備設(shè)計(jì)在RTX系統(tǒng)中的驅(qū)動(dòng)程序[10]。如圖1中所示,實(shí)物設(shè)備通過各種總線接口接入到上位機(jī)的系統(tǒng)中,仿真組件的RTSS進(jìn)程通過訪問設(shè)備驅(qū)動(dòng)程序完成對(duì)設(shè)備的控制。RTX設(shè)備驅(qū)動(dòng)可直接使用Visual Studio開發(fā)工具開發(fā),工程向?qū)е苯由沈?qū)動(dòng)框架程序,開發(fā)簡單且開發(fā)周期較短。
3.2 實(shí)時(shí)數(shù)據(jù)傳輸
實(shí)時(shí)支撐子系統(tǒng)的數(shù)據(jù)傳輸采用反射內(nèi)存網(wǎng)完成。反射內(nèi)存網(wǎng)內(nèi)每個(gè)節(jié)點(diǎn)的存儲(chǔ)器中都有其他節(jié)點(diǎn)的共享數(shù)據(jù)拷貝,相較于上位機(jī)的仿真節(jié)拍,數(shù)據(jù)的傳輸延遲可以忽略。通過反射內(nèi)存,各個(gè)仿真系統(tǒng)可以及時(shí)地獲取仿真控制命令和仿真數(shù)據(jù)。使用反射內(nèi)存進(jìn)行仿真節(jié)點(diǎn)的數(shù)據(jù)傳輸可以極大地縮小數(shù)據(jù)鏈路的延遲,保證仿真系統(tǒng)的整體實(shí)時(shí)性。
4 測試結(jié)果及分析
為對(duì)比改進(jìn)的結(jié)果,對(duì)含有實(shí)時(shí)支撐平臺(tái)和不含實(shí)時(shí)支撐平臺(tái)的仿真系統(tǒng)進(jìn)行了測試,測試流程按照仿真周期遞減開始測試,結(jié)果如表2所示。從測試結(jié)果可知,仿真系統(tǒng)中加入實(shí)時(shí)支撐子系統(tǒng)后可以極大地提高仿真系統(tǒng)整體的實(shí)時(shí)性,彌補(bǔ)了HIT?GPTA平臺(tái)的一個(gè)缺陷。
5 結(jié) 語
本文對(duì)組成仿真系統(tǒng)的各個(gè)環(huán)節(jié)的實(shí)時(shí)性進(jìn)行了分析,從軟件、驅(qū)動(dòng)、硬件三個(gè)層次改進(jìn)仿真系統(tǒng)的各組成部分,縮小了仿真延遲的最大瓶頸,提高了仿真系統(tǒng)的整體實(shí)時(shí)性。
參考文獻(xiàn)
[1] 金暑鈞,趙占偉.通用試驗(yàn)體系支撐平臺(tái)下的反射內(nèi)存網(wǎng)通信組件開發(fā)[J].自動(dòng)化技術(shù)與應(yīng)用,2012(5):38?41.
[2] 丘源.虛擬試驗(yàn)支撐平臺(tái)任務(wù)管理軟件開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[3] 孫亞紅.基于Windows平臺(tái)的分布式實(shí)時(shí)仿真系統(tǒng)[J].電子科技,2012,25(3):7?9.
[4] 袁剛,張文杰,亢原平,等.基于RTX的分布式平臺(tái)級(jí)仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2011,28(9):25?27.
[5] 顧穎彥.反射內(nèi)存網(wǎng)實(shí)時(shí)通信技術(shù)的研究[J].計(jì)算機(jī)工程,2002,28(7):69?72.
[6] 吳凡,杜承烈,尤濤,等.基于RTX的復(fù)雜虛擬試驗(yàn)分層實(shí)時(shí)網(wǎng)絡(luò)環(huán)境研究[J].計(jì)算機(jī)測量與控制,2009,17(6):13?15.
[7] 董景渲.光纖反射內(nèi)存網(wǎng)在半實(shí)物仿真系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)工程應(yīng)用技術(shù),2011(5):18?20.
[8] 王治家.實(shí)時(shí)分布仿真環(huán)境研究:實(shí)時(shí)分布仿真環(huán)境下運(yùn)行支撐框架的研究與實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2005.
[9] 姚新宇,黃柯棣.仿真中的時(shí)間和實(shí)時(shí)仿真[J].系統(tǒng)仿真學(xué)報(bào),1999,11(6):50?53.
[10] 武文峰,張泓.基于RTX的PXI板卡驅(qū)動(dòng)程序開發(fā)[J].航空兵器,2012(3):51?54.
[11] 尚守衛(wèi),胡健,龔代圣.基于工業(yè)網(wǎng)絡(luò)的分布式時(shí)鐘同步算法研究[J].現(xiàn)代電子技術(shù),2012,35(23):55?58.