岳 超,董國才,喻 戈,張健楠(中國兵器工業(yè)第203研究所,西安 710065)
基于RTX的導彈半實物仿真系統(tǒng)設計*
岳超,董國才,喻戈,張健楠
(中國兵器工業(yè)第203研究所,西安710065)
在導彈半實物仿真系統(tǒng)中,精確定時和數(shù)據(jù)同步是保證系統(tǒng)實時性的關鍵因素。傳統(tǒng)的Windows操作系統(tǒng)實時性較差,從而給半實物仿真試驗帶來了諸多不確定因素。文中基于Windows平臺引入硬實時系統(tǒng)解決方案RTX(real-time extension),通過共享內存方式實現(xiàn)了WIN32進程和RTX進程之間的數(shù)據(jù)交互,并使用MFC編寫了各分系統(tǒng)軟件。該設計方法在某型導彈半實物仿真試驗中得到應用,試驗結果與理論計算高度一致,并且整個系統(tǒng)可靠穩(wěn)定,能夠滿足系統(tǒng)對實時性和確定性的要求。
半實物仿真;RTX;共享內存;實時系統(tǒng)
傳統(tǒng)的Windows操作系統(tǒng)在優(yōu)秀的界面設計,較強的通用功能,良好的人機交互等方面發(fā)揮了重要作用,但隨著半實物仿真技術對實時性與可操作性的要求越來越高,Windows對于底層數(shù)據(jù)處理存在優(yōu)先級太少,不確定的線程調度及優(yōu)先級倒置等問題,讓其難以滿足導彈半實物仿真系統(tǒng)對高實時性的要求[1]。
文中引入RTX實時開發(fā)技術,在保留Windows系統(tǒng)傳統(tǒng)的優(yōu)勢基礎上,解決了其實時性較弱的問題。RTX子系統(tǒng)RTSS能夠充分利用Windows系統(tǒng)各種通用資源、大量標準API函數(shù),為用戶提供了良好的實時控制性能和高效的可擴展性。因此在導彈半實物仿真系統(tǒng)設計中可以采用Win32進程實現(xiàn)圖形顯示、數(shù)據(jù)存儲等非實時性操作,利用RTSS進程完成控制模型實時解算、數(shù)據(jù)轉換與采集等實時任務。
在同一硬件平臺上同時完成這兩種進程任務需要完善的數(shù)據(jù)交互機制才能保證系統(tǒng)設計的可靠性,因此作為不同進程間通信的橋梁,共享內存的訪問與操作顯得尤為重要。針對導彈半實物仿真的時序要求,文中采用兩種不同的共享內存訪問機制實現(xiàn)了多進程間數(shù)據(jù)交互,通過調用RTX高精度定時和收發(fā)數(shù)據(jù)線程完成了與硬件實物之間的數(shù)據(jù)通信,有效的保證了仿真系統(tǒng)的高實時性和穩(wěn)定性。在此基礎上設計了導彈半實物仿真軟件,通過對彈載計算機單仿驗證了此系統(tǒng)設計的合理性和正確性。
RTX(real-time extension)是目前Windows平臺唯一基于軟件的硬實時擴展子系統(tǒng)。其具有開發(fā)周期短,成本低,支持VC++6.0開發(fā)環(huán)境等優(yōu)點。RTX并不對Windows系統(tǒng)本身進行任何封裝或修改,而是通過在HAL層(硬件抽象層)增加實時HAL擴展來實現(xiàn)搶占式實時任務的管理和調度,增強了Windows系統(tǒng)的實時能力[2]。其主要優(yōu)點如下:
1)高精度時鐘和定時器:RTX定時器時鐘分辨率為100 ns,最低定時器周期為100 μs。而Windows定時器時鐘分辨率為1 ms。
2)進程和線程:RTX最高支持1 000個獨立的進程,每個進程下可以運行的線程數(shù)量不受限制,且RTX線程優(yōu)先級都高于Win32線程。
3)進程間通訊機制:RTX通過進程間通訊IPC機制實現(xiàn)RTSS進程與Win32進程之間的數(shù)據(jù)交互。
4)實時網絡通信:RTX支持RT-TCP/IP及VMIC發(fā)射內存等實時網絡通信。
半實物仿真是指硬件在回路的仿真,即需要真實硬件參與到模型解算回路中,以達到檢驗參試硬件的效果。在與硬件進行控制信息交互的過程中,不僅需要良好的可操作性,更要保證系統(tǒng)的高實時性,基于Windows平臺的實時擴展子系統(tǒng)RTX很好的解決了這方面的問題。它既保留了Windows強大通用功能,又提供了對內存的精準控制,能確保高效的實時控制性、可擴展性和穩(wěn)定性。同時采用高速的IPC通信和同步機制,能夠使RTX快速準確的實現(xiàn)與Windows之間的數(shù)據(jù)交換[3]。
常見的IPC通信和同步機制包括:共享內存、置事件、管道、消息隊列等。文中采用共享內存方式進行Win32和RTSS不同進程間的數(shù)據(jù)交互,利用置事件的方式控制跨進程間線程的有序進行,從而確保整個仿真流程的高實時性和可靠性。根據(jù)導彈半實物仿真的時序要求,需要創(chuàng)建兩片共享內存。在仿真開始裝訂參數(shù)時,Win32進程要向RTSS進程傳遞控制信息,此時Win32進程對該片共享內存僅有寫的權限,RTSS進程則僅有讀的權限。在仿真開始階段,RTSS進程則要將實時解算的結果通過共享內存?zhèn)鞯絎in32進程中顯示并保存,此時RTSS進程則僅有寫的權限,Win32進程對該片內存僅有讀的權限[4]。在此過程中引用IPC事件同步機制,保證了在對同一片共享內存進行讀寫操作的有序進行。具體流程見圖1所示。
圖1介紹了兩種常用的創(chuàng)建和打開共享內存的方法。共享內存可由Win32和RTX進程任意一方創(chuàng)建,另外一方打開。在從界面給RTSS實時進程裝訂仿真模型初始參數(shù)時,首先由RTSS進程下的Rtd-DriverRegister函數(shù)創(chuàng)建共享內存及參數(shù)變量結構體。Win32進程則會調用RtdDeviceOpen函數(shù)打開此共享內存,并通過RtdDeviceTransfer函數(shù)將初始參數(shù)結構體指針傳遞給共享內存,進而將初始參數(shù)結構體內容復制到共享內存中,并在仿真開始時利用置事件的方式通知RTSS進程共享內存中數(shù)據(jù)已準備好。其中采用了互斥、通知機制,確保數(shù)據(jù)同步單向傳輸。RTSS進程收到仿真開始事件通知后,會將共享內存中的數(shù)據(jù)復制到利用Calloc指令申請的緩存區(qū)域中,在RTX下模型解算中調用此內存區(qū)域參數(shù)即可。此過程稱為Win32數(shù)據(jù)下傳到RTX,下傳方式通常適應于單次單向數(shù)據(jù)量較少的傳輸。
圖1 共享內存數(shù)據(jù)交互原理
在仿真開始后,RTSS進程要將模型實時解算結果周期性的發(fā)送到Win32界面上顯示并保存,在RTX運行主程序中打開事先在Win32進程中已創(chuàng)建好的共享內存,并獲得共享內存指針,當單個周期數(shù)據(jù)解算完成之后,直接操作指針將數(shù)據(jù)寫入共享內存,同時置事件通知Win32進程執(zhí)行數(shù)據(jù)顯示及保存線程,完成RTX到Win32的數(shù)據(jù)上傳。上傳方式通常適應于周期性數(shù)據(jù)量較大的傳輸。
3.1仿真系統(tǒng)基本結構
此次半實物仿真系統(tǒng)以彈載計算機單獨參與仿真為例,即只有彈載計算機作為實物硬件參與到整個系統(tǒng)回路中,模型解算所需的輸入量均由仿真計算機提供,并由接口計算機完成仿真計算機與彈載計算機之間實時數(shù)據(jù)交互。為了保證整個系統(tǒng)的高實時性,接口計算機在讀取仿真計算機數(shù)據(jù)時采用VMIC反射內存網實時傳輸,其傳輸速率高,抗干擾能力強,支持中斷傳輸。本系統(tǒng)采用GE公司的VMICPCI-5565反射內存網卡構建了星型拓撲結構網絡。在接口計算機與彈載計算機進行數(shù)據(jù)傳輸時采用RS422串口通信,其采用差分傳輸,抗干擾能力強,支持點對多的雙向通信。整個系統(tǒng)見圖2所示。
圖2 實時仿真系統(tǒng)基本構架
在彈載計算機單獨參與仿真環(huán)節(jié)中,仿真計算機使用的導彈控制模型與彈載計算機中的一致,且在試驗中,仿真計算機控制模型根據(jù)其動力學和運動學方程生成的慣導位置、角度信息和導引頭的框架角、視線角速度等信息實時注入到彈載計算機中參與控制模型解算并得到控制指令,控制導彈閉環(huán)飛行。同時仿真計算機也利用本機控制模型解算出當前時刻的控制指令,通過與彈載計算機解算指令對比,達到了驗證其控制模型的目的。整個試驗過程中彈載計算機和仿真計算機控制模型的輸入量同源,保證了彈載計算機單獨參與仿真試驗的單一變量性。
接口計算機為仿真計算機與彈載計算機搭建數(shù)據(jù)交互的橋梁,在仿真過程中,仿真計算機RTX進程啟動1 ms定時器將慣導和導引頭信息通過VMIC實時網傳向接口計算機,接口計算機RTX定時器按照5 ms周期實時讀取該浮點數(shù)據(jù),并將其按照通訊協(xié)議轉換為十六進制數(shù),通過RS422串口注入到彈載計算機進行模型解算,接口計算機在RTSS進程中接收線程實時掃描彈載計算機輸出的RS422串口信號,一旦有彈載計算機數(shù)據(jù)回傳則將其轉換并發(fā)送到VMIC實時網中,仿真計算機讀到回傳數(shù)據(jù)將結果實時顯示到界面上。整個系統(tǒng)的延遲在微秒級別,完全符合實時系統(tǒng)設計要求。
3.2仿真軟件設計流程
在導彈半實物仿真中,導彈擊發(fā)之前需要通過模擬發(fā)控對彈載計算機裝訂初始諸元參數(shù),此時需要將發(fā)控界面上的信息通過共享內存下傳到RTSS進程中,并利用置事件的方式通知RTSS進程開啟,進而就可以調用RTSS下高精度定時器嚴格按照導彈發(fā)射時序性將發(fā)控信息通過RS422串口注入到彈載計算機中,并通過RTSS接收數(shù)據(jù)線程實時接收反饋信息,判斷其滿足導彈發(fā)射條件則可擊發(fā)。
在導彈擊發(fā)之后,接口計算機控制固態(tài)繼電器通斷產生離軌信號,同時將離軌信號通過VMIC實時光纖網發(fā)給仿真計算機,保證了仿真計算機和彈載計算機模型解算的同時進行。在試驗過程中,仿真計算機進行控制模型解算,產生的導引頭和慣導信息通過接口計算機RTSS進程實時轉換成十六進制數(shù)并調用高精度定時器注入到彈載計算機中,同時通過RS422串口采集彈載計算機模型的解算結果,在RTSS實時接收數(shù)據(jù)線程中將其轉換為浮點數(shù)并上傳到共享內存,Win32進程接收到事件通知后則利用T-Chart控件實時顯示解算結果曲線并保存數(shù)據(jù)。當仿真計算機模型解算結束后則會在VMIC實時網發(fā)布結束指令,接口計算機讀到結束指令后通過繼電器控制彈載計算機模型解算結束。并停止轉換和采集數(shù)據(jù),清理共享內存緩存。仿真軟件設計流程見圖3所示。
圖3 實時系統(tǒng)仿真軟件設計流程
3.3仿真結果及分析
本次試驗通過分析Win32和RTX進程間數(shù)據(jù)交互的關系,針對導彈半實物仿真時序要求,設計了實時系統(tǒng)仿真軟件。并基于某型導彈彈載計算機單獨參與仿真試驗得到如下結果。
通過圖4分析可以看到仿真時間連續(xù)可靠,無任何丟幀現(xiàn)象。充分證明了基于RTX設計的數(shù)據(jù)轉換及采集軟件完全滿足系統(tǒng)對實時性的要求。
圖6 彈載計算機時間周期
由圖5和圖6統(tǒng)計分析可以得出RTX下1 ms和5 ms定時周期性能如表1所示。
表1 RTX定時器統(tǒng)計值
通過表1可以看出RTX下1 ms和5 ms定時周期最大偏差不到1 μs,最大偏差率小于千分之一,完全滿足半實物仿真系統(tǒng)對實時性的要求。由表1也可以得出:定時精度越高其偏差越大。
圖7 模擬導引頭數(shù)據(jù)與彈載計算機輸出對比
圖7中藍線表示仿真計算機1 ms周期性的向VMIC實時網發(fā)送模擬導引頭信息,黑線表示接口計算機按照5 ms周期采集轉換該數(shù)據(jù)并注入到彈載計算機中,紅線表示彈載計算機輸出其采集到的模擬導引頭注入信息。通過對比可以得出:接口計算機完全按照5 ms周期給彈載計算機注入相關信息,數(shù)據(jù)穩(wěn)定且準確。
圖8 仿真計算機指令與彈載計算機遙測指令對比
通過對比可以看出:彈載計算機遙測指令和仿真計算機指令高度一致,充分驗證了彈載計算機控制模型的正確性和穩(wěn)定性。
文中通過兩種方式闡述了Win32進程和RTX進程之間創(chuàng)建和打開共享內存的方法,并針對不同的通信內容分析了兩種方法的優(yōu)缺點,將Win32良好的人機交互特點和RTX高效實時性結合起來實現(xiàn)了基于RTX的導彈半實物仿真系統(tǒng)設計,并結合具體例案分析了彈載計算機單獨參與仿真環(huán)節(jié)中這兩種方法的應用,通過結果數(shù)據(jù)分析得出此方法能夠完全滿足半實物仿真系統(tǒng)對實時性的要求,并取得了大量的工程應用和實踐。
[1]王偉志,襲著有,王贄.基于RTX實時仿真系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2013,21(12):24-27.
[2]韓玉芹.基于RTX子系統(tǒng)的導彈試驗實時測控系統(tǒng)研發(fā)[D].西安:西安電子科技大學,2013.
[3]王豐,劉娜,肖雅靜,等.RTX在實時控制系統(tǒng)中的應用[J].電子專用設備與技術,2012,214(7):40-43.
[4]孫繼紅.RTX技術在半實物仿真中的應用及開發(fā)[J].計算機仿真,2010,27(8):83-86.
[5]黃鍵,宋曉,薛順虎.RTX平臺下實時仿真系統(tǒng)的設計方法[J].計算機應用與軟件,2009,26(4):167-169.
[6]于繼超,劉經宇.基于RTX的工程飛行模擬器數(shù)據(jù)采集與存儲系統(tǒng)設計[J].系統(tǒng)仿真技術,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-),男,陜西渭南人,助理工程師,碩士研究生,研究方向:半實物仿真技術。