郭金玉,張安寶, 李 元
(沈陽化工大學 信息工程學院, 遼寧 沈陽 110142)
近年來,因為科技與自動化水平的提高,工業(yè)生產(chǎn)過程變得越來越繁雜,這促使過程監(jiān)測控制越來越得到大家的關(guān)注[1-3].現(xiàn)在有關(guān)數(shù)據(jù)驅(qū)動的故障檢測算法已成為國內(nèi)和國外學術(shù)界的研究熱點,用獨立成分分析(independent component analysis,ICA)和主成分分析(principal component analysis,PCA)做引領(lǐng)的多元統(tǒng)計分析方法快速興起,而且衍生出大量新的故障檢測方法[4-6].PCA是一種對數(shù)據(jù)進行全局信息提取的方法,會造成局部信息的丟失,而且處理多模態(tài)問題效果不理想.多模態(tài)間歇過程的特征是非線性、時變性和多工況等,這使得多模態(tài)間歇過程的故障檢測具有挑戰(zhàn)性.近十幾年來,大量學者提出了多種多模態(tài)故障診斷方法[7-8].為了處理多模態(tài)間歇過程的故障檢測問題,He等[9]提出基于k近鄰(k-nearest neighbor,KNN)的故障檢測方法.KNN 算法對多模態(tài)問題是有效的,不過對于樣本量大的數(shù)據(jù)集KNN計算量很大,并且對方差差別很大的多模態(tài)樣本,檢測效果不理想.另外,KNN每進行一次檢測都會再次執(zhí)行整體計算.馬賀賀等[10]提出用局部離群因子(local outlier factor,LOF)的方法實現(xiàn)多模態(tài)過程的監(jiān)視與控制.由于LOF值對基于相異密度的數(shù)據(jù)集群都適用,因此,可以通過獲取目標的LOF值來更加準確地斷定噪聲點.不過該算法也有一定的局限性,其計算比較繁雜,準確性不高.最近幾年,以實時監(jiān)測多工況生產(chǎn)過程中的故障為目的,劉幫莉等[11]提出關(guān)于局部密度估量的多模態(tài)過程監(jiān)視控制方法;Deng等[12]提出關(guān)于局部近鄰相似度分析的多模態(tài)故障診斷方案,并運用到連續(xù)過程的故障診斷中;Yang等[13]提出了一個混合概率主成分分析(aligned mixture probabilistic principal component analysis,AMPPCA)的多模態(tài)故障診斷算法;Jiang等[14]提出基于聯(lián)合概率密度和雙加權(quán)的獨立成分分析的方法對多模態(tài)過程進行故障診斷.關(guān)于非等長的多模態(tài)問題,Guo等[15]提出了局部近鄰標準化矩陣(local neighbor normalized matrix,LNNM)的多模態(tài)故障診斷方案.
傳統(tǒng)的PCA算法能準確地對工業(yè)過程中的線性數(shù)據(jù)實現(xiàn)故障診斷,不過對繁雜的多模態(tài)過程檢測效果不理想.Guo等[16]提出了加權(quán)差分主成分分析(weighted differencial principal component analysis,WDPCA)的多模態(tài)故障診斷算法,這算法能讓離散程度差異不大的多模態(tài)數(shù)據(jù)在預處理后大致服從高斯分布.在每個模態(tài)間離散程度差異很大時,WDPCA對離散程度較小的模態(tài)中微弱故障點的檢測效果較差.為此本文提出一種基于二階差商PCA(second-order difference quotient PCA,SODQPCA)的故障檢測算法,用二階差商的方法對原始數(shù)據(jù)實現(xiàn)預處理,剔除原始數(shù)據(jù)的多模態(tài)特性;把通過預處理后的數(shù)據(jù)使用PCA 實現(xiàn)故障檢測.該方法能有效提升傳統(tǒng) PCA 在多模態(tài)數(shù)據(jù)中的檢測效果.
假設X是m×n維數(shù)據(jù)矩陣,m為樣本數(shù),n為變量數(shù),數(shù)據(jù)X可分解為n個向量外積之和,即
(1)
一般數(shù)據(jù)的變化體現(xiàn)在前l(fā) (2) 式中:ti是得分(score)向量;Pi是負載(loading)向量;X的得分向量也稱為X的主元.用ti組建的矩陣T叫做得分矩陣,用Pi構(gòu)建的矩陣P叫做負載矩陣. 差分算法[17]是一種線性化方法,能將多模態(tài)數(shù)據(jù)預處理為單模態(tài)數(shù)據(jù)進行檢測.為了消除數(shù)據(jù)的多模態(tài)特性,將差分算法引入到數(shù)據(jù)預處理中,其計算方式為 (3) (4) (5) 一次差分消除數(shù)據(jù)的多中心結(jié)構(gòu),同時能保持當前樣本與其近鄰之間的位置信息.為了描述數(shù)據(jù)的結(jié)構(gòu)差異,定義樣本xi的二次差分如下: dd=ω[d-d(k)]. (6) 這里的ω=1/‖d(k)‖是一個權(quán)重參數(shù).原始數(shù)據(jù)經(jīng)過二階差商運算后,消除數(shù)據(jù)的多模態(tài)特性,也消除了模態(tài)間的方差差異. 傳統(tǒng)的PCA算法通常僅用在單模態(tài)線性數(shù)據(jù)的過程檢測,對多模態(tài)數(shù)據(jù)的檢測性能下降.為了提升PCA在模態(tài)間離散程度差異顯著的多模態(tài)數(shù)據(jù)檢測中的性能,本文提出一種二階差商PCA的故障檢測算法.運用二階差商算法消除原始數(shù)據(jù)中多模態(tài)特性和每個模態(tài)的方差差異,再運用PCA進行檢測,能有效提升傳統(tǒng)PCA在離散程度差異顯著的多模態(tài)數(shù)據(jù)檢測中的效果.二階差商PCA算法對多模態(tài)過程實現(xiàn)故障檢測,具體分為兩個步驟:離線建模與在線檢測. 離線建模過程如下: (1) 獲取正常操作的數(shù)據(jù)集.如果有n個傳感器,每一個傳感器有m個采樣點,則測量數(shù)據(jù)矩陣為X=[x1,x2,…,xm]T∈Rm×n,式中X的每一列為一個測量變量,X的每一行為一個測量樣本. (2) 利用二階差商法對X進行預處理,消除原始數(shù)據(jù)中多模態(tài)特性和模態(tài)間的方差差異. (3) 把預處理之后的數(shù)據(jù)矩陣歸一化,讓它的每列具有均值為0和方差為1的特性,X1是歸一化后的矩陣. (4) 計算歸一化后矩陣X1的協(xié)方差矩陣S,求其特征向量與特征值. (7) (5) 選擇主元數(shù)l,負載矩陣P由前l(fā)個特征向量組成. (6) 計算得分矩陣T: T=XP. (8) (8) 計算檢測指標SPE(Q)與T2: Q=eeT=X(I-PPT)XT, (9) T2=XTPΛ-1PTX. (10) (9) 運用核密度估計法[18-19](kernel density estimation,KDE)分別求出SPE與T2的控制限. 在線檢測過程如下: (1) 對于新來的一個樣本xnew,運用二階差商算法預處理后為xnew1,再使用建模數(shù)據(jù)的均值和方差將xnew1歸一化為xnew2. 現(xiàn)給出兩個例子,分別驗證基于二階差商PCA的多模態(tài)過程故障檢測方法的有效性.第一個例子是具有稀疏多模態(tài)特性的數(shù)值例子;第二個例子是半導體生產(chǎn)過程數(shù)據(jù). 假設有兩個不同模態(tài)的數(shù)據(jù),每個模態(tài)都有400個樣本,每個樣本有6個變量,在每個模態(tài)中是獨立的.在模態(tài)1中,變量x1和x2均服從[-100,1]的正態(tài)分布,變量x3和x4均服從[18,26]的正態(tài)分布,變量x5和x6均服從[-23,7]的正態(tài)分布;在模態(tài)2中,變量x1和x2均服從[13,20]的正態(tài)分布,變量x3和x4均服從[-70,6]的正態(tài)分布,變量x5和x6均服從[10,22]的正態(tài)分布.圖1是訓練樣本、校驗樣本和故障樣本的數(shù)據(jù)分布散點圖. 圖1 數(shù)據(jù)分布散點圖Fig.1 Scatter plot of data distribution 對多模態(tài)數(shù)值例子,運用PCA、差分主成分分析(differencial principal component analysis,DPCA)[17]、WDPCA和SODQPCA方法的檢測結(jié)果如圖2所示. 圖2 四種算法對多模態(tài)數(shù)值例子的檢測結(jié)果Fig.2 Detection results of four algorithms for multi-modal numerical examples 通過累計貢獻率來計算四種算法的主元數(shù).從圖2可以看出:PCA算法的SPE統(tǒng)計量檢測到3個故障樣本,誤報了28個樣本;T2統(tǒng)計量檢測到1個故障樣本,誤報了15個樣本.DPCA算法的SPE統(tǒng)計量檢測到3個故障樣本,誤報了22個樣本;T2統(tǒng)計量檢測到3個故障樣本,誤報了23個樣本.WDPCA算法的SPE統(tǒng)計量檢測到3個故障樣本,誤報了24個樣本;T2統(tǒng)計量檢測到3個故障樣本,誤報了9個樣本.SODQPCA算法的SPE統(tǒng)計量檢測到所有的故障樣本,誤報了17個樣本;T2統(tǒng)計量檢測到4個故障樣本,誤報了3個樣本.與 PCA、DPCA和WDPCA方法相比,SODQPCA故障檢測率較高,誤報率相對較低,從而驗證SODQPCA算法的有效性. 表1為PCA、DPCA、WDPCA和SODQPCA算法對多模態(tài)數(shù)據(jù)的檢測結(jié)果. 表1 多模態(tài)數(shù)值例子的檢測結(jié)果Table 1 Detection results of multi-modal numerical example 從表1可以看出:SODQPCA算法有誤報,但與其他三種算法相比,誤報率較低,而且算法的故障檢測效果也最好.綜上所述,SODQPCA檢測效果是四種算法中最好的,驗證了該方法對多模態(tài)數(shù)據(jù)故障檢測的優(yōu)越性. 半導體生產(chǎn)過程作為一個完善的工業(yè)過程仿真平臺,廣泛應用于基于數(shù)據(jù)驅(qū)動的故障檢測領(lǐng)域.現(xiàn)應用半導體工業(yè)實例——A1堆腐蝕過程[20-23]的數(shù)據(jù)比較四種故障檢測方法的性能.半導體工業(yè)數(shù)據(jù)中有3個模態(tài)的108個正常硅片與21個故障硅片數(shù)據(jù).因為兩個批次存在數(shù)據(jù)丟失,導致能用的僅有107個正常批次與20個故障批次的數(shù)據(jù).其中第一模態(tài)由1~34批次構(gòu)成,第二模態(tài)由35~70批次構(gòu)成,第三模態(tài)由71~107批次構(gòu)成.在每個模態(tài)中隨機選32個批次來建立模型,其他的正常批次當作校驗批次以證明模型的可靠性,所以建模批次為96個,11個正常校驗批次,20個故障批次.在40個測量變量中選取17個變量[15]. 每一個批次都是不等長的,持續(xù)時間在95~112 s 之間.本文采取最短長度法得到等長的批次數(shù)據(jù).因為傳感器開始時存在波動,丟棄開始的5個樣本,用剩下的85個樣本來迎合最短的批次. 把三維建模數(shù)據(jù)X(96×85×17)、校驗數(shù)據(jù)V(11×85×17)和故障數(shù)據(jù)F(20×85×17)分別沿著批次方向展開為二維矩陣X(96×1445)、V(11×1445)和故障數(shù)據(jù)F(20×1445).對二維數(shù)據(jù)矩陣分別運用PCA、DPCA、WDPCA和SODQPCA方法進行建模,對11個校驗批次與20個故障批次進行故障檢測.圖3為PCA、DPCA、WDPCA和SODQPCA算法對半導體數(shù)據(jù)的檢測結(jié)果.從圖3可以看出:PCA算法的SPE統(tǒng)計量檢測到17個故障批次,誤報了3個批次;T2統(tǒng)計量檢測到5個故障批次,沒有誤報批次.DPCA算法的SPE統(tǒng)計量檢測到18個故障批次,誤報了3個批次;T2統(tǒng)計量檢測到5個故障批次,沒有誤報批次.WDPCA算法的SPE統(tǒng)計量檢測到18個故障批次,誤報了1個批次;T2統(tǒng)計量檢測到15個故障批次,沒有誤報批次.SODQPCA算法的SPE統(tǒng)計量檢測到全部的故障批次,而且沒有誤報批次;T2統(tǒng)計量檢測出5個故障批次,沒有誤報批次. 圖3 四種算法對半導體過程數(shù)據(jù)的檢測結(jié)果Fig.3 Detection results of four algorithms for semiconductor process data 與其他三種算法相比,SODQPCA算法在半導體數(shù)據(jù)的故障檢測中效果最好,說明該算法可以有效地處理多模態(tài)數(shù)據(jù),提高了傳統(tǒng)PCA算法對多模態(tài)數(shù)據(jù)的檢測效果. 表2為四種算法對半導體數(shù)據(jù)的檢測結(jié)果.由表2能夠看出:SODQPCA的故障檢測效果最好,SODQPCA算法的SPE檢測指標檢測到所有的故障批次,而且沒有出現(xiàn)誤報,明顯好于其他三種算法.綜上所述,與其他三種算法對比,SODQPCA算法有較低的誤報率與漏報率,說明這個方法對多模態(tài)數(shù)據(jù)的故障檢測非常有效,驗證了該算法的有效性和優(yōu)越性. 表2 四種算法對半導體數(shù)據(jù)的檢測結(jié)果Table 2 Detection results of four algorithms for semiconductor data 續(xù)表 提出一種基于二階差商PCA的多模態(tài)過程故障檢測方法.該算法適用于模態(tài)間稀疏程度不一致的多模態(tài)過程故障檢測,可以最大化地分離多模態(tài)的正常數(shù)據(jù)和故障數(shù)據(jù).利用二階差商的方法對原始數(shù)據(jù)進行預處理,可以有效去除原始數(shù)據(jù)的多模態(tài)特性和模態(tài)間的方差差異,改良傳統(tǒng)PCA算法在多模態(tài)數(shù)據(jù)檢測過程中的不足.把這個方法應用于數(shù)值例子和實際的半導體工業(yè)過程中,與傳統(tǒng)的故障檢測算法比較,該算法的故障檢測率最高,誤報率較低,證明了這個算法的優(yōu)越性.1.2 差分算法
1.3 二階差商預處理算法
1.4 二階差商PCA算法在故障檢測中的應用
2 仿真結(jié)果與分析
2.1 數(shù)值例子
2.2 半導體生產(chǎn)過程數(shù)據(jù)
3 結(jié) 論