郭金玉,李 濤,李 元
沈陽化工大學(xué)信息工程學(xué)院,遼寧沈陽110142
現(xiàn)代工業(yè)生產(chǎn)高度智能化,對復(fù)雜工業(yè)過程而言,有效提高控制系統(tǒng)的故障檢測性能變得尤為重要.近年來,基于數(shù)據(jù)驅(qū)動的多元統(tǒng)計分析方法被深入研究和應(yīng)用,并在工業(yè)過程領(lǐng)域取得了快速發(fā)展[1-4].該方法只需在實際工業(yè)生產(chǎn)過程中獲取歷史數(shù)據(jù),再通過數(shù)據(jù)建立監(jiān)測模型,從而實現(xiàn)工業(yè)過程的故障檢測,過程中不需要依賴先驗知識和數(shù)學(xué)模型,因此備受關(guān)注.
主元分析(principal component analysis, PCA)是工業(yè)過程中故障診斷和檢測的典型算法,已被廣泛用于多種場景[5-6].PCA算法是一種線性降維的方法,它將過程數(shù)據(jù)投影到低維空間,保留主要變量,實現(xiàn)降維目的,主要針對相關(guān)過程中因變量引起的共線性問題.在主元子空間和殘差子空間中,該算法使用平方預(yù)測誤差(squared prediction error, SPE)和Hotelling’sT2指標(biāo)對樣本狀態(tài)進(jìn)行監(jiān)控[7].由于PCA算法處理的數(shù)據(jù)需滿足高斯分布的假設(shè)前提,對非線性工業(yè)過程的故障檢測效果不佳.為此,SHIOKAWA等[8-10]提出核主元分析(kernel principal component analysis, KPCA)算法,但由于KPCA算法是用SPE和Hotelling’sT2指標(biāo)監(jiān)控過程變量,而這2個指標(biāo)需要數(shù)據(jù)服從多元高斯分布且樣本間相互獨立,導(dǎo)致它們的故障檢測效果較差.在現(xiàn)代工業(yè)生產(chǎn)過程中,變量之間常存在較強的非高斯特性和樣本自相關(guān)性,很大程度上影響了故障檢測的性能.
支持向量機(support vector machine, SVM)因有強大的泛化能力和解決各種分類問題等優(yōu)勢,被廣泛研究學(xué)習(xí)[11-12].采用SVM對數(shù)據(jù)進(jìn)行故障檢測時,需同時使用正常數(shù)據(jù)和故障數(shù)據(jù)來訓(xùn)練模型,學(xué)習(xí)兩種數(shù)據(jù)的特征變化.針對高維數(shù)據(jù),GUYON等[13]提出支持向量機遞歸特征消除(support vector machine recursive feature elimination, SVM-RFE)算法.SHIEH等[14]通過使用總體排序或特定類型的排序來選擇關(guān)鍵特征,提高線性SVM-RFE對樣本特征的提取.但由于故障檢測與診斷并不只是線性問題,XUE等[15]用高斯核SVM-RFE提取非線性特征進(jìn)行故障檢測與診斷,該方法關(guān)鍵是核參數(shù)的選擇,通過對比選擇出最優(yōu)參數(shù),建立一種先進(jìn)的故障檢測與診斷框架.針對非線性過程中SVM檢測性能不足的問題,ZHANG等[16]結(jié)合核獨立元分析(kernel independent component analysis, KICA)、KPCA和SVM的優(yōu)點,開發(fā)了一種非線性動態(tài)故障檢測方法.
對于高維數(shù)據(jù),SVM的運行時間較長.為減少SVM的運行時間,需對數(shù)據(jù)進(jìn)行特征提取和降維.但是,SVM算法性能的優(yōu)異依賴數(shù)據(jù)特征提取的能力.傳統(tǒng)的PCA算法對數(shù)據(jù)進(jìn)行特征提取和降維,獲得的主元和殘差中仍具有較強的自相關(guān)性,這會降低Hotelling’sT2和SPE控制圖的故障檢測性能.為減少SVM的運行時間,本研究運用時滯和時差特性降低樣本自相關(guān)性,減少分類過程中類別與附加維度的重疊,提高SVM的故障檢測性能,提出一種基于主元增廣矩陣的SVM(SVM based on principal component augmented matrix, PCAM-SVM)故障檢測方法.通過建立PCA模型提取數(shù)據(jù)的得分矩陣,對得分引入時差和時滯輸入特性,將3者組合成增廣矩陣作為SVM的輸入,再運用SVM模型對數(shù)據(jù)進(jìn)行故障檢測.該方法考慮到了樣本的空間和時間分布情況,通過引入時滯和時差輸入特性,有效降低了樣本間的自相關(guān)性,減少了分類過程中類別與附加維度的重疊,提高了SVM算法的故障檢測性能.
SVM[11-12]作為機器學(xué)習(xí)中的經(jīng)典分類算法,在處理小規(guī)模數(shù)據(jù)集和非線性問題上有許多優(yōu)點.對線性數(shù)據(jù),SVM能夠建立最大分離超平面對數(shù)據(jù)進(jìn)行分類;對非線性問題,需先將數(shù)據(jù)投影到高維空間,去除數(shù)據(jù)非線性再建立最大分離超平面,使數(shù)據(jù)被有效分類.由于分離平面是基于支持向量構(gòu)造的,所以SVM是一種很好的解決高維問題的方案.
假設(shè)樣本訓(xùn)練集為H={(x1,y1),(x2,y2),…,(xm,ym)}, 樣本類別yi∈{-1, 1}, 在樣本空間中需要找到一個最大分離超平面,將樣本劃分為不同類別.SVM對指定數(shù)據(jù)分類的超平面(w,b)滿足
wTx+b=0
(1)
其中, 權(quán)重向量w=(w1,w2, …,wm)Т;b為位移項;xi為樣本空間中任意點.若(w,b)能夠?qū)颖菊_分類,則對于(xi,yi)∈H, 有
(2)
距離超平面最近的樣本點使式(2)成立,此類樣本點即為支持向量.兩個異類支持向量到超平面的距離之和為間隔γ. 為找到最大間隔的超平面,實現(xiàn)最大程度分類,需找到滿足式(2)的參數(shù)w和b, 即SVM的基本型為
(3)
考慮到一些無法分類的樣本,以及SVM在一些樣本上可能分類錯誤,引入懲罰因子C和松弛變量ξi, 則式(3)可改寫為
(4)
其中,ξi≥0,C>0.
將式(4)轉(zhuǎn)化為對偶問題,使用拉格朗日乘數(shù)法求解,則該問題的拉格朗日函數(shù)為
(5)
其中,拉格朗日乘子αi≥0,μi≥0,α=(α1,α2, …,αm),μ=(μ1,μ2, …,μm).
令L(w,b,α,ξi,μ)對w、b和ξi的偏導(dǎo)為0,可得
(6)
(7)
C=αi+μi
(8)
對式(4)求解,得到模型
(9)
假設(shè)樣本為非線性數(shù)據(jù),為更好地實現(xiàn)分類,通過非線性映射φ(x)將數(shù)據(jù)投影到高維空間.為避免高維運算,引入核函數(shù)
K(xi,xj)=[φ(xi),φ(xj)]=
[φ(xi)]Tφ(xj)
(10)
則通過核函數(shù)計算后模型(9)變?yōu)?/p>
(11)
因此,無論是在對線性還是非線性數(shù)據(jù)進(jìn)行分類時,SVM都可將其有效轉(zhuǎn)化,實現(xiàn)對數(shù)據(jù)高效準(zhǔn)確地分類.
在多元統(tǒng)計分析中,PCA能夠達(dá)到降維并提取原始數(shù)據(jù)主要特征的目的.假設(shè)隨機變量xi的樣本集表示為X=[x1,x2, …,xm],m為樣本數(shù),xi∈Rn(i=1, 2, …,m), 則定義標(biāo)準(zhǔn)化后X的協(xié)方差矩陣為
(12)
對S進(jìn)行特征值分解,計算特征值和特征向量,并按照特征值降序排列,再求取主元個數(shù)z. 現(xiàn)有的選擇主元得分個數(shù)的方法包括累計方差貢獻(xiàn)率(cumulative percent variance, CPV)、碎石檢驗、平行分析和重建誤差準(zhǔn)則等方法,何種方法最佳,目前尚未達(dá)成共識.由于當(dāng)CPV≥85%時,所獲得的主元能夠代表樣本的主要特征[17-18],因此,本研究采用CPV方法.CPV的計算式為
(13)
其中,λi為協(xié)方差矩陣的特征根.由前z個特征向量構(gòu)成的矩陣就是負(fù)載矩陣P, 則得分矩陣為
T=XP
(14)
在動態(tài)主元分析(dynamic principal component analysis, DPCA)中,KU等[19]通過引入時滯特性實現(xiàn)了對過程靜態(tài)信息和動態(tài)信息的同步提取,提高了故障檢測性能.CHIANG等[20]指出,用時滯特性解決樣本自相關(guān)性的思想在分類問題中能夠減少類別與附加維度的重疊,只要數(shù)據(jù)充足并且增加維度合理,引入時滯特性就會帶來良好的檢測結(jié)果.ZHANG等[21]運用時差思想,通過建立不同的統(tǒng)計信息,消除了樣本非線性對故障檢測的影響,提高了工業(yè)過程的故障檢測性能.本研究通過同時引入得分矩陣的時滯和時差特性來提升SVM算法的性能.
由式(14)可得正常數(shù)據(jù)在時刻t的得分Tn(t), 然后構(gòu)造時滯輸入特性Tn(t-1)和時差輸入特性Tn(t)-Tn(t-1), 并組合成增廣矩陣
Tnormal=[Tn(t),Tn(t-1),Tn(t)-Tn(t-1)]
(15)
在故障操作條件下獲取故障數(shù)據(jù),同樣通過PCA模型計算得分矩陣為Tf, 在主元空間中構(gòu)造出故障數(shù)據(jù)的增廣矩陣為
Tfault=[Tf(t),Tf(t-1),Tf(t)-Tf(t-1)]
(16)
將Tnormal與Tfault作為SVM模型的訓(xùn)練數(shù)據(jù),即Ttrain=[Tnormal,Tfault], 對SVM訓(xùn)練后獲得判別分類函數(shù).建立模型后,SVM能學(xué)習(xí)正常和故障數(shù)據(jù)的特性,進(jìn)而對數(shù)據(jù)正確分類.將測試數(shù)據(jù)輸入模型,通過超平面劃分,將正常數(shù)據(jù)劃分成一類并標(biāo)記為0,故障數(shù)據(jù)劃分成另一類并標(biāo)記為1.
PCAM-SVM方法故障檢測流程如圖1.該方法主要包括離線模型建立和在線故障檢測兩個步驟.
圖1 PCAM-SVM方法故障檢測流程圖Fig.1 Flow chart of fault detection method using PCAM-SVM
離線模型建立具體步驟為:
1)采集正常操作條件下的數(shù)據(jù)集X1和故障操作條件下的數(shù)據(jù)集X2;
2)通過PCA建模在主元子空間分別計算正常和故障數(shù)據(jù)的得分矩陣Tn和Tf;
3)在時刻t的Tn(t)和Tf(t)中分別加入時滯輸入特性和時差輸入特性,并根據(jù)式(15)和(16)生成增廣矩陣Tnormal和Tfault;
4)生成SVM訓(xùn)練數(shù)據(jù)集Ttrain并對Ttrain貼標(biāo)簽,正常數(shù)據(jù)標(biāo)記為0,故障數(shù)據(jù)標(biāo)記為1;
5)用Ttrain訓(xùn)練SVM模型,獲得判別分類函數(shù).
在線故障檢測具體步驟為:
1)利用離線建模數(shù)據(jù)的均值和方差,對測試數(shù)據(jù)集xtest進(jìn)行標(biāo)準(zhǔn)化;
2)將標(biāo)準(zhǔn)化后的測試數(shù)據(jù)投影到PCA模型上,采用式(14)計算得分矩陣Tt;
3)在時刻t的Tt(t)中加入時滯和時差輸入特性生成測試數(shù)據(jù)集的增廣矩陣
Ttest′=[Tt(t),Tt(t-1),Tt(t)-Tt(t-1)]
(17)
即SVM模型的測試數(shù)據(jù)集;
4)將測試數(shù)據(jù)集的主元增廣矩陣Ttest′送入SVM模型進(jìn)行分類,正常數(shù)據(jù)標(biāo)記為0,故障數(shù)據(jù)標(biāo)記為1.
根據(jù)文獻(xiàn)[22]構(gòu)造一個具有5個變量E(t)、Y(t)、V(t)、U(t)和W(t)的動態(tài)過程,對應(yīng)的數(shù)值模型為
(18)
Y(t)=Z(t)+V(t)
(19)
其中,V(t)為均值為0、標(biāo)準(zhǔn)差為0.01的正態(tài)分布的噪聲序列; 輸入U(t)為
(20)
其中,W(t)是服從[-2,2]的均勻分布.當(dāng)t=1時,設(shè)U(0)=[0 0]T,W(0)=[-1 1]T, 則由過程相關(guān)輸入U(t)和輸出Y(t)共同組成監(jiān)控數(shù)據(jù)集.為驗證PCAM-SVM的有效性,由上述模型生成1 000個正常樣本,并引入兩種類型的故障:① 對W(t)增加幅值在[0.1 -0.7]內(nèi)的階躍,產(chǎn)生400個階躍故障;② 對W(t)增加斜坡信號為0.003×(i-1 400)的擾動(i為采樣時刻),產(chǎn)生400個斜坡故障.其中,斜坡信號斜率的變化范圍是[0.000 8 -0.005 0].
采用SVM、PCA-SVM和PCAM-SVM三種方法對不同幅值階躍故障條件下的故障檢測率進(jìn)行仿真,結(jié)果如圖2.由圖2可見,在不同幅值情況下,PCAM-SVM方法的故障檢測率最高.
圖2 不同幅值的階躍故障檢測率Fig.2 Detection rates against step changed sizes
改變斜坡故障信號的斜率值,分別計算3種方法的檢測率,結(jié)果如圖3.由圖3可見,在不同斜率的斜坡故障情況下, PCAM-SVM方法的故障檢測率仍然最優(yōu).
圖3 不同斜率的斜坡故障檢測率Fig.3 Detection rates against slope sizes
值得注意的是,本例中斜坡故障信號的斜率范圍較小,屬于微小型故障,一般算法在故障特征提取上具有一定難度.PCAM-SVM方法通過引入時滯和時差輸入特性來構(gòu)建主元增廣矩陣,增加了模型輸入復(fù)雜度,減少分類過程中類別與附加維度的重疊,降低了樣本間的自相關(guān)性,能有效提取數(shù)據(jù)的特征,提高SVM的檢測效果.
圖4為PCA-SVM主元得分和PCAM-SVM主元增廣矩陣自相關(guān)性.由圖4可見,PCAM-SVM方法在主元空間中通過時滯和時差輸入特性構(gòu)造的增廣矩陣能有效地降低樣本間的自相關(guān)性.
圖4 PCA-SVM和PCAM-SVM方法的自相關(guān)性Fig.4 Autocorrelation of PCA-SVM and PCAM-SVM
田納西-伊斯曼(Tennessee-Esatman, TE)過程是國際通用的模擬實際工業(yè)過程的仿真平臺[23-24],被廣泛應(yīng)用于過程監(jiān)控領(lǐng)域.TE過程包括5個主要操作單元、4種氣體進(jìn)料、2個氣液放熱反應(yīng)生成的2種主產(chǎn)品和2個衍生放熱反應(yīng)生成的2種副產(chǎn)品等,過程工藝復(fù)雜,涉及變量較多.TE過程具體的模型流程圖如圖5.其中,1~13表示13個檢測點,每個檢測點包含1個或多個變量傳感器,用于數(shù)據(jù)采集.將TE過程產(chǎn)生的數(shù)據(jù)集用于仿真測試,該數(shù)據(jù)集是在TE仿真器中持續(xù)運行48 h獲得,包含流量、壓力、溫度和液位等52個觀測變量(41個測量變量和11個控制變量),采樣頻率為3 min.
訓(xùn)練數(shù)據(jù)集包含正常樣本和故障樣本各500個,測試數(shù)據(jù)集包含160個故障樣本.分別對訓(xùn)練集的正常樣本和故障樣本進(jìn)行主元分析,獲取對應(yīng)的得分矩陣,然后進(jìn)行時滯和時差操作并將數(shù)據(jù)進(jìn)行組合, 再將相應(yīng)的主元增廣矩陣用于SVM模型訓(xùn)練.本研究通過尋優(yōu)測試設(shè)置懲罰因子C=0.15, 窗寬g=0.45. 對PCA、ICA、KPCA、PCA-SVM和PCAM-SVM算法中主元和獨立元個數(shù)的選取,采用85% CPV來確定,具體設(shè)置如表1.
圖5 TE過程模型流程圖Fig.5 Flow chart of TE process model
表2是6種故障檢測方法對不同故障類型的檢測率結(jié)果.由表2可見,使用PCAM-SVM算法,故障1、3、4、5、8、9、10、11、14、15、16、17、19、20和21的檢測率,比其他檢測方法都有不同程度的提高,平均故障檢測率為99.49%,驗證了該方法的有效性.
表1 五種故障檢測方法的主元和獨立元數(shù)量Table 1 Numbers of principal components and independentcomponents for five fault detection methods 個
表2 6種算法對TE過程故障檢測率
(續(xù)表2)
提出一種基于主元增廣矩陣的SVM故障檢測方法,通過PCA提取得分矩陣,引入其時滯輸入特性和時差輸入特性,有效去除過程變量之間的自相關(guān)性,將3者組合成增廣矩陣作為SVM的輸入,運用SVM進(jìn)行故障檢測.將PCAM-SVM方法應(yīng)用到多變量動態(tài)過程數(shù)值例子和實際的TE過程中,結(jié)果表明,與PCA、ICA、KPCA、SVM和PCA-SVM方法相比,PCAM-SVM方法有效提高了故障檢測率.