基于密度空间支持向量机的多工况过程故障检测
2022-08-10郭金玉
郭金玉 李 涛 李 元
(沈阳化工大学信息工程学院 辽宁 沈阳 110142)
0 引 言
在大数据背景下工业智能化时代已经到来,对于复杂工业过程而言,故障及时有效的诊断不仅关乎工业企业的经济利益,也关乎到工厂工人的生命安全,因此,对工业背景下的故障诊断也提出了更高的要求。在工业过程领域,故障诊断与检测是生产过程的重要环节,为了有效提高控制系统故障检测性能,基于数据驱动的检测方法被国内外学者深入研究和应用。由于该方法只需要在实际工业生产过程中获取历史数据,通过数据建立监测模型,从而得到了广泛的关注。
工业生产技术水平不断发展的今天,国内外学者对故障诊断和故障检测技术的研究越来越深入,多元统计分析以其独特的优势被广泛认可。主元分析(Principal Component Analysis,PCA)作为工业过程中对故障进行诊断和检测的最基础手段,一直发挥着重要作用,被广泛应用在多种场景,同时也衍生出多种新的故障检测方法[1-7]。PCA作为多元统计分析方法的一种,处理的数据需要满足高斯、线性分布的前提假设。PCA通过求得主元变量,将大量且复杂的数据投影到低维空间,保留主要数据,降低维数,方便计算,从而得到主元模型和统计控制限。由于算法自身在处理非线性时存在不足,导致检测结果不佳。为了改善PCA的不足,核主元分析(Kernel Principal Component Analysis,KPCA)[8]被提出,在一定程度上扩大了PCA的使用范围。对非线性数据,KPCA中核函数的优势就体现出来了,在低维空间中,样本分布呈现非线性,无法对其处理,需将数据映射到高维空间,去除数据非线性,然后运用PCA进行降维。由于KPCA鲁棒性较差,泛化能力不强,在解决多工况问题方面仍存在局限性。
支持向量机(Support Vector Machines,SVM)[9-10]以其稳健的数学基础、强大的泛化能力和解决各种分类问题方面的诸多优势使其成为机器学习中的经典算法。早在1999年,支持向量机便由Vapnik提出[11],后因被国内外学者广泛研究学习而发展起来。SVM在进行分类任务时具有独特的优势,这使其成为机器学习的主流技术。在处理多工况过程时,数据会出现非高斯性等问题,本文将多工况问题转换为单工况问题。为了使多工况数据变成单工况,并且使其近似服从高斯分布,达到满意的检测效果,本文结合局部概率密度方法,运用支持向量机算法对多工况过程进行过程监视。本文尝试将鲁棒性较好的SVM的分类特性用在故障诊断中,达到分离正常样本和故障样本的目的,从而提高过程监视性能的目的。
1 模 型
1.1 支持向量机
SVM方法在解决数据集规模相对较小或样本非线性问题方面具有许多优点。SVM算法在面对多工况过程时,往往会面临着众多非线性数据,由于非线性数据无法处理,需要将其投影到高维空间,去除数据非线性,建造最大分离超平面,使得数据能够进行有效分类。由于分离平面是基于支持向量构造的,所以SVM是解决高维问题的一种很好的解决方案。同时引入内核函数代替非线性映射,也避免了许多未解决的问题。
给定一个训练样本集,该训练样本集可表示为D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{-1,+1},在该样本训练集空间中找到一个最大分离超平面,把类别不同的样本有效分开,这是分类学习最基本的思想。分离给定数据分类的超平面如下:
wTx+b=0
(1)
式中:w=(w1;w2;…;wd)是权重向量;b是位移项。
假如超平面(w,b)能将训练样本正确分类,那么对于(xi,yi)∈D,若yi=+1,则有wTxi+b>0;若yi=-1,则有wTxi+b<0。令
(2)
欲找到有最大间隔的超平面,也就是要找到满足式(2)中的参数w和b,使得间隔γ最大,即:
(3)
s.t.yi(wTxi+b)≥1,i=1,2,…,m
为了求解式(3),需要将其转化为“对偶问题”,用拉格朗日乘法求解,则该问题的拉格朗日函数为:
(4)
式中:αi≥0且α=(α1;α2;…;αm)。令L(w,b,α)对w和b的偏导为零可得:
(5)
(6)
通过求解,得到该模型为:
(7)
假设样本出现了非线性数据,需要通过非线性映射φ(x)投影到高维空间。分离超平面在高维空间中所对应的模型表示为:
f(x)=wTφ(x)+b
(8)
为了避免高维运算,引入核函数:
K(xi,xj)=(φ(xi),φ(xj))=φ(xi)Tφ(xj)
(9)
通过核函数计算可得:
(10)
因此,SVM在对数据进行分类时,无论线性还是非线性,SVM都可以将其有效转化,进而高效准确地对数据分类。
运用正常数据和故障对SVM进行训练,获得权重向量w和位移b。建立模型之后,SVM能学习正常数据和故障数据的特性,从而将数据正确分类。将测试数据输入模型,通过超平面的划分,正常数据划分成一类,定义为标签0;故障数据划分成另一类,定义为标签1。
1.2 基于密度空间SVM的多工况过程故障检测
PCA、KPCA和SVM算法适用于单工况的过程故障检测,然而工业过程通常包含多个工况,如果这些算法直接应用于多工况过程,其监视和检测性能就会下降。为了改进多工况过程故障检测性能,本文首先利用局部概率密度方法[12-13]将多工况数据处理成单工况数据,然后应用SVM进行过程监视与检测。基于密度空间SVM的多工况过程故障检测具体步骤如下:
(1) 收集正常运行的历史数据集:
X=[x1,x2,…,xm]T∈Rm×n
(2) 对历史数据集X标准化后得到矩阵X1。
(3) 运用式(11)计算X1的局部概率密度矩阵。
(11)
(4) 运用正常和故障数据训练SVM模型获得权重向量和位移,然后把测试数据送入SVM进行分类。
2 仿真结果与分析
2.1 TE多工况过程
Tennessee Esatman(TE)过程仿真平台已成为国际上通用的工业过程模型仿真平台[14-17],在故障检测和诊断领域被国内外学者广泛使用。TE过程变量非常多,其工业过程也很复杂,其中2个气液放热反应会产生2种主产品,此外,还与5个主要操作单元等共同组成TE过程。TE过程模拟有21种预编程故障,丰富多样的故障类型能够真实反映实际工业工程中的众多问题。改变该过程中产物G和H的比例,可以对其进行各种操作模式。由于多工况过程具有不稳定性,受各种变量影响较大,所以采用多种控制策略来解决该问题。本文采用的是分散控制,由Ricker提出,可从文献[18]提供的网站上下载其仿真代码。本文只对该过程中的工况1和工况3进行研究。
2.2 仿真结果
PCA和KPCA中的1 200个训练数据样本是从TE过程的工况1和工况3中选取的,此外,还需选取400个正常数据作为校验数据。由于SVM模型需要训练,故选取800个故障数据和400个正常数据作为SVM的训练数据。选取工况1和工况3中的故障1-故障5、故障7-故障10为测试故障类型。测试故障数据集是在工况1和工况3中每个故障类型下各选取400个样本组成。对TE多工况过程的9个故障,运用局部概率密度进行预处理,并使用PCA、KPCA和SVM算法分别对测试数据进行故障检测。
表1表示TE多工况过程中影响每个故障的主要变量。使用PCA进行降维,通过SPE贡献图得出每个故障的主要影响变量。根据相关变量,可以分析每个故障产生的原因。
表1 每个故障的主要影响变量
图1是正常数据和故障1中变量48的序列图。可以看出,变量48在测试数据集中有明显的阶跃型变化,对这种明显的故障变化,PCA和KPCA很容易检测出来。图2为3种算法对校验数据和故障1的检测效果图,其中PCA和KPCA的故障检测率都为100%,具有非常好的检测效果。采用SVM方法对校验和故障数据进行分类,若分类标签为0,则表示正常数据;反之,若分类标签为1,则为故障数据。就大多数故障数据而言,SVM能够正确地对其进行分类且故障检测率为98.12%,检测效果与PCA和KPCA相似。在故障1的检测中,PCA和KPCA统计量比SVM更敏感。对于变量变化比较明显的故障,许多方法故障检测都很好。
图1 故障1中变量48
(a) SPE-PCA (b) T2-PCA
图3为正常数据和故障4中变量1的序列图,其图中故障数据的波动范围略大于正常数据,属于微小型故障。图4为3种方法对校验数据和故障4的检测图。由于故障数据波动范围略大于正常数据,PCA和KPCA对该类故障检测不敏感,因此检测效果非常差,故障检测率也仅有41.5%和11.63%。SVM对该故障的故障检测率为97.75%,由于训练数据集中包含故障样本,SVM模型在训练时会学习到该种故障的变化并将其正确分类,因此,SVM模型对故障样本的分类准确性高于PCA和KPCA。
图3 故障4中变量1
(a) SPE-PCA (b) T2-PCA
图5为正常数据和故障9中变量18的序列图。故障9的变量18属于脉冲型故障,波动范围明显大于正常数据集。正常数据的波动范围在0.2至1.2之间,而故障发生时数据波动范围在0至1.6之间。图6为3种方法对校验数据和故障9的检测图。分析可知,PCA在检测故障时,SPE统计量的波动幅度较大,部分数据未超出99%控制限,故障检测率为68%,而KPCA的SPE检测指标的故障检测率为100%,相比之下,KPCA算法更适合于该故障的检测,检测效果更好。KPCA通过核函数将将低维空间的数据投影到高维空间上,对这种变化的特征提取效果好。SVM的故障检测率为95.25%,对于大部分数据都能做到正确分类,而有些数据不能正确区分的主要原因是特征提取不够有效和合理,使得SVM分类不能很好地识别故障的特征。因此,与KPCA方法相比,SVM的故障检测率较低。
图5 故障9中变量18
(a) SPE-PCA (b) T2-PCA
对TE多工况过程的9种故障,运用误报率和故障检测率来衡量算法的优越性。表2是3种算法对校验数据的检测结果对比。可以看出,KPCA的T2指标的误报率最低,SVM的误报率低于PCA和KPCA的SPE指标,高于KPCA的T2指标,但是SVM的误报率是可以接受的。表3是3种算法对故障数据的检测率结果对比。通过表3可知,对故障1、故障2和故障7,PCA的检测效果优于KPCA和SVM。对故障9和故障10,KPCA的检测效果优于PCA和SVM。SVM对故障3-故障5和故障8的故障检测率要明显高于PCA和KPCA。SVM的平均故障检测率最高,这表明SVM具有较强的鲁棒性和泛化能力。综上所述,不同算法适用于不同类型的故障。
表2 三种算法的校验数据检测结果对比
表3 三种算法的故障检测结果对比(%)
3 结 语
本文提出一种基于密度空间支持向量机的多工况过程故障检测方法。引入局部概率密度函数将多工况数据转化为单工况数据,消除多工况和非高斯特性。在此基础上运用PCA、KPCA和SVM分别进行故障检测。在实际的TE多工况工业数据中,运用本文方法对该过程进行监视和检测,由仿真结果可知,3种算法分别适用于不同的故障类型,在平均故障检测率上SVM的检测效果更好,验证了SVM的有效性以及独特优越性。