车畅畅,王华伟,倪晓梅,蔺瑞管
(南京航空航天大学民航学院,南京 211106)
航空发动机故障诊断是确保飞机安全可靠运行的必要手段。在目前的研究中,能够采集到发动机大量正常运行状态下的状态参数。但是由于得到的故障案例相对较少,很难提取出通用特征用于表征故障规律。采用航空发动机数值仿真技术能够通过自定义设计参数和环境参数模拟部件故障,得到在故障下的飞行运行状态参数,并将其作为样本用于故障诊断,辅助发动机设计,提高自主研发效率和水平。20 世纪80 年代末以来,西方航空国家相继制定并实施了多项航空发动机仿真技术专项研究计划,并开发了多个航空发动机数值仿真系统。
美国NASA Glenn 研究中心基于MATLAB/Simu⁃link 和面向对象技术,开发了基于推进系统数字仿真计划的平台,并且相继建立了支撑发动机控制系统的军、民用通用推进系统仿真模型;俄罗斯中央航空发动机研究院研发了燃气轮机计算仿真系统,实现了航空发动机在不同工况下的真实工作过程以及在故障状况下的主要参数的高精度模拟;欧洲通过开发统一的面向对象的推进系统性能仿真软件(Propulsion Object-oriented Simulation Software,PROOSIS),针对各类航空发动机系统进行建模,功能涵盖发动机全生命周期;北京航空航天大学数值仿真研究中心开发了航空发动机数值仿真系统(Chinese Aeroengine Nu⁃merical Simulation Software,CANSS),初步实现了发动机软件模块的开发和集成,并部分完成了航空发动机整机及部件的模型计算和分析。在得到航空发动机仿真数据的基础上,可通过模型训练提取出数据通用特征,用于故障模式识别和故障分类。随着人工智能技术的不断发展,目前常用的数据特征提取技术包括传统机器学习方法和深度学习方法。传统机器学习方法包括支持向量机、滤波器、隐马尔可夫方法等,通过浅层网络模型来挖掘输入的状态参数和对应故障类型之间的线性映射关系,模型简单,训练速度较快。然而随着数据集和故障种类的增加,为了准确区分不同故障种类的数据,要求模型具有较强的非线性特征提取能力。作为机器学习方法的重要分支,深度学习模型通过多层的神经网络模型能够提取出大数据中的非线性复杂特征,被广泛应用于语音识别、图像识别、文本分类等方面,在故障诊断领域也有初步应用。Che 等使用深度信念网络模型和长短时神经网络模型进行飞机的故障诊断、剩余寿命预测和综合健康管理;Zhu 等建立了一种用于滚动轴承智能故障诊断的叠层剪枝稀疏去噪自编码模型;Xue 等提出一种基于深卷积神经网络和支持向量机的故障诊断方法,用于旋转机械多故障诊断。
本文提出基于航空燃气涡轮发动机性能仿真软件(Gas turbine Simulation Program,GSP)仿真和堆栈降噪自编码器(Stacked Denoising Autoencoder,SDAE)的航空发动机故障诊断方法,对模拟不同的部件故障进行故障诊断,并与不同模型的正确率对比验证了模型的有效性。
GSP 是欧洲国家航天实验室开发的面向对象燃气涡轮发动机的性能数值仿真软件。燃气轮机仿真程序GSP基于组件的建模环境,灵活的面向对象体系结构,允许用户通过拖放界面在模型窗口中将发动机部件模型特定排列来对任何燃气轮机配置进行稳态和瞬态模拟。GSP 是一种性能预测工具,特别适用于飞行环境、安装损失、某些发动机故障(包括控制系统故障)和部件劣化影响分析等参数敏感性分析。分析的输入基于模型配置,例如:可以指定燃料流量来计算产生的功率,或者当燃料流量设置为状态变量时,可以指定功率来计算相应的燃料流量。通过运行模拟,组件属性窗口中的输出数据集将显示在1 个表中,该表可由内置图形工具可视化。可用数据包括气体条件(温度、压力、质量流量、面积、速度等)和气体成分。仿真结果可以导出到制表符分隔的文件中,然后用于自定义分析。
降噪自编码是一种无监督的数据维数压缩和数据特征表达方法,由编码器和解码器组成,通过样本重构和误差优化提取出含噪声的样本隐藏特征,用于进一步的故障诊断。降噪自编码器的处理流程如图1所示。
图1 降噪自编码器处理流程
(͂|)代表将原始样本转化为含噪声样本͂的过程,添加高斯白噪声后的样本可以表示为
式中:用于控制噪声的大小;(0,1)为标准正态分布。
定义编码器和解码器为
式中:为权重;为偏置;和为激活函数。
自编码器的目标是通过反向传播算法和随机梯度下降方法找到1 组参数={,,,},使得重构后的样本与原始样本之间有最低的重构误差。损失函数定义为
式中:为和的组合;为正则化系数,用于控制权重的大小从而防止过拟合。
SDAE 就是在降噪自编码器的基础上,通过隐层堆叠实现样本降维,并通过激活函数输出分类结果。包含2个隐层的堆栈自编码器模型如图2所示。
图2 堆栈降噪自编码器
首先,将样本输入到层,通过降噪自编码器编码得到隐层特征,并通过解码得到重构样本,计算重构误差并优化模型参数后,得到训练好的降噪自编码器;其次,将隐层作为输入层,构建第2 个降噪自编码器,通过编码、解码、参数优化等操作得到训练好的隐层;再次,在完成预训练后还可以通过反向传播算法和随机梯度下降法来反向微调所有隐层的参数;最后,通过Sotfmax 激活函数连接隐层和输出层,并输出分类结果。
在GSP 仿真和SDAE 模型的基础上构建了航空发动机故障诊断模型,其故障诊断流程如图3 所示。根据型号特点使用GSP构建发动机模型;通过故障注入方法改变部件设计参数从而人为设定发动机的故障状态,仿真得到对应多种飞行状态下的长时间序列的状态参数;将采集到的状态参数数据和对应的故障类型组成故障样本,按照一定的比例分为训练集和测试集;将训练集带入到SDAE 模型中进行预训练和反向微调,并优化模型参数;将测试集带入到训练好的故障诊断模型中,得到最终的故障诊断结果。
图3 航空发动机故障诊断流程
为了验证所提出方法的有效性,基于GSP仿真软件构建了涡轮发动机模型,如图4 所示。该模型包括进气道、压气机、燃烧室、涡轮、尾喷管5 大部件。通过设定部件的属性来获取航空发动机运行时的状态参数,从而用于进一步的状态监测和故障诊断。其中部件的属性参数见表1。
图4 涡轮发动机模型
表1 部件属性参数
通过进气道和压气机的故障注入得到不同故障下的发动机状态参数,通过调整属性参数得到4 种故障类型,见表2。
表2 4种故障类型的定义
通过将燃烧室的燃油流量从0.5 kg/s 减小到0.1 kg/s,模拟发动机的减速过程,从而得到故障对应的运行状态参数。选取故障F1 的50 个监测时间序列对应的10 个状态参数并进行归一化处理,各状态参数如图5 所示。从图中可见,各状态参数的变化规律各不相同。
图5 归一化处理后的状态参数
由于原始长时间序列状态参数与故障类型之间具有弱映射关系,直接将样本带入到模型中很难训练出合适的模型用于故障诊断,本文从每组状态参数的长时间序列样本中提取出曲线特征,并将特征叠加到一起构成故障样本。本文选用的13 个时域和频域特征包括:最大值、最小值、平均值、峰值、绝对平均值、方差、标准差、峭度、偏度、均方根、波形因子、峰值因子和脉冲因子。4 种故障类型的13 种特征如图6 所示。从图中可见,不同故障之间的时频域特征区别很小,很难直接提取出故障规律用于故障诊断。本文将时频域特征组成故障样本,将故障类型作为样本标签,用于进一步深度学习模型训练。
图6 4种故障类型的曲线特征
将采集得到的时频域特征作为基础,通过添加随机噪声扩充为包含4000 个故障样本的数据集,并按照4∶1的比例分为训练集和测试集。构建包括2个隐层的SDAE模型,其参数设置见3。
表3 不同故障类型参数设置
将训练集带入到构建好的SDAE 模型中进行预训练,得到在编码和解码后重构样本与原始样本之间的重构误差,用于衡量自编码器训练效果。在预训练过程中2个隐层所组成的自编码器1、2的重构误差变化如图7、8 所示。从图中可见,经过50 个Epoch 的训练,重构误差逐渐减小到较小值。
图7 自编码器1的重构误差
在完成预训练后,计算预测结果与实际故障类型之间的交叉熵损失,并将其作为损失函数用于通过反向传播算法和随机梯度下降方法反向微调模型的参数。反向微调误差随着Epoch的变化如图9所示。从图中可见,误差很快减小到较小值0.0048并保持稳定。
图9 反向微调误差
图8 自编码器2的重构误差
为了验证本文提出方法的故障分类效果,构建了深度信念网络(Deep Belief Network,DBN)、人工神经网络(Artificial Neural Network,ANN)和支持向量机(Support Vector Machine,SVM)模型用于对比试验。对比模型与SDAE 模型有相同的训练集和测试集。其中针对多层神经网络模型DBN 和ANN,其模型结构与SDAE 的相同,传统的SVM 模型也与SDAE 模型有相同的输入和输出层节点。模型的参数设置和诊断正确率见表4。从表中可见,SDAE 的故障诊断正确率为99.5%。在相似的网络结构下,与DBN和ANN模型相比,故障分类正确率分别提高了0.8%和6.9%;与经典机器学习方法SVM相比提高了10.1%。
表4 对比模型的参数设置与故障诊断正确率
(1)利用GSP仿真可以得到多种故障模式下的样本,为故障诊断提供数据基础;
(2)基于SDAE 的故障诊断模型能够将降噪和降维功能集成到1个模型中,提高了模型的训练效率;
(3)与其他模型相比,本文提出的SDAE 模型有较强的特征提取能力,能够得到99.5%的故障诊断正确率,与深度信念网络(DBN)、人工神经网络(ANN)以及经典机器学习方法支持向量机(SVM)相比,分别提高了0.8%、6.9%和10.1%。
本文利用GSP仿真得到故障数据集,并考虑到实际运行环境中的噪声干扰,使用SDAE 模型用于故障诊断,得到了较为准确的故障诊断结果。接下来需要从多故障类型、长时间序列、耦合故障模式等多方面综合考虑,构建更加精准的、鲁棒的、泛化的故障诊断模型。