周奇才,沈鹤鸿,赵 炯,刘星辰
(同济大学 机械与能源工程学院,上海 201804)
在制造业里有这样一句话,“凡是转动的地方,都需要用到轴承.”轴承作为当代机械设备的重要零部件,不仅能支撑机械旋转体,降低机械旋转体运动过程中的摩擦系数,还能保证机械旋转体回转精度.轴承的工作环境通常比较恶劣,高速、高载、高温不断考验着轴承的稳定性,一旦轴承出现故障,就会对整机运行产生巨大影响,甚至造成灾难性事故.因此,对轴承进行故障诊断是保证机械设备正常运行的重要手段,对于保障人身及财产安全均具有重大的意义.
现阶段已有很多针对轴承故障诊断的研究成果.Zhang等[1]基于自回归模型提取时域特征,并通过优化后的人工神经网络实现故障识别.Yu[2]提取了振动信号的时域、频域和时频特征,并以此为基础通过动态主成分分析选取有效特征,然后利用隐马尔可夫的马氏距离模型实现了对健康状况的评估.王舒玮[3]将小波变换替代傅里叶变换对故障信号进行分解,之后对分级的细节信号和近似信号进行Hillbert包络频谱处理,以此进行滚动轴承故障诊断.陶洁等[4]先用Teager能量算子提取滚动轴承振动信号中的瞬时能量来构造特征向量,之后采用深度置信网络进行故障诊断.Shen等[5]提出了一种时域自适应变尺度形态学分析法,并将其应用于脉冲局部峰值的分析.以上方法都有一个共同点,就是要人工提取特征,而这会引入主观因素,进而影响整个故障诊断的可靠性,同时由于提取的特征仅针对特定问题,导致方法的可推广性不高.深度学习具有极强的非线性拟合能力,能够不受人工干预而自动提取特征,并且所得模型具有较好的可靠性与泛化能力,因此在轴承故障诊断领域得到了一定的关注.
深度学习中受到众多学者青睐的有卷积神经网络(CNN)、循环神经网络(RNN)和栈式自编码器(SAE).Janssens等[6]采用单层卷积层进行轴承故障诊断,取得了93.16%的准确率.侯文擎等[7]利用粒子群算法对降噪自编码器超参数进行自适应选取,而后输入到softmax分类器中进行轴承故障分类,取得了97.33%的准确率.Wang等[8]提出自适应卷积神经网络,在模型自动学习特征后利用粒子群算法进行超参数寻优,之后对滚动轴承进行故障诊断,并在六组对比试验中均取得了良好的效果.实际上,滚动轴承的振动信号属于时序数据,在以上方法中最适合处理时序数据的是循环神经网络,它能够在训练时继承过去时间步的特性,由过去的特征以及现在的特征共同做出决策,但是相比其他方法,它的梯度除了沿空间结构传播,还要沿时间通道传播,当计算量增大时极易造成梯度消失,导致模型的训练无法正常进行.为了解决该问题,庄夏[9]提出先通过离散小波变换提取特征而后建立循环神经网络模型,Cui等[10]利用快速傅里叶变换将时域信号变换为频域信号进而提取特征,并进行循环神经网络模型训练,陈再发等[11]通过经验模态分解提取特征并引入长短记忆网络.
将循环神经网络进行堆叠,并将网络中的简单神经元用门控循环单元(GRU)代替,提出了四层网络结构的改进堆叠式循环神经网络(ISRNN)诊断模型,在充分发挥循环神经网络处理时序数据优势的前提下,克服了经典循环神经网络训练过程中的梯度消失问题.最后,利用美国凯斯西储大学轴承数据集对所提出模型进行了验证.
循环神经网络是指在普通全连接神经网络的基础上引入时间通道的神经网络,因此循环神经网络在处理当前信息时,会考虑前面出现过的信息,相比于人工神经网络的不同样本之间相互独立的特性,循环神经网络更注重于挖掘样本之间的时序关联.本研究所采用的都是输入与输出神经元数量不均等的多对多神经网络结构.图1所示为循环神经网络单层结构.其中,x1,x2,…,xn是输入,o1,o2,…,om是输出,h0,h1,…,hi是隐层状态,起到沿时间通道传播的作用.另外,在循环神经网络结构中,相同类型节点的权重值在不同时间步是共享的,也就是说任意时间步输入层到隐层的权重U、隐层到输出层的权重V、隐层状态之间的权重W都是相等的.
图1 多对多循环神经网络模型结构
隐层状态的引入使得网络能够在不同时间步之间传递信息,进而更好地针对时序数据进行判断.循环神经网络的训练使用的是梯度下降法,也就是在优化目标函数时,沿着负梯度方向减小函数值,以达到优化目的.这里的目标函数为交叉熵损失函数,计算式如下所示:
Lt(yt,ot)=-ytlogot
式中:yt和ot分别为t时刻的真实值及输出值.以o2为例,根据链式法则,在时间轴上的梯度为
注意到,hn+1=φ(Whn)依赖于hn,并且hn=φ(Whn+1+Uxn)仍依赖于hn-1,W在每一时间步的计算中都被用到,因此在计算梯度时需要反复反向传播到h0时刻.同时,由于梯度导数的绝对值总是被限制在1以内,当梯度传播次数足够大时,整个时间轴上的梯度就会无限接近于零,因此造成梯度消失的现象,导致模型参数无法继续更新.为了解决这个问题,长短期记忆网络[12]以及门控循环单元[13]等方法相继被提出,并取得了一定的成效.
门控循环单元旨在解决标准循环神经网络的梯度消失问题,它代替了循环神经网络隐层的标准计算方法.门控循环单元有两个门,一个是更新门,一个是重置门.更新门用来决定前面记忆保存到当前时间步的量,重置门用来决定如何将新的输入与前面的记忆相结合,这两个门控向量决定了哪些信息最终能够作为门控循环单元的输出[14].循环神经网络中每个隐藏单元都有各自的更新门和重置门,用来捕获对于时间尺度的依赖程度.
zt=φ(Wzxt+Uzht-1)
rt=φ(Wrxt+Urht-1)
式中:φ为激活函数,可以调节门的开闭程度.另外,通常取h0=(0,0,…,0).
图2 门控循环单元结构
更新门的值越大,说明前一时刻的状态信息保留的越多;重置门的值越小,则说明忽略的信息越多[15].通过重置门和更新门,门控循环单元可以长期保存序列中的信息,相关信息不会随时间而清除或因与预测不相关而移除,并且传递到下一个神经元,因此避免了梯度消失的问题.此外,因为门机制的存在,即通过重置门和更新门来控制哪些信息需要被保留,哪些信息需要被遗忘,这能够在训练过程中弱化噪声及调制所产生的负面影响,使得整个模型更好地自发学习到振动信号中需要被保留的特征.
基于循环神经网络以及门控循环单元,提出改进堆叠式循环神经网络轴承故障诊断模型.通过对门控循环单元和循环神经网络的合理堆叠来完成振动信号特征的自适应提取,同时有效防止训练过程中梯度消失现象,进而通过全连接神经网络以One-Hot编码的形式给出故障诊断结果.
图3为改进堆叠式循环神经网络模型的结构.除了输入层以外,模型还有四层,分别是三个GRU-RNN层,以及一个softmax层,每一层的输出信号作为下一层的输入信号.输入层接收轴承振动信号,然后经过三个连续的GRU-RNN层将输入映射到不同维度,从而自动提取特征,三个GRU-RNN层均采用ReLU(rectified linear units)激活函数.对于改进堆叠式循环神经网络模型,因为GRU-RNN层内时间通道的存在使得振动信号能够沿时间步关联,又由于GRU单元的特性有效防止模型在训练过程中发生梯度消失.三个GRU-RNN层训练得到的特征信号通过一个全连接网络输入到softmax层,也就是模型的输出层,然后通过softmax层的处理输出One-Hot编码,得到故障类型.
图3 改进堆叠式循环神经网络模型结构
模型输入层接收的是轴承原始振动信号,为了在得到大量样本的基础上保持样本的连续性,故采用滑窗的方式进行样本构造.图4为一段轴承振动的原始信号,每次取得一个固定长度的样本后,滑窗移动固定步长,然后获取下一个样本.需要注意的是,这里的滑窗长度应不低于轴承旋转一周的时间,以此确保样本构造的有效性.同时,为了保证任意一段振动数据都不会在三个样本同时出现,滑窗的移动步长应不低于滑窗长度的0.5倍.表1为除了滑窗的移动步长外所有参数均保持一致时得到的轴承故障诊断准确率.从表1可见,移动步长对诊断准确率的影响极其有限,因此取移动步长为滑窗长度的0.8倍,以满足试验时构造足够多的故障样本的需求.
图4 滑窗法样本构造
模型的建立过程也就是对确定结构的模型进行训练,使之可以在实际应用中发挥作用的过程.整个流程如图5所示.为滑窗法构造的振动信号样本集以One-Hot编码的形式建立对应的轴承状态标签集,然后将所有的带标签样本随机打乱,按照一定的比例划分为训练集和测试集;初始化模型参数,利用训练集数据对模型进行一轮训练并对结果进行判断,如模型未达到预定目标并且未达到指定训练轮数则再次进行一轮训练,如此反复直至达到预定目标或迭代轮数已达到指定训练轮数;利用测试集数据对模型的性能进行评估,如满足既定要求便可用来诊断轴承故障类型,否则对模型的各项参数指标进行优化,并重新训练.这里的既定要求指测试集准确率达到工程中可以接受的数值,同时测试集准确率与训练集准确率的差值在可以接受的范围内.例如,测试集准确率达到98%的同时与训练集准确率的差值不超过1%.
表1 不同移动步长下轴承故障诊断准确率
图5 改进堆叠式循环神经网络模型建立与训练过程
一旦模型完成训练,那么在工况相当的情况下,该模型就可用于同规格零部件的故障诊断.以减速箱为例,当某一特定规格减速箱的轴承故障诊断模型完成训练后,针对任意同种规格减速箱,都可以在整个生命周期中使用训练好的模型进行轴承故障诊断,而无需重新获取新的故障样本.
为了验证所提模型的可行性与有效性,采用美国凯斯西储大学轴承数据集[16]分别对滚动轴承的滚动体、轴承内圈、轴承外圈的故障信号进行故障识别试验.
试验台主要由一台1.47 kW的电机、一个转矩传感器、一个功率计和其他控制设备等组成,被测试的滚动轴承为SKF6203-2RS深沟球轴承.振动信号通过16通道的记录器采集,采样频率为12 kHz,转速为1 730 r·min-1.
本次试验将滚动轴承工作状况分为正常工作状态、滚动体故障状态、轴承内圈故障状态以及轴承外圈故障状态.针对滚动体故障状态、轴承内圈故障状态以及轴承外圈故障状态,按照点蚀直径的大小分别划分为0.18、0.36、0.53 mm三个级别,即每种类型的故障状态按照点蚀程度又细分为三种轴承工作状态,加上正常工作状态总计10种轴承工作状态.所有故障状态的点蚀深度均为0.28 mm.如表2所示,按照滑窗法,取轴承转动一圈所产生的约400个点为滑窗长度,各构造1 000个样本,并以One-Hot编码的形式打上标签,打乱顺序后分别按9∶1、8∶2、7∶3、6∶4和5∶5的比例划分为训练集和测试集,观察并讨论试验结果.
表2 滚动轴承样本
图6为轴承10种工作状态的时域波形图.可以看出,波形很难直接分辨,难以区分故障类型及损伤程度.
a 正常轴承
b 滚动体点蚀直径0.18 mm
c 滚动体点蚀直径0.36 mm
d 滚动体点蚀直径0.53 mm
e 内圈点蚀直径0.18 mm
f 内圈点蚀直径0.36 mm
g 内圈点蚀直径0.53 mm
h 外圈点蚀直径0.18 mm
i 外圈点蚀直径0.36 mm
j 外圈点蚀直径0.53 mm
为了验证所提模型可以有效区分滚动轴承的故障状态,也为了体现该模型在诊断精度上的优势,除了ISRNN以外,还设计了支持向量机(SVM)、粒子群算法优化的支持向量机[17](PSO-SVM)、BP网络、卷积神经网络经典结构AlexNet[18]和经典RNN作为对比.SVM、PSO-SVM和BP网络采用sklearn库实现,AlexNet、RNN和ISRNN采用以TensorFlow为后端的Keras库实现,所有模型运行的软件环境均为Jupyter Notebook,硬件环境均为E3-1230 V2处理器和GTX 1050Ti显卡.
所有模型的输入层均是维度为400的滚动轴承诊断信号,经过多次试验取最优超参数,ISRNN第1个GRU-RNN层采用500个神经元,第2个GRU-RNN层采用200个神经元,第3个GRU-RNN层采用50个神经元,三层的激活函数都是ReLU激活函数.全连接层采用10个神经元,并采用softmax激活函数进行分类.SVM采用径向基核函数,惩罚参数为100,gamma为特征数量的倒数即1/400,构造多分类器的方法为多元分类法;BP网络采用神经元数量为500的全连接层,加上softmax分类器.AlexNet为一维经典模型.试验结果如表3所示,其中准确率均为六次试验结果的平均值.
表3 不同算法滚动轴承故障诊断试验结果
根据表3可以看出,不论训练集和测试集以何种比例划分,ISRNN、PSO-SVM和AlexNet在训练集上都取得了98%以上的准确率,表现令人满意.随着训练集数据占比的下降,各种方法的测试集准确率均有所下降,但ISRNN和AlexNet仍能够保持在97%以上.当训练集占比为90%时,ISRNN和AlexNet在测试集上的准确率分别为99.2%和98.6%,当训练集占比为50%时,ISRNN和AlexNet在测试集上的准确率分别为98.1%和97.6%,可见它们在测试集上具有良好的泛化能力.PSO-SVM在测试集上的准确率则稍逊一筹,并且随着训练集占比减少而下降速度较快,在训练集占50%时测试集准确率降至85.2%.SVM和BP网络在各组试验中表现均差强人意,它们的训练集准确率都没有超过95%,测试集准确率随着训练集占比的减少下降速度较快,在训练集占50%时测试集准确率均未达到80%.究其原因可能是因为BP网络以及SVM属于浅层模型,自主学习特征的能力有限并受参数影响较大.经典RNN模型则未能在试验中收敛到一个相对稳定的数值,并且多次出现梯度消失的问题.综上可得,本研究所提出的ISRNN较其他方法不论在训练集上还是在测试集上都得到了更高的分类准确率.AlexNet同样取得了不俗的表现,两项准确率均以微弱的差距仅次于ISRNN,PSO-SVM在训练集上的准确率与前两者不相上下,但是在测试集上的表现未能达到前两者的高度.其他方法所得到的结果并不能令人十分满意.
表4为表现相对突出的ISRNN、PSO-SVM和AlexNet的训练时间情况.可以看出,训练集占比越多,即训练集规模越大,训练所花费的时间就越长.当训练集规模相同时,PSO-SVM所花费的训练时间最短,AlexNet次之,ISRNN花费时间最长,但是总体来说各算法花费时间都在1 min之内,因此训练时间是可以接受的.
表4 算法训练时间
由于ISRNN和AlexNet在上述试验中结果相差并不大,因此再次从试验的原始数据中随机截取1 000个样本在两个模型上进行诊断,结果显示ISRNN的准确率为97.8%,AlexNet的准确率为96.3%.图7为ISRNN和AlexNet在训练过程中的表现情况.首次达到90%准确率时ISRNN迭代了44轮,AlexNet迭代了57轮;首次达到95%准确率时ISRNN迭代了53轮,AlexNet迭代了76轮.ISRNN损失下降的速度快于AlexNet.
a 准确率随迭代轮次变化
b 损失随迭代轮次变化
为了进一步分析ISRNN对原始振动信号的特征学习及故障分类能力,绘制如图8所示的轴承误分类矩阵图.图8中,坐标值1~10分别代表轴承的10种状态,带阴影的对角线代表每种状态的分类准确率,其余格子中的数字代表误分类的样本数.例如,实际类别3与预测类别2对应的格子中数字为1,代表有一个类别3的状态被误分类为了类别2,即有一个滚动体点蚀0.36 mm的样本被误分类为了滚动体点蚀0.18 mm.此外,类别3还有一个样本被误分类为了类别7,又由于每种类别都有1 000个样本,因此类别3的分类准确率为99.8%.
图8 滚动轴承故障状态误分类矩阵
由图8可知,第1、第5、第6、第8和第10种轴承状态的分类准确率为100%,其余五种状态的分类准确率均在99.4%~99.9%之间.在所有的误分类样本中,有五个实际为类别7的轴承状态被误分为了类别3,其余误分类集合中相同错误样本的数目均在3以内,可以说ISRNN在滚动轴承故障诊断试验中取得了令人满意的分类效果.
(1) 提出了改进堆叠式循环神经网络,并建立了轴承故障诊断模型;利用GRU-RNN结构实现深度模型的有效训练,同时避免在时间通道上的梯度消失;最后,将提取的信息输入softmax分类器进行轴承故障状态的分类识别.
(2) 设计了滚动轴承故障诊断试验来验证所提改进堆叠式循环神经网络模型的可靠性和有效性,并引入SVM、PSO-SVM、BP网络、AlexNet以及经典RNN作为对比.基于滚动轴承的振动信号,利用上述方法分别对轴承的10种工作状态进行分类.结果表明,虽然训练所花费的时间略高于其他算法,但ISRNN不论是在训练集上的精度还是在测试集上的精度,都是所有方法中最高的.另外,改进堆叠式循环神经网络模型随着迭代次数的增加收敛速度也优于AlexNet,这就说明改进堆叠式循环神经网络模型在轴承故障诊断任务中具有良好的可行性与可靠性.
(3) 一旦轴承故障诊断模型对轴承的指定故障类型完成训练后,就可用于相同规格零部件内轴承的故障诊断,而无需再次收集故障样本重新训练.