陈勇1,张春平2,寇昆湖1,苏艳琴1
(1海军航空工程学院控制工程系,山东烟台264001;2海军航空工程学院训练部,山东烟台264001)
摘要:基于支持向量机( SVM)的故障诊断方法是当前主要的模拟电路故障诊断方法之一,但由传统的二分类SVM组成的故障分类器对新故障模式缺乏处理能力。针对该问题,提出了结合单类支持向量机( OCSVM)和SVM的故障诊断方法。该方法采用OCSVM对故障数据进行检测和初步分类,采用SVM来提高分类性能;最后,采用脉宽调制电路进行故障诊断实验,实验结果说明了所提出的故障诊断方法的有效性。
关键词:故障诊断;模拟电路;支持向量机;单类支持向量机
中图分类号:TP806.3 文章编号:1006 - 2394( 2016) 03 - 0028 - 04
0引言
模拟电路广泛存在于各类电子装备系统中,其故障诊断问题对高效地完成电子装备的维护和维修,保障其可靠运行具有重要的工程意义。由于模拟电路中存在故障建模困难、元器件非线性、参数漂移等特点,模拟电路故障诊断技术一直是学术研究领域的一个研究难点。
随着人工智能技术的兴起,机器学习方法,例如神经网络( Neural Network,NN)和支持向量机(SupportVector Machine,SVM)已成为解决模拟电路故障诊断问题的有效手段。这类方法不需要诊断对象的数学模型,而且能够克服模拟电路中的参数漂移问题。
基于机器学习方法的模拟电路故障诊断本质上属于模式识别问题,即依据电路运行数据特征对故障进行分类。实际工程中,虽然待诊断电路的运行数据可方便地进行采集,但绝大部分数据样本属于正常模式,不同故障模式下的样本量往往很小。因此,模拟电路的故障诊断问题属于小样本条件下的模式识别问题。由于NN采用经验风险最小化准则,在小样本条件下,这种方法的泛化性能难以得到保证。针对NN存在的不足,基于SVM的模拟电路故障诊断方法。SVM是由统计学习理论(StatisticsLearning Theory)发展而来的一种机器学习工具,它采用结构风险最小化准则,有效弥补了经验风险最小化准则在小样本情况下的不足,可获得更好的泛化能力。
在采用SVM进行故障分类之前,首先要利用事先已知的电路运行样本训练SVM分类器。这些用于训练SVM的样本也称为训练集,它包含待诊断电路正常模式下采集到的样本,也包含若干常见故障模式下采集到的样本。以上训练集中包含的模式称为已知故障模式,而实际工作中待诊断电路还可能发生训练集中未包含的故障模式,文中称之为未知故障模式。训练后的SVM分类器将对已知故障模式的样本具有很好的分类性能,但对未知故障模式的样本缺乏处理能力。也就是说,一旦SVM训练完成,即使待测样本不属于已知的故障模式集,SVM都将会判别为某种已知的故障模式。为克服以上问题,本文提出一种SVM和单类支持向量机( One-class SVM,OCSVM)相结合的模拟电路故障诊断方案。
1 SVM及参数优化
SVM分类算法源于二类分类问题,是从线性可分情况下的最优分类超平面提出的,即找到一个超平面,使得它能够尽可能多的将两类数据点正确地分开,同时使分开的两类数据点距离分类面最远(即分类间隔是最大的)。而针对更普遍的非线性可分问题,可通过定义适当的核函数,将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,从而实现非线性变换。
过非线性函数妒(x)将样本从原空间映射到高维特征空间,在高维特征空间中分类超平面的二次最优化问题为:
a i>0对应的样本点称为支持向量,假设支持向量的数目为m,通常m要小于训练样本个数l。通过求解式(2)可获得最优分类决策函数:
若f(x)>0时,则认为x属于正类;否则,则认为x属于负类。
本文选用如下的高斯函数作为核函数:
大量的实践应用表明,SVM参数C和y对SVM分类性能的影响也比较大,通过选择合适的SVM参数C和y可显著提高SVM的分类性能。本文采用粒子群优化算法(Particle Swarm Optimization,PSO)对参数C和y寻优,以得到性能更优的SVM分类器。
SVM最初是针对二分类问题提出的,而模拟电路故障诊断一般属于多分类问题,需要组合多个二类SVM分类器来构造SVM多分类器。常用的组合方法有3种:-对一SVM、一对多SVM、决策导向无环图SV M。本文采用一对- SVM算法,该方法在Ⅳ类训练样本中构造所有可能的两类分类器,即针对Ⅳ类中的任意两类训练样本训练SVM,结果共构造K=N(N-1)/2个SVM分类器,组合这些两类分类器并使用投票(Max-Wins)法,得票最多的类即为样本点所属的类。
2 OCSVM
OCSVM是一类无监督的学习算法,在异类检测方面有突出优势,常用于数据域描述和孤立点检测等问题。
OCSVM的思想是:假设所有样本
3故障诊断方案
随着模拟电路集成化水平的不断提高,电路的故障类型也在急剧增加。基于SVM的模拟电路故障诊断中,SVM分类器很难通过一次训练就覆盖所有的故障类型,因此要求分类器具有良好的新故障类型检测能力。
本文提出的联合OCSVM和SVM的模拟电路故障诊断方法的框架,如图1所示。该诊断流程描述如下:首先将待测数据送入OCSVM模块,所有OCSVM子分类器判别该数据是否属于本类。然后,判断OCSVM模块输出的结果,若该数据仅属于已知故障类型中的某一类,则直接输出分类结果;若判断该数据属于已知故障类型中的多类(如同时判别为第i,j,k类故障),则将待测数据送人由这些故障类(i,j,k故障类)两两组合而成的SVM模块进行分类,接着对SVM模块中的各子分类器输出进行判断(如采用投票法)以确定诊断结果;若判断该数据不属于已知故障类型中的任何一类,说明检测到新故障,必须通过人工方式进一步确定故障位置,同时连续采集该新故障下的电路数据并训练OCSVM,然后将新的OCSVM子分类器增加到OCSVM模块中,实现分类器故障类型的扩展。
4实验分析
为验证所设计模拟电路故障诊断方法的实际效果,采用脉宽调制电路进行故障诊断实验。该电路的电原理图如图2所示。
为验证本文所提出的联合SVM和OCSVM的故障诊断和检测方法,在电路上设置故障模式如表1所示,并将电路元件C1、C2、R4和R16上的故障作为已知故障,而将R19上的故障作为新故障。实验中利用给实验电路板施加方波激励信号并采集OUTl~OUT5等5个测试点上的响应信号。
在表1中的每个故障模式下,重复进行60次激励施加过程并采集测试点响应信号,以获取每种故障模式下的60个故障样本。在此基础上,对采集到的测试点响应信号进行小波多分辨率分析,以提取故障特征,本实验中采用“db3”小波对响应信号进行5层小波分析。在获取故障样本条件下,将故障样本集中前1/3样本作为训练样本集,以训练SVM和OCSVM模型,将后2/3样本作为测试样本集以进行测试。根据图1所示的模拟电路故障诊断流程,首先将所有测试样本送人训练好的OCSVM模型进行新故障检测,然后将OCSVM检测后的样本送人训练好的SVM模型进行故障诊断。本实验所得到的检测和诊断结果如表2所示。
由实验结果可以看出,在对元件C1、C2、R4、R16上所设置的已知故障进行诊断时,所提出的模拟电路故障诊断方法获得了较高的诊断率。在对电阻R19上设置的两个新故障进行检测时,本文所提方法也能够准确检测出所有的新故障,检测率达到100%。总体来看,所提出的故障诊断方法能够高效地实现已知故障样本的诊断,同时可以准确地检测出新故障样本。
5结论
本文提出了SVM结合OCSVM诊断模拟电路故障的方法,以弥补基于SVM的诊断方法难以检测新故障的不足。通过电路实验对所提出的故障诊断算法进行了验证,结果表明,该故障诊断方法对已知故障类具有良好的分类性能,同时对新故障类也具有良好的故障检测性能。