基于RTX与反射内存的实时支撑系统设计
扫描二维码
随时随地手机看文章
0 引言
传统的试验存在着试验组织过程复杂、试验成本代价高昂、试验易受自然客观条件限制等问题。利用通用体系结构(如DIS,HLA,TENA)构建仿真试验系统来模拟现实中的靶场试验,可以解决部分传统靶场试验中存在的问题。HIT-GPTA平台即是基于HLA体系结构建立的通用仿真实验平台,该平台可提高试验资源的互操作性、重用性和组合应用能力,可以根据具体的任务需要将分布在各靶场、设施中的试验、仿真及高性能计算能力集成起来,构成一个用于试验的开放式环境。
仿真试验系统存在着对高速、实时性等相关性能指标的要求,而HIT-GPTA平台为方便资源的集成与可重复利用,采用了Windows+以太网的模式进行设计,为提高HIT-GPTA平台在仿真试验领域的应用,需要提高平台的实时性。Windows+以太网的模式的优点在于资源的重复利用及系统构建方便,不足在于实时性受限于Windows系统的性能和以太网的传输速率。为扩展平台在实时仿真领域的应用,需要扩展一个实时的仿真支撑系统以提高仿真平台的整体实时性。RTX是美国Ardence公司开发的基于Windows操作系统的实时解决方案。RTX 向Windows 添加一个实时子系统(RTSS),实时性能由RTX 子系统提供,具有完全自己独立的实时性能强大的调度器。反射内存网内每个节点上的反射内存卡存储器中都有其他节点的共享数据拷贝,相较于仿真系统的仿真步长而言,反射内存网的数据传输延迟可以忽略。为提高HIT-GPTA平台的实时性,本设计采用了RTX与Windows相结合的机制,将实时性要求较高的数据传输接口及处理算法在RTX 内实现,提高仿真系统数据处理及调度的实时性,采用反射内存网替代以太网,提高了数据传输的实时性。该仿真模式在武器装备的半实物仿真、调试、高覆盖率测试等领域,具有广阔的应用前景。
1 实时仿真系统简介
本设计中采用RTX+Windows的设计方式改进了仿真系统算法及调度的实时性,采用了反射内存网提高了节点之间数据传输的实时性,并为各种总线接口设计了RTX系统下的驱动程序,提高设备接入的实时性。改进后的设计如图1所示,该实时系统包含以下几个组成部分:平台接口模块、实时仿真组件、实时流程控制、设备驱动接口、反射内存网络。平台接口模块承担定义仿真类型、配置仿真参数、处理非实时数据、显示仿真结果等任务。实时仿真组件运行实时仿真算法,是实时仿真系统的主体。实时流程控制是仿真系统的控制中枢,用于控制仿真系统的执行流程。设备驱动接口用于向仿真系统接入实物设备,使仿真系统具有了半实物仿真的能力。反射内存网络用于完成各仿真节点之间的数据交互。该系统的实时仿真部分采用Windows+RTX的设计模式,Windows部分对应Win32进程,为非实时进程,完成非实时的仿真任务;RTX部分对应RTSS进程,为实时进程,完成实时仿真运算,通过共享内存与Win32进程通信,获取配置数据并更新发布数据,通过反射内存操作,完成与实时组件之间的订购发布,同时接受流程控制组件的调度的推进。
对该系统各组成部分的功能进行分析可以发现,可以从两个方面保证仿真系统实时性:一是建立一个完成实时仿真运算的实时仿真子系统;二是构建实时数据传输链路,包括数据的传输、设备的接入等。
2 实时仿真子系统设计
实时仿真子系统包括仿真平台接口、实时仿真设备、实时流程控制等几个部分。
2.1 平台接口模块图1 中非实时组件、本地通信代理、信息传输管理平台等部分属于仿真平台接口模块。仿真平台接口提供参数的配置用户接口界面,由用户对仿真系统进行配置,配置完成后生成仿真接口文件,供实时仿真组件加载和使用。此外,仿真平台接口还承担实时系统与非实时系统的交互任务,完成系统内实时设备与非实时设备的交互。
仿真平台的参数配置主要包含表1中的内容。
仿真优先级规定了各仿真节点的执行次序。优先级设定如下:不同设备可以处于同一优先级,执行权限相同,无先后顺序要求,但是低优先级的设备要等待高优先级设备全部执行完成后才能获得执行权限。本地仿真时采用共享内存作为仿真系统各节点交互数据的中介,分布式仿真时采用反射内存作为各节点之间的数据传输途径。两种方式的配置方式类似,可做统一处理。反射内存结构设计如图2所示。
2.2 实时仿真组件
实时仿真组件包含两个进程,该模板的Win32进程为平台组件,继承自组件基类,提供与平台的接口,RTSS进程为实时进程,运行实时仿真算法,并读写反射内存完成实时订购发布。静态建模完成后,由Win32进程创建RTSS进程,RTSS初始化完成后仿真组件准备就绪,根据推进命令及流程控制命令进行相关仿真。实时仿真组件运行流程如图3所示。
仿真开始后RTSS进程根据仿真节拍的顺序进行仿真,节拍开始时查询仿真标识,当所有高优先级的组件仿真完成后,从共享内存(本地仿真)或反射内存(分布式仿真)中取出订购数据,进行仿真计算;完成后将发布数据写入反射内存,根据抽样间隔将数据抽点写入共享内存,交由Win32 进程发布;设置组件相关的仿真标识。Win32进程检测共享内存的更新状态,有数据更新时将所更新的数据发布到平台,供其他非实时组件订购。
实时仿真组件的两个进程之间通过共享内存通信,并通过互斥信号量来保证读写的正确进行。每个仿真组件分别创建发布区和订购区共享内存,为发布区创建“双事件”进行互锁,确保共享内存的读/写安全与及时;为订购区创建互斥信号量确保读/写统一。[!--empirenews.page--]
2.3 实时流程控制
实时流程控制是仿真系统的控制中枢,通过分析系统各组成部分的运行状态决定下一步的仿真动作。基本的仿真命令有开始、初始化、同步、暂停、运行、停止等命令,实时流程控制设计了开放式的接口,便于扩展仿真控制命令。
静态建模完成后,启动流程控制组件的实时进程,读取仿真信息文件,组件自身完成初始化并设置相关寄存器。然后按照流程控制的各个步骤完成发布流程控制命令,各设备根据具体的流程控制命令执行相应操作。实时流程控制组件运行流程图如图4所示。
3 实时数据传输链路构建
提高仿真系统实时性的另一个途径是提高数据传输链路的实时性,这主要从两个方面来提高,一是提高仿真实物设备接入的实时性;另一个是提高系统内各节点之间数据传输的实时性。
3.1 实时设备驱动
一般的实时仿真系统都会有实物设备接入系统,为提高仿真系统的实时性,必须提高设备接入的实时性。
实物设备是通过驱动程序接入到仿真系统中的,Win-dows的实时性由于系统本身的调度机制难以达到实时系统的需求,必须为实物设备设计在RTX 系统中的驱动程序。如图1中所示,实物设备通过各种总线接口接入到上位机的系统中,仿真组件的RTSS进程通过访问设备驱动程序完成对设备的控制。RTX设备驱动可直使用Visual Studio开发工具开发,工程向导直接生成驱动框架程序,开发简单且开发周期较短。
3.2 实时数据传输
实时支撑子系统的数据传输采用反射内存网完成。反射内存网内每个节点的存储器中都有其他节点的共享数据拷贝,相较于上位机的仿真节拍,数据的传输延迟可以忽略。通过反射内存,各个仿真系统可以及时地获取仿真控制命令和仿真数据。使用反射内存进行仿真节点的数据传输可以极大地缩小数据链路的延迟,保证仿真系统的整体实时性。
4 测试结果及分析
为对比改进的结果,对含有实时支撑平台和不含实时支撑平台的仿真系统进行了测试,测试流程按照仿真周期递减开始测试,结果如表2所示。
从测试结果可知,仿真系统中加入实时支撑子系统后可以极大地提高仿真系统整体的实时性,弥补了HIT-GPTA平台的一个缺陷。
5 结语
本文对组成仿真系统的各个环节的实时性进行了分析,从软件、驱动、硬件三个层次改进仿真系统的各组成部分,缩小了仿真延迟的最大瓶颈,提高了仿真系统的整体实时性。