徐先峰,赵龙龙,夏 振
(长安大学电子与控制工程学院,陕西 西安 710064)
轴承作为旋转机械设备中广泛应用的关键部件之一[1],发生故障会导致设备停产,甚至造成人员伤亡[2]。超过50%的旋转机器故障与轴承故障有关[3]。轴承故障诊断可以发现轴承的早期特征和演变进程,防止因故障造成的损失[4]。深度学习在21世纪迅猛发展。由于其在机械故障领域的应用成果丰硕,研究人员已经将多种深度学习模型应用在轴承故障诊断中[5]。本文利用深度学习中卷积神经网络(convolutional neural network,CNN)收敛速度快、准确率高的优势[6],以及长短时记忆神经网络(long and short term memory,LSTM)神经网络在处理时间序列应用中的优势,提出基于卷积-长短时记忆神经网络(convolutional neural network-long and short term memory neural network,CNN-LSTM)的轴承故障诊断方法。该方法将原始轴承振动信号进行CNN卷积层和池化层处理后作为模型的输入,利用LSTM中的门运算进一步对数据进行处理,最后输出至全连接层进行运算分类并输出故障类别。试验结果显示,模型具有良好的收敛速度和精确度。
本文利用CNN提取轴承故障震动信号的故障信息,用作LSTM的输入层;建立CNN-LSTM轴承故障诊断模型,采用端到端的学习架构,提升LSTM轴承故障诊断模型的实时诊断能力。模型总体框架如图1所示。
图1 模型总体框架图
CNN-LSTM模型搭建流程如图2所示。
图2 模型搭建流程图
CNN-LSTM模型利用CNN的卷积层和池化层,对输入的原始轴承故障数据进行特征降维,并以此作为LSTM网络层的特征输入;输出接softmax线性输出层展开成与最终分类数目相匹配的维度;使用Adam优化算法对整个网络参数进行更新,直至完成T次训练;在代价函数收敛时截止,以确保模型的准确率。
CNN是一种专门为处理高维网格型数据而设计的神经网络,凭借其强大的特征提取与模式识别能力,受到学术界和工业界的广泛关注[7]。本文采用的CNN结构如图3所示。CNN主要由输入层、卷积层、池化层、全连接层和输出层5部分组成。该CNN是由2个卷积层、2个池化层、1个全连接层以及1个Softmax组成。由于单核的卷积每次只能提取一种特征,而实际应用中则希望网络的每一层能在多个位置提取多种类型的特征,所以采用多个并行卷积组成的运算。
图3 CNN结构示意图
CNN结构的基本原理为:首先,通过历史数据获取机械设备全部可能发生的运行状态,以构成状态空间,并利用CNN诊断模型拾取全部状态的隐藏特征[8];然后,利用分类器利用监督学习对特征空间进行划分,将特征空间映射到状态空间,从而实现机械设备的故障检测、诊断与模式匹配等[9]。
原始轴承故障信号经过CNN的输入层标准化后输出至卷积层,使用原始轴承故障输入数据与多个卷积核卷积生成特征映射。输入数据序列X=[x1,x2,…,xN]。其中,N为序列的长度。卷积层中的卷积运算可以定义为卷积核W(W∈RL)和串联矢量Xi:i+L-1之间的乘法运算。
Xi:i+L-1=xi⊕xi+1⊕∧⊕xi+L-1
(1)
式中:Xi:i+L-1为从第i个点开始的序列信号窗口;L为卷积核的大小;⊕为串联方式连接数据样本。
最终的卷积操作被定义为:
(2)
通过卷积核从样本数据的第一个点到最后一个点的滑动窗口,得到第j个卷积核的特征映射,可以表示为:
(3)
在卷积操作之后,使用线性整流单元ReLu激活函数激活神经单元。ReLu激活函数公式描述为:
(4)
经过卷积层卷积运算处理后的特征映射序列,在池化层进行降维提取轴承故障最重要的局部特征。池化层又称子采样层(下采样层、汇聚层)。常用的池化方式有两种:最大池化和平均池化[10]。最大池化是取该区域所有神经元的最大值,平均池化则是取区域内神经元的均值。本文采用的最大值池化计算示例如图4所示。
图4 最大值池化计算示例
全连接层把池化层降维提取轴承故障最重要的局部特征全部连接起来,将输出值送至分类器。全连接层位于神经网络的顶端。将最后一个池化层的输出通过Flatten层展平为一维的特征向量,作为后续全连接层的输入,从而在其与输出层之间构建全连接网络。全连接层的正向传播公式为:
(5)
本文搭建CNN模型诊断逻辑如图5所示。图5中:输入为(2 048×1)的轴承故障诊断信号通过第一个卷积层及ReLu激活层成为一组(256×32)的特征图,卷积层的窗口大小为64×1、步长16×1。第一层卷积层窗口较大是为了提取短时特征。卷积层后接一个池化层,池化层的窗口大小为2×1,缩小比例因数为2,采用最大值池化进行降采样成为(64×32)的特征图。重复一次以上操作,把第二个池化层的输出特征图经过Flatten展平成(1 024×1)并与全连接隐含层连接,经过ReLu激活后输出至softmax输出层,输出10类轴承故障。本文研究的是多分类问题,故选用分类交叉熵损失函数作为损失函数。为了加速模型的收敛速度,本文采用ReLu激活函数。该方法在函数正区间有效解决了梯度消失的问题,计算速度非常快,而且涉及的超参数较多。传统的优化器,如随机梯度下降(stochastic gradiene desceat,SGD)等,容易出现局部最优点的问题,所以使用Adam优化器可以动态调整每一个参数的学习率。
图5 CNN模型诊断逻辑示意图
LSTM神经网络结构如图6所示。
图6 LSTM神经网络结构示意图
LSTM神经网络已经在许多基于时间序列的应用中取得成功,如无约束手写字符识别、语音识别、手写生成、机器翻译、为图像生成标题和解析等[11]。但是LSTM网络对于轴承故障诊断系统来说,耗时长且精度低[12]。LSTM网络包括长时记忆和短时记忆两部分。神经网络训练时的参数更新为长时记忆,更新周期慢,积累了训练中的经验。短时记忆是循环神经网络中隐状态h存储的历史信息,每个时刻都会更新相对参数[13]。LSTM网络作为循环神经网络的重要改型,克服了循环神经网络的诸多缺点(例如梯度消失问题),并逐渐替代经典循环神经网络[14]。
首先,通过遗忘门删除神经元某些信息,利用上一时刻外部状态ht-1和当前时刻输入xt,进行三个门的计算:
ft=σ(Wf[ht-1,xt]+bf)
(6)
it=σ(Wi[ht-1,xt]+bi)
(7)
(8)
然后,结合遗忘门ft和输入门it更新记忆单元ct,再使用tanh将ct值缩放到[-1,1]之间,最后结合输出门ot将内部状态的信息同步给外部状态ht。具体计算如下:
ot=σ(Wo[ht-1,xt]+bo)
(9)
(10)
ht=tanhctot
(11)
LSTM故障诊断模型流程如图7所示。
图7 LSTM故障诊断模型流程图
为了验证本文建立模型的可行性,建立CNN轴承故障诊断模型和LSTM轴承故障诊断模型进行对比验证。试验平台为一台计算机,主要配置为:Intel E5 2620 V4,32GB DDR3 RAM,Intel 500G SSD,NVIDIA GTX 1080Ti。实现的代码均采用Python语言在Keras框架下完成。
本文的试验数据来自于凯斯西储大学(CWRU)滚动轴承数据中心[15]。CWRU数据集是世界公认的轴承故障诊断标准数据集。轴承故障类型如表1所示。其采样频率为48 kHz。数据集共包含4种状态类别,分别为内圈故障、外圈故障、滚动体故障和正常状态。每种故障类别包含有3种故障尺寸,分别为0.017 cm、0.035 cm、0.053 cm;再加上正常状态,共计10种状态。
表1 轴承故障类型
通过本文的试验平台在Python中进行仿真,可得所建立CNN轴承故障诊断模型在训练集和验证集上的损失值和准确率,分别如图8和图9所示。
图8 CNN模型在训练集和验证集上的损失值曲线
由图9可知,基于卷积神经网络构建的轴承故障诊断模型,经过大约10次训练后准确率开始收敛,且识别准确率尚可。其平均准确率超过98%,损失率也较低。在本文的硬件平台上,训练用时为30 s左右,速度较快。
图9 CNN模型在训练集和验证集上的准确率曲线
CNN模型在测试集上的损失和准确率如表2所示。
表2 CNN模型在测试集上的损失率和准确率
经过求平均值计算,可得CNN模型在测试集上的平均准确率为0.967 3。
通过所建立的LSTM轴承故障诊断模型在Python中的仿真试验,可得LSTM模型在训练集和验证集上的损失值和准确率,分别如图10和图11所示。
图10 LSTM模型在训练集和验证集上的损失值曲线
从图11中可以看出,LSTM轴承故障诊断模型最显著的弊端是模型的准确率低、收敛速度慢,而且该模型在本文搭建的Python平台上试验的平均用时超过1 h,无法满足轴承故障诊断的实时性和有效性。
图11 LSTM模型在训练集和验证集上的准确率曲线
LSTM模型在测试集上的损失和准确率如表3所示。
表3 LSTM模型在测试集上的损失率和准确率
通过对表3求平均值,可得LSTM轴承故障诊断模型在测试集上的平均准确率为0.893 2。但是该模型容易出现过拟合现象。
通过Python,对本文建立的CNN-LSTM轴承故障诊断模型进行试验仿真。CNN-LSTM模型在训练集和验证集上的损失值和准确率分别如图12和图13所示。
图12 CNN-LSTM模型在训练集和验证集上的损失值曲线
由图13可知,本文建立的CNN-LSTM轴承故障诊断模型不仅收敛速度快,在训练至第5次的时候模型准确率已经开始收敛,而且模型的准确率有了很大的提高,在训练集和验证集上的准确率达到1。
图13 CNN-LSTM模型在训练集和验证集上的准确率曲线
CNN-LSTM模型在测试集上的损失和准确率如表4所示。
表4 CNN-LSTM模型在测试集上的损失率和准确率
CNN-LSTM轴承故障诊断模型在测试集上的平均准确率为0.993 4。
轴承作为机械领域关键组成部分,其安全、稳定的运行不仅直接影响企业和社会经济,而且将影响人民群众的生命财产。轴承故障的精确识别与诊断耗时耗力,因此对其进行深入研究具有很大现实意义。本文结合深度学习在故障领域应用的优势,建立了基于CNN-LSTM的轴承故障诊断模型,对采集到的轴承故障信号进行处理,提取故障特征,识别并分类故障种类。该模型具有良好的识别精度,能实现对轴承故障的快速分类。与CNN轴承故障诊断模型相对比,该方法的精度有所提高,运行过程更加稳定。与LSTM轴承故障诊断模型相比,CNN-LSTM模型准确率更高、收敛速度更快。在后续的研究中,考虑融合其他特征提取算法,提高模型的泛化能力和鲁棒性。