当前位置:首页 期刊杂志

基于集成学习概率神经网络的电机轴承故障诊断

时间:2024-08-31

张习习, 顾幸生

(华东理工大学化工过程先进控制和优化技术教育部重点实验室,上海 200237)

电机是一种重要的旋转机械设备,广泛应用于工业生产过程中的各个领域,而滚动轴承是电机的最重要部件之一,起着支撑主轴、传递力矩的作用,且易损坏[1]。根据统计,旋转机械中约有 30%的故障是由轴承损伤引起[2],因此,对电机轴承进行故障诊断具有重要意义。

目前常用的故障诊断方法主要有基于模式识别的方法、基于神经网络的方法以及基于专家系统的方法。随着人工智能技术的发展,基于人工智能融合技术的故障诊断方法成为一个研究热点[3-4]。各种智能诊断理论和方法的集成和融合,如小波分析与神经网络的集成、模糊系统与神经网络的集成以及进化计算与神经网络融合等,较好地构建了故障征兆与故障类别之间的映射关系,有效地实现了机械设备的故障诊断[5-7]。Wang 等[8]利用短时傅里叶变换对电机不同故障下的振动信号进行处理,得到振动信号的时频图,然后利用卷积神经网络(CNN)提取特征,较好地表示出了振动信号和轴承状况的映射关系。李嫄源等[9]结合振动信号的时域与小波包能量特征,使表征振动信号的特征具有较好的可靠性和敏感性,并采用粒子群算法(PSO)对支持向量机(SVM)的惩罚参数和径向基核函数参数进行寻优,对电机轴承的外圈故障、内圈故障和滚珠故障均有较好的识别效果。

概率神经网络(Probabilistic Neural Networks,PNN)[10]的主要思想是将贝叶斯决策理论引入传统神经网络,网络结构按照贝叶斯判别函数来设置,以实现错误分类的期望风险最小。与传统的BP、RBF神经网络比较,PNN 具有网络训练过程简单、训练速度快、准确率更高、对噪声容忍性高等特点[11],但也有两个主要的不足:首先是对训练样本的代表性要求较高;其次是网络参数σ 的选取直接影响PNN的性能。对此,本文提出了一种改进的集成学习概率神经网络方法(ASPNN)。首先利用正弦余弦优化算法(SCA)[12]对PNN 的平滑因子σ 进行优化,以确定最优参数;然后将优化后的PNN 作为弱分类器,利用集成学习AdaBoost 方法[13]构建PNN 的集成学习模型;最后将该模型应用于电机轴承故障分类中,实验结果表明了该方法的有效性。

1 改进的概率神经网络

1.1 概率神经网络基本原理

概率神经网络是一种基于统计原理的人工神经网络,是以Parzen 窗口函数为激活函数的一种前馈网络模型[14-15]。PNN 包含4 层网络结构,分别为输入层、隐含层、求和层和输出层,如图1 所示。

PNN 的第1 层为输入层,通常用来接收训练样本,并将输入数据传递至第2 层。输入层的神经元个数通常是确定的,其个数与输入样本的维度相同。第2 层是隐含层,也称为径向基层。该层的每个神经元节点拥有一个中心,接收输入层的输入之后,计算输入向量和中心的距离,得到一个标量值。隐含层的神经元数目等于输入的训练样本个数。第3 层是求和层,与隐含层神经元不是全连接。事实上,PNN 的隐含层代表着训练样本,并且这些训练样本的类别是已知的,而求和层的神经元只与属于同一类别的神经元相连,并对同一类别隐含层神经元的输出加权平均。求和层神经元的数目与样本类别数目相同。第4 层是输出层,输出求和层中的最大值,其对应的类别即最终输出类别。

平滑因子σ 是PNN 中最重要的超参数之一,选择合适的平滑因子是保证网络具备高识别率的必要条件。通常,在训练之前需要通过经验或者尝试的方法进行人为设定,并且对于所有类别,σ 取值是相同的,即 σ1=σ2=···=σ ,不能将概率特性完整地表示出来,从而降低了PNN 的识别精度[16],因此,选择更加合适的平滑因子是PNN 研究的重点。

1.2 正弦余弦优化算法

SCA 是一种全新的启发式优化算法,具有结构简单、容易实现、兼顾全局搜索与局部搜索、收敛速度快等特点。SCA 算法的主要步骤如下:

其中: r1为线性递减函数; a 为常数, a =2;T 为最大迭代次数; r2是 [ 0,2π] 的随机数; r3是 [ - 2,2] 的随机数; r4是 [ -1,1] 的随机数。

参数 r1决定了下一次迭代的移动方向是向当前解和目标解之外的区域移动,还是向当前解和目标解之间的区域移动; r2决定了正弦和余弦值的大小,即代表着靠近或远离目标解的距离; r3是为当前最优解所赋予的随机权值,目的是加强 ( r3>1) 或减弱(r3<1) 所定义的距离对目标解的影响; r4决定了下一次迭代是按照正弦还是余弦的方式进行,两者机会均等。

图2 只示出了二维搜索空间的搜索方式,应当注意的是,它可以扩展到更高维度的搜索空间。正弦余弦函数的循环模式允许一个解在其他解的周围被重新复位,这能保证在两个解之间的空间进行搜索。对于搜索空间,解应该能够同时搜索到它们相关的目标点之间的空间外侧,通过改变正弦余弦函数的幅值大小来实现,如图3 所示。

图 1 概率神经网络结构图Fig. 1 Structure diagram of probabilistic neural network

图 2 r1 对搜索区域的影响Fig. 2 Influence of r1 on the search area

图 3 幅值为2 的正弦余弦函数Fig. 3 Sine and cosine of magnitude 2

图 4 SCA 的搜索方式Fig. 4 Search method of SCA

图4 示出了SCA 的搜索方式。可以看出,当正弦余弦函数的幅值范围在[-2,-1]和[1, 2]时,SCA 进行全局搜索;当正弦余弦函数的幅值范围在[-1,1]时,SCA 进行局部搜索。随着迭代次数的增加(假设迭代100 次),正弦余弦函数的幅值范围变化如图5 所示。

1.3 AdaBoost 集成学习方法

AdaBoost 算法是根据在线分配算法提出的经过调整的Boosting 算法,它能够对单次学习得到的基分类器的错误率进行自适应调整。它的自适应性在于上一个弱分类器错分的样本会得到加强(权重增大),正确分类的样本会被减弱(权重减小)[17]。每次迭代加入一个新的弱分类器,直到达到预定误差或达到预定的迭代次数,则终止训练。

图 5 正弦余弦函数的幅值随迭代次数的变化Fig. 5 Amplitudes of sine and cosine change function with iteration numbers

AdaBoost 算法的主要步骤如下[13]:

(1)初始化样本权重向量:

其中: n 为训练样本数; w1i为第1 次迭代时第 i 个训练样本的权重初始化为 1 /n 。

(2)给所有训练样本加权,并利用弱分类器进行训练,得到弱分类器的误差率:

其中: ym(xl) 是当前弱分类器的预测结果; yl是真实结果; I (case) 表示当case 为真时, I (case)=1 ,否则I(case)=0 ; wml为第 m 个弱分类器的第 l 个测试样本。由式(4)可知,当前弱分类器误差率是当前弱分类器在训练集上被 ym(x) 错分样本的权重之和。

(3)计算当前弱分类器的权重:

对于二分类问题,分类器权重按照式(5)进行计算,对于多分类问题,则按照式(6)进行计算,其中N 表示类别数目。

式中: Zm为归一化因子,其主要作用是让所有训练样本权值之和为1,使得权重向量是一个概率化向量,定义如下:

可以看出,被弱回归模型预测错误的样本权值增大,而被正确预测样本的权值减小。通过这样的方式,AdaBoost 算法提高了较难预测的样本“地位”。经过不断迭代的方式,AdaBoost 方法能“聚焦于”那些较难分的样本上。

(5)组合所有弱分类器,得到最终强分类器:

1.4 改进的概率神经网络

首先,利用SCA 对PNN 的平滑因子σ 进行优化。为同一类别内的样本设置相同的平滑因子,不同类别间的样本设置不同的平滑因子,如图6 所示。将优化后的PNN(SPNN)作为弱分类器,利用AdaBoost集成学习方法构建强分类器,得到改进后的PNN 模型(ASPNN)。

图 6 平滑因子的自适应调整Fig. 6 Adaptive adjustment of smoothing factor

如图7 所示,从左到右依次进行迭代,并更新训练样本权重。 S PNN1,S PNN2,···,S PNNM为每一次迭代的SPNN 弱分类器,迭代次数为M。为进一步提高分类准确率,本文提出对应概率加权求和的方式求得最终输出,即利用每一个弱分类器的权重作为系数,将所有分类器的输出概率进行加权求和,并输出最大值作为最终输出。

图 7 ASPNN 的原理图Fig. 7 Schematic of ASPNN

ASPNN 算法的主要步骤如下:

(1)初始化平滑因子。对同一类别隐含层神经元初始化相同的平滑因子 σi, i 表示第 i 类别,总类别数为N。设置SCA 算法的参数,包括迭代次数、搜索区间、种群规模等。并按照式(3)初始化所有训练样本的权重。

(2)将平滑因子赋予PNN,并进行训练,适应度函数如式(11)所示。

其中: yp(i) 表示第 i 个样本的预测值; y (i) 表示实际值; m 为样本总数;适应度函数即为训练样本错分的个数与训练样本总个数的比值。

(3)如果适应度函数小于预先设定的阈值δ,或者到达迭代次数,则停止迭代,得到优化模型SPNN 作为集成学习的弱分类器。

(4)设置AdaBoost 算法参数,即参与训练的样本占全体训练样本的比例 p 、迭代次数M、训练样本数 n 等。

(5)根据式(4)进行训练,得到当前分类器的误差率,并根据误差率由式(5)或式(6)计算当前分类器权重。应当注意的是,本文在训练过程中采用有放回采样的方式选取训练样本。每一次训练选取全体训练样本的85%进行训练,预测所有训练样本,根据预测结果计算分类器权重,并更新全体训练样本权重。

(6)用当前弱分类器预测测试集,得到样本属于每一类别的概率,并将分类器权重作为系数对输出概率进行加权并保存。然后根据分类器权重更新样本权重,并进行下一次迭代。

(7)将所有分类器的加权概率对应相加,输出最大值作为当前预测样本的预测结果。

文献[18]证明了只要弱分类器算法的准确性略好于随机猜测,便可保证AdaBoost 算法是收敛的,同时,它也证明了AdaBoost 集成学习模型具有良好的泛化能力。而本文所采用的弱分类器是SPNN,实验表明SPNN 对电机轴承已经具有很好的故障分类效果,因此其识别率远高于随机猜测,故本文的ASPNN 算法理论上是收敛的。

2 基于ASPNN 的电机轴承故障诊断

2.1 实验数据

本文实验所用数据来自于凯斯西储大学轴承数据库(Case Western Reserve University, CWRU)。被测试轴承通过电火花加工工艺设置了单点故障,故障直径包含0.178、0.356、0.533、0.711 mm 这4 种尺寸。选取驱动端振动信号作为实验数据,包括轴承在4种不同状态下采集到的振动信号,分别为正常状态(Normal, NOR)、滚珠故障状态(Ball Fault, BF)、外圈故障状态(Outer Race Fault, ORF)(只包含前3 种故障直径)以及内圈故障状态(Inner Race Fault, IRF),每种状态下采集到的信号根据故障直径和负载的不同而不同,负载大小分别为0、746、1 492、2 238 W。

文献[19]提出了改进的经验模态分解方法。首先利用改进的经验模态分解方法对轴承的振动信号进行分解,得到一系列本征模态函数(Intrinsic Mode Function,IMF),然后计算前6 个高频IMF 分量的改进排列熵(Modified Permutation Entropy,MPE)的值作为特征量,进而实现对电机轴承振动信号的特征提取。

如表1 和表2 所示,实验包含4 种负载状态,每种负载下包含4 种轴承状态,分别为正常状态、内圈故障、外圈故障和滚珠故障,所得特征为6 维特征向量。此外,每种负载下包含360 组训练样本和216 组测试样本。由于数据量较大,在负载为0 的情况下,针对每种轴承状态列出一组数据如表2 所示。

2.2 故障类型分类

在本文的故障分类研究过程中,首先需要对故障类型进行分类,即分为正常状态、内圈故障状态、外圈故障状态和滚珠故障状态。在识别出故障类型的基础上,再对故障程度(故障直径)进行分类。

首先研究人为设定平滑因子对基本PNN 性能的影响。经过多次尝试发现,当 σ <0.10 时,PNN 具有 较 好 的 性 能;当 σ >0.10 时,PNN 的 识 别 率 在0.5 上下波动,效果较差。为进一步寻找更优秀的平滑因子,本文按照遍历的方式依次选取平滑因子,从0.001 到0.10,步长为0.001,如图8 所示。

由图8 可以看出,在进行故障类型识别时,PNN 的性能会随着平滑因子的增大而出现先上升后下降的趋势。尤其是当 σ <0.01 时效果更好,因此在SPNN 和ASPNN 中,设定 σ 的搜索区间为[0,0.10],种群大小为40,迭代次数为100 次。另外,在ASPNN算法中,设定弱分类器的个数为50 个。

图9 示出了ASPNN 训练结果中其中一个弱分类器经过SCA 优化后得到的最优 σ 值,可以看出对应4 种类型(轴承的4 种状态)训练样本,分别优化出了不同的 σ 值,并且它们的范围均小于0.01。

表 1 实验数据Table 1 Experimental data

表 2 部分特征值Table 2 Partial feature vector

图 8 不同负载下平滑因子对PNN 性能的影响Fig. 8 Effect of smoothing factor on PNN performance under different loads

图 9 平滑因子优化结果Fig. 9 Optimization results of smoothing factor

图 10 负载为0 时的错分率下降曲线Fig. 10 Error rate drop curve when the load is 0

图10 示出了ASPNN 算法训练过程中错分率的下降曲线,可以看出SCA 算法在10 次迭代以内便搜索到了最优解,进一步说明了SCA 具有准确率高、收敛速度快的优点。

图11 示出了ASPNN 在不同负载下的故障类型识别结果。可以看出,ASPNN 能够很好地对故障类型进行分类。

图 11 ASPNN 故障类型识别结果Fig. 11 Fault type identification results for ASPNN

表 3 不同方法的故障类型识别结果Table 3 Fault type identification results of different methods

表3 列出了PNN、SPNN、ASPNN 和多分类SVM 这4 种算法的测试样本识别结果。基本PNN算法中,本文人为将 σ 设定为0.01。SPNN 和ASPNN均运行10 次, σ 的搜索区间为[0,0.1]。而多分类SVM 是利用libsvm 工具包实现的,并采取一对一(One-Versus-One, OVO)投票的方式进行多分类。可以看出,ASPNN 比PNN、SPNN 具有更好的自适应性和更高的识别准确率。而对于多分类SVM来说,在负载为2 238 W 时,其准确率略高于ASPNN,但在其他负载状态下,其识别率均低于ASPNN。

2.3 故障程度分类

在对滚动轴承进行故障诊断研究时,不仅要识别出故障的具体类型,还要识别出在已知故障类型的基础上,轴承发生故障的具体程度。因此,在识别出故障类型的基础上,需要进一步对故障程度进行分类。

如表4 所示,当负载为0 时,存在3 种故障直径,其中内圈故障和滚珠故障均包含120 个训练样本和72 个测试样本,它们包含4 种故障程度,即故障直径分为别0.178、0.356、0.533、0.711 mm,而外圈故障包含90 个训练样本和54 个测试样本,只包含前3 种故障状态。由于篇幅原因,本文只列出了负载为0 时的实验数据情况,其他负载时的数据情况与表4 相同。

在故障程度识别中,SPNN 和ASPNN 的超参数设置与故障类型识别时一致,同时平滑因子搜索区间设置为[0,0.1]。由于篇幅原因,图12 只列出了负载为0 时,ASPNN 对于外圈故障程度的识别结果。所有负载下的故障程度识别率如表5 所示。

由表5 可以看出,在故障程度分类中,PNN 及其改进算法的识别效果要优于SVM,并且SPNN 模型和ASPNN 模型在故障程度识别中均表现出了优越的性能。由于SPNN 对同一组训练样本和测试样本将得到固定的测试结果,因此ASPNN 的泛化能力更强于SPNN。在较难分类的一些样本上,ASPNN 表现出了更好的识别效果,进一步证明了本文所提出的ASPNN 算法的有效性和优越性。

表 4 负载为0 时的实验数据Table 4 Experimental data when the load is 0

图 12 负载为0 时的故障程度识别结果Fig. 12 Fault degree recognition results when the load is 0

表 5 不同负载下的故障程度识别率Table 5 Identification rate of fault degree under different loads

3 结 论

(1)正弦余弦算法(SCA)是近两年提出的一种新型的元启发式算法,它是一种建立在正弦余弦函数上的自组织和群智能基础上的数值优化计算方法,具有搜索精度高、收敛速度快、不易陷入局部最优等优点。

(2)AdaBoost 是一种Boosting 集成学习方法。它会赋予每个训练样本一个权重,并在训练过程中更新这些权重。对错分的样本将增大其权重;对正确分类的样本将减小其权重。通过这样的训练方式,算法将更加关注那些错分的样本,并将多种弱分类器模型组合起来,进一步提高了分类器的准确度。

(3)针对概率神经网络平滑因子需要通过人为不断尝试设定的缺点,提出了基于SCA 的平滑因子自适应模型(SPNN),并将其作为集成学习AdaBoost 的弱分类器进行加强学习。提出了基于SCA 和AdaBoost的改进概率神经网络模型(ASPNN),并将该模型应用于电机轴承的故障诊断中。实验结果表明,ASPNN分类模型可以进一步提高电机轴承故障诊断的准确率。

(4)利用ASPNN 方法对测试集进行分类时,测试集样本的个数约864,而对全体测试样本进行分类所花费的时间为1 s 以内。本文所用数据采样频率为12 kHz,而每个样本包括2 500 个数据点,即采集一个样本需要约0.21 s,而对一个样本进行分类几乎是瞬间完成的。因此,理论上ASPNN 能够进行实时故障诊断,但由于实验条件有限,该方法在实际生产过程中的实时诊断能力需在以后的工作中进一步研究。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!