张伟, 刘星, 许爱强, 平殿发
(海军航空大学, 山东 烟台 264001)
现代电子技术的快速发展对模拟电路的测试与诊断提出了新的要求。由于元件参数的容差性[1]、故障模式的多样性、广泛存在的非线性与反馈回路[2],使得传统的故障诊断方法在模拟电路实际诊断中难以达到预期的效果。
针对模拟电路的故障特点,国内外学者已经开展了大量研究,其中基于机器学习的智能诊断方法得到了广泛的肯定并取得了积极的研究成果[3-7]。该方法将故障诊断问题建模为模式识别问题,通过对电路的正常模式和故障模式进行学习,构建诊断模型并最终形成诊断策略。在基于机器学习的智能诊断方法中,支持向量机(SVM)、核超限学习机(KELM)等基于核函数的学习算法已经被广泛应用。尽管这些方法展示出了优越的性能,但是核函数、核参数的选择严重制约着其有效性。
近年来的研究表明,多核学习(MKL)是一种灵活性更强、解释能力更好的学习方法[8-9]。文献[6,10-11]已经将其应用到包括模拟电路在内的板级故障诊断中,并通过实例证明基于MKL的诊断方法在面对单故障、多故障及并发故障时均能取得更高的诊断精度。尽管当前大多数文献都集中在多核SVM的研究上,但对于多核超限学习机(MK-ELM)的研究也越来越受到关注。原因在于:第1,MK-ELM将二分类与多分类问题统一在一个框架下,避免了额外的一对一或一对多策略;第2,解KELM的优化问题比解SVM的优化问题本身更加简单。文献[12]通过对基核权重施加l1范数约束,设计了一种稀疏MK-ELM算法,记作l1-MKELM;然后用lp(p>1)范数约束取代l1范数约束,提出一种非稀疏MK-ELM算法,记作lp-MKELM. 文献[13]则将MK-ELM的优化问题转化为解二次约束、二次规划和半无限线性规划问题。文献[14]为了避免文献[12-13]中复杂的解优化过程,在基于SVM的MKBoost算法[15]启发下,采用AdaBoost框架对多个KELM模型进行集成,有效提升了算法性能。
本文为提升模拟电路故障隔离精度,通过引入lp-MKELM和AdaBoost集成学习策略,提出一种新的故障诊断模型。首先,通过分析被测电路(CUT)的频率响应曲线,基于故障特征间的一维模糊度进行特征选择。然后,针对lp-MKELM基于AdaBoost策略构造了一种3层MKL框架。本文方法不同于文献[14]:文献[14]在每次迭代中依据带权分类误差最小原则从不同基核中选择一个最优的基核;而本文方法将带权分类误差融入KELM的优化目标函数中,在每层框架中选择一组基核的最优线性组合。所提诊断模型可以自适应地调节训练数据的权重分布,使每层框架可以聚焦于不同的故障样本,进而提升对故障模式的辨识能力。
(1)
依据文献[12],当使用lp-MKELM作为诊断模型寻找映射函数f(x)时,其初始优化问题表示为
(2)
式中:‖·‖F表示矩阵的Frobenius范数;‖·‖2表示向量的2范数;β表示总的输出权重,βq表示对应于第q个基核的输出权重;ξi=[ξi1,…,ξim]T和yi=[yi1,…,yim]T分别表示对应于第i个样本的训练误差向量和理想输出向量,m表示ELM的输出节点个数;C为正则化因子;p为范数约束形式。
尽管lp-MKELM具有良好的分类性能,但是直接将其用于模拟电路故障诊断还存在一些问题。例如p对算法性能具有直接影响,但p该如何选择至今仍是一个开放性的问题。因此,结合实际诊断任务,还需要对lp-MKELM做出一些改进。
(3)
(4)
将(3)式和(4)式的结果一起代入优化问题(2)式中,新的优化问题表示为
(5)
新的优化问题相比于优化问题(2)式具有2个显著特点,主要体现在:
为求解优化问题(5)式,在其拉格朗日函数中对优化变量分别求偏导并令结果等于0,可以得到下面的优化条件:
(6)
ξi=αi/(wiC),i=1,2,…,n,
(7)
(8)
(9)
式中:α和λ均为拉格朗日乘子,且有α=[α1,α2,…,αn]T,αi=[αi1,αi2,…,αim]T. 下面采用一种交替优化的策略来求优化问题(5)式中的模型参数:
1)给定γ,求解α. 将(6)式、(7)式代入(8)式中,得
(10)
(11)
2)给定α,更新γ. 根据(9)式,可得
(12)
(13)
(14)
式中:γq表示第q个基核在上一次迭代中的权值;γ′q表示第q个基核在本次迭代后新的权值。
(15)
将(15)式代入(14)式中即可得到新的基核权重γ′q,由(14)式可知,当基核权重的初始值非负时,其在每次迭代中均非负。通过上述交替优化过程,当得到最优的模型参数α*和γ*时,决策函数表示为
(16)
不失一般性,将选择的基核函数构成的集合定义为Δ={kL;kP,1,…,kP,r1;kG,1,…,kG,r2},令Δ1={kL}表示线性核,Δ2={kP,1,…,kP,r1}表示r1个不同等级的多项式核,Δ3={kG,1,…,kG,r2}表示r2个不同尺度的高斯核,并且有1+r1+r2=r.
为提升lp-MKELM模型性能,基于AdaBoost策略,构造一个3层集成学习框架。在第1层中采用Δ1训练一个线性单核模型,记作线性层;在第2层中采用Δ2训练一个多项式MKL模型,记作多项式层;在第3层中采用Δ3训练一个高斯MKL模型,记作高斯层。层与层之间通过训练数据的权值分布进行信息的传递与继承,这样便得到一个逐级深化的3层决策模型。
在第1层中通过解一个单核ELM模型可以得到决策函数f1(·),而在第2层与第3层中,通过解优化问题(5)式可以依次得到一个如(16)式所示的多核决策函数f2(·)、f3(·). 在获得fu(·)(u=1,2,3)之后,有3个问题需要解决:
(17)
式中:wu,i表示在第u层中第i个训练样本的权重。
2)计算fu(·)的重要性系数κu.fu(·)的重要性系数κu定义为
(18)
3)更新训练数据集的权值分布。对于线性层w1=w0,而w0表示初始权值分布,当由下一层向上一层转换时,有
(19)
这样,使得被当前层误分的样本权值增大,而被正确分类的样本权值减小,进而上层模型能够“重点关注”或“聚焦”到下层难以区分的故障样本上。
在AdaBoost框架下,最终的决策函数表示为
(20)
label(x′j)=G(x′j).
(21)
采用文献[3]提出的基于仿真诊断模型(SDM)的测试性应用框架,如图1所示。
在故障电路生成阶段,通过变异生成操作将多种故障注入CUT中,得到一系列不同故障下的CUT变异体,故障生成采用的变异操作如表1所示。表1中:PCH为软故障变异操作,令ε为元件容差值,Θ为元件标称值,采用均匀分布U(0.1Θ,(1-ε)Θ)和U((1+ε)Θ,2Θ)分别表示元件参数的负向偏差和正向偏差;ROP、LRB、GRB和NSP为硬故障变异操作,采用均匀分布U(100 kΩ,1 MΩ)和U(10 Ω,1 kΩ)分别表示开路状态和桥接状态对应的阻值。
表1 变异操作
将上一阶段生成的故障CUT变异体和初始无故障CUT输入基于Pspice内核的仿真器中,以扫频信号作为激励,得到各CUT的频率响应曲线。鉴于元件参数存在一定的容差,假设其服从均值为标称值Θ、标准差为σ=εΘ/3的高斯分布,进行Monte Carlo仿真,得到同一故障模式下的不同样本数据。
(22)
(23)
显然,dis(gs)越大,特征gs的辨识力越强。
定义4假设特征gs与gt对应于所有故障模式的数据集分别为X(gs)和X(gt),则特征gs与gt的相似性定义为X(gs)与X(gt)间的皮尔逊相关系数[16],即
(24)
(25)
式中:ϑ>0是一个惩罚因子,用于平衡两个条件之间的重要性。通过上述增量搜索过程,在最大化特征辨识力的同时,最小化特征间的冗余信息,最终能获得一组具有预定规模的特征集合。
所提lp-MKBoost- ELM诊断模型的基本框架如图3所示。
lp-MKBoost-ELM诊断模型诊断流程的具体步骤如下:
4) 根据特征集FTd生成训练样本集DTr,令u=1,wu=[1/n,1/n,…,1/n],根据Δu解单核ELM得到决策函数fu(·),由(18)式计算κu,记录fu(·)和κu,由(19)式更新数据权值分布wu+1,并令u=u+1.
7) 根据特征集FTd生成测试样本集DTe,对于测试数据实例x′j,计算kq(xi,x′j)(i=1,2,…,n;q=1,2,…,r),利用(20)式计算f(x′j),利用(21)式得到x′j所对应的故障标签label(x′j).
为证明lp-MKBoost-ELM的有效性,单核学习算法(SVM算法和KELM算法)、多核SVM算法(SimpleMKL算法[18],L2BRMKL算法[19],TrStMKL算法[20])以及多核ELM算法(l1-MKELM算法[12])分别被用作对比算法。实验中,基于SVM的方法在处理多分类问题时采用一对一的策略;单核学习方法采用高斯核,正则化参数与核参数通过网格搜索法分别从集合{10-6,10-5,…,106}和{0.02,0.20,…,2.00×106}中选择;MKL算法的正则化参数通过5折交叉验证从集合{10-6,10-5,…,106}中选择。各方法的诊断性能通过下列指标共同评价:
1)错正率(FPR),即发生的漏警数/测试的故障样本总数;
2)错负率(FNR),即发生的虚警数/测试的正常样本总数;
3)故障命中率 ,即正确检测到的故障样本总数/检测到的故障样本总数;
4)故障检测率(FDR) ,即正确检测到的故障样本总数/测试的故障样本总数;
5)分类正确率,即识别正确的样本数与测试的样本总数的比率。
Sallen-Key带通滤波电路被用来详细分析lp-MKBoost-ELM诊断模型的诊断性能,其电路结构如图4所示。
仿真实验共注入14种软故障,故障描述如表2所示。其中,电容和电阻元件参数的相对容差设置为10%;扫频信号的频率范围设置为0~100 kHz. 最终得到每类故障样本数为200,每个故障样本特征数为1 001的原始数据集。将其平分为2组,分别作为训练和测试数据集。
表2 Sallen-Key带通滤波电路故障描述
采用2.3节的特征选择方法,令ϑ=0.8,提取出该CUT的故障特征为FT21=[0.001 kHz, 9.31 kHz, 16.12 kHz, 16.82 kHz, 17.02 kHz, 17.42 kHz, 17.62 kHz, 18.22 kHz, 18.32 kHz, 19.32 kHz, 20.42 kHz, 20.82 kHz, 21.92 kHz, 23.02 kHz, 27.73 kHz, 30.13 kHz, 30.23 kHz, 33.33 kHz, 33.43 kHz, 70.87 kHz, 71.37 kHz]. 采用lp-MKBoost-ELM模型以及2种单核学习算法、4种MKL算法分别对目标电路进行诊断。多核设置为线性核、多项式核(参数分别为1, 2, 3)和高斯核(参数分别为1, 2, 4, 6, 8, 10, 12, 14)。实验中,lp-MKBoost-ELM模型的范数设置为p=2,其对目标电路的诊断结果如图5所示。
由诊断结果得到每种故障模式的隔离正确率分别为92%、93%、96%、100%、100%、96%、100%、100%、85%、97%、100%、98%、95%、99%和100%. 其中,隔离正确率最低的是F8,而对F3、F4、F6、F7、F10和F14均实现了100%的隔离正确率。显然,本文所提出的lp-MKBoost-ELM对本案例中的各类故障模式均有较好的辨识能力。
表3给出了lp-MKBoost-ELM模型与2种单核学习算法的性能比较。
表3 与单核学习算法的诊断性能比较
由表3可看到:
1)对于诊断精度,lp-MKBoost-ELM在局部基于MKL理论对同一类型的核函数进行加权,在全局基于AdaBoost策略对不同类型的核函数进行集成,使得故障样本在最终的组合核特征空间中具有更好的可辨识性,相比于SVM算法和KELM算法,诊断精度分别提升了5.47%和8.20%.
2)对于时间花费,lp-MKBoost-ELM模型由于要解多核优化与集成学习问题,训练时间最长;在测试阶段,模型输出是基于不同基核的子分类器输出结果的线性加权,因此测试时间也相对较长。
3)lp-MKBoost-ELM模型的FPR优于KELM算法,FNR优于SVM算法,实现了漏警与虚警之间的折中。
表4给出了lp-MKBoost-ELM模型与4种MKL算法的性能比较。
由表4可以看到:
1)在诊断精度上,相比于其余4种MKL算法,lp-MKBoost-ELM模型将诊断精度分别提升了0.93%,0.87%、1.93%和1.67%. 本文所提模型分类性能的提升得益于2个方面的改进:第1,在lp-MKELM算法的优化目标函数中,用训练样本的加权分类误差取代一般的平均分类误差,通过更新训练样本的分布权重可以使分类器聚焦于某些重点样本;第2,通过引入AdaBoost集成学习策略构造了一个3层递进学习框架,在汲取不同核函数特性的同时,将不同层的学习结果进行集成,使得最终的诊断结果更趋准确。
2)在时间花费上,lp-MKBoost-ELM模型不及TrStMKL算法和SimpleMKL算法,但得益于训练样本的加权策略和AdaBoost集成学习框架,使其优于L2BRMKL算法和l1-MKELM算法。
3)对于其他评价指标,包括FPR、FNR、FDR以及故障命中率,lp-MKBoost-ELM模型均优于其余4种MKL算法。
为进一步验证lp-MKBoost-ELM模型的有效性,不同范数约束形式下对目标电路的诊断结果如表5所示。
表5 不同范数约束形式p下诊断性能比较
由表5可以看出:
1)在11种不同范数约束下,最高诊断精度为96.93%,最低诊断精度为96.53%. 即使最低诊断精度也要高于其余4种MKL算法,而在最高诊断精度下相比于其余4种MKL算法,诊断正确率分别提升了1.13%、1.07%、2.13%和1.87%.
2)最高诊断精度与最低诊断精度之间的差值仅为0.40%,即本文所提诊断模型在不同范数约束形式下的诊断性能基本趋于一致。
3)时间花费随着范数约束形式的增大而明显减少,当采用l4范数约束时,本文所提诊断模型的训练时间花费已经小于其余4种MKL算法。
Biquad低通滤波电路被用来验证lp-MKBoost-ELM模型对不同属性电路故障的诊断能力,其电路结构如图6所示。
该电路包含较多的元件,通过选择具有代表性的故障模式,仿真实验共注入各类故障29个,如表6所示。同理,扫频信号的频率范围设置为0~200 kHz,最终得到每类故障样本数为100,每个故障样本特征数为1 001的原始数据集,将其平分为2组,分别作为训练和测试数据集。
通过模糊度分析发现,ROP与LRB变异操作下各故障模式的频率响应曲线与正常模式极其相似,导致它们与正常模式以及彼此之间都难以区分。以ROP变异操作下的故障F10为例,其在4个不同频点上与正常模式的一维特征模糊度如图7所示。
为了更好地处理上述提到的问题,下面引入响应曲线簇模糊组定义。
通过设置不同的阈值ν可以得到不同模糊组。以F0为例,依次令ν为1.0、0.7、0.5、0.3和0.1,其所属的模糊组如图8所示。
采用2.3节的特征选择方法,令ϑ=1,提取出该CUT的故障特征为FT25=[7.61 kHz,10.61 kHz,13.01 kHz,14.02 kHz,14.62 kHz,14.82 kHz,15.02 kHz,15.22 kHz,15.42 kHz,15.62 kHz,15.82 kHz,16.02 kHz,16.22 kHz,16.42 kHz,16.62 kHz,16.82 kHz,17.02 kHz,17.22 kHz,17.42 kHz,17.62 kHz,17.82 kHz,46.25 kHz,46.65 kHz,199.80 kHz,200.00 kHz],以SVM算法、KELM算法、SimpleMKL算法作为比较算法。实验中,多核设置为线性核、多项式核(参数分别为1,2,3)和高斯核(参数分别为1,2,4,8,12,60,100,140).lp-MKBoost- ELM模型中令p=2. 假设诊断结果为实际故障所在模糊组中的任意一种故障就认定诊断正确。下面给出不同阈值ν下各种诊断方法的诊断性能比较:
1)当ν=1.0,即不考虑模糊组时,诊断性能比较如表7所示。
2)当ν=0.5时,共形成2个模糊组,分别为{F0,F9,F10,F12,F18,F20,F22}和{F1,F5},诊断性能比较如表8所示。
3)当ν=0.1时,共形成8个模糊组,分别为{F0,F9,F10,F12,F18,F20,F21,F22}、{F17,F24,F25}、{F14,F15,F21}、{F4,F5,F18}、{F1,F4,F5}、{F1,F18}、{F2,F4}和{F2,F18},诊断性能比较如表9所示。
表7 当ν=1.0时Biquad低通滤波电路诊断性能比较
表8 当ν=0.5时Biquad低通滤波电路诊断性能比较
表9 当ν=0.1时Biquad低通滤波电路诊断性能比较
由表7~表9可以看出:
1)当ν=1.0,即不考虑模糊组时,4种方法的诊断正确率都比较低,并且FNR分别高达0.840 0、0.840 0、0.880 0和0.820 0. 这是因为许多故障模式的频率响应曲线与F0非常接近,任一种分类器都难以将相关故障精确区分开。随着ν的降低,具有相似特征的故障模式落入同一个模糊组中。在考虑模糊组的情况下,4种方法的诊断准确率随着ν的减小而上升。
2)在不同的阈值下,lp-MKBoost-ELM模型具有最高的诊断正确率,在ν=0.5时,其诊断正确率已经达到89.53%,甚至高于ν=0.1时的KELM算法与SVM算法的诊断正确率。
3)在时间花费上,KELM算法与SVM算法具有更快的训练速度,lp-MKBoost-ELM模型与SimpleMKL算法不得不花费更多的时间,但相对于SimpleMKL算法,所提模型的训练时间花费要少很多。
4)在实际应用中ν建议在0.5左右取值,这是因为由表8可看出,在这样的区间取值,既可以保证相对较高的诊断正确率,又不至于存在太多的模糊组。
通过故障注入生成参数连续的各类软故障和硬故障,同时考虑非故障元件的参数容差,本文提出一种新的模拟电路离线故障诊断方法。针对2个CUTs的诊断结果表明:
1)在不同范数约束形式下,lp-MKBoost-ELM模型具有近似一致的诊断性能,避免了因范数约束形式选择不当而造成诊断性能下降的问题。
2)相比于单核诊断算法,lp-MKBoost-ELM模型在平衡虚警、漏警的同时,能够显著提升诊断的正确率。而相比于多核诊断算法,lp-MKBoost-ELM模型在取得更高诊断精度的同时,通过控制范数约束形式能够实现对训练时间花费的有效约减。
3)当某些故障之间难以辨识时,通过引入响应曲线簇模糊组概念,lp-MKBoost-ELM模型能够将难以辨识的故障模式更加准确地隔离到相应模糊组中,为进一步故障隔离提供了有益指导。