岳 超,董国才,喻 戈,张健楠(中国兵器工业第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-),男,陕西渭南人,助理工程师,硕士研究生,研究方向:半实物仿真技术。