岳 超,董國才,喻 戈,張健楠(中國兵器工業第203研究所,西安 710065)
基于RTX的導彈半實物仿真系統設計*
岳超,董國才,喻戈,張健楠
(中國兵器工業第203研究所,西安710065)
在導彈半實物仿真系統中,精確定時和數據同步是保證系統實時性的關鍵因素。傳統的Windows操作系統實時性較差,從而給半實物仿真試驗帶來了諸多不確定因素。文中基于Windows平臺引入硬實時系統解決方案RTX(real-time extension),通過共享內存方式實現了WIN32進程和RTX進程之間的數據交互,并使用MFC編寫了各分系統軟件。該設計方法在某型導彈半實物仿真試驗中得到應用,試驗結果與理論計算高度一致,并且整個系統可靠穩定,能夠滿足系統對實時性和確定性的要求。
半實物仿真;RTX;共享內存;實時系統
傳統的Windows操作系統在優秀的界面設計,較強的通用功能,良好的人機交互等方面發揮了重要作用,但隨著半實物仿真技術對實時性與可操作性的要求越來越高,Windows對于底層數據處理存在優先級太少,不確定的線程調度及優先級倒置等問題,讓其難以滿足導彈半實物仿真系統對高實時性的要求[1]。
文中引入RTX實時開發技術,在保留Windows系統傳統的優勢基礎上,解決了其實時性較弱的問題。RTX子系統RTSS能夠充分利用Windows系統各種通用資源、大量標準API函數,為用戶提供了良好的實時控制性能和高效的可擴展性。因此在導彈半實物仿真系統設計中可以采用Win32進程實現圖形顯示、數據存儲等非實時性操作,利用RTSS進程完成控制模型實時解算、數據轉換與采集等實時任務。
在同一硬件平臺上同時完成這兩種進程任務需要完善的數據交互機制才能保證系統設計的可靠性,因此作為不同進程間通信的橋梁,共享內存的訪問與操作顯得尤為重要。針對導彈半實物仿真的時序要求,文中采用兩種不同的共享內存訪問機制實現了多進程間數據交互,通過調用RTX高精度定時和收發數據線程完成了與硬件實物之間的數據通信,有效的保證了仿真系統的高實時性和穩定性。在此基礎上設計了導彈半實物仿真軟件,通過對彈載計算機單仿驗證了此系統設計的合理性和正確性。
RTX(real-time extension)是目前Windows平臺唯一基于軟件的硬實時擴展子系統。其具有開發周期短,成本低,支持VC++6.0開發環境等優點。RTX并不對Windows系統本身進行任何封裝或修改,而是通過在HAL層(硬件抽象層)增加實時HAL擴展來實現搶占式實時任務的管理和調度,增強了Windows系統的實時能力[2]。其主要優點如下:
1)高精度時鐘和定時器:RTX定時器時鐘分辨率為100 ns,最低定時器周期為100 μs。而Windows定時器時鐘分辨率為1 ms。
2)進程和線程:RTX最高支持1 000個獨立的進程,每個進程下可以運行的線程數量不受限制,且RTX線程優先級都高于Win32線程。
3)進程間通訊機制:RTX通過進程間通訊IPC機制實現RTSS進程與Win32進程之間的數據交互。
4)實時網絡通信:RTX支持RT-TCP/IP及VMIC發射內存等實時網絡通信。
半實物仿真是指硬件在回路的仿真,即需要真實硬件參與到模型解算回路中,以達到檢驗參試硬件的效果。在與硬件進行控制信息交互的過程中,不僅需要良好的可操作性,更要保證系統的高實時性,基于Windows平臺的實時擴展子系統RTX很好的解決了這方面的問題。它既保留了Windows強大通用功能,又提供了對內存的精準控制,能確保高效的實時控制性、可擴展性和穩定性。同時采用高速的IPC通信和同步機制,能夠使RTX快速準確的實現與Windows之間的數據交換[3]。
常見的IPC通信和同步機制包括:共享內存、置事件、管道、消息隊列等。文中采用共享內存方式進行Win32和RTSS不同進程間的數據交互,利用置事件的方式控制跨進程間線程的有序進行,從而確保整個仿真流程的高實時性和可靠性。根據導彈半實物仿真的時序要求,需要創建兩片共享內存。在仿真開始裝訂參數時,Win32進程要向RTSS進程傳遞控制信息,此時Win32進程對該片共享內存僅有寫的權限,RTSS進程則僅有讀的權限。在仿真開始階段,RTSS進程則要將實時解算的結果通過共享內存傳到Win32進程中顯示并保存,此時RTSS進程則僅有寫的權限,Win32進程對該片內存僅有讀的權限[4]。在此過程中引用IPC事件同步機制,保證了在對同一片共享內存進行讀寫操作的有序進行。具體流程見圖1所示。
圖1介紹了兩種常用的創建和打開共享內存的方法。共享內存可由Win32和RTX進程任意一方創建,另外一方打開。在從界面給RTSS實時進程裝訂仿真模型初始參數時,首先由RTSS進程下的Rtd-DriverRegister函數創建共享內存及參數變量結構體。Win32進程則會調用RtdDeviceOpen函數打開此共享內存,并通過RtdDeviceTransfer函數將初始參數結構體指針傳遞給共享內存,進而將初始參數結構體內容復制到共享內存中,并在仿真開始時利用置事件的方式通知RTSS進程共享內存中數據已準備好。其中采用了互斥、通知機制,確保數據同步單向傳輸。RTSS進程收到仿真開始事件通知后,會將共享內存中的數據復制到利用Calloc指令申請的緩存區域中,在RTX下模型解算中調用此內存區域參數即可。此過程稱為Win32數據下傳到RTX,下傳方式通常適應于單次單向數據量較少的傳輸。

圖1 共享內存數據交互原理
在仿真開始后,RTSS進程要將模型實時解算結果周期性的發送到Win32界面上顯示并保存,在RTX運行主程序中打開事先在Win32進程中已創建好的共享內存,并獲得共享內存指針,當單個周期數據解算完成之后,直接操作指針將數據寫入共享內存,同時置事件通知Win32進程執行數據顯示及保存線程,完成RTX到Win32的數據上傳。上傳方式通常適應于周期性數據量較大的傳輸。
3.1仿真系統基本結構
此次半實物仿真系統以彈載計算機單獨參與仿真為例,即只有彈載計算機作為實物硬件參與到整個系統回路中,模型解算所需的輸入量均由仿真計算機提供,并由接口計算機完成仿真計算機與彈載計算機之間實時數據交互。為了保證整個系統的高實時性,接口計算機在讀取仿真計算機數據時采用VMIC反射內存網實時傳輸,其傳輸速率高,抗干擾能力強,支持中斷傳輸。本系統采用GE公司的VMICPCI-5565反射內存網卡構建了星型拓撲結構網絡。在接口計算機與彈載計算機進行數據傳輸時采用RS422串口通信,其采用差分傳輸,抗干擾能力強,支持點對多的雙向通信。整個系統見圖2所示。

圖2 實時仿真系統基本構架
在彈載計算機單獨參與仿真環節中,仿真計算機使用的導彈控制模型與彈載計算機中的一致,且在試驗中,仿真計算機控制模型根據其動力學和運動學方程生成的慣導位置、角度信息和導引頭的框架角、視線角速度等信息實時注入到彈載計算機中參與控制模型解算并得到控制指令,控制導彈閉環飛行。同時仿真計算機也利用本機控制模型解算出當前時刻的控制指令,通過與彈載計算機解算指令對比,達到了驗證其控制模型的目的。整個試驗過程中彈載計算機和仿真計算機控制模型的輸入量同源,保證了彈載計算機單獨參與仿真試驗的單一變量性。
接口計算機為仿真計算機與彈載計算機搭建數據交互的橋梁,在仿真過程中,仿真計算機RTX進程啟動1 ms定時器將慣導和導引頭信息通過VMIC實時網傳向接口計算機,接口計算機RTX定時器按照5 ms周期實時讀取該浮點數據,并將其按照通訊協議轉換為十六進制數,通過RS422串口注入到彈載計算機進行模型解算,接口計算機在RTSS進程中接收線程實時掃描彈載計算機輸出的RS422串口信號,一旦有彈載計算機數據回傳則將其轉換并發送到VMIC實時網中,仿真計算機讀到回傳數據將結果實時顯示到界面上。整個系統的延遲在微秒級別,完全符合實時系統設計要求。
3.2仿真軟件設計流程
在導彈半實物仿真中,導彈擊發之前需要通過模擬發控對彈載計算機裝訂初始諸元參數,此時需要將發控界面上的信息通過共享內存下傳到RTSS進程中,并利用置事件的方式通知RTSS進程開啟,進而就可以調用RTSS下高精度定時器嚴格按照導彈發射時序性將發控信息通過RS422串口注入到彈載計算機中,并通過RTSS接收數據線程實時接收反饋信息,判斷其滿足導彈發射條件則可擊發。
在導彈擊發之后,接口計算機控制固態繼電器通斷產生離軌信號,同時將離軌信號通過VMIC實時光纖網發給仿真計算機,保證了仿真計算機和彈載計算機模型解算的同時進行。在試驗過程中,仿真計算機進行控制模型解算,產生的導引頭和慣導信息通過接口計算機RTSS進程實時轉換成十六進制數并調用高精度定時器注入到彈載計算機中,同時通過RS422串口采集彈載計算機模型的解算結果,在RTSS實時接收數據線程中將其轉換為浮點數并上傳到共享內存,Win32進程接收到事件通知后則利用T-Chart控件實時顯示解算結果曲線并保存數據。當仿真計算機模型解算結束后則會在VMIC實時網發布結束指令,接口計算機讀到結束指令后通過繼電器控制彈載計算機模型解算結束。并停止轉換和采集數據,清理共享內存緩存。仿真軟件設計流程見圖3所示。

圖3 實時系統仿真軟件設計流程
3.3仿真結果及分析
本次試驗通過分析Win32和RTX進程間數據交互的關系,針對導彈半實物仿真時序要求,設計了實時系統仿真軟件。并基于某型導彈彈載計算機單獨參與仿真試驗得到如下結果。
通過圖4分析可以看到仿真時間連續可靠,無任何丟幀現象。充分證明了基于RTX設計的數據轉換及采集軟件完全滿足系統對實時性的要求。

圖6 彈載計算機時間周期
由圖5和圖6統計分析可以得出RTX下1 ms和5 ms定時周期性能如表1所示。

表1 RTX定時器統計值
通過表1可以看出RTX下1 ms和5 ms定時周期最大偏差不到1 μs,最大偏差率小于千分之一,完全滿足半實物仿真系統對實時性的要求。由表1也可以得出:定時精度越高其偏差越大。

圖7 模擬導引頭數據與彈載計算機輸出對比
圖7中藍線表示仿真計算機1 ms周期性的向VMIC實時網發送模擬導引頭信息,黑線表示接口計算機按照5 ms周期采集轉換該數據并注入到彈載計算機中,紅線表示彈載計算機輸出其采集到的模擬導引頭注入信息。通過對比可以得出:接口計算機完全按照5 ms周期給彈載計算機注入相關信息,數據穩定且準確。

圖8 仿真計算機指令與彈載計算機遙測指令對比
通過對比可以看出:彈載計算機遙測指令和仿真計算機指令高度一致,充分驗證了彈載計算機控制模型的正確性和穩定性。
文中通過兩種方式闡述了Win32進程和RTX進程之間創建和打開共享內存的方法,并針對不同的通信內容分析了兩種方法的優缺點,將Win32良好的人機交互特點和RTX高效實時性結合起來實現了基于RTX的導彈半實物仿真系統設計,并結合具體例案分析了彈載計算機單獨參與仿真環節中這兩種方法的應用,通過結果數據分析得出此方法能夠完全滿足半實物仿真系統對實時性的要求,并取得了大量的工程應用和實踐。
[1]王偉志,襲著有,王贄.基于RTX實時仿真系統的設計與實現[J].電子設計工程,2013,21(12):24-27.
[2]韓玉芹.基于RTX子系統的導彈試驗實時測控系統研發[D].西安:西安電子科技大學,2013.
[3]王豐,劉娜,肖雅靜,等.RTX在實時控制系統中的應用[J].電子專用設備與技術,2012,214(7):40-43.
[4]孫繼紅.RTX技術在半實物仿真中的應用及開發[J].計算機仿真,2010,27(8):83-86.
[5]黃鍵,宋曉,薛順虎.RTX平臺下實時仿真系統的設計方法[J].計算機應用與軟件,2009,26(4):167-169.
[6]于繼超,劉經宇.基于RTX的工程飛行模擬器數據采集與存儲系統設計[J].系統仿真技術,2014,10(1):73-80.
[7]Ardence公司.RTX技術白皮書[Z].北京航天捷越(美斯比)科技有限公司,譯,2004.
Design of Missile Hardware-in-loop Simulation System Based on RTX
YUE Chao,DONG Guocai,YU Ge,ZHANG Jiannan
(No.203 Research Institute of China Ordnance Industries,Xi’an 710065,China)
In hardware-in-the-loop simulation system of missile,accurate timing and data synchronization are key factors for guaranteeing performance of real-time system.The traditional Windows operating system brings many uncertain factors to the Hardware-in-loop simulation test due to limitation in real-time function.In this paper,RTX based on Windows platform was introducesd as one solution of strong real-time system.It realizes data interaction between RTX and Windows processes through the method of shared memory,and the subsystem softwares were completed by MFC based on VC++6.0.The proposed method has been applied in missile hardware-in-loop simulation test.The test results are consistent with theoretical calculations,demonstrating the whole system is reliable and stable.As a result,the method proposed in this paper can satisfy system requirements of real-time and accuracy.
hardware-in-loop simulation;RTX;shared memory;real-time system
TP391.9
A
10.15892/j.cnki.djzdxb.2016.01.005
2015-10-28
岳超(1990-),男,陜西渭南人,助理工程師,碩士研究生,研究方向:半實物仿真技術。