鄒振弘,印四華
(1.廣東工業大學計算機學院,廣州 510006;2.廣東工業大學機電工程學院,廣州 510006)
輥道窯是重要的一類陶瓷窯爐,主要用于建筑陶瓷材料生產,是陶瓷生產中主要的耗能設備。在陶瓷生產過程中,若由于物料、參數控制、人員等因素使得輥道窯的異常情況出現,會導致產品瑕疵以及能源浪費等問題,造成極大的經濟損失,情況嚴重時甚至發生安全事故。實際情況下,通常采用人工巡查和根據經驗觀察儀器儀表等方式檢查發現異常情況,有耗費人工、發現不及時等缺點。隨著科技發展,目前大多數工業生產設備配備了數字儀表和工業計算機進行實時監控,并進行生產數據的采集和存儲。
關于輥道窯的生產運行研究,國內外學者主要關注點在窯爐結構的優化、窯爐各過程的控制系統設計,以及數值模擬和仿真實驗。Milani[1]等對輥道窯的熱力學和流體動力學行為進行了數值分析,并結合熱力學模型提出了一種針對窯爐冷卻段的改進運行策略,以最大程度地降低瓷磚的殘余應力。Zhu[2]將傳統的PID 控制方法與卡爾曼濾波方法相結合,提出了基于卡爾曼濾波器的PID 混合智能控制器,實現了陶瓷梭式窯煅燒區溫度的智能控制。Zhang等[3]基于互信息和AdaBoost策略,提出了一個新的溫度預測模型,用于陶瓷梭式窯燒結過程的溫度預測。賈華[4]提出了Fuzzy-Smith 的復合控制的輥道窯溫度控制方法。李曉高[5]、曹利鋼[6]分別設計開發了基于專家系統的陶瓷窯爐遠程監測與故障診斷系統。也有部分學者根據輥道窯機理和運行狀況,對輥道窯的常見異常進行了分析。楊華亮[7]等針對輥棒的異常情況進行總結,并開發了視覺攝像頭與傳感器結合的智能輥棒壽命管理系統。
可見,現有針對輥道窯的研究成果眾多,且都有一定效果,但是在異常檢測方面的研究較少,主要集中在異常情況的分類總結方面。對于這種包含高維度、海量數據,且過程復雜,難以構建數學模型進行分析的對象,使用數據驅動的方法進行異常檢測十分合適。
主元分析(Principle Component Analysis,PCA)方法是一種線性降維方法,可以把線性相關的多個觀測變量投影到低維空間中,轉換為少數幾個線性無關的變量表示,同時保留了變量之間的關系結構[8]。作為一種經典的數據統計分析理論,PCA 廣泛地應用到數據分析、數據壓縮、異常檢測、過程控制等領域,并取得不錯的應用效果[9-13]。
PCA 最早由 Pearson[14]提出,Rigopoulos 等[15]提出移動窗主元分析(Moving Window PCA, MWPCA),采用不斷隨時間向后滑動的移動窗口控制用于建模的樣本數據,提升更新速度,并使得PCA 模型基于在最近的工況特征下。何小斌[16]提出可變移動窗PCA,可以在異常檢測過程中自適應改變窗口長度,并結合秩r奇異值分解以提高遞推計算速度。Jeng等[17]提出改進的MWPCA方法,在更新協方差矩陣時以2次秩1矩陣計算的算法代替原來的4次秩1計算,提高計算速度。
本文提出自適應步長移動窗主元分析(Adaptive Step Moving Window PCA,ASMWPCA)方法,在采集到新樣本時通過計算其T2統計量,以判斷是否需要將此樣本通過移動窗方式更新PCA 模型,并累積多個新樣本數據進行一次性的數據塊更新,減少過程中的PCA 模型更新次數,節省計算資源,提高計算效率。實驗結果表明,ASMWPCA 方法可以有效地檢測出輥道窯的異常情況,并大大提高了檢測效率。
輥道窯是一類大型陶瓷窯爐,其結構可分為預熱帶、燒成帶和冷卻帶。由于輥道窯系統的氣氛、壓力、溫度之間存在一些耦合關系,狀態變量較多,且時變特性明顯,導致其數學模型難以建立。現階段,對輥道窯的異常檢測主要使用固定閾值報警,配合人工巡查的方式,效率低,發現異常情況滯后。
傳統的PCA 方法通過一定數量的正常數據建立模型,該模型是靜態的、非時變的。異常檢測過程中,將樣本數據映射到低維空間,并計算T2統計量和SPE 統計量,以判斷是否出現異常。然而輥道窯的運行過程有明顯的時變特性,使用靜態的PCA 模型容易出現緩報、誤報等問題,需要對PCA 模型進行實時更新,以適應輥道窯生產過程中屬性的變化。
為了處理時變特性的情況,在工業過程中的異常檢測場景中,自適應PCA 及各種改進方法經常被使用,其中遞推主元 分 析 (Recursive Principle Component Analysis, RPCA)[16]、MWPCA是常用且效果較好的異常檢測方法。然而,RPCA在包含的大量舊數據會影響模型的精度和更新速度,即使添加遺忘因子也存在難以選定遺忘因子的問題[16]。MWPCA常見的方式是將新采集的樣本逐個添加到窗口,在正常樣本居多的情況下,會存在一定程度的無效計算過程。
本文將以輥道窯的生產過程為例,進行基于PCA 的理論分析和實驗驗證。
傳統PCA 方法的模型建立之后不再改變,是靜態的、非時變的,而RPCA、MWPCA 隨著新樣本采集之后,實時更新PCA模型,稱為自適應PCA方法。
PCA的思路是將m維的初始數據通過線性變換,映射到k維的主元空間,實現降維。假設樣本數據矩陣經過標準化后為X ∈ Rn×m,即有n個觀測樣本,每個樣本有m個屬性,可以分解為[8]:

負荷矩陣P一般可以通過對X標準化后的協方差矩陣S進行特征值分解獲得:

式中: Λ 為包含特征值λi的對角矩陣。
將S 的特征值由大到小排序,對應的特征向量即負荷向量pi,根據特征值大小截取前k 個特征值,對應前k 個特征向量即為主元模型中實現線性降維的基向量,也是選用的負荷向量。這意味著在樣本空間中,方差最大的k個方向對應著包含信息最多的k個維度,經過線性變換映射到了主元子空間,剩余的主要包含隨機噪聲的信息則映射到殘差子空間。
主元數量k 可以通過CPV 方法[8]獲得,定義累計貢獻率Conti,并指定累計貢獻率的閾值,從最大的特征值開始累計計算,當累計貢獻率恰好大于閾值時的最少主元個數為所選的k。按照經驗,可以設定閾值為80%。方差貢獻率Conti為:

建立PCA 模型之后,一般使用兩個多元統計量的假設檢驗來檢測異常的發生,即T2統計量和SPE 統計量,分別對應單個樣本向量在主元子空間和殘差子空間中的偏離程度。對樣本x的統計量計算公式如下:

式中: Λk=diag(λ1,…,λk),為前k個協方差矩陣特征值。
進行異常檢測時,還需要確定兩個統計量的控制限,假設α為檢驗水平,統計量控制限為:

式中:Fα(k,n-k)為帶有k和n-k個自由度、置信水平為α的F分布臨界值;cα為標準正態分布在置信水平α下的閾值。另有:

在異常檢測過程中,T2和SPE 在異常檢測中作用并不等同。T2統計量衡量樣本投影到主元空間后到原點的距離,包含正常情況下樣本數據的絕大部分變化。而SPE 統計量是樣本在殘差空間中的投影,主要包含噪聲。在實際應用過程中,當樣本數據對應SPE 統計量超過控制限時,基本可判斷生產過程出現了異常。而當SPE 統計量沒有超過控制限,T2統計量超過控制限時,說明過程出現了明顯的干擾或者工況改變等情況,可以根據具體生產狀況進行分析是否出現異常[8]。
RPCA是將新樣本通過遞推方式,與舊樣本一起作為建立PCA模型的數據,而MWPCA使用一個可以隨樣本數增加而不斷向后滑動的窗口,通過窗口內的樣本建立PCA 模型,每次有新數據產生并更新PCA 模型時總是新增樣本數據并丟棄同樣數量的舊樣本,保持窗口長度一定。與RPCA相比,MWP-CA有更新速度穩定、檢測精度較高、對時變過程適應性更強等優點,也有計算量增加的問題。
MWPCA 通過遞歸更新協方差矩陣的方式更新PCA 模型。假設預定義的移動窗長度為L,在第t時刻移動窗內的樣本數據矩陣為Xto=(xt-L+1,…,xt-1,xt)T∈RL×m。不失一般性,考慮數據塊更新的方式,新樣本的數量為s,更新后對應的數據矩陣為Xo=(x ,…,x,x)T∈RL×m。一次數據塊更新過t+st+s-L+1t+s-1t+s程即相當于把窗口位置從t時刻移動到t+s時刻。
遞歸更新協方差矩陣的過程可以分為兩個遞推子過程來實現,具體如下。
(1)遞推中間矩陣協方差矩陣
中間矩陣指兩個時刻樣本矩陣的共同部分X^=(xt+s-L+1,…,xt-1,xt)T∈Rs×m,對于第t時刻的數據矩陣,均值向量為:

根據均值向量定義,可得中間矩陣的均值向量:

隨后,由文獻[16]可知中間矩陣的協方差矩陣為:

其中, Σt=diag(σt,1,σt,2,…,σt,m)為t時刻窗口各個變量的標準差,另有:

(2)遞推新窗口協方差矩陣

將式(12)代入式(15),得到數據塊更新方式下,從t時刻到t+s時刻的移動窗PCA的協方差矩陣遞推公式:

之后,對協方差矩陣進行特征值分解獲得主元模型,得到更新的PCA模型。
MWPCA一般對逐個樣本進行窗口的移動,每次增加一個新樣本,丟棄一個舊樣本。然而輥道窯的生產過程平穩,異常較少發生,各個狀態變量的變化幅度不大,每次通過正常樣本移動窗遞推產生的PCA 模型變化不大。由此聯想到,可以等待積累多個新樣本再進行一次數據塊更新,減少總體PCA 模型更新的次數,節省計算時間和計算資源,即本文提出的ASMWPCA。
本文提出的自適應步長移動窗PCA 方法的主要思路是,在正常樣本為主的較平穩過程中,積累一定量樣本再進行PCA 模型的更新,期間使用上次更新的模型計算T2和SPE 統計量進行異常檢測,以這種方式減少PCA 模型更新的次數,提升算法性能。這里兩次MWPCA模型更新之間所用數據塊的樣本數,稱為更新的步長(step)。當步長取得過小時,計算資源的節省和性能的提升不明顯;而當步長取得過大時,會導致模型不能及時更新,失去MWPCA 中適應模型變化的特點。所以,判斷PCA 模型更新的時刻,或者說確定步長的范圍,是本方法的關鍵點。
使用MWPCA 的在線異常檢測過程中,需要更新PCA 模型的主要原因是,工業過程中產生了狀態變量屬性的漂移,導致原PCA 模型偏離了當前的實際工作狀態特征,故使用靜態的PCA 方法常常會產生誤報。由上文已知,常用T2和SPE兩個統計量進行異常檢測,其中T2衡量新樣本映射后到主元子空間原點的距離。當正常工況下發生狀態變量屬性的小幅度漂移時,由于其變量之間的相關關系沒有明顯改變,SPE沒有明顯變化,但是整體偏離了PCA 模型建模時過程的狀態變量屬性,會導致T2產生明顯波動和漂移[17]。所以,可以使用T2統計量作為PCA 樣本是否偏離當前工作狀態的指標,并以T2統計量的控制限作為閾值。若新樣本滿足條件:

則調整移動窗位置,更新PCA模型,其中μ為預設的比例系數。式(17)的意義在于,以SPE 作為判斷樣本是否正常的主要指標,樣本正常的情況下,以T2判斷PCA 模型是否已經偏離了當前的正常工況,進而決定是否要移動窗口位置、更新PCA模型。
另外,若積累一定數量樣本之后,仍沒有滿足式(17)的條件,會導致PCA 模型長期沒有更新的情況,可以設定步長的上限smax,使得PCA模型及時更新,適應工況變化。Wang等[18]提出N步超前(N-Step-Ahead)移動窗PCA,指出當p時刻使用p-N時刻得到的PCA模型進行異常檢測,會比使用p時刻的模型得到更敏感的異常檢測效果。這個結論一方面印證使用略早的PCA 模型的有效性,另一方面指導了步長上限的取值,一般取值為一倍窗口長度以下。
所提出的ASMWPCA方法的算法描述如下。
算法:自適應步長移動窗PCA方法
輸入:樣本矩陣Xo=(x1,x2,…,xM)T
窗口長度L
比例系數μ
步長上限smax
過程:(1)截取L個樣本,進行標準化,計算協方差矩陣S
(2)對S 進行特征分解,使用CPV 法計算得到主元數量k,并截取特征向量和特征值,得到負荷矩陣P、特征值矩陣Λ
(3)計算初始的控制限和
(4)while L+i < M do
(5)獲取新樣本xL+i,進行標準化
(6)對xL+i求T2和SPE統計量
(7)ifSPE≥δ2αthen
(8)此樣本判斷為異常,輸出異常信息
(9)continue
(10)else ifT2>且SPE<then
(11)此樣本為正常樣本,加入待更新數組
(12)continue
(13)else
(14)更新窗口,對待更新數組的樣本進行標準化
(15)遞推計算協方差矩陣S′
(16)對S′進行特征分解,使用CPV法計算得到主元數量k′,得到負荷矩陣P′、特征值矩陣Λ'
(17)計算新的控制限和
(18)end if
(19)end while
輸出:異常情況的樣本信息
本文以華南某大型陶瓷磚生產企業的輥道窯為例,生產數據收集自該企業輥道窯2018年4月,共1 120個樣本,均為正常樣本,其中每個樣本包含132個狀態變量。根據數據特征和與窯爐生產過程的相關性,選出98 個狀態變量,如表1 所示。另外,通過這1 120 個樣本,建立仿真模型,引入異常,以此比較PCA、MWPCA、ASMWPCA 方法的異常檢測效果。本文的異常情況為某天然氣燒嘴的流量緩慢減少到原來的一半,異常樣本共800個,數據集劃分如表2所示。

表1 輥道窯狀態變量

表2 數據集劃分
本 文 實 驗 所 使 用 的 環 境 為 Intel (R) Core (TM)i5-3210M@2.5 GHz,8 GB RAM,Windows 1 064 位系統,算法使用Python 3.6實現。
本文采用異常檢測領域中常用的兩個指標,即誤報率、檢出率,對ASMWPCA 方法的異常檢測性能進行驗證。其中,誤報率和檢出率的定義如下:

由兩個指標的定義可知,誤報率越接近0 則算法性能越好,檢出率越接近1則算法性能越好。
在實驗過程中,需要確定的參數有移動窗長度L、比例系數μ、步長上限smax。在計算資源足夠時,移動窗長度L 應該盡量取大,以提高異常檢測的敏感度[16-17]。而當L 取得越大時,smax可以取得越小[18]。比例系數μ主要與判斷模型需要更新的敏感度有關,即當μ取得越小時,對應著越小的T2統計量對應閾值,觸發更新PCA模型。在本實驗過程中,設置L=200,smax=30,μ=0.8,以取得較明顯的實驗結果。為了得到一致的初始PCA 模型,傳統PCA 方法的訓練集也取200 個樣本,其余設置為測試集,如表2 所示。使用CPV 法可得主元數目為21。實驗結果如表3以及圖1~3所示。

表3 實驗結果對比

圖1 傳統PCA 方法的T2和SPE統計量

圖2 MWPCA方法的T2和SPE統計量

圖3 ASMWPCA方法的T2和SPE統計量
實驗結果表明,PCA、MWPCA、ASMWPCA 這3 種方法都可以有效檢測出輥道窯生產過程中的異常情況。從表3結果結合圖1 第500~750 個樣本部分的圖像,傳統PCA 出現明顯的誤報問題,而MWPCA和ASMWPCA能有效減低誤報率,提高檢出率。由于MWPCA對新樣本進行逐個遞推更新模型,而ASMWPCA 積累多個新樣本再更新模型,其中跳過共713 次,即大概一半的新樣本輸入時無需即刻更新PCA 模型,在達到同樣異常檢測效果的情況下,節省約38%的計算時間。實驗結果表明,對于以輥道窯為例的存在慢時變特性的工業過程,ASMWPCA 可以有效提升算法性能,且獲得令人滿意的異常檢測效果。
本文提出了一種基于MWPCA方法的改進算法,ASMWP-CA,并將此方法與傳統PCA、MWPCA 進行對比實驗。該算法通過積累多個新樣本進行數據塊更新的方式代替MWPCA逐個新樣本更新模型的方式,有效提升了算法性能。在輥道窯的異常檢測實例中,驗證了ASMWPCA 的優點在于減少PCA模型更新次數、節省計算資源和計算時間的情況下,在與MWPCA相當的異常檢測效果時,檢測效率明顯提高。