基于RTX与反射内存的实时支撑系统设计
各节点之间的数据传输途径。两种方式的配置方式类似,可做统一处理。反射内存结构设计如图2所示。
2.2 实时仿真组件
实时仿真组件包含两个进程,该模板的Win32进程为平台组件,继承自组件基类,提供与平台的接口,RTSS进程为实时进程,运行实时仿真算法,并读写反射内存完成实时订购发布。静态建模完成后,由Win32进程创建RTSS进程,RTSS初始化完成后仿真组件准备就绪,根据推进命令及流程控制命令进行相关仿真。实时仿真组件运行流程如图3所示。
仿真开始后RTSS进程根据仿真节拍的顺序进行仿真,节拍开始时查询仿真标识,当所有高优先级的组件仿真完成后,从共享内存(本地仿真)或反射内存(分布式仿真)中取出订购数据,进行仿真计算;完成后将发布数据写入反射内存,根据抽样间隔将数据抽点写入共享内存,交由Win32 进程发布;设置组件相关的仿真标识。Win32进程检测共享内存的更新状态,有数据更新时将所更新的数据发布到平台,供其他非实时组件订购。
实时仿真组件的两个进程之间通过共享内存通信,并通过互斥信号量来保证读写的正确进行。每个仿真组件分别创建发布区和订购区共享内存,为发布区创建"双事件"进行互锁,确保共享内存的读/写安全与及时;为订购区创建互斥信号量确保读/写统一。
2.3 实时流程控制
实时流程控制是仿真系统的控制中枢,通过分析系统各组成部分的运行状态决定下一步的仿真动作。基本的仿真命令有开始、初始化、同步、暂停、运行、停止等命令,实时流程控制设计了开放式的接口,便于扩展仿真控制命令。
静态建模完成后,启动流程控制组件的实时进程,读取仿真信息文件,组件自身完成初始化并设置相关寄存器。然后按照流程控制的各个步骤完成发布流程控制命令,各设备根据具体的流程控制命令执行相应操作。实时流程控制组件运行流程图如图4所示。
3 实时数据传输链路构建
提高仿真系统实时性的另一个途径是提高数据传输链路的实时性,这主要从两个方面来提高,一是提高仿真实物设备接入的实时性;另一个是提高系统内各节点之间数据传输的实时性。
3.1 实时设备驱动
一般的实时仿真系统都会有实物设备接入系统,为提高仿真系统的实时性,必须提高设备接入的实时性。
实物设备是通过驱动程序接入到仿真系统中的,Win-dows的实时性由于系统本身的调度机制难以达到实时系统的需求,必须为实物设备设计在RTX 系统中的驱动程序。如图1中所示,实物设备通过各种总线接口接入到上位机的系统中,仿真组件的RTSS进程通过访问设备驱动程序完成对设备的控制。RTX设备驱动可直使用Visual Studio开发工具开发,工程向导直接生成驱动框架程序,开发简单且开发周期较短。
3.2 实时数据传输
实时支撑子系统的数据传输采用反射内存网完成。反射内存网内每个节点的存储器中都有其他节点的共享数据拷贝,相较于上位机的仿真节拍,数据的传输延迟可以忽略。通过反射内存,各个仿真系统可以及时地获取仿真控制命令和仿真数据。使用反射内存进行仿真节点的数据传输可以极大地缩小数据链路的延迟,保证仿真系统的整体实时性。
4 测试结果及分析
为对比改进的结果,对含有实时支撑平台和不含实时支撑平台的仿真系统进行了测试,测试流程按照仿真周期递减开始测试,结果如表2所示。
从测试结果可知,仿真系统中加入实时支撑子系统后可以极大地提高仿真系统整体的实时性,弥补了HIT-GPTA平台的一个缺陷。
5 结语
本文对组成仿真系统的各个环节的实时性进行了分析,从软件、驱动、硬件三个层次改进仿真系统的各组成部分,缩小了仿真延迟的最大瓶颈,提高了仿真系统的整体实时性。(作者:李龙华,魏长安,姜守达)