基于余弦下降学习率的卷积网络轴承故障诊断

2020-09-28 02:39杨成刚
工业技术与职业教育 2020年3期
关键词:故障诊断轴承卷积

王 萌 ,曾 艳 ,彭 飞 ,杨成刚 ,王 康

(1.唐山工业职业技术学院,河北 唐山 063299;2.北京首钢自动化信息技术有限公司,北京 100043)

0 引言

滚动轴承作为旋转机械的关键部件,具有工况复杂、故障类型多的特点[1]。旋转机械中滚动轴承是一种关键零部件并且属于易损件。其轻度损伤可能导致整机停车故障,甚至产生难以估计的经济损失和安全事故。因此,国内外众多研究学者积极开展滚动轴承的预测性故障维护方面的研究。及时对滚动轴承进行故障分类有利于改进旋转机械的故障模式识别并提高维修效率。但是由于滚动轴承的工作环境复杂并且伴随着大量环境噪音,故障特征信号提取非常困难[2]。传统的故障诊断时频域分析方法倾向于自原始信号提取时域和频域特征,例如快速傅立叶变换[3]、奇异值分解[4]、小波变换[5]和集合经验模态分解[6]等。这些方法依靠研究者根据已有经验甄选合理的工作状态特征并根据数据特点设置最终分类器核心参数,并获得比较理想的运行状态识别效果。然而,这些诊断模型的泛化能力差,工程技术人员难以选择合适的模型提取最全面的特征从而胜任不同的诊断任务。此外,振动信号容易受到不同环境噪声的干扰,研究人员从原始振动信号中提取的统计特征通常无法对故障保持良好的灵敏度和稳定性[7]。因此,如何实现滚动轴承故障特征的自动提取和模式识别成为国内外研究学者的研究热点。

近年来,智能滚动轴承故障诊断模型应运而生,受到越来越多的研究关注[8]。人工智能主要算法中卷积神经网络(Convolutional Neural Network,CNN)由于其参数量小、模型回归速度快等特点,被广泛应用于预测性维护等工业大数据领域。胡晓依等基于深度学习理论,有效组合卷积神经网络和SVM分类器构造适于滚动轴承故障诊断的改进型卷积神经网络诊断模型。该模型以原始轴承的振动信号为基准,逐层学习优化,实现特征提取与状态识别[9]。Jiedi Sun等提出将卷积神经网络与压缩感知提取轴承振动信号结合,构建不需要故障提取先验知识的高效轴承故障检测模型,并取得良好效果[10]。H.O.A.Ahmed提出根据过完备稀疏表示的稀疏自编码器对轴承振动信号进行压缩测量分类,利用压缩感知方法,结合深度置信网络对轴承进行工作状态识别[11]。温江涛等提出基于压缩感知和深度学习理论,研究用随机高斯矩阵实现轴承信号的变换域压缩采集,并将此信号输入深度神经网络,实现故障的智能诊断。该方法直接利用含有大量故障信息的压缩感知域采集信号训练深度神经网络,充分利用深度学习挖掘少量压缩采集数据中隐藏的故障信息[12]。乔林涵基于CV+SGDBPNN方法的单隐层结构泛化能力和表达能力不够高效,利用特征学习对经典网络Le Net做出修改,提出了一种2卷积层串联型卷积神经网络,应对大数据集下的多故障诊断任务[13]。赵春华等利用深度学习方法、鲸鱼优化算法( Whale Optimization Algorithm,WOA)和支持向量机(Support Vector Machine,SVM)等技术,提出了一种基于深度学习特征提取和WOA-SVM状态识别相结合的故障诊断模型。该模型由深度学习自适应提取轴承频域特征,并将其与鲸鱼优化算法提取的时域特征相融合,利用WOA-SVM 对融合后的综合特征进行状态识别并取得良好实验效果[14]。陈志刚等提出基于改进EWTCS联合降噪和导联卷积网络的轴承故障诊断方法,具有较好的泛化能力和模式识别能力[15]。近年来涌现大量基于深度学习理论建立的故障诊断模型研究成果,但均存在模型收敛速度慢、训练参数多、模型损失函数降低困难等突出问题。由于深度学习的固有模型反向传播回归计算特点,造成模型在最优解附近反复震荡的情况出现。

本文使用余弦下降学习率来训练卷积神经网络模型,构建适合轴承故障诊断的CNN-SVM深度学习模型;可以把加速度传感器采集到的轴承振动信号直接作为模型的输入,自适应地从振动加速度信号中挖掘分类特征。模型末端的支持向量机最终完成轴承工作状态的分类任务。本文模型的主要工作流程如图1所示。

图1 模型训练过程

1 卷积神经网络算法原理

1.1 一维卷积神经网络

CNN是一种经典的BP(back propagation)神经网络,不同于全连接层神经网络。卷积层的神经元只与前一层的神经元节点部分相连,并且同一个卷积层中神经元之间的权重系数w和偏置系数b被设置为共享,从而极大减少需要训练参数的数量。CNN网络作为近几年的研究热点,一大批优秀模型如:AlexNet、GoogleNet和ResNet等被研发并应用于工程领域。图2是AlexNet的主体网络架构,主要由二维卷积层、最大值池化层和作为分类器的Softmax函数连接的全连接层组成。

图2 AlexNet网络结构

经典的卷积神经网络(CNN)主要包括以下几个部分:1)输入层,接受输入数据;2)卷积层,利用卷积核实现自适应特征提取和特征映射;3)激励层,卷积本质上是一种线性运算,用ReLU函数等增加非线性映射;4)池化层,常用最大值池化来压缩数据和网络参数的量,减小过拟合;5)全连接层,通常在CNN的尾部进行重新拟合,进行特征信息的整合计算;6)输出层,输出网络模型的计算结果。

在卷积层中,每一层特征图的计算公式为

式(1)中:Mj为输入特征图(feature map);l为网络的当前层数;Xil-1为当前层第i个输入特征图;w为当前层卷积核权重参数并且可以实现共享;b为当前层偏置参数也可以实现共享;Xjl为第l层第j个特征图;f()代表激活函数,常用ReLU等;*表示离散卷积计算法则。

在误差反向传播(Back Prapogation)的计算过程,一般应用随机梯度下降法对网络参数进行更新。由损失函数(如交叉熵或者MSE等)的导数,自动更新权重参数w和偏置参数b,降低模型产生的总误差。更新计算方法为:

式(2)中:w' 和 b' 为梯度下降法运算更新后的权重系数和偏置系数; w和b为原有的权重和偏置系数;η为学习率决定权值更新的速度。η过大,会使模型无法最终得到最优解;η过小,则会损害模型收敛的速度。1D-CNN 模型是将卷积神经网络中的卷积核定为一维结构,将原始振动信号一维数据直接输入到网络模型中,非常适合轴承等旋转零件产生的时序信号。

本文提出的卷积神经网络模型结构如下:

AutoEncoder(

(encoder):Sequential(

(0):Conv1d(1, 32, kernel_size=(32,),stride=(2,), padding=(15,))

(1):ReLU()

(2):MaxPool1d(kernel_size=2, stride=2,padding=0, dilation=1, ceil_mode=False)

(3):Conv1d(32, 16, kernel_size=(16,),stride=(2,), padding=(7,))

(4):ReLU()

(5):MaxPool1d(kernel_size=2, stride=2,padding=0, dilation=1, ceil_mode=False)

(6):Conv1d(16, 16, kernel_size=(8,),stride=(2,), padding=(3,))

(7):ReLU()

(8):MaxPool1d(kernel_size=2, stride=2,padding=0, dilation=1, ceil_mode=False)

(9):Flatten()

(10):Linear(in_features=256, out_features=200, bias=True)

(11):Dropout(p=0.75, inplace=False)

(12):Linear(in_features=200, out_features=10,bias=True)

)

)

1.2 变学习率优化方法

学习率(Learning rate)是设计神经网络时,通过损失函数的梯度调整网络权重的超参数。学习率越小,则损失函数的变化速度就越慢,损失函数收敛时间也会延长。使用低学习率可以保证模型不会错过任何局部极小值,但也意味着模型需要花费更长的时间达到收敛。学习率对模型参数的优化如式(2)所示。

学习率是深度学习中关键的超参数,合理选择的学习率能够使损失函数快速收敛到局部最小值。学习率太低会导致训练速度会非常慢,需要消耗大量的训练时间和计算资源,训练过程如图3所示。

图3 学习率过小收敛速度慢

模型训练过程选择过高的学习率,可能在损失函数最小值附近反复震荡,从而不能到达全局最小值。因为模型总是在全局最小值附近,但是损失函数未收敛到最小值。在训练的过程产生振荡波动,以至于产生损失函数在最小值附近反复振荡的现象。训练过程如图4所示。

图4 学习率过大造成损失函数反复震荡

为了能够让学习率可以适应模型的训练过程,随着训练批次的进行学习率逐渐衰减。本文采用余弦下降策略来调整学习率。实现在模型训练初期,应用较大步长的学习率让模型可以快速迭代至最小值附近,到了模型训练的后期,应用较小步长的学习率让模型可以平滑地收敛至最小值。学习率变换公式为

其中初始学习率LR=0.01,最终训练批次为40,epoch为当前训练批次,lr为当前学习率。

2 实验结果

2.1 实验数据描述

本文采用业内公认的凯斯西储大学(CWRU)振动实验室的开源数据来进行验证实验。电机驱动端和风扇端的轴承作为轴承振动数据采集端,分别在被测试轴承的内圈、外圈和滚动体上采用电火花点蚀加入单点损伤从而实现轴承的三类故障状态,其点蚀尺寸由小到大分别为0.18、0.36、0.54 mm。在相近的工作负载和转速条件下,由安装在电机驱动端上侧采样频率为12kHz的加速度传感器采集得到轴承振动信号。实验数据采集装置如图5所示。

图5 轴承实验平台

参照大部分轴承实验的惯例,根据轴承故障的位置和尺寸将轴承的工作状态分为10种,以2 048个振动采样数据为一个样本。每种工作状态选择800个样本,共8 000个采样样本。全部实验数据如表1所示。

采集的原始振动信号如图6所示。

图6 原始振动信号

2.2 实验参数设置

本文基于Python-Pytorch搭建网络结构,在Inter-i7-CPU的计算条件下进行试验。实验中设定数据的60%为训练集,剩余的40%为测试集,采用分类交叉熵损失函数。模型按照以下方法设置超参数:训练批次=40,batchsize=64,初始学习率=0.01。随着试验批次的增加学习率以余弦规律下降。本模型设置SVM惩罚因子C=10.33,核函数gama=3.26。

该模型的分类准确率和Loss函数值如图7、8所示。模型训练到10次时,已经几乎完全收敛,训练集和测试集的分类准确率都超过99%。试验表明,采用余弦下降学习率训练策略的卷积神经网络模型提取出的故障特征在SVM分类器中可以准确快速判断轴承的故障类型。该方法训练得到的模型具有较快的收敛速度和较高的分类准确率,并且具备较强的模型泛化能力。

图7 模型训练损失函数变化

图8 模型分类准确率变化

2.3 模型的训练效果对比

为了进一步验证该轴承故障诊断模型的泛化能力,将该模型与几种基于传统深度学习和时频域分析的轴承分类方法做对比试验[9]。本文根据引言各文献提出的方法,对信号通过经验模态分解(empirical mode decomposition)进行分析,提取信号的各阶模态特征构造 SVM 的输入向量; 将小波分解得到的相对小波能量作为输入分类特征,通过SVM判定轴承工作状态; 提取波形因子、裕度因子、峭度、均方根频率、频率标准差等 8 个时频域特征,输入SVM分类器进行工作状态分类。搭建以上几种算法的分类模型,以相同试验数据进行验算,在测试数据集上得到的准确率如表2所示。相较于其他几种方法, CNN-SVM+余弦下降学习率训练模型的计算准确率更高。

表1 轴承采样数据

表2 不同模型下的轴承故障诊断准确率

3 结论

本文提出的余弦下降学习率的卷积神经网络模型,可以在提取特征后配合SVM分类器准确判断轴承的故障类型。该方法训练得到的模型具有较快的收敛速度和较高的分类准确率,并且具备较强的模型泛化能力。在后续的研究中可以考虑进一步优化学习率下降策略,采用更加复杂并且适合轴承故障检测的学习率下降方法,比如指数型学习率衰减等方法使得学习率下降更为平滑,加快模型的收敛速度和诊断准确率。

猜你喜欢
故障诊断轴承卷积
轴承知识
轴承知识
基于包络解调原理的低转速滚动轴承故障诊断
基于3D-Winograd的快速卷积算法设计及FPGA实现
轴承知识
轴承知识
卷积神经网络的分析与设计
从滤波器理解卷积
数控机床电气系统的故障诊断与维修
基于傅里叶域卷积表示的目标跟踪算法