冉永清 李 楠 楊煜普
(上海交通大學電子信息與電氣工程學院系統控制與信息處理教育部重點實驗室,上海 200240)
傳統的故障診斷方法根據監控統計量來檢測是否有故障發生,采用貢獻圖及故障重構等方法來辨識故障發生的位置,以此達到故障診斷的目的[1,2]。然而這類方法都是基于過程中出現單一故障的假設,如果在檢測過程中同時出現多個故障,這類方法的故障診斷性能將急劇下降。為解決上述問題,筆者從模式識別的角度考慮故障診斷問題,將故障診斷分為兩個步驟,在離線狀態下,學習數據之間的內部關系及模式等抽象概念,建立故障診斷模型;在在線狀態下,所建立的故障診斷模型運用學習到的知識,對新數據的內在關系和模式做出預測,把故障數據分類到最接近的故障類中。從這個角度出發,筆者把故障診斷看成一個多類分類問題,提出了有監督學習方法——FKNMF方法,建立多故障診斷模型,解決多故障診斷問題。
KNMF算法通過核函數將輸入空間的非線性數據映射到高維特征空間[3,4],采用迭代的矩陣分解形式,挖掘特征空間數據的局部信息表示數據整體結構。令輸入空間的數據X=[X1,X2,…,Xn]∈Rm×n,通過映射函數將數據映射到一個高維的特征空間F內,得到的特征空間數據矩陣Φ(X)=[Φ(x1),Φ(x2),…,Φ(xn)]∈Rd×n。在特征空間F內,尋找一個基矩陣U和一個系數矩陣V,使得Φ(·):Rm→F:Rd:
Φ(X)≈UVT
(1)
其中U∈Rd×r,r表示降維后的維數;V∈Rn×r。
根據KNMF算法,假設基矩陣U是特征數據Φ(X)的凸組合,即U=Φ(X)W,則在特征空間F內,把特征空間數據分解成如下形式:
Φ(X)≈Φ(X)WVT
(2)
KNMF算法是在特征空間內通過學習尋找到參數矩陣W和系數矩陣V。

圖1 Fisher判別的基本原理
以下為Fisher準則的若干個必要判別參數。
在d維空間內,各個樣本均值向量mi:
(3)
樣本類內離散度矩陣Si和總類內離散度矩陣Sw:
(4)
Sw=S1+S2
(5)
樣本類間離散度矩陣Sb:
Sb=(m1-m2)(m1-m2)T
(6)
Fisher準則函數定義:

(7)
在特征空間里面,各個樣本在特征空間上的投影:

(8)


(9)



(10)

(11)
根據式(7)的定義可得:
(12)
由式(12)可見,在特征空間中,Fisher準則就是尋找使JF(w)最大的參數矩陣W,使各類樣本盡可能地分開,同時同一樣本盡量靠攏。

(13)
筆者結合KNMF和FDA兩者的優點,使KNMF算法在降維過程中,引入FDA分類思想,使得降維過程中同一類的數據盡量靠攏,不同類的數據盡量遠離。這樣既保持了KNMF算法挖掘局部信息的能力,綜合了FDA的優點,也彌補了FDA分類算法過度依賴數據均值的缺點。
在特征空間內,采用歐式距離來度量特征數據矩陣Φ(X)與Φ(X)、參數矩陣W和系數矩陣V三者乘積之間的誤差,將KNMF問題轉化為求取參數矩陣W和系數矩陣V,并使得以下目標函數取得最小值:


(14)
其中ε是任意的極小值,該限制的含義是使式(13)盡可能相等。
將式(14)轉化成下列形式:

(15)
式(15)表示Fisher KNMF算法在KNMF算法的框架上增加了FDA分類思想作為正則項,其中參數α是一個系數,通過調節它來調整Fisher正則項的影響程度,使Fisher KNMF算法具有良好的靈活性。
目標函數式(15)對于W和V單個變量是凸函數,但是同時對兩個變量是非凸函數,對于目標函數求取的解可能不是全局最優解。根據式(15)的KKT最優松弛條件和互補松弛條件可以得到:


(16)

根據式(16)得到W、V和λ的更新規則:


(17)

采用式(17)的更新規則,最終可以得到FKNMF算法的參數矩陣W和系數矩陣V。
Fisher KNMF算法從一個包含正常數據和故障數據的訓練數據集中通過迭代矩陣分解,獲得參數矩陣W。對于未知類別的樣本,需要一個判別函數值來量化觀測向量和類之間的關系。觀測向量xi在類K上面的判別函數值采用下面判別式[6]:

(18)
其中pk是第K類的概率。
對于每一個測試樣本xt,通過式(18)計算出它在每一類上的判別值,然后判斷該樣本屬于判別函數值最大的那一類。即:
(19)
如果訓練樣本中只有正常數據和一種故障數據,即故障檢測;如果訓練數據包含了多種故障數據,那么在建立模型之后,就可以對測試樣本進行故障診斷,判別該樣本處于正常狀態或是哪一類故障狀態,即完成了多故障診斷。
TE過程是基于實際工業過程的仿真案例[8],整個過程系統共包括12個控制變量和41個測量變量,并且預定了21種故障。圖2為TE過程結構圖。

圖2 TE過程結構圖
選取正常數據的前200個數據和故障數據的201~400之間的200個數據共同作為訓練數據,選取正常數據的281~480之間的200個數據和故障數據81~280之間的200個數據作為測試數據。設置降維維數為17,取系數α為0.5。表1是FDA算法和Fisher KNMF算法故障診斷準確率對比。

表1 FDA算法和Fisher KNMF算法故障診斷準確率對比 %

(續表1)
從表1可以看出,Fisher KNMF算法的故障診斷準確率總體上是優于FDA算法的,其中在故障IDV(8)、IDV(10)、IDV(11)、IDV(12)、IDV(14)、IDV(16)和IDV(19)發生時,Fisher KNMF算法的故障診斷準確率明顯優于FDA算法。圖3是IDV(1)和IDV(14)的FDA算法和Fisher KNMF算法的診斷效果圖。FDA算法故障診斷效果圖橫坐標1~200表示兩類故障都為200個點,故障IDV(1)和IDV(14)的縱坐標如果差距越大分的就越開,Fisher KNMF算法縱坐標表示兩類故障的個數,前200個應該是正常數據,后200個是故障數據。從圖3可以得知,在故障IDV(1)發生時,FDA和Fisher KNMF算法都能夠完全分開故障,但是在故障IDV(14)發生時,FDA算法不能完全分開故障類別,而Fisher KNMF算法依然有94.25%的準確率。

圖3 IDV(1)和IDV(14)發生時,FDA和Fisher KNMF算法的故障診斷效果
采用正常數據和兩種故障訓練數據來進行仿真實驗。取正常數據和兩類故障訓練數據分別為200個數據,同樣每類測試集各選取200個點組成。仿真實驗中,設置降維維數為17,系數α為0.5。圖4是IDV(10)和IDV(14)同時發生時FDA算法和Fisher KNMF算法的故障診斷效果圖。

圖4 IDV(10)和IDV(14)同時發生時,FDA和Fisher KNMF算法的故障診斷效果
圖4中FDA算法基本不能分出3類數據,但是Fisher KNMF算法能夠達到93.25%的診斷正確率,僅有少數數據標識錯誤,通過此仿真實例說明,Fisher KNMF算法在多類故障診斷中具有很好的性能。
為解決多故障診斷問題,筆者從模式分類的新角度考慮,提出了一種新的有監督分類方法——Fisher KNMF算法,該算法結合了KNMF算法優秀的處理非線性數據的能力和FDA算法優秀的分類能力。建立的多故障診斷模型用于在線監控,并在TE模型上仿真,結果表明:在單故障和多故障的情況下都具有很好的效果。
[1] 王迎,王新明,趙小強.基于小波去噪與KPCA的TE過程故障檢測研究[J].化工機械,2011,38(1):49~53.
[2] 唐友福,劉樹林,劉穎慧,等.基于α穩定分布的往復壓縮機故障診斷方法[J].化工機械,2011,38(5):555~558.
[3] Lee H,Cichocki A,Choi S.Kernel Nonnegative Matrix Factorization for Spectral EEG Feature Extraction[J].Neurocomputing,2009,72(13-15):3182~3190.
[4] 李巍華.基于核方法的機械故障特征提取與分類技術研究[D].武漢:華中科技大學,2003.
[5] Chiang L H,Kotanchek M E,Kordon A K.Fault Diagnosis Based on Fisher Discriminant Analysis and Support Vector Machines[J].Computers & Chemical Engineering,2004,28(8):1389~1401.
[6] 李祥寶.基于廣義非負矩陣投影算法的故障檢測與診斷研究[D].上海:上海交通大學,2014.
[7] 何曉斌.基于統計學方法的自適應過程監控與故障診斷[D].上海:上海交通大學,2008.
[8] Yoon S,MacGregor J F.Fault Diagnosis with Multivariate Statistical Models Part I:Using Steady State Fault Signatures[J].Journal of Process Control,2001,11(4):387~400.