基于双层长短时记忆网络的齿轮故障诊断方法
2018-07-23王维锋邱雪欢孙剑桥张惠民
王维锋, 邱雪欢, 孙剑桥, 张惠民
(1. 陆军装甲兵学院信息通信系, 北京 100072; 2. 陆军装甲兵学院装备保障与再制造系, 北京 100072)
齿轮作为重要的连接、传递运动和动力的装置,在机器设备运行中由于正常磨损和维护保养不善等容易受到损害和出现故障,进而引发传动系统或整机的故障。传统的齿轮故障诊断方法(如时域分析、频域分析和时频分析等[1])在齿轮局部缺陷的应用效果不太理想,诊断成功率较低。之后,国内外研究者提出了支持向量机(Support Vector Machine,SVM)[1-2]、决策树、人工神经网络[1,3-4]等机器学习方法进行齿轮故障诊断,获得了较高的准确率。但是这些方法也存在一定的缺陷,如:BP神经网络方法在实际应用中存在收敛速度慢以及易发生震荡等问题;SVM方法在多分类问题上存在构造学习器困难和分类效率低等问题。
研究[5-6]指出:多层人工神经网络模型具有非常强的学习能力,深度学习模型所获取的特征数据更能够代表原始数据,有利于分类和可视化目标的实现。吴国文等[5]分析了齿轮箱齿轮故障和轴承故障信号,提出了基于深度信念网络(Deep Belief Network,DBN)的故障诊断方法,将分类准确率提高至93.3%;刘秀丽等[6]通过反向微调学习,对DBN进行了整体微调,提高了分类准确性;刘辉海等[7]提出基于风电机组齿轮箱的数据采集、监视控制数据和振动信号的深度自编码网络模型,验证了深度自编码网络学习方法对齿轮箱故障检测的有效性。为了进一步提高故障诊断精度,提高网络的收敛速度,笔者采用深度学习方法进行神经网络齿轮故障诊断,提出了基于双层长短时记忆(Binary Long Short Term Memory,BiLSTM)网络的齿轮故障诊断方法。
1 齿轮故障诊断系统
笔者依据齿轮故障诊断过程构建了基于机器学习的齿轮故障诊断系统,如图1所示,包括训练系统和诊断系统2部分。1)训练系统。首先,建立故障诊断模型;然后,将训练样本输入模型进行学习训练,得到训练模型,这里样本数据量应足够且多样,以保证学习训练的效果;最后,采用测试样本测试故障诊断效果,诊断结果能够反映模型性能,经不断调整模型参数、算法和结构后重新学习训练,最终确定故障诊断模型,此时模型诊断效果最佳。2)诊断系统。首先,对采集的齿轮故障数据进行预处理得到待验样本;然后,将待验样本输入故障诊断模型即可得出诊断结果。
模型训练本质上是模型学习训练数据集的数据特征,从而得到一组模型参数的过程。训练时,输入的训练样本是前期对装备进行数据采集并经过预处理的齿轮故障数据。采集数据时,要先确定诊断问题和系统健康状况,然后借助信号采集系统收集齿轮振动信息,并将其转换成数据形式。采集的数据难免会存在一些错误点、冗余点以及测量噪声,此时需要对数据进行清理等预处理。很重要的一点是,要对正常和故障不同状态下分别采集的数据添加标签,为后续故障诊断测试时模型计算诊断准确率做准备。
齿轮故障诊断的核心为学习模型的不断优化及其确立。对于齿轮故障诊断问题,笔者在模型建立阶段分别采用支持向量机、决策树、人工神经网络以及深度学习等方法,并对这几种模型方法进行实验分析,最终发现利用长短时记忆(LSTM)网络[8-10]方法能够有效提升齿轮故障诊断准确率,进而提出基于BiLSTM网络的齿轮故障诊断模型。
2 基于BiLSTM的齿轮故障诊断模型
2.1 模型框架
为提高故障诊断精度,笔者构建了基于BiLSTM网络的齿轮故障诊断模型框架,如图2所示。
由图2可以看出:BiLSTM网络结构本质上是一种双层双向LSTM网络模型,能够更加有效地解决前后时间序列特征的捕捉问题。
在t时刻,第1层隐含层长短时记忆模块输出
ct=f(Wct-1+Uxt+bc),
(1)
第2层隐含层长短时记忆模块输出
(2)
BiLSTM网络输出
(3)
由式(1)-(3)可以看出:相对于单层的LSTM网络,BiLSTM网络可以很好地捕捉当前状态信息及其前后时间序列的有效信息。在模型学习过程中,通过一遍正向扫描可得到当前时间之前的时间序列特征,通过一遍逆向扫描可得到当前时间之后的时间序列特征。每层的LSTM模块能够在特征提取过程中避免长期依赖,改善“梯度弥散”问题,使特征表示学习更加精准,从而提高识别精度。
为避免模型训练过程中出现数据过拟合的现象,笔者采用dropout方法[11-12]进行处理,其原理为:在深度学习网络的训练过程中,将隐含层的某些神经元按照一定的概率将其暂时从网络中丢弃,避免因隐含层神经元之间的相互适应而导致提取到的特征重复,从而有效提高网络收敛速度。
BiLSTM网络模型对齿轮故障数据进行学习训练后,输出的张量进入2层全连接dense层,对特征向量执行分类操作,利用dropout减少过拟合后,用ReLU函数激活;接着特征向量被输入到一个softmax分类器,输出的是一个向量,这个向量的每一维对应问题分类预定义的类别(比如:若齿轮状态类别数共5种,则输出一个维度为5的向量,向量中每一维的值表示当前齿轮状态被分到某个类别的置信度)。
2.2 模型评价
模型的训练优化需要定义评价的方法。首先,确定以准确率作为主要评价指标,用来评估模型诊断结果的质量。准确率指测试集中分类正确的样本个数ncorrect占总个数ntotal的比例,即
(4)
此外,在分类问题中通常以损失函数作为目标函数,用来评价模型的预测值和真实值差异的程度,进而找到其损失最小时对应的模型参数值。笔者选择交叉熵作为损失函数,即
(5)
为了评估模型性能,需要找出预测正确的标签。用argmax函数给出某个张量对象在某一维上的数据最大值所对应的索引值,由于标签向量由0、1组成,因此最大值1所在的索引位置就是类别标签,用equal函数检测预测的标签值是否与真实标签匹配,进行数据转换后取平均值,从而计算出所学习到的模型在测试数据集上的正确率。
3 实验分析
实验分析程序运行于Ubuntu 16.10系统下的Tensorflow 1.4.1,处理器为Intel® CoreTMi7-7820 CPU@3.40 GHz×8,GPU为NVIDIA GeForce®GTX 1080。
以某型主战坦克为实验对象,采集并分析其变速箱齿轮传动的振动信号。该型变速箱为多挡位变速箱,采用行星齿轮传动结构,主要由太阳轮、多个行星轮、齿圈、行星架等组成。实践中发现,行星传动的太阳轮、行星轮和齿圈等关键部件容易出现故障。
3.1 数据的采集与预处理
在行星齿轮箱中安装振动传感器,采样频率为20 kHz,单次采样时长为35 s,分别在行星齿轮箱正常状态、太阳轮裂纹、1号行星轮裂纹、2号行星轮裂纹、3号行星轮裂纹5种状态下采集齿轮的振动信号,其中:每种状态4个挡位(1-4挡),每个挡位4种转速(600、900、1 200、1 500 r/min),共80组数据,每组采样次数不低于3次。图3截取了第1挡位、转速600 r/min时,全部齿轮正常及1号行星轮裂纹故障状态下的振动信号。
由图3可以看出:当齿轮运行状态发生变化时,振动信号的能量也随之发生变化,因此可根据行星齿轮箱能量的变化诊断其运行状态,监测行星齿轮箱的故障。
将采集的振动信号量化成输出的数字量,然后对数据进行预处理,去除错误点、冗余点以及测量噪声等。基于样本长度不宜太多的考虑,以1 000个采集点为一个分析样本。本实验采集的80组数据中,每组数据包含700个样本,共56 000个分析样本,其中齿轮每种状态有11 200个样本。将每组数据按4∶1的比例随机分为训练数据集和测试数据集,并采用独热编码(One-Hot Encoding)对数据标签进行处理,分别得到样本数为44 800的训练数据集和样本数为11 200的测试数据集,以此作为诊断模型的输入。
3.2 模型建立与性能分析
实验通过BiLSTM网络的迭代优化获得性能最优的网络结构,从而确定齿轮故障诊断模型。优化调整的参数主要包括:1)隐含层神经元个数;2)学习率的选取;3)模型训练次数。
BiLSTM网络输出层类别数设置为5,dropout设置为0.8。经过BiLSTM网络对训练集的学习,输出获取的齿轮故障数据特征。将特征输入Dense层进行处理后,再进入softmax回归层,最终输出分类结果。
模型每次训练输入44 800个样本的顺序是随机的,在训练次数设为1 000的情况下,分析隐含层神经元个数与学习率对模型诊断准确率的影响。实验结果如图4所示,可以看出:当模型训练1 000次,学习率设为0.000 5,隐含层神经元个数设为800时,诊断效果最好。
在学习率为0.000 5,隐含层神经元个数为800的情况下,分析训练次数对诊断准确率的影响。实验结果如图5所示,可见:当训练次数为1 000时,准确率能够达到99.76%。
至此,BiLSTM网络结构即可确定,模型诊断结果的可靠性可达最大化。此时,模型训练过程的准确率和损失的变化如图6所示。
由图6可知:随着迭代次数增加,准确率逐渐升高,而损失逐渐降低并接近于0,且训练集和测试集同步,未发生数据过拟合现象。
3.3 故障诊断方法对比
为了验证基于BiLSTM网络的齿轮故障诊断模型在诊断精度上的优越性,笔者将BiLSTM网络与机器学习方法(SVM、XgBoost[13])、深度学习方法(卷积神经网络(Convolutional Neural Network, CNN)[14-15]、LSTM网络)进行对比实验。
1) 用SVM方法对数据进行训练,将每种齿轮故障类型采集到的数据以每1 000个采样点作为一个样本,使用小波包分解方法降维后用SVM分类器进行故障识别;2)用XgBoost方法对数据进行训练与测试,设置树的最大深度为10;3)用CNN方法对采集的数据进行训练,设置4层卷积,同样用dropout防止过拟合;4)构建基于LSTM网络的齿轮故障诊断模型,模型结构包含单层LSTM网络。
4种方法进行齿轮故障诊断后的结果如表1所示。
表1 齿轮故障诊断准确率对比 %
由表1可知:所用的3种深度学习方法比2种机器学习方法具有更好的分类效果,齿轮故障诊断准确率大幅度提升;BiLSTM网络方法能有效进行齿轮的故障诊断,且分类效果整体上比单层LSTM网络和CNN好,诊断精度可达到99.76%。
本研究中,实验采集的齿轮振动数据是按振动发生的时间先后顺序排列而成的时间序列,前后数据具有关联性和依赖性。SVM与XgBoost方法针对多维度、多属性的大规模数据难以实施,在解决多分类问题上存在困难,需要对原始数据进行降维处理,但这样会失去许多数据的有效特征,因此对本研究采集的时间序列数据在特征提取上不具有优势。LSTM网络能够记忆长期信息,根据已有的历史数据对未来进行预测,在时间序列预测、潜在隐藏趋势预判方面具有优势,相比于CNN,对于齿轮振动数据采用LSTM网络方法处理更适合。而笔者提出的BiLSTM网络是一种双向的长短时记忆神经网络,在2层隐含层中加入了LSTM模块,它不止处理当前的信息,还会利用未来信息,能够有效且充分地提取时间序列特征,故障诊断效果更佳。
4 结论
笔者提出了基于BiLSTM网络的齿轮故障诊断方法,经对比实验,验证了其在处理时间序列问题上具有更好的分类效果,可有效提高故障诊断精度。笔者采用dropout方法防止数据过拟合,虽能在一定程度上减少拟合,但若dropout比例设定不恰当,可能会导致训练更为复杂和困难,无形中增加了网络训练的难度。因此,下一步需对dropout进行优化或找到效果更为明显且简单易用的方法。另外,后续还将开展对齿轮组合故障的信号分析,采集更多复杂多样的齿轮故障数据,通过深度学习方法有效提取并分析振动信号的特征与规律,进一步提高故障诊断精度,实现对齿轮复杂故障的预测。