郭金玉 李 濤 李 元
(沈陽(yáng)化工大學(xué)信息工程學(xué)院 遼寧 沈陽(yáng) 110142)
在大數(shù)據(jù)背景下工業(yè)智能化時(shí)代已經(jīng)到來(lái),對(duì)于復(fù)雜工業(yè)過(guò)程而言,故障及時(shí)有效的診斷不僅關(guān)乎工業(yè)企業(yè)的經(jīng)濟(jì)利益,也關(guān)乎到工廠工人的生命安全,因此,對(duì)工業(yè)背景下的故障診斷也提出了更高的要求。在工業(yè)過(guò)程領(lǐng)域,故障診斷與檢測(cè)是生產(chǎn)過(guò)程的重要環(huán)節(jié),為了有效提高控制系統(tǒng)故障檢測(cè)性能,基于數(shù)據(jù)驅(qū)動(dòng)的檢測(cè)方法被國(guó)內(nèi)外學(xué)者深入研究和應(yīng)用。由于該方法只需要在實(shí)際工業(yè)生產(chǎn)過(guò)程中獲取歷史數(shù)據(jù),通過(guò)數(shù)據(jù)建立監(jiān)測(cè)模型,從而得到了廣泛的關(guān)注。
工業(yè)生產(chǎn)技術(shù)水平不斷發(fā)展的今天,國(guó)內(nèi)外學(xué)者對(duì)故障診斷和故障檢測(cè)技術(shù)的研究越來(lái)越深入,多元統(tǒng)計(jì)分析以其獨(dú)特的優(yōu)勢(shì)被廣泛認(rèn)可。主元分析(Principal Component Analysis,PCA)作為工業(yè)過(guò)程中對(duì)故障進(jìn)行診斷和檢測(cè)的最基礎(chǔ)手段,一直發(fā)揮著重要作用,被廣泛應(yīng)用在多種場(chǎng)景,同時(shí)也衍生出多種新的故障檢測(cè)方法[1-7]。PCA作為多元統(tǒng)計(jì)分析方法的一種,處理的數(shù)據(jù)需要滿足高斯、線性分布的前提假設(shè)。PCA通過(guò)求得主元變量,將大量且復(fù)雜的數(shù)據(jù)投影到低維空間,保留主要數(shù)據(jù),降低維數(shù),方便計(jì)算,從而得到主元模型和統(tǒng)計(jì)控制限。由于算法自身在處理非線性時(shí)存在不足,導(dǎo)致檢測(cè)結(jié)果不佳。為了改善PCA的不足,核主元分析(Kernel Principal Component Analysis,KPCA)[8]被提出,在一定程度上擴(kuò)大了PCA的使用范圍。對(duì)非線性數(shù)據(jù),KPCA中核函數(shù)的優(yōu)勢(shì)就體現(xiàn)出來(lái)了,在低維空間中,樣本分布呈現(xiàn)非線性,無(wú)法對(duì)其處理,需將數(shù)據(jù)映射到高維空間,去除數(shù)據(jù)非線性,然后運(yùn)用PCA進(jìn)行降維。由于KPCA魯棒性較差,泛化能力不強(qiáng),在解決多工況問(wèn)題方面仍存在局限性。
支持向量機(jī)(Support Vector Machines,SVM)[9-10]以其穩(wěn)健的數(shù)學(xué)基礎(chǔ)、強(qiáng)大的泛化能力和解決各種分類問(wèn)題方面的諸多優(yōu)勢(shì)使其成為機(jī)器學(xué)習(xí)中的經(jīng)典算法。早在1999年,支持向量機(jī)便由Vapnik提出[11],后因被國(guó)內(nèi)外學(xué)者廣泛研究學(xué)習(xí)而發(fā)展起來(lái)。SVM在進(jìn)行分類任務(wù)時(shí)具有獨(dú)特的優(yōu)勢(shì),這使其成為機(jī)器學(xué)習(xí)的主流技術(shù)。在處理多工況過(guò)程時(shí),數(shù)據(jù)會(huì)出現(xiàn)非高斯性等問(wèn)題,本文將多工況問(wèn)題轉(zhuǎn)換為單工況問(wèn)題。為了使多工況數(shù)據(jù)變成單工況,并且使其近似服從高斯分布,達(dá)到滿意的檢測(cè)效果,本文結(jié)合局部概率密度方法,運(yùn)用支持向量機(jī)算法對(duì)多工況過(guò)程進(jìn)行過(guò)程監(jiān)視。本文嘗試將魯棒性較好的SVM的分類特性用在故障診斷中,達(dá)到分離正常樣本和故障樣本的目的,從而提高過(guò)程監(jiān)視性能的目的。
SVM方法在解決數(shù)據(jù)集規(guī)模相對(duì)較小或樣本非線性問(wèn)題方面具有許多優(yōu)點(diǎn)。SVM算法在面對(duì)多工況過(guò)程時(shí),往往會(huì)面臨著眾多非線性數(shù)據(jù),由于非線性數(shù)據(jù)無(wú)法處理,需要將其投影到高維空間,去除數(shù)據(jù)非線性,建造最大分離超平面,使得數(shù)據(jù)能夠進(jìn)行有效分類。由于分離平面是基于支持向量構(gòu)造的,所以SVM是解決高維問(wèn)題的一種很好的解決方案。同時(shí)引入內(nèi)核函數(shù)代替非線性映射,也避免了許多未解決的問(wèn)題。
給定一個(gè)訓(xùn)練樣本集,該訓(xùn)練樣本集可表示為D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{-1,+1},在該樣本訓(xùn)練集空間中找到一個(gè)最大分離超平面,把類別不同的樣本有效分開(kāi),這是分類學(xué)習(xí)最基本的思想。分離給定數(shù)據(jù)分類的超平面如下:
wTx+b=0
(1)
式中:w=(w1;w2;…;wd)是權(quán)重向量;b是位移項(xiàng)。
假如超平面(w,b)能將訓(xùn)練樣本正確分類,那么對(duì)于(xi,yi)∈D,若yi=+1,則有wTxi+b>0;若yi=-1,則有wTxi+b<0。令
(2)
欲找到有最大間隔的超平面,也就是要找到滿足式(2)中的參數(shù)w和b,使得間隔γ最大,即:
(3)
s.t.yi(wTxi+b)≥1,i=1,2,…,m
為了求解式(3),需要將其轉(zhuǎn)化為“對(duì)偶問(wèn)題”,用拉格朗日乘法求解,則該問(wèn)題的拉格朗日函數(shù)為:
(4)
式中:αi≥0且α=(α1;α2;…;αm)。令L(w,b,α)對(duì)w和b的偏導(dǎo)為零可得:
(5)
(6)
通過(guò)求解,得到該模型為:
(7)
假設(shè)樣本出現(xiàn)了非線性數(shù)據(jù),需要通過(guò)非線性映射φ(x)投影到高維空間。分離超平面在高維空間中所對(duì)應(yīng)的模型表示為:
f(x)=wTφ(x)+b
(8)
為了避免高維運(yùn)算,引入核函數(shù):
K(xi,xj)=(φ(xi),φ(xj))=φ(xi)Tφ(xj)
(9)
通過(guò)核函數(shù)計(jì)算可得:
(10)
因此,SVM在對(duì)數(shù)據(jù)進(jìn)行分類時(shí),無(wú)論線性還是非線性,SVM都可以將其有效轉(zhuǎn)化,進(jìn)而高效準(zhǔn)確地對(duì)數(shù)據(jù)分類。
運(yùn)用正常數(shù)據(jù)和故障對(duì)SVM進(jìn)行訓(xùn)練,獲得權(quán)重向量w和位移b。建立模型之后,SVM能學(xué)習(xí)正常數(shù)據(jù)和故障數(shù)據(jù)的特性,從而將數(shù)據(jù)正確分類。將測(cè)試數(shù)據(jù)輸入模型,通過(guò)超平面的劃分,正常數(shù)據(jù)劃分成一類,定義為標(biāo)簽0;故障數(shù)據(jù)劃分成另一類,定義為標(biāo)簽1。
PCA、KPCA和SVM算法適用于單工況的過(guò)程故障檢測(cè),然而工業(yè)過(guò)程通常包含多個(gè)工況,如果這些算法直接應(yīng)用于多工況過(guò)程,其監(jiān)視和檢測(cè)性能就會(huì)下降。為了改進(jìn)多工況過(guò)程故障檢測(cè)性能,本文首先利用局部概率密度方法[12-13]將多工況數(shù)據(jù)處理成單工況數(shù)據(jù),然后應(yīng)用SVM進(jìn)行過(guò)程監(jiān)視與檢測(cè)?;诿芏瓤臻gSVM的多工況過(guò)程故障檢測(cè)具體步驟如下:
(1) 收集正常運(yùn)行的歷史數(shù)據(jù)集:
X=[x1,x2,…,xm]T∈Rm×n
(2) 對(duì)歷史數(shù)據(jù)集X標(biāo)準(zhǔn)化后得到矩陣X1。
(3) 運(yùn)用式(11)計(jì)算X1的局部概率密度矩陣。
(11)
(4) 運(yùn)用正常和故障數(shù)據(jù)訓(xùn)練SVM模型獲得權(quán)重向量和位移,然后把測(cè)試數(shù)據(jù)送入SVM進(jìn)行分類。
Tennessee Esatman(TE)過(guò)程仿真平臺(tái)已成為國(guó)際上通用的工業(yè)過(guò)程模型仿真平臺(tái)[14-17],在故障檢測(cè)和診斷領(lǐng)域被國(guó)內(nèi)外學(xué)者廣泛使用。TE過(guò)程變量非常多,其工業(yè)過(guò)程也很復(fù)雜,其中2個(gè)氣液放熱反應(yīng)會(huì)產(chǎn)生2種主產(chǎn)品,此外,還與5個(gè)主要操作單元等共同組成TE過(guò)程。TE過(guò)程模擬有21種預(yù)編程故障,豐富多樣的故障類型能夠真實(shí)反映實(shí)際工業(yè)工程中的眾多問(wèn)題。改變?cè)撨^(guò)程中產(chǎn)物G和H的比例,可以對(duì)其進(jìn)行各種操作模式。由于多工況過(guò)程具有不穩(wěn)定性,受各種變量影響較大,所以采用多種控制策略來(lái)解決該問(wèn)題。本文采用的是分散控制,由Ricker提出,可從文獻(xiàn)[18]提供的網(wǎng)站上下載其仿真代碼。本文只對(duì)該過(guò)程中的工況1和工況3進(jìn)行研究。
PCA和KPCA中的1 200個(gè)訓(xùn)練數(shù)據(jù)樣本是從TE過(guò)程的工況1和工況3中選取的,此外,還需選取400個(gè)正常數(shù)據(jù)作為校驗(yàn)數(shù)據(jù)。由于SVM模型需要訓(xùn)練,故選取800個(gè)故障數(shù)據(jù)和400個(gè)正常數(shù)據(jù)作為SVM的訓(xùn)練數(shù)據(jù)。選取工況1和工況3中的故障1-故障5、故障7-故障10為測(cè)試故障類型。測(cè)試故障數(shù)據(jù)集是在工況1和工況3中每個(gè)故障類型下各選取400個(gè)樣本組成。對(duì)TE多工況過(guò)程的9個(gè)故障,運(yùn)用局部概率密度進(jìn)行預(yù)處理,并使用PCA、KPCA和SVM算法分別對(duì)測(cè)試數(shù)據(jù)進(jìn)行故障檢測(cè)。
表1表示TE多工況過(guò)程中影響每個(gè)故障的主要變量。使用PCA進(jìn)行降維,通過(guò)SPE貢獻(xiàn)圖得出每個(gè)故障的主要影響變量。根據(jù)相關(guān)變量,可以分析每個(gè)故障產(chǎn)生的原因。
表1 每個(gè)故障的主要影響變量
圖1是正常數(shù)據(jù)和故障1中變量48的序列圖。可以看出,變量48在測(cè)試數(shù)據(jù)集中有明顯的階躍型變化,對(duì)這種明顯的故障變化,PCA和KPCA很容易檢測(cè)出來(lái)。圖2為3種算法對(duì)校驗(yàn)數(shù)據(jù)和故障1的檢測(cè)效果圖,其中PCA和KPCA的故障檢測(cè)率都為100%,具有非常好的檢測(cè)效果。采用SVM方法對(duì)校驗(yàn)和故障數(shù)據(jù)進(jìn)行分類,若分類標(biāo)簽為0,則表示正常數(shù)據(jù);反之,若分類標(biāo)簽為1,則為故障數(shù)據(jù)。就大多數(shù)故障數(shù)據(jù)而言,SVM能夠正確地對(duì)其進(jìn)行分類且故障檢測(cè)率為98.12%,檢測(cè)效果與PCA和KPCA相似。在故障1的檢測(cè)中,PCA和KPCA統(tǒng)計(jì)量比SVM更敏感。對(duì)于變量變化比較明顯的故障,許多方法故障檢測(cè)都很好。
圖1 故障1中變量48
(a) SPE-PCA (b) T2-PCA
圖3為正常數(shù)據(jù)和故障4中變量1的序列圖,其圖中故障數(shù)據(jù)的波動(dòng)范圍略大于正常數(shù)據(jù),屬于微小型故障。圖4為3種方法對(duì)校驗(yàn)數(shù)據(jù)和故障4的檢測(cè)圖。由于故障數(shù)據(jù)波動(dòng)范圍略大于正常數(shù)據(jù),PCA和KPCA對(duì)該類故障檢測(cè)不敏感,因此檢測(cè)效果非常差,故障檢測(cè)率也僅有41.5%和11.63%。SVM對(duì)該故障的故障檢測(cè)率為97.75%,由于訓(xùn)練數(shù)據(jù)集中包含故障樣本,SVM模型在訓(xùn)練時(shí)會(huì)學(xué)習(xí)到該種故障的變化并將其正確分類,因此,SVM模型對(duì)故障樣本的分類準(zhǔn)確性高于PCA和KPCA。
圖3 故障4中變量1
(a) SPE-PCA (b) T2-PCA
圖5為正常數(shù)據(jù)和故障9中變量18的序列圖。故障9的變量18屬于脈沖型故障,波動(dòng)范圍明顯大于正常數(shù)據(jù)集。正常數(shù)據(jù)的波動(dòng)范圍在0.2至1.2之間,而故障發(fā)生時(shí)數(shù)據(jù)波動(dòng)范圍在0至1.6之間。圖6為3種方法對(duì)校驗(yàn)數(shù)據(jù)和故障9的檢測(cè)圖。分析可知,PCA在檢測(cè)故障時(shí),SPE統(tǒng)計(jì)量的波動(dòng)幅度較大,部分?jǐn)?shù)據(jù)未超出99%控制限,故障檢測(cè)率為68%,而KPCA的SPE檢測(cè)指標(biāo)的故障檢測(cè)率為100%,相比之下,KPCA算法更適合于該故障的檢測(cè),檢測(cè)效果更好。KPCA通過(guò)核函數(shù)將將低維空間的數(shù)據(jù)投影到高維空間上,對(duì)這種變化的特征提取效果好。SVM的故障檢測(cè)率為95.25%,對(duì)于大部分?jǐn)?shù)據(jù)都能做到正確分類,而有些數(shù)據(jù)不能正確區(qū)分的主要原因是特征提取不夠有效和合理,使得SVM分類不能很好地識(shí)別故障的特征。因此,與KPCA方法相比,SVM的故障檢測(cè)率較低。
圖5 故障9中變量18
(a) SPE-PCA (b) T2-PCA
對(duì)TE多工況過(guò)程的9種故障,運(yùn)用誤報(bào)率和故障檢測(cè)率來(lái)衡量算法的優(yōu)越性。表2是3種算法對(duì)校驗(yàn)數(shù)據(jù)的檢測(cè)結(jié)果對(duì)比。可以看出,KPCA的T2指標(biāo)的誤報(bào)率最低,SVM的誤報(bào)率低于PCA和KPCA的SPE指標(biāo),高于KPCA的T2指標(biāo),但是SVM的誤報(bào)率是可以接受的。表3是3種算法對(duì)故障數(shù)據(jù)的檢測(cè)率結(jié)果對(duì)比。通過(guò)表3可知,對(duì)故障1、故障2和故障7,PCA的檢測(cè)效果優(yōu)于KPCA和SVM。對(duì)故障9和故障10,KPCA的檢測(cè)效果優(yōu)于PCA和SVM。SVM對(duì)故障3-故障5和故障8的故障檢測(cè)率要明顯高于PCA和KPCA。SVM的平均故障檢測(cè)率最高,這表明SVM具有較強(qiáng)的魯棒性和泛化能力。綜上所述,不同算法適用于不同類型的故障。
表2 三種算法的校驗(yàn)數(shù)據(jù)檢測(cè)結(jié)果對(duì)比
表3 三種算法的故障檢測(cè)結(jié)果對(duì)比(%)
本文提出一種基于密度空間支持向量機(jī)的多工況過(guò)程故障檢測(cè)方法。引入局部概率密度函數(shù)將多工況數(shù)據(jù)轉(zhuǎn)化為單工況數(shù)據(jù),消除多工況和非高斯特性。在此基礎(chǔ)上運(yùn)用PCA、KPCA和SVM分別進(jìn)行故障檢測(cè)。在實(shí)際的TE多工況工業(yè)數(shù)據(jù)中,運(yùn)用本文方法對(duì)該過(guò)程進(jìn)行監(jiān)視和檢測(cè),由仿真結(jié)果可知,3種算法分別適用于不同的故障類型,在平均故障檢測(cè)率上SVM的檢測(cè)效果更好,驗(yàn)證了SVM的有效性以及獨(dú)特優(yōu)越性。