袁 杰, 郭小萍, 李 元
(沈陽化工大學(xué) 信息工程學(xué)院, 遼寧 沈陽 110142)
批次過程因其操作方便、附加值高等特點,被廣泛應(yīng)用到工業(yè)過程中.業(yè)內(nèi)普遍認為通過對批次過程細節(jié)上的深入研究而更加深入地了解批次的運行狀態(tài),會促進生產(chǎn)力的進一步提升[1].但是批次過程靈活方便的操作特點也導(dǎo)致了復(fù)雜的數(shù)據(jù)特點,比如,批次過程數(shù)據(jù)的非線性關(guān)系、多操作工況、工時不等長、多時段、時段不等長等,這些特點導(dǎo)致批次過程的過程監(jiān)控面臨很多問題,如何處理批次過程的這些復(fù)雜特征成為熱點.
針對批次過程的非線性處理,許多學(xué)者提出了不同方法.Nomikos和MacGregor提出了多向主元分析(MPCA)[2-3],將PCA算法應(yīng)用到充滿復(fù)雜統(tǒng)計特征的批次數(shù)據(jù)中,由此衍生的基于PCA的很多算法也被提出來.但PCA方法不能全部提取出過程數(shù)據(jù)中的信息,因為PCA算法最初的應(yīng)用領(lǐng)域是針對線性數(shù)據(jù)矩陣的.近年來,He Peter等提出一種基于近鄰思維的kNN算法,這種算法并不在乎所處理的數(shù)據(jù)線性與否,但是在變量較多的情況下,該算法的計算量和存儲量較大.使用PCA算法首先對原始數(shù)據(jù)進行降維,再進行kNN處理,即PC-kNN[4],這種算法可有效減少計算量,然而,主元個數(shù)選擇較少時,丟棄的原始信息有些多.近年來,核函數(shù)方法被廣泛地應(yīng)用于處理批次過程非線性問題.在這些核函數(shù)方法中,核主元分析因為其能迅速提取原始數(shù)據(jù)的非線性特征而(KPCA)應(yīng)用最廣.
本文結(jié)合KPCA和kNN的優(yōu)點,提出一種KPC-kNN方法,使用核函數(shù)將原始的過程中有復(fù)雜非線性和耦合關(guān)系的低維數(shù)據(jù)映射到高維的線性空間中,在高維的線性空間中,使用PCA,將絕大部分信息提取出來,對這部分數(shù)據(jù)進行kNN處理.仿真實驗驗證了所提方法的有效性.
作為非線性數(shù)據(jù)和線性數(shù)據(jù)之間的重要的聯(lián)系,基于核思想的方法最早要追溯到20世紀20年代.在20世紀60年代后期,核方法首先被應(yīng)用到模式識別中解決非線性問題.近年來,核方法逐漸受到人們的關(guān)注,很多基于核思想的新方法被提出.
核方法是對于一類非線性操作的總的稱呼,這些方法的共同特點是都使用核函數(shù)將低維的非線性數(shù)據(jù)空間映射到高維的線性核空間中[5],然后,在高維的線性空間中就可以應(yīng)用各種其他檢測算法,以此去除過程數(shù)據(jù)的非線性特點.通過核方法進行計算,去掉過程的非線性特點,計算可以更加精確.常用的核函數(shù)如下所示.
線性核函數(shù):
K(x,xi)=x·xi
(1)
多項式核函數(shù):
K(x,xi)=[x·xi+1]p
(2)
徑向基核函數(shù)(RBF):
(3)
核主元分析定義:假設(shè)x1,x2,…,xM是訓(xùn)練數(shù)據(jù),所以{xi}可以代表原始的輸入空間.核主元分析的主要方法是使用某種映射函數(shù)將輸入空間的低維非線性數(shù)據(jù)映射到高維線性空間中,即特征空間.在特征空間里就可以使用主元分析方法,因為PCA算法要求數(shù)據(jù)必須是線性關(guān)系的.假設(shè)相應(yīng)的映射函數(shù)是Φ,通過這個核函數(shù),輸入空間的數(shù)據(jù)可以映射到特征空間F中,特征空間中的數(shù)據(jù)應(yīng)當符合以下公式:
(4)
特征空間的協(xié)方差矩陣可以表示為:
(5)
特征空間的特征值和特征向量滿足:
Cv=λv
(6)
然后
Φ(xv)·Cv=λ(Φ(xv)·v)
(7)
考慮到所有的特征向量是輸入空間的線性組合Φ(x1),Φ(x2),…,Φ(xM),因此有:
(8)
然后
Φ(xw)Φ(xw)TΦ(xu))=
(9)
在(9)式中,v=1,2,…,M.定義一個M×M的數(shù)據(jù)矩陣K.
Kuv=Φ(xu)·Φ(xv)
(10)
因此公式 (9)可以簡化為:
Mλα=Kα
(11)
求解公式(11),即可求得特征值和特征向量.
當公式 (4)不滿足時,需要對Φ進行修正處理:
u=1,2,…,M.
(12)
核特征空間被修正為:
(13)
在這個特征矩陣中可以應(yīng)用PCA算法,計算出T2和SPE并用來做檢測指標.
kNN算法剛開始時被當做一種非參數(shù)的聚類方法來應(yīng)用.k最近鄰分類原則就是通過某個采樣點的性質(zhì)來預(yù)測其周圍樣本的性質(zhì).假如一個樣本具有某種屬性,那么其周圍的樣本也一定具有這樣的性質(zhì).kNN方法用于故障檢測的原理是:一個待檢測的樣本如果與訓(xùn)練樣本的大部分數(shù)據(jù)離的比較近,那么它就是正常的,如果其遠離了訓(xùn)練樣本的主要聚集區(qū),它很有可能是故障的樣本.為了便于評價新來的待檢測樣本與建模樣本的性質(zhì),kNN算法中使用標定的樣本與其最近鄰的k個樣本之間的歐氏距離的平方和作為統(tǒng)計指標.算法的具體操作如下所示.
(1) 建模階段
步驟1:對于所有用來建模的訓(xùn)練樣本{X1,X2,…,XM},尋找與其相距最小的k個近鄰樣本,計算kNN平方距離,kNN的平方距離公式為:
步驟2:當計算出所有樣本的Ds之后,就可以通過核密度估計的方法求得這個Ds序列的累積分布函數(shù),在設(shè)定置信區(qū)間的情況下,即得到該置信度下的控制限.
(2) 檢測過程
步驟2:將Dx與控制限D(zhuǎn)s進行比較,如果Dx在控制限上方,則認為該樣本是故障樣本,反之,則認為該樣本是正常樣本.
對于上述兩種算法,當變量個數(shù)特別多時,復(fù)雜的計算量不可避免.針對kNN 和 KPCA 算法的局限性,KPC-kNN可以在保證檢測精度的同時,大幅度減少計算量.
(1) KPC-kNN的建模流程
步驟1:多批次過程數(shù)據(jù)按批次方向展開,并進行等長化處理,求取各列的均值和標準差.將建模數(shù)據(jù)進行標準化.
步驟2:標準化后的數(shù)據(jù)進行KPCA的操作,將數(shù)據(jù)映射到高維空間中,選擇主元個數(shù),并求取主元空間.
步驟3:在主元空間中使用kNN算法,結(jié)算每一個樣本的Ds,將Ds序列使用核密度估計的方法求取控制限.
(2) KPC-kNN的檢測流程
步驟1:新樣本按批次方向展開,等長化處理,使用建模所得均值和標準差進行標準化操作.
步驟2:對新樣本使用KPCA,得到在特征空間下的數(shù)據(jù)量.
步驟3:計算步驟2中數(shù)據(jù)量與建模樣本的Dx,并與控制限做比較,確定是否為故障.
建模和檢測的算法流程如圖1所示.
圖1 KPC-kNN算法流程Fig.1 Flowchart of KPC-kNN method
使用半導(dǎo)體工業(yè)數(shù)據(jù)來說明所提算法的有效性.該工業(yè)過程的數(shù)據(jù)來源于在Lam 9600上進行的半導(dǎo)體鋁蝕反應(yīng)[4,6-7].包含108批次的正常數(shù)據(jù)和21批次的故障數(shù)據(jù),因為有2個批次的數(shù)據(jù)存在大量丟失的情況,最后能用的建模數(shù)據(jù)是107批次,故障批次20批次.95批次正常數(shù)據(jù)用來建模、12批次的正常批次用來驗證建模的準確性,最終要檢測20批次的故障數(shù)據(jù)是否可以及時地被檢測出來.
在應(yīng)用該方法之前,需要對數(shù)據(jù)進行預(yù)處理.首先,從21個變量中選擇出17個變量用來建模.使用最短長度法,將所有批次處理成85個采樣時刻,并認為沒有重要的信息遺失.最終所有批次數(shù)據(jù)成為(95×17×85)的三向矩陣,按批次方向展開所有批次的數(shù)據(jù),如圖2所示.所有85個采樣時刻片(95×17)從三向數(shù)據(jù)中截取出來,并按順序排列成為兩向數(shù)據(jù).
圖2 批次過程3維數(shù)據(jù)展開方法Fig.2 Batch process 3-D data unfolded figure
在三向數(shù)據(jù)變?yōu)槎驍?shù)據(jù)后,減去均值除以標準差對所有數(shù)據(jù)進行標準化操作.當數(shù)據(jù)完成標準化后,即可對這些數(shù)據(jù)應(yīng)用各種算法.此處僅僅對比單純使用KPCA、kNN以及KPC-kNN算法,實驗結(jié)果如圖3~圖6所示.
圖3 KPCA的T2檢測圖Fig.3 Fault detection figure based on T2
圖4 KPCA的SPE檢測圖Fig.4 Fault detection figure based on SPE
圖5 kNN檢測圖Fig.5 Fault detection figure based on kNN
圖6 KPC-kNN檢測圖Fig.6 Fault detection figure based on KPC-kNN
各種方法檢測出的故障結(jié)果如表1所示.使用KPC-KNN算法,20 批次的故障可以檢測出17批次,但是使用KNN算法,僅僅檢測到16個批次的故障.根據(jù)數(shù)據(jù)提供的信息可知:4批沒有檢測出來的故障都是微弱故障.精度的提高是因為直接采用kNN算法操作時,有些重要性不強的變量變化干擾了過程的監(jiān)控.而提取主元后的特征空間kNN則不會面對這個問題.然而,使用KPCA方法進行檢測,兩個統(tǒng)計指標交叉驗證只檢測到了6個批次故障.
表1 三種方法故障數(shù)目檢測對比Table 1 The comparisons of different fault detection methods
結(jié)合kNN和KPCA各自的優(yōu)點,提出一種KPC-kNN算法.在離線檢測中,所提方法比單獨使用kNN或KPCA都要好.實驗結(jié)果驗證了所提方法在故障檢測中的良好效果.由于KPC-kNN算法提取建模數(shù)據(jù)非線性信息時使用了核函數(shù),且核函數(shù)參數(shù)值方法目前仍為行業(yè)難題,一般是根據(jù)實驗經(jīng)驗選取,所以這可能限制該方法的進一步推廣
參考文獻:
[1] 李元,謝植,周東華,等.MPCA在間歇反應(yīng)過程故障診斷中的應(yīng)用[J].化工自動化及儀表,2003,30(4):10-12.
[2] Nomikos P,MacGregor J F.Multivariate SPC Charts for Monitoring Batch Processes[J].Technometrics,1995,7(1):41-57.
[3] Nomikos P,MacGregor J F.Monitoring and Batch Processes Using Multi-way Principal Component Analysis[J].AlChE Journal,1994,40(8):1361-1375.
[4] He Q P,Wang J.Principal Component Based k-Nearest-Neighbor Rule for Semiconductor Process Fault Detection[C]// 2008 American Control Conference.Seattle,WA:IEEE,2008:1606-1611.
[5] Lee J M,Yoo C K,Choi S W,et al.Nonlinear Process Monitoring Using Kernel Principal Component Analysis[J].Chemical Engineering Science,2004,59(1):223-234.
[6] He Q P,Wang J.Fault Detection Using the k-Nearest Neighbor Rule for Semiconductor Manufacturing processes[J].IEEE Transactions on Semiconductor Manufacturing,2007,20(4):345-354.
[7] 郭小萍,袁杰,李元.基于特征空間k最近鄰的批次過程監(jiān)視[J].自動化學(xué)報,2014,40(1):135-142.