李 阳 黄 伟
(上海电力大学自动化工程学院 上海 200090)
在燃气轮机运行过程中,涡轮叶片需要承受高温、高压和剧烈振动等冲击,蠕变、氧化、热疲劳等是叶片常见的故障类型,不仅影响燃气轮机的寿命,还会造成很大的经济损失[1],因此涡轮叶片的状态监测和故障诊断非常重要,是燃气轮机状态监测和故障诊断的热门研究方向之一。状态监测是一种挖掘系统运行信号识别其运行状态的技术[2],若能正确从振动信号提取得到故障特征,就可以准确地判断机器的运行状态[3]。目前,使用叶片振动分析和振动特征分析叶片缺陷已被广泛研究。
特征提取通常是对振动信号的时域或频域特征进行分析概括,提炼出较为显著的特征,主要采取的方法有傅里叶变换和小波变换[4],能将时间域信号变换到频率域,但是频域图只能反映信号的频域信息,没有考虑其在时域上的特性。经验模态分解(Empirical Mode Decomposition,EMD)在对非线性、非平稳的信号分析时具有良好自适应性,该方法已经在各种故障诊断领域中得到应用:文献[5]针对齿轮振动信号的非平稳特征的实际情况,利用EMD将处于不同状态下的信号分解到多个本征模态函数(Intrinsic Mode Function components,IMF),将其中具有故障信息的IMF分量作为故障特征,提出了一种基于支持向量机和EMD的齿轮故障诊断方法。文献[6]通过EMD对透平排温的时间序列进行预处理,提取各频带能量作为特征参数,成功应用于叶片工作状态和故障类型识别。文献[7]把自适应滤波算法和EMD相结合,提取出能够表征定子绕组故障的特征,实验表明该方法能够有效消除电机电磁噪声的干扰。上述所采用的识别方法主要是基于“浅层学习”的算法,对信号采集和特征处理的要求高,不仅非常耗时,而且非常依赖于技术人员的经验与技术,因此很难保证每次都能够很好地提取到样本特征。
深度学习(Deep Learning,DL)是一种实现人工智能的强大技术,可以自动从原始数据中挖掘特征,有效解决了人为组合特征的不全面和耗时问题,获得了比传统机器学习方法更好的效果[8-9]。卷积神经网络根据输入数据的不同,可以分为一维、二维和三维卷积神经网络,其中:二维卷积神经网络主要应用在图像处理、计算机视觉等领域;一维卷积神经网络更适合处理工业中的一维时序数据。该方法已经在实时电机故障诊断中得到应用:文献[10]使用深度卷积神经网络对齿轮箱故障进行诊断,提取振动信号的时域特征与频域特征,输入到模型中进行故障识别;文献[11]从原始数据中提取特征,利用最大平均差异减小训练集和测试集的差异惩罚,实现滚动轴承的故障诊断。这些方法处理的对象是一维的时间序列信号,因此在特征提取的过程中容易出现特征丢失现象,而目前二维卷积神经网络结构并不能直接适用于一维振动信号[12],给模型的设计带来一定的难度,造成了诊断效果和效率的局限性。瞿合祚等[13]提出一种时域信号的二维映射方法,采用灰度表达对应信号采样点的值,运用卷积神经网络对电能质量扰动事件进行分类;陈敏等[14]将心电信号转为二维图像,通过对相应的图像分类来实现心血管疾病的诊断,对疾病的治疗和预防有重要意义。
受文献[13-14]的启发,本文引入格拉姆角场将属于时间序列的原始振动信号转为二维黑白图像,通过SA-2DCNN对转换得到图片进行学习和训练,将与之对应的振动信号进行分类,实现叶片的故障诊断。以三菱M701F4燃气轮机的历史运行数据进行实验,与目前特征提取和样本分类两阶段的诊断方法进行对比,验证了本文方法的有效性。
Gram矩阵用于度量向量两两之间的相关性,能体现出不同向量间的紧密程度,其表达式为:
(1)
式中:〈ai,aj〉表示两个向量的内积。〈ai,aj〉计算公式为:
(2)
(3)
根据Gram矩阵可以确定特征之间的关系,由于时间序列是一维的,内积运算不能区分有价值的信息和高斯噪声,必须将一维时间序列映射到二维空间[15]。
将原始时间序列X={x1,x2,…,xn}中的xt(其中t=1,2,…,n)归一化到[-1,1]之间有:
(4)
(5)
(6)
经过上述的变换有ρt∈(0,1]、θt∈[0,π]。这种编码是双映射的,与笛卡尔坐标相比,极坐标能够通过ρt保留绝对的时间性。
根据式(5)可知每个向量的范数会随着时间增加,两个不同观测向量之间的内积将偏向于后者[16],原来在笛卡尔坐标系内的内积公式会受到一定的限制,因此在极坐标当中对内积重新定义:
〈ai,aj〉=cos(θi+θj)=
(7)
将式(7)代入式(3)中得到GAF:
(8)
根据式(8)可知,GAF的对角线对应了缩放后时间序列的值,在一维序列转为二维矩阵的同时保持了时间依赖性,能够表征原始信号在时间维度上的特征。
二维卷积神经网络采用局部连接和权重共享的方式,对原始数据进行更高层次和更抽象的处理,能够有效自动提取数据中的内部特征,结构如图1所示。
图1 2DCNN结构
X∈Rn×m表示输入矩阵,经过卷积运算得到:
oc=ReLU(X⊗Wc+bc)
(9)
式中:⊗表示卷积运算;卷积核Wc∈Rj×m是权值矩阵;j为卷积核尺寸;bc为该层的偏置,激活函数ReLU能够加速模型收敛;oc为卷积核特征映射结果。池化(pooling)运算用于选择卷积层序列最重要的特征,形成池化层。全连接层对全局特征进行抽象组合得到:
od=f(op(last)×Wd+bd)
(10)
y=softmax(od×Wo+bo)
(11)
式中:Wo为输出层的权值矩阵;bo为偏执;激活函数为Softmax。
自注意力机制的灵感来自人类的翻译机制:在翻译句子时,译者通常不会阅读整个文本,而是阅读部分文本并进行翻译,然后重复该过程至全部工作完成。SA对不同的信息计算相应的注意力权重,得到含有概率分布的特征编码,突出重要的特征向量,从而提升模型性能[17]。图2为SA机制的示意图,xi(i=1,2,…,n)为所有输入的信息,αi为对应的权重,Xi(i=1,2,…,m)为输出的特征向量,SA机制控制了每个属性组合可能产生的影响:比如单独的x1、x2可能对于目标值的影响不大,但是二者的组合却对目标值有巨大决定作用,在这种情况下SA能够调整特征组合的重要度。
图2 自注意力机制的结构
残差神经网络是由残差块构建的,深度去噪卷积神经网络(Depth Denoising Convolution Neural Network,DnCNN)由具有残差结构的级联卷积层组成,DnCNN将残差块和批归一化算法(Batch Normalization,BN)引入到深度卷积神经网络模型中,能够剔除输入矩阵中的干扰噪声,降低了网络训练难度,提高模型的训练速度和性能。
长期运行在恶劣工作环境中的涡轮叶片要承受高温、高压和剧烈振动等冲击,涡轮叶片断裂是燃气轮机最主要的故障,占燃气轮机总故障的42%[18],导致该故障发生的原因主要有疲劳、蠕变、腐蚀、磨损,将这四种异常状态和正常状态分别用编号1-5来表示。
在故障诊断领域,故障样本的数量总是远远少于正常样本,因此对于四种故障样本存在较高的错分率,需要对样本进行不平衡处理。合成少数类过采样技术(Synthetic Minority Oversampling Technique,SMOTE)解决了随机过采样引起的过拟合问题[19],其步骤如下:
(1) 依次选取少数类样本中每个样本xi作为合成新样本的根样本。
(2) 根据向上采样倍率m从xi的同类别的j个近邻样本中随机选择一个作为合成新样本的辅助样本,重复m次。
(3) 在样本xi与每个辅助样本间进行线性插值,最终生成m个合成样本。
将采用SMOTE方法平衡后的所有样本转为二维黑白图像,以叶片在正常状态下的一组振动信号为例,原始信号包含6 000个观测值,如图3(a)所示,序列长度太大会导致得到的GAF过于复杂,因此需对原始序列进行降维。
(a) 原始序列
(b) PAA降维后的序列
(c) 归一化后的序列
(d) 极坐标变换 (e) GAF可视化图3 信号-图像转换过程
分段聚合近似(Piecewise Aggregate Approximation,PAA)能够减小数据存储并提高计算效率,PAA将长度为n的序列S=[s1,s2,…,sn]分成k段,每段的平均值为新的值,得到序列Q=[q1,q2,…,qk],其中n>m,k=n/m,Q中元素的计算公式为:
(12)
经过PAA得到的序列能对时间序列数据进行数据降维,提高数据挖掘算法的效率。通过PAA对原始序列降维后得到图3(b)中长度为100的序列,按照式(4)将该序列的值缩放到[-1,1]的区间内,然后根据式(3)和式(6)将其从笛卡尔坐标系当中转化到极坐标中,如图3(d)所示,图3(e)为GAF矩阵的可视化结果,以大小为28×28的图片格式保存。
在现场实时测量振动信号会受到一定程度的噪声干扰,需要对转换得到的图片进行降噪处理。构建的DnCNN每个残差块包含了7个卷积层,第一卷积层的卷积核尺寸大小f1=3,对应的卷积核个数为64,中间层的卷积核尺寸f2=3,卷积核个数为128,最后一层的卷积层的卷积核尺寸f3=1,对应的卷积核个数为3。设置Padding=“same”的填充方式,实现残差块的跳跃连接,保证输出向量具有同样的维度。利用DnCNN对涡轮叶片在五种状态下的振动信号转换的图片进行去噪,效果如图4所示。
图4 DnCNN去噪前后对比
建立的SA-2DCNN模型包括3个卷积层、3个池化层、注意力层和全连接层,首先利用卷积层压缩参数数量,经过池化层进行特征降维,通过注意力机制对重要的特征赋予更高的权重,产生更具有分辨性的特征向量,然后由全连接层转换为一维结构,最后通过输出层的Softmax函数得到相应的类别。模型结构及参数如表1所示,卷积核宽度、卷积核高度和当前层输入特征图深度分别用CH、CW和CC表示;S指池化层池化带宽度;Strides表示卷积核的移动步长;Dropout表示以一定概率把神经元之间的连接断开,有利于抑制过拟合现象,提高模型的泛化性。
表1 SA-2DCNN结构参数
续表1
在神经网络的训练过程中,模型的超参数会影响最终的分类准确率,选择哪种优化方法寻找超参数对模型的性能有很大的影响。
随机梯度下降(Stochastic Gradient Descent,SGD)没有引入动量的概念,导致其收敛速度太慢,容易陷入局部最优值。自适应动量估计(Adaptive Moment Estimation,Adam)同时利用了一阶动量和二阶动量,即:
mt=β1·mt-1+(1-β1)·gt
(13)
(14)
式中:β1和β2分别为两个移动平均的衰减率,通常取值为β1=0.9、β2=0.99。
使目标函数以更快速度收敛,避免陷入局部最优,但是由于其自适应性会导致学习率在学习过程中发生剧烈变化,目标函数有可能无法收敛[20]。内斯特罗夫加速梯度(Nesterov Accelerated Gradient,NAG)是对一阶动量的改进:在更新过程中是以下一个时刻的梯度而非当前时刻的梯度[20],此时梯度定义为:
(15)
式中:ωt表示损失函数;α表示学习率,通常设为0.001。
NAG利用了目标函数的二阶导数信息,使超参数随时间变化,保证学习率稳定变化。将NAG与Adam结合得到的Nadam能够对学习率有更强的约束,实现更好的搜索[21]。
实验数据来自某发电厂M701F4型燃气轮机的历史运行结果,通过SMOTE和GAF得到用于故障诊断的数据集,80%作为训练集,20%作为测试集。诊断流程如图5所示,包括对已有的历史数据集与现场信号数据进行“信号-图像”转换、模型训练与模型验证。
图5 故障诊断模型结构
首先对已有的历史数据集进行转换,得到相应的图片集,设置相应的优化算法、迭代次数和损失函数对模型进行训练,通过损失函数变化情况来判断训练的进度,根据准确率变化判断模型性能的优劣,从而得到一个具有良好识别能力的分类模型;在进行异常诊断时,将振动传感器实时采集到的信号转换成图像,作为测试目标,通过DnCNN对其进行降噪处理,根据分类模型输出的类别判断当前叶片的工作状态,实现叶片早期的异常诊断。
由于不同的优化算法对模型的性能有很大的影响,分别利用SGD、Adam和Nadam算法对SA-2DCNN模型进行训练。在训练过程中,设置迭代步数epoch为500,批样本个数batch_size为50,损失函数loss选择交叉熵categorical_crossentropy,模型在训练过程中对应不同优化算法的损失函数和准确率变化趋势分别如图6(a)和图6(b)所示。
(a) 损失函数变化情况
(b) 准确率变化情况图6 训练过程中损失函数和准确率的变化趋势
从图6(a)可以看出,SGD算法对应的训练速度最慢,损失函数最终为0.266,Adam在epoch为420时loss值为0.112,而Nadam更快,仅用350个epoch损失函数达到稳定值0.059,表明选择Nadam能够更快地训练模型;根据图6(b)可知,SGD在epoch为500时候准确度仅为0.792,而Adam和Nadam分别在epoch为420和350时达到稳定值0.937和0.962,三种优化算法对应的模型在测试集上准确率分别为0.775、0.925、0.951,说明模型没有出现过拟合。统计模型在测试集上的相关指标如表2所示,可以看出通过Nadam算法训练得到的模型具有最优的表现。
表2 模型在测试集上的性能
为体现引入注意力机制可以有效提升模型对重要特征学习的能力,采用主成分分析(Principal Components Analysis,PCA)提取全连接层神经元的分量,通过t-SNE将模型对图片训练识别得到的复杂特征进行降维和归一化处理,得到的二维散点图如图7所示。
图7 SA-2DCNN训练后的特征可视化
图7的散点图坐标轴无实际意义,用系数PC1和PC2作为两个坐标轴的名称。可以看出,2DCNN可以有效地提取样本特征:相同类别的样本很好地聚集在一起,有着明显的汇聚中心,不同类别的样本也可以明显地区分。第5类样本(正常状态)和其他四种故障样本有着很远的距离,这说明该模型可以很好地判别该样本是否为故障信号;四种故障样本之间也有着很明显的边界,体现了该模型能够准确地从“序列-图像”转化后的图片中判断出原始振动信号的类型。
表3为SA机制引入前后的2DCNN和SA-2DCNN模型在测试集上的分类结果,可以看出后者的准确率更高、耗时更短,这是因为SA机制能够加强模型对GAF主对角线上信息的学习效率,使模型聚焦于重要的特征向量,在克服信息冗余的同时减小了模型的复杂度,从而获得更好的诊断性能。
表3 自注意力机制引入前后的模型性能对比
在现场实际测量振动信号时,环境、人员、仪器等众多不确定因素会导致测量结果受到噪音干扰。为验证本文方法对噪音信号的抵抗能力,给数据集中的测试信号添加0~10 dB的白噪声,然后再进行同样的“序列-图像”变换。对未进行去噪和利用DnCNN去噪后的图片集分别进行测试,得到的准确率如表4所示。
表4 降噪处理前后的模型识别准确率对比
在考虑不同程度的噪声干扰时,模型对未降噪的测试集识别率较低,在较大噪声的情况下准确率大幅度降低。对于利用DnCNN处理过的图像集,模型保持了较高的准确率,能够保持准确率损失小于0.04,由此说明DnCNN去噪处理能够保证分类模型的识别能力,对实现精确的诊断有重要意义。
为了验证提出的SA-2DCNN模型具有更好的诊断性能,首先与经典的故障诊断方法对比,将非平稳的振动信号进行经验模态分解,计算每个IMF的能量,将不同频段上信号的能量熵作为特征向量,将特征输入到分类模型如K最近邻(k-Nearest Neighbour,KNN)、随机森林(Random Forest,RF)和反向传播神经网络(Back Propagation Neural Network,BPNN)当中进行训练,实现样本分类和故障诊断。引入精确率(precision)、召回率(recall)和F1系数,定义如下:
(16)
(17)
(18)
式中:TP表示样本真实类别是i,预测是i;FP表示样本真实类别不是i,预测是i类;TN表示样本真实类别不是i,预测不是i类;FN表示样本真实类别是i,预测不是i类。将上述每种方法各进行5次实验,将平均值作为该方法的性能评估指标,统计不同方法的诊断结果如表5所示。
表5 SA-2DCNN与传统方法的性能对比
由于KNN、RF与BPNN的输入特征需要基于EMD分解和专家经验得到,每次选择的特征存在一定波动,测试准确率并不高,二维卷积神经网络的准确率比传统方法提高了0.05~0.10。
为验证“二维”卷积神经网络具有更好的故障诊断能力,对比文献[22-23]中的长短时记忆(Long Short Term Memory,LSTM)神经网络、去噪自动编码器(Denosing Auto-Encoder,DAE)深度学习模型诊断方法,同时建立1DCNN模型[24],包含六个卷积层、六个池化层和一个全连接层,采用滑动窗口的方式对去除噪音干扰后的信号进行截取,将其作为模型的输入,窗口的宽度即为样本的长度,设置窗口的宽度为1 200,移动步长为800,全连接层激活函数为ReLU,输出层激活函数为Softmax。统计不同方法的诊断结果如表6所示。
表6 SA-2DCNN与一维深度学习模型的性能对比
LSTM直接将预处理后的原始非线性数据作为输入,虽然识别难度增大,但是在保证准确率的同时提高了时间分辨率,降低了对故障数据长度的依赖性;DAE对原始信号进行第一层特征提取,并堆叠多个自动编码器构成深度网络,提取深层次特征进行样本分类,具有较好的识别效果;1DCNN受输入信号的长度和数量的限制,导致其卷积层的感受野不够大,只能通过增加网络层数来克服,而过高的复杂度会导致训练非常耗时,不能彻底发挥卷积神经网络处理大规模样本的能力;与上述三种一维深度学习模型不同的是,SA-2DCNN的输入是二维图像,具有拉伸不变性,通过二维卷积层和二维池化层可以更深入地挖掘图像中包含的信息,二维卷积神经网络凭借精简的结构和广阔的视野,依靠自注意力机制能够更好地聚焦于重要特征,准确率提高了0.03~0.05,具有更好的分类识别性能。
本文采用格拉姆角场将涡轮轴承的振动信号把一维时间序列变换为二维图像,在2DCNN当中引入自注意力机制对变换得到的二维图像中主对角线上的特征进行学习,同时结合Nadam优化算法进行训练,提出一种基于SA-2DCNN的涡轮叶片故障的诊断方法,对比了传统的故障诊断方法,得出以下结论:
(1) 与SGD、Adam优化算法相比,Nadam能更精确、更快速地训练网络模型,避免了因学习率剧烈下降带来的精度降低问题。
(2) GAF的主对角线元素保留了原始信号在时间维度上的信息,引入自注意力机制可以得到模型的重点关注,消除冗余的信息,从而节省更多的时间,有利于提高分类的精度。
(3) SA-2DCNN的识别准确率比传统模型提高了0.05~0.10,比一维深度学习模型提高了0.03~0.05,能够更好地辨识涡轮叶片状态,进而根据叶片早期的异常表现进行定期维护和及时检修,提高发电的安全性和经济性。