基于改进CNN-BiGRU的电机轴承故障识别*
2022-07-27陈玉球
陈玉球
(湖南有色金属职业技术学院机电工程系,株洲 412007)
0 引言
滚动轴承是同步电机中的重要部件之一,其健康状况直接影响电机的使用寿命[1]。因此,及时准确地识别出电机轴承故障,对保证工业生产的安全、提高生产效率、及时消除隐患具有重要的意义[2]。
目前,工业中广泛采用的电机轴承故障识别技术基于轴承振动信号,分析手段主要包括传统信号处理方法和机器学习算法两大类[3]。在信号处理技术方面,主要采用变分模态分解、小波变换、及图傅里叶变换等方法从时域、频域或时频域提取振动信号特征以辨别轴承是否发生故障以及故障类型。但信号处理类方法适用性较差,严重依赖专家经验[4]。在机器学习识别领域,通常利用不同的信号处理技术,得到表征电机轴承运行状态的特征量后,与k-最近邻(k-nearest neighbor,k-NN)[5]、支持向量机(support vector machine,SVM)[6]、朴素贝叶斯[7]和随机森林[8]等算法相结合,实现电机轴承故障自动识别。SOUALHI等[9]提出了改进蚁群算法优化SVM的电机轴承故障识别方法,但运行效率较低。BAZAN等[10]将信息论引入轴承振动信号的分析和处理中,但故障识别率较低。机器学习需要借助信号处理算法提取相关特征,此外由于机器学习模型较浅导致的识别准确率较低等问题,也限制了机器学习算法的应用范围[11]。
深度学习技术能自动从轴承振动数据中学习故障特征,一定程度上避免了复杂的人工特征提取过程,为电机轴承智能故障识别提供了有益思路。HOANG等[12]利用深层卷积神经网络结合信息融合技术对永磁同步电机轴承进行故障识别;KAO等[13]利用一维深层卷积神经网络进行永磁电机退磁和轴承的故障识别;LI等[14]提出一种带有梯度惩罚的Wasserstein生成对抗网络轴承故障识别方法。然而,上述深度学习模型缺乏判别特征的学习机制,难以自适应地集中学习具有判别性的故障特征,此外,深层网路的可解释性较差,模型仍为黑箱模型[15]。
针对上述问题,笔者将CNN和BiGRU结合并引入动态选择和自注意力机制,实现故障特征有效提取,在不同背景噪声干扰下的特征学习能力和故障识别准确率也优于其他深度学习模型。
1 ICNN-BiGRU电机轴承故障识别模型
为有效提取电机轴承振动信号故障特征,实现不同故障类型的准确识别,现构建采用ICNN-BiGRU的轴承故障识别模型,步骤如下。
1.1 输入层
输入层将输入振动数据每隔M个点采集一次,连续采集N次生成一个子段,最后将原始振动数据分割为M段,每段有N个数据点,如下所示:
X=[x1,x2,x3,…,xM],xi∈RN
(1)
式中,X为模型输入样本数据;xi为分割后的每一段数据。
1.2 卷积池化层
CNN利用卷积核对输入数据的局部区域进行运算,生成相应的特征。随层数的增加,不断提取特征,最终得到的特征具有平移不变性和旋转不变性。CNN具有稀疏连接和权值共享等优势,可减少需要训练的参数数量,避免过拟合。
在卷积层中,由于使用的数据是电机轴承振动信号,因此采用一维卷积神经网络(one-dimensional convolution neural network,1DCNN)进行特征提取。设卷积核的数量为FN,长度为FL,步长为1,则一维卷积层对输入X在第j∈[1,2,…,FN]个卷积核处的计算公式sj可表示为:
sj=[sj(1),sj(2),…,sj(N-FL+1)]
(2)
(3)
式中,Hjc为第j卷积核的第c通道,Hjc∈RFL;*T为矩阵*的转置;fj为第j个卷积核的激活函数;bj为第j个卷积核的偏置;q:q+FL-1为第q个卷积区域。输入X在第1层卷积层的输出特征向量S可表示为:
S=[s1,s2,…,sFN],sj∈RN-FL+1
(4)
通常在卷积层生成的特征图上加入池化层。池化层可提取每一个特征向量中最重要的局部特征且通过池化操作可显著降低特征维度。采用最大池化层,池化长度为K,则池化操作提取特征可表示为:
Z=[z1,z2,…,zFN],zj∈RNp
(5)
zj=[zj(1),zj(2),…,zj(Np)]
(6)
zj(v)=max(sj(v-1)K+1,sj(v-1)K+2,…sj(vK)),
v∈[1,2,…,Np]
(7)
式中,zj为输入sj的池化层输出,具有Np维度。
1.3 动态选择层
动态选择层(dynamic selection,DS)可自行选择特征向量中有用的通道信息,抑制无用通道信息,进一步提高卷积运算的特征学习能力。DS层包括一个全局平均池化层和两个全连接层。全局平均池化层表示挤压操作,全连接层表示激励操作。卷积池化运算后得到的特征向量Z通过全局平均池化层得到C∈RFN,C通过两个全连接层,生成一个包含不同权重的信息通道段d∈RFN,最后将生成的d与Z进行通道式相乘操作,从而获得一个新的特征向量M。动态选择的过程如图1所示。
图1 DS网络结构图
DS内部计算公式可表示为:
C=[c1,c2,…,cFN]
(8)
(9)
d=Fds(C,U)=f(U2f(U1C+b1)+b2)
(10)
M=d⊗Z=[m1,m2,…,mFN],mj∈RNp
(11)
式中,U1∈R(FN/2)×FN、U2∈RFN×(FN/2)为全连接层权重矩阵;b1∈RFN/2、b2∈RFN为全连接层偏置向量;下标1、2表示第一个和第二个全连接层;f为Relu激活函数;⊗为对应通道相乘。
1.4 BiGRU层
门控循环单元(gated recurrent unit,GRU)将遗忘门和输入门合成一个单一的更新门,模型结构比LSTM更简单,使用较少的训练数据便能获得更强的泛化能力。GRU的结构如图2所示。
图2 GRU内部结构
对于输入M,在t∈[1,2,…,Np]时刻,GRU的计算和更新过程如下:
rt=σ(Wr·[ht-1,mt])
(12)
ut=σ(Wu·[ht-1,mt])
(13)
(14)
(15)
GRU状态传输是从前往后单向传播,笔者利用电机轴承振动数据提取轴承故障特征,各数据点之间存在潜在的相互关系,因此采用BiGRU可以更好地捕捉其双向依赖关系[16],BiGRU结构如图3所示。
图3 BiGRU结构
(16)
(17)
(18)
式中,V为隐藏状态的权值矩阵;W为输入信息的权值矩阵;h=[h1,h2,…,hNp]∈RNp×D;D/2为GRU内部设置的隐藏神经元数量;D为BiGRU输出维度;箭头为时间转移的方向。
1.5 自注意力机制层
特征矩阵中不同特征向量并不一定对轴承故障识别都具有同等贡献,因此引入自注意力机制(self attention,SA)调整不同特征向量的注意力权重,弱化冗余特征信息,保留目标特征。SA层模型结构如图4所示。
图4 SA层模型结构
SA层的计算公式如下:
(19)
式中,ht为输入数据经卷积池化层和BiGRU层之后输出的特征向量;q为与任务相关的查询向量;F为采用点积方式运算的评分函数,用于计算每个输入向量与查询向量之间的相关性。
(20)
式中,αt为注意力分布,即在给定h和q的条件下,第t个输入向量的概率。当分段特征概率分布生成时,整个注意力层的输出如下:
(21)
1.6 分类层
SA将特征矩阵中不同特征向量的权重参数进行优化,并将其输出至分类层。分类层包含2个全连接层:第1层是带有ReLU激活函数的全连接层,不仅可对注意力模块输出结果进行展平操作,还可提高整个模型的非线性表达能力;第2层采用SoftMax多分类器模型,实现轴承多故障识别。将增强特征向量v进一步输入ReLU激活函数的全连接层,然后使用SoftMax分类器,实现多故障识别。
e=f(Wrv+br)
(22)
y=SoftMax(Wfe+bf)
(23)
式中,f为ReLU激活函数;Wr、Wf为全连接层需要训练的权重矩阵;br、bf为全连接层需要训练的偏差参数。
1.7 电机轴承故障识别模型整体框架
笔者提出的ICNN-BiGRU电机轴承故障识别模型主要包括输入层、卷积池化层、DS层、BiGRU层、SA层以及分类层。首先,通过2个一维卷积层和两个最大池化层提取轴承振动数据样本中的空间和局部时间特征;其次,为了突出有效信息通道,抑制无效通道,在每1个最大池化层后,构造了一个DS层;然后,将提取的特征矩阵通过BiGRU层,充分挖掘长期时序特征;此外,考虑到BiGRU层输出的特征矩阵中不同特征向量并不一定对轴承故障识别都具有同等贡献,引入SA层调整不同特征向量的注意力权重,过滤或弱化冗余特征,保留目标特征;最后,堆叠1个全连接层和1个输出层实现轴承多故障识别。ICNN-BiGRU整体框架如图5所示。
图5 ICNN-BiGRU整体框架
2 实验验证
为验证ICNN-BiGRU方法的有效性,采用轴承试验台进行试验分析,试验台如图6所示。
图6 轴承试验台
试验台由电源系统、电机拖动系统和数据采集系统3部分组成。电源系统由汇川MD500E系统通用变频器和50Hz工频电源组成,电机拖动系统由实验电机、转矩转速功率传感器以及CZS-5磁粉制动器构成,实验电机拖动磁粉制动器,通过张力控制器改变试验电机负载转矩。实验电机为3台MS-180ST-M19015B-43P0永磁同步电机,其中一台无故障电机作为实验参照,另外两台带有轴承外圈故障用于算法验证。轴承故障通过电火花刻蚀技术加工得到,轴承的损伤尺寸分别为0.16 mm和0.32 mm。
在Winpython5.2.0环境下的Spyder编译器使用Python 3.8进行程序编写,编程框架为PyTorch 1.5,硬件以及软件环境如表1所示。
表1 程序运行环境
2.1 实验数据和参数
为了模拟电机轴承的各种复杂工作条件,每一种类型电机设定了不同的负载和转速,采样频率为20 kHz。笔者采用滑动分割方法进行样本划分。每个样本的长度和滑动分割的步长分别为2048和28,得到10 500个样本数据,最后对样本数据预处理进行标准化操作。对于每种故障信号,选取80%作为训练集,剩余20%作为测试集,数据集的详细描述如表2所示。
表2 轴承故障数据集的详细描述
为缓解梯度消失的问题,每层卷积后使用LeakyReLU函数[17]作为激活函数,并采用零填充操作保持输出维数和输入维数相等。此外,为避免训练数据过拟合,在全连接层后采用随机失活技术,概率值为0.5。
笔者采用反向传播算法对参数进行更新,在训练过程中,采用交叉熵损失函数和Adam优化算法,并引入余弦退火学习率,初始学习率设为0.001。余弦退火学习率可以在训练中梯度下降算法陷入局部最小值时,通过突然提高学习率,来“跳出”局部最小值并找到通向全局最小值的路径。笔者所提ICNN-BiGRU电机轴承故障识别模型的主要结构参数如表3所示。
表3 ICNN-BiGRU模型主要结构参数
为验证ICNN-BiGRU的优越性,从以下4节展开分析。首先,验证DS模块对通道特征选择和故障识别的有效性;其次,根据SA在时序特征筛选方面的特性,验证SA的有效性;然后,利用t分布随机近邻嵌入(t-distribution stochastic neighbour embedding,t-SNE)可视化网络特征,深入理解特征提取和分类的内在机理;最后,与其他网络模型进行对比分析验证所提网络模型具有更好的轴承故障识别准确率。
2.2 动态选择模块的有效性
本节主要讨论模型中DS模块对故障识别性能的影响,为此建立了包含3个、2个、1个、0个DS层的4种网络结构,分别是3DS-BiGRU-SA,2DS-BiGRU-SA,1DS-BiGRU-SA,0DS-BiGRU-SA。这4种网络结构主要从DS模块的数量以及有无DS模块方法进行比较。在试验过程中,通过在原始振动信号中加入高斯白噪声模拟轴承在实际工作环境中的强噪声干扰。在高斯白噪声为-5 dB的情况下进行4折交叉验证,试验结果如表4所示。
表4 动态选择试验结果 (%)
由表4,当DS模块数量为2时,网络的性能最高,当继续增加DS模块数量后,网络的性能下降,原因可能是过多的DS模块导致过网络过拟合。进一步观察试验结果,2DS-BiGRU-SA比0DS-BiGRU-SA的准确率增加了4.56%。2DS-BiGRU-SA网络的训练准确率和损失值如图7所示。
图7 2DS-BiGRU-SA网络的训练准确率和损失值
由图7可知,DS模块可通过增强某些特征通道的学习来有效的提高网络的特征学习能力,从而使整个网络具有更好的性能。为进一步理解DS模块的内部运行过程,对通道向量的输出进行可视化操作,试验结果如图8所示。
(a) 第1个DS模块输出
(b) 第2个DS模块输出
由图可知,随网络深度增加,DS模块会抑制CNN中无用的特征通道,增强有用的特征通道。尤其是第2个DS模块,它只选择几个特征通道,但网络性能却得到了有效提升,进一步证明采用DS模块进行通道特征选择的有效性和必要性。
2.3 注意力机制模块的有效性
本节主要讨论模型中SA层对故障识别性能的影响,同样在高斯白噪声为-5 dB的情况下进行验证。试验建立了2种网络结构:CNNDS-BiGRU,CNNDS-BiGRU-SA。4折交叉验证的结果如表5所示。
表5 注意力机制实验结果 (%)
可以看出CNNDS-BiGRU-SA比CNNDS-BiGRU识别准确率增加了4.23%。这是因为并非所有的特征对于故障识别任务都有效,移除自注意力机制后,网络最后输出的每个特征都具有相同的概率权重,无法过滤或弱化冗余特征,从而导致性能下降。CNNDS-BiGRU-SA网络结构的训练过程如图9所示。
图9 CNNDS-BiGRU-SA训练准确率和损失值
为更好地理解SA的特征选择机制,对SA层输出权重概率进行可视化操作,结果如图10所示。
(a) 无故障 (b) 外圈故障
可以看出,SA对于不同的轴承故障的表现是不同的。当轴承正常时,注意力概率权重分布在大多数时间序列段,这表明大部分的时间序列对于故障识别的输出贡献基本相同;当轴承发生故障时,注意力概率权重分散在少数的时间序列段,这表明这些少数的时间序列对于最终的输出结果起至关重要的作用。进一步证明注意力机制可以有效捕获时间序列段的关键故障特征信息。
2.4 特征可视化
为深入理解ICNN-BiGRU的特征提取和识别机制,采用t-SNE在2维空间中对整个网络过程中提取的特征进行可视化,如图11所示。通过t-SNE技术将高维信号映射到低维空间中,可以发现,随着网络层次的加深,特征逐渐分离。
图11a是原始振动数据的映射结果,在2维空间中是杂乱无序分布;图11b是经过CNN、DS模块以及BiGRU输出的映射结果,可以看到已经呈现为较为明显的分类特征,但其中两个类别之间的距离较小;图11c是SA层输出的映射结果,可以发现通过筛选信息后,特征进一步分离,类与类之间的距离更加明显;图11d是经过全连接层和SoftMax分类层输出的映射结果,可以看到各个故障类别特征分布更加紧密,不同类别之间分类明显。可视化的结果进一步表明模型在特征学习和故障识别方面具有较好的性能。
(a) 原始数据 (b) CNNDS-BiGRU输出
2.5 对比实验
通过4折交叉验证,将笔者所提ICNN-BiGRU与1DCNN、2DCNN、Res-1DCNN、两层BiGRU组成的循环神经网络及多尺度残差学习卷积网络(AKR-Net)在不同噪声环境下的性能进行比较,其均值如表6所示。观察表6可知,随噪声强度的增加,各网络的故障识别性能都有所下降,但笔者所提改进CNN-BiGRU模型的准确率显著好于其他5种网络模型,特别是在SNB=-5 dB时,笔者所提模型的准确率仍达到了93.13%。5种深层网络4折交叉验证均值对比试验结果表明:通过引入DS层和SA层,可以依据不同轴承故障状态自适应定位相关特征信息,实现故障特征精准有效的提取,较好地提升了模型的抗噪能力。对比实验结果证明了ICNN-BiGRU模型在不同噪声背景下特征提取的有效性。
为进一步分析每种故障的识别准确率和召回率,笔者所提模型在信噪比为5 dB和-5 dB下的混淆矩阵如图12、图13所示。
图12 5 dB混淆矩阵图13 -5 dB混淆矩阵
由图12和图13可知,即使在信噪比为-5 dB时,笔者所提ICNN-BiGRU模型在轻度故障下的精度仍为100%,说明该模型在强噪声下仍能以较高的精度区分轻度故障样本和其他故障样本,而主要的误差来自于其他故障类型的分类。此外,在信噪比为5 dB时,网络在大多数故障模式下的精度都非常接近100%,这表明改进CNN-BiGRU具有良好的实际应用前景。
表6 深层网络均值对比 (%)
3 结论
提出一种ICNN-BiGRU的滚动轴承故障识别方法,实现永磁同步电机轴承故障智能识别。ICNN-BiGRU模型直接将电机轴承原始振动信号作为输入数据,利用卷积池化层和DS模块,自适应的提取局部时间特征并定位到关键故障特征通道;采用BiGRU,充分挖掘长期时序特征;并通过自SA对时序特征段进行筛选,进一步增强模型的学习能力。
所提轴承故障识别模型可有效抑制特征向量中的强背景噪声干扰,有效建立了振动信号与轴承故障之间的非线性映射关系。最后,通过采集无故障和故障电机不同负载运行条件下的振动数据进行分析,ICNN-BiGRU相较于其他深层网络,表现出更好的特征学习与分类性能,证明了笔者提出采用动态选择和自注意力机制能自适应地集中学习更多有区别的特征,定位到振动数据中的关键故障信息,从而提供更准确的轴承故障识别结果。