孫宏雨,李 元
(沈陽化工大學信息工程學院,遼寧 沈陽 110142)
隨著時代進步和科技發展,工業生產過程中的技術和產品不斷更新,使人們對工業過程的安全性和可靠性要求越來越高。一旦在工業過程中發生故障,將會造成不可估計的財產損失和人員傷亡。因此,對故障檢測與診斷方法的研究具有重要意義[1-2]。主成分分析(principal component analysis,PCA)作為一種基于多元統計的檢測方法,歷經多年發展,已經較為成熟并且被廣泛應用[3]。PCA能夠提取原始數據主要特征并建立統計模型,以T2和平方預測誤差(squared prediction error,SPE)(也稱Q統計量)作為統計量,對工業過程進行監控[4]。由于化工過程中產生的數據具有非線性、多模態等特性,PCA并不能很好地處理。針對非線性問題,Wang等[5]利用局部化方法提出非線性PCA模型。
針對數據存在的隨機性以及噪聲影響,Tipping等[6]提出了概率PCA模型。但當數據有多個模態時,概率PCA中使用的Z-score標準化方法就受到了限制。因為Z-score方法運用的是基于所有樣本數據的均值和標準差,所以在處理多模態數據時,概率PCA不能準確地進行故障檢測[7]。針對多模態問題,He[8]提出了一種基于K近鄰的故障檢測方法。該方法的故障檢測指標為局部距離之和D2,有效降低了多模態的影響。但當模態間方差差異較大時,該方法檢測能力較弱。李等[9]提出了基于K均值聚類與局部離群因子算法的故障檢測研究。該研究通過K均值聚類方法將多模態數據中各個模態的數據單獨分離出來,再按類別分別建立模型進行故障檢測。但當多模態數據密度差異較大時,其聚類效果并不理想。
目前,聚類分析在圖像處理[10]、醫學科學[11]、汽車制造檢測[12]等領域得到了廣泛的應用。模糊C均值(fuzzy C-means,FCM)聚類算法于1973年由Bezdek[13]提出。相比于K均值的硬聚類方式,FCM引入了模糊理念,為計算過程提供了加權思想,使聚類結果更加靈活。而且在大部分情況下,數據集中的對象不能劃分成為明顯分離的類,指派一個對象到一個特定的類很容易出錯。FCM算法的基本思想是通過將測試數據分成k類,計算每個樣本的隸屬度,并以隸屬度使測試數據隸屬于C個數據中心。FCM通過不斷計算、更新隸屬度矩陣和聚類中心達到動態聚類,以實現目標函數最小為目的。FCM可以把一個數據集合分解成若干個子集,根據判定規則使每個子集內部的數據具有一定的相似性,不同子集之間具有盡可能大的相異性。
根據以上分析,本文提出一種基于FCM-PCA的故障檢測方法。首先,通過FCM,按模態對具有多模態特性的訓練樣本進行分類;然后,在每個模態子集下單獨建立PCA模型。檢測時,首先將待測樣本通過FCM聚類進行模態劃分,找到所屬模態子集;然后應用該模態子集所建立的模型進行故障檢測。
假設數據集X={x1,x2,...,xn}。其中,n為樣本個數。應用FCM將訓練數據劃分為k類,其中2≤k≤n。針對每個樣本,建立隸屬度矩陣U=(Uij)k×n和聚類中心矩陣C=(c1,c2,…,ck)。其中:c1,c2,...,ck為k個數據中心;Uij為第j個樣本數據隸屬于第i類的隸屬度。
隸屬度表示數據點屬于每個類的可能性,取值范圍為0~1。限制條件為:
0≤Uij≤1
(1)
(2)
式中:Uij為第j個樣本數據隸屬于第i類的隸屬度;j為樣本數。
FCM聚類算法目標函數為:
(3)

聚類依據某些標準對數據集分類。具有較高相似性的數據在同一簇內。簇之間具有較高差異性。采用拉格朗日乘子法求取目標函數J的極值。
(4)
當目標函數最小時,隸屬度函數Uij以及聚類中心ci的表達式為:
(5)
(6)
FCM算法的步驟如下。
①初始化滿足約束條件(2)的隸屬度矩陣,根據式(6)計算聚類中心矩陣。
②將得到的聚類中心矩陣作為輸入,根據式(5)計算隸屬度矩陣,并根據式(4)計算目標函數J的值,如此循環迭代。
③當迭代次數達到所設定的次數或連續前后兩次差值小于所設定的閾值時,目標函數達到極小值,迭代終止;否則,重復步驟②。
PCA能夠使原本數據結構分布得到最大限度的保留,并在最小均方條件下將原始特征向具有最大投影信息量的維度上投影,從而在特征空間中實現數據特征提取。PCA主要算法原理如下。
假設數據集X有m個樣本。每個樣本存在n個變量。數據X如下所示:
(7)
對數據進行標準化處理。PCA所采用的標準化方式為Z-score標準化方法:
(8)
求協方差矩陣:
(9)

對式(8)求出的協方差矩陣進行特征分解,得到特征值和相對應的特征向量。將特征值從大到小排列,λ1≥λ2≥...≥λn≥0。其所對應的特征向量分別為[u1,u2,…,un]。
計算主成分:
Zk=(uk)Txmean
(10)

(11)
式中:Zk為第k個主成分;Vk為第i個主成分的方差貢獻率。
本文中,主元個數的選取為:將特征值從大到小排序后,根據累計方差貢獻率確定前k列作為主元,并組成矩陣P。
降維到k維后的數據為:
Y=P×X
(12)
計算統計量T2和Q:
(13)
(14)
PCA方法要求數據服從單一模態高斯分布。但很多化工過程中都存在著多工況的情況,導致采集到的數據是具有多模態特性的。在這種情況下,PCA方法就不能很好地處理具有多模態特性的數據。
FCM-PCA可以有效地處理數據具有多模態特性的問題。首先,使用FCM按模態劃分多模態數據,使每個模態子集服從高斯分布;然后,在每個模態下運用PCA進行故障檢測。這種方法可以有效減小多模態特性的影響,提高檢測準確率。FCM-PCA故障檢測方法主要由建立模型和故障檢測兩部分組成,步驟如下。
使用正常樣本數據經過處理后,建立PCA模型并計算統計量和控制限。具體步驟如下。
①采集正常運行下的樣本數據集X。
②選擇聚類數目K與隸屬度權重因子m。
③利用FCM聚類對數據集進行聚類,并為每一類貼上標簽。數據集由此分成n個子集,即M1,M2,...,Mn。
④構建PCA模型。
⑥使用核密度估計法計算出每個子集下的控制限。
測試樣本xnew經過處理后,使用已經建立的PCA模型對其進行故障檢測,以判斷其是否為故障樣本。故障檢測具體步驟如下。
①對測試數據進行FCM聚類。根據聚類后的聚類中心與訓練數據聚類中心之間的距離對比結果,將分類后所貼標簽與訓練集所貼標簽一一對應,找到所屬類別。
②按數據標簽將數據分成多個子集,并提取每個子集數據。
③通過已經建立的PCA模型,對每個子集中的數據進行故障檢測。
本文將基于FCM-PCA的故障檢測方法應用于多元線性數值例子,說明該方法的優點,并將其結果與基于PCA的故障檢測方法的結果進行對比。數值例子如下。
(15)
式中:e1~e5為滿足均值為0、方差為0.1的正態分布的獨立噪聲;S1、S2為系統控制變量,可通過設置S1、S2不同分布來產生多模態數據。
S1、S2兩模態分布如下。

(16)

(17)
通過仿真生成的1 000個樣本組成訓練集進行建模。每個模態各存在500個樣本,同時各生成200個正常樣本和300個故障樣本作為測試集。故障為在x2的第201~500個樣本上發生0.13(i-200)的斜坡故障,在x5第701~1 000個樣本上發生幅值為45%的階躍故障。本文通過使用PCA和FCM-PCA對上述數值例子進行故障檢測,通過85%貢獻率確定兩種方法的主元個數均為1。
本文提出的方法首先將數據聚類,并在每一類下單獨建立模型。原始數據聚類前后以及測試數據聚類前后的散點圖分別如圖1、圖2所示。

圖1 原始數據聚類前后散點圖

圖2 測試數據聚類前后散點圖
由圖1、圖2可知,FCM可以很好地對多模態數據進行聚類,并且具有很高的準確率。通過FCM對模態的劃分,可以有效幫助PCA在每個模態下進行故障檢測。
PCA與FCM-PCA兩種方法對數值例子的故障檢測結果如圖3所示。

圖3 兩種方法對數值例子的故障檢測結果
PCA對多模態數據整體建立模型時,在高維空間中T2控制限近似于超橢球面,而Q控制限近似于超球面。這導致球面內錯誤的包含了一部分故障區域。由于模態1發生的是斜坡故障,故障樣本遠離多模態數據中心且持續時間較長,所以PCA可以有效地進行檢測。模態2中發生的是階躍故障,且故障幅度較小,因此PCA模型會錯誤地將故障點包裹在內,從而無法有效地進行檢測。FCM-PCA方法通過將樣本聚類為若干個子集,并對每個子集建立獨立的PCA模型,將故障樣本排除在超橢球面外部,具有良好的檢測能力。對數值例子的故障檢測說明PCA不能很好地處理多模態問題,而FCM-PCA先對數據進行模態劃分再進行故障檢測,可以有效地解決數據的多模態特性。因此,FCM-PCA具有較高的檢測率。
田納西-伊斯曼(Tennessee East-man,TE)過程是典型的復雜多變量化工過程。近年來,TE過程已經在故障檢測研究領域得到了廣泛的應用[14]。本節應用試驗中的所有數據均來源于TE過程。
TE過程有1組正常過程數據和21組故障數據。故障數據分為4種類型[15]。每組數據集都包括52個觀測變量,分為41個過程變量和11個操縱變量。具體故障數據類型的描述如下。
故障1~7均為階躍變化類型:故障1和故障2分別為物料A/C進料比改變、物料B含量不變和物料A/C進料比不變、物料B含量改變;故障3為物料D進料溫度改變;故障4、故障5分別為反應器、冷凝器冷卻入口溫度改變;故障6、故障7分別為物料A進料損失、物料C壓力損失。故障8~故障12為隨機變量變化類型:故障8為物料A、B、C的組成比例改變;故障9和故障10分別為物料D、物料C進料溫度改變;故障11和故障12分別為反應器、冷凝器冷卻水入口溫度改變。故障13為反應動力學參數改變,屬于慢偏移變化類型。故障14和故障15為粘住變化類型,分別為反應器、冷凝器冷卻閥門粘住。故障16~故障20為未知故障。故障21為物料4閥門固定在恒定位置,屬于恒定位置變化類型。
本文應用試驗使用的為 TE 過程生產模式1和模式3,分別代表模態1和模態3。不同模式的生產過程需要使用不同的生產物G/H的比例。
將兩個模態混合使用,即訓練數據和測試數據的樣本數各為1 922個。其中:訓練數據為系統正常運行情況下的所有正常樣本,包含各模態的961個正常數據;測試數據包含各個模態的160個正常數據和對應的801個故障數據樣本[16]。
TE過程生產模式如表1所示。

表1 TE過程生產模式
本文通過85%累計方差貢獻率確定主元個數。PCA方法所確定的主元個數為1;使用FCM-PCA方法對數據集進行了聚類處理,將兩個模態分開確定主元個數,所確定的主元個數分別為31和32個。該方法在降維的同時可以較好地描述數據信息。兩種方法的置信度設置為99%,經過先驗知識及多次仿真試驗確定聚類數K為2以及隸屬度權重因子m為2。以下采用FCM-PCA對故障1~故障21進行故障檢測。
訓練集聚類結果以及測試數據聚類結果如圖4所示。

圖4 訓練集及測試數據聚類結果
由圖4(a)可知,當目標函數收斂后聚類完成,可以很明顯地看出前961個樣本為一類、后961個樣本為另一類。這說明模糊C均值方法可以將各個模態的數據準確貼標簽。以故障1為例,圖4(b)即不斷更新隸屬度矩陣和聚類中心后各樣本的聚類結果。由圖4(b)可知,前961個樣本為一個類別、后961個為另一個類別,聚類結果與訓練數據貼標簽結果完全一致。
在訓練集聚類以及測試樣本按模態聚類后,分別在各個模態下建立PCA模型,確定控制限,并對測試數據進行故障檢測。對全部21種故障類型待測數據檢測,并且與只采用PCA算法進行檢測的結果進行對比分析。兩種方法的部分檢測率如表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%以上。由此可知,FCM-PCA的檢測率明顯更高,檢測能力優于PCA。
在故障7中,物料C壓力損失,產生了一個階躍性變化,導致物料C含量偏離正常狀態,從而發生故障。兩種方法對于故障7的檢測結果如圖5所示。由圖5(a)、圖5(b)可知,故障數據在第161個樣本到第961個樣本間大部分被檢測出,后800個大部分未被檢測出。圖5(c)、圖5(d)為聚類后在模態1、模態3下運用PCA的仿真結果,在第161個樣本后和第1 122個樣本后絕大部分故障數據都被檢測出來,FCM-PCA檢測率遠大于PCA檢測率。多模態數據在經過標準化后仍然具有多模態特性,因此PCA不能很好地建立模型。FCM-PCA會先將模態分開,再分別在每個模態下對數據進行標準化處理,消除了多個模態帶來的方差差異的影響,大大提升了故障檢測率。對比可知,FCM-PCA可以有效地處理具有多模態特性數據的故障檢測,故障檢測準確率高于PCA。

圖5 兩種方法對故障7的檢測結果
兩種方法對故障14的檢測結果如圖6所示。
故障14為反應器冷卻閥門粘住,擾亂系統的正常運行。由圖6(a)、圖6(b)可知,由于數據具有多模態特性且模態間方差存在較大差異,而使用PCA算法會根據整個多模態數據建立模型導致錯誤地包含一些故障數據。經過聚類后,PCA算法在每一個分類后的子集中建立模型,消除了模態間方差差異,從而可以更好地進行故障檢測。對比圖6(c)、圖6(d)可知,FCM-PCA將模態劃分后,在每個模態下單獨建立PCA模型,更準確地描述了每個模態的數據信息。其檢測率遠大于PCA方法的檢測率。
本文針對工業過程數據的多模態特性,提出了一種基于FCM-PCA的故障檢測方法。首先,使用FCM聚類算法將多模態劃分成各個模態子集;然后,使用PCA在每個子集下進行故障檢測。本文將此方法應用于TE過程的多模態數據中,并與PCA算法進行比較。通過對多模態數據進行聚類,消除了數據的多模態特性,使PCA模型建立在各個子集,從而有效降低了模態間方差差異對PCA帶來的影響,提高了檢測能力。試驗結果表明,FCM-PCA可以較好地處理多模態問題,實現多模態數據的準確分類,提取各模態有用的信息進行故障檢測,使故障檢測率明顯提升。研究結果充分證明了FCM-PCA方法用于故障檢測的有效性。