孫宏雨,李 元
(沈陽化工大學(xué)信息工程學(xué)院,遼寧 沈陽 110142)
隨著時代進(jìn)步和科技發(fā)展,工業(yè)生產(chǎn)過程中的技術(shù)和產(chǎn)品不斷更新,使人們對工業(yè)過程的安全性和可靠性要求越來越高。一旦在工業(yè)過程中發(fā)生故障,將會造成不可估計的財產(chǎn)損失和人員傷亡。因此,對故障檢測與診斷方法的研究具有重要意義[1-2]。主成分分析(principal component analysis,PCA)作為一種基于多元統(tǒng)計的檢測方法,歷經(jīng)多年發(fā)展,已經(jīng)較為成熟并且被廣泛應(yīng)用[3]。PCA能夠提取原始數(shù)據(jù)主要特征并建立統(tǒng)計模型,以T2和平方預(yù)測誤差(squared prediction error,SPE)(也稱Q統(tǒng)計量)作為統(tǒng)計量,對工業(yè)過程進(jìn)行監(jiān)控[4]。由于化工過程中產(chǎn)生的數(shù)據(jù)具有非線性、多模態(tài)等特性,PCA并不能很好地處理。針對非線性問題,Wang等[5]利用局部化方法提出非線性PCA模型。
針對數(shù)據(jù)存在的隨機(jī)性以及噪聲影響,Tipping等[6]提出了概率PCA模型。但當(dāng)數(shù)據(jù)有多個模態(tài)時,概率PCA中使用的Z-score標(biāo)準(zhǔn)化方法就受到了限制。因為Z-score方法運用的是基于所有樣本數(shù)據(jù)的均值和標(biāo)準(zhǔn)差,所以在處理多模態(tài)數(shù)據(jù)時,概率PCA不能準(zhǔn)確地進(jìn)行故障檢測[7]。針對多模態(tài)問題,He[8]提出了一種基于K近鄰的故障檢測方法。該方法的故障檢測指標(biāo)為局部距離之和D2,有效降低了多模態(tài)的影響。但當(dāng)模態(tài)間方差差異較大時,該方法檢測能力較弱。李等[9]提出了基于K均值聚類與局部離群因子算法的故障檢測研究。該研究通過K均值聚類方法將多模態(tài)數(shù)據(jù)中各個模態(tài)的數(shù)據(jù)單獨分離出來,再按類別分別建立模型進(jìn)行故障檢測。但當(dāng)多模態(tài)數(shù)據(jù)密度差異較大時,其聚類效果并不理想。
目前,聚類分析在圖像處理[10]、醫(yī)學(xué)科學(xué)[11]、汽車制造檢測[12]等領(lǐng)域得到了廣泛的應(yīng)用。模糊C均值(fuzzy C-means,FCM)聚類算法于1973年由Bezdek[13]提出。相比于K均值的硬聚類方式,F(xiàn)CM引入了模糊理念,為計算過程提供了加權(quán)思想,使聚類結(jié)果更加靈活。而且在大部分情況下,數(shù)據(jù)集中的對象不能劃分成為明顯分離的類,指派一個對象到一個特定的類很容易出錯。FCM算法的基本思想是通過將測試數(shù)據(jù)分成k類,計算每個樣本的隸屬度,并以隸屬度使測試數(shù)據(jù)隸屬于C個數(shù)據(jù)中心。FCM通過不斷計算、更新隸屬度矩陣和聚類中心達(dá)到動態(tài)聚類,以實現(xiàn)目標(biāo)函數(shù)最小為目的。FCM可以把一個數(shù)據(jù)集合分解成若干個子集,根據(jù)判定規(guī)則使每個子集內(nèi)部的數(shù)據(jù)具有一定的相似性,不同子集之間具有盡可能大的相異性。
根據(jù)以上分析,本文提出一種基于FCM-PCA的故障檢測方法。首先,通過FCM,按模態(tài)對具有多模態(tài)特性的訓(xùn)練樣本進(jìn)行分類;然后,在每個模態(tài)子集下單獨建立PCA模型。檢測時,首先將待測樣本通過FCM聚類進(jìn)行模態(tài)劃分,找到所屬模態(tài)子集;然后應(yīng)用該模態(tài)子集所建立的模型進(jìn)行故障檢測。
假設(shè)數(shù)據(jù)集X={x1,x2,...,xn}。其中,n為樣本個數(shù)。應(yīng)用FCM將訓(xùn)練數(shù)據(jù)劃分為k類,其中2≤k≤n。針對每個樣本,建立隸屬度矩陣U=(Uij)k×n和聚類中心矩陣C=(c1,c2,…,ck)。其中:c1,c2,...,ck為k個數(shù)據(jù)中心;Uij為第j個樣本數(shù)據(jù)隸屬于第i類的隸屬度。
隸屬度表示數(shù)據(jù)點屬于每個類的可能性,取值范圍為0~1。限制條件為:
0≤Uij≤1
(1)
(2)
式中:Uij為第j個樣本數(shù)據(jù)隸屬于第i類的隸屬度;j為樣本數(shù)。
FCM聚類算法目標(biāo)函數(shù)為:
(3)
聚類依據(jù)某些標(biāo)準(zhǔn)對數(shù)據(jù)集分類。具有較高相似性的數(shù)據(jù)在同一簇內(nèi)。簇之間具有較高差異性。采用拉格朗日乘子法求取目標(biāo)函數(shù)J的極值。
(4)
當(dāng)目標(biāo)函數(shù)最小時,隸屬度函數(shù)Uij以及聚類中心ci的表達(dá)式為:
(5)
(6)
FCM算法的步驟如下。
①初始化滿足約束條件(2)的隸屬度矩陣,根據(jù)式(6)計算聚類中心矩陣。
②將得到的聚類中心矩陣作為輸入,根據(jù)式(5)計算隸屬度矩陣,并根據(jù)式(4)計算目標(biāo)函數(shù)J的值,如此循環(huán)迭代。
③當(dāng)?shù)螖?shù)達(dá)到所設(shè)定的次數(shù)或連續(xù)前后兩次差值小于所設(shè)定的閾值時,目標(biāo)函數(shù)達(dá)到極小值,迭代終止;否則,重復(fù)步驟②。
PCA能夠使原本數(shù)據(jù)結(jié)構(gòu)分布得到最大限度的保留,并在最小均方條件下將原始特征向具有最大投影信息量的維度上投影,從而在特征空間中實現(xiàn)數(shù)據(jù)特征提取。PCA主要算法原理如下。
假設(shè)數(shù)據(jù)集X有m個樣本。每個樣本存在n個變量。數(shù)據(jù)X如下所示:
(7)
對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。PCA所采用的標(biāo)準(zhǔn)化方式為Z-score標(biāo)準(zhǔn)化方法:
(8)
求協(xié)方差矩陣:
(9)
對式(8)求出的協(xié)方差矩陣進(jìn)行特征分解,得到特征值和相對應(yīng)的特征向量。將特征值從大到小排列,λ1≥λ2≥...≥λn≥0。其所對應(yīng)的特征向量分別為[u1,u2,…,un]。
計算主成分:
Zk=(uk)Txmean
(10)
(11)
式中:Zk為第k個主成分;Vk為第i個主成分的方差貢獻(xiàn)率。
本文中,主元個數(shù)的選取為:將特征值從大到小排序后,根據(jù)累計方差貢獻(xiàn)率確定前k列作為主元,并組成矩陣P。
降維到k維后的數(shù)據(jù)為:
Y=P×X
(12)
計算統(tǒng)計量T2和Q:
(13)
(14)
PCA方法要求數(shù)據(jù)服從單一模態(tài)高斯分布。但很多化工過程中都存在著多工況的情況,導(dǎo)致采集到的數(shù)據(jù)是具有多模態(tài)特性的。在這種情況下,PCA方法就不能很好地處理具有多模態(tài)特性的數(shù)據(jù)。
FCM-PCA可以有效地處理數(shù)據(jù)具有多模態(tài)特性的問題。首先,使用FCM按模態(tài)劃分多模態(tài)數(shù)據(jù),使每個模態(tài)子集服從高斯分布;然后,在每個模態(tài)下運用PCA進(jìn)行故障檢測。這種方法可以有效減小多模態(tài)特性的影響,提高檢測準(zhǔn)確率。FCM-PCA故障檢測方法主要由建立模型和故障檢測兩部分組成,步驟如下。
使用正常樣本數(shù)據(jù)經(jīng)過處理后,建立PCA模型并計算統(tǒng)計量和控制限。具體步驟如下。
①采集正常運行下的樣本數(shù)據(jù)集X。
②選擇聚類數(shù)目K與隸屬度權(quán)重因子m。
③利用FCM聚類對數(shù)據(jù)集進(jìn)行聚類,并為每一類貼上標(biāo)簽。數(shù)據(jù)集由此分成n個子集,即M1,M2,...,Mn。
④構(gòu)建PCA模型。
⑥使用核密度估計法計算出每個子集下的控制限。
測試樣本xnew經(jīng)過處理后,使用已經(jīng)建立的PCA模型對其進(jìn)行故障檢測,以判斷其是否為故障樣本。故障檢測具體步驟如下。
①對測試數(shù)據(jù)進(jìn)行FCM聚類。根據(jù)聚類后的聚類中心與訓(xùn)練數(shù)據(jù)聚類中心之間的距離對比結(jié)果,將分類后所貼標(biāo)簽與訓(xùn)練集所貼標(biāo)簽一一對應(yīng),找到所屬類別。
②按數(shù)據(jù)標(biāo)簽將數(shù)據(jù)分成多個子集,并提取每個子集數(shù)據(jù)。
③通過已經(jīng)建立的PCA模型,對每個子集中的數(shù)據(jù)進(jìn)行故障檢測。
本文將基于FCM-PCA的故障檢測方法應(yīng)用于多元線性數(shù)值例子,說明該方法的優(yōu)點,并將其結(jié)果與基于PCA的故障檢測方法的結(jié)果進(jìn)行對比。數(shù)值例子如下。
(15)
式中:e1~e5為滿足均值為0、方差為0.1的正態(tài)分布的獨立噪聲;S1、S2為系統(tǒng)控制變量,可通過設(shè)置S1、S2不同分布來產(chǎn)生多模態(tài)數(shù)據(jù)。
S1、S2兩模態(tài)分布如下。
(16)
(17)
通過仿真生成的1 000個樣本組成訓(xùn)練集進(jìn)行建模。每個模態(tài)各存在500個樣本,同時各生成200個正常樣本和300個故障樣本作為測試集。故障為在x2的第201~500個樣本上發(fā)生0.13(i-200)的斜坡故障,在x5第701~1 000個樣本上發(fā)生幅值為45%的階躍故障。本文通過使用PCA和FCM-PCA對上述數(shù)值例子進(jìn)行故障檢測,通過85%貢獻(xiàn)率確定兩種方法的主元個數(shù)均為1。
本文提出的方法首先將數(shù)據(jù)聚類,并在每一類下單獨建立模型。原始數(shù)據(jù)聚類前后以及測試數(shù)據(jù)聚類前后的散點圖分別如圖1、圖2所示。
圖1 原始數(shù)據(jù)聚類前后散點圖
圖2 測試數(shù)據(jù)聚類前后散點圖
由圖1、圖2可知,F(xiàn)CM可以很好地對多模態(tài)數(shù)據(jù)進(jìn)行聚類,并且具有很高的準(zhǔn)確率。通過FCM對模態(tài)的劃分,可以有效幫助PCA在每個模態(tài)下進(jìn)行故障檢測。
PCA與FCM-PCA兩種方法對數(shù)值例子的故障檢測結(jié)果如圖3所示。
圖3 兩種方法對數(shù)值例子的故障檢測結(jié)果
PCA對多模態(tài)數(shù)據(jù)整體建立模型時,在高維空間中T2控制限近似于超橢球面,而Q控制限近似于超球面。這導(dǎo)致球面內(nèi)錯誤的包含了一部分故障區(qū)域。由于模態(tài)1發(fā)生的是斜坡故障,故障樣本遠(yuǎn)離多模態(tài)數(shù)據(jù)中心且持續(xù)時間較長,所以PCA可以有效地進(jìn)行檢測。模態(tài)2中發(fā)生的是階躍故障,且故障幅度較小,因此PCA模型會錯誤地將故障點包裹在內(nèi),從而無法有效地進(jìn)行檢測。FCM-PCA方法通過將樣本聚類為若干個子集,并對每個子集建立獨立的PCA模型,將故障樣本排除在超橢球面外部,具有良好的檢測能力。對數(shù)值例子的故障檢測說明PCA不能很好地處理多模態(tài)問題,而FCM-PCA先對數(shù)據(jù)進(jìn)行模態(tài)劃分再進(jìn)行故障檢測,可以有效地解決數(shù)據(jù)的多模態(tài)特性。因此,F(xiàn)CM-PCA具有較高的檢測率。
田納西-伊斯曼(Tennessee East-man,TE)過程是典型的復(fù)雜多變量化工過程。近年來,TE過程已經(jīng)在故障檢測研究領(lǐng)域得到了廣泛的應(yīng)用[14]。本節(jié)應(yīng)用試驗中的所有數(shù)據(jù)均來源于TE過程。
TE過程有1組正常過程數(shù)據(jù)和21組故障數(shù)據(jù)。故障數(shù)據(jù)分為4種類型[15]。每組數(shù)據(jù)集都包括52個觀測變量,分為41個過程變量和11個操縱變量。具體故障數(shù)據(jù)類型的描述如下。
故障1~7均為階躍變化類型:故障1和故障2分別為物料A/C進(jìn)料比改變、物料B含量不變和物料A/C進(jìn)料比不變、物料B含量改變;故障3為物料D進(jìn)料溫度改變;故障4、故障5分別為反應(yīng)器、冷凝器冷卻入口溫度改變;故障6、故障7分別為物料A進(jìn)料損失、物料C壓力損失。故障8~故障12為隨機(jī)變量變化類型:故障8為物料A、B、C的組成比例改變;故障9和故障10分別為物料D、物料C進(jìn)料溫度改變;故障11和故障12分別為反應(yīng)器、冷凝器冷卻水入口溫度改變。故障13為反應(yīng)動力學(xué)參數(shù)改變,屬于慢偏移變化類型。故障14和故障15為粘住變化類型,分別為反應(yīng)器、冷凝器冷卻閥門粘住。故障16~故障20為未知故障。故障21為物料4閥門固定在恒定位置,屬于恒定位置變化類型。
本文應(yīng)用試驗使用的為 TE 過程生產(chǎn)模式1和模式3,分別代表模態(tài)1和模態(tài)3。不同模式的生產(chǎn)過程需要使用不同的生產(chǎn)物G/H的比例。
將兩個模態(tài)混合使用,即訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的樣本數(shù)各為1 922個。其中:訓(xùn)練數(shù)據(jù)為系統(tǒng)正常運行情況下的所有正常樣本,包含各模態(tài)的961個正常數(shù)據(jù);測試數(shù)據(jù)包含各個模態(tài)的160個正常數(shù)據(jù)和對應(yīng)的801個故障數(shù)據(jù)樣本[16]。
TE過程生產(chǎn)模式如表1所示。
表1 TE過程生產(chǎn)模式
本文通過85%累計方差貢獻(xiàn)率確定主元個數(shù)。PCA方法所確定的主元個數(shù)為1;使用FCM-PCA方法對數(shù)據(jù)集進(jìn)行了聚類處理,將兩個模態(tài)分開確定主元個數(shù),所確定的主元個數(shù)分別為31和32個。該方法在降維的同時可以較好地描述數(shù)據(jù)信息。兩種方法的置信度設(shè)置為99%,經(jīng)過先驗知識及多次仿真試驗確定聚類數(shù)K為2以及隸屬度權(quán)重因子m為2。以下采用FCM-PCA對故障1~故障21進(jìn)行故障檢測。
訓(xùn)練集聚類結(jié)果以及測試數(shù)據(jù)聚類結(jié)果如圖4所示。
圖4 訓(xùn)練集及測試數(shù)據(jù)聚類結(jié)果
由圖4(a)可知,當(dāng)目標(biāo)函數(shù)收斂后聚類完成,可以很明顯地看出前961個樣本為一類、后961個樣本為另一類。這說明模糊C均值方法可以將各個模態(tài)的數(shù)據(jù)準(zhǔn)確貼標(biāo)簽。以故障1為例,圖4(b)即不斷更新隸屬度矩陣和聚類中心后各樣本的聚類結(jié)果。由圖4(b)可知,前961個樣本為一個類別、后961個為另一個類別,聚類結(jié)果與訓(xùn)練數(shù)據(jù)貼標(biāo)簽結(jié)果完全一致。
在訓(xùn)練集聚類以及測試樣本按模態(tài)聚類后,分別在各個模態(tài)下建立PCA模型,確定控制限,并對測試數(shù)據(jù)進(jìn)行故障檢測。對全部21種故障類型待測數(shù)據(jù)檢測,并且與只采用PCA算法進(jìn)行檢測的結(jié)果進(jìn)行對比分析。兩種方法的部分檢測率如表2所示。
表2 兩種方法部分故障檢測率匯總表
由表2可知:FCM-PCA的檢測率明顯高于PCA檢測方法。FCM-PCA與PCA針對故障1、故障4、故障6、故障8、故障11、故障13、故障20的檢測率較高,均高于80%。而對于故障2、故障7、故障10、故障14、故障17、故障18、故障19,PCA的檢測率都在80%以下,而FCM-PCA對于這7個故障的檢測率均在85%以上。由此可知,F(xiàn)CM-PCA的檢測率明顯更高,檢測能力優(yōu)于PCA。
在故障7中,物料C壓力損失,產(chǎn)生了一個階躍性變化,導(dǎo)致物料C含量偏離正常狀態(tài),從而發(fā)生故障。兩種方法對于故障7的檢測結(jié)果如圖5所示。由圖5(a)、圖5(b)可知,故障數(shù)據(jù)在第161個樣本到第961個樣本間大部分被檢測出,后800個大部分未被檢測出。圖5(c)、圖5(d)為聚類后在模態(tài)1、模態(tài)3下運用PCA的仿真結(jié)果,在第161個樣本后和第1 122個樣本后絕大部分故障數(shù)據(jù)都被檢測出來,F(xiàn)CM-PCA檢測率遠(yuǎn)大于PCA檢測率。多模態(tài)數(shù)據(jù)在經(jīng)過標(biāo)準(zhǔn)化后仍然具有多模態(tài)特性,因此PCA不能很好地建立模型。FCM-PCA會先將模態(tài)分開,再分別在每個模態(tài)下對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,消除了多個模態(tài)帶來的方差差異的影響,大大提升了故障檢測率。對比可知,F(xiàn)CM-PCA可以有效地處理具有多模態(tài)特性數(shù)據(jù)的故障檢測,故障檢測準(zhǔn)確率高于PCA。
圖5 兩種方法對故障7的檢測結(jié)果
兩種方法對故障14的檢測結(jié)果如圖6所示。
故障14為反應(yīng)器冷卻閥門粘住,擾亂系統(tǒng)的正常運行。由圖6(a)、圖6(b)可知,由于數(shù)據(jù)具有多模態(tài)特性且模態(tài)間方差存在較大差異,而使用PCA算法會根據(jù)整個多模態(tài)數(shù)據(jù)建立模型導(dǎo)致錯誤地包含一些故障數(shù)據(jù)。經(jīng)過聚類后,PCA算法在每一個分類后的子集中建立模型,消除了模態(tài)間方差差異,從而可以更好地進(jìn)行故障檢測。對比圖6(c)、圖6(d)可知,F(xiàn)CM-PCA將模態(tài)劃分后,在每個模態(tài)下單獨建立PCA模型,更準(zhǔn)確地描述了每個模態(tài)的數(shù)據(jù)信息。其檢測率遠(yuǎn)大于PCA方法的檢測率。
本文針對工業(yè)過程數(shù)據(jù)的多模態(tài)特性,提出了一種基于FCM-PCA的故障檢測方法。首先,使用FCM聚類算法將多模態(tài)劃分成各個模態(tài)子集;然后,使用PCA在每個子集下進(jìn)行故障檢測。本文將此方法應(yīng)用于TE過程的多模態(tài)數(shù)據(jù)中,并與PCA算法進(jìn)行比較。通過對多模態(tài)數(shù)據(jù)進(jìn)行聚類,消除了數(shù)據(jù)的多模態(tài)特性,使PCA模型建立在各個子集,從而有效降低了模態(tài)間方差差異對PCA帶來的影響,提高了檢測能力。試驗結(jié)果表明,F(xiàn)CM-PCA可以較好地處理多模態(tài)問題,實現(xiàn)多模態(tài)數(shù)據(jù)的準(zhǔn)確分類,提取各模態(tài)有用的信息進(jìn)行故障檢測,使故障檢測率明顯提升。研究結(jié)果充分證明了FCM-PCA方法用于故障檢測的有效性。