本书简要给出了支持向量机的基本理论基础、发展状况以及基于支持向量机的一些多分类方法,本章节将利用基于支持向量机的多分类方法设计故障分类器实现对液位控制系统的不同故障进行分类。
7.4.1 基于支持向量机的故障分类方法
为了使SVM的使用不受到分类类别数量的约束,解决现实问题中对多类别进行分类的问题,人们对此做了大量研究。目前主要使用的方法总的来说可以划分为两种:第一种办法是直接利用多个二分类器,然后将其按不同办法组合起来使用以达到对多种样本类别进行分类的目的;另一种办法就是直接考虑同时对多个样本进行分类的问题,也叫整体优化算法,该算法通过对SVM分类器进行改进,构造N个判决函数来实现对N类样本进行分类。第二种方法给人直观的感觉看似比较简洁,但由于其算法比较复杂,在计算过程中速度较慢,分类精度也不高,因此目前第一种方法使用的比较多[38~41]。
(1)组合多个二分类器方法。组合多个二分类器法也叫标准算法,这种方法是直接利用二分类器的分类能力,依据对N类测试样本数据进行不同的划分情况采用多个数量二分类器对所划分好的样本类别进行分类,然后按特定方法组合起来形成一个多分类器,根据不同的组合所需要二分类器的数量也不同。常用的方法有:一对一方法、一对多方法、决策树法和决策导向无环图法。
①一对一方法。一对一方法是Knerr提出来的一种将过个二分类器组合使用的一种多分类方法,假设现在有N种样本数据,该方法就是将每一种样本与其余所有样本进行一对一分类,根据组合排列可知要完全将N种样本进行分类一共需要N(N-1)/2个二分类器,每个二分类器得出结果后将结果进行组合,常用的方法是投票法。该方法容易理解,结构简单,但决策时存在一种样本对应多个类别结果,这会对决策结果产生影响,容易出现错误判断,还有就是当样本种类N比较大的时候,就需要很多个二分类器,这就会导致决策阶段运算量大,决策时间会比较长。一对一方法的结构如图7-6所示。
图7-6 一对一方法结构图
②一对多方法。一对多方法的思想是对于N类样本数据需要训练N个二分类器,当训练第k个分类器时,把第k个样本作为一类,把其他所有类别数据统统作为另一类,这样就实现对两类数据进行训练。将N个二分类器训练好后将测试样本代入N个二分类器进行计算,然后将N个结果进行综合,计算决策函数值f(k),k=1,2,……,N,样本划分类别为:arg-max:f(k)。相比于一对一方法,这种方法需要训练的二分类器少,决策运算简单,但是在训练每一个二分类器的时候都会运用到所有数据,这样就会造成运算量过大,而且训练时会由于两类样本数量相差较大,会发生分类超平面偏移现象,造成在决策阶段出现划分盲区现象。
③决策树法。决策树法是将训练过程和决策阶段同时进行的一种方法,以四种样本为例,决策树法的两种流程如图7-7所示。
由图7-7可以看到,不管是(a)方法还是(b)方法在对SVM(1)进行训练时,所有样本数据都进行了运算,但是随着训练次数的不断增加,需要进行训练的样本数据也在不断减少,运算量和运算时间也会相应的减少。决策树法对于类别的划分是分层次的,不存在划分盲区。但是,在对SVM(1)进行训练时,也会由于两类数据样本的数量差别较大,存在不对称问题导致超平面发生偏移,而且由于选择流程的不同分类的结果也会不同,因此分类误差会比较大。
图7-7 决策树法的两种决策流程
④决策导向无环图法。决策导向无环图支持向量机DAG-SVM(Directed Acyclic Graph)是Plantt等人提出来的,这种方法能有效的解决样本数据不对称、决策盲区等问题。该方法的训练阶段与一对一方法是一样的,同样采用将N(N-1)/2个二分类器组合起来使用,每个二分类器使用时都对应两类样本数据,只是在决策阶段采用了图论中的有向无环图思想。同样以四类样本数据为例,DAG-SVM结构图如图7-8所示。
图7-8 四类DAG—SVM流程图
在图7-8中,假设每层分类器分类正确率为p,则最终四种类别得到正确分类的概率分别为:
通过计算结果最后可以得到四种类别分类正确的概率如下:
r(2)=r(3)>r(1)=r(4)
(7-19)
但是决策导向无环图支持向量机的分类流程是有多种方式的,对于分类类别1、2、3、4的排列不同分类流程也是不一样的,由排列组合知识可以知道对于N种类别的排列方法有N!种,因此N种类别的分类问题是有N!种分类流程的,采用不同的流程会有不同的分类结果,因此针对如何选择合适的DAG—SVM结构才能得到最佳的分类效果,有人提出了基于节点优化的DAG—SVM多分类扩展策略。
(2)直接法。直接法不把多类问题分成多个二分类问题然后再进行组合,而是直接对N种样本数据同时进行处理,通过构造N个判决函数来把N种样本数据区分开来。Weston等人针对多分类问题提出一个新的二次规划问题:
对应的决策函数为:
相比于一对一方法和一对多方法,直接法是一个计算非常复杂的过程,训练过程所消耗的时间要比一对一和一对多方法多很多,而且经过实际的应用也验证了直接法的分类精度也不比间接法高。因此在实际应用中经常采用一对一方法,但是一对一方法在决策过程也会出现不可判别的情况,所以说如何将多种类别样本进行分类的多分类方法依然是支持向量机理论研究的重要内容。
7.4.2 液位系统的故障分析
液位控制系统的结构及其组成部分如图7-9所示。
图7-9 实际系统结构简图
由图7-9可以看到,液位控制系统的主要组成部分有水泵、流量计、电磁阀、液位传感器和工控机等。
在工业过程控制系统中,经常发生故障的部分主要是传感器和执行机构。据统计,在已经发生的工业系统故障中,传感器故障和执行机构故障大概占所有系统故障的80%以上。就该液位控制系统而言,执行机构有电磁阀和水泵,传感器有流量计和液位传感器,因此,接下来主要是对该液位系统的这四个部分具体的进行一下故障分析。
水泵在该液位系统运行过程中是一直处于运行状态中的,根据经验,水泵经常出现的故障是水泵烧坏,所以在本文中就假设水泵发生的故障就是水泵烧坏,或者断电,总之就是说水泵停转。
电磁阀发生的故障就是电磁阀卡死,这里就涉及电磁阀卡死的位置,在仿真的时候选择了三个比较特殊的位置,即卡死的时候电磁阀处于全开的状态、卡死的时候处于半开的位置和卡死的时候处于关闭的状态。
流量计和液位传感器返回的是实际的流量值和液位值,它们发生的故障无非就是测量值与实际应测得值不同,出于实验的可模拟性,这里假设流量计和液位传感器发生故障时,它们的测量值都为零。
7.4.3 液位系统的故障模拟
就本液位控制系统而言,通过工控机采集测量和经过控制器计算可以得到三类特征数据,即控制器的输出控制信号、流量计的测量值和液位传感器的测量值。经过上一节对系统所做的分析,可以得到当水泵、流量计、电磁阀、和液位传感器分别发生故障时,控制器的输出控制信号以及流量计和液位传感器的测量值都会发生相应的并且有差别的变化,因此,可以将这三个量作为基于支持向量机的分类器的输入特征向量。
至于当水泵、流量计、电磁阀和液位传感器发生故障的情况下,控制器的输出以及流量计和液位传感器的测量值会发生什么变化,下面将在MATLAB中对这四种故障分别进行仿真并观察特征向量的变化。
水泵故障即水泵停止工作,在实际系统中,当水泵停止工作造成的直接影响是系统的输入即流量输入为零,仿真的时候就设输入为零,水泵故障的仿真结果如图7-10所示。如图7-10所示,在时间600s到800s之间,把控制器的输出电压设为零来模拟水泵发生故障。因为在实际系统中,当控制器的输出为零,即加到电磁阀上的电压为零,电磁阀会关闭,这样系统的输入流量就会为零,其效果和水泵停止工作的情况下是一模一样的。由图7-10可以看出,当水泵发生停止工作故障时,其流量计测量值和系统实际的输入流量为零,系统的液位会有所下降,当故障消除时,液位又回到设定值。
图7-10 水泵故障仿真结果
流量计故障被看成是流量计的测量值为零,在仿真的时候,当流量计故障发生时,流量计的值被设置为零,其仿真结果如图7-11所示。在图7-11中,可以看到,当流量计在600s到800s的时间内发生故障,其测量值为零时,系统的输入流量和输出液位并没有发生任何的变化,也就是说流量计故障不影响实际系统的运行状态。
图7-11 流量计故障仿真结果
液位传感器故障的仿真结果如图7-12所示,由图7-12可以看到液位传感器故障的仿真时间很短,这是因为时间过长的话,输出液位高度会过高,这样就会需要较长的时间使液位恢复到设定液位,不方便于仿真。在时间600~630s,设置输出液位高度为零,由于控制器的作用系统的输入会增大,实际液位高度也会增加。当故障消除后,实际液位高度大于设定液位高度值,在控制器的作用下会慢慢回到设定值。
对于电磁阀卡死故障这里取定电磁阀卡死在三个特殊的位置进行仿真,分别为完全打开状态、打开一半状态和完全关闭状态,三种卡死状态的故障仿真结果分别如图7-13~图7-15所示。
7.4.4 基于支持向量机的分类器建模
对于支持向量机的模型训练,如前面所描述的那样,为了获取支持向量机的模型:
最优化问题可以表示为:
图7-12 液位传感器故障仿真结果
图7-13 电磁阀全开故障的仿真结果
图7-14 电磁阀半开故障的仿真结果(www.daowen.com)
图7-15 电磁阀全开故障的仿真结果
通过引入拉格朗日乘子αi,可以构造出最优化问题的拉格朗日函数,二次规划问题可以表示为:
最终通求解得到支持向量机模型为:
式中:nsv是支持向量的序号;K(x,xi)是核函数,这里有许多核函数在支持向量机模型的训练过程中,例如多项式核函数、高斯核函数、线性核函数和神经网络核函数等。其中高斯核函数是应用最为广泛的核函数,在工程、物理和许多其他领域都有应用,高斯核函数如下所示:
式中:σ2是方差。
在上面的训练过程中,模型的质量受到支持向量机几个参数设置和需要分类的数据样本的影响。惩罚参数C决定分类超平面的复杂性,实际设置由训练数据直接决定。方差σ2反映训练数据的输入范围,就是噪音方差的估量值,实际中,噪音方差可以表示为:
式中:n为训练样本数量。
经过上面的分析,可以将系统的输入流量、输出液位高度和流量计的测量值作为SVM的输入特征向量来将所上面所分析的四种故障进行分类[18]。
基于支持向量机设计的分类器使用的是台湾大学林智仁先生开发的libsvm工具箱,在这里主要会应用到两个函数svmtrain()和svmpredict()。其中svmtrain()是SVM的训练函数,该函数通过对训练样本数据进行训练得到一个分类器模型。svmpredict()是SVM的预测函数,该函数利用通过svmtrain()函数训练得到的模型对预测样本数据进行预测,从而得到分类结果。
svmtrain()函数格式为:模型=svmtrain(训练标签,训练数据,参数),训练标签是对不同类型样本数据的一个表示,这里考虑了四种故障,即:水泵故障、流量计故障、液位传感器故障和电磁阀故障,将这四种故障状态再加上正常状态这5种类别状态的标签分别标为:1、2、3、4和5。训练数据为代表各种类别的特征向量,其格式为:<label><index1>:<val-ue1><index2>:<value2>等。参数主要有四个需要设置:
-s设置SVM类型(默认为0);
0:C—SVC
1:v—SVC
2:一类SVM
3:e—SVR
4:v—SVR
-t设置核函数类型(默认为2);
0:线性核函数
1:多项式核函数
2:高斯核函数
3:神经网络核函数
-c cost设置C—SVC、e—SVR和v—SVR的参数(默认为1);
-g gamma核函数中gamma函数设置(默认为1/k)。
另外还有许多其他的参数,一般不需要人为设置,使用默认即可。本研究在使用的过程中,设置-s为0、-t为2、-c为1.2、-g为2.8。对于-c和-g的设置,有种方法叫交叉验证法或其他的智能算法。
将上一节仿真的各种故障数据保存下来并给各类标上相应的标签,然后利用SVM对其进行分类,分类结果如图7-16所示。
其中分类结果正确率为94.5%。
7.4.5 故障分类结果分析
接下来在实际液位控制系统上对上面所考虑四种故障进行模拟,从而得到当实际系统真实发生不同故障时的故障数据,即特征向量数据,然后采用基于支持向量机的故障分类器对四种故障数据进行分类,从而实现对液位控制系统的故障进行分类。
图7-17为模拟系统水泵发生故障的实验结果,为了模拟水泵发生了故障,在实际系统的控制过程中将水泵关闭。如图7-17所示,在时间大概为280s的位置将水泵关闭,由于水泵的关闭导致流量计测量的流量值为零,系统的输入为零,因此系统液位也会下降,由于液位的下降,控制器的输出控制电压达到10V,但是由于水泵故障,液位下降的情况依然无法改变。
图7-16 SVM分类结果
图7-17 水泵故障实验结果
流量计故障的实验结果如图7-18所示,流量计的故障设定为其测量值为零,为了模拟是流量计出现了故障,将流量计与工控机的链接作断开处理来表示流量计的测量值为零。如图7-18所示,在时间300s的时候将其断开,流量为零,但是电压和液位依然处于正常的运行状态,这也说明在本液位控制系统中流量计发生故障不会影响系统的正常运行。
图7-18 流量计故障实验结果
图7-19和图7-20分别是系统中液位传感器发生故障和电磁阀发生故障的实验结果,同模拟流量计发生故障相似,为了模拟系统液位传感器发生了故障,将液位传感器与工控机的连接作断开处理来模拟液位传感器的测量值为零,即液位传感器发生故障。当液位传感器返回到控制器的测量值为零时,为了使液位达到所设定的300mm,控制器的输出控制信号输出为最大值10V,于是,系统的输入流量也为最大值,导致系统的实际液位持续的增加直到液位传感器故障消除。电磁阀故障为电磁阀卡死,即电磁阀不受控制器的输出控制电压控制,如图7-20中所示,在时间160s以后,由于电磁阀卡死,虽然控制器的输出控制信号为零,但是实际上系统的输入流量不为零,从而系统的液位增加,电磁阀故障消除后系统液位慢慢回到设定值。
将上面在实际液位控制系统上模拟的各种故障数据保存下来,利用训练故障样本数据训练出SVM分类器模型,然后利用训练好的分类器对各种故障的测试样本数据进行分类并观察每种故障的分类情况,图7-21是水泵发生故障的分类结果,图7-22是流量计发生故障分类结果,图7-23是液位传感器发生故障分类结果,图7-24是电磁阀发生故障分类结果。
图7-19 液位传感器故障实验结果
图7-20 电磁阀故障实验结果
图7-21 水泵故障分类结果图
图7-22 流量计故分类断结果图
图7-23 液位传感器故障分类结果图
图7-24 电磁阀故障的分类结果图
由上面对液位控制系统所分析的四种故障的分类结果可以看到,采用基于支持向量机设计的故障分类器可以将系统的各种故障正确的分开,实验结果说明所设计的分类器满足对液位控制系统的四种故障进行分类的需求。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。