时间:2024-07-28
沈 涛,李舜酩
(南京航空航天大学 能源与动力学院,江苏 南京 210016)
随着科技和生产力水平的日益增长,大量的复杂机械被运用到生活生产中去。当发生故障的旋转机械具有复杂结构时,极易造成无法挽回的损失。滚动轴承作为减少轴之间摩擦损失的重要零件,对精度有着较高的要求。与此同时,滚动轴承的运行状况对机械设备的整体性能、稳定性和寿命都有着巨大的影响。在不同的载荷情况下,滚动轴承各个部位出现的不同故障尺寸,都会造成一定的安全隐患或故障。为了防止各种可能的故障,常见方法是在机械系统运行时进行实时监测。
随着旋转机械的精密度和复杂程度不断提高,诊断效率和准确率等指标也越来越难达到,传统诊断方法面临着严峻考验[1]。而且,传统的信号处理和模型识别的方法需要专业知识和经验的积累,碰到结构更加复杂的机械,判别故障特征就会存在一定困难。基于模型的故障诊断方法,虽然不需要人工数据的统计,但是针对一些结构复杂的旋转机械仍存在有一定的局限性,也相对难以提取明显的故障特征。
深度学习技术对于海量的数据有着强大的学习、表示和分析能力[2]。在这个数据爆炸的年代,越来越多的行业领域也都利用深度学习技术处理着庞大的信息数据,故障诊断领域也不例外[3]。大量的故障数据通过深层网络的训练,充分学习故障的潜在特征,在故障的分类和预测方面都有显著优势。因此,大量的研究人员利用深度学习这一工具在机械设备大数据处理和故障诊断中取得了不错的成果,这不但为结构复杂的机械提供了新的故障诊断方法,缩短了故障诊断的时间,而且设备的安全性得到了保证,降低设备的维护成本[4]。卷积神经网络(Convolutional Neural Networks, CNN)在图像识别分类方面首先得到了应用,取得了显著的成功,因此许多研究人员也将其应用到机械的故障诊断领域。早期研究人员在将CNN的模型引入旋转机械故障诊断领域中时,通常采用原始的CNN结构,即构造二维的训练网络样本,提取的也是二维数据的特征并完成诊断。ZHANG等[5]受到此种方法启发,将一维的振动信号通过转换成二维的图像,提出一种以信号图像为输入的CNN结构,用于轴承故障的智能诊断。然而,在进行机械的故障信号采集时,往往选择的是一维的振动信号,直接构建一维的CNN理论上更加直接高效。对此,文献[6]采用具有大尺寸卷积核的一维CNN来进行旋转机械的故障诊断,也取得了不错的效果。
然而,想要充分利用CNN来有效地提取各种复杂数据的隐藏特征,往往需要大量的数据样本提供给模型进行训练[7],才能准确地得到不同状态下的特征分布。旋转机械发生故障时的样本数据与正常时的数据相比较少,这使得训练样本比例变小,从而使得CNN的特征提取和诊断效果变差。同时传统的CNN诊断模型无法及时调整模型参数,难以提取异常状态下的故障特征信息,从而无法做出准确诊断分类[8]。
针对上述问题,本文从故障诊断模型的结构入手,构建了一种基于CNN-LSTM的故障诊断混合模型。鉴于长短记忆网络(Long Short Term Memory networks, LSTM)可以从数据不同位置所学习样本隐藏特征的特点,将其与CNN结构相结合,构建诊断模型来弥补单一CNN模型的缺点,在小样本数据中也能充分提取振动信号的内在特征。采用学习率可以自适应的优化算法——Adam(adaptive momentum)算法,动态调整模型参数,并在卷积过程中执行批量标准化(Batch Normalization, BN)操作,用于激活函数之前来规范不同网络层的数据,还采用Dropout来抑制过拟合。最后,通过与传统的深度学习方法进行对比,分析证明了批标准化的CNN-LSTM方法在诊断效率和精度方面都有较好的表现。
卷积神经网络(CNN)由LECUN等[9]提出,是受动物视觉皮层细胞感受机理启发而建立的一种前馈神经网络[10]。设计的最初目的就是为了解决大规模图像的分类、识别和检测等问题,在图像识别分类领域的应用也最为广泛和成功。这全归功于CNN强大的特征学习能力,并且它还具有很强的容错性和鲁棒性,使构建的网络模型对平移、缩放、扭曲具有一定的不变性。
其基本结构如图1所示。CNN作为一种深层神经网络,一般包括滤波级和分类级两个部分。滤波级包括卷积层和池化层,主要的作用是对输入的数据进行过滤消噪和降维,筛选所需要的特征;分类级起到分类等作用,一般由若干个全连接层组成。
其中卷积层包含若干个特征图,一个卷积核对应一个特征图。卷积核通过一组权重来将上一层的输入卷积后组成新的特征输出,作为下一层的输入[11]。数据经过若干的卷积和池化操作后,最后接一个全连接层,再由Softmax或sigmoid等函数完成分类,因此可有效地用于故障的诊断与识别[12]。
许多研究人员将CNN应用到机械的故障诊断领域中时,采用原始的CNN结构,即构造二维的训练网络样本,提取的也是二维数据的特征并完成诊断。然而,旋转机械的故障诊断一般采集的是一维的振动信号,一维的卷积神经网络也更适合用于机械的故障诊断,还可以用于输入一维的数据用于自然语言的处理[13]。
1.2.1 循环神经网络
循环神经网络(Recurrent Neural Network, RNN)由Schmidhuber提出,并经过了许多研究人员的改良[14],该网络用于处理序列数据,解决了传统神经网络不能共享从数据不同位置所学习到的特征这一问题,常被应用到自然语言处理中。与其他神经网络相比,RNN网络比以往的神经网络多出了一个循环的圈,层间的神经元互相连接。
假定一个输入序列x1:T=(x1,x2,…,xt,…,xT),根据如下公式实时跟新带反馈的隐藏层活性值ht:
ht=f(ht-1,xt)。
(1)
其中h0=0。
RNN的基本结构如图2所示,其中“延时器”为一个虚拟单元,用来记录神经元的最近若干次的活性值。
研究人员们在进行循环神经网络的学习训练过程中还发现了一些问题,首当其冲的是训练过程中发生梯度消失或梯度爆炸问题。一般随着网络层数的增加,问题也变得越来越严重。
在模型的训练过程中,误差从输出层反向传播的迭代,在后面的每一层都要乘以该层激活函数的导数。如果导数小于1,网络层数的增加使得梯度更新信息会朝着指数衰减的方式急剧减少甚至消失。模型无法从训练数据中获得权值更新,损失几乎保持不变,使得训练变得很困难,这就是梯度消失。如果导数大于1,随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加,模型更新过程中的损失发生明显变化,训练学习过程也变得不稳定,这就是梯度爆炸。
其实梯度爆炸和梯度消失问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。目前,比较有效的方式是通过改进模型或优化方法来缓解循环网络发生的梯度爆炸和梯度消失。针对这些问题,研究者们尝试对循环神经网络进行改进。开始研究人员发现使用非饱和的激活函数,同时直接选取合适的参数,就能解决此类问题。然而,这种方式需要给定合适的参数,这就需要足够的人工经验,限制了模型的广泛应用。
1.2.2 长短记忆网络(LSTM)
针对循环网络的梯度消失和爆炸的问题,已经有了一些很好的解决方案。将门控的机制加入到循环单元中,这种带门控机制的网络被称为基于门控单元的循环神经网络(Gated RNN)[15]。主要是通过有选择地添加和删除数据信息,起到控制信息数据的流通作用。
为克服上述问题,本文用到的具有门控单元的循环神经网络是长短期记忆网络(LSTM)。LSTM作为RNN的一个变体主要改进有两个方面:
(1)LSTM网络相对于RNN引入一个新的内部状态ct∈RD,在向外部状态ht∈RD输送信息的同时,还起到循环信息的传递作用。内部状态ct在每次经过时间段t时,就会记录一次到当前时刻的历史信息。
内部状态ct通过下面公式表示:
(2)
ht=ot⊙tanh(ct)。
(3)
(4)
(2)引入门控单元。门作为数字电路中的二值变量{0,1},0是不让任何的数据通过,表示闭的状态;1是没有限制的通过信息,表示开的状态。在LSTM网络中的门控单元在上式中也与体现,式中的ft,it和ot分别为遗忘门、输入门和输出门。
LSTM网络中的门控机制就是起到以一定的比例来通过信息的作用。3个门的计算方式为:
it=σ(Wixt+Uiht-1+bi),
(5)
ft=σ(Wfxt+Ufht-1+bf),
(6)
ot=σ(Woxt+Uoht-1+bo)。
(7)
其中:xt表示前时刻的输入,ht-1表示上一时刻的外部状态;σ(·)为激活函数Logistic。
LSTM正在被应用于各种领域,如情感分类[16],触觉识别[17]和故障诊断等。
近年来深度学习技术应用发展迅速,研究人员对改进各种深度模型做了较多的研究之外,也尝试了融合多种模型和算法。模型间彼此扬长补短带来的更好效果,也吸引了大量的关注。CNN和RNN的组合已经有了一定的研究应用,这种组合结构在语音识别[18]和情绪检测[19]等多个领域都取得了可喜的研究成果。
本文将深度学习模型应用到旋转机械的故障诊断中,针对传统CNN模型需要大量训练样本的缺陷,在CNN结构中适当加入了LSTM结构,构建一种针对滚动轴承故障的CNN-LSTM诊断模型。振动数据首先通过该模型的前端卷积池化层,实现重要故障特征的提取,再输入到LSTM层完成隐藏时序规律特征的挖掘,从而更全面地获取时序上下文的数据信息,而且LSTM独有的门控机制大大降低了梯度爆炸或消失问题的发生。该模型不仅解决了传统CNN模型在小样本训练数据诊断中的劣势,使其在少量数据中就能充分提取振动信号的内在特征,还使得模型具备一定的长距离时序数据的信息挖掘能力,可以从数据不同位置所学习样本的隐藏特征,从而更好地实现故障识别与诊断。
本文提出的一种针对滚动轴承故障诊断的CNN-LSTM网络模型,基本结构如图4所示。
由图4可知,该网络模型包括输入层、CNN层、LSTM层、全连接层和Softmax分类层。其中CNN层、全连接层和Softmax层的具体参数如表1所示。
表1 CNN-LSTM模型的部分参数
故障特征的提取主要由两部分组成:
(1)卷积特征提取层,首先构建一个基础的CNN结构。采集到的原始振动信号作为输入,先经过卷积层,激活函数选用ReLU函数,并通过最大值池化进行降维采样,然后再通过同样的卷积和池化操作生成若干的特征映射。
(2)将得到的特征映射沿时间轴切分,输入至LSTM层。该层的激活函数选用Tanh函数,用于循环时间步的函数选用sigmoid函数。
故障特征提取完成后,Flatten层将数据展平输入到全连接层进行综合特征的提取。最后是一个全连接输出层,激活函数选用Softmax,可以实现多种滚动轴承故障的分类。
振动信号通过CNN-LSTM模型的输出和它的目标值应具有一定的一致性,采用交叉熵损失函数作为目标函数,用来衡量预测的神经网络的输出概率分布和目标类概率分布的相似性。目标的概率分布用p(x)表示,预测分布则用q(x)表示,p(x)和q(x)的交叉熵损失函数可定义为
(8)
为了最小化损失函数,往往使用随机梯度下降法SGD(stochastic gradient descent)就可以将浅层的神经网络收敛到一个全局最优的点。然而,本文构建的深度学习模型参数较多,如果使用SDG训练,选择的参数很可能出现只得到局部最优解的问题。因此,为了使模型达到尽可能好的效果,采用一种学习率可以自适应的优化算法——Adam算法。它能根据训练数据不断迭代地更新神经网络权值,可以避免局部最优动态的调整每个参数的学习率。
多次参数迭代更新后,各层的数据分布会变化的非常明显。为便于后续处理,进而提升模型的性能,通常会将数据集拉回到同一分布上。如果深层网络想要需要达到这一要求,需不停地调整参数去适应不同数据的分布变化,然而参数的变化会给模型训练带来困难。针对此类问题,IOFFE等[20]在2015年ICML会议上提出批标准化(BN)。其原理是在训练过程中将每层神经元输入值的分布转换到正态分布上去,使得训练数据在方差和均值不断迭代变化的情况下也能够保持标准化,减少内部协方差的偏移。梯度变大从而避免产生梯度消失问题,大大加快深度神经网络的学习收敛速度,缩短训练时间,增强泛化能力。
本文在构建的CNN-LSTM网络中添加BN操作,在两次卷积过程中都进行批量标准化。目的是用来规范神经网络结构中数据的分布,然后经过ReLU激活函数得到卷积层的输出。同时采用dropout[21]技术来防止过拟合。
本文针对训练过程中的样本数据进行增强处理,原始的轴承振动信号中选取一定比例用来训练的样本数据时,对选取的相邻训练样本都设置一个重叠量。如图5所示,如果有一段原始的轴承故障信号,利用上述方法每次选取的训练样本长度为1 024,偏移量为1,则重叠的数据点有1 023个。假定这段信号有10 000个数据点,因此可以制作出至多7 953个样本数据,可以很好地满足深层神经网络的训练要求,达到提高了网络泛化性的目的。
本文选用凯斯西储大学(Case Western Reserve University, CWRU)的滚动轴承数据集进行试验验证,CWRU轴承故障诊断模型试验台和所使用轴承如图6所示。选择数据的采样频率为48 kHz,轴承类型为深沟球轴承。利用电火花对轴承的内外圈以及滚动体进行加工,模拟真实的轴承故障,共分为4种健康状况:内圈故障、外圈故障、滚动体故障和正常状况。其中每种位置的故障还有3种不同的故障程度:0.007 inch、0.014 inch和0.021 inch,加起来一共10类工况。该试验的样本数据有4种不同负荷状态:0、1、2和3 hp,根据负荷状态将样本分为A、B、C和D四组数据集。轴承的每种健康状态均有1 000个样本数据,每个样本使用2 048个数据点进行诊断,具体如表2所示。
表2 轴承数据集参数
数据集负荷/hp样本个数故障位置故障直径/inch标签A/B/C/D0/1/2/31 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 0001 000/1 000/1 000/1 000滚珠内圈外圈正常0.00700.01410.02120.00730.01440.02150.00760.01470.021809
为了更进一步缩短网络模型的训练时间,更快地收敛到最优解,对每段信号x都做线性归一化处理,使结果映射到[0,1]之间,具体的函数表达式如式(9)所示:
(9)
利用所构建的CNN-LSTM网络模型对数据集A、B、C和D进行训练。计算目标函数值,然后在训练过程中更新模型的权值,最后利用训练后的模型对用来测试的输入信号进行诊断分类。
进行模型训练时,Adam算法的学习率设为0.001。为抑制过拟合,在全连接层使用Dropout,Dropout率设为0.2。由于批标准化强大的泛化能力,将每一层的训练迭代次数设置为15次,学习率为1E-4。LSTM层的神经元数目、训练样本集的占比和批尺寸的大小还需要进行研究选择。
首先,对LSTM层的神经元数目进行探讨。LSTM层的神经元数目,即该层输出的数据维度对CNN-LSTM模型的训练起到很大的影响。本文选用数据集A进行测试,为了消除随机性的影响,每组试验分别进行20次,由于不同的神经元数目所需要的训练时间差别不大,不作参考。不同神经元数目的测试准确率如图7所示,随着LSTM的神经元数目增多准确率也在降低,明显看出当LSTM层的神经元数目只有在32时,测试准确率达到较高水平且误差最小,测试准确率稳定在95%~100%之间,而其余的准确率波动过大不宜作为该层的参数。因此,为了保证更好的诊断结果和较小的误差,LSTM层的神经元数目设置为32。
然后,针对训练样本比例进行选择对比。同样,为了消除随机性的影响,选用数据集A进行20次测试,诊断的平均测试准确率等结果如图8所示。显然,随着训练样本量占比的增加,诊断准确率不断提高,但花费的时间几乎呈线性增加。当训练样本百分比增加到30%时,测试准确率开始趋于稳定,之后准确率几乎保持不变,而且耗时也相对较短。因此,为了在分类准确率和花费时间之间进行权衡,我们在接下来的实验中使用了30%作为训练样本的百分比。
最后研究了训练批尺寸大小的选择。同样的数据次数设置,不同批次大小的诊断结果如图9所示。可以看出,随着批尺寸的减小,测试准确率越高,标准差也越小。与之相反的,训练的平均时间随着批尺寸数的减少呈指数增长。明显当批尺寸等于64时,花费的时间也较短,测试准确率达到较高水平,所以选择64作为批尺寸大小。
根据上文的参数设置,针对数据集A-D的20次平均测试准确率如图10所示,可以看出多种负荷下的平均测试准确率均在98%上下波动,这说明本文提出的批标准化的CNN-LSTM诊断方法可以较为准确地诊断出不同载荷状况下轴承的10种健康状态。
为了探究批标准化操作对CNN-LSTM模型的优化作用,将本文方法与未添加BN的CNN-LSTM模型进行对比分析,参数设置与提出的方法相同。在相同迭代步数的前提下验证未加BN的CNN-LSTM模型的效果,由此得到两种方法的平均测试准确率和训练时间如表3所示。显然,未加BN的CNN-LSTM模型的准确率均在94%左右,其性能不如加BN后的CNN-LSTM模型,相差了四个百分点。
表2 CNN-LSTM方法与未加BN诊断结果对比
此外,为了进一步反应出CNN-LSTM模型的优势,将测试结果与同样批标准化的CNN模型、相同神经元数目的LSTM模型进行对比验证,各结构参数如图11所示。
本文计算了这几种方法的平均测试准确率和训练时间,如表4所示。可以看出,CNN-LSTM方法的测试准确率稳定在95%~100%之间,4个数据集的平均准确率在98%处上下浮动,明显优于其他方法。另外,在训练时间上,CNN-LSTM方法的平均训练时间稳定在35 s左右,而对比LSTM模型的时间均在几分钟以上,大大缩短了训练时间。
表4 CNN-LSTM方法与其他方法诊断结果的对比
为了进一步研究模型的结构和学习过程,采用可视化技术探索实现特征提取的关键步骤,清晰表示出深层神经网络层间的关系,分析构建模型的性能。
选取数据集A的诊断过程进行可视化,使用T-SNE(T-Stochastic Neighbor Embedding)算法[22]实现输出各层的特征,并进行降维可视化。如图12所示,刚输入模型的数据明显杂乱无章,通过两个卷积层进行特征提取后,输入数据的一部分特征被有效地分离和聚集,从而表明卷积层能够有效地提取故障特征。然而,因为小样本的缘故,有几个特性在CNN层输出中保持不分离,所以需要下一层LSTM层进一步提取了样本数据的时序特征。从图12d可以看出,该模型对滚动轴承的10类故障特征提取与分类十分明显,表明该模型能够有效学习不同故障的特征,实现诊断分类。
本文使用了4组不同数据集进行了诊断,它们输入到模型后效果的可视化如图13所示。可以看出,在不同负荷下仍然具有较好的特征提取效果,最后都能实现较好的故障分类。
本文针对滚动轴承的故障诊断问题提出一种批标准化的CNN-LSTM诊断方法。通过对CWRU轴承数据集进行验证研究,体现了该方法的快速和准确性,并得到以下结论:
(1)该方法相较于传统的信号处理、神经网络和支持向量机等故障诊断方法,不仅拥有更高的准确率,还有更好的诊断效率。无需对原始的振动信号进行复杂的预处理,即可实现端到端的快速智能诊断。
(2)深层网络为达到最小的训练误差,进行层层特征提取和迭代,往往需要过长的训练时间。为了提高模型的训练效率,在卷积层中规范不同网络层的数据,激活函数前执行批标准化操作。准确率也比未添加BN的CNN-LSTM诊断方法提高了近4%。
(3)该模型充分利用了CNN的特征提取能力,在此基础上加入LSTM结构加强了时序处理能力,能够准确识别CWRU轴承数据集的10种不同故障状态。对比传统的深度学习模型,不仅提高了诊断的精度,还缩短了训练的时间。
在旋转机械实际运行中,轴承大多数情况下都能正常运作,但出现故障时,从发生到结束时间很短,其实际的转速也是随着时间不断变化,所以很难采集到理想足量的定转速故障振动数据,即小样本和时变转速工况问题。未来,将重点研究如何提高在这些工况下的轴承故障诊断效率与准确性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!