基于改进果蝇算法优化SVM的变速箱故障诊断*
2022-07-27张淑清张桂芬
张淑清,张桂芬
(1.广西警察学院交通管理工程学院,南宁 530022;2.广西民族大学人工智能学院,南宁 530006)
0 引言
行星变速箱的传动效率较高、承载能力较强,同时还具有体积较小、重量较轻等优点,在很多军用和民用装备中都得到了应用,但出现故障则会直接影响装备的使用性能。因此,对其运行状态进行监测和进行故障诊断,对于确保装备的完好性具有重要的意义[1-2]。
关于变速箱的故障诊断方法可以说是不胜类举,而支持向量机(support vector machine,SVM)就是比较常用的方法之一[3-6]。虽然SVM在变速箱的故障诊断中应用较大,但其诊断性能受参数设置影响较大。杨武帮等[7]建立了粒子群算法(PSO)优化SVM的起重机齿轮箱故障诊断模型,提升了故障诊断精度;王振亚等[8]以樽海鞘群优化算法(SSO)为SVM参数优化方法,实现了行星齿轮箱故障的有效识别;郑坤鹏等[9]以通过鲸鱼优化算法(WOA)进行了SVM参数优化,对风电机组齿轮箱典型故障进行了诊断;孙明波等[10]提出了基于混合灰狼优化算法(HGWO)优化SVM的齿轮箱故障诊断方法,提高了故障诊断的效率和精度。
果蝇算法(fruit fly optimization algorithm,FOA)同前文提到一些算法相似,也是一种有效的且应用较广的智能算法[11-12]。但是,FOA存在的陷入局部最优、后期收敛精度不高、搜索步长设置依靠经验等不足[13-15],对算法整体性能产生了一定的影响。因此,有必要对其进行改进设计,提升算法的寻优性能,进而获得更好的SVM参数,实现变速箱故障更高精度的诊断。
本文针对FOA存在的不足,对其进行改进设计,提出改进果蝇算法(improved fruit fly optimization algorithm,IFOA)方法,并由此提出基于IFOA优化SVM的变速箱故障诊断方法。变速箱故障诊断结果验证了所提方法的有效性。
1 支持向量机及其参数
在二维情况下,SVM目的是通过寻找一条直线将两类样本正确划分,同时还要保证两类样本的分类间隔达到最大,最终可转化成对式(1)所示的二次规划问题进行求解:
(1)
式中,C、εi分别表示惩罚参数、松弛变量。将Lagrange乘子αi(i=1,…,n)代入式(1)中,就可以将其转换成对下式进行求解:
(2)
对式(2)进行求解后,便可得到对样本进行有效划分的决策函数:
(3)
式中,K(xi,x)表示核函数。K(xi,x)有多种形式,其中式(4)所示的径向基核函数最为常用且效果最好。
(4)
由式(1)~式(4)可知,在整个SVM计算过程中,有两个参数即C和g是需要人为进行设定的。
2 双子群差异步长果蝇算法
基本FOA算法主要有6个步骤,详述如下:
步骤1:初始化相关参数。主要包括果蝇种群的大小(即果蝇个体的数量)Popsize;迭代的最大次数(即迭代停止的条件)Maxiter;果蝇个体的搜索步长L;种群初始中心位置(X_axis,Y_axis)。
步骤2:开始进行搜索。每个果蝇个体Fi在自己的视线范围内,随机向周围按照搜索步长L进行飞行搜索寻找食物。
(5)
步骤3:计算食物浓度。计算食物浓度判定值Si,该值为果蝇个体Fi所在位置与坐标原点之间距离值的倒数。
(6)
步骤4:计算适应度。计算果蝇个体Fi的适应度值Smelli,该值是通过将Si代入适应度函数function得到。
Smelli=function(Si)
(7)
步骤5:信息记录。记录当次迭代中Smelli最大的果蝇个体的适应度值以及所在的位置坐标。
[bestSmell,Xb,Yb]=max(Smelli)
(8)
步骤6:种群聚集。记录历次迭代中最大的bestSmell,而后,果蝇种群向当次迭代得到的最优果蝇个体所在位置聚集。
(9)
步骤7:反复迭代。重复执行步骤2~步骤6,达到最大迭代次数Maxiter后,算法停止,输出最优结果。
在上述FOA的计算步骤2中,果蝇个体是按照搜索步长L来进行飞行搜索食物的,它决定了果蝇个体搜索的范围和精度。而L的取值是需要人为进行设定的,它设置的合理与否对算法最终的寻优结果具有重要的影响。如当其设置的较大时,果蝇个体的移动步长则会变大,容易错过潜在的最优解;反之,当其设置的过小时,虽然果蝇个体的搜索虽更为精细,但会极大增加运算量,降低搜索效率。因此,如何合理有效地确定L的取值对于提升FOA性能就显得尤为关键。针对这一问题,本文在FOA的基础上,提出IFOA算法。其主要思想包括两部分,一是对果蝇种群进行动态的划分;二是不同种群按照差异步长进行位置更新。
关于种群的动态划分,主要是通过式(10)来进行实现。
(10)
式中,Di为果蝇个体Fi与当次迭代中最优果蝇个体Fbest之间的距离;Dmean为所有距离的平均值,分别如式(11)、式(12)所示。
(11)
(12)
果蝇种群就被动态地划分为了两个子群,即较优子群和较差子群。
关于不同种群按照差异步长进行位置更新,主要是通过式(13)和式(14)来进行实现,其中较优子群按照式(13)进行位置更新,较差子群按照式(14)进行位置更新。
(13)
Xi=Xi+L;Yi=Yi+L
(14)
式中,iter为当前迭代次数;Maxiter为最大迭代次数;lgt为logistic变换函数,如式(15)所示。
(15)
从式(10)、式(13)和式(14)可知,当果蝇种群完成一次迭代后,会通过式(10)将果蝇种群划分为较优子群和较差子群,而后较优子群会通过式(13)计算得到自适应变化的步长Ly,完成位置的更新,较差子群则会以初始设置得步长L通过式(14)完成位置的更新。其中,由式(13)和式(15)可知,较优子群的移动步长会根据迭代次数的增加而自适应的减小,这就保证了种群在前期可以以较大的步长在广阔的范围内进行搜索,在后期可以以较小的步长在小范围内进行精细搜索,实现收敛精度和速度的平衡;由式(14)可知较差子群是按照原始固定步长L进行位置更新的,这可以保证种群的全局寻优能力。同时,由于每次迭代完成后,都会进行种群的重新划分,即两个子群包含的个体和数量是在动态变化的,这就实现了两个子群之间的信息交换,更有助于提高搜索效果。
3 基于IFOA-SVM的变速箱诊断方法
图1为本文所提变速箱故障诊断方法的流程图,该方法主要有8个步骤:
步骤1:采集变速箱故障信号,并将其划分为训练样本和测试样本;分别对训练样本和测试样本的进行故障特征的提取。本文中特征提取方法与文献[16]相一致,即提取出一个18维的故障特征集对变速箱故障进行表征;
步骤2:初始化IFOA的相关参数;
步骤3:以训练样本故障特征的5折交叉验证SVM准确率作为适应度值开始IFOA的迭代过程,并保留全局和当代最优个体的相关信息;
步骤4:通过式(10)对果蝇种群进行动态划分,得到较优子群和较差子群;
步骤5:通过式(13)计算较优子群的移动步长和完成位置更新;通过式(14)完成较差子群的位置更新;
图1 本文方法流程图
步骤6:判断iter是否等于Maxiter,如是,输出最优参数组合;如否,则重复步骤3~步骤5;
步骤7:将最优参数组合作为SVM参数,建立SVM诊断模型;
步骤8:将测试样本故障特征输入SVM诊断模型中,得到诊断结果。
4 变速箱故障诊断实例
4.1 数据来源
本文利用某型装甲车用行星变速箱的故障模拟实验数据来验证本文所提方法的有效性。行星变速箱实验平台如图2所示。实验开始前,通过线切割方式共设置了5种齿轮故障件,分别为:正常即无故障(ZC)、太阳轮断齿故障(TD)、太阳轮齿根裂纹故障(TL)、行星轮断齿故障(XD)、行星轮齿根裂纹故障(XL)。其中,太阳轮断齿是从齿根圆处将一个齿切除;太阳轮裂纹宽度为整个齿快,深度为3 mm;行星轮断齿是从齿顶至下一个齿根切除半齿;行星轮裂纹宽度为整个齿宽,深度为2 mm。实验开始后,选择档位Ⅲ,输入转速调节为400 r/min,空载运行。同时,设置采样频率20 kHz,对每种状态分别采集5组数据,每组数据采集20 s,按1 s为1个样本数据的长度,就可得到每种状态各100组样本数据(其中,随机选取30组为训练样本,剩余70组为测试样本)。图3给出了5种状态原始信号的时域波形。
图2 实验平台
图3 变速箱5种状态振动信号
4.2 诊断结果与分析
通过以下3种对比来对方法的有效性进行说明。
图4 搜索迭代曲线
对比1:IFOA与FOA之间的对比。通过该对比主要是验证对FOA进行改进的必要性。在该对比中,果蝇种群Popsize=30,Maxiter=100,C和g的范围均为[0,100]。图4给出了该对比中两种方法的迭代寻优过程,表1给出了该对比的计算结果。
表1 对比1结果
从表1可知,随着迭代次数的增加,IFOA和FOA的迭代曲线都是在不断向上攀升的,这说明搜索到的参数在逐渐变优,但FOA在达到最高收敛精度时所需的迭代次数比IFOA要多,且最高收敛精度不如IFOA。从诊断精度上看,对于变速箱5种单一故障而言,IFOA-SVM获得的诊断精度均要高于FOA-SVM,这也促成了IFOA-SVM的平均诊断精度比FOA-SVM提高了6.29%,相当于增加了22个样本被正确识别;从耗时上看,IFOA比FOA有所增加,这主要是因为IFOA在FOA的基础上增加了种群划分和变步长的计算过程,导致算法的复杂度有所增加,但从具体耗时上来看,二者的差别不明显,从实际应用的角度来看影响不大。通过对IFOA-SVM最终诊断结果的进一步分析,发现一个现象,即被错误识别的样本主要集中在TD与TL、XD和XL两两之间。出现这一现象的主要原因可能是因为TD和TL故障、XD和XL故障是分别在太阳轮和行星轮上,换个角度来讲,TD和TL之间、XD和XL之间的两两“错误识别”也可以看出是一种“正确识别”,因为它正确诊断出了变速箱的故障位置,只是对故障类型诊断错误。而对FOA-SVM的最终诊断结果进行进一步分析,并不能发现这一现象,错误识别的样本分布比较混乱。
对比2:IFOA与3种改进型FOA之间的对比。通过该对比主要是验证本文对FOA进行改进的有效性。其中,3种改进型FOA分别为文献[13]中的HFOA方法、文献[14]中的SFOA方法和文献[15]中的DCFOA方法,这3种改进型FOA算法在原文献中均是被用于SVM的参数优化中,都具有不错的效果。3种方法的相关参数均按原文献设置。表2给出了该对比的计算结果。
表2 对比2结果
从表2可知,4种改进型FOA算法的平均诊断精度均要比表1中FOA的结果要高,这说明对FOA的改进是有效的,提升了FOA的性能;具体到4种方法之间平均诊断精度的对比,则是IFOA和DCFOA基本相当(IFOA略高0.57%)、HFOA和IFOA基本相当,前两种方法均在95%以上,后两种方法介于93%~94%之间。本文IFOA之所以能获得最高的诊断精度,主要是在于其实现了果蝇种群的动态划分和步长自适应调整,保证了果蝇个体搜索能力的平衡和具有跳出局部最优的能力,从而可以获得更好的SVM参数;对于4种方法的耗时而言,基本都是26 s上下,差距很小,而与表1中FOA的耗时同样只有很小的差异,这说明了FOA算法具有较高的运算效率,同时也验证了4种改进型FOA算法同样较为简单,运算效率也是客观的。
对比3:IFOA与参考文献中方法的对比。通过该对比主要是验证本文方法的比较优势。其中,参考文献中方法分别为PSO[7]、SSO[8]、WOA[9]和HGWO[10]。4种方法的相关参数均按原文献设置。表3给出该对比的计算结果。
表3 对比3结果
从表3可知,对于5种方法得到的平均诊断精度而言,本文的IFOA比其余4种方法中最高的HGWO还提升了2.53%,相当于增加了9个样本被正确识别,比其余4种方法中最差的PSO提升了近8%;对于5种方法的耗时而言,同样是IFOA的耗时最少,比其余4种方法中最快的WOA还节约了约17 s,比其余4种方法中最慢的PSO甚至节约了160 s。这说明无论是在计算精度还是在计算效率上,IFOA均优于其余4种方法。
从上述3个对比结果可以得到:本文提出的IFOA方法在SVM参数优化方面具有比较明显的优势,可以显著提升对变速箱的故障诊断精度。
5 结论
以行星变速箱为研究对象,提出了IFOA-SVM故障诊断模型。IFOA以种群划分和差异步长为切入点,在FOA的基础上增加了种群动态划分和按差异步长进行位置更新的过程,实现了前后期搜索能力的平衡。行星变速箱IFOA-SVM诊断精度达到了96%,耗时仅为26.31 s,在参与3组对比实验的所有方法中,诊断精度是最高的,耗时也比大多数方法要少。