当前位置:首页 期刊杂志

基于最小二乘支持向量机的飞行训练动作识别

时间:2024-05-04

庞璐 路晶

(中国民用航空飞行学院计算机学院 四川省广汉市 618300)

随着航空领域的迅速发展,各个国家对航空专业人员的需求也随之增加。截至2021年8月31日,我国共有43家正式飞行员培训学校。其中拥有航线运输驾驶员(飞机)整体课程培训资质,现有在训学生6380人,新增833人。与2020年12月相比,增长了15%。与此同时,航空业对于航空安全的要求也越来越高,飞行训练工作是保证飞行安全,实现民航质量发展的基础性工作。研究表明,通过有效飞行训练可以大幅降低不安全事件和事故的发生率。飞行员需要经过专业的训练,获得相应的驾驶执照后才可以进行商用航空运输。对飞行员进行专业的飞行训练能够大幅度降低不安全事故的发生率,保证航行安全,提高飞行质量。为了判断飞行员的训练质量,飞行质量监控评估系统应运而生。空中飞行由基本飞行动作构成,飞行动作的标准与否是判断驾驶员飞行训练质量高低的一个重要依据。目前,在飞行员培训学校中评判飞行动作的好坏是由飞行教员来完成的,并没有一个统一的标准。对飞行训练动作进行识别,将其使用数字化的手段呈现出来,可以帮助飞行教员更加客观地判断,从而建立一个完整标准的评价规范。

1 基本原理

1.1 支持向量机(SVM)

支持向量机(Support Vector Machine, SVM)是一种高精度的机器学习算法,通常用来解决数据二分类的问题,由感知器的算法模型发展改进而来,也可以直接用于回归应用。支持向量机同样适用于多元分类,通过OvR(One Vs Rest)或者OvO(One Vs One)的方式来解决多分类问题。在不考虑集成学习算法,不考虑特定的数据集的时候,在分类算法中SVM可以说是特别优秀的。目前,广义的SVM算法分为两类:线性分类以及非线性分类。

SVM算法将数据的特征向量转换为超平面中的点,在这些点是线性可分的情况下,画出一条线将数据点分为两类,这条线与两类数据点的距离最远。支持向量机的分割线并不一定是直线,也可能是曲线,取决于样本点之间的复杂关系。

图1:SVM划分的最小间隔

图2:SVM划分的最大间隔

图3:四种飞行动作识别图

样本的特征并不都是二维的,很有可能是高维的,因此数据点映射的空间被称为超平面。在超平面中可以画出无限条线,SVM会找出其中最优的一条线,能够很好的将数据样本划分为两类且间隔最大。当样本有部分的变动时,确保对划分线的影响最小,产生的分类结果比较稳定,不容易受到个别数据变化产生的影响。在数据样本多的时候支持向量机的效果更好,但在数据少的时候也可以解决复杂分类问题。在实际应用中的很多情况下,样本是多维的,使用二维平面无法对其进行很好地分类,需要将其进行升维处理。

1.2 最小二乘支持向量机(LS- SVM)

SVM算法在运行时非常消耗内存,需要时间久,训练所占资源相对较大。Suykens等人对损失函数进行研究,在目标函数中加入了二范数,提出了最小二乘支持向量机(Least Squares Support Vector Machines,LS-LVM)。SVM中的不等式约束条件替换为等式约束,使得原本优化问题的求解转为线性方程的求解,降低了优化问题求解的难度,提高了算法的运行速度,更适合大规模数据的分类问题,同时算法的精度也没有降低很多。

SVM算法中的不等式约束:

将其变为等式约束:

在最小二乘支持向量机中,γ是非常重要的,是一个用于控制最优解和最小偏差之间平衡的权重。需要选取正确的值数,γ大,即对于偏差的容忍度很小,容易出现过拟合的情况,γ小,偏差大,拟合效果不够好,两种情况都会导致最终的结果不是最优的。对称正定阵在数值计算方面表现出很好的特性,只要合理选取γ值,就可以将方程变为正定矩阵,保证了算法运行过程中的计算稳定性,分类器的能力也得到了进一步的提升。在解决多分类问题时,使用最小二乘支持向量机通常将其转换为多个二分类问题,逐步进行,最终得到多个分类。LS-SVM采用最小二乘误差的方式对所有的样本数据进行拟合,只需要对线性方程组进行求解,不用了解非线性变换的步骤过程,在进行运算时更加简单方便。

表1:样本数据划分

表2:简单飞行训练动作识别结果

2 数据处理

2.1 数据获取

GARMIN公司生产的导航地图设备是广泛应用于通航飞机导航及飞行数据记录的产品,产品面板带有SD卡插槽,可插入SD卡记录飞行数据,广泛用于飞行训练用的教练机。数据的形态大致可分为表格数据、图片数据、音频数据以及文本数据,文中主要针对时序表格数据进行研究。文中所采用的全部来自于真实的飞行训练,即从飞行训练机上的SD卡中传输的数据。原始数据共有64项,其中包括了发动机数据,飞行环境数据,飞行航迹数据以及飞行姿态数据。识别飞行动作主要用到飞行姿态数据以及飞行航迹数据,其他的数据是无用的。由于飞行训练为了保证飞行动作的标准,采用的样本都是来自飞行教员驾驶飞行的数据,飞行训练动作的完成度高且标准,确保飞行动作的识别率及准确率。由于不同机型的数据格式略有差异,为了排除不同因素的影响,本文选择了塞斯纳172R、商用驾驶员执照训练课程(单发飞机)(整体) 第1阶段、同一教员、同一机号的飞行训练数据,从不同的CSV文件中选取尽可能多的飞行动作数据。实验中采用了log_210316_074139_ZUUU.csv数据文件中的4551行数据以及log_210615_181942_ZUUU.csv文件中的1165行数据,每行11列数据,共计62876组数据。

2.2 数据预处理

由于SD卡在传输过程中会受到空中各种不确定因素的干扰,导致数据产生部分缺失或错误,需要对其进行简单的处理。在选择原始数据时,已经排除掉缺失值和噪声太多的数据,对于含有极少缺失值的数据,采用KNN算法进行估计,首先通过相关性分析找到距离缺失值最近的k个数据,对这k个数据加权计算得到缺失数据。飞机的飞行动作是连续不断的,而SD卡传输的数据频率是1秒一个,为使飞行动作的识别更加准确,可采用线性插值的方式将其频率增加为5个/秒。具体处理方法如下:

由于飞行训练数据的数值单位、取值范围各不相同,为提高精度、加快求最优解的速度,对其进行归一化处理。使用线性函数归一化,也叫离差标准化。即将不同范围内的数据转换为[0,1]之间的数据。归一化的函数为:

其中,x为任一特征数据的最大值,x为最小值,x为特征数据的真实值,X即经过归一化的数值。将各项特征数据进行归一化,减少了数值大小范围不同对于实验结果造成的影响,有助于提升实验结果的准确度。

3 实验步骤与分析

3.1 飞行基本动作

飞行训练中通常将开关车、地面滑行、起飞、上升、转弯、平飞、下滑、目测、着陆和停机称为飞行的十个基本动作。一些复杂的飞行动作,比如穿云、八字航线等均是建立在飞行基本动作的基础上,由基本飞行动作组合排列而成。本文首先对五种基本飞行动作进行识别,其中包括:上升、下降、平飞以及左转、右转。下图是以纬度为x轴、经度为y轴、平均海平面气压高度为z轴,对飞行动作进行可视化:

由于训练机在飞行时不能做到完全平稳,在动作过程中会产生颠簸,表示在图上即数据发生波动,如上图的下降曲线,一般来说,数据在微小范围的波动是允许的,不将其进行拆分,同样看作一个连贯的简单动作。

3.2 样本选择

采用平均海平面气压高度、平均海平面气压高度一秒变化量、指示空速、指示空速一秒变化量、升降率、俯仰角、俯仰角一秒变化量、滚转角、滚转角一秒变化量、航向角、航向角一秒变化量、飞行动作标签共12个数据,即样本的维数为12。选取前十一个数据为特征值并将其进行归一化处理,第十二个数据为标签。通过特征值的变化来预测第十二个数据。飞参数据中每一秒可以作为一个样本,将CSV文件数据分割为训练集和测试集,将数据中每类样本的80 %为测试样本的样本,20%作为测试样本。实验中对于参数的选择进行了多次的试验,最后确定的参数选值为:惩罚系数10,RBF核函数参数0.8。选择RBF函数作为核函数,核函数参数越大,支持向量越少,参数值越小,支持向量越多,支持向量的个数会影响训练与预测的速度。

对样本进行训练并分类方法如下:

[alpha,b]= trainlssvm({input_train,output_train,type, gam,sig2,'RBF_kernel','preprocess'});

LSSVMoutput_train=simlssvm({input_train,output_train, type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},input_train);

LSSVMoutput_test=simlssvm({input_train,output_train, type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},input_test);

实验进行于个人计算机上,Windows 10,64位操作系统。使用所用到Python版本为Python 3.9.5,Python工具为PyCharm 5.0.3 x64,同时使用到Matlab R2020b等软件。具体的样本数据量如表1所示。

3.3 实验结果

通过对样本进行训练、拟合,对测试样本进行计算分类,得到算法的动作识别标签,将其与原始数据中的飞行动作标签进行对比,最终得到的实验结果如表2所示。

可以看出,使用LS-SVM对于飞行动作的识别率较高。

4 结论

通过LS-SVM对飞行训练动作进行识别,对于单个的简单动作识别准确率较高,计算量相对SVM较小,速度快,当二分类问题变为多分类问题,识别准确率会降低。且分类越多,识别率越低。当飞行动作分类达到12个时,使用LS-SVM算法的准确率已经下降到70%左右。在五种基本动作中,对于上升、下降动作的识别率较高,对于平飞的识别率最低。由于空中气流以及温度的变化,导致航空器在平飞时仍会有波动,数据会上下变化、忽大忽小,难以进行分辨,因此识别率较低。与民用航空数据不同,飞行训练数据的稳定性低,变化幅度大,部分特征数据不完善。因此实验还有很多方面可以改进,例如特征参数的选择,飞行训练动作与数据的相关性等问题。对于飞行动作的划分标准不同,也会导致实验结果不同。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!