鄒振弘,印四華
(1.廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣州 510006;2.廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣州 510006)
輥道窯是重要的一類陶瓷窯爐,主要用于建筑陶瓷材料生產(chǎn),是陶瓷生產(chǎn)中主要的耗能設(shè)備。在陶瓷生產(chǎn)過程中,若由于物料、參數(shù)控制、人員等因素使得輥道窯的異常情況出現(xiàn),會導(dǎo)致產(chǎn)品瑕疵以及能源浪費(fèi)等問題,造成極大的經(jīng)濟(jì)損失,情況嚴(yán)重時(shí)甚至發(fā)生安全事故。實(shí)際情況下,通常采用人工巡查和根據(jù)經(jīng)驗(yàn)觀察儀器儀表等方式檢查發(fā)現(xiàn)異常情況,有耗費(fèi)人工、發(fā)現(xiàn)不及時(shí)等缺點(diǎn)。隨著科技發(fā)展,目前大多數(shù)工業(yè)生產(chǎn)設(shè)備配備了數(shù)字儀表和工業(yè)計(jì)算機(jī)進(jìn)行實(shí)時(shí)監(jiān)控,并進(jìn)行生產(chǎn)數(shù)據(jù)的采集和存儲。
關(guān)于輥道窯的生產(chǎn)運(yùn)行研究,國內(nèi)外學(xué)者主要關(guān)注點(diǎn)在窯爐結(jié)構(gòu)的優(yōu)化、窯爐各過程的控制系統(tǒng)設(shè)計(jì),以及數(shù)值模擬和仿真實(shí)驗(yàn)。Milani[1]等對輥道窯的熱力學(xué)和流體動力學(xué)行為進(jìn)行了數(shù)值分析,并結(jié)合熱力學(xué)模型提出了一種針對窯爐冷卻段的改進(jìn)運(yùn)行策略,以最大程度地降低瓷磚的殘余應(yīng)力。Zhu[2]將傳統(tǒng)的PID 控制方法與卡爾曼濾波方法相結(jié)合,提出了基于卡爾曼濾波器的PID 混合智能控制器,實(shí)現(xiàn)了陶瓷梭式窯煅燒區(qū)溫度的智能控制。Zhang等[3]基于互信息和AdaBoost策略,提出了一個(gè)新的溫度預(yù)測模型,用于陶瓷梭式窯燒結(jié)過程的溫度預(yù)測。賈華[4]提出了Fuzzy-Smith 的復(fù)合控制的輥道窯溫度控制方法。李曉高[5]、曹利鋼[6]分別設(shè)計(jì)開發(fā)了基于專家系統(tǒng)的陶瓷窯爐遠(yuǎn)程監(jiān)測與故障診斷系統(tǒng)。也有部分學(xué)者根據(jù)輥道窯機(jī)理和運(yùn)行狀況,對輥道窯的常見異常進(jìn)行了分析。楊華亮[7]等針對輥棒的異常情況進(jìn)行總結(jié),并開發(fā)了視覺攝像頭與傳感器結(jié)合的智能輥棒壽命管理系統(tǒng)。
可見,現(xiàn)有針對輥道窯的研究成果眾多,且都有一定效果,但是在異常檢測方面的研究較少,主要集中在異常情況的分類總結(jié)方面。對于這種包含高維度、海量數(shù)據(jù),且過程復(fù)雜,難以構(gòu)建數(shù)學(xué)模型進(jìn)行分析的對象,使用數(shù)據(jù)驅(qū)動的方法進(jìn)行異常檢測十分合適。
主元分析(Principle Component Analysis,PCA)方法是一種線性降維方法,可以把線性相關(guān)的多個(gè)觀測變量投影到低維空間中,轉(zhuǎn)換為少數(shù)幾個(gè)線性無關(guān)的變量表示,同時(shí)保留了變量之間的關(guān)系結(jié)構(gòu)[8]。作為一種經(jīng)典的數(shù)據(jù)統(tǒng)計(jì)分析理論,PCA 廣泛地應(yīng)用到數(shù)據(jù)分析、數(shù)據(jù)壓縮、異常檢測、過程控制等領(lǐng)域,并取得不錯(cuò)的應(yīng)用效果[9-13]。
PCA 最早由 Pearson[14]提出,Rigopoulos 等[15]提出移動窗主元分析(Moving Window PCA, MWPCA),采用不斷隨時(shí)間向后滑動的移動窗口控制用于建模的樣本數(shù)據(jù),提升更新速度,并使得PCA 模型基于在最近的工況特征下。何小斌[16]提出可變移動窗PCA,可以在異常檢測過程中自適應(yīng)改變窗口長度,并結(jié)合秩r奇異值分解以提高遞推計(jì)算速度。Jeng等[17]提出改進(jìn)的MWPCA方法,在更新協(xié)方差矩陣時(shí)以2次秩1矩陣計(jì)算的算法代替原來的4次秩1計(jì)算,提高計(jì)算速度。
本文提出自適應(yīng)步長移動窗主元分析(Adaptive Step Moving Window PCA,ASMWPCA)方法,在采集到新樣本時(shí)通過計(jì)算其T2統(tǒng)計(jì)量,以判斷是否需要將此樣本通過移動窗方式更新PCA 模型,并累積多個(gè)新樣本數(shù)據(jù)進(jìn)行一次性的數(shù)據(jù)塊更新,減少過程中的PCA 模型更新次數(shù),節(jié)省計(jì)算資源,提高計(jì)算效率。實(shí)驗(yàn)結(jié)果表明,ASMWPCA 方法可以有效地檢測出輥道窯的異常情況,并大大提高了檢測效率。
輥道窯是一類大型陶瓷窯爐,其結(jié)構(gòu)可分為預(yù)熱帶、燒成帶和冷卻帶。由于輥道窯系統(tǒng)的氣氛、壓力、溫度之間存在一些耦合關(guān)系,狀態(tài)變量較多,且時(shí)變特性明顯,導(dǎo)致其數(shù)學(xué)模型難以建立?,F(xiàn)階段,對輥道窯的異常檢測主要使用固定閾值報(bào)警,配合人工巡查的方式,效率低,發(fā)現(xiàn)異常情況滯后。
傳統(tǒng)的PCA 方法通過一定數(shù)量的正常數(shù)據(jù)建立模型,該模型是靜態(tài)的、非時(shí)變的。異常檢測過程中,將樣本數(shù)據(jù)映射到低維空間,并計(jì)算T2統(tǒng)計(jì)量和SPE 統(tǒng)計(jì)量,以判斷是否出現(xiàn)異常。然而輥道窯的運(yùn)行過程有明顯的時(shí)變特性,使用靜態(tài)的PCA 模型容易出現(xiàn)緩報(bào)、誤報(bào)等問題,需要對PCA 模型進(jìn)行實(shí)時(shí)更新,以適應(yīng)輥道窯生產(chǎn)過程中屬性的變化。
為了處理時(shí)變特性的情況,在工業(yè)過程中的異常檢測場景中,自適應(yīng)PCA 及各種改進(jìn)方法經(jīng)常被使用,其中遞推主元 分 析 (Recursive Principle Component Analysis, RPCA)[16]、MWPCA是常用且效果較好的異常檢測方法。然而,RPCA在包含的大量舊數(shù)據(jù)會影響模型的精度和更新速度,即使添加遺忘因子也存在難以選定遺忘因子的問題[16]。MWPCA常見的方式是將新采集的樣本逐個(gè)添加到窗口,在正常樣本居多的情況下,會存在一定程度的無效計(jì)算過程。
本文將以輥道窯的生產(chǎn)過程為例,進(jìn)行基于PCA 的理論分析和實(shí)驗(yàn)驗(yàn)證。
傳統(tǒng)PCA 方法的模型建立之后不再改變,是靜態(tài)的、非時(shí)變的,而RPCA、MWPCA 隨著新樣本采集之后,實(shí)時(shí)更新PCA模型,稱為自適應(yīng)PCA方法。
PCA的思路是將m維的初始數(shù)據(jù)通過線性變換,映射到k維的主元空間,實(shí)現(xiàn)降維。假設(shè)樣本數(shù)據(jù)矩陣經(jīng)過標(biāo)準(zhǔn)化后為X ∈ Rn×m,即有n個(gè)觀測樣本,每個(gè)樣本有m個(gè)屬性,可以分解為[8]:
負(fù)荷矩陣P一般可以通過對X標(biāo)準(zhǔn)化后的協(xié)方差矩陣S進(jìn)行特征值分解獲得:
式中: Λ 為包含特征值λi的對角矩陣。
將S 的特征值由大到小排序,對應(yīng)的特征向量即負(fù)荷向量pi,根據(jù)特征值大小截取前k 個(gè)特征值,對應(yīng)前k 個(gè)特征向量即為主元模型中實(shí)現(xiàn)線性降維的基向量,也是選用的負(fù)荷向量。這意味著在樣本空間中,方差最大的k個(gè)方向?qū)?yīng)著包含信息最多的k個(gè)維度,經(jīng)過線性變換映射到了主元子空間,剩余的主要包含隨機(jī)噪聲的信息則映射到殘差子空間。
主元數(shù)量k 可以通過CPV 方法[8]獲得,定義累計(jì)貢獻(xiàn)率Conti,并指定累計(jì)貢獻(xiàn)率的閾值,從最大的特征值開始累計(jì)計(jì)算,當(dāng)累計(jì)貢獻(xiàn)率恰好大于閾值時(shí)的最少主元個(gè)數(shù)為所選的k。按照經(jīng)驗(yàn),可以設(shè)定閾值為80%。方差貢獻(xiàn)率Conti為:
建立PCA 模型之后,一般使用兩個(gè)多元統(tǒng)計(jì)量的假設(shè)檢驗(yàn)來檢測異常的發(fā)生,即T2統(tǒng)計(jì)量和SPE 統(tǒng)計(jì)量,分別對應(yīng)單個(gè)樣本向量在主元子空間和殘差子空間中的偏離程度。對樣本x的統(tǒng)計(jì)量計(jì)算公式如下:
式中: Λk=diag(λ1,…,λk),為前k個(gè)協(xié)方差矩陣特征值。
進(jìn)行異常檢測時(shí),還需要確定兩個(gè)統(tǒng)計(jì)量的控制限,假設(shè)α為檢驗(yàn)水平,統(tǒng)計(jì)量控制限為:
式中:Fα(k,n-k)為帶有k和n-k個(gè)自由度、置信水平為α的F分布臨界值;cα為標(biāo)準(zhǔn)正態(tài)分布在置信水平α下的閾值。另有:
在異常檢測過程中,T2和SPE 在異常檢測中作用并不等同。T2統(tǒng)計(jì)量衡量樣本投影到主元空間后到原點(diǎn)的距離,包含正常情況下樣本數(shù)據(jù)的絕大部分變化。而SPE 統(tǒng)計(jì)量是樣本在殘差空間中的投影,主要包含噪聲。在實(shí)際應(yīng)用過程中,當(dāng)樣本數(shù)據(jù)對應(yīng)SPE 統(tǒng)計(jì)量超過控制限時(shí),基本可判斷生產(chǎn)過程出現(xiàn)了異常。而當(dāng)SPE 統(tǒng)計(jì)量沒有超過控制限,T2統(tǒng)計(jì)量超過控制限時(shí),說明過程出現(xiàn)了明顯的干擾或者工況改變等情況,可以根據(jù)具體生產(chǎn)狀況進(jìn)行分析是否出現(xiàn)異常[8]。
RPCA是將新樣本通過遞推方式,與舊樣本一起作為建立PCA模型的數(shù)據(jù),而MWPCA使用一個(gè)可以隨樣本數(shù)增加而不斷向后滑動的窗口,通過窗口內(nèi)的樣本建立PCA 模型,每次有新數(shù)據(jù)產(chǎn)生并更新PCA 模型時(shí)總是新增樣本數(shù)據(jù)并丟棄同樣數(shù)量的舊樣本,保持窗口長度一定。與RPCA相比,MWP-CA有更新速度穩(wěn)定、檢測精度較高、對時(shí)變過程適應(yīng)性更強(qiáng)等優(yōu)點(diǎn),也有計(jì)算量增加的問題。
MWPCA 通過遞歸更新協(xié)方差矩陣的方式更新PCA 模型。假設(shè)預(yù)定義的移動窗長度為L,在第t時(shí)刻移動窗內(nèi)的樣本數(shù)據(jù)矩陣為Xto=(xt-L+1,…,xt-1,xt)T∈RL×m。不失一般性,考慮數(shù)據(jù)塊更新的方式,新樣本的數(shù)量為s,更新后對應(yīng)的數(shù)據(jù)矩陣為Xo=(x ,…,x,x)T∈RL×m。一次數(shù)據(jù)塊更新過t+st+s-L+1t+s-1t+s程即相當(dāng)于把窗口位置從t時(shí)刻移動到t+s時(shí)刻。
遞歸更新協(xié)方差矩陣的過程可以分為兩個(gè)遞推子過程來實(shí)現(xiàn),具體如下。
(1)遞推中間矩陣協(xié)方差矩陣
中間矩陣指兩個(gè)時(shí)刻樣本矩陣的共同部分X^=(xt+s-L+1,…,xt-1,xt)T∈Rs×m,對于第t時(shí)刻的數(shù)據(jù)矩陣,均值向量為:
根據(jù)均值向量定義,可得中間矩陣的均值向量:
隨后,由文獻(xiàn)[16]可知中間矩陣的協(xié)方差矩陣為:
其中, Σt=diag(σt,1,σt,2,…,σt,m)為t時(shí)刻窗口各個(gè)變量的標(biāo)準(zhǔn)差,另有:
(2)遞推新窗口協(xié)方差矩陣
將式(12)代入式(15),得到數(shù)據(jù)塊更新方式下,從t時(shí)刻到t+s時(shí)刻的移動窗PCA的協(xié)方差矩陣遞推公式:
之后,對協(xié)方差矩陣進(jìn)行特征值分解獲得主元模型,得到更新的PCA模型。
MWPCA一般對逐個(gè)樣本進(jìn)行窗口的移動,每次增加一個(gè)新樣本,丟棄一個(gè)舊樣本。然而輥道窯的生產(chǎn)過程平穩(wěn),異常較少發(fā)生,各個(gè)狀態(tài)變量的變化幅度不大,每次通過正常樣本移動窗遞推產(chǎn)生的PCA 模型變化不大。由此聯(lián)想到,可以等待積累多個(gè)新樣本再進(jìn)行一次數(shù)據(jù)塊更新,減少總體PCA 模型更新的次數(shù),節(jié)省計(jì)算時(shí)間和計(jì)算資源,即本文提出的ASMWPCA。
本文提出的自適應(yīng)步長移動窗PCA 方法的主要思路是,在正常樣本為主的較平穩(wěn)過程中,積累一定量樣本再進(jìn)行PCA 模型的更新,期間使用上次更新的模型計(jì)算T2和SPE 統(tǒng)計(jì)量進(jìn)行異常檢測,以這種方式減少PCA 模型更新的次數(shù),提升算法性能。這里兩次MWPCA模型更新之間所用數(shù)據(jù)塊的樣本數(shù),稱為更新的步長(step)。當(dāng)步長取得過小時(shí),計(jì)算資源的節(jié)省和性能的提升不明顯;而當(dāng)步長取得過大時(shí),會導(dǎo)致模型不能及時(shí)更新,失去MWPCA 中適應(yīng)模型變化的特點(diǎn)。所以,判斷PCA 模型更新的時(shí)刻,或者說確定步長的范圍,是本方法的關(guān)鍵點(diǎn)。
使用MWPCA 的在線異常檢測過程中,需要更新PCA 模型的主要原因是,工業(yè)過程中產(chǎn)生了狀態(tài)變量屬性的漂移,導(dǎo)致原PCA 模型偏離了當(dāng)前的實(shí)際工作狀態(tài)特征,故使用靜態(tài)的PCA 方法常常會產(chǎn)生誤報(bào)。由上文已知,常用T2和SPE兩個(gè)統(tǒng)計(jì)量進(jìn)行異常檢測,其中T2衡量新樣本映射后到主元子空間原點(diǎn)的距離。當(dāng)正常工況下發(fā)生狀態(tài)變量屬性的小幅度漂移時(shí),由于其變量之間的相關(guān)關(guān)系沒有明顯改變,SPE沒有明顯變化,但是整體偏離了PCA 模型建模時(shí)過程的狀態(tài)變量屬性,會導(dǎo)致T2產(chǎn)生明顯波動和漂移[17]。所以,可以使用T2統(tǒng)計(jì)量作為PCA 樣本是否偏離當(dāng)前工作狀態(tài)的指標(biāo),并以T2統(tǒng)計(jì)量的控制限作為閾值。若新樣本滿足條件:
則調(diào)整移動窗位置,更新PCA模型,其中μ為預(yù)設(shè)的比例系數(shù)。式(17)的意義在于,以SPE 作為判斷樣本是否正常的主要指標(biāo),樣本正常的情況下,以T2判斷PCA 模型是否已經(jīng)偏離了當(dāng)前的正常工況,進(jìn)而決定是否要移動窗口位置、更新PCA模型。
另外,若積累一定數(shù)量樣本之后,仍沒有滿足式(17)的條件,會導(dǎo)致PCA 模型長期沒有更新的情況,可以設(shè)定步長的上限smax,使得PCA模型及時(shí)更新,適應(yīng)工況變化。Wang等[18]提出N步超前(N-Step-Ahead)移動窗PCA,指出當(dāng)p時(shí)刻使用p-N時(shí)刻得到的PCA模型進(jìn)行異常檢測,會比使用p時(shí)刻的模型得到更敏感的異常檢測效果。這個(gè)結(jié)論一方面印證使用略早的PCA 模型的有效性,另一方面指導(dǎo)了步長上限的取值,一般取值為一倍窗口長度以下。
所提出的ASMWPCA方法的算法描述如下。
算法:自適應(yīng)步長移動窗PCA方法
輸入:樣本矩陣Xo=(x1,x2,…,xM)T
窗口長度L
比例系數(shù)μ
步長上限smax
過程:(1)截取L個(gè)樣本,進(jìn)行標(biāo)準(zhǔn)化,計(jì)算協(xié)方差矩陣S
(2)對S 進(jìn)行特征分解,使用CPV 法計(jì)算得到主元數(shù)量k,并截取特征向量和特征值,得到負(fù)荷矩陣P、特征值矩陣Λ
(3)計(jì)算初始的控制限和
(4)while L+i < M do
(5)獲取新樣本xL+i,進(jìn)行標(biāo)準(zhǔn)化
(6)對xL+i求T2和SPE統(tǒng)計(jì)量
(7)ifSPE≥δ2αthen
(8)此樣本判斷為異常,輸出異常信息
(9)continue
(10)else ifT2>且SPE<then
(11)此樣本為正常樣本,加入待更新數(shù)組
(12)continue
(13)else
(14)更新窗口,對待更新數(shù)組的樣本進(jìn)行標(biāo)準(zhǔn)化
(15)遞推計(jì)算協(xié)方差矩陣S′
(16)對S′進(jìn)行特征分解,使用CPV法計(jì)算得到主元數(shù)量k′,得到負(fù)荷矩陣P′、特征值矩陣Λ'
(17)計(jì)算新的控制限和
(18)end if
(19)end while
輸出:異常情況的樣本信息
本文以華南某大型陶瓷磚生產(chǎn)企業(yè)的輥道窯為例,生產(chǎn)數(shù)據(jù)收集自該企業(yè)輥道窯2018年4月,共1 120個(gè)樣本,均為正常樣本,其中每個(gè)樣本包含132個(gè)狀態(tài)變量。根據(jù)數(shù)據(jù)特征和與窯爐生產(chǎn)過程的相關(guān)性,選出98 個(gè)狀態(tài)變量,如表1 所示。另外,通過這1 120 個(gè)樣本,建立仿真模型,引入異常,以此比較PCA、MWPCA、ASMWPCA 方法的異常檢測效果。本文的異常情況為某天然氣燒嘴的流量緩慢減少到原來的一半,異常樣本共800個(gè),數(shù)據(jù)集劃分如表2所示。
表1 輥道窯狀態(tài)變量
表2 數(shù)據(jù)集劃分
本 文 實(shí) 驗(yàn) 所 使 用 的 環(huán) 境 為 Intel (R) Core (TM)i5-3210M@2.5 GHz,8 GB RAM,Windows 1 064 位系統(tǒng),算法使用Python 3.6實(shí)現(xiàn)。
本文采用異常檢測領(lǐng)域中常用的兩個(gè)指標(biāo),即誤報(bào)率、檢出率,對ASMWPCA 方法的異常檢測性能進(jìn)行驗(yàn)證。其中,誤報(bào)率和檢出率的定義如下:
由兩個(gè)指標(biāo)的定義可知,誤報(bào)率越接近0 則算法性能越好,檢出率越接近1則算法性能越好。
在實(shí)驗(yàn)過程中,需要確定的參數(shù)有移動窗長度L、比例系數(shù)μ、步長上限smax。在計(jì)算資源足夠時(shí),移動窗長度L 應(yīng)該盡量取大,以提高異常檢測的敏感度[16-17]。而當(dāng)L 取得越大時(shí),smax可以取得越小[18]。比例系數(shù)μ主要與判斷模型需要更新的敏感度有關(guān),即當(dāng)μ取得越小時(shí),對應(yīng)著越小的T2統(tǒng)計(jì)量對應(yīng)閾值,觸發(fā)更新PCA模型。在本實(shí)驗(yàn)過程中,設(shè)置L=200,smax=30,μ=0.8,以取得較明顯的實(shí)驗(yàn)結(jié)果。為了得到一致的初始PCA 模型,傳統(tǒng)PCA 方法的訓(xùn)練集也取200 個(gè)樣本,其余設(shè)置為測試集,如表2 所示。使用CPV 法可得主元數(shù)目為21。實(shí)驗(yàn)結(jié)果如表3以及圖1~3所示。
表3 實(shí)驗(yàn)結(jié)果對比
圖1 傳統(tǒng)PCA 方法的T2和SPE統(tǒng)計(jì)量
圖2 MWPCA方法的T2和SPE統(tǒng)計(jì)量
圖3 ASMWPCA方法的T2和SPE統(tǒng)計(jì)量
實(shí)驗(yàn)結(jié)果表明,PCA、MWPCA、ASMWPCA 這3 種方法都可以有效檢測出輥道窯生產(chǎn)過程中的異常情況。從表3結(jié)果結(jié)合圖1 第500~750 個(gè)樣本部分的圖像,傳統(tǒng)PCA 出現(xiàn)明顯的誤報(bào)問題,而MWPCA和ASMWPCA能有效減低誤報(bào)率,提高檢出率。由于MWPCA對新樣本進(jìn)行逐個(gè)遞推更新模型,而ASMWPCA 積累多個(gè)新樣本再更新模型,其中跳過共713 次,即大概一半的新樣本輸入時(shí)無需即刻更新PCA 模型,在達(dá)到同樣異常檢測效果的情況下,節(jié)省約38%的計(jì)算時(shí)間。實(shí)驗(yàn)結(jié)果表明,對于以輥道窯為例的存在慢時(shí)變特性的工業(yè)過程,ASMWPCA 可以有效提升算法性能,且獲得令人滿意的異常檢測效果。
本文提出了一種基于MWPCA方法的改進(jìn)算法,ASMWP-CA,并將此方法與傳統(tǒng)PCA、MWPCA 進(jìn)行對比實(shí)驗(yàn)。該算法通過積累多個(gè)新樣本進(jìn)行數(shù)據(jù)塊更新的方式代替MWPCA逐個(gè)新樣本更新模型的方式,有效提升了算法性能。在輥道窯的異常檢測實(shí)例中,驗(yàn)證了ASMWPCA 的優(yōu)點(diǎn)在于減少PCA模型更新次數(shù)、節(jié)省計(jì)算資源和計(jì)算時(shí)間的情況下,在與MWPCA相當(dāng)?shù)漠惓z測效果時(shí),檢測效率明顯提高。