郭 金 玉, 郭 佳 燕, 李 元
( 沈陽化工大學(xué) 信息工程學(xué)院, 遼寧 沈陽 110142 )
主成分分析(principal component analysis,PCA)[1-3]作為一種線性降維算法,廣泛應(yīng)用于工業(yè)過程監(jiān)測。PCA算法可將高維噪聲和相關(guān)數(shù)據(jù)壓縮到低維子空間。然而大多數(shù)工業(yè)過程具有非線性特征,PCA可能會(huì)忽略非線性系統(tǒng)中的重要信息。為了解決這一問題,核主成分分析(kernel principal component analysis,KPCA)[4-6]被提出。KPCA利用核函數(shù)的映射原理,將數(shù)據(jù)矩陣轉(zhuǎn)換到更高維的特征空間,實(shí)現(xiàn)對非線性工業(yè)過程的監(jiān)測。PCA和KPCA算法有效提取數(shù)據(jù)集的全局特征信息,忽略了局部結(jié)構(gòu)信息,降低了故障檢測性能。為了更好地獲取樣本的局部信息,Hu等[7]提出局部保持投影(locality preserving projections,LPP)算法,通過分析原始數(shù)據(jù)的局部流形結(jié)構(gòu),保留有用的局部信息。但是,LPP是一種線性算法,會(huì)導(dǎo)致復(fù)雜非線性工業(yè)過程的監(jiān)控性能下降。為了進(jìn)一步提高LPP在非線性過程中的故障檢測能力,Deng等[8]提出稀疏核局部保持投影算法,采用特征樣本選擇技術(shù)使核局部保持投影(kernel locality preserving projections,KLPP)模型稀疏化,降低核模型的計(jì)算復(fù)雜度,并將其在連續(xù)攪拌釜式反應(yīng)器系統(tǒng)上進(jìn)行實(shí)現(xiàn)。張學(xué)磊等[9]提出改進(jìn)核局部保持投影故障檢測方法,將KPCA融入KLPP中,使數(shù)據(jù)包含全局信息和局部信息,提高故障檢測率。將多元指數(shù)加權(quán)移動(dòng)平均(multivariate exponentially weighted moving average,MEWMA)運(yùn)用到該方法中提高對微小故障的檢測率。
目前,滑動(dòng)窗口技術(shù)也被國內(nèi)外學(xué)者廣泛應(yīng)用于故障檢測與診斷領(lǐng)域?;瑒?dòng)窗口的基本原理是通過滑動(dòng)窗口,拋棄舊的樣本納入新的樣本,實(shí)現(xiàn)窗口數(shù)據(jù)的更新。Li等[10]提出遞歸主成分分析(recursive PCA,RPCA),將新數(shù)據(jù)加入矩陣更新協(xié)方差矩陣,并計(jì)算遞歸的PCA模型,在此基礎(chǔ)上遞歸確定所用的控制限。Wang等[11]提出快速滑動(dòng)窗口主成分分析(fast moving window PCA,FMWPCA)的應(yīng)用方案。該方法依賴于RPCA和滑動(dòng)窗口技術(shù),通過遞歸計(jì)算過程變量的均值、方差和協(xié)方差矩陣,實(shí)時(shí)調(diào)整PCA模型,使具有更大的窗口大小的在線應(yīng)用成為可能,其動(dòng)態(tài)的監(jiān)控效果要優(yōu)于靜態(tài)PCA。Liu等[12]提出滑動(dòng)窗口KPCA方法,通過實(shí)時(shí)更新滑動(dòng)窗口數(shù)據(jù)進(jìn)而更新KPCA模型,提高故障檢測效果。固定的窗口過大或者過小都會(huì)降低檢測的正確性,所以調(diào)節(jié)窗口的大小來適應(yīng)工業(yè)過程的變化的研究方向成為廣大學(xué)者研究的熱點(diǎn)。He等[13]提出一種可變滑動(dòng)窗口的PCA(variable moving window PCA,VMWPCA)檢測方法,該方法在以逐樣本和逐塊方式遞歸更新相關(guān)矩陣的基礎(chǔ)上,將移動(dòng)窗口技術(shù)與經(jīng)典秩-r奇異值分解算法相結(jié)合,構(gòu)建新的PCA模型。與傳統(tǒng)的滑動(dòng)窗口PCA相比,VMWPCA算法提高了計(jì)算效率,降低了存儲(chǔ)需求。
為了提高KLPP對非線性工業(yè)過程的故障檢測能力,增強(qiáng)對時(shí)變過程的實(shí)時(shí)監(jiān)測能力,本研究提出一種基于可變滑動(dòng)窗口KLPP(variable moving window kernel locality preserving projections,VMWKLPP)的故障檢測方法。利用KLPP可以保持?jǐn)?shù)據(jù)結(jié)構(gòu)的局部信息,并結(jié)合可變滑動(dòng)窗口技術(shù),采用樣本塊更新的方式,滑動(dòng)窗口并拋棄舊的樣本塊和納入新的樣本塊,以提高運(yùn)行效率。通過正常過程的變化來調(diào)節(jié)窗口的大小,改變窗口內(nèi)的數(shù)據(jù)樣本,進(jìn)而實(shí)時(shí)更新KLPP模型以及控制限,提高對非線性和時(shí)變特性過程監(jiān)控的自適應(yīng)能力。
KLPP算法能夠保持原始數(shù)據(jù)的局部結(jié)構(gòu)。假設(shè)原始數(shù)據(jù)集合X=[x1,x2,…,xN],xi∈m,其中m和N分別為變量個(gè)數(shù)和樣本個(gè)數(shù)。Φ(·)是KLPP算法的非線性映射,將數(shù)據(jù)矩陣投影到高維特征空間得到Φ(X)=[Φ(x1),Φ(x2),…,Φ(xN)],這樣便于理解和計(jì)算。在高維空間中使用LPP算法尋找一個(gè)投影矩陣A=[a1,a2,…,al],將Φ(X)投影到低維空間得到保持鄰域結(jié)構(gòu)信息的低維數(shù)據(jù)矩陣Y=[y1,y2,…,yN],即Y=ATΦ(X)。
(1)
ATФ(X)DΦT(X)A=I
加權(quán)矩陣Wij的計(jì)算如式(2)所示。
(2)
其中,N(xi,xj)表示xi是xj的k近鄰,或者xj是xi的k近鄰。t為熱核參數(shù),根據(jù)經(jīng)驗(yàn)設(shè)定。Wij表示xi和xj之間的近鄰關(guān)系。
Kij=K(xi,xj)=〈Φ(xi)·Φ(xj)〉=ΦT(xi)·Φ(xj)
(3)
在應(yīng)用KLPP之前,對核矩陣K進(jìn)行中心化,得到式(4)。
(4)
通過求解式(5)的最小特征值所對應(yīng)的特征向量,得到保留局部結(jié)構(gòu)信息的低維投影矩陣A。
(5)
在滑動(dòng)窗口KLPP(moving window kernel locality preserving projections,MWKLPP)算法中,移動(dòng)固定長度的窗口對數(shù)據(jù)進(jìn)行測試,當(dāng)新的正常樣本塊可用時(shí),通過從KLPP模型中刪除最老的樣本并添加新樣本,從而得到新的窗口數(shù)據(jù),用來更新KLPP模型。
(6)
應(yīng)用T2統(tǒng)計(jì)量及其控制限進(jìn)行故障監(jiān)測,T2統(tǒng)計(jì)量代表特征空間中變量的變化情況。
(7)
其中,Λ是對角矩陣,即Λ=diag(λ1,λ2,…,λl)。
T2統(tǒng)計(jì)量的控制限由F分布得到[15]。
(8)
式中:l為樣本塊中的主成分個(gè)數(shù),α為置信水平。
在傳統(tǒng)的MWKLPP中,窗口大小是固定的。通常,窗口大小應(yīng)該足夠大,以覆蓋建模和監(jiān)視所需的樣本數(shù)據(jù)。然而,較大的窗口會(huì)降低計(jì)算效率。當(dāng)過程快速變化時(shí),該窗口覆蓋了太多過時(shí)的樣本數(shù)據(jù),使得MWKLPP無法準(zhǔn)確跟蹤過程變化。較小的窗口容納的數(shù)據(jù)少,可以提高計(jì)算效率,但窗口內(nèi)的數(shù)據(jù)可能不能恰當(dāng)?shù)乇硎境鲎兞恐g的關(guān)系。太小的窗口可能會(huì)導(dǎo)致潛在的危險(xiǎn),因?yàn)樯傻哪P涂赡軙?huì)快速地適應(yīng)變化,以至于無法檢測到異常行為。
VMWKLPP方法在k時(shí)刻的窗口大小由式(9)計(jì)算[16]。
(9)
為了構(gòu)建穩(wěn)定的KLPP模型,窗口大小的閾值由式(10)確定。
(10)
Lmax和Lmin由閾值LTh確定。Lmax通常足夠大,從而使滑動(dòng)窗口能夠檢測某些緩慢變化的故障。Lmax越大,滑動(dòng)窗口包含的樣本數(shù)據(jù)越多,可能會(huì)導(dǎo)致計(jì)算效率的降低和模型適應(yīng)性的退化。考慮到計(jì)算效率,Lmax通常取(30~80)×LTh。Lmin越小,說明KLPP模型對過程變化快的適應(yīng)性越好。為了避免核矩陣的不準(zhǔn)確性或不可靠性,Lmin由Lmin~(4~6)×LTh定義,其最小值應(yīng)該等于閾值LTh。
考慮窗口大小的變化,采用VMWKLPP方法更新KLPP模型。通過離線建模確定最優(yōu)的KLPP模型,然后進(jìn)入在線監(jiān)測階段。
離線建模過程:
步驟1收集正常條件下的訓(xùn)練數(shù)據(jù)集并進(jìn)行標(biāo)準(zhǔn)化處理,構(gòu)造初始核矩陣并中心化;
步驟3建立KLPP模型,并確定保留的主成分個(gè)數(shù)l;
步驟5根據(jù)l和m計(jì)算閾值LTh,確定Lmax和Lmin;
在線監(jiān)測過程:
步驟2計(jì)算新的數(shù)據(jù)塊的核矩陣Knew∈nk+1×L,并且[Knk+1]j=[Knk+1(xnk+1,xj)],其中xj∈m,j=1,…,L是正常樣本;
步驟6如果Lk+1≤Lk,確定滑動(dòng)窗口大小,丟棄舊的(Lk-Lk+1)個(gè)樣本數(shù)據(jù),加入新的樣本塊后更新程序;否則,將新的樣本塊納入確定的窗口后更新程序,并設(shè)置Lk+1=Lk+nk+1;
步驟7更新KLPP模型并確定保留的主成分個(gè)數(shù);
步驟9返回步驟1,直到測試樣本全部檢測完畢。
田納西-伊斯曼(Tennessee Eastman,TE)過程是一個(gè)國際通用的模擬實(shí)際工業(yè)過程的仿真平臺(tái),國內(nèi)外學(xué)者將其廣泛應(yīng)用于故障檢測與診斷領(lǐng)域[17-20]。TE化工過程具有變量多、耦合性強(qiáng)的特點(diǎn)。TE過程共包含21種不同類型的故障數(shù)據(jù),訓(xùn)練集在正常工況下運(yùn)行25 h得到500個(gè)數(shù)據(jù)樣本,同樣測試集運(yùn)行48 h得到960個(gè)樣本,其中在測試集中第160個(gè)樣本后引入故障。
選取TE過程中的故障2、4、5、7、10、13、14和20作為測試數(shù)據(jù),故障具體描述如表1所示。將KLPP、MWKLPP與VMWKLPP方法進(jìn)行對比,通過誤報(bào)率和故障檢測率兩個(gè)檢測指標(biāo)來衡量算法的優(yōu)越性。
表1 TE過程故障描述
KLPP、MWKLPP和VMWKLPP 3種方法采用T2統(tǒng)計(jì)量進(jìn)行過程監(jiān)控,其中主成分個(gè)數(shù)均通過85%的累計(jì)方差貢獻(xiàn)率確定。在MWKLPP中,固定的滑動(dòng)窗口大小設(shè)定為270;在VMWKLPP中,采用基于訓(xùn)練數(shù)據(jù)集的離線學(xué)習(xí)得到初始KLPP模型的主成分個(gè)數(shù)為l=21,從而得到窗口的閾值LTh=16。參數(shù)Lmax、Lmin分別設(shè)為480(30×LTh)和64(4×LTh),α、β、ξ分別設(shè)為0.2、0.2和0.4,另外用測試集進(jìn)行在線自適應(yīng)過程監(jiān)測,塊樣本包含的樣本個(gè)數(shù)為4。圖1給出了故障5的窗口大小Lk的變化情況。可看出,如果數(shù)據(jù)樣本正常,則根據(jù)正常過程的變化快慢,可確定新的滑動(dòng)窗口大小,從而改變窗口內(nèi)的數(shù)據(jù)樣本,更有效地更新KLPP模型。最后窗口的大小會(huì)保持在一個(gè)相對穩(wěn)定的水平,是為了防止模型容納故障,造成故障檢測的不準(zhǔn)確性。
圖1 故障5窗口變化
圖2為KLPP、MWKLPP和VMWKLPP 3種方法對故障5的監(jiān)測結(jié)果。從圖2(a)可以看出,KLPP檢測故障5時(shí),故障初始出現(xiàn)可以檢測到,但是后續(xù)故障都在控制限下方,沒有被檢測出來。所以,KLPP只能檢測出少部分故障數(shù)據(jù),具有較低的檢測率。從圖2(b)中可以看到,使用固定窗口大小的傳統(tǒng)MWKLPP方法會(huì)產(chǎn)生一定的誤報(bào)警,且在后續(xù)的故障檢測中只能檢測到少部分故障。與傳統(tǒng)的KLPP和MWKLPP算法相比,VMWKLPP方法在沒有出現(xiàn)樣本誤報(bào)的情況下檢測出了所有的故障。因此KLPP和MWKLPP對故障5的檢測結(jié)果不理想,而VMWKLPP方法不僅全面地保持?jǐn)?shù)據(jù)集的局部結(jié)構(gòu)信息,還可以準(zhǔn)確地檢測到所有故障。
(a) KLPP
表2是3種方法對8種故障的誤報(bào)率和故障檢測率效果。相比KLPP和MWKLPP兩種算法,VMWKLPP算法的誤報(bào)率較低,故障檢測率也優(yōu)于其他兩種算法,其中對故障5和故障7的檢測率達(dá)到了100%。這說明VMWKLPP方法的檢測準(zhǔn)確性較高,驗(yàn)證了該方法在非線性和時(shí)變性的工業(yè)過程檢測中的有效性和可靠性。
表2 故障檢測效果對比
針對現(xiàn)代工業(yè)過程存在的非線性和時(shí)變性等特點(diǎn),提出一種基于可變滑動(dòng)窗口KLPP的故障檢測方法。VMWKLPP算法可保留非線性過程數(shù)據(jù)的局部信息,通過正常過程的變化,可以實(shí)時(shí)地調(diào)節(jié)滑動(dòng)窗口大小,提高運(yùn)算效率,降低內(nèi)存需求;動(dòng)態(tài)改變滑動(dòng)窗口中的數(shù)據(jù)樣本,同時(shí)更新KLPP模型以及控制限,實(shí)現(xiàn)其對非線性和時(shí)變過程的自適應(yīng)監(jiān)控。將本文方法應(yīng)用于田納西-伊斯曼工業(yè)過程,仿真結(jié)果表明,與KLPP和MWKLPP方法相比,VMWKLPP方法可以有效地降低誤報(bào)率并提高故障檢測性能,在非線性和時(shí)變性的工業(yè)過程檢測中有明顯的優(yōu)勢。所提出的方法對微小故障的效果不是很理想,下一步通過改進(jìn)檢測算法實(shí)現(xiàn)對微小故障的故障檢測。