方 伟,张兵强,徐 涛,方 君
(海军航空大学,山东烟台264001)
随着分布仿真技术的发展,模拟训练在军用、民用等领域获得越来越广泛的应用。对于飞行仿真系统[1]而言,考虑到平台运动速度快、数据交互量大和系统结构复杂等方面的因素,在人在回路系统中,实现仿真应用间数据的高效、可靠的交互,须解决以下3个方面的问题。
1)网络数据传输量:对于分布式仿真系统,数据传输质量通常受到网络带宽、交互频率等多方面的影响。同时,随着系统规模的扩大,网络数据量[2-4]的增加势必对网络传输性能产生较大影响,尤其是对实时性较高的系统,须在网络传输数据手段上进行优化。
2)仿真时钟同步:时钟的不一致将对分布仿真系统产生时序颠倒、抖动等多方面的问题。如对于飞行仿真系统而言,非同步的时钟,人为感受最强烈的影响就是视景系统[5-6]出现不同程度的跳变。因此,须要通过多种机制解决仿真应用间时钟同步的问题。
3)对应用层的影响:在分布式仿真系统中,网络通信属于底层须解决的问题,涉及通信机制、传输方式、时钟同步等多方面,将这些问题转移到应用层设计上,势必造成应用软件不必要的开发量。同时,由于设计思路的不一致导致仿真应用集成的难度。
本文主要围绕上述问题,在对降低网络数据传输量、仿真时钟同步方法等进行研究的基础上,阐述了网络通信引擎的设计思路和方法。
在分布式交互仿真系统中,节点间要不断交换大量信息,这将使网络负担加重,进而影响系统的实时性。为了减少网络负担,一种方案是可以增大网络带宽,另一种方案是可减少网络的信息交换量。网络带宽的扩容将带来硬件设备的更新升级,其受到项目经费、建设现状等多方面的制约,尤其是对于广域网环境。从软件层面,在保证一定精度的前提下,减少数据频繁交互是解决网络数据传输量行之有效的手段和方法。
在分布式仿真系统中,系统间交互的数据主要分为信息和事件2类。在飞行仿真系统中,各仿真应用间的数据更新包括高频度数据和低频度数据2类。高频度数据主要指更新速度快的信息数据,典型的是平台运动产生的位置、姿态等变化数据,通常按照60Hz的更新频率进行变化;低频度数据指更新速度慢的信息数据和事件数据。数据更新策略如图1所示。
图1 数据更新策略Fig.1 Data update strategy
对于低频度数据,仿真成员间的数据交互主要按照变化即传输的基本策略进行处理,即对数据变量在发送前与前次数据内容进行对比,若数据未发生变化或在容忍误差范围内,则不进行传输。否则,将进行传输。
对于高频度数据,主要采用DR算法[7-9]实现,即在保证仿真精度的前提下,降低仿真实体状态在网络上的更新频率,以减少交互数据量。其实现方法是在数据发送端同时运行平台数学仿真模型和DR模型,每个仿真步长对2类模型的运算结果进行对比,超出误差门限即对数据进行发送。否则,不发送。同时,数据接收端在未接收到发送端数据时,按照已知条件,依据仿真步长利用DR模型对后续状态进行预测,接收到新数据后,将对当前状态进行更新。
对于飞行仿真系统而言,考虑到人在回路对系统实时性的要求,DR模型的选择上须要在精度和效率间进行折中。仿真中,主要采用一阶/二阶外推算法进行姿态和位置预测。
假设:t0时刻平台位置P0=[x0,y0,z0]T,速度v0=[vx0,vy0,vz0]T,加速度A0=[ax0,ay0,az0]T,角速度ω0=[p,q,r]T,姿态角R0=[ϕ0,θ0,φ0]T,仿真步长为Δt。
位置预测采用二阶空间位置外推方法,t0+Δt时刻位置P=[x,y,z]T为:
姿态角预测采用基于四元数法[10-11]的一阶姿态角外推方法计算,t0+Δt时刻姿态R=[ϕ,θ,φ]T,实现方法如下。
1)确定初始四元数值:
仿真实验:以60Hz为仿真周期,采样飞机平台飞行数据,利用DR算法对仿真模型在不同误差门限下的数据传输量进行测试,误差门限主要包括位置误差以及航向、俯仰和横滚等姿态误差,得到实验结果如图2、3所示。
图2 不同误差门限条件下的DR算法传输量Fig.2 Transmission amount of DR algorithm for different error thresholds
图3 不同误差条件下真实数据与预测数据偏差量Fig.3 Deviation of true data and forecast data for different error thresholds
由测试结果可以看出:
1)采用DR算法后,在容忍的误差门限范围内,网络数据交互量得到较大幅度的减少;
2)随着误差门限要求的提高,网络数据更新频率,即需要传输的网络数据随之提高。
对测试结果说明以下3个问题。
1)DR算法的误差门限设置。该值与飞行仿真系统自身仿真精度[12]密切相关。通常在DR模型设计中,应支持对仿真不同阶段要求误差门限的动态改变。
2)计算资源消耗。在数据发送端采用DR算法后,相当于在其中同时运行DR模型和设备物理模型2个部分,通过在CPU4核3.5 GHz,内存16 GB配置的计算机上进行DR算法实验,DR模型单步解算时间为0.004 8 ms,对于飞行仿真中单步16.667 ms的仿真周期而言,其在计算资源上的影响可以忽略不计。
3)DR算法虽然能够有效减少分布仿真环境下的飞行仿真系统各仿真应用间的数据交互量,但具体减少数量与飞机平台的运动状态及设置的门限大小具有强关联,本实验结果不能作为绝对减少量的依据。
高频度地使用网络传输数据,尤其是一个时间点反复调用网络通信接口对数据进行发送与接收,对网络传输效率会产生较大程度的影响。因此,网络通信中,在使用数据更新策略减少数据传输量的基础上,采用数据包策略以降低数据的频繁发送,过程如下。
1)数据发送端分配一定内存空间,并根据网络带宽、网络传输质量动态对内存大小进行调整。
2)数据发送端以仿真步长为基准,采集仿真应用中各个仿真对象更新后的信息数据,并在每个仿真对象信息前添加信息类型、对象标识和数据大小等字段,在内存空间容量允许的情况下依次存储于内存空间中。
3)封包后,数据包通过网络通信引擎发送至各仿真应用。
4)各仿真应用按照数据包大小以及各仿真对象信息标识对数据包进行解包处理,并更新内部的各个仿真对象。
须说明的是,数据包策略主要对网络交互数据的信息类数据进行处理,由于事件类数据具有时间的不确定性,采用即用即发的方式。
仿真时钟同步是确保飞行仿真系统在统一的时间基准下,一致、有序地协同,进而实现全系统可靠运行的关键。飞行仿真系统在时钟同步[13-16]问题上,须考虑时钟对准、时间同步推进、不同仿真应用对仿真周期要求和同步稳定性等多方面的因素。
时钟对准主要解决网络环境下分布仿真系统各节点计算机时钟由于晶振性能、人为调整等原因导致的时钟的不一致,主要采用NTP协议[17-18](网络时钟协议)予以实现。考虑到飞行仿真系统实际,对NTP协议收发方式进行了改进,将由客户端请求服务器处理的模式,转化为服务器统一发送时钟对准命令,各仿真节点对命令进行统一处理,进而对时钟的偏移量和传输延迟量进行计算,调整节点计算机时钟。
实现方法:t1时刻由服务器发送同步报文,仿真节点接收到同步报文后记录时间t2,仿真节点在t3时刻向服务器发送时延请求报文,服务器接收到时延请求报文时间记为t4,并将该时刻以时延响应报文发送给仿真节点。假设服务器和仿真节点间时钟偏移量为θ、δ为服务器和仿真节点间数据包单次传输延迟(数据包往返延迟假定相同)。
仿真节点通过计算的θ、δ结果,即可对节点时钟进行调整,保证与服务器时钟的一致性。为保证飞行仿真系统长时间运行时钟的一致性,可通过人工和自动设置同步时间间隔的方式,由服务器再次发起时钟对准命令。
时钟对准确保了基准时间的一致性。在此基础上,还须对仿真节点下各仿真应用的同步推进进行控制,系统在技术实现上主要采用软硬件结合策略进行实现,如图4所示。
图4 仿真时钟同步推进策略Fig.4 Advance strategy of simulation clock synchronization
1)硬件同步策略:系统硬件时钟同步信号的产生主要采用研制的硬件电路实现,通过硬件端口连接至各仿真节点计算机,激励信号源包括来自卫星天线接收器、电路内部晶振和其他高性能仿真节点计算机(如视景仿真计算机)视频卡等,3种信号源根据使用环境不同可预先配置,采集的信号通过数据处理单元产生指定仿真周期的中断,仿真节点应用程序依据中断触发信号完成模型解算和数据分发等工作。图5以60Hz为仿真周期,测试时间为10min,硬件触发中断信号时间间隔误差量最大误差为0.235 ms,时钟中断平均时间间隔16.666 ms,标准方差0.035 3 ms,能够满足飞行仿真对时间同步的要求。
图5 硬件时钟同步精度Fig.5 Synchronization precision of hardware clock
2)软件同步策略:系统软件同步主要通过服务器向各仿真节点发送网络同步信号实现,仿真节点接收到网络同步信号后,仿真应用软件依据网络同步信号完成模型解算和数据分发等工作。其中,服务器时钟同步计算方法是采用高精度时钟,即通过获取仿真节点计算机时钟频率和计数值,两者进行综合处理后产生指定仿真周期的软件网络触发信号。
在实际使用中,考虑到硬件和软件同步信号精度、使用环境、保密性等方面的影响,网络通信引擎设计时同时将硬件和软件时钟同步模型进行集成,引擎依据实际环境配置,优先选用硬件同步方式,若硬件同步出现故障,则系统自动转入软同步方式处理,以保证系统的同步性。同时,采用软硬件结合的方式,也可将位置分散的模拟器内部采用软同步方式进行处理,模拟器间采用硬同步进行处理,以达到分层同步的目的。
仿真周期的配置主要解决飞行仿真系统中不同应用对仿真周期需求的不一致,如对于视景系统、飞行控制系统等须要达到60Hz的更新频率,对于雷达系统图像的生成30Hz的仿真周期亦可满足仿真的需要,不同的仿真应用对仿真周期要求各不相同,但同时须要保证各仿真应用的同步性。
实现方法:以120Hz作为仿真周期最小时间间隔基准,以最小时间间隔整数倍为仿真周期扩展的基本要求,各仿真应用根据自身仿真周期需要,调用网络通信引擎提供的接口设置仿真步长,引擎依据设定的仿真步长自动调整触发的时间间隔,以满足仿真应用需要。
网络通信[19]引擎是具备网络可靠通信、优化数据传输量、实现时钟同步等功能的网络中间件,其为上层应用提供了统一网络通信框架,以加快应用层系统的开发、调试等工作。网络通信引擎实现框架如图6所示。
图6 网络通信引擎Fig.6 Network communication engine
由图6可以看出,网络通信引擎主要由协议适配器、网络管理器、时钟同步器、信息、事件等组成,为实现网络数据传输量的优化,在信息数据下派生了实体对象。
1)协议适配器。主要实现网络通信引擎与最底层通信协议的无关性,适配器对上提供统一的数据回调接口,将网络数据反射至网络管理器处理,对下封装TCP/IP、RTI、DDS等各底层通信协议接口,实现统一调度。
2)网络管理器。主要负责对来自协议桥接器反射数据的处理,完成对象数据解包与更新,并分发给各仿真对象。同时,提供数据对外封包和发送的接口,供上层应用调用。
3)时间同步器。主要是对仿真时钟同步技术进行实现,提供时钟管理动态链接库,供网络管理器进行网络数据交互时时间管理使用。
4)信息与事件。信息是指网络数据中周期性更新的数据,如飞机平台运动状态;事件是指突发性变化的数据,如武器开火、平台爆炸。
5)实体对象。派生于信息类,是网络通信引擎的一个扩展对象,其核心是对实体位置、姿态等关键性参数的定义,将DR算法封装其中,以自动实现仿真对象的数据更新与外推预测。同时,可根据须进行其他对象的扩展。
本文围绕飞行仿真系统在网络数据传输量、时钟同步等方面的问题展开了研究工作,充分考虑飞行仿真系统强实时性的要求,利用DR模型和数据包等策略降低了网络数据传输量,并利用软硬件结合的手段实现了飞行仿真中各仿真应用间的同步。基于此,研制的网络通信引擎在多型号飞行训练模拟器中得到应用。