基于ACO-SVM的火炮供输弹系统机械故障诊断
2022-04-19李孟克许昕潘宏侠1b张航高俊峰刘燕军
李孟克,许昕,潘宏侠,1b,张航,高俊峰,刘燕军
(1. 中北大学 a. 机械工程学院;b. 系统辨识与诊断技术研究所,山西 太原 030051;2. 中车永济电机有限公司,山西 永济 044500;3. 内蒙古一机集团,内蒙古 包头 014030; 4. 内蒙古北方重工集团,内蒙古 包头 014000)
0 引言
供输弹系统是一种复杂的机电液一体化系统,其内部结构复杂、外部工作环境恶劣,对其采集的信号中常夹杂着大量的干扰信号,因而导致用于供输弹系统故障诊断的特征参量中常常会出现数量不足或多余,甚至也会出现这些特征参量出现冲突矛盾的现象。这给供输弹系统故障的有效识别带来了极大难度。因此急需一种有效的办法来解决这种问题,这将对我国火炮的可靠性和安全性具有深远而又重要的影响[1]。
本文使用蚁群优化支持向量机(ACO-SVM)算法对供输弹系统进行故障诊断。首先从供输弹系统的振动信号中提取特征,然后使用ACO-SVM算法对其不同工况的特征参量进行故障诊断,并与支持向量机(SVM)算法进行对比。
1 算法研究
1.1 ACO算法
(1)
式中:Jkξ(i)={S-tabuξ}表示第ξ个蚂蚁下一步要选择的食物源节点;η表示路径的启发信息;α表示路径上信息量的相对重要性;β表示启发信息的相对重要性[3]。
当其完成对m个食物源节点的信息访问后,为防止在寻找食物源节点的非最优路途上的信息素量过多。因此需及时对蚂蚁所在路途中释放的信息量进行及时更新:
τij(t+n)=(1-ρ)τij(t)+ρΔτij(t)
(2)
(3)
(4)
式中:Q为正常数,影响算法的收敛速度;Lξ代表第ξ只蚂蚁在本次循环中走过的路径长度。由此设计出一套使用ACO算法优化参量,得到最优值的约简图,如图1所示。
图1 ACO算法寻优流程图
1.2 SVM算法
支持向量机算法[4]是一种将复杂样本数据进行分类与回归的复杂算法,设一组样本集为
T={(xi,yi)},i=1,2,…,n,xi∈Rm,yi∈{-1,1}
(5)
式中:xi为输入变量;yi为输出变量。
为了使样本集中的数据能够正确分类识别,建立最佳超平面函数如下[5]:
f(x)=wT·x+b
(6)
式中:w为权向量;b为偏置截距。
样本输入点到超平面的距离公式为
(7)
样本点到分类平面的距离为
(8)
由于每个支持向量的y(wT·x+b)>1>0,故最大距离d为
(9)
(10)
样本集的某类组合为w:
(11)
式中:λi为拉格朗日乘子;n为样本集里的个数。因为样本集的组合会受样本集里点的位置和类别yi的影响[6],故将其修改为
(12)
进而得到SVM算法的决策回归方程为
(13)
式中〈xi,x〉表示向量的内积。
1.3 信息熵
在1949年香农提出信息熵用来度量信息不确定性[7-8]。任何一件事情的发生都会带来不同的信息量(即可能产生n种信息量),且每一个信息量的出现都有一定的概率(将每个信息量出现的概率记为P(B1),P(B2),…,P(Bn)),而信息熵则是在结果出来前对所有可能发生事件所带来的信息量的一种期望。由此可以得出信息熵的计算公式:
(14)
2 ACO-SVM算法故障识别
ACO-SVM算法进行供输弹系统的机械故障诊断[9],其具体步骤如图2所示。
图2 ACO-SVM算法流程图
3 实验分析与论证
3.1 实验测点布置
在对供输弹系统进行振动信号采集时,选择的测点显得尤为重要。测点的选择应尽量靠近易发生故障的位置附近。这样既能防止振动信号在沿传播路径发生分散而导致采集的工况信息不完整,又能减少外界条件的干扰[10]。此次通过对供输弹系统的工作原理和常易出现的故障进行分析并布置测点,本次试验对某火炮进行故障信息采集,此次共涉及6处采集点,使用三相加速度传感器进行x、y、z三个方向的信号采集,设置本次实验的采样频率为25 600Hz,对振动信号的收集使用LMS信号收集仪。表1为各测点的分布说明,图3为各测点的示意图。
表1 某型火炮测点位置说明表
图3 振动测点布置示意图(后视图)
3.2 实验过程及记录
本次试验限定发射子弹的速度为450发/min,并对其产生的振动信号进行收集。在本次实验步骤如下。
第一步:让火炮分别进行1次3连发和1次6连发,在此次发射过程中每颗炮弹发射时均未出现异常现象,全程射速均维持在450发/min。
第二步:让火炮进行1次40连发,前期炮弹发射表现良好,但在第25发时出现了炮弹射速异常。经研究发现其射速显著降低,但最终也完成了40连发的任务。图4为此次试验各发之间射击时间间隔图。
第三步:随后现场工作人员对该火炮的供输弹系统进行及时的修复后,本实验继续进行接下来60连发的炮弹射击。在这60连发的炮弹射击中均表现良好,射击速度维持在450发/min。
3.3 特征提取
本次实验共进行180发射击试验,其中正常状况100发,其余状况80发。首先对供输弹系统所采集的复杂振动信号进行特征提取得到信息熵中的样本熵[11],以此来反映供输弹系统在不同状态下的运动状态。由于篇幅有限,随机选取不同状态下5发样本数据进行讨论。具体如表2所示。
图4 40连发射击实验时间间隔统计图
表2 不同工况不同测点信息熵提取情况
在所提取的180组样本熵中,选取正常状态的前30组,其余状态的前30组,作为训练样本。剩余120组的样本熵作为测试样本,分别输入到ACO-SVM算法和SVM算法中进行故障的分类识别,并将两组数据的诊断结果进行对比,分类的结果如图5和图6所示。图中圆圈代表实际的测试集分类,星号则代表预测测试集分类。若分类识别正确,则圈号和星号重叠,反之不重叠。此外算法分类识别中定义,y=+1代表为正常状态,y=-1代表除正常状态以外的其余状态。诊断结果对比如表3所示。
图5 SVM分类结果
图6 ACO-SVM分类结果
表3 诊断结果对比
4 结语
本文针对火炮供输弹系统故障信号所提取出的特征参量冗余复杂而导致故障类型不易识别的问题,提出一种基于ACO-SVM算法的供输弹系统的机械故障诊断方法。通过分别使用ACO-SVM算法与SVM算法进行机械故障分类识别,根据诊断结果对比发现,在相同的测试样本中,采用SVM算法准确率为89.2%,而采用ACO-SVM算法准确率为95.0%,从而突显出ACO-SVM算法对供输弹系统的机械故障诊断方面的优势。