1、第 40 卷第 3 期计算机应用与软件Vol.40 No 32023 年 3 月Computer Applications and SoftwareMar 2023一种飞行模拟器坐标数据联网传输失真抑制方法孙文柱1曹建平1孙忠云1曲建岭1于世胜21(海军航空大学青岛校区山东 青岛 266041)2(中国人民解放军 92212 部队山东 青岛 266109)收稿日期:2020 08 09。国家自然科学基金项目(51505491)。孙文柱,讲师,主研领域:军用虚拟仿真。曹建平,讲师。孙忠云,副教授。曲建岭,教授。于世胜,工程师。摘要大规模联网是飞行模拟训练的重点发展方向之一,但飞行模拟器长距离、多
2、节点联网经常遇到实体坐标数值经网络传输后失真问题,造成被观察的实体在视景系统中抖动。分析了数值失真原因,将数值失真归结于三种因素:截断误差、存取周期不一致和网络传输丢包和乱序。同时指出坐标数值取二阶导数得到的加速度值可以作为衡量坐标数据失真程度的一种度量。提出一种基于卡尔曼滤波的飞行模拟器坐标数据联网传输失真抑制方法。设计一系列的对比实验验证了该方法的有效性。关键词卡尔曼滤波飞行模拟器联网传输失真抑制中图分类号TP393 101文献标志码ADOI:10 3969/j issn 1000-386x 2023 03 010A METHOD FO ESTAINING THE DISTOTION OF
3、 FLIGHT SIMULATOCOODINATE DATA CAUSED BY NETWOK TANSMISSIONSun Wenzhu1Cao Jianping1Sun Zhongyun1Qu Jianling1Yu Shisheng21(Naval Aeronautical University Qingdao Branch,Qingdao 266041,Shandong,China)2(Unit 92212 of Chinese Peoples Liberation Army,Qingdao 266109,Shandong,China)AbstractLarge-scale netwo
4、rking is one of the key development directions of flight training simulation,but distortionof entity coordinate values after network transmission is often encountered when long-distance,multi-node networking areperformed,which results in the phenomenon of the observed entity jittering in the visual
5、system We analyzed the causeof entity coordinate distortion The distortion was attributed to three factors:truncation error,inconsistent access period,packet loss and disorder in network transmission Meanwhile,it was pointed out that the acceleration value obtained bytaking the second derivative of
6、coordinate value could be used as a measurement to represent the degree of datadistortion And a method to restrain the distortion of coordinate value during data network transmission between flightsimulators based on Kalman filter was proposed A series of comparative experiments were carried out,whi
7、ch verified theeffectiveness of this methodKeywordsKalman filterFlight simulatorNetwork transmissionDistortion restraining0引言飞行模拟训练作为一种高效、安全和低成本的辅助训练方式,为操作人员提供了接近真实的训练环境,大幅提升了训练质量效益1 3。随着科学技术的发展,飞行器复杂度不断提高,飞行模拟训练器材经过了简单机械式模拟、机电式模拟和计算机模拟等阶段,现已发展为大规模联网式模拟训练样式4 6。然而模拟器组网训练过程中普遍存在网络传输坐标值失真问题,表现为模拟器中速度较快
8、的实体(比如飞机、卫星等)坐标数值经网络传输后会发生失真现象,导致模拟器视景图像的剧烈抖动。当视点与实体距离较近时这种抖动更加明显,严重影响训练人员使用体验,降低62计算机应用与软件2023 年模拟器训练效益。针对模拟器网络传输坐标值失真问题,很多文献进行了针对性研究并给出了解决方法。陈学文等7 为消除载人飞行器视景仿真抖动现象,将视景仿真坐标设置与飞行器动力学坐标系一致;王炜等8 对飞参数据进行插值平滑,消除飞行回放过程中的抖动;徐勇波等9 基于帧同步和平滑算法提出 7 点滑动平均方法,有效减轻了联网飞行模拟训练中观察邻近飞机时的抖动现象,曹建平等10 在此基础上进行了改进并提出了基于加权滑
9、动平均滤波算法的视景抖动消除方法。以上方法一定程度上减轻了数值失真的程度,但在严峻情况下仍然会出现抖动现象,且会带来数据延迟的负面影响。卡尔曼滤波是一种基于线性系统状态方程,通过系统输入输出观测数据对系统状态参数进行最优估计的算法,可有效滤除系统中干扰和噪声的影响,在传感信号融合和飞行导航领域应用广泛11 12。网络传输坐标值失真问题可归结为实时仿真中延时随机性所带来的干扰,在较小的时间尺度下飞机运动方程可视为线性的,因此适用于卡尔曼滤波进行估计飞机运动状态。1数据抖动分析组网训练的飞行模拟器之间一般通过“集中-分发”模式进行数据交互。如图1 所示,每个飞行模拟器将飞行动力学模型输出的飞行实体
10、位置坐标通过采样、网络传输等操作汇总到一个数据池中,汇总完成后再将所有的飞行实体位置坐标分发给各视景。图 1组网飞行模拟器位置坐标数据传输过程在不同的组网飞行模拟器中,位置坐标数值采用的网络技术、采样方式和网络传输的频率和步长不尽相同。因此,在整个传输过程中造成位置坐标数值失真一般由三种因素耦合产生,这三种因素包括:截断误差、存取周期不一致和网络传输丢包和乱序。1 1截断误差位置数据在系统中发送和存储的类型主要有两种:单精度浮点数和双精度浮点数,根据 IEEE 754 二进制浮点数算术标准。单精度浮点数使用 32 个二进制位表示一个浮点数,包括 1 位符号位、8 位阶码和 23位尾数位,其中
11、23 位二进制尾数约相当于 7 位十进制有效数字,超出 7 位的部分为无意义数值。用单精度浮点数表示经纬度时,误差最大可达 10 m 以上。双精度浮点数使用 64 个二进制位表示一个浮点数,包括 1位符号位、11 位阶码和 52 位尾数位,使用双精度浮点数表示经纬度时精度较高,误差为 109m 量级。在飞行模拟器坐标数据网络传输和重采样过程中,为避免产生截断误差,应遵守以下原则:(1)避免在网络传输和重采样过程中将经纬度坐标值转为单精度浮点数。(2)如果网络传输工具中只提供单精度类型,可以扩展网络协议,将坐标数据分解为两个单精度值,按高低位分别发送。1 2存取周期不一致网络总线是联网模拟器常用
12、的一种数据传输方式。在网络总线数据存取时,发送方以固定周期向总线发送数据,接收方以固定周期向总线读取数据,一般来说发送数据周期和接收周期是一致的,但在程序执行过程中,发送周期和接收周期不能保证完全同步,有时会发生一个发送周期内执行两个读取操作或一个发送周期内没有执行读取操作的情况。这时,接收方的数据就会出现与上一帧同值或数值阶跃的问题,如果发送数据周期和接收周期不一致,这种问题会更加严重。为避免发生数据存取周期不同步和步长不一致产生误差,数据发送与接收应遵守以下原则:(1)存取周期设置为相同或成倍数关系。(2)使用实时操作系统。(3)严格的时间同步。(4)数据收发采用事件触发机制。1 3网络传
13、输丢包和乱序UDP 网络传输协议具有不需要建立连接、传输速度快的特点,常用于模拟器网络数据发送。但由于UDP 是不可靠传输协议,丢包和乱序问题不可避免。当发生丢包情况时,会导致接收端不更新数值。当发生乱序情况时,后发送的数据先到达,先发送的数据后到达,这会导致接收端数值发生脉冲抖动。为避免发生网络传输丢包和乱序问题,UDP 网络传输应遵守以下原则:第 3 期孙文柱,等:一种飞行模拟器坐标数据联网传输失真抑制方法63(1)数据发送频率不宜过高。(2)数据包长度避免过大。(3)优化发送与接收算法。2视景抖动衡量指标目前模拟器视景抖动强弱只能用人眼定性描述,抖动程度缺乏客观定量的标准。实质上坐标数值
14、的失真可理解为速度的突变,每次抖动都有一个速度向正反两个方向骤然增加而又回归正常的过程,此时必然伴随着加速度的瞬间大幅增加。飞机在正常飞行过程中,由于飞机设计和人体承受极限因素的限制,一般最高过载不超过 9 个 G。检测坐标数值失真程度时,可将坐标数值取二阶导数得到加速度值,当加速度值超出正常范围,可认为数据发生了失真,且加速度峰值越大失真程度越大。因此坐标数值取二阶导数得到的加速度值可作为衡量视景抖动程度的指标,加速度峰值表示数据失真的程度,同时也表征视景抖动的剧烈程度。在实际测试过程中发现,当加速度峰值低于 200 m/s2时,视景抖动不明显,当加速度峰值高于 200 m/s2并低于 1
15、000 m/s2时,视景有轻微抖动,当加速度峰值高于 1 000 m/s2时,视景抖动剧烈。3基于卡尔曼滤波的飞行动力学数据抖动抑制方法卡尔曼滤波通过输入输出观测数据建立线性系统状态方程,并能够给出下一时刻系统状态的最优估计13。本节使用卡尔曼滤波建立飞行动力学模型的系统状态方程,并通过滤波估计得出下一时刻飞行动力学数据估计值,当网络传输的飞行动力学数据发生异常时,卡尔曼滤波方法可以给出最优估计,方法如下:包含扰动的飞机飞行动力学模型可以通过如下公式表示:xk+1=Axk+1+Buk+Gwkyk=Hxk+vk(1)式中:xk和 xk+1分别为 k 时刻和 k+1 时刻飞机状态;uk为 k 时刻
16、飞机运动参数;G 为单位矩阵。xk=Px(k)Vx(k)Py(k)Vy(k)Pz(k)Vz(k)T(2)uk=ax(k)ax(k)ay(k)ay(k)az(k)az(k)T=P x(k)P x(k)P y(k)P y(k)P z(k)P z(k)T(3)A 为状态转移矩阵:A=1t0000010000001t0000010000001t000001(4)式中:t 为仿真步长。B 为控制矩阵:B=diagt22,t,t22,t,t22,t(5)H 为观测矩阵:H=100000001000000010(6)wk和 vk为系统扰动噪声,服从正态分布:wk N(0,Q)(7)vk N(0,)(8)系统当前状态的预测估计方程为:xk=Axk+Buk(9)预测协方差为:Pk=APkAT+Q(10)卡尔曼增益为:Kk=PkHT(HPkHT+)1(11)滤波估计为:x(k+1)=xk+Kk(yk Hxk)(12)协方差更新公式表示为:Pk+1=(I KkH)Pk(13)由式(10)可以看出,Q 越大预测协方差越大,在式(11)中会导致 Kk越大,则滤波估计时新观测值权重越大,预测值权重越小。Q 越大