吴晨芳, 杨世锡, 黄海舟, 顾希雯, 隋永枫
(1. 浙江大学 机械工程学院 流体动力与机电系统国家重点实验,杭州 310027;2. 华电电力科学研究院有限公司,杭州 310030; 3. 杭州汽轮动力集团有限公司,杭州 310016)
滚动轴承一般由内圈、外圈、滚动体和保持架组成,广泛应用于风机、水轮机、航空发动机等旋转机械中。这些旋转机械往往运行于变工况且工作环境恶劣下,使得滚动轴承容易出现各种故障[1]。据统计,旋转机械的故障中轴承的损坏故障约占30%[2]。当其出现局部损伤或缺陷时,轻则使设备产生噪音、振动异常,重则导致设备非计划停机,因此对滚动轴承进行及时的故障诊断至关重要[3]。传统的滚动轴承故障诊断主要是依靠各类信号处理方法[4-5](如包络分析、小波变换、经验模态分解等)提取故障特征,再用模式识别方法[6](如人工神经网络、聚类分析、支持向量机等)进行分类诊断。但是滚动轴承的信号呈典型的非平稳、非线性,存在多故障并发,频率耦合,重要频率模糊等问题,信号处理过程中很难提取出能准确刻画故障信息的特征并且所提取的特征可能只对当前工况数据有效[7]。随着人工智能技术的快速发展和信息化时代的到来,深度学习作为机器学习的一个重要分支在各个领域都得到了广泛应用[8]。相比传统机器学习方法需要人工特征作为算法输入,深度学习以原始数据作为算法输入,由网络层层提取特征,然后通过特征到故障类型的映射最终实现故障诊断。典型的深度学习算法有深度信念网络(deep belief network, DBN)[9]、自编码器[10]、卷积神经网络(convolutional neural networks, CNN)[11]等,其中卷积神经网络算法在计算机视觉、图像处理等方面的取得了一系列突破性进展。1980年前后,Fukushima[12]提出一种模拟生物视觉系统包含卷积层和池化层的神经网络结构,是卷积神经网络的前身。Lecun等[13]在此基础上提出一种基于梯度学习的CNN算法——LeNet-5,并成功应用于手写数字字符的识别。为了提高复杂图像识别的正确率,Krizhevsky等[14]提出拥有更深层结构的Alexnet模型,同时通过引入drop out操作有效防止过拟合。He等[15]提出残差卷积神经网络,该模型能有效地缓解由于网络深度的增加带来的梯度爆炸或者梯度弥散问题。
卷积神经网络在滚动轴承故障诊断领域也取得了一定的成果。Han等[16]提出了一种基于多小波包变换的CNN模型,用多小波系数矩阵构造特征图作为模型的输入,能有效识别滚动轴承故障。Li等[17]直接将信号时域图作为CNN模型输入,有效克服了需要依靠专家经验提取故障特征的不足,但用时域图作为输入存在较多的冗余信息,增加了训练成本。Janssens等[18]提出一种时域信号堆叠的模型输入方式,使每个输入数据点都具有物理意义,又降低了信息冗余度。目前一般研究工作仅基于相同工况下的数据进行网络训练和测试,但是在风力发电机,水轮发电机等设备的故障诊断中,滚动轴承面临复杂多变的工况[19],因此需要建立适用于多工况条件下的滚动轴承故障诊断模型。张青青[20]提出一种基于改进AlexNet的滚动轴承故障诊断方法,用不同负载的故障数据构建数据集,取得了良好的诊断效果。胡晓依等[21]提出一种CNN_SVM方法,将SVM作为分类器,用不同转速和不同负载的数据构建数据集,取得了良好的分类效果。在设备运行过程中,复杂多变的工况会导致设备的稳态性能发生变化,使得很多方法难以在转速变化的情况下使用,本文改进了经典CNN模型LeNet-5,旨在提出一种更具泛化能力的故障诊断方法,能在有限转速的轴承故障样本中学习其共性特征,实现转速泛化情况下的滚动轴承故障诊断。
本文采用不同转速的轴承振动数据训练适用于变转速工况的模型,以期建立与实际情况更为相符,更具推广应用价值的滚动轴承故障诊断模型。本文以包含多种转速的滚动轴承振动原始时域信号灰度图作为模型输入,考虑网络输入大小和批归一化操作对模型搭建的影响,建立优化的CNN模型。然后用t-SNE算法对特征提取的过程进行可视化分析。考虑不同样本数量对训练精度的影响,开展滚动轴承多故障实验验证所提模型的有效性,并与BPNN和SVM算法进行对比验证。
一般的CNN结构由输入层、卷积层、池化层、全连接层与输出层组成。交替卷积层和池化层完成数据特征的提取,后面的全连接层将提取的特征进行分类,以上过程称为前馈运算。通过反向传播算法逐层向前反馈更新参数,并在参数更新后再次前馈,重复至模型收敛,实现网络的有监督训练。
典型的CNN模型LeNet-5的结构如图1所示,由卷积层、池化层、全连接层组成。
图1 LeNet-5卷积神经网络结构图
1.1.1 卷积层
卷积层是CNN的核心结构,主要由多个卷积核组成,卷积核在输入数据上能覆盖到的区域称为感受野。卷积核以一定步长遍历整个输入数据后得到的结果即是提取的特征。卷积操作的优势是局部感知和权值共享,可以有效的减少网络的训练参数。局部感知指的是每个卷积核作用于局部感受野,权值共享指的是各输入特征图的特征提取过程共享卷积核权重和偏置项。卷积运算的过程如式(1)所示[22]
(1)
通常在每个卷积层后都会应用一个激活函数,增加整个网络的非线性表达能力。常用的激活函数有ReLU函数,Sigmoid函数等。
1.1.2 池化层
池化层与卷积类似但没有权值,池化核以一定步长遍历激活后的特征图,得到下一层的输入特征图。池化的作用是实现数据降维,扩大感知野,实现输入的平移不变性、旋转不变性、尺度不变性。池化方法主要分为最大池化和平均池化,应用最广的是最大池化方法,计算公式为
(2)
1.1.3 全连接层
全连接层将学到的特征映射到样本的标记空间。将前一层的特征图向量排列成为一维向量,然后采用Softmax逻辑回归对前面提取的特征进行分类。
本文对LeNet-5模型进行改进,建立的网络结构如图2所示。网络通过多个交替的卷积层和池化层实现特征的自适应提取,通过全连接层实现故障的分类。本文所提CNN模型与经典的LeNet-5模型相比,其改进如下:
图2 改进的LeNet-5滚动轴承故障诊断网络结构示意图
(1) 扩大了输入的尺寸,从28×28像素扩大至64×64像素,使训练样本包括更丰富的信息量,提高网络的诊断精度。
(2) 增加了批归一化操作,加快了模型收敛速度。这对于深层网络来说在一定程度上缓解了网络的梯度弥散问题,对于浅层网络来说,能提升网络的泛化性能。其计算公式为[23]
(3)
式中:yi为批归一化操作的第i个输出值;xi为批归一化操作的第i个输入值;γ和β为神经网络待训练参数。
使用CNN对滚动轴承进行故障诊断以振动原始信号作为输入,无需进行复杂的特征提取。其诊断过程分为四个步骤:信号采集与划分、构造数据集、CNN模型设计与训练以及滚动轴承故障分类诊断,算法流程如图3所示。
图3 滚动轴承故障诊断流程图
(1) 信号采集与划分:用加速度传感器采集滚动轴承振动信号数据,将数据划分成为等长的片段。为了增加训练样本的多样性避免过拟合,提升模型性能,需要对信号数据进行重叠分段,使相同长度的信号提取出更多样本。
(2) 构造数据集:由于一维的时间序列信号样本长度的局限性,存在输入数据量不足的问题,导致一维的CNN感受野不够,在训练过程中无法提取有效特征。因此选用二维图像作为神经网络的输入,为减少对专家经验的需求,本文选用的方法是信号堆叠,将原始的时域信号依次横向排列成64×64像素的二维灰度图像,最大程度上保留了原始信号包含的信息。按照上述操作创建数据集,并将数据集划分为训练集和测试集。
(3) CNN模型设计与训练:按照1.4节所述改进原则设计CNN模型,设定网络超参数包括每层网络的学习率、迭代次数等等。使用训练集进行网络训练,逐层前向传播获取特征和计算误差,再将误差反向传播,调整网络参数,获得性能较好的CNN模型,再通过测试集验证模型性能。
(4) 滚动轴承故障分类:用训练好的CNN模型,对滚动轴承故障数据进行自适应特征提取和模式识别,输出诊断的结果。
采用轴承故障模拟实验数据来验证CNN故障诊断的有效性。实验系统实物如图4所示,主要包括三相异步电动机、调速器、加速度传感器、测试轴承、健康轴承和信号采集系统等。该实验系统可以完成不同故障模式下的滚动轴承故障信号模拟、转速控制以及振动信号的采集和处理。
图4 实验系统实物图
实验选用的轴承是美国MB公司的ER-16K深沟球轴承,其中测试轴承包括三种故障类型和三种故障位置。故障轴承如图5所示,三种故障类型分别是滚动体故障轴承、内圈故障轴承、外圈故障轴承。三种故障位置为外圈故障,在安装时故障凹坑点角度分别为90°、180°、270°。采用扬州科动KD1005LC振动加速度传感器将振动信号变换为电信号,通过LMS数据采集系统进行数据采集。控制每种状态电机转速分别为20 Hz、25 Hz、30 Hz、35 Hz、40 Hz、45 Hz,采样频率为12 800 Hz,采样时间为30 s。以4 096个数据点为一个样本,用信号堆叠的方法将一维的信号转换成二维的灰度图。
图5 故障轴承实物图
3.2.1 模型输入大小对模型准确率的影响
式中a,b均为待定系数.经过咨询专家,这里设a=0.4,b=0.6.为更好地判断城镇化和旅游经济之间的耦合关系的协调程度,引入协调度模型:
网络的输入过小会导致样本的信息量不足,无法提取出有效特征,网络的输入过大会导致训练时间过长,网络过拟合。为确定合适的网络输入尺寸,选择不同大小的二维灰度图进行实验,并采取合适的重叠方式使不同尺寸的样本中包含的总时间序列信息不变。选用4组训练样本,和2组不同的测试样本,实验结果如表1所示。可以看出,当输入大小为28×28像素时,训练准确率和测试准确率都不高,网络存在欠拟合现象。当输入大小为128×128像素时,在训练集上分类准确率达到了100%,但测试准确率较低,网络存在过拟合现象。当输入大小为64×64像素时,训练准确率和测试准确率均能取得较好的结果,因此本文选择64×64像素作为网络输入大小。
表1 不同输入大小下的分类准确率
3.2.2 归一化次数对模型准确率的影响
为加快网络收敛速度、提高网络泛化能力,在卷积操作后引入批归一化(batch normalization,BN)操作。首先计算卷积后的数据的平均值和方差,根据平均值和方差对数据归一,最后进行尺度变换和偏移使归一后数据的平均值和方差尽可能接近归一化操作之前的数据。为深入探究归一化操作对网络模型训练的影响,在网络中加入不同次数的归一化操作,记录网络训练过程,实验结果如图6所示。由图可知,当未加入归一化操作时,网络始终无法收敛;而批归一化操作的次数越多,网络收敛的速度越快。因此本文在每次卷积之后都引入批归一化。
图6 不同次数的BN对准确率的影响
本文所用基于LeNet-5的优化模型参数如表2所示。
表2 模型参数表
利用滚动轴承正常、内圈故障、外圈故障和滚动体故障4种多转速下的状态数据进行故障分类,验证本文所提算法。选择Matlab 2019b作为训练CNN的平台,在Interi7-8700CPU,16G内存的计算条件下进行实验。划分监测数据集为训练样本容量每类800,测试样本容量每类768。训练样本包括训练集和验证集,混合转频为20 Hz、30 Hz、40 Hz、45 Hz的故障数据作为训练样本,训练集和验证集的比例划分为3∶1,转频为25 Hz、35 Hz的故障数据作为测试样本。选择网络输入为64×64像素的灰度图。选用ReLU函数,即线性修正单元,作为网络的激活函数。相比Sigmoid函数,ReLU函数在输入大于零的情况下完全消除了梯度饱和效应,而且有更快的收敛速度[25]。设置训练轮数为50,每批处理样本数为128,学习率为0.01。
在模型训练过程中,为了减少不确定因素对试验结果的干扰,确保模型的稳定性,对每种模型的训练都重复10次。正常轴承的识别准确率为97.43%,内圈故障轴承的识别准确率为99.22%,外圈故障轴承的识别准确率为94.96%,滚珠故障轴承的识别准确率为97.96%,模型总体平均准确率为97.39%。为验证改进模型有效性和优越性,使用经典LeNet-5模型进行故障分类,重复10次,训练所得模型的平均准确率为80.44%。实验证明,本文提出的CNN模型能够在多转速工况下进行滚动轴承故障类型的有效识别,并且能有很高的准确率。
基于t-SNE非线性降维算法可视化分析网络学习到的各层特征,验证模型对原始输入信号的逐层特征提取效果,结果如图7所示。t-SNE算法可将网络每一层对4类状态轴承信号的输出特征降至二维数据,便于可视化,图7中x轴和y轴并无实际意义,仅表征特征数据的两个维度。由图7可知,输入信号是杂乱无章的,并无明显的聚类特性。第三层卷积各类型的输出特征已经开始各自聚拢,第五层卷积各状态特征之间已基本分离,全连接层各类状态特征实现类内聚拢,类间远离。由此可见,本文建立的模型能够从原始输入信号中提取有效特征,通过模型学习到的特征分离度较高。
图7 CNN特征提取过程可视化
为研究训练样本容量对模型准确度的影响,分别采用每类训练样本容量为400、800、1 200、2 000的数据集进行模型训练,训练结果如表3所示。由表可知随着样本容量的增加,平均准确率随之提高,同一样本容量的最大准确率和最小准确率之间的差值随之减小,即模型的训练稳定性随之提高。但随着样本容量进一步增加,样本复杂度已趋向饱和,准确率提高的程度有限,而引入过多冗余信息会提升模型复杂度使得训练时间成倍增加。由此可见在样本容量选择时应当综合考虑训练时长和模型精度。
表3 不同训练样本容量的测试准确率
设计三组对比实验,将本文所提出的方法与经典CNN、BPNN和SVM[25]进行对比。三组对比实验采用的数据集如表4所示。BPNN和SVM的输入为时域统计特征[26]。时域统计特征包含最大值、最小值、峰峰值、有效值、平均值、方差、峭度、偏度、绝对平均值、均方根值、变异系数、偏度系数、峭度系数和能量算子。每组实验每类训练样本容量均为400,测试样本容量均为100。对于BPNN和CNN方法,重复10次训练取平均值。对比实验结果如表5所示。
表4 对比实验数据集
表5 对比实验结果
分析对比实验结果可知,当数据集只包含单一工况的样本时,四种方法均能得到很高的诊断精度;当数据集包含复杂工况的样本时,改进的CNN方法仍然能保持较高的诊断精度,而经典CNN、BPNN和SVM方法的诊断精度大幅下降;当使用包含复杂工况的样本训练模型,其他区别于训练工况的样本测试模型时,本文改进的CNN方法的准确率远高于经典CNN、BPNN和SVM方法。由此可见,相比经典CNN、BPNN和SVM,改进的CNN方法具有更好的鲁棒性和泛化能力,能在数据集样本包含复杂信息时准确提取出其中的共性特征。
利用滚动轴承不同角度外圈故障的状态数据进行故障定位,验证本文所提算法的有效性。将上节模型的输出层节点数改为三个,即为本节所采用的模型。训练样本包括训练集和验证集,转频为20 Hz、30 Hz、40 Hz、45 Hz的故障数据作为训练样本,转频为25 Hz、35 Hz的故障数据作为测试样本。网络输入为64×64像素的灰度图。不同样本容量下的故障位置识别准确率如表6所示。随着样本容量的增加,诊断的平均准确率提高,但样本容量增加到一定大小后,准确率趋向不变。
表6 滚动轴承故障位置识别准确率
图8为不同样本容量下最终模型分类特征的t-SNE可视化结果。可以看到270°位置的故障识别准确率最好,而180°,90°位置的故障会被误判为270°。这可能是因为存在重力,安装时故障凹坑点角度为270°,即和重力方向相同时,故障特征最为明显,安装角度为90°时,故障特征相对微弱。
图8 不同样本容量下的特征提取效果
(1) 针对传统滚动轴承故障诊断方法不能转速泛化的问题,提出一种基于改进的LeNet-5模型的卷积神经网络滚动轴承故障诊断方法,能在有限转速的轴承故障样本中自适应提取共性故障特征并完成故障类型以及故障位置的分类,分类效果良好。
(2) 分析网络输入尺寸和批归一化操作对模型训练的影响,搭建了输入尺寸适中且引入批归一化操作的CNN模型,提高了模型诊断精度和收敛速度。
(3) 用表4所示三种数据集将CNN与BPNN、SVM进行对比,验证了本文提出的CNN模型有很好的鲁棒性和泛化能力。
(4) 通过t-SNE方法对特征提取过程进行可视化,直观展示了CNN的特征提取能力和样本容量对特征提取效果的影响。
本文提出的滚动轴承故障诊断方法具有很好的转速泛化能力,能在不完备故障样本中学习故障共性特征,扩大了训练所得模型的适用范围,更具实际推广应用价值。本文研究对保障滚动轴承的可靠性以及设备的安全运行具有重要意义。但是本文仅对6种不同转速的数据进行了分析,后续研究工作中应通过升降速实验将研究成果推广到任意转速的滚动轴承故障诊断。