宫淑丽,马广佑,邓华佳,曹 力
(南京航空航天大学民航学院,江苏 南京 210016)
快速存取记录器(quick access recorder,QAR)记录了海量的飞行数据。借助QAR和深度学习算法对飞行数据进行深度挖掘与特征分析,研究数据间的内在规律,了解数据背后隐藏的信息,是实现民航飞机状态监控、飞行品质评估和保障飞行安全等的重要手段[1]。
QAR中记录的数据包含异常数据,异常数据中包含了大量有价值的信息,如提示飞行事故隐患、设备故障等,因此进行异常数据检测与分析,可为后续状态监控与品质评估奠定基础。
目前针对QAR的异常数据分析还非常有限,航空公司大多使用超限检测(exceedance detection,ED)的方法分析QAR数据,但该方法仅仅局限于事先定义好的异常,对于QAR数据中未知的大量异常无法分析,因此仍存在一定的安全隐患[2]。Basu等[3]提出了一种基于时间序列的单侧和双侧中值方法,可以提供快速、自动化的异常值检测,但实验结果表明窗口宽度和阈值的选择对结果有较大影响,因此对于不同类型的飞行参数无法通用;王光霞[4]使用分段算法对QAR的多元时序数据进行异常检测,以实现对飞机发动机的故障检测;费思邈等[5]和陈亚峰[6]基于K-means聚类算法分别对单维与多维飞行参数进行异常数据检测,但实时性较差。综上,目前对异常检测的研究不是根据QAR数据本身的特点进行的。
本文以QAR数据中的飞行级异常为主要研究对象,充分利用QAR数据具有时间相关性和空间相关性的特点,对异常数据进行检测,并获取异常产生的原因,为飞机设备健康状况和飞行品质分析打下基础。
QAR具有体积小、数据存取方便、数据存储容量大和存储可靠性高等优点。 QAR数据具有如下特点:1)具有自身的规律,如数据具有极值和变化趋势;2)具有时间相关性,首先QAR数据具有时序性,其次时间维度上相近的数据点之间相比时间维度上较远的数据点之间具有更高的相关性;3)具有空间相关性,即各飞行参数并非独立变化,而是相互影响的;4)含有异常且缺少标签。QAR中的异常值主要是由两类原因引起的,分别是设备/传感器故障和人为因素。设备/传感器引起的异常主要原因是监测设备故障、传感器故障、数据传输过程中引起的异常、QAR记录设备的故障;人为因素引起的异常主要是人为操纵引起的。
QAR数据的时间相关性和空间相关性是进行异常检测的依据。根据QAR数据的时间相关性进行单维飞行数据的异常检测,确定异常的子序列;根据QAR数据的空间相关性进行多维飞行数据的异常检测,确定异常的原因。本文将开展QAR数据的单维异常检测与多维异常检测研究。
异常数据也称为异常值或离群点,是指与大多数数据存在较大差异的数据。对于异常数据的定义,没有统一准确的标准。Hawkins[7]提出来的形式化定义是目前被广泛接受的、也是该领域的基础定义。该定义为:如果一个数据样本与其他样本之间存在较大的差异,以至于让人们怀疑它们是由完全不同的机制产生的,这样的数据样本就是离群点。由此可以得到:1)异常数据是明显异于其他大多数数据的一小部分数据集;2)异常数据有时并非无意义的噪声,其中可能蕴含重要信息,即异常数据更有可能揭示出飞机健康状况、飞行质量等。
根据时间序列中异常的定义,飞行数据有两类异常——序列异常和点异常,这两类异常又分别称为飞行级异常和瞬时异常[8]。飞行级异常指飞行数据中聚集为不寻常形状的序列或子序列[8-9],瞬时异常是指飞行数据中偏离期望值的异常点[9-10]。本文主要研究飞行级异常的检测。
针对单维飞行数据的异常数据检测方法主要有基于距离的方法[11-12]、基于分类的方法[13-14]和基于聚类的方法[15]等。由于QAR中的飞行数据缺少必要的异常值标签,因此神经网络等机器学习分类算法不适用。滑动窗口和聚类算法各有优缺点,因此本文设计了将二者结合起来的单维QAR异常数据检测算法,对多维参数则采用多元线性回归分析。
完整的QAR数据分析流程为:数据读取及译码;数据预处理;单维异常数据检测和多维异常数据检测。数据读取及译码是把存储于QAR中的数据转录下来,并进行译码。预处理是对“脏”数据进行清洗。本文是在这两步已完成的基础上进行的研究,因此只研究异常数据的检测。
单维QAR数据异常检测是根据同一维度的数据在时间先后顺序上的关联性判定其是否异常。由于不同飞行状态数据的时间相关性不是很大,因此采用分段法(滑窗方法)将飞行时间序列数据划分成多个子序列,对子序列的数据特征进行分析,对不同子序列的数据特征进行关联性分析,检测出其中的异常。但此时还无法确定该异常的属性,因此将该异常子序列数据存入异常数据库,后续采用多元线性回归方法进行多维异常检测,进一步确定异常数据产生的原因。
飞行数据的模式可简单分为正常模式与异常模式,常采用聚类算法进行异常检测。
分段可以有效地提取局部特征,又可以实现时间序列的维度约减,有效减少计算量。为增强聚类算法对整个飞行阶段的适用性,本文采用滑窗加聚类算法对单维飞行数据进行异常检测,以便更加可靠地检测出异常数据。
由于飞机在不同的飞行阶段或不同水平飞行员的操纵下,相关参数变化的幅度与快慢也不同,因此本文采用窗口自适应的滑窗方法,自适应地改变窗口的宽度。
对每一个QAR数据点作如下数据结构定义:i=[time,value,d_means,is_outlier,type]。其中:time为当前数据点的时间戳,即该信号的采集时刻;value为当前时刻该参数的值;d_means为点i的值与以该点为中心的滑窗均值m(i)之间的欧氏距离,默认值为0;is_outlier为布尔类型参数,用于判断当前数据点是否为异常数据,True表示异常,False表示正常,默认值为False;type为异常数据类型,0表示设备故障,1表示人为因素或其他因素,默认为-1,表示非异常数据。
单维数据异常检测的主要目的是确定每个数据点的is_outlier属性,建立异常数据库,保存检测出的异常数据。单维数据异常检测流程如图1所示,其中聚类簇数k=2(正常与异常),使用d_means属性的聚类代替直接对数据value值的聚类,更能体现出当前数据点的异常程度,具体步骤为:
图1 单维异常数据检测流程图
1)首先根据飞行阶段建立滑窗,定义滑窗宽度。
2)对整个飞行过程中的目标飞行参数进行扫描,并存储各点与其窗口均值的距离,将该距离存入每个数据点的d_means属性中。
3)当滑窗扫描完全部数据点后,对各点的d_means值进行K-means聚类分析。
4)规模较小的一簇为异常数据,将该簇各点的is_outlier属性置为True,并将其存入异常数据库,以待进一步进行多维异常数据分析。
2.2.1相关性分析
多维异常分析是基于QAR数据的空间相关性进行的,因此首先依据飞行原理选择与要分析的飞行数据相关的其他飞行参数,然后对其进行相关性分析。相关性分析是研究变量x与变量y间存在的相关程度,其计算公式为[16]:
(1)
2.2.2多元线性回归
QAR数据为多元时间序列,因此采用多元线性回归对QAR数据进行分析。多元线性回归方程为:
(2)
式中:Y为目标参数的时间序列向量;xij(i=1,2,…,m,j=1,2,…n,)表示参数i在时刻j的值;[k1,k2,…,km]T为回归系数向量;b为常数项。
采用多元线性回归对QAR数据进行分析,可以判断当前数据异常是因某一个设备故障产生的孤立现象,还是多参数同时改变导致飞行状况的实际改变。
2.2.3多维异常数据检测流程
多维异常数据检测流程如图2所示。
图2 多维异常数据检测流程
1)在数据点中随机抽取80%的数据作为训练集用于训练模型,20%的数据作为测试集。通过训练得出如式(2)所示的回归方程,拟合预测目标函数在任意时间戳下的数值。
2)将回归方程所得拟合函数中的相应数值与实际目标参数正常数据库中的数据进行对比,求出平均距离,以该距离为阈值,衡量异常数据库中数据与预测函数对应数值间的拟合程度。
3)若该异常点与预测点间距离小于阈值,说明当前异常数据并非是突发故障造成的,而是飞行状态客观改变造成的,type置为1;若该异常点与预测点间距离大于阈值,则认为不能拟合,说明当前异常数据是一个孤立的突发状态,其原因很可能是检测该参数的传感器或设备本身出现故障造成的,type置为0。
4)将不同的异常类型存入不同数据库中,以备相关技术人员进行后续检测、维修等工作时参考。
选取某A320客机南京至大连航段的真空速(TAS)为目标参数进行仿真分析,其中有一段异常序列,如图3所示。
图3 实际的TAS数据
为了对检测结果的质量进行评估,以便进一步对比分析该算法的可行性,采用误检率(false positive ratio,FPR)和漏检率(false negative ratio,FNR)作为异常检测效果的评价指标,其定义分别为:
(3)
(4)
式中:FN为正常数据被检测为异常的百分比;FP为异常数据被检测为正常的百分比;TN为异常的数据被正确地检测为异常的百分比;TP为正常数据被正确地检测为正常的百分比。
异常检测结果FPR和FNR值越小,说明检测的准确率越高,检测算法性能越好。
为了对本文提出的检测算法进行评估,采用两种方法进行仿真:一是采用固定滑窗聚类算法,滑窗宽度为w=100;另一种是采用动态滑窗聚类算法,即依据飞行阶段参数FLIGHT_PHASE将整个飞行阶段划分为爬升、巡航、下降和进近阶段,再依据各阶段飞行数据变化快慢调整滑窗宽度,各阶段相应窗口宽度见表1。采用静态和动态滑窗聚类算法分别对图4中的异常数据进行检测,检测结果如图4所示。
表1 窗口宽度设置
图4 TAS异常检测
从图4(a)可以看出,采用静态窗口时误检率(25.36%)和漏检率(11.27%)都很高,而采用动态窗口(图4(b))明显地提升了TAS的异常检测质量,爬升阶段的误检基本消除了,而下降阶段的异常数据序列漏检率(7.93%)也明显降低。因此采用动态窗口加聚类的方法可以较好地实现单维异常数据的检测。
多维异常分析需要选出与TAS相关的参数,包括俯仰角PITCH、横滚角ROLL、航向HEAD、燃油流量FF、油门杆位置TLA、气压高度HEIGHT和地速GS,将相关参数值代入公式(1)计算各参数间的相关系数,得到相关系数矩阵,见表2。
表2 相关系数矩阵
选取与TAS强相关的3个飞行参数——油门杆位置TLA、气压高度HEIGHT和地速GS对TAS进行多元线性回归分析,结果如图5所示。图中,实线代表TAS的真实值,虚线代表使用TLA、HEIGHT、GS3个参数拟合的预测值。多元线性回归方程为:
图5 多元线性回归结果
TAS=9.572 1+0.240 1TLA+
(-0.001 1)HEIGHT+0.987 4GS
(5)
计算TAS真实值与同一时刻的预测值之间的平均距离,即阈值为10.37节,当TAS异常数据与同一时刻的预测值之间的距离小于10.37节时,则认为异常是由于人为因素等原因造成的,因为所有相关的参数都有变化。而如果超过10.37节,就表示只有TAS的值异常,这种异常可判定为传感设备故障。
根据单维TAS异常分析生成异常数据库,求各异常点与预测值间的距离,得到最大距离为9.22节,最小距离为0.13节,平均距离为3.93节,67%的数据点与预测值的距离小于5.00节,符合多元拟合结果,说明其异常并非某一传感设备故障导致的独立突发异常,而是飞行状态的客观改变,极有可能是飞行员人为操作造成的。
事实上,TAS中的第3 870 s到第4 073 s之间数据的异常确实是飞行员的操作引起的,因此本文得到的这个结果与真实的飞行状况是相符的。
从图4(b)中可以看出,该算法具有较低的漏检率,但误检率相对较高。漏检和误检集中在下降、进近阶段和起飞的初始时期及降落的末期,这是由于:
1)在进近阶段,飞行员动作变化较快,导致记录的飞行数据变化大,有时甚至会产生仪表反应不及时的现象,易产生误判。
2)起飞的初始时刻及降落时,由于数据还未完全进入滑窗,或是没有新的数据点进入滑窗,导致该时刻滑窗内数据量较小,并且在这两个阶段,数据变化快,造成算法误判。
3)仿真中所采用的TAS数据异常值呈现“M”形,这可能是飞行员在TAS过大后人为调整造成的,低谷处已经回到正常数据范围,这使得算法没有识别完整的“M”形异常序列,造成漏检。
上述原因导致爬升、下降阶段不如巡航阶段的检测效果好,大范围波动的异常数据可能出现漏检。但本文算法相比其他算法在误检率与漏检率指标上已有明显提升,能满足异常检测要求,且与实际的异常原因一致。
QAR数据异常检测与分析是挖掘异常飞行数据、进行飞行品质评估与飞行状态监控的重要方法。本文在分析QAR数据特点的基础上,针对QAR数据的异常模式进行分析,基于QAR时间相关性与空间相关性的特点,设计了单维飞行数据异常检测与多维异常分析方法,并用一段QAR异常数据进行仿真验证,结果表明,基于飞行阶段的动态滑窗加聚类算法较静态滑窗加聚类算法能明显提高异常检测质量,而多元线性回归分析方法分析的异常结果与实际相符,因此本文设计的方法能满足异常检测要求。