叶瑞召,李万红
(1. 洛阳轴研科技股份有限公司,河南 洛阳 471039;2. 河南科技大学 机电工程学院,河南 洛阳 471003)
滚动轴承是机械设备的关键部件,直接关系到整台设备的安全运行,实时监控轴承的状况并对其故障进行诊断受到了研究人员的广泛关注。轴承的故障诊断主要包括两个步骤:(1)从原始的轴承振动信号中提取某些特征;(2)利用人工智能的方法对所提取的特征进行判断,以确定轴承是否存在故障。
对振动信号的分析和特征的提取,可以采用时域法、频域法以及时-频域法[1-8],由于轴承的振动信号是复杂且不稳定的,仅仅通过时域或频域分析的方法很难实现故障诊断。小波变换是一种时-频域分析方法,其在时频的局部化和可变时频窗的特点,适合分析轴承损伤故障信号等非稳态信号,但对于包含背景噪声的信号,小波包难以完全排除噪声的干扰。神经网络有处理复杂模式及进行联想、推测和记忆的优点[9],因此,将小波包分解与神经网络相结合,利用小波包分解得到的各频带的能量构造特征向量,将特征向量输入神经网络进行训练和故障诊断。
小波包分解实质上是对信号的多带通滤波,一般来说,正常状态与故障状态下轴承振动信号的各频带成分不同,其在各个频率范围内的能量分布也不同。因此,可以对轴承振动信号进行小波包分解,再对系数进行重构,并将重构信号的能量作为特征向量,输入BP神经网络进行训练和测试。
特征向量的提取方法有[10-12]:(1)利用Daubechies小波函数对轴承振动信号进行3层小波包分解,运用 Matlab函数wpdec,分别提取第3层从低频到高频8个频率成分的信号特征(即小波包分解系数);(2)对小波包分解系数进行重构,用wprcoef函数实现,提取各频带范围的信号;(3)求各频带信号能量;(4)构造特征向量作为BP神经网络的输入元素。
BP神经网络通常由1个输人层、若干隐含层和1个输出层组成, 每层均由若干神经元组成,各相邻层神经元之间多为全连接方式。基于Matlab软件平台,建立一个BP神经网络模型,主要包括:(1)各层节点数确定;(2)工具箱函数的选取;(3)期望的误差和学习率的选取。
网络输入的数据为小波包分解提取的特征向量。现以文献[13]的数据为例进行介绍,选用转速为1 730 r/min的驱动端轴承(6205-2RS JEM)的振动数据,采样频率均为12 kHz。经上述小波包分解后,得到每种状态各20个样本(特征向量)用于训练和测试,其中8组用于训练,12组用于测试。
作为故障诊断的输出节点,希望能够直接从输出结果得到故障状态的判断。轴承的4种状态对应4种网络输出,因此可以设定输出为:正常(1,0,0,0);内圈故障(0,1,0,0);外圈故障(0,0,1,0);滚动体故障(0,0,0,1)。
一个3层 BP 神经网络能以任意精度逼近任何连续函数,对轴承的故障诊断问题采用具有1个隐含层的3层BP神经网络即可。在3层网络中,隐含层神经元个数n2和输入层神经元个数n1有近似关系,n2=2n1+1 。如上所述,网络输入维数为8,输出维数为4,因此各节点分别确定为8,17,4。其他各网络训练参数见表1[14]。
表1 网络训练参数
在确定神经网络模型及训练参数后,使用如下代码在Matlab环境下创建与训练轴承故障诊断BP网络。
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
net=newff(threshold,[17,4],{′tansig′,′ logsig′ },′trainlm′);
net=init(net);
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
LP.lr=0.05;
net=train(net,P,T);
其中,变量threshold定义了输入向量的最大值和最小值;P为网络的输入向量;T为网络的目标向量。本例中的P为4种轴承状态对应的8组共32个特征向量,T为维数是4×32的矩阵。图1为采用LM优化算法对BP神经网络进行训练的误差变化曲线。
图1 LM优化算法训练误差变化曲线
网络训练结果为:
TRAINLM, Epoch 0/1000, MSE 0.230671/0.001, Gradient 10.5856/1e-010
TRAINLM,Epoch 6/1000, MSE 0.000131201/0.001, Gradient 0.0799907/1e-010
TRAINLM, Performance goal met.
经过6步后,训练结果误差为0.000 131 201,目标误差为0.001,平均绝对误差为0.006 99。可以看出,网络性能很好地达到了要求,训练好的BP神经网络就是轴承故障识别网络。
神经网络训练完成后,每种状态剩余的12个样本作为验证网络的测试样本,利用训练好的BP神经网络对这些数据进行诊断,识别故障类型部分测试的样本及输出结果见表2。
传统的神经网络故障诊断系统将网络输出结果直接作为最后的判断结果,但输出结果不可能是期望的绝对0或1,所以需要对输出结果进行再处理,即取判别区间[a,b]。当输出小于a时,将其归于0;当输出大于b时,将其归于1;当输出介于a和b之间时,不做处理。在此选取的判别区间为[0.1,0.9],将实际输出值整定后,可以获得更好的诊断效果。
表2 部分测试样本和输出结果
为了定量地评定训练出的网络性能,统计各种状态诊断输出的正确率,可以用向量c=[c1,c2,c3,c4]分别表示正常、内圈故障、外圈故障、滚动体故障判断的准确率。多次重复训练、测试的结果表明,c1=100%,c2=98.12%,c3=96.24%,c4=95.36%,说明已取得了较好的效果。而且本方法理论简单,易于实现。
小波包分解与BP神经网络结合用于滚动轴承故障诊断的方法是非常有效的。对振动信号进行小波包分解后重构提取的特征向量,能准确地反映其故障特征信息。利用特征向量组成的学习样本对BP网络进行训练,得到性能良好的网络,测试结果表明了诊断系统能比较准确地识别轴承故障类型。