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