基于天牛须搜索优化支持向量机液压泵故障诊断
2022-07-04张军翠王立成
张军翠,王立成
(1.河北工业职业技术大学 智能制造学院, 石家庄 050091;2.河北科技大学 离退休工作处,石家庄 050018)
液压泵作为液压系统中的核心部件,其故障与否决定了整个系统能否正常运行,因此尽早地发现其潜在的故障,就显得尤为重要。而在实现其有效故障诊断的几个环节中,采用何种识别方法是实现其高精度故障诊断的关键[1-3]。
SVM是一种有效的模式识别方法,在模式识别领域的应用十分广泛,而液压泵的故障诊断实际上是一种典型的模式过程,因此,利用SVM进行其故障诊断成为了很多学者研究的重点。如,吴洪明等[4]在建立悬挂液压系统故障诊断仿真模型的基础上获得了典型故障信号,通过小波分析和主成分析进行了故障特征提取,最后通过SVM实现了典型故障的识别;获得了较好的效果;张华等[5]以符号动力学信息熵为特征提取方法,以SVM 为故障识别方法,建立了液压泵故障诊断模型,获得了比神经网络更高的故障诊断精度,并且耗时更少;刘志强等[6]结合集合经验模态分解、AR 模型和奇异值分解,实现了液压泵典型故障的多特征提取与融合,而后通过多核SVM 进行故障诊断,有效提升了故障诊断的准确性;李锋等[7]针对液压泵故障信号特征难提取的问题,提出了自适应噪声完备集合经验模态分解、样本熵和SVM相结合的诊断模型,并通过实例验证了模型的有效性。
SVM虽然是一种有效的故障诊断方法,但它的性能受制于参数的设定,如其相关参数设置得不合理,则最终的诊断结果就达不到理想的效果,因此,针对这一问题,很多学者也开展了大量的研究工作。如,刘志川等[8]诊断齿轮箱的故障诊断问题,利用改进遗传算法(Improved Genetic Algorithm,IGA)进行SVM的参数优化,有效提升了SVM的诊断性能,获得了比传统SVM 更高的诊断精度;党东升等[9]针对变压器的故障诊断问题,利用量子粒子群算法(Quantum Particle Swarm Optimization,QPSO)进行SVM的参数优化,获得了更高的变压器故障诊断精度;杜伟等[10]针对液压泵的故障诊断问题,利用Levy飞行果蝇优化算法(Levy-flight Fruit Fly Optimization Algorithm,LFOA)进行多核SVM的核函数权重和参数的优化,显著提高了对液压泵的故障诊断精度。
BAS[11]同遗传算法、粒子群算法、果蝇优化算法等相似,也是一种启发式算法,它于2017年提出,因其具有运算量小、易于理解、容易实现等特点,一经提出后就受到了很多学者的关注,在很多领域得到了应用[12-15]。此外,BAS算法在故障诊断领域,同样受到了不少学者的青睐。如,陈潇贤等[16]利用BAS对分数布朗运动预测模型(FBM)中最优Hurst 指数进行优化,从而提高了滚动轴承退化状态的辨识效果;刘霞等[17]利用BAS 对概率神经网络(PNN)中的平滑参数进行寻优,实现了电机轴承不同类型故障的准确判别;王迪恒等[18]利用BAS 对变分模态分解中的惩罚参数和分解层数进行组合优化,提高了滚动轴承早期故障特征提取的效果。
针对SVM 在液压泵故障诊断中精度受参数设置影响较大这一问题展开研究,选用BAS算法作为SVM参数优化方法,建BAS-SVM诊断模型,并与几种典型方法进行对比分析。液压泵故障诊断实例结果表明,BAS 在计算量更少的情况下获得了更优的SVM参数,实现了液压泵故障诊断精度的提高。
1 支持向量机及其参数
在二维的情况下,SVM目的是通过寻找一条直线将两类样本正确划分,同时还要保证两类样本的分类间隔达到最大,这一思想可以通过图1 进行具体说明。图1中,直线H能够将两类样本进行划分,直线H1和H2分别为通过两类中距离H最近的样本点且平行于H的两条平行线。在众多的直线H中,肯定有一条是最优的,这条最优的分类线不仅要保证不同类样本不被错误区分,还要保证距离分类线最近样本点与分类线的距离最大,这就等效于使H1和H2之间的间隔m arg in=2/‖w‖达到最大。
图1 最优分类示意图
最终,可将对间隔的求解转化为如式(1)所示的二次规划问题:
其中:C和εi分别为惩罚参数和松弛变量。在引入Lagrange乘子αi(i=1,…,n)后,就可以把将式(1)转换成为式(2)所示形式:
对式(2)进行求解后,便可得到决策函数如式(3)所示:
式中:K(xi,x)表示的是核函数,在它的几种典型形式中,式(4)所示的形式应用最为广泛。
根据上述步骤可知,参数C和g是需要人为进行设定的。
2 天牛须搜索
BAS算法主要是根据天牛的觅食行为提出的一种启发式算法,可有效应用于优化问题。在天牛进行觅食的过程中,它通过它的左右两须来进行食物味道浓度的探测,如左边须探测到的食物味道浓度更大,则它就偏向左边进行移动,反之,则偏向右边进行移动。在移动的整个过程中,它的位姿是不断调整变化的,直到最终移动到食物所在位置。不同于其他一些启发式算法中种群数量较多的实际,BAS 算法中的天牛个数只需要一个,因此它的计算量将会大大减少,使得寻优的速度更快。
天牛须算法的主要流程如图2 所示,具体有以下几个步骤:
图2 BAS算法主要流程
(1)对于一个n维的优化问题,记天牛的质心为x(x1,x2,…,xn),则可以将适应度函数表示为f(x1,x2,…,xn)。在天牛进行食物搜索前,需要设定其初始位置,即设定x的初始值。
(2)由于天牛搜索的朝向是随机的,因此需建立天牛须的随机向量并进行归一化处理。如式(5)所示:
其中:rands(n,1)为随机生成的在0~1 之间的n维向量。
此时,可得天牛左须和右须的坐标xleft和xright的坐标分别为:
上述两式中,d为天牛左须和右须之间的距离。
(3)对天牛左须和右须的食物味道浓度及适应度值的大小进行比较,及比较f(xleft)和f(xright)的大小。
当f(xleft)<f(xright)时,则:
当f(xleft)≥f(xright)时,则
上述两式中,step表示天牛的移动步长;xk和xk-1分别表示x在第k次和k-1次迭代时的值。
(4)进入迭代过程,当达到设置的最大迭代次数M或者适应度值达到设定的要求时,停止迭代,输出最优结果。
3 BAS-SVM诊断模型
在SVM 算法中,惩罚参数C和核函数参数g对SVM的性能具有重要的影响,利用BAS对这两个参数进行优化,可以有效提升SVM 的故障诊断精度。因此,建立BAS-SVM诊断模型。其主要流程如图3所示,具体的步骤如下:
图3 BAS-SVM故障诊断流程
(1)确定天牛须的随机向量。由于需要优化的SVM参数为2个,则优化的空间维度n=2(即天牛在2维的平面内进行搜索),因此在二维平面内随机生成天牛须的随机向量。
(2)确定天牛的移动步长。采用变移动步长的策略,即步长随着迭代进程而变化:
其中:eta的取值为0.96。
(3)设计适应度函数。以训练样本交叉验证准确率为适应度评价函数。其表达式如式(11)所示:
式中:yt为正确分类个数;yf为错误分类的个数。
(4)更新天牛的位置。在C和g的搜索范围内确定天牛的初始位置,并将其保存在bestX中;根据式(6)和式(7)计算天牛左右须的坐标,再根据式(11)计算左右须的适应度值,并将更优的适应度值保存在bestY中。
(5)更新bestX和bestY。根据式(8)或式(9)进行天牛位置更新(即对C和g进行调整),而后计算天牛左须和右须的坐标和适应度值,并实时进行bestX和bestY的更新。
(6)进行迭代过程。当迭代进程达到设定的迭代停止条件后,则进入步骤(7);反之,则返回步骤(5)。其中,迭代停止条件为达到最大迭代次数M时停止。
(7)输出最优参数。最优bestY对应的bestX值即为最优的参数C和g。
4 故障诊断实例验证
4.1 数据来源
通过图4所示的液压泵实验平台进行故障设置并采集故障数据。在该实验平台中,该SY-10MCY14-1EL型液压泵有7个柱塞;振动传感器安装在端盖处。在实验开始前,设置了液压泵三种典型故障,分别为:单个柱塞松靴故障,将其简称为OF;两个柱塞松靴故障,将其简称为TF;滑靴磨损故障,将其简称为HF。另外,算法液压泵正常运行状态(将其简称为N),则一共有四种液压泵运行状态数据需要进行采集。在实验中,设置采样频率为50 kHz,待主溢流阀压力逐渐增至10 MPa 并保持一段时间稳定后,再进行数据的采集,其中,液压泵每种状态均采集100 个样本信号进行分析,每个样本的长度5 000 个采样点。液压泵四种状态信号的时域波形如图5所示。
图4 实验平台
图5 时域波形
4.2 结果分析
在进行诊断前,需要对故障数据进行特征提取,在中,参考文献[19]中的特征提取方法,提取出液压泵每种状态信号的18维的故障特征。而后,将每种状态的100 个样本随机分成两组,其中一组为训练样本40个,另一组为测试样本60个。在完成特征提取和样本划分后,就可以按照BAS-SVM 诊断模型进行液压泵的故障诊断。为了验证BAS-SVM的性能,还采用文献[8]中的IGA方法、文献[9]中的QPSO方法和文献[10]中的LFOA 方法进行对比分析。其中,三种方法的相关参数均按照原文献进行设置且每种算法的最大迭代次数均为100;BAS 算法中的最大迭代次数M也设置为100;C和g的搜索范围,按照目前的主流,设置为[0,100]。设置1 到4 分别为N、OF、TF和HS等四种状态的标签。BAS-SVM、IGA-SVM、QPSO-SVM 和LFOA-SVM 等四种方法方法前50次寻优迭代曲线如图6所示。
图6 搜索曲线
从图6 可以看出,四种方法的准确率都是随着迭代次数的增加而逐渐升高,这表明这四种方法都在不断地获得更优的SVM 参数。但当达到一定的迭代次数后,除BAS-SVM还在持续上升外,其余三种方法均处于了停滞状态,即算法陷入到了局部最优。在迭代终止时,BAS-SVM 的曲线处于最高位置,IGA-SVM 处于最低位置,QPSO-SVM 和LFOASVM持平。对于BAS-SVM,其在迭代至第12次时,就达到了98.33%的交叉验证准确率,而其他三种方法在得到的最优交叉验证准确率均比BAS-SVM要低,并且在达到最优交叉验证准确率时所需的迭代次数更多,这表明BAS-SVM 具有更优的识别性能和更高的计算效率。
在迭代结束后,将四种方法得到的最优参数组合分别作为SVM参数,并进行SVM的训练和测试,得到最终诊断结果如表1 所示,其中消耗时间为搜索最优SVM参数所消耗的时间。
考察表1,从获取到的C和g的值来看,四种方法得到的结果均是具有差异的,其中C的值在整个[0,100]范围内都有,而g则主要集中在[0,4]的范围内;从对单一状态的诊断精度来看,除对于OF 状态BAS-SVM 和LFOA-SVM、IGA-SVM 的诊断精度相同外,均是BAS-SVM 比其余三种方法的诊断精度要高;从平均诊断精度来看,BAS-SVM 达到了96.67 %,相比于LFOA-SVM、QPSO-SVM 和IGASVM分别提高了2.08%、3.75%和4.17%,即被正确识别的样本分别增加了5个、9个和10个。从时间消耗上来看,BAS-SVM 耗时为12.47 s,相比于其余三种方法中最快的LFOA-SVM 都还节约了近15 s,比其余三种方法中最慢的IGA-SVM 节约了近100 s,这表明BAS的计算量极小,比其他三种方法的运算效率均要高。
表1 几种方法对比结果
5 结语
为提高SVM对液压泵故障的诊断精度,在研究BAS 的基础上,建立了液压泵故障诊断的BASSVM 方法,并给出了方法的具体步骤。将BASSVM应用于液压泵的故障诊断实例中,并和参考文献中的LFOA-SVM、QPSO-SVM 和IGA-SVM 方法进行了对比分析,结果验证了BAS-SVM 在诊断性能和运算效率上的优势。