基于粒子群优化LSSVM的模拟电路故障诊断方法
摘 要: 针对模拟电路故障诊断中存在的诊断信息不充分、参数容差及元器件的非线性等问题,利用最小二乘支持向量机(LSSVM)在小样本情况下良好的学习能力和泛化能力建立基于LSSVM的模拟电路故障分类模型。同时为提高故障诊断精度,采用粒子群优化(PSO)算法对LSSVM的参数进行优化,避免了参数选择的盲目性。最后以典型滤波器电路的故障诊断为例进行了仿真验证。实验结果证明基于PSO的LSSVM模型可有效改善遍历搜索引起的效率问题,其故障分类准确性及模型诊断效率都得到提高。
关键词: 模拟电路; 故障诊断; 粒子群优化; 最小二乘支持向量机
中图分类号: TN710?34; V241.4 文献标识码: A 文章编号: 1004?373X(2013)08?0035?04
0 引 言
模拟电路是现代集成电路中不可或缺的组成部分,由于模拟电路具有容差、非线性等特点,其故障诊断技术虽然起步较早,但发展速度明显滞后于数字电路。近年来,基于人工智能的模拟电路故障诊断方法得到了广泛应用,文献[1?2]利用神经网络对模拟电路故障进行诊断,取得了较好的效果。
但是神经网络存在训练时间长,易陷入局部极值等不足,文献[3?5]采用支持向量机(Support Vector Machine,SVM)方法进行模拟电路故障诊断,该方法在诊断精度和诊断效率方面都优于BP神经网络。当样本数量增加,标准SVM存在训练复杂度高,二次规划问题难以求解等不足。
最小二乘支持向量机是在标准SVM的基础上采用二次损失函数提高求解速度。同时,核函数的参数决定了样本数据在高维特征空间分布的复杂程度,从而影响最优分类超平面的泛化能力。文献[6]提出采用交叉验证的网格搜索法进行参数寻优,有效避免了过学习和欠学习状态的发生。
当需要进一步提高准确率时,必须扩大参数的搜索范围或降低网格的大小,运算复杂度呈指数型增长,运算时间急剧增加[7]。本文借助粒子群算法强大的全局搜索能力对LSSVM的参数进行优化,将训练后LSSVM模型用于模拟电路的故障诊断中。
1 最小二乘支持向量机
最小二乘支持向量机(Least Square Support Vector Machine,LSSVM)是由Suykens于1999年提出的一种新型支持向量机[8]。
该模型将最小二乘线性系统引入到支持向量机中,用二次损失函数代替SVM中的不敏感损失函数,通过损失函数将SVM中的二次寻优转化为求解线性方程组,从而降低了计算的复杂程度。
设有[N]个样本[xi]及其所属类别[yi],求解最小二乘支持向量机分类最优化问题的目标函数为:
[minω,β,ξJ(ω,β,ξ)=12ω2+12Ci=1Nξ2i] (1)
[s.t. yi[ωT?(xi)+β]=1-ξi, i=1,2,…,N] (2)
式中:[J(ω,β,ξ)]为结构风险;[ω]为权向量;[ξi∈RN×1]为误差向量;[β∈R]为偏置项;[C>0]表示对错分样本的惩罚系数。
引入Lagrange乘子[αi]求解优化问题:
[L(ω,β,ξ;αi)=J(ω,ξi)-i=1nαi{yi[ωT?(xi)+β]-1+ξi}] (3)
根据Karush?Kuhn?Tucker条件在鞍点处将式(3)分别对[ω,β,ξ]和[αi]进行求导并令它们等于0,可得到一个线性系统:
[0yTyZZT+C-1Iβα= 11N] (4)
式中:[Z=[?(x1),…,?(xN)]T],[y=[y1,…,yN]T],[1N=[1,…,1]T],[ξ=[ξ1,…,ξN]T],[α=[α1,…,αN]T],[I=R×R]。
定义矩阵[Ω=ZZT]并对[Ω]运用Mercer条件,则:
[Ωi,j=yiyj?T(xi)(xj)=yiyjK(xi,xj)] (5)
式中:[K(xi,xj)]表示核函数,用于特征空间的转换。常用的有线性核函数(Linear Kernel)、多项式核函数(Polynomial Kernel)、Sigmoid核函数和径向基核函数(Radial Basis Function Kernel, RBF)[9]。RBF核函数与线性函数相比,可处理多维空间样本;与多项式核函数相比,所需设定的参数较少。实际上,文献[10]证明了线性核函数和多项式核函数是高斯RBF核函数的特殊形式。本文以RBF核函数[K(x,y)=exp(-γx-y2)]建立支持向量机模型。其中[γ]为核宽度参数,控制RBF核的作用范围,则LSSVM分类决策函数为:
[f(x)=signi=1NαiyiK(xi,xj)+β] (6)
因此,采用RBF核函数的LSSVM需要对核函数的参数[γ]和惩罚参数[C]进行优化选择。
2 PSO?LSSVM模型建立方法
2.1 粒子群优化算法
粒子群优化算法(Particle Swarm Optimization, PSO)属于进化算法(Evolutionary Algorithm,EA)的一个分支,最早由Kennedy和Eberhart于1995年提出[11]。该算法根据式(7)更新个体极值和全局极值来确定每个粒子的搜索方向。经过一段时间后,大部分的粒子会逐渐将自己的位置移动到全局最优解的附近,同时形成一个粒子群体,并不断逼近求解空间中的目标位置。
[Vk+1id=ωVkid+c1r1(Pkid-Xkid)+c2r2(Pkgd-Xkgd)Xk+1id=Xkid+Vk+1id] (7)
式中:[ω]表示惯性权重;[d=1,2,...,m];[i=1,2,...,n];[k]表示当前迭代次数;[Vid]为粒子的速度;[Pid]表示粒子的个体极值分量;[Pgd]表示粒子所在子群中的局部极值分量; [c1,c2]为粒子的学习因子;[r1],[r2]表示[0,1]之间的随机数。
2.2 惯性权重
当PSO算法被首次提出时,并未包含惯性权重。1998年由Shi和Eberhart对PSO算法进行改进,加入惯性权重[ω]用来控制更新前速度的影响,当[ω]较大时全局寻优能力强,有利于挑出局部最优点,当[ω]较小时,局部搜索能力较强,有利于提高算法的收敛速度[12]。因此在迭代过程中采用(8)式对[ω]的大小进行自适应的调整,随着迭代次数增加,逐渐的减小[ω]的值,使求解的过程能够更快的找到全局最优解。
[ωki=ωmin+cfki-fkminfkmax-fkmin·Tmax-kTmax] (8)
式中:[ωki]表示第[k]代中粒子[i]的惯性权重;[ωmin]表示设置的权重最大值;[c]是[0,1]之间的调节系数;[k]为当前进化代数;[Tmax]为最大迭代次数;[fki]表示粒子[i]第[k]代的适应值;[fkmax]和[fkmin]分别表示第[k]代粒子的最大和最小适应度值。
随着迭代过程增加,因子[(fki-fkmin)(fkmax-fkmin)]的值因粒子的聚集效应不断减小,同时因子[(Tmax-k)Tmax]也不断减小,这样可保证粒子在进化初期具有较大的惯性权重,在进化后期的惯性权重较小,符合惯性权重自适应调整策略的要求[13]。
2.3 适应度函数
适应度函数是衡量粒子所代表参数值优劣的标准,本文定义适应度函数为:
[fitness=f(i)] (9)
式中[f(i)]表示粒子[i]在LSSVM中的正分率。
2.4 多分类LSSVM
支持LSSVM模型只能用于两类别的分类问题,而模拟电路的故障识别属于多分类问题。为了将支持向量机的适用范围有效拓展到多类别的分类(Multi?class classification),多位学者提出了不同的方法。如一对一算法(One?against?one method,OAO)[14],一对多算法(One?against?Rest method,OAR)[15],决策导向无环图SVM(Directed Acyclic Graph SVM,DAGSVM)[16]等。本文采用OAO方法处理多分类问题,在处理[k]类别分类问题时,将构建[k(k-1)2]个两分类决策函数(每两个类别之间构建一个),求解(10)式最优化问题即可得到对类别[i]和类别[j]分类的两分类支持向量机。
[min12(ωij)Tω+Ctξijts.t. (ωij)TΦ(xi)+bij≥1-ξijt, if yt=i,(ωij)TΦ(xi)+bi≤-1+ξijt, if yt≠iξijt≥0] (10)
未知类别的测试数据[x]的判别方式采用投票的方式,决策函数如果判定[x]属于第[i]类,类别[i]加一票;否则,类别[j]加一票。最后将[x]归属于得票数最高的类别。
2.5 PSO?LSSVM算法实现步骤
根据模拟电路故障诊断的特点,建立基于PSO?LSSVM的模拟电路故障诊断模型,其结构如图1所示。
步骤如下:
(1)对待测电路加载激励信号,将采集到的输出响应信号作为原始样本数据。
(2)利用特征提取技术提取数据中的不变特征形成故障模式空间。
(3)PSO参数初始化。包括种群规模[m],学习因子[c1]、[c2],惯性权重最小值[ωmin]、最大迭代次数[Tmax]、粒子的初始速度和位置等。
(4)将训练样本代入模型,根据式(10)计算每个粒子的适应度函数值。
(5)根据式(7)更新粒子的速度和位置。
(6)检查是否满足终止条件,如满足则根据式(6)输出结果,否则返回步骤(2)。
(7)将测试样本输入训练好的LSSVM模型,根据输出判断故障模式。
3 仿真实验与结果分析
3.1 实验数据的获取
为验证本文方法的正确性和有效性,采用Sallen?Key带通滤波器[17]作为研究对象,电路结构及参数如图2所示。设电路中电容的容差为其标称值的10%,电阻的容差为其标称值的5%。对电路进行灵敏度分析可知,元件R2,R3,C1,C2的变化对电路的输出Vo影响显著,因此,设置电路的故障类型为R2,R3,C1,C2发生单软故障,则电路的故障模式可划分为9种,如表1所示。其中↑和↓分别表示元件参数值向上或向下偏离标称值的50%。
在PSpice环境下对电路进行Monte Carlo仿真,仿真默认温度27 ℃,其他仿真条件采用默认设置,每种故障模式采样50次。
本文采用小波包变换提取故障特征,即利用各频段信号的能量构造故障特征向量。首先对采样信号进行三层小波包分解,基函数采用db3小波,根据重构信号计算8个频带的能量,并以能量为元素构成一个特征向量。为提高收敛速度,应对特征样本进行归一化处理。对输出信号Vo的特征向量如表2所示(由于篇幅限制,给出部分值)。针对9种故障模式,采用一对一方法构建LSSVM多分类器,共需要36个二分类LSSVM。
3.2 仿真结果分析
为验证本文方法的效果,分别利用两种模型对所得数据进行故障诊断。模型一,采用LSSVM模型,用网格划分来寻找最优参数,参数[C]的范围设定为[0,100],参数[γ]的范围设定为[-100,100];模型二,采用改进的PSO算法优化LVSVM模型参数,设定种群规模[m]=20,学习因子[c1=c2]=1.7,调节系数[c]=0.5,最大迭代次数[Tmax]=100。随机选取30组数据作为训练样本,另外20组数据作为测试样本。首先利用训练样本分别对两种诊断模型进行训练,然后利用训练后的模型对测试样本进行故障诊断,所得诊断结果如表3所示。
从表3可知,与LSSVM模型相比,经过粒子群优化的LSSVM诊断方法的故障诊断准确率和诊断效率都得到提高。
4 结 语
本文利用改进的粒子群优化算法对最小二乘支持向量机模型进行参数寻优。首先针对标准PSO易陷入局部最优的问题,将小生境技术引入到粒子的优化迭代过程中,通过对粒子进行分类保证种群的多样性。然后借助粒子群算法的全局搜索能力对LSSVM模型的参数进行动态选择。最后以典型滤波器电路Sallen?Key的故障诊断为例进行仿真验证。仿真结果表明,采用改进的PSO算法对LSSVM模型进行参数寻优时克服了网格划分遍历搜索造成的低效率问题。同时,与LSSVM相比,故障诊断精度和效率都得到了提高。
参考文献
[1] AMINIAN F, AMINIAN M, COLLINS H W, Jr. Analog fault diagnosis of actual circuits using neural networks [J]. IEEE Transactions on Instrumentation and Measurement, 2002, 51(3): 544?550.
[2] 王承,陈光,谢永乐.基于小波?神经网络的模拟电路IDDT故障诊断[J].仪器仪表学报,2005,26(11):1106?1108.
[3] 毛先柏.基于支持向量机的模拟电路故障诊断研究[D].武汉:华中科技大学,2009.
[4] 连可,王厚军,龙兵.基于SVM的模拟电子系统多故障诊断研究[J].仪器仪表学报,2007,28(6):1029?1034.
[5] 王安娜,邱增,吴洁,等.基于SVM多类分类算法的模拟电路软故障诊断[J].东北大学学报:自然科学版,2008,29(7):924?927.
[6] KEERTHI S S, LIN C J. Asymptotic behaviors of support vector machines with gaussian kernel [J]. Neural Computation, 2003, 15(7): 1667?1689.
[7] üSTüN B, MELSSEN W J. Determination of optimal support vector regression arameters by genetic algorithms and simplex optimization [J]. Analytic Chimica Acta, 2005(544): 292?305.
[8] SUYKENS J A K, VANDEWALLE J. Least square support vector machines classifiers [J]. Neural Processing Letters, 1999, 9(3): 293?300.
[9] 潘明清.基于支持向量机的机械故障模式分类研究[D].杭州:浙江大学,2009.
[10] MüLLER K R, MIKE S, R?TSCH G, et al. An Introduction to kernel?based learning algorithms [J]. IEEE Transactions on Neural Networks, 2001, 12: 181?202.
[11] KENNEDY J, EBERHART R C. Particle swarm optimization [C]// Proceeding of IEEE International Conference on Neural Network. Perth, Australia: IEEE, 1995: 1942?1948.
[12] SHI Y, EBERHART R C. A modified particle swarm optimizer [C]// IEEE International Conference on Evolutionary Computation. Piscataway, NJ: IEEE Service Center, 1998: 69?73.
[13] 李勇平.基于改进粒子群神经网络的电信业务预测模型研究[D].广州:华南理工大学,2009.
[14] KNEEL U. Pairwise classification and support vector machines [M]. [S.l.]: MIT Press, 1999: 255?268.
[15] BOTTOU L, CORTES C. Comparison of classifier methods: a case study in handwriting digit recognition [C]// International Conference on Pattern Recognition. [S.l.]: IEEE Computer Society Press, 2000: 77?87.
[16] PLATT J C, CFISFIANINI N, SHAWE?TAYLOR J. Large margin DAGs for multi?class classification [M]. [S.l.]: MIT Press, 2000: 547?553.
[17] AMINIAN F, AMINIAN M. Fault diagnosis of analog circuits using Bayesian neural networks with wavelet transform as preprocessor [J]. Journal of Electronic Testing: Theory and Applications, 2001, 17(1): 29?36.