路 晶 任 洲 史 宇
(1.中国民用航空飞行学院计算机学院 广汉 618307)(2.南京航空航天大学计算机学院 南京 211106)
民航领域的高速发展随之带来的是计算机与民航业的充分结合,飞行训练作为民航领域中重要的一环,通过飞行训练中所产生的数据进行分析与研究能更好地提高训练效率。训练中的飞行科目完成情况,是飞行品质评估中的一项重要内容。在实际飞行训练过程中,由于观测角度的局限性,对飞行训练科目的完成情况不能更好地把控。从飞机机载设备所获取的飞行数据是对飞行阶段较为准确的记录,将飞行数据进行研究,并进行可视化分析,能更好地对飞行训练科目完成情况进行研究。飞行数据中包含每次读取间隔中的所有数据,具有复杂、抽象、数据量大的特点。将飞行过程中包含的飞行科目从飞行数据中进行提取,可更好地进行相关领域的研究。
张玉叶[1]采用欧氏距离判别分析和利用动态时间弯曲距离匹配的两级分类,能提高飞行动作识别的效率。王凤芹[2]将真实飞行数据中的飞行动作分为6 种基本动作,使用CART 决策树进行飞行动作的识别,通过GridSearchCV对决策树模型进行调优,在模型调优后的识别准确率更高。谢川[3]针对识别复杂特技飞行动作,采用专家知识库和知识推理机对飞行动作进行识别。成肖科[4]对飞机在飞行过程中的飞行阶段进行分析,采用决策树模型将飞行阶段划分为5 类,并使用仿真数据进行验证,证明决策树算法对飞行阶段划分的可行性。孟光磊[7]对飞行模拟训练的机动动作对应飞参数据进行研究,构建了机动动作识别的动态贝叶斯网络模型用于识别飞行动作。贾镇泽[5]对仿真的战斗机战术动作进行了在线识别,通过随机森林和支持向量机的两级识别方法,引入了飞机状态分割机制,能对战斗机的仿真飞行数据进行战术动作识别,并通过雷达对飞行数据进行捕获,实现敌机战术动作的在线实时识别。但由于在民航飞行训练中的真实飞行数据存在波动,该方法无法针对真实飞行数据进行有效识别。
本文针对飞行训练中真实飞参数据的特点,提出飞行状态发生改变时的分割机制,数据采集自Garmin 提供的G1000 系统[8]。在此基础上结合飞行科目的随机森林和支持向量机两级识别系统,能对飞参数据中所包含的飞行科目进行有效识别,为相关领域的研究提供基础。
在飞机飞行训练中基本的飞行动作包括直线平飞、转弯、上升与下降。将飞行动作可分为水平面和竖直面两部分,对于飞行动作进行分解后的识别准确率较高。由于飞行过程中飞机状态较为复杂,可先对飞行状态进行分割后,再进行飞机飞行动作的识别。
将飞机的飞行状态发生变化时,飞机的飞行动作也会随之发生改变。建立状态分割机制可以将飞行数据进行分割,分割机制对每帧数据与上一帧的变化进行判断。当变化量达到阈值时,则进行动作分割。经过数据预处理的飞行训练数据,对飞行动作识别的准确性与分割机制相关性较大。
研究竖直面的飞行动作时,高度变化量与俯仰角作为分割机制判断标准。对垂直面内的飞行动作,文献[9]采用爬升和下降两种动作来描述垂直面内的飞行动作。将水平面的飞行动作作为研究对象时,航迹角的变化量与坡度作为判断标准。阈值决定分割点的前后位置,影响从上一个飞行状态进入下一状态的时间。同时阈值大小决定小范围的飞行状态变化是否进行识别,在水平直线飞行的状态中,航迹角变化量较小且时间短的转弯不被识别。飞行数据的真实性导致数据存在波动,飞行状态分割机制的引入可有效解决该问题。飞行科目的识别流程如图1所示。
图1 飞行科目识别整体流程
飞行数据中飞机平均海拔气压高度AltMSL 记为h,航迹角TRK 为飞机运动方向。实验中采用两者的变化量作为实验参数,其中平均海拔气压高度变化量为正表示上升,反之下降,航迹角变化量为正代表右转,反之左转。存在阈值ε,当航迹角变化量大于ε时,判定飞机飞行状态发生变化,进行动作分割。当飞行状态被判定为发生转弯时,记录变量Lθ为角度累计变化量,当转弯角度累加到一定值时进行动作分割。
经过实验可知当分割阈值ε大于2.9°,小于3.1°时,可准确识别飞行科目,所以在研究过程中将阈值ε取均值3°,可保证飞行科目的识别精度。当ε取值过小时,会导致数据的轻微波动被识别为飞行状态发生变化。当ε取值过大时,会导致部分转弯无法有效识别。
在经过对10 组飞行数据中的盘旋进行数据分析,可知盘旋的角度为330°至360°之间,将转弯角度累加值的上界设置为100°,当飞机开始转弯时Lθ进行累加,当Lθ大于100°时进行动作分割。可将一段真实的盘旋数据分为连续三组100°的转弯以及一组小于90°的转弯。同时,在矩形起落航线中包含四个约等于90°的转弯,由于存在风向的影响,飞机会进行偏流修正,从而导致磁航向变化量略大于90°,航迹角变化量不受偏流修正影响。转弯累加值上限为100°可以满足所有90°转弯的动作划分,保证90°转弯在飞行科目识别中的飞行动作子序列中有且仅有一个动作元。飞机对风向进行偏流修正如图2所示。
图2 飞机进行偏流修正
由于实验的局限性,模型识别存在一定程度的误差,对于整个识别系统存在两个阶段的情况,误差对实验结果的影响将被放大。此阶段实验研究目的是能保证飞行动作识别的同时,需要尽可能地避免模型识别误差造成的影响。
对于分割出的飞行片段中,每一帧通过模型识别的结果需要赋予不同的权重值。相对小角度的航迹角变化量波动,大角度的转弯需要赋予的权重值更大。影响模型判断水平面飞行状态的主要因素为航迹角变化量与坡度,所以将这两项数据作为权重值的影响系数。默认各数据帧的初始权重为1,不同状态之间的转变采用的权重机制不同。当从水平直行状态向飞机转弯状态发生转变后,航迹角变化量为主要影响因素,而飞行状态转变相反时,应取航迹角变化量的倒数。
在一段分割完成的飞行数据段中,飞机的飞行动作理论上应保持一致。使用随机森林模型对该段飞行数据进行飞行动作识别时,由于数据的波动性、人工标签所导致的训练误差等因素,在该段数据中会出现少量不可避免的识别错误。采用飞行动作结合权重的方法,将数据帧的飞行动作识别结果标签赋予相应的权重值,并对该段数据中的权重值进行统计,取权重值较大的飞行动作标签作为该段的统一飞行动作。
飞行科目是由不同的飞行动作组合而成,通过上一阶段的飞行动作识别,将飞行动作序列作为此阶段识别的特征值。在飞行科目中较基础的包括矩形航线、S转弯以及8字飞行,这几种飞行科目并不涉及高度变化,都是在水平面内完成动作。涉及到起落的飞行科目包括矩形起落航线,其中航线的一边与五边分别为起飞和降落阶段,此科目在飞行训练中较为常见。在性能机动中的飞行科目较为复杂,其中包含大量飞机坡度转变以及高度的变化。飞行科目所包含的飞行动作序列较为特殊,通过相邻固定长度的飞行动作序列进行飞行科目识别。360°转弯,此处称为盘旋,与S 型转弯所包含的飞行动作序列较短,四段90°的转弯可组成该飞行科目。8字飞行与S转弯在飞行动作序列上存在一定程度的相似性,航迹角变化量是区分两者的有效方式。矩形航线和矩形起落航线在飞行动作序列上,也具有相似性。矩形起落航线包含起飞与降落两个阶段,涉及到高度的变化,在飞行动作识别中需考虑竖直面上的飞行动作。
在真实飞行训练中,飞行数据存在波动,在水平面内的飞行科目中,仍存在竖直面上小幅度波动。并且在部分训练科目中存在阶段性的缓慢高度变化,所以仿真数据实验与真实数据实验仍存在较大程度差异。在本文中以盘旋为主要研究对象,在此基础上可增加飞行科目的识别种类。S 型转弯与盘旋识别相似度较大,识别的可行性较高。平面内飞行科目的分类如表1所示。
表1 飞行科目包含动作子序列数量
表2 不同算法识别结果比较
实验使用的数据集为飞行训练未公开数据集,数据格式为CSV。其中包括经度、纬度、平均海拔气压高度、航迹角等位置数据信息,以及俯仰角、坡度等状态数据。
实验提取飞行训练数据中的经纬度、平均海拔气压高度、航迹角、俯仰角、坡度以及指示空速。由于飞行训练数据的真实性,对提取的实验数据进行异常值以及缺失值检查。首先通过航迹角和平均海拔气压高度数据计算得到数据帧之间的航迹角变化量ΔθTRK和高度变化量Δh,对于数据中存在的局部缺失值和异常值,使其值与前一数据帧值相等。为了消除载体飞机运动的影响,将飞参数据中的经纬度数据转换到地表北东下坐标系[10]。
从初步处理后的飞行数据中再次提取高度变化量、航迹角变化量、坡度、俯仰角数据。将数据中的高度变化量和航迹角变化量进行标准化处理,并将其余数据进行归一化处理。通过实验证明将数据进行归一化和标准化处理,无法提升识别精度,该步骤目的是为了降低不同的机型以及飞行环境带来的影响。
从初步处理后的飞行数据中再次提取高度变化量、航迹角变化量、坡度、俯仰角、指示空速数据,作为飞行动作识别模型的特征值。其中指示空速数据可对飞机空中或地面进行区分,高度变化量对垂直平面内飞机状态的影响相比水平面的影响较大,航迹角变化量与之相反。
飞行数据中包括水平、垂直以及整体动作标签,使用不同的特征项,对水平和垂直平面上的飞行动作标签进行识别。使用状态分割机制对飞行数据进行分割,并保存每段分割节点的索引序号。当状态分割机制对当前节点判断为飞行状态发生变化时,对从该节点开始到下个分割节点之间的飞行数据采用随机森林模型进行飞行动作识别。识别获得当前分割段内飞行动作标签序列,再通过该片段内每个数据帧的权重占比,确定整段飞行状态的飞行动作。
将三组飞行训练数据合并,作为随机森林模型的训练集,将另外一组飞行训练数据作为测试集。测试集共包含5196 条数据,使用训练完成的模型对测试集进行识别。对测试集飞行动作以及水平面内飞行动作识别结果进行对比,可得到模型对水平面内的飞行动作识别精度较高。将水平面内的飞行动作识别作为研究对象,可以提高第二阶段飞行训练科目识别的精准度。采用飞行状态分割机制对飞行数据进行分割后,再通过随机森林模型进行识别可提高识别精准度。将整段飞行动作统一,可减少模型在该段数据中的识别误差。由于分割点附近存在一定程度的误差,模型识别精度没有明显提升,但识别精度相比直接识别的精度更高。同时采用该机制对于第二阶段飞行训练科目的识别精度提升更大,飞行训练科目识别对于分割节点处范围内的识别精度要求较低。
通过对两种方法进行对比实验可知,随机森林相比决策树算法在实验中识别准确率较高,这是由于随机森林不依赖单一决策树的特征重要性。两种方法在水平面内进行飞行动作识别的准确率,相比较空间内动作识别较高,将空间内9 种飞行动作划分简化为水平面内3 种动作划分,可以提高识别准确率。在引入飞机状态分割机制后,两种方法的识别准确率在原有基础上进一步提高,证明了飞机状态分割机制的有效性。
将每段的飞行动作标签按照时间组成动作标签序列,相邻9 个飞行动作标签作为支持向量机模型的特征值。不同的飞行训练科目由不同的飞行动作序列组成,将不包含飞行训练科目的飞行动作序列以及不同飞行训练科目的飞行动作序列进行分类。
从测试组的飞行轨迹中识别出存在的飞行科目,在此次实验中包括8 字飞行和矩形起落。识别结果中8字飞行科目的轨迹图如图3所示。
图3 8字飞行识别结果
矩形航线与矩形起落航线的俯视图相同,对识别结果中的高度变化进行判断,当一边与五边分别为直线上升和下降时,识别结果为矩形起落航线,此次实验中存在两组矩形起落航线科目,模型能对其进行准确识别。识别结果中矩形起落航线的轨迹图如图4所示。
图4 矩形起落航线识别结果
将相邻4 个飞行动作标签作模型的特征值则会识别较简单的飞行科目,360°转弯可由4 个飞行动作进行表示。对一组飞参数据进行识别的结果如图5所示。
图5 360°转弯识别结果
对于飞行科目的识别,两级识别方案有一定程度的优势,各识别阶段独立进行,可采用权重的方式有效减少第一阶段的误差对第二阶段的影响。在采用分割机制的基础上进行飞行动作的识别,能提高整体识别精确度,并能解决真实飞行数据中存在的数据波动问题。虽然在分割点邻近处的识别精度会下降,但不会对第二级飞行科目的识别造成影响。采用随机森林进行飞行动作的识别时,仅对水平面内的飞行动作进行识别能提高该阶段的识别精度。对飞行科目的特点进行分析后,将飞行科目进行分类的方法能更好地对飞行数据进行识别。