胡向东,梁 川
(重庆邮电大学 自动化学院,重庆 400065)
随着信息处理分析技术和传感器技术的不断发展与日益创新,故障诊断已经发展成为一种多个学科交叉融合的新技术。故障诊断是通过测量设备的工作状况并对其异常状态做出技术判断,为后续维修计划提供参考依据[1]。因为存在较多无法预测的状况,工业生产的机械设备可能出现不同的问题,引起系统功能故障,造成严重的工厂事故。滚动轴承是机械设备的易损部件,其健康状况对机械设备的性能、稳定性和使用寿命有重大影响[2]。当机械轴承出现故障时,会产生异于正常工作时的振动信号,故障点不同,产生的信号特征也不相同,因此分析缺陷轴承的振动信号来判断轴承故障状态,是一种科学的检测、诊断方法[3]。
传统的机械轴承智能诊断方法一般需要借助于快速傅里叶变换(FFT)、小波变换(WT)和经验模态分解(EMD)等现代信号处理技术[4]对采集到的信号进行处理,然后经过工程经验获取故障特征,进而实现故障的判别。郭宇庭等[5]提出了一种基于小波变换的自适应时频特性的轴承故障诊断方法。但该方法只是比较了轴承正常与故障时的信号特征规律,并未得出确切的诊断结果。刘畅等[6]提出了一种改进支持向量机的机械轴承故障诊断方法,虽然此方法能够获得不错的诊断准确率,但是对技术人员的理论知识要求较高,并且其故障信号判别过程较为繁琐,并未实现端到端的故障诊断。李继猛等[7]提出一种融合经验模态与奇异值分解的滚动轴承故障诊断方法,该方法虽然特征提取精度较高,但是需要技术人员来进行故障分辨,仍然存在一定的分辨误差。传统的轴承故障诊断方法在特征选取环节的好坏会直接影响诊断精度,因此依靠工程经验提取振动信号特征并不是最优解。
目前使用原始振动信号特征进行轴承故障诊断逐渐成为研究重点,许多学者利用深度学习直接挖掘信号潜在特征,通过深层次神经网络和批量训练样本来提高分类准确率[8]。张颖等[9]提出结合时频图像与卷积神经网络的轴承故障诊断方案,利用短时傅立叶变换获得二维图像,然后将其输入到卷积神经网络,获得了较好的故障诊断准确率,但是该方法仍未实现端到端学习。Miao He等[10]利用可调滤波器大小的卷积核进行振动信号的分割,使用训练的离散傅里叶变换-逆离散傅里叶变换自编码器来得到振动信号谱平均值,并使用谱平均值重构振动信号,然后将重构的振动信号送入分类层进行轴承故障诊断。该方法虽然在诊断的准确率上表现不错,但是较为繁琐,目前在工业现场部署还较为困难。
针对以上问题,张伟[11]研究出直接在时域振动信号进行处理的卷积神经网络模型。该模型虽然对轴承的故障识别准确率较高,但是模型鲁棒性还有待提高,其超参数的选择也需要多次实验才能确定。昝涛等[12]设计出多输入层的诊断方案,提高了测试准确率,但却需要在卷积或池化层输入低维的频谱数据,过程繁琐且未实现端到端的故障诊断。宫文峰等[13]提出一种使用全局均值池化技术代替传统CNN的全连接部分的改进卷积神经网络的轴承故障诊断方法,但对于内圈的轻度缺陷检测准确率只有96%,仍还有提升的空间。
综合以上分析,本文提出一种基于SE-ResNeXt的端到端故障诊断模型,不仅避免了繁琐的振动信号特征提取过程,很好地解决了轴承故障诊断准确率低的问题,而且模型鲁棒性较好,实现了端到端的轴承故障诊断,具有良好的可操作性与通用性。本文所做的主要内容如下:
(1)以441位数据点为一个样本,使用滑动窗口采样法对原始的轴承振动信号数据进行扩增,根据数据集长度获取8 000个样本并划分5 600个训练集,2 400个测试集后随机打散。
(2)选定压缩率、组卷积分支数和残差网络参数,并将SEnet与ResNeXt进行级联,搭建易于拓展的SE-ResNeXt故障诊断模型。
(3)将本文所提模型与现有的深度学习算法进行多次故障诊断实验,进行可行性分析与有效性验证,并向测试数据中加入噪声信号,进行模型的鲁棒性测试。
采用SE-ResNeXt模型对滚动轴承进行故障诊断的思路是先将一维信号进行滑动窗口采样并标准化处理后作为输入,利用SEnet网络进行特征重标定,并级联ResNeXt网络对一维振动信号进行深层次的空间特征学习,最后利用Softmax函数完成故障分类。模型训练流程如图1所示。
图1 模型训练流程图
为测试所提模型对轴承故障诊断的可行性和鲁棒性,本文采用凯斯西储大学轴承数据[14]进行故障仿真实验。故障轴承振动信号来源于如图2的仿真实验平台,左边为三相感应电机用于产生驱动力,中间的扭转传感器用于测量扭矩和转速,右侧为测力计用于产生不同负载,测试轴承型号为SKF6205,安置在驱动端。
图2 轴承故障试验台
实验为人工采用电火花在轴承的内圈、外圈和滚动体上加工出尺寸为0.007英寸、0.014英寸、0.021英寸的单点故障,用来表示不同的故障损坏程度,实验共有9种不同的损伤状态和1种健康状态。所产生的信号使用16通道数据记录仪进行收集,采样频率为12 kHz,电机载荷有4种,分别为0、1、2、3 hp(1 hp=0.746 kW)。
本实验在采样频率12 kHz,0 hp负载下进行测试,该负载对应的转速为1 797 rpm,因为原始振动信号有限,本文使用了一种固定步长的滑动窗口采样算法进行数据扩增,如图3所示。
图3 滑动窗口采样算法伪代码
本文设定的滑动窗口大小w=441,滑动步长为150,并且按照7:3划分训练集与测试集,采样后的数据集组成如表1所示。
表1 轴承数据集
因一维振动信号幅值较为分散,在划分训练集和测试集后,使用批标准化方法将数据进行转换,转换后将数据变为均值为0,方差为1的标准正态分布,使得模型更能学到数据之间的规律,并加快梯度收敛速度,其计算公式为:
(1)
因在生产过程中,轴承设备一般处于较为恶劣的环境中,对滚动轴承故障的准确诊断较为困难,且噪声的干扰会严重影响故障诊断的精度。本节提出一种SE-ResNeXt网络的轴承故障诊断模型,该模型首先使用一维卷积神经网络层对输入的原始故障振动信号进行初步特征提取,利用特征重标定层扩大模型感受野,增强模型的抗噪声能力,并级联ResNeXt网络进行深层次的空间特征学习,使用全局平均池化将特征信号转为一维向量展平,最后使用Softmax函数进行故障分类。为优化模型训练过程,实验网络均采用Relu作为激活函数,为防止过拟合现象的发生,将传统的全连接层替换为全局平均池化层,对模型的参数进行缩减,增强模型的泛化能力。SE-ResNeXt模型结构如图4所示。
图4 SE-ResNeXt模型结构
接下来分别介绍网络的各个部分。
1)CNN+SEnet网络层:
原始振动信号经过批标准化后首先输入到一维卷积层,一维卷积层采用8个尺寸为3的滤波器,滑动步长为1,初步提取振动信号特征。利用卷积层权值共享的特点能够减少网络参数,避免由于参数过多造成的过拟合现象,并降低系统所需内存。一维卷积层的卷积计算公式为:
(2)
ReLU(x)=max(0,x)
(3)
将经过卷积后得到的向量采用最大池化进行稀疏,其能够选取特征图中的最大值,简化网络参数加速模型训练,最大池化公式为:
(4)
Squeeze-and-Excitation Networks(SEnet网络)[15]是胡杰团队于2017年提出的新型网络结构,并利用该模型获得了ImageNet 2017竞赛图像分类任务的冠军。本课题利用该网络作为特征重标定层,通过损失函数值去学习特征权重,调整有效的特征信息权重大,从而优化模型达到更好的训练效果,SEnet网络结构如图5所示。
图5 SEnet网络结构
在振动信号数据经过卷积与池化层后,将其输入到SEnet网络进行特征重标定,自适应获取每个特征通道的重要程度。SEnet网络主要包含Squeeze(压缩)和Excitation(激励)两个部分。
Squeeze操作:数据X经过Ftr卷积池化转换后得到图5中的第二个模块U,其中H,W1,C代表张量的长度、宽度以及通道数。模块U经过Fsq操作变为1*1*C的输出,其公式为:
(5)
式中,zc为压缩操作后的输出量,uc(i,j)为c通道中第i行第j列的输出值。经过Squeeze操作进行特征映射后,原始的多维信号特征被映射为一个数值,该数值具有全局感受野,这使得靠近输入的层也能获得全局感受野,增强了模型的泛化能力。
Excitation操作:通过压缩操作得到的结果为zc,将W1与zc进行全连接操作,如公式(6)所示。
s=Fex(zc,W)=σ(g(zc,W))=σ(W2δ(W1zc))
(6)
(7)
2)ResNeXt网络层:
ResNeXt是ResNet和Inception的重构网络,将残差和多尺度思想相融合,既避免了因为网络模型过深而带来的梯度弥散现象,又利用多尺度学习信号特征。该模型不需要多次实验设计复杂的Inception结构细节,而是选用一致的拓扑结构共享超参数,通过基数来改变控制组卷积的分支数量,极大地提高了模型的可扩展性。
将经过特征重标定后的振动信号输入到ResNeXt网络层,该网络平行堆叠相同拓扑结构的残差块,减少超参数,便于模型的移植。ResNeXt的单个残差块在低维嵌入上实施一系列变换,再将输出数据通过相加的方式聚合,ResNet与ResNeXt基本模块的结构对比如图6所示。
图6 ResNet和ResNeXt模块结构对比
左图为常见的ResNet网络,当网络深度较深或参数较多时,模型训练梯度可能会发生弥散现象,本文采用残差结构优化信息传递路径,避免梯度弥散现象的发生。图6中右图为改进的ResNeXt网络,拆分-转换-合并的形式可表示为:
(8)
其中:Ti为相同的拓扑结构,c为一个模块中所具有的相同分支的数目,通常将c称为基数,c的取值可以是任意数。ResNeXt网络既可以对信号的空间特征进行更加深层次的学习,又可以利用多尺度结构提高模型性能。
3)故障分类层:
在经过ResNeXt模型提取信号特征后,利用全局平均池化将向量展平为一维,最后使用全连接层的Softmax函数将输出进行特征转换,完成轴承故障诊断。Softmax函数如式9所示。p(i)为第i个样本的概率值,且0
(9)
本文采用交叉熵损失函数进行网络优化,损失函数定义如式(10)所示,式中n为每个训练批次的大小,k代表分类的类别数,k=[0,1,…,9],Y代表输出的概率分布,P代表真实的故障标签。
(10)
为测试模型的诊断准确率,本实验在采样频率为12 kHz,0hp负载的条件下进行了测试实验,该负载对应的转速为1 797 rpm,实验数据共包含5 600条训练数据,2 400条测试数据,仿真实验采用Python的深度学习框架keras来实现;仿真平台为Inteli7-6700CPU3.40 GHz,24 G内存,Win1 064位操作系统;不采用GPU加速。实验参数:输入一维信号长度为441,采用Adam优化器进行梯度下降,最大迭代次数200,每批次训练样本256。
虽然本文提出的SE-ResNeXt模型使用了组卷积的概念,简化了超参数的选取,但是卷积和池化层仍然需要进行参数的设定,经过多次重复性实验,最后得到了如表2的参数设置与模型结构。
表2 模型参数
图7为SE-ResNeXt网络迭代200次的训练与测试准确率曲线图,其中模型输入为原始一维振动信号数据,图中可以看到本文所提模型在迭代大约120轮后训练准确率已达到99.2左右,虽有较小波动但是后续逐渐趋于平稳,证明了所提模型能够较好的完成滚动轴承的故障诊断与分类。
图7 SE-ResNeXt模型训练准确率曲线
本文采取的轴承故障诊断评估指标有准确率(Accuracy):所有正确分类的样本与所有样本之比;召回率(Recall):实际正常的
样本与预测为正常样本之比;F1(F1-Score):准确率与召回率的调和平均,其对应公式为:
(11)
(12)
(13)
式中,TN代表将正常样本正确分类的样本数;TP代表将故障样本正确分类的样本数;FN代表错误分类故障样本数;FP代表错误分类正常样本数。利用上述指标对SE-ResNeXt模型诊断实验结果的评价如表3所示。
表3 SE-ResNeXt模型分类结果
在未使用模型时,模型训练用时为456 s,利用模型复用技术,该网络调用已训练完毕的模型,进行故障诊断,得到的平均准确率为99.25%,重构时间为2.16 s。在本次实验中,我们采用了NIN、Inception-V1、VGG16、1DCNN四种模型与SE-ResNeXt进行了十分类对比测试,实验结果如图8所示。
图8 十次实验的平均测试准确率
为进一步分析模型的诊断分类效果,将模型训练的0 hp负载数据在全连接层进行T-SNE技术的特征降维,然后将二维特征向量进行可视化,结果如图9所示。降维可视化表明,在未进行分类时,各种故障特征杂糅在一起,难以区分,经过SE-ResNeXt模型训练后在全连接层已经具有较为明显的十类分布。
图9 T-SNE特征可视化
在实际的工业生产中,机械设备的滚动轴承往往处于较为复杂的环境条件下,实验测量所得到的振动信号并不都是纯净的,经常夹杂着许多的噪声。因此为了进一步的测试模型的鲁棒性,使用1 hp的正常数据进行训练,并在测试数据中加入不同强度的高斯白噪声,评估模型在不同信噪比下的性能。
以正常振动信号与外圈故障0.007英寸的振动信号为例,加入10 dB与20 dB的噪声信号,信噪比的定义如式(14)所示。
(14)
式中,Asignal为信号的幅度,Anoise为噪声幅度,实验十次取平均值,测试结果如表4所示。
表4 模型抗噪声实验结果 %
由表中的数据可知,模拟真实工业生产环境,添加不同的噪声信号后,模型的检测准确率有所下降,且噪声越大,对模型的影响越大。多次实验所测得的结果是SE-ResNeXt模型诊断准确率最高。分析1DCNN的抗噪声能力不错是其采用了卷积神经网络,提取的特征具有平移不变的特点,增加了模型的鲁棒性,但因为其并未进行特征重标定,模型感受野有限且学习深度不够从而导致模型的准确率较低。VGG16仅仅依靠堆叠较深层次的卷积网络,虽然模型在噪声较小的情况下准确率较高,但是由于感受野有限,导致模型的鲁棒性欠佳。
本文首先介绍了常用的轴承故障诊断方法,然后在相关研究的基础上,提出了一种基于SE-ResNeXt网络的轴承故障诊断方法,该方法直接从原始一维振动信号提取特征进行学习,通过设计相应的网络参数完成最优诊断模型的构建,从而实现了端到端的轴承故障诊断。
实验结果表明:与目前常用的深度学习算法相比,本文所提模型具有更好地检测准确率,利用模型复用技术,可以在较短时间内实现故障的快速诊断。工业生产中的噪声会严重影响模型的诊断准确性,本文所提模型可减小噪声对诊断结果的影响,提高在噪声影响下的诊断准确率。
在将来的工作中,本文将针对以下两个方面进行更加深入的探索:
1)研究数据类别高度不平衡的滚动轴承故障检测算法。
2)在保持高准确率的情况下,探索故障检测时间较短的深度学习算法。