一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自适应差分进化算法优化支持向量机的故障诊断方法与流程

2021-11-05 21:16:00 来源:中国专利 TAG:


1.本发明属于故障诊断技术领域,涉及一种自适应差分进化算法优化支持向量机的故障诊断方法。


背景技术:

2.随着人工智能技术的不断发展,故障诊断的智能化程度也在不断提高,越来越多的智能算法也在实际应用中经受住了考验。支持向量机是一种典型的故障诊断算法,运用的范围较为广泛。在实际应用中,支持向量机有一些需要调节的参数,对于不同的应用背景,参数要有不同的组合,从而实现最优的诊断效果。对于参数的调整,可以人为的进行调节,但是会耗费巨大的时间和精力,随着机器学习、深度学习的不断成熟,最优化方法在故障诊断中的应用则是理所应当。进化算法的种类愈来愈多,差分进化算法的优势不可忽视,它不仅收敛速度快,而且性能非常好,最重要的是所需要设定的参数极少,现有技术中对于支持向量机的优化主要是对参数c和gamma的优化,但是差分进化的参数设置多为定值,不能实现自适应调整,或者需要与其他优化算法结合共同优化支持向量机,程序较为复杂,或者对差分进化的参数表达式设置较为复杂,难以理解。因此,本发明在改进差分进化算法的基础上对支持向量机算法进行优化,使得其应用更加广泛。


技术实现要素:

3.为了解决现有技术中对差分进化参数设置较为复杂或者需要与其他优化算法结合,导致过程复杂,较难实现的问题,本发明提供一种自适应差分进化算法优化支持向量机的故障诊断方法。
4.为达到上述目的,本发明采用的技术方案如下:
5.一种自适应差分进化算法优化支持向量机的故障诊断方法,采集待诊断故障的轴承的振动信号,并对其进行预处理得到数据后,将数据输入到训练好的支持向量机模型中,由其输出轴承故障诊断结果;
6.预处理的过程即依次进行分解、特征提取和特征选择的过程;
7.支持向量机模型的训练步骤如下:
8.(1)采集已诊断故障的轴承的振动信号(既包含故障数据,也包含正常数据),并对其进行所述预处理得到训练样本数据;
9.(2)优化支持向量机模型的模型参数c和gamma,步骤如下:
10.(2.1)随机生成两个初始种群,每个种群包含m个个体向量,每个向量都由支持向量机模型的两个参数组成,分别是c和gamma;
11.(2.2)缩放因子f根据进化代数自适应调整,公式如下:
[0012][0013]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数
(作用是添加一个随机扰动,提高算法的鲁棒性);
[0014]
变异策略进行组合调整,公式如下:
[0015][0016]
de/rand/2:
[0017]
v
i,g
=x
r1,g
f
·
(x
r2,g

x
r1,g
) f
·
(x
r2,g

x
r3,g
);
[0018]
else:
[0019]
de/rand

to

best/1:
[0020]
v
i,g
=x
r1,g
f
·
(x
best,g

x
r1,g
) f
·
(r
2,g

x
r3,g
);
[0021]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数(作用是添加一个随机扰动,提高算法的鲁棒性),v
i,g
为第g代种群中的第i个个体,x
r1,g
为第g代种群中的第r1个个体,x
r2,g
为第g代种群中的第r2个个体,x
r3,g
为第g代种群中的第r3个个体,r1,r2,r3,i∈[1,2,

n]且互不相等,n为总个体数,x
best,g
为当前种群中适应度值最小的个体,de/x/y是一种简易的表达变异策略的方式,其中x指定基向量,y代表变异策略中差分向量的数目,一般为1至2个;rand表示基向量为种群中随机选取的一个向量,best表示基向量为种群适应度值最低的向量,rand

to

best表示将其中的一个随机向量利用适应度值最低的向量表示;该策略的全局和局部寻优能力很好,可以快速找到最优解;
[0022]
(2.3)交叉因子c
r
根据进化代数自适应调整,公式如下:
[0023][0024]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数(作用是添加一个随机扰动,提高算法的鲁棒性);随着迭代次数的增加,c
r
逐渐增大;在算法运行初期,c
r
较小,有利于全局寻优,在算法运行后期,c
r
较大,有利于提升收敛速度;
[0025]
(2.4)计算种群的适应度值并进行个体选择;
[0026]
(2.5)进行交流策略,公式如下:
[0027][0028]
式中,x
i,worst,g
为种群i中第g代迭代个体中的最差个体,x
j,best,g
为种群j中第g代迭代个体中的适应度值最小的个体,x
i,r,g
为种群i中第g代迭代个体中的任一个体,x
j,n,g
为种群j中第g代迭代个体中的任一个体,r≠n,r,n∈[1,2n],n为总个体数,dis为种群中两个个体向量之间的欧式距离,var为对求出来的欧式距离进行求方差;
[0029]
(2.6)判断是否满足迭代条件,如果是,则输出适应度值最小的个体作为参数c和gamma的取值;反之,则返回步骤(2.2);
[0030]
(3)训练支持向量机模型;
[0031]
将参数c和gamma的取值代入支持向量机模型中,利用训练样本数据对支持向量机模型进行训练(训练过程即支持向量机模型的训练过程,在代码中调用支持向量机的库,然后将训练样本数据输入进去即可,训练何时终止与训练样本数据的量有关,训练样本数据越多,训练时间越长)。
[0032]
本发明的主要改进点在于:(a)缩放因子f;(b)变异策略;(c)交叉因子cr;(d)交流策略。
[0033]
有关(a)缩放因子f:
[0034]
缩放因子f在差分进化的变异阶段发挥着巨大的作用,它是决定着算法寻优范围的重要参数,从而控制这差分进化的范围是偏向于全局还是局部,保证算法良好的性能;对于传统差分进化算法,f是一个定值,那么会无法平衡全局寻求最优解和收敛速度;本发明设置的f值随着进化次数的增加而不断减小,在进化前期,f值较大并且逐渐衰减,该算子能够满足算法运行初期的全局搜素,在进化后期,f值较小,能够满足后期的局部搜索,加快收敛的速度,避免算法陷入局部最优。
[0035]
对于一个函数的变化趋势要保证前期大,后期小,本发明使用余弦函数,然后对其变形得到函数:图1是该函数的图像:其中横坐标为迭代次数,纵坐标为f的值,可以看到在进化初期,f值较大,进化后期f值逐渐变为0,可以满足本发明的算法要求。
[0036]
对于公式中的参数的说明如下:
[0037]
(a)当公式中的0.5π为0.4π和0.6π时,f函数图像如图2所示;
[0038]
图2中的左图为公式中的0.5π为0.4π时的函数图像,从中可以看到f值的变化区间有限,在最开始时的大小也只有0.3,这样不能满足算法初期的全局搜索,可能会使算法陷入局部最优;图2中的右图为公式中的0.5π为0.6π,可以看到在算法迭代后期,f值得大小变为负值,这样就违背了f值为正的原则,因此也不合理;对于其他的大小,也都测试过,最终将该参数大小确定为0.5π;
[0039]
(b)若公式中常数0.05替换为0或者0.1,f函数图像如图3所示;
[0040]
在图3中,左图的图像是常数取值为0的f函数图像,可以看到f值的变化区间较小,不满足算法初期的要求;当常数大小为0.1时的图像为图3中右侧图像,可以看到在进化初期f值的大小基本没有变化,甚至还有上升趋势,且最大值有限,这也不符合算法的要求,经过多次试验,将该常数大小确定为0.05。
[0041]
有关(b)变异策略:
[0042]
de算法有多个变异策略,每种变异策略都有自己的特点,具有不同的搜索特性,每种策略没有绝对的优劣之分,本发明将两种变异策略巧妙的结合在一起;
[0043]
de/rand/2变异策略中的个体都是随机选出的,所以其特点是全局搜索能力强,不易陷入局部最优;在算法迭代初期,选择该进化策略,可以保证种群个体的多样性,避免陷入局部最优;
[0044]
在算法迭代后期,选择de/rand

to

best/1进化策略,该策略的全局和局部寻优能力很好,可以快速找到最优解;
[0045]
对公式的说明如下:
[0046]
图4所示的是表达式的函数图像,整体呈下降趋势,可以保证在算法前期和后期选择不同的策略;当该表达式中没有负号时的函数图像如图5所示,可以看到该函数
表达式的值在区间[1,2]中,并且呈上升趋势,不满足rand(0,1)的要求,因此负号的存在是必要的;
[0047]
当表达式中没有函数常数项1时的函数图像如图6所示;可以看待函数值出现为负的情况,不满足要求;经过多次测试,该表示最终确定为
[0048]
有关(c)交叉因子c
r

[0049]
交叉因子c
r
在差分进化算法的交叉阶段发挥着巨大的作用,它可以增加种群间个体的差异,从而提高种群的多样性;如果c
r
的值较大,实验中的个体会有许多来自变异个体,种群的多样性提高,收敛速度加快;如果c
r
的值较小,那么来自父代个体的几率较大,也就有利于全局寻优;对于进化前期以及后期的不同要求,本发明也打破了c
r
设定为定值的情况,采用自适应的交叉算子;
[0050]
如图7是改进后c
r
的图像,可以看到,在迭代初期,c
r
值较小,随着迭代次数的增加,c
r
值逐渐增大,可以较好的满足算法的要求;
[0051]
对公式中的参数的说明如下:
[0052]
(i)当公式中的0.5π为0.4π和0.6π时,将不满足差分进化算法对c
r
的要求,如图8中左图所示,此时该值为0.4π,可以看到,c
r
值此时出现了负值,不符合要求;如右图所示,此时该系数为0.6π,可以看到值的变化区间较小,并且出现了先上升,后下降的趋势,也不满足差分进化算法对c
r
的要求;最终经过多组测试,将该值确定为0.5π;
[0053]
(ii)若公式中的3g替换为2g和4g,将不满足差分进化算法对c
r
的要求;当该值为2g时,如图9左图所示,可以看到c
r
值出现了负值;不符合要求,当该值为4g时,如图9右图所示,c
r
值的大小呈减小的趋势,也不满足c
r
值的变化需求;经过多次测试,最终该值确定为3g,可以使得c
r
的变化达到一个较为理想的状态;
[0054]
(iii)若公式中分母中g替换为0.5g和2g,将不满足差分进化算法对c
r
的要求;当为2g时,如图10中的左图所示,可以看到c
r
此时为负值,不符合要求;当为0.5g时;如图10中的右图所示,可以看到c
r
是逐渐减小,变化趋势是错误的,因此也不符合要求;经过多次测试,最终将分母设置为g。
[0055]
有关(d)交流策略:
[0056]
本发明设定初始有两个种群,种群间交流的本质是为了让不同种群的优秀个体相互交换,协调维持了整个种群的多样性,使得算法在最优解寻找的过程中的性能得到提升;因此,本发明将种群之间的最优个体的相关性作为交流的条件,根据两个种群中的任意两个个体之间的欧式距离的方差作为判断两个种群是否进行交流的依据;
[0057]
对公式中的参数的说明如下:
[0058]
如图11所示,横坐标为算法迭代次数,纵坐标是算法迭代过程中的种群间个体距离的方差,可以看待,在迭代初期,方差较大,并不断波动减少,在迭代50次左右时,方差逐渐下降到100以下,因此将表达式中的条件设置为大于100,使得种群间发生交流,保证种群
间个体的多样性,也可以提升算法的性能。
[0059]
作为优选的技术方案:
[0060]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,采集待诊断故障的轴承或已诊断故障的轴承的振动信号选用16通道采集仪,采样频率为12khz,转速为1797r/min。
[0061]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,待诊断故障的轴承或已诊断故障的轴承的振动信号的长度为2048。
[0062]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,预处理的过程为:首先对轴承的振动信号进行ceemdan分解,然后提取信号分解的前8个imf分量进行特征提取,最后对提取的特征进行随机森林降维,选择其中最重要的6个特征。
[0063]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,步骤(2.1)中,m为20~50,m的取值可适当调整,但是不宜过大或过小,m过大,则个体数越多,算法速度也会变慢,m过小,则个体数太少,又不能保证多样性。
[0064]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,步骤(2.4)中,个体选择采用贪婪选择策略,根据适应度值从父代个体和试验个体中一对一贪婪选择出更好的个体成为下一代父代个体,公式如下:
[0065][0066]
式中,x
i,g 1
是下一代个体,u
i,g
为试验个体,x
i,g
为父代个体,f(u
i,g
)为试验个体的适应度值,f(x
i,g
)为父代个体的适应度值,当试验个体的适应度值小于父代个体的适应度值时,试验个体将代替父代个体进入下一代,完成种群的更新,否则,不替代。
[0067]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,步骤(2.6)中,迭代条件为达到最大迭代次数。
[0068]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,最大迭代次数为100。
[0069]
如上所述的一种自适应差分进化算法优化支持向量机的故障诊断方法,步骤(1)的训练样本数据为已诊断故障的轴承的振动信号经预处理后得到的数据中的70%的数据,已诊断故障的轴承的振动信号经预处理后得到的数据中的30%的数据为测试样本数据,步骤(3)结束后,将测试样本数据输入到训练好的支持向量机模型中进行测试,如果测试发现训练好的支持向量机准确性较低时,需要重新训练或者重新进行预处理或者重新划分训练样本数据和测试样本数据。
[0070]
综上所述,本发明利用较为简单的表达式实现了缩放因子f和交叉因子c
r
的自适应调整,同时提出了组合变异策略满足不同进化阶段的不同要求,并且提出了一种种群间的交流策略,提高种群个体的多样性,提升算法的收敛速度,最终实现了较好的效果。
[0071]
有益效果:
[0072]
(1)本发明提出的参数自适应调整策略、组合变异策略和种群交流策略可以保证种群的多样性,降低算法陷入局部最优的风险,提高算法的精度;
[0073]
(2)本发明使用改进的差分进化算法优化支持向量机可以实现参数的自适应调整,从而使得支持向量机算法达到较优的结果,提高了算法的鲁棒性和准确度。
附图说明
[0074]
图1为改进后的f函数图像;
[0075]
图2为0.5π的值发生改变时的f函数图像,左图为0.5π变为0.4π时的函数图像,右图为0.5π变为0.6π时的函数图像;
[0076]
图3为0.05的值发生改变时的f函数图像,左图为0.05变为0时的函数图像,右图为0.05变为0.1时的函数图像;
[0077]
图4为变异策略进行组合调整的条件表达式的函数图像;
[0078]
图5为变异策略进行组合调整的条件表达式中无负号时的函数图像;
[0079]
图6为变异策略进行组合调整的条件表达式中无常数项时的函数图像;
[0080]
图7为本发明改进后c
r
的函数图像;
[0081]
图8为0.5π的值发生改变时的c
r
函数图像,左图为0.5π变为0.4π时的函数图像,右图为0.5π变为0.6π时的函数图像;
[0082]
图9为3g的值发生改变时的c
r
函数图像,左图为3g变为2g时的函数图像,右图为3g变为4g时的函数图像;
[0083]
图10为c
r
表达式中分母g的值发生改变时的函数图像,左图为g变为2g时的函数图像,右图为g变为0.5g时的函数图像;
[0084]
图11为种群间个体距离的方差随迭代次数的增加而变化的图像;
[0085]
图12为自适应差分进化算法流程图;
[0086]
图13为自适应差分进化算法优化支持向量机的故障诊断方法的部分流程图。
具体实施方式
[0087]
下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。
[0088]
一种自适应差分进化算法优化支持向量机的故障诊断方法,如图13所示,具体步骤如下:
[0089]
(1)选用16通道采集仪,在采样频率为12khz,转速为1797r/min下采集已诊断故障的轴承的振动信号(振动信号的长度为2048),并对其进行预处理得到训练样本数据和测试样本数据;训练样本数据为已诊断故障的轴承的振动信号经预处理后得到的数据中的70%的数据;测试样本数据为的已诊断故障的轴承的振动信号经预处理后得到的数据中剩余的30%的数据;
[0090]
预处理的过程为:首先对轴承的振动信号进行ceemdan分解,然后提取信号分解的前8个imf分量进行特征提取,最后对提取的特征进行随机森林降维,选择其中最重要的6个特征;
[0091]
(2)优化支持向量机模型的模型参数c和gamma,如图12所示,具体步骤如下:
[0092]
(2.1)随机生成两个初始种群,每个种群包含m个个体向量(m为20~50),每个向量都由支持向量机模型的两个参数组成,分别是c和gamma;
[0093]
(2.2)缩放因子f根据进化代数自适应调整,公式如下:
[0094][0095]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数(作用是添加一个随机扰动,提高算法的鲁棒性);
[0096]
变异策略进行组合调整,公式如下:
[0097][0098]
de/rand/2:
[0099]
v
i,g
=x
r1,g
f
·
(x
r2,g

x
r1,g
) f
·
(x
r2,g

x
r3,g)

[0100]
else:
[0101]
de/rand

to

best/1:
[0102]
v
i,g
=x
r1,g
f
·
(x
best,g

x
r1,g
) f
·
(x
r2,g

x
r3,g
);
[0103]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数(作用是添加一个随机扰动,提高算法的鲁棒性),v
i
,
g
为第g代种群中的第i个个体,x
r1,g
为第g代种群中的第r1个个体,x
r2,g
为第g代种群中的第r2个个体,x
r3,g
为第g代种群中的第r3个个体,r1,r2,r3,i∈[1,2,

n]且互不相等,n为总个体数,x
best,g
为当前种群中适应度值最小的个体,de/x/y是一种简易的表达变异策略的方式,其中x指定基向量,y代表变异策略中差分向量的数目,rand表示基向量为种群中随机选取的一个向量,best表示基向量为种群适应度值最低的向量,rand

to

best表示将其中的一个随机向量利用适应度值最低的向量表示;
[0104]
(2.3)交叉因子c
r
根据进化代数自适应调整,公式如下:
[0105][0106]
式中,g为当前进化代数,g为总进化代数,函数rand(0,1)为区间(0,1]内的随机数(作用是添加一个随机扰动,提高算法的鲁棒性);
[0107]
(2.4)计算种群的适应度值并进行个体选择;
[0108]
个体选择采用贪婪选择策略,根据适应度值从父代个体和试验个体中一对一贪婪选择出更好的个体成为下一代父代个体,公式如下:
[0109][0110]
式中,x
i,g 1
是下一代个体,u
i,g
为试验个体,x
i,g
为父代个体,f(u
i,g
)为试验个体的适应度值,f(x
i,g
)为父代个体的适应度值,当试验个体的适应度值小于父代个体的适应度值时,试验个体将代替父代个体进入下一代,完成种群的更新,否则,不替代;
[0111]
(2.5)进行交流策略,公式如下:
[0112][0113]
式中,x
i,worst,g
为种群i中第g代迭代个体中的最差个体,x
j,best,g
为种群j中第g代迭代个体中的适应度值最小的个体,x
i,r,g
为种群i中第g代迭代个体中的任一个体,x
j,n,g
为种
群j中第g代迭代个体中的任一个体,r≠n,r,n∈[1,2n],n为总个体数,dis为种群中两个个体向量之间的欧式距离,var为对求出来的欧式距离进行求方差;
[0114]
(2.6)判断是否满足迭代条件(达到最大迭代次数100),如果是,则输出适应度值最小的个体作为参数c和gamma的取值;反之,则返回步骤(2.2);
[0115]
(3)训练支持向量机模型;
[0116]
将参数c和gamma的取值代入支持向量机模型中,利用训练样本数据对支持向量机模型进行训练,得到训练好的支持向量机模型;
[0117]
(4)将测试样本数据输入到训练好的支持向量机模型中进行测试,如果测试发现训练好的支持向量机模型准确性低于现有技术(针对不同的数据,准确性相差较大,因此此处无法给出具体的准确度),需要重新训练或者重新进行预处理或者重新划分训练样本数据和测试样本数据;反之,则进入下一步;
[0118]
(5)选用16通道采集仪,在采样频率为12khz,转速为1797r/min下采集待诊断故障的轴承的振动信号(振动信号的长度为2048),并对其进行预处理得到数据;
[0119]
预处理的过程为:首先对轴承的振动信号进行ceemdan分解,然后提取信号分解的前8个imf分量进行特征提取,最后对提取的特征进行随机森林降维,选择其中最重要的6个特征;
[0120]
(6)将步骤(5)得到的数据输入到训练好的支持向量机模型中,由其输出轴承故障诊断结果。
[0121]
本发明选用开源的凯斯西储大学轴承(cwru)数据集验证所提出的模型在故障诊断中的实用性和有效性;
[0122]
cwru数据集是故障诊断中使用最为广泛的数据集之一,轴承型号用skf

6205

2rsjem型深沟球轴承,选用驱动端轴承数据进行验证,使用电火花加工技术在滚动轴承的内圈、外圈和滚动体上布置单点故障,故障直径为0.007inches、0.014inches、0.021inches三个级别,共九种故障类型;
[0123]
分别从九种故障数据和正常数据的开始位置进行振动信号采集数据,并进行预处理,然后随机选取70%的数据作为训练样本,剩余30%的样本作为测试样本;
[0124]
优化支持向量机模型的模型参数c和gamma,并在优化过程中设置每个种群的个体向量为50个,将优化好的参数c和gamma的取值代入支持向量机模型中,用训练样本训练支持向量机模型后,再利用测试样本对所提出的ide

svm模型(训练好的支持向量机模型)进行验证,为了证明所提模型的优越性,同时利用支持向量机和未改进的差分进化算法优化支持向量机进行对比,分别进行五次实验,得到的实验结果如下表1所示:
[0125]
表1
[0126][0127]
通过上表可得,在五次实验中,支持向量机的精度都均为最低,未改进的差分进化算法优化支持向量机的精度略有提升,本发明提出的自适应差分进化算法优化支持向量机
的效果最好,在五次实验中精度都为最高且为100%,证明本发明具有明显的优势。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献