APP下载

一种基于Triplet loss的齿轮箱复合故障识别方法

2021-03-17赵晓平王逸飞张永宏吴家新王丽华

振动与冲击 2021年5期
关键词:卷积准确率样本

赵晓平,王逸飞 ,张永宏 ,吴家新 ,王丽华

(1.南京信息工程大学 计算机与软件学院,南京 210044;2.南京信息工程大学 自动化学院,南京 2100443.南京信息工程大学江苏省网络监控中心 计算机与软件学院,南京 210044)

齿轮箱是现代机械设备智能化中不可分割的一部分,其结构复杂,长时间的运转后,齿轮箱内部零件极易因疲劳磨损产生故障,从而导致设备损坏,而轴承和齿轮就是其中最重要的两种零部件。齿轮箱被广泛应用于交通运输、电力发电、石油化工、采矿冶金等现代工业设备[1-3]中,在实际的工业生产中,当机械设备出现单一故障后不会马上停机检查,而是继续对故障进行跟踪监测,判断故障程度,推测其剩余寿命。在设备继续运行的过程中,很可能出现零件进一步损坏,形成复合故障[4-5]。这对传统故障诊断方法带来了巨大挑战,亟需一种有效的方法来完成复合故障的诊断。

深度学习能够根据机械故障信号的特点,在进行一系列预处理后直接输入深层神经网络进行训练,依靠多层神经网络的特征提取和降维功能[6],模型以最小化其损失函数为目标,通过梯度下降[7]和反向传播[8]算法进行自学习使模型收敛,从而完成机械故障识别诊断。

Li等[9-11]使用多个自编码器堆叠形成深度网络,先通过无监督逐层对网络进行预训练,再对网络权值进行有监督训练来更新,从而对滚动轴承的损伤位置和大小进行了高效诊断。Jeong等[12-15]进一步优化了深度置信网络,对参数进行了寻优,使得模型在滚动轴承故障诊断中具有更好的鲁棒性和抗噪能力。陈淑梅等[16]采用轻量级卷积神经网络进行故障诊断,并采用田纳西过程为代表的多变量非线性过程验证了模型的有效性。Schroff等[17]建立了Face-net首次将Triplet loss应用于人脸识别,并取得了卓越的成绩,这也让人们看到了Triplet loss在处理大样本、复杂数据中的优势。

上述研究展示了深度学习在面对机械大数据任务时,强大的自适应特征提取和分类能力,这些研究均是在诊断单一目标故障时发挥了良好的效果。然而,在实际情况中,齿轮箱中的齿轮和轴承往往会同时出现故障,而故障信号间有耦合,变化的工况(负载,转速)也会对信号产生较大影响,这使得各类复合故障信[18]号交织在一起,难以区分。针对这一问题本文提出了基于Triplet loss的深度度量学习模型,使用Triplet loss作为损失函数来优化模型,在每次训练中都增大不同故障信号在高维空间中的距离,从而高效完成复杂的复合故障的分类任务。本文对以Softmax为分类器的神经网络模型和以Triplet loss为基础的深度度量学习模型进行了比较分析,论证了有度量效果的Triplet loss在复合故障识别上有巨大优势。

1 基于Triplet loss的深度度量学习

1.1 Triplet loss损失函数

三元组是由正样本positive、负样本nagative和锚点样本anchor构成的,具体构成如下:从训练数据集中随机选择一个样本作为anchor(xa),再随机选择一个与anchor异类的样本和同类的样本分别为negative(xn)和positive(xp),即三元组(anchor,positive,negative)。针对三元组中的每个样本,训练一个神经网络,得到三个样本的特征表达记为f(xi,a),f(Xi,ρ),f(xi,n)。

图1为三元组的训练过程示意图,首先固定一个锚点样本(anchor)希望包含该样本的类间对(anchor-negative)特征的距离能够比同样包含该样本的类内对(anchor-positive)特征的距离大一个间隔(margin),如式(1)

(1)

图1 Triplet loss的优化目标Fig.1 Triplet loss optimization goal

若以Triplet loss作为损失函数训练模型,不断优化使之达到最小值,实际上就是让同类样本越来越接近,异类样本越来越疏远的过程。

1.2 三元组的选择

对于三元组的选取,采样策略是至关重要的:假设训练集样本数为n,那么所有的三元组组合数为O(n3),数量非常庞大。其中存在大量的平凡三元组,这些平凡三元组类间对的距离已经比类内对的距离大一个间隔,他们对应的损失为0。简单的随机采样会导致模型收敛缓慢,特征不具有足够的判别性。因此一种合理的解决方案是仅挖掘对训练有意义的正负样本,也称为“难例挖掘”。例如:Hard Net旨在在一个训练batch中挖掘一些最难的三元组。然而如果每次都针对锚点样本挖掘最困难的类间样本,模型又很容易坍缩。因此,Schroff提出了一种半难例(semi-hard)挖掘的方式:选择比类内样本距离远而又不足够远出间隔的类间样本来进行训练。

2 故障识别模型的建立

2.1 深度度量学习模型

将齿轮箱内的齿轮故障和轴承故障的复合故障作为本文的研究对象,建立深度度量学习模型。该模型采用Triplet loss作为损失函数来构建网络,它将特征映射到欧几里得空间,计算同类样本与异类样本在欧式空间上的特征距离,距离越近相似度越高。通过不断优化Triplet loss,神经网络则不断学习到新的特征,并且使同类样本的距离越来越近,同时使异类样本的距离越来越远。

图2为本文所设计的深度度量学习网络模型,此模型包含四层(输入层、神经网络层、三元组选择层、损失函数计算层等)。

图2 深度度量学习模型结构Fig.2 Depth metric learning model structure

深度神经网络层的任务是提取复合故障信号的特征并降维,因此可供选择选的网络结构有很多,可以选择卷积神经网络CNN(convolutional neural network),长短期记忆网络LSTM(long short-term memory),全连接神经网络,自编码网络等。各种网络所对应的输入形式如图3所示。

图3 预处理方式

而在Liu等[19-20]的研究中均表明将时域信号直接作为输入数据进行网络训练的效果不佳。同时实际试验时也发现,将时域信号作为输入,训练时网络的损失无法收敛,且准确率仅有30%。

Zhao等[21]在诊断齿轮箱单一故障时,经过傅里叶变换FFT把频域信号作为输入数据进行网络训练得到了不错的效果。复合故障信号是频率随着时间改变的非平稳信号,它比单一故障信号更加复杂,只使用频域信号难以准确的诊断齿轮箱内的复合故障信息。频域信号只提取了信号中各个频率的成分,丢失了各个频率出现的时间信息。因此时域相差很大的两个信号,频域信号可能一样。

本文使用短时傅里叶变换STFT(short-time Fourier transform)将非平稳信号看成是一系列短时信号的叠加,把信号划分在若干个小时段间隔里,在传统的傅里叶变换的基础上,通过滑动时窗来计算频谱,确定在某个时间间隔里的频率,进行信号的时频描述,从而不会丢失时间信息。STFT对信号处理时,假定一非平稳信号S(t),则S(t)的短时傅里叶变换定义为

(2)

式中:t为时间平移参数;h(t)为以t为中心的窗函数,通过窗函数截断信号,将信号分为多段,截取得到信号可以表示为

St=S(τ)h(τ-t)

(3)

式中:St为原始信号对应固定时间t上的信号;S(T)为执行时间对应T的信号。对St作傅里叶变换,获得St的频谱,其表达式为

(4)

通过改变平移参数t的大小,可改变窗函数的中心位置,得到不同时刻的傅里叶变换。在每个不同的时间间隔里,都可得到一个不同频谱,这些频谱的总体就构成了一个时频分布,即时频图。

经过多次分析和试验,在选择合适的窗函数和窗宽后,把复合故障信号经过STFT转化成时频图,最后通过双线性插值压缩生成80×80×3的图片以输入网络(图片大小为80×80,颜色为彩色的RGB3通道)。

图4 预处理结果Fig.4 Pretreatment result

卷积网络层的结构直接影响了网络模型的效果,因此网络结构参数的选择尤为重要。本文经过试验分析,选择合理的卷积核大小,通过5折交叉验证等对结果进行多次对比,最终选取的卷积网络层的具体结构如图5所示。

表1为最终卷积网络层采用的具体结构参数。网络采用Relu作为激活函数,初始化网络参数时使用uniform均匀分布,范围是[-0.1,0.1]。网络使用adam优化器,学习率设置为0.06。Dropout设置为0.7,用来避免网络出现过拟合现象。这种结构既保证网络能学习到尽可能多的特征,同时也防止了过拟合现象。

图5 卷积网络结构

表1 网络结构参数

卷积网络层后是三元组选择层,它们共享卷积网络输出的32维特征,生成一个个用于优化的三元组。本文采取的是1.2节中提到的在线更新Triplet loss的方法来解决三元组的选择问题。

最后一层是损失函数计算层,通过L2范式对输出的特征进行归一化,最后计算Triplet loss。Triplet loss作为网络的损失函数(超参数margin=1),以最小化Triplet loss作为网络的优化目标,通过误差反向传播(back propagation,BP)算法来不断更新神经网络的权值,从而训练出最优特征。在训练出来的新的特征空间中,不同故障类型的数据之间距离很远,而相同故障类型数据间距离很近。

2.2 模型训练与诊断流程

本文设计了基于Triplet loss的深度度量学习模型训练与诊断故障的流程图,如图6所示,具体步骤如下。

步骤1:对采集得到的数据做预处理,从而得到多张80×80×3的复合故障数据的时频图。

步骤2:通过卷积神经网络对图像数据进行处理,以Triplet loss作为损失函数,采用反向传播算法不断迭代,直到模型收敛得到最优解并保存模型相关权重参数。

步骤3:选择最优的模型参数后将所有故障数据进行前向传播,得到其32维的故障特征(经过多次试验,神经网络结构中的全连接层最后输出32维,既保证有足够的特征来描述信号的特点,同时计算量也较为合理),并加入模板库中。未知故障数据经过神经网络后也能获得一个32维的特征,计算未知数据的特征和模板特征之间的欧式距离,模板库中与未知数据欧式距离最小者即为该未知故障的故障种类。

步骤4:设置阈值是为了防止未知故障数据是一种全新的故障类型,它的32维故障数据特征离模板里每一个32维特征的欧式距离都很远,而模型会选择一个最近的故障类型作为输出。这个最小值如果大于提前设置好的阈值(阈值的选择见3.4节表5),则将该故障的32维特征向量存入模板库,并且标签记为未知故障①(之后以此类推),诊断结果输出“未知故障①”,再次遇到该故障类型的未知数据时深度度量学习模型就能准确诊断。如果这个最小值小于提前设置好的阈值ε,则诊断结果输出为离故障数据最近的模板的故障类别(两个故障数据特征间的欧式距离越小说明故障种类越相似)。

图6 模型训练与诊断流程Fig.6 Model training and diagnostic process

3 试验与分析

3.1 数据采集

深度学习网络的训练需要大量的数据支持,训练数据的质量会直接影响模型的效果。因此本文以Spectra Quest公司生产的动力传动故障诊断试验台(DDS)为研究对象(如图7所示)。安装加速度传感器(SQI608A11-3F)时,本研究参考凯斯西储大学轴承数据的采集方式,通过螺栓联接将加速度传感器安装在齿轮箱定轴的左右两侧,这样能确保双通道的振动信号时间差最大(如图7中传感器1、2的位置)。采样频率为20 kHz,采样时间为20 s。

图7 动力传动故障诊断试验台Fig.7 Power transmission fault diagnosis test bench

试验中通过更换齿轮箱内的故障齿轮(缺齿、断齿、偏心、过度磨损、裂纹、正常等情况)和故障轴承(内圈故障、外圈故障、滚动体故障、复合故障、正常等情况),模拟齿轮箱可能会发生的30(5×6)种故障情况,如图8所示(每个齿轮与轴承均只存在一种故障)。为了模拟更真实的生产环境,会在随机时间,用金属敲击齿轮箱、工作台或桌面的方式进行人为噪声污染,污染信号约占总信号的5%。

图8 故障轴承及齿轮Fig.8 Bearing faulty bearings and gears

同时为了增加样本的多样性,在数据采集时通过控制前端的驱动电机来改变转速;通过控制负载调节器来改变负载,从而尽可能的模拟实际生产中可能发生的工况类型。每种故障样本在4种不同电动机转速(1 700 r/min、1 800 r/min、3 400 r/min和3 800 r/min)与4种不同负载①、②、③、④(4种负载具体的电压和电流参数见表2)下采集。

每种工况下采集得到左右两个通道的时域信号,最终采集到960个(30种多故障组合类型×4种不同转速×4种不同负载×2(左右双通道))振动信号文件,每个信号文件中包含409 600个信号点。

表2 负载种类

3.2 数据切分及预处理

试验数据的数量和全面性是模型能够高效完成故障诊断的前提,DDS试验台共采集得到960组复合故障数据,每组复合故障文件中包含409 600个信号点,现对每个信号文件中的409 600个信号点进行切分为200段,每段为[0,2 000]的时域信号。本试验的数据采集都是在电机转速稳定后进行采集,不包含升降速阶段,所以在每小段时间里仍具有故障数据的完整特征。

(1) 按百分比切分数据集时,每类故障数据都包含了充足的工况信息(转速、负载信息),将原始信号按1∶4划分测试集和训练集,即随机选取每个信号文件中的25%作为测试集,75%作为训练集对模型进行训练,使得模型能充分学习到各类工况下的故障特征。

(2) 按负载情况切分数据集时,训练集中每类故障数据中只包含了3种负载信息,包含另一种负载信息的故障数据则作为测试集。

(3) 按转速情况切分数据集时,训练集中每类故障数据中只包含了3种转速信息,包含另一种转速信息的故障数据则作为测试集。

按上述方式切分后获得试验数据如表3所示。

3.3 标签制作

本文为了对比卷积神经网络+Softmax分类器的诊断模型和基于Triplet loss的深度度量学习模型对齿轮箱复合故障的诊断效果制作了两类标签(两个模型中卷积网络结构和参数完全一致)。

(1) 按故障种类分为30类(5种轴承故障和6种齿轮故障)。分别制作训练集和测试集的标签。输入Softmax的标签需要对数据的标签进行编码,本文采用One-Hot编码方式。

(2) 按故障种类分为30类(5种轴承故障和6种齿轮故障)。分别制作训练集和测试集的标签。输入Triplet loss的标签是Ones矩阵,因为标签在Triplet loss中没有实际意义,只用作统计准确率。

3.4 试验对比分析

本试验训练和测试的硬件环境为i7-7700HQ CPU、英伟达GTX1050Ti显卡(显存4G)、16G内存,软件编程环境为python3.6、Tensorflow1.2、CUDA8.0。网络训练时输入样本大小为80×80×3,设置Batch-size为512。

表3 试验数据切分

使用表3中的数据分别输入卷积神经网络+Softmax分类器的诊断模型和基于Triplet loss的深度度量学习模型中进行模型训练(两个模型中卷积网络结构和参数完全一致),并统计了试验中准确率变化,表4中列出了各个试验取得的测试集平均准确率(每个试验重复了10次,取均值)。

表4 两种模型试验结果对比

从表4中试验结果可以看出,当按百分比切分数据(即训练数据充足,包含各种转速和负载情况),并且对数据进行归一化处理时(即表4试验10),卷积神经网络+Softmax分类器的诊断模型准确率可以达到93.26%(见图9),且未发生过拟合;而基于Triplet loss的深度度量学习模型准确率高达96.82%。

图9 试验10传统网络的准确率Fig.9 Accuracy of traditional network in experiment 10

使用缺失某种负载的数据训练网络,且使用该缺失负载数据进行网络测试时(试验2~5,11~14),两种模型在测试集上能够获得较高的准确率,但深度度量学习模型依然效果更好,可以达到96±0.6%的准确率,而卷积网络+Softmax分类器模型的准确率只有92±1%。当使用缺失某种转速的数据训练网络,且使用该缺失转速数据进行网络测试时(试验6~9,15~18),从图10中可以看出卷积神经网络+Softmax分类器的诊断模型产生了严重的过拟合现象,测试集准确率很低,试验15只有67.14%。

图10 试验15传统网络的准确率Fig.10 Accuracy of traditional network in experiment 15

但深度度量学习模型具有很强的泛化能力。如图11所示,该模型在模拟实际应用中可能遇到的缺失某种工况数据的情况下依然能获得较高的诊断准确率,即使在缺失转速数据的试验中(试验15~18)也能取得90%左右的准确率。

本文提出方法能够取得较高诊断精度的根本原因是:

(1) 通过STFT将振动信号转化为时频图,使用卷积神经网络提取了时频图中的特征,从而有效利用了故障信号中的频率信息和时间信息。为了更加直观的验证提出方法在特征提取上的能力,随机选取了2种不同故障种类的信号A和B(A为断齿+内圈故障,B为正常齿轮+外圈故障),将其输入到表4试验10取得的最高准确率的网络模型中,将图6中卷积层C1和卷积层C3输出的特征进行可视化。如图12、13所示,从图中的可视化结果可以看出,浅层学习得到的是时频图中整体的特征,每一个feature map在整体和轮廓上进行分析(如图12、13中的浅层特征);而深层能学习到局部的细节特征,每一个feature map在局部的细枝末节上进行分析(如图12、13中的深层特征)。

图11 深度度量学习模型在不同数据下的准确率

图12 故障A的特征可视化Fig.12 Feature visualization of fault A

图13 故障B的特征可视化Fig.13 Feature visualization of fault B

(2) 使用Triplet loss度量各类故障之间的距离,使得同类故障特征间的距离很近,异类故障特征间的距离很远,从而使得诊断变得更精准更容易。而传统卷积神经网络+Softmax分类器的模型并没有度量故障特征间距离的作用。为了证明该模型能够使得故障数据的特征满足同类样本间的距离越来越近,同时异类样本间的距离越来越远。本文随机选取5种故障类型A、B、C、D、E。A为正常齿轮+滚动体故障;B为缺齿+外圈故障;C为缺齿+正常轴承;D为过度磨损+内圈故障;E为偏心+滚动体故障。每种故障类型随机选取1 600个数据(共5×1 600=8 000个数据)。图14为T-sne可视化8 000个数据点的原始分布情况。

图14 处理前T-sne可视化Fig.14 T-sne visualization before processing

图15为T-sne可视化8 000个数据点经过深度度量学习模型处理过后的分布情况。

图15 处理后T-sne可视化Fig.15 T-sne visualization after processing

图16为8 000个数据点经过使用交叉熵损失函数的传统卷积神经网络模型处理后的分布情况,从图中可以看出同类故障数据之间有较大间隔,且不在同一区域。

图16 采用普通损失函数的T-sne可视化Fig.16 T-sne visualization with common loss function

因为T-sne可视化图中的距离不能代表真实多维空间中的距离,所以本文在训练好的模型中经过一次前向传播得到这8 000个故障数据的特征,计算这8 000个故障数据特征间的欧式距离。

(8)

计算同类故障特征间的欧式距离时取同类数据欧式距离的平均值,计算异类故障特征间的欧式距离时取异类数据欧式距离的平均值,具体数值见表5。从表中可以看出对角线上的数值代表相同故障类型的特征之间的距离,其值远小于不同故障类型的特征之间的距离。这说明该模型确实很好的完成了故障诊断任务。此外,在多次计算故障数据间的欧式距离后,阈值ε设置为50~60较为合理,本文设置为55。

表5 故障数据间的欧式距离

4 结 论

本文首次使用深度度量学习模型同时对齿轮箱内轴承和齿轮故障进行诊断,并通过不同的方式对采集得到的数据进行切分,来模拟实际应用中可能遇到的缺失某种工况数据的情况,从而验证网络模型的性能,同时构建了卷积神经网络+Softmax分类器的模型进行对比分析,结论如下。

(1) 当数据种类不存在缺失时,深度度量学习模型在应对齿轮箱复合故障时,能够自适应的提取特征。对复合故障的诊断准确率能够达到96.82%,高于使用卷积网络+Softmax分类器模型进行诊断的效果。

(2) 当使用缺失某种负载的数据训练网络,且使用该缺失负载数据进行网络测试时,依然能够获得96±0.6%准确率;而卷积网络+Softmax分类器模型的准确率只有92±1%。

(3) 当使用缺失某种转速的数据训练网络,且使用该缺失转速数据进行网络测试时,卷积网络+Softmax分类器模型产生了严重的过拟合现象,测试集准确率很低,只有60%左右。而深度度量学习模型并未出现过拟合,在测试集上的准确率依然有90%左右。

(4) 本文所采集的齿轮箱多故障数据集具有一定的研究价值,可用于评估针对此类问题的模型。

猜你喜欢

卷积准确率样本
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
用样本估计总体复习点拨
从滤波器理解卷积
推动医改的“直销样本”
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
随机微分方程的样本Lyapunov二次型估计