郭金玉, 劉玉超, 李 元
(沈陽化工大學(xué) 信息工程學(xué)院, 遼寧 沈陽 110142)
近年來,隨著生產(chǎn)過程的復(fù)雜化與智能化,基于數(shù)據(jù)驅(qū)動的工業(yè)過程故障檢測方法[1-6]備受國內(nèi)外學(xué)者關(guān)注.主成分分析[7-11](principal component analysis,PCA)作為最早的統(tǒng)計過程控制算法,可以對數(shù)據(jù)進(jìn)行降維,最大程度地保持了原有數(shù)據(jù)的信息.但是PCA是一種線性算法,在多模態(tài)非高斯分布的情況下,PCA方法得出的主元可能并不是最優(yōu)的,此時在尋找主元時不能將方差作為衡量重要性的標(biāo)準(zhǔn),具有一定的局限性.
為了克服PCA的局限性,提高工業(yè)生產(chǎn)過程的故障檢測率,He等[12]提出基于k近鄰(knearest neighbor,kNN)的工業(yè)過程故障檢測方法,通過計算已知樣本點到其k近鄰樣本的距離來實現(xiàn)故障檢測,解決了工業(yè)過程的非線性和多模態(tài)問題.為了解決工業(yè)過程批處理數(shù)據(jù)的高維性和多條件性故障檢測問題,Li等[13]提出一種局部保持測地線距離-k近鄰(locality preserving geodesic distance-knearest neighbor,LPGD-kNN)方法,該方法通過對局部鄰域(LNS)進(jìn)行標(biāo)準(zhǔn)化處理,克服了多條件下預(yù)處理數(shù)據(jù)的特點,然后,利用局部保持投影方法提取多模態(tài)批次數(shù)據(jù)的自適應(yīng)變換矩陣,形成新的建模數(shù)據(jù).與傳統(tǒng)的kNN方法不同,基于測地線距離的kNN方法提取相似信息,構(gòu)造統(tǒng)計指標(biāo)進(jìn)行故障檢測,準(zhǔn)確表征局部區(qū)域內(nèi)非線性數(shù)據(jù)的最短距離.為了檢測非線性多模態(tài)工業(yè)過程中的故障,Zhong[14]等提出一種基于k近鄰核獨立分量分析的故障檢測方法,該方法將過程數(shù)據(jù)與其k近鄰進(jìn)行標(biāo)準(zhǔn)化處理,消除多模態(tài)特性,考慮到數(shù)據(jù)變量之間的非線性相關(guān)性,利用核函數(shù)技術(shù)將原始非線性空間中的數(shù)據(jù)映射為線性空間,最后應(yīng)用獨立分量分析(independent component analysis,ICA)構(gòu)造故障檢測的監(jiān)測統(tǒng)計量.但是,上述kNN及其擴(kuò)展算法對于工業(yè)過程方差差異明顯的多模態(tài)問題依然存在局限性.為了克服kNN的局限性,馮立偉[15]等將PCA與kNN相結(jié)合,并利用距離的權(quán)重對統(tǒng)計量進(jìn)行加權(quán),提出主元-加權(quán)kNN(PCA and weightedk-nearest neighbor,PC-WkNN)方法.與此同時,Guo[16]等分析了傳統(tǒng)的kNN方法在密集模態(tài)下微弱故障的檢測性能較差,提出一種基于概率密度kNN(kNN based on probability density,PD-kNN) 的多模態(tài)故障檢測方法,該方法建立多個模型,實現(xiàn)多模態(tài)故障檢測,不需要考慮模態(tài)間的不同方差差異,避免了小方差模態(tài)的微弱故障漏檢的問題.為了建立單個模型提高傳統(tǒng)kNN算法對方差差異明顯的多模態(tài)過程監(jiān)控性能,本文研究二階差商kNN(kNN based on second order difference quotient,SODQ-kNN)在多模態(tài)過程故障檢測中的應(yīng)用,其主要思想是運用二階差商算法對原始數(shù)據(jù)進(jìn)行預(yù)處理,消除多模態(tài)和方差差異特性,在此基礎(chǔ)上運用kNN進(jìn)行故障檢測.
(1)
現(xiàn)用一個數(shù)值例子說明kNN算法的不足.隨機(jī)生成一個方差差異較大的兩個模態(tài)實例:模態(tài)1中,變量x1和x2為服從[0,0.05]的正態(tài)分布;模態(tài)2中,變量x1和x2為服從[3,1]的正態(tài)分布.每個模態(tài)分別產(chǎn)生100個正常樣本,另外產(chǎn)生一個密集模態(tài)的故障樣本.原始數(shù)據(jù)的散點圖如圖1所示.在kNN算法中,近鄰數(shù)選2,利用kNN方法對該例子進(jìn)行故障檢測,其結(jié)果如圖2所示.從圖2可以看出:故障點在控制限下方,被模態(tài)2的樣本覆蓋.因此,利用近鄰距離的平方和并不能將故障點與模態(tài)2的正常樣本區(qū)分出來,kNN方法很難檢測這類微弱故障.
圖1 數(shù)據(jù)分布散點圖Fig.1 Scatter plot of data distribution
圖2 kNN對訓(xùn)練與故障樣本的檢測結(jié)果Fig.2 Detection result of kNN for training and fault samples
為了剔除數(shù)據(jù)的多模態(tài)特性,郭金玉等[17]提出運用差分(difference,DIF)算法對數(shù)據(jù)進(jìn)行預(yù)處理,其計算方式為
(2)
圖3 DIF預(yù)處理的數(shù)據(jù)散點圖Fig.3 Scatter plot of preprocessed data by DIF
為了克服上述問題的缺陷,剔除各模態(tài)間的方差差異,Zhang[18]等提出近鄰差分算法,對于樣本xi先找到它的第k個近鄰樣本xi,k,進(jìn)行DIF得到
(3)
再運用同樣的方法,找到樣本xi,k的第k個近鄰樣本xi,kk,再進(jìn)行一次DIF得到
(4)
利用兩次DIF消除數(shù)據(jù)的多中心結(jié)構(gòu),同時保持當(dāng)前樣本與其近鄰之間的位置信息.為了描述數(shù)據(jù)的空間結(jié)構(gòu)差異,定義樣本xi的二階差商(second order difference quotient,SODQ)如下:
(5)
根據(jù)公式(5)運算后,不僅消除了數(shù)據(jù)的多模態(tài)特性,同時消除了各模態(tài)間的方差差異.同樣利用SODQ方法對以上數(shù)值例子進(jìn)行數(shù)據(jù)預(yù)處理,得到的數(shù)據(jù)散點圖如圖4所示.從圖4看出,SODQ可以將原始數(shù)據(jù)的多模態(tài)特征和方差差異消除,同時能夠分離出密集模態(tài)的微弱故障.
基于SODQ-kNN的多模態(tài)過程故障檢測方法由建模過程和在線檢測兩部分構(gòu)成.
(1) 建模過程
(2) 故障檢測
① 新來的測試數(shù)據(jù)xnew,在訓(xùn)練樣本中尋找其k近鄰樣本xnew,k,再尋找樣本xnew,k的k近鄰樣本xnew,kk,進(jìn)行SODQ運算.
② 用SODQ矩陣代替測試數(shù)據(jù)來確定統(tǒng)計量d.
利用一個多模態(tài)數(shù)值例子[19]來驗證SODQ-kNN算法對模態(tài)間離散程度較大的多模態(tài)工業(yè)過程檢測的有效性.產(chǎn)生數(shù)據(jù)的模型為:
(6)
其中e1、e2和e3均為服從[0,0.01]分布的白噪聲.
模態(tài)1:s1和s2為[5,0.1]的正態(tài)分布.
模態(tài)2:s1和s2為[-5,0.5]的正態(tài)分布.
在每個模態(tài)中分別生成100個數(shù)據(jù)集,作為原始訓(xùn)練數(shù)據(jù)集.再從每個模態(tài)中生成100個樣本,組成校驗測試數(shù)據(jù)集.通過在變量上設(shè)置偏移產(chǎn)生6個故障點組成故障集.圖5為數(shù)據(jù)分布散點圖.從圖5可以看出,其為各模態(tài)間離散程度較大的多模態(tài)實例,其中編號為f1、f2和f5的故障數(shù)據(jù)靠近密集模態(tài).
圖5 多模態(tài)數(shù)據(jù)散點圖Fig.5 Scatter plot of multimodal data
分別用PCA、kNN、PC-kNN和SODQ-kNN方法對以上數(shù)據(jù)集進(jìn)行故障檢測,結(jié)果如圖6所示.其中:PCA和PC-kNN方法的主元個數(shù)通過累計貢獻(xiàn)率確定,主元個數(shù)為7;在kNN中,近鄰數(shù)k=3;在SODQ-kNN中,選取近鄰樣本k=3.從圖6可以看出:在PCA算法中,SPE統(tǒng)計量檢測樣本時有4個漏報,8個誤報;T2統(tǒng)計量也有4個漏報,8個誤報.在kNN算法中,有3個樣本漏報,8個誤報.在PC-kNN算法中,有3個漏報,10個樣本誤報.在SODQ-kNN算法中,沒有出現(xiàn)漏報,在誤差允許范圍內(nèi)出現(xiàn)4個誤報.將SODQ-kNN與PCA、kNN和PC-kNN方法進(jìn)行對比可以看出,SODQ-kNN故障檢測率最高,誤報率最低,驗證了SODQ-kNN算法的優(yōu)越性.
圖6 四種方法對多模態(tài)數(shù)據(jù)的檢測結(jié)果Fig.6 Detection results of four methods for multimodal data
半導(dǎo)體仿真平臺[20-21]作為一個典型的時變、非線性和多模態(tài)間歇過程,被廣泛應(yīng)用于工業(yè)過程故障檢測領(lǐng)域.生產(chǎn)過程數(shù)據(jù)由3個模態(tài)組成,其中包括107個正常批次和20個故障批次.在每個模態(tài)中分別選取32個批次建模,其余正常批次作為校驗批次,因此建模批次為96個,正常校驗批次為11個,故障批次為20個.在 21個測量變量中選取 17個變量作為過程檢測變量,如表1所示.
表1 半導(dǎo)體生產(chǎn)過程所用的檢測變量Table 1 Detection variables used in semiconductor manufacturing process
數(shù)據(jù)集中EndPt A變量如圖7所示.從圖7可以看出:每個批次是不等長的,持續(xù)時間在95~112 s變化,根據(jù)最短長度法獲得等長批次.為了消除初始波動對傳感器的影響,去除開始的5個樣本,保留85個樣本適應(yīng)最短的批次.將三維建模數(shù)據(jù)X(96×85×17)沿批次方向展開成二維數(shù)據(jù)矩陣,得到X(96×1445).同樣,將校驗數(shù)據(jù)和故障數(shù)據(jù)也展開成二維數(shù)據(jù)矩陣.
圖8是半導(dǎo)體數(shù)據(jù)的前兩個主元空間分布圖.從圖8可以看出:數(shù)據(jù)分布在不同的區(qū)域內(nèi),故障3和故障9可以看成是密集模態(tài)的虛弱故障,kNN和PC-kNN很難檢測出這類故障.
圖8 主元空間分布散點圖Fig.8 Scatter plot of data distribution in principal component space
對二維數(shù)據(jù)矩陣分別運用PCA、kNN、PC-kNN 和SODQ-kNN方法進(jìn)行建模,并對11個校驗批次和20個故障批次數(shù)據(jù)進(jìn)行故障檢測.PCA和PC-kNN方法的主元個數(shù)由累計貢獻(xiàn)率決定.在kNN中,近鄰數(shù)k=3;在PC-kNN中,近鄰數(shù)k=5;在SODQ-kNN中,近鄰數(shù)k=3.四種方法的檢測結(jié)果見圖9,圖中虛線代表95%控制限.從圖9可知:PCA的SPE統(tǒng)計量檢測出17個故障數(shù)據(jù),5個校驗數(shù)據(jù)出現(xiàn)誤報;T2統(tǒng)計量沒有出現(xiàn)誤報,而故障數(shù)據(jù)僅檢測出5個.kNN算法沒有出現(xiàn)誤報,但是故障數(shù)據(jù)僅檢測出16個.PC-kNN算法沒有出現(xiàn)誤報,故障數(shù)據(jù)也僅檢測出16個.SODQ-kNN算法沒有出現(xiàn)誤報,檢測出全部故障.與PCA、kNN和PC-kNN算法相比,SODQ-kNN算法的檢測效果最好,驗證了基于二階差商kNN算法在方差差異明顯的多模態(tài)過程故障檢測中的有效性.
圖9 四種方法對半導(dǎo)體數(shù)據(jù)的故障檢測Fig.9 Fault detection of semiconductor data by four methods
現(xiàn)用PCA、kNN、PC-kNN 和SODQ-kNN方法對96個批次進(jìn)行建模,并對11個校驗批次和20個故障批次數(shù)據(jù)進(jìn)行檢測.在PCA和PC-kNN方法中,其主元個數(shù)根據(jù)累計貢獻(xiàn)率決定,主元個數(shù)為3.在kNN方法中,選取近鄰數(shù)k=3;在PC-kNN算法中,選取近鄰數(shù)k=5;在SODQ-kNN中,近鄰數(shù)k=3.表2 是四種方法對半導(dǎo)體數(shù)據(jù)的檢測結(jié)果對比.由表2可以看出:PCA算法的SPE檢測指標(biāo)故障檢測率較高,但是其誤報率也相對較高;T2檢測指標(biāo)沒有誤報,但其故障檢測率較低,效果不如SODQ-kNN算法.SODQ-kNN算法和kNN算法均沒有誤報,但是SODQ-kNN算法的故障檢測率要高于kNN算法.PC-kNN算法沒有誤報率,但是未檢測出全部的故障.綜上所述,與其他三種算法對比,SODQ-kNN算法在沒有誤報的情況下,故障檢測率最高,說明該方法在工業(yè)過程的故障檢測中具有很好的檢測效果.
表2 四種方法對半導(dǎo)體數(shù)據(jù)的檢測結(jié)果對比Table 2 Comparisons of detection results of four methods for semiconductor data
研究SODQ-kNN在多模態(tài)過程故障檢測中的應(yīng)用.該方法先對數(shù)據(jù)進(jìn)行一次DIF運算,去除數(shù)據(jù)的多中心,再進(jìn)行SODQ運算,去除多模態(tài)數(shù)據(jù)之間的方差差異,建立kNN模型,克服傳統(tǒng)kNN的局限性,提高故障檢測性能.用數(shù)值例子和實際的半導(dǎo)體實例進(jìn)行檢驗,仿真實驗可以看出,與其他方法相比,SODQ-kNN算法可以有效地降低漏報率和誤報率,證明了該方法的有效性.