田科位,董绍江,姜保军,裴雪武,汤宝平,胡小林,赵兴新
(1.重庆交通大学 机电与车辆工程学院 重庆 400074;2.重庆大学 机械传动国家重点实验室 重庆 400030;3.重庆工业大数据创新中心有限公司 重庆 400056;4.重庆长江轴承股份有限公司 重庆 401336)
滚动轴承作为旋转机械的关键零部件之一,其健康状态对整个机械设备的性能、稳定性和使用寿命有巨大的影响[1]。在实际工作过程中,由于工作环境的变化和不可避免的噪声干扰,很难提取和概括特征。因此,建立一种准确、鲁棒的滚动轴承故障诊断模型具有重要意义。
基于数据驱动的智能故障诊断方法逐渐成为故障诊断领域的主流应用[2]。Qu等[3]利用双树复小波包变换与多分类器相结合的方法对滚动轴承进行了诊断;Ali等[4]使用经验模态分解和人工神经网络,对轴承的故障诊断进行了研究;史庆军等[5]提出了基于经验模态分解和局部均值分解方法相结合,将特征量矩阵输入到支持向量机实现轴承故障检测。这些方法虽然拥有不错的性能,但是都极度的依赖于故障诊断专家的经验和知识,而且针对不同类型的故障所使用的特征提取方法也不尽相同。
近年来,深度学习技术在计算机视觉,语音识别和自然语言处理等多个领域都取得了巨大的成功。深度学习方法可以从振动信号中自动提取故障特征[6],因此也被广泛应用在滚动轴承故障诊断领域。Abdeljaber等[7]提出了一种自适应一维深度神经网络模型,用来对旋转机械进行检测和定位结构损伤;Liu等[8]利用递归神经网络对滚动轴承的故障进行分类,并采用基于门控递归单元的降噪自动编码器来提高故障分类的准确性;Hao等[9]提出了一种基于一维卷积长短时记忆网络的多传感器方法,实现了轴承变负载的故障诊断。
以上这些模型在轴承故障诊断方面取得了不错的效果,但是没有同时考虑到在实际的工业应用中不可避免的噪声干扰以及机械系统在载荷发生变化的问题。基于以上原因,本文提出了一种基于改进深度残差网络的轴承故障诊断方法。该模型在残差神经网络残差块中引入了SENet结构增强各个特征提取通道之间的联系,提高在噪声和变负载时故障特征的提取能力;同时使用激活函数LReLU和Dropout技巧提高模型抗干扰能力。此外,为了抑制模型的过度拟合,对原始训练样本添加了噪声。最后通过对比实验证明,该模型在噪声环境和负载变化时仍有较高的故障识别精度。
He等[10]提出了残差神经网络(residual neural network,Resnet),Resnet的核心思想是引入残差模块(residual building block,RBB)来学习残差,残差学习有效解决了由于神经网络深度增加性能反而下降的问题。
卷积层是使卷积神经网络(convolution neural network,CNN)与传统的完全连接的神经网络不同的关键组件。卷积层中的卷积核运算比完全连接层中的转换矩阵具有更少的参数。输入特征图和卷积核之间的卷积(通过添加偏差项)运算可以表示为:
(1)
式中:xi是输特征图的第i个通道;yj是输出特征图的第j个通道;k是卷积核;b是偏置项;Mj是用于计算输出特征图第j个通道的集合。
批量归一化(batch normalization,BN)是针对内部协方差偏移问题而提出的一种归一化方法。与一般的标准化方法不同,批量标准化是嵌入在深度神经网络内部层与层之间的一种运算。BN的计算过程表示为:
(2)
(3)
(4)
yi=γzi+β
(5)
式中:xi和yi分别表示批处理中第i个观测值的输入和输出特征;Nbatch是分类任务中每个批次样本的个数;γ和β是两个可训练的参数,可以自适应学习到更合适的特征分布;ε是接近零的常量。
ReLU作为最常见的激活函数,解决了S型局部梯度爆炸和梯度消失的问题,加速了神经网络的收敛。ReLU的算法如下:
y=max(0,x)
(6)
式中:x和y分别是ReLU激活函数的输入和输出。
残差模块(residual building block,RBB)是Resnet的核心,RBB通过使用快捷连接跳过卷积层块来实现,避免了梯度爆炸和消失,有助于构造更深的神经网络结构,改善故障诊断的最终性能。
卷积层块F(x)的执行路径为“输入x→BN层→激活函数ReLU→卷积层→BN层→激活函数ReLU→卷积层→输出F(x)”[10]。当卷积层块的输入与输出维度相同时快捷连接的输出值就为输入值x,残差模块的最终输出结果如式(7)所示;当输入与输出的维度不同时,快捷连接需要使用一个卷积核大小为1×1的卷积层来匹配输出结果的维度,从而得到快捷连接的输出H(x),最终输出结果如式(8)所示。
y=F(x)+x
(7)
y=F(x)+H(x)
(8)
ReLU作为最常见的的激活函数,当输入的一维滚动轴承振动信号为负时,它会舍去这类振动信号,削弱了模型对轴承故障的识别能力。对此,本文方法采用LReLU作为激活函数来解决当输入为负时ReLU产生的问题[11]。具体算法如式(9):
(9)
式中:x和y分别是LReLU激活函数的输入和输出;α是根据实际经验来取值,文献[11]通过大量的实验证明了α取值范围在0~0.5时效果达到最佳。
Hu等[12]提出了挤压和激励(SENet)网络结构,它可以通过自动获得每个通道的重要性,增强各个通道之间的联系,从而达到提升模型性能的目的。该结构的核心是挤压(Squeeze)和激励(Exctation)两大操作。
Squeeze操作是对输入的特征图进行全局池化,将每个特征图压缩为一个具有全局感受野的实数。具体算法如式(10)所示:
(10)
式中:xi代表输入为尺寸为H×W的第i个特征图。
Exctation操作主要是由两个全连接层和2个激活函数组成,可以帮助捕获通道相关性,生成对应通道的权重。算法如式(11)所示:
yi=Fex(Fsq(xi),ω)=σ(ω2δ(ω1Fsq(xi)))
(11)
式中:ω1表示第一个全连接层计算;ω2表示第二个全连接层计算;Fsq(xi)表示Squeeze操作过后的输出值;δ表示激活函数ReLU;σ为Sigmoid函数具体算法如式(12):
(12)
式中:x表示经过2次全连接计算的输出值。
交叉熵损失函数Softmax一般作为最后输出层的激活函数,它将神经网络的输出值固定在(0,1)之间以表示不同事件发生的概率,文献[13]详细介绍了交叉熵的执行过程。算法如式(13)所示:
(13)
式中:Nclass表示分类任务所涉及的的类别,xj表示上一层的第j个输出;yj表示神经网络的第j个预测值。
全局平均池化(global average pooling,GAP)是一种对特征图求平均值的操作,可以大大减少神经网络训练时的参数,加快神经网络的计算速度,详细计算过程见参考文献[14]。
如图1(a),(b)分别为两种改进的残差模块RBB-1和RBB-2。改进的核心部分是在残差模块的第二个卷积层之后添加了分支SENet结构,生成了对应通道的权重,最后通过与第二个卷积层的输出结果相乘;与此同时将LReLU作为激活函数。
图1 改进的残差模块Fig.1 Improved Residual building block
本文所提改进深度残差神经网络轴承故障诊断模型结构如图2所示。首先在原始信号样本中添加了噪声信号作为输入,增大样本的同时还可以避免网络参数过多引起的过拟合问题,提高模型的鲁棒性[15];然后信号依次经过卷积层、最大池化层、改进的残差块、Dropout、全局平均池化,最终通过Softmax输出故障类别,进而得出诊断结果。
图2 改进深度残差网络网络模型Fig.2 Improve the network model of deep residual network
图2中改进的残差堆叠块由4个改进残差模块堆叠而成,加深了神经网络模型的深度,能够更好的提取故障信号深层次的特征。Dropout增加了模型的抗干扰能力。最后使用全局平均池化来代替全连接层,减少模型训练时的参数,加快了模型的计算速度。
针对在实际应用中机械系统负载变化和噪声的干扰,本节设置不同的实验对本文方进行验证,并与不同的方法进行对比,证明了本文方法的优越性。
实验采用的轴承数据来自美国凯斯西储大学(Case Western Reserve University,CWRU)[16],实验轴承的型号为SKF6205电机轴承,信号的采样频率为12 kHz。实验轴承具有球体故障,内圈故障和外圈故障三种故障类型,每种故障类型的故障直径分别为0.177 8 mm,0.355 6 mm和0.533 4 mm,最终形成包含正常状态在内的十类故障。在本文实验中,通过重叠采样的方式增大样本集,每种故障的样本数量为500,每个数据样本包含2 048个数据点,按1、2和3 hp负载制作成分别包含5 000个数据样本的数据集A、B、C。数据集D为A、B、C的并集。按照比例4∶1无交集的将每个数据集划分为训练集和测试集,其中训练集用于模型的训练,测试集用于模型的测试。
仿真实验使用的深度学习框架为Tensorflow,编程语言为Python,在windows7中运行。实验过程采用Adam优化算法更新网络训练参数,迭代次数为3 000,每个批次的样本数量为50,学习率设置为0.001,衰减率为0.9,Dropout为0.5,激活函数为LReLU。本文的模型参数设置如表1。
表1 模型参数设置Tab.1 Model parameter setting
本小节分别使用构建好的数据集A、B、C、D进行实验。由于在训练神经网络模型的过程中权值的初始化是随机的。为了避免实验结果受其影响,每个模型在每个数据集上重复做五次实验,然后取其平均值。
3.3.1 全局平均池化与全连接层运行时间对比
本文模型采用全局平均池化代替了全连接层。实验选取选取数据集D进行作为训练,训练轮数设置为3 000 轮,训练时间如表2所示。
表2 训练时间对比Tab.2 Training time comparison
从表2看出,训练轮数同时为3 000轮时,由于全局平均池化减少了模型计算的参数量,训练时间较全连接层减少了14.3 s。
3.3.2 噪声环境下故障诊断性能分析
在实际的工作环境中,传感器所测得的振动信号不可避免的会受到噪声的污染,造成振动信号中的故障信息被掩盖。如图3所示,可以看出在原始信号中加入了信噪比为-4 db的高斯白噪声后幅值发生了改变,原始信号中的故障特征被严重淹没,很难从复合信号中识别出原始信号的故障类型。对此,本小节选取数据集D进行实验,通过在测试样本中添加不同信噪比的高斯白噪声进行测试。
图3 原始信号、噪声信号及信噪比为-4 db的复合信号Fig.3 The composite signal with the original signal,noise signal and SNR of -4 dB
为了检验本文网络模型改进部分的效果,设置了三个变量。变量一设置为使用的激活函数为ReLU;变量二设置为没有使用Dropout技巧;变量三设置为不添加SENet网络模块,实验结果如图4所示。可见,每个改进部分都提升了本文模型在噪声环境中轴承故障识别的准确率。其中SENet网络模块的添加起到了最关键的作用,在信噪比为-4 db的强噪声环境中轴承故障识别率提升了7.19%。
图4 改进部分在噪声环境的故障识别准确率Fig.4 Improve the fault identification accuracy in noisy environment
为了验证本文模型具有较好的抗干扰能力,分别与传统Resnet(参数设置与本文模型相同)、TICNN[17]、WDCNN[18]三种模型进行对比。实验结果如图5所示,本文模型的故障识别准确率均为最高。在SNR=-4 db环境中Resnet、TICNN及WDCNN的识别准确率分别为80.43%、82.05%和92.65%,而本文模型为93.4%,对比其他三种模型分别提高了12.97%,10.9%和0.75%。
图5 不同模型在噪声环境中的故障识别准确率Fig.5 Fault identification accuracy of different models in noisy environment
为进一步分析本文模型在噪声环境中,不同位置的故障识别准确率对诊断结果的影响,表3展示了在SNR=0 db环境中,不同位置的故障识别准确率。可见,本文模型对正常状态下的轴承识别率达到了100%;轴承内圈故障和外圈故障的识别率都达到了99%以上;而滚珠故障的识别准确率稍逊,是由于0.355 6 mm滚珠损伤的故障识别率仅为96.88%,降低了对滚珠故障的识别准确率,影响了最终的诊断结果。
表3 不同位置的故障识别准确率Tab.3 Fault identification accuracy of different locations
3.3.3 负载变化时故障诊断性能分析
在实际的工作环境中,滚动轴承的工作负载发生改变是不可避免的。图6显示了不同负载下的时域图,从中可以看出不同负载振动信号的幅值和相位都有所差异。深度学习是一种通过训练大量数据,达到自适应提取特征的方法,当负载发生变化时相同类型的故障特征减少,导致深度学习诊断模型的诊断性能降低。
图6 不同负载的振动信号Fig.6 Vibration signals of different loads
为了体现本文方法在负载变化时具有较好的轴承故障识别准确率,分别与Resnet(参数设置与本文模型相同)、TICNN、WDCNN的实验结果进行对比分析。负载变化是指在1、2和3 hp对应数据集A、B、C中,用一种数据集做训练样本,另外两种数据集作为测试样本,例如A→B,A→C表示用数据集A作为训练样本,数据集B、C进行测试。实验结果如图7所示。
由图7可知本文模型在负载变化的故障识别率均达到了94.38%以上,而Resnet,TICNN和WDCNN的最低识别率分别为93.6%、89.2%、88.3%。TICNN和WDCNN在不同跨负载下的故障识别率波动范围很大,例如C→B中WDCNN模型的故障识别率达到了99.99%,而在C→A中的识别率仅仅只有88.3%,说明WDCNN网络模型的泛化能力稍逊。本文模型在跨负载测试时的整体平均识别率达到了98.11%,相对Resnet,TICNN和WDCNN三种模型分别提高了1.83%、2.61%、2.21%。这说明本文模型具有更好的泛化能力。
图7 负载变化时故障识别准确率Fig.7 Fault identification accuracy when load changes
3.3.4 负载变化时的抗噪性分析
针对滚动轴承工作时,同时伴随着负载的变化和噪声干扰的问题。本小节设置了两个实验对本文模型进行验证。实验一设置为用两种负载的数据样本同时输入模型进行训练,另一负载下的数据样本进行测试,例如AB→C表示用数据集A和B同时输入模型进行训练,再用数据集C进行测试。实验二设置为用一种负载的数据样本进行训练,另外两种负载的数据样本分别进行测试,例如A→B,A→C表示用数据集A进行训练,数据集B,C进行测试。
在实验一中,分别使用本文模型、Resnet和卷积胶囊[19]模型的实验结果进行对比分析,实验结果如表4所示。
从表4可知,在信噪比相同的噪声环境中,本文模型在负载变化时的轴承故障平均识别准确率均大于Resnet和卷积胶囊模型。特别是在SNR=-4 db的强噪声环境中,本文模型的轴承故障平均识别准确率达到了92.18%相较于Resnet和卷积胶囊网络分别提高了9.4%、6.63%。在SNR为-4~4 db,负载发生变化时,本文模型对轴承故障的平均识别率达到了97.36%,相较于Resnet和卷积胶囊模型提高了4.04%、2.36%。表明本文模型能提取更细微的特征,在信号受到噪声干扰和负载变化时拥有较好的故障识别准确率。
表4 负载变化时不同模型在不同信噪比测试信号的准确率Tab.4 Accuracy rate of different MODELS testing signals with different SNR when load changes %
在实验二中,使用Resnet模型的实验结果与本文模型进行对比分析,实验结果如图8中(a),(b)所示。
图8中-4、-2、0、2、4表示测试时加入高斯白噪声的信噪比。在负载变化相同情况下,本文模型在信噪比-4~4 db的噪声环境中,轴承故障平均识别率均高于Resnet模型。以负载变化A→B为例进行分析,本文模型的平均识别率达到了97.78%,相较于Resnet模型提高了2.03%。在信噪比为-4 db的强噪声环境中,本文模型的轴承故障识别准确率达到了92.27%,而Resnet模型的识别准确率仅有87.51%,相比之下提高了4.76%。同时本文模型同时在负载变化和-4 db到4 db噪声环境下的整体平均识别准确率达到了95.02%,相较于Resnet网络模型相比提高了3.5%。
图8 噪声环境下负载变化时不同模型的轴承故障识别准确率Fig.8 Diagnosis results of different models under variable load noise environment
通过实验一和实验二在噪声环境中进行不同的跨负载实验可得:本文模型在噪声环境和负载变化时仍具有较高的故障识别准确率,说明本文模型具有较好的抗干扰能力和泛化能力。
3.3.4 本文模型实验结果可视化
本小节选用t-SNE(t-distributed stochastic neighbor embedding)算法,分别将卷积层、残差堆叠快和GAP中的高维数据降低到二维进行可视化,展示本文模型训练过程中特征提取过程。由于篇幅有限,仅展示在SNR=0 db时通过1 hp负载下的数据进行训练好的模型,使用2 hp负载下的1 000个数据样本进行测试的特征分布可视化图。
由图9可以看出,随着网络层数的深入,特征变得越来越可分割,特别是在通过改进残差堆叠块Block1之后,各类特征点的分布有了显著的变化,使得各个类别的特征点的分布有了明显的区分,说明改进的残差堆叠块具有较强的故障识别能力。从最后的GAP层可以看出,本文模型通过1 hp负载下的数据样本训练得到的模型,在SNR=0 db的噪声环境中使用2 hp负载下的数据样本进行测试,仍具有较好的轴承故障识别能力,验证了本文模型在噪声环境中和负载变化时具有较好的故障分类能力。
图9 测试样本的特征分布图Fig.9 Feature distribution of test samples
针对滚动轴承在负载变化、噪声环境中故障诊断准确率低、抗噪性能及泛化能力弱的问题,提出了一种改进的残差神经网络方法。本文得出的结论如下:
(1)本文构建了一种基于残差神经网络与SENet相结合的改进深度残差神经网络轴承故障诊断模型。通过在残差块中添加SENet网络结构,使模型关注与目标相关的特征通道并弱化其他无关的特征通道,从而达到提升模型性能的目的。使用全局平均池化代替了全连接层,加快了模型的训练速度。在训练过程中,为了抑制过拟合,对训练样本进行了加噪处理,同时使用了LReLU函数和Dropout技巧来提升了模型的抗干扰能力。
(2)采用了轴承数据集进行了实验验证。在信噪比为-4~4 db的噪声环境中,本文模型的故障识别准确率均高于其他方法,在SNR=-4 db的高噪声环境中,本文模型的识别率也达到了93.4%;在负载变化实验中,本文模型的整体平均识别率达到了98.11%;在轴承负载变化时的抗噪性分析实验中,通过两个实验证明本文模型的故障识别准确率均达到了最高,表明了本文模型具有较好的抗干扰能力和泛化能力。