曾利云,肖 云,張植豪
(廣東工業大學機電工程學院,廣東廣州 510006)
擠壓機是鋁型材加工生產的核心設備,在運行過程中會消耗大量電力。鋁型材加工企業的能源管理系統可實時采集擠壓機生產過程中的能耗數據。通過對數據的分析,能檢測出擠壓機在生產過程中的能耗異常行為,從而為企業節能減排、提高能源效率提供有價值的信息。所謂異常數據,是指在數據集中與眾不同的數據,并且這些數據并非隨機偏差,而是產生于完全不同的機制。擠壓機能耗異常特征可以分為點異常和模式異常,在生產過程中存在難以精確檢測出能耗異常狀況,難以建立精確的異常檢測數學模型的問題。
異常檢測被廣泛應用于設備狀態監測、建筑能耗、網絡入侵檢測以及其它領域。能源消耗領域的異常檢測方法包括回歸法、k-最近鄰域(K-NN)、熵法和聚類法[1]。Zhao[2]提出一種基于動態時間規整(DTW)的自適應模糊C均值(AFCM)方法,可以有效地檢測某鋼鐵廠的能量異常數據。Guo[3]提出一種車間級熱損失故障檢測方法,建立TVWS的動態分層能耗模型,采用LMBP算法和能耗因子法對熱損失基線進行估計。Khatkhate[4]利用相關測量的時間序列數據,建立隱馬爾可夫模型,以用于機械系統異常檢測。王偉影等[5]針對燃氣輪機運行過程中的健康維護問題,采用模糊C均值聚類算法對燃氣輪排氣溫度進行異常檢測。賀惠新[6]針對燃氣輪機的點異常和序列異常,分別引入以樣本為核心的聚類思想和基于加權流形嵌入的方法對其進行檢測。戴慧[7]基于滑動窗口數據的置信區間,構造變化趨勢特征值和相對變化趨勢特征值分別用于二次探測,能夠快速準確地探測出變電站各設備表數據集的異常點。Chou[8]提出一種具有滑動窗口的ANN和ARIMA混合模型,利用大量的數據集來識別建筑空間的異常功耗。Akouemo[9]提出一種用于異常檢測的概率方法,應用于天然氣的時間序列數據中,可識別未知來源的異常。目前,在基于全局的檢測方法中,由于過分關注全局的環境,容易忽略局部的異常變化,容易造成漏報;而基于局部序列的方法中,因為過分關注局部的細微變化,而沒有從整體去考慮序列正常行為的特點,容易造成誤報。
本文作者針對擠壓機生產過程中的能耗特征和傳統異常檢測算法漏檢率高、效率低的問題,提出一種基于K-MLS和K-MLOF的擠壓機能耗異常檢測方法。實驗證明,該方法能夠有效檢測出擠壓機生產過程中的能耗異常現象,并且具有通用性和魯棒性等特點。
鋁型材擠壓機生產過程中,由于設備因素、人為誤操作等原因均會導致能耗異常現象,造成大量能源浪費。目前,隨著工業信息技術的發展,大多數鋁型材企業都建立了能源管理系統來監控內部能源狀況,用來優化能源運作,節約成本。能源管理系統實時采集到的擠壓機能耗異常數據,通常有如下幾類特征:
(1)點異常:由于數據采集系統故障或信息傳輸問題,比如智能儀表故障、通信中斷、存儲異常等,導致在某個時間點的能耗數據偏離正常值,但是其鄰近域內的能耗數據又是正常的,其表現形式如圖1(a)所示。
(2)模式異常:指一段數據集相對于整個數據集的其他部分表現為異常,但這一段數據集中的單個數據可能是異常,也可能不是異常的情況。其表現形式如圖1(b)所示。

圖1 不同特征的能耗數據趨勢圖
能源管理系統實時采集到的擠壓機能耗數據表現出時序性、周期性和分類特性。能耗數據的周期性反映出了鋁型材連續擠壓過程中的相似生產過程;分類特性則表現了一個擠壓周期中不同擠壓階段。因此,基于鋁型材生產能耗數據特點,將異常檢測分為兩個階段:一是針對擠壓過程,檢測擠壓機在生產過程中出現的點異常現象;二是針對擠壓周期,檢測擠壓機生產過程中出現的模式異常現象,以彌補模式異常或點異常分別檢測時的漏檢情況。整體異常檢測模型如圖2所示。

圖2 異常檢測模型
(1)定義1:時間序列
設時間序列ti時刻的記錄值為vi(ti),記錄時間ti是嚴格 增 加 的 (i<j?ti<tj) ,則 可 將 時 間 序 列 記 為X=<x1=(t1,v1(t1)),x2=(t2,v2(t2)),...,xn=(tn,vn(tn))> , 簡 記 為X=<x1,x2,...xn>。
(2)定義2:時間序列的子序列
設有時間序列 X=<x1,x2,...,xn> 和 X1=<xi1,xi2,...,xin> ,其中,xi1,xi2,...,xin∈X ,并且有1<i1<...<in<n 。則稱 X1為X的子序列。
(3)定義3:歐式距離
給定時間序列 X=<x1,x2,...,xn>和Y=<y1,y2,...yn>,則歐式距離可表示為:

2.2.1 能耗數據分類處理
擠壓機與其擠壓狀態存在著一定的對應關系,即當擠壓機處于空載前進和快速后退階段時,其能耗比較小;當擠壓機處于擠壓狀態時,其能耗比較高。針對這一耗能特點,為了更加精確的對能耗數據進行點異常檢測,有必要針對不同的情況進行分類處理。
K-Means算法是典型的聚類算法,其目的是根據距離中心最近原則,通過計算其他數據對象到各聚類中心的距離,在不斷迭代循環中,將數據分配到指定的不同的K個類簇中,使得簇間相似度盡可能大而簇內相似度盡可能小。鑒于K-Means算法的聚類作用且簡單高效,本文作者使用該方法對一段時間內的能耗數據進行分類處理,K-Means具體算法流程圖如圖3所示。

圖3 K-Means聚類算法流程圖
輸入:長度為N的數據集X={x1,x2,...,xn},最終聚類個數K;
輸出:聚類后的K個類簇C={c1,c2,...,ck}。
2.2.2 LOF異常系數
為說明LOF異常系數,首先給出K-近鄰距離的概念,設q為數據點集A中的一點,k為任意給定的正整數,則q點的K-近鄰距離k-dist(q)滿足如下條件:
(1) A至少有k個點(不包括q點),他們到q點的距離小于或等于 k-dist(q),即存在 k個點x∈A{q},d(q,x)≤k-dist(q)。
(2) A中最多有k-1個點(不包括q點),他們到q點的距離小于 k-dist(q),即存在 k個點x∈A{q},d(q,x)<k-dist(q)。
在K-近鄰距離定義的基礎上,可將點q到點o的K-近鄰可達距離表示為:

式中:d(q,o)表示點q到點o之間的歐式距離。
接下來可得點q的異常系數LOF(q)為:

在上面的公式中,k(q)表示點q的近鄰范圍,lrd(q)指點q的K-局部密度,它反映了點q周圍點分布的密度狀況。以LOF(q)作為衡量某一點是否異常的指標,當其較大時,表示點q周圍中包含的點比較稀疏,進一步說明點q是異常點的可能性較大。
2.2.3 基于K-MLS的時間序列點異常在線檢測模型
針對擠壓機能耗特點,結合時間序列和聚類的思想,提出一種基于K-Means和LOF的時間序列點異常在線檢測模型,簡稱基于K-MLS的點異常檢測算法。在使用K-Means算法對歷史能耗數據分類的基礎上,使用LOF異常系數對不同類別的實時能耗數據進行異常檢測,具體實現流程如圖4所示。
針對模式異常,提出了一種K-MLOF時間序列模式異常檢測方法。從模式的角度檢測時間序列能耗數據的異常行為,彌補了點異常檢測算法僅僅能檢測出單個異常數據的局限性,提高了異常檢測的效率和準確率。
2.3.1 特征值
在擠壓機能耗數據中,為全面表示能耗數據時間序列的模式特征,提取一段子序列的特征值:高度、均值、方差、標準差,從而將時間序列映射到多維特征空間。
首先,將邊緣權重因子的定義為:


圖4 點異常檢測流程圖
式中:
m為檢測邊緣權重因子W(i)的窗口寬度,即子序列長度;
xmaxxmin為每一個檢測窗口中所檢測到的最大/小序列值。
子序列的高度定義為:

子序列的均值定義為:

2.3.2 k-異常因子(K-MLOF)
將時間序列子序列映射到四維特征空間C(h,x-,σ,s)后,給定 k∈N+,設點 p(hp,xˉp,σp,sp),q(hq,xˉq,σq,sq)為四維特征空間中的任意一點,那么p與q之間的歐式距離可表示為

結合上文對kth距離k-dist(p)的介紹,可得
對象p的k平均距離為


其中,

根據定義知,K-MLOF的值越大,子序列段對應的模式是異常模式的可能性就越大。
2.3.3 基于K-MLOF的時間序列異常模式檢測算法
輸入:時間序列X=<x1,x2,...,xn>及其長度n,子序列長度m,滑動窗口l以及近鄰數目k;
輸出:時間序列中的異常子序列。
具體流程:
(1)給時間序列X加窗,記為Fi,其中,i表示第幾個滑動窗口,首先,令i=1;
(2)對時間序列X=<x1,x2,...,xn>,以擠壓周期為界將其分為N個子序列,使用公式(5)計算出每個子序列的邊緣權重因子;
(3)計算特征值,規范化每一段子序列的4個特征值,將其值都限定在(0,1)之間;
(4)由公式(10)—(12),計算每個子序列的K-異常因子,當k-MLOF的值顯然較大時,表示該段子序列為異常模式的可能性最大;
(5)滑動窗口右移,i++,轉(2);
(6)輸出異常模式子序列。
提取能源管理系統數據庫中的擠壓機能耗歷史數據用于模型驗證,并將驗證后的模型用于擠壓機能耗數據在線異常檢測。在能耗數據異常檢測之前,對能耗數據做如下幾種數據預處理:數據平滑處理、缺失數據處理。處理前和處理后的能耗數據圖如圖5所示。
以華南某大型鋁型材生產企業的SY-1800Ton型擠壓機作為案例研究,以能源管理系統的數據庫中取自2016年10月生產同種型號鋁材的能耗數據作為數據樣本。首先對數據樣本進行預處理,其次將整個樣本分為訓練樣本和測試樣本兩類,其中訓練樣本不含異常能耗數據。為了更清晰的觀測到模型的性能,已知測試樣本中包含了2個模式異常數據集和5個點異常數據,其中模式異常數據在整體上表現為異常,但是數據單獨分開來看并非異常。
實驗配置為:Win7系統,MATLAB12(a),CPU2.4 Hz,內存4.0 GB。
3.2.1 點異常檢測
針對擠壓機能耗數據曲線的特點,觀測圖5的擠壓機能耗曲線周期圖可知,能耗數據呈現兩極分化的狀態,處于臨界狀態的值較少,高能耗數據對應擠壓狀態,低能耗數據對應擠壓前和擠壓后兩種狀態,簡稱非擠壓狀態。鑒于此,在使用K-Means方法對歷史能耗數據分類時,設置最終聚類數K=2。將訓練樣本數據輸入到模型中通過MATLAB進行仿真訓練,仿真分類結果中的高能耗數,對應擠壓狀態;低能耗數據對應非擠壓狀態。利用測試數據代替實時能耗數據,給定初始近鄰距離,對各數據點,首先判斷所屬類別,再與同類別能耗數據進行離群點分析,計算LOF異常系數值。如圖6為各能耗數據點的LOF值。
從圖中可以看到,LOF的值大部分在1附近波動,但圖中標記的5點的LOF值明顯高于其他點,若令LOF值大于2的點為異常點,則可判斷標記點對應的能耗數據為異常點。由于模式異常序列拆分成單個點時,其并非為異常點,所以在計算單個點LOF值時仍處于正常范圍。

圖5 處理前后的能耗數據圖
3.2.2 模式異常檢測
在驗證K-MLOF算法的實驗效果時,直接使用包含異常樣本的測試數據樣本進行仿真驗證,實驗中,給定能耗時間序列樣本長度為0.5 h采集到的能耗數據個數,子序列長度m取能耗數據周期時間2 min,在仿真實驗中不斷對k的取值進行變動,結果表明,當k取值在11~28左右變化時,檢測效果最好,其仿真效果圖如圖7所示。

圖6 擠壓機能耗數據點的LOF系數

圖7 模式異常檢測仿真結果圖
根據圖7可以看出,在時間段A和B區間內,K-MLOF異常因子明顯高于其他時間,在給定的樣本中同樣是在A、B時間段內擠壓機能耗出現模式異常,圖中在點異常的地方,其K-MLOF異常因子并沒有太大的變化,由此可證明算法在模式異常檢測上的有效性。
通過上述仿真實驗,證明本文作者提出的K-MLS算法和K-MLOF算法在檢測擠壓機能耗點異常和模式異常的有效性,為進一步說明該算法相對于原算法或其他算法的優勢,在同一樣本的前提下,使用不同算法進行了仿真實驗,對點異常檢測,使用原K-means算法和本文所提出的算法進行比較,結果如表1所示,對于模式異常檢測,使用了K-NN算法與K-MLOF算法進行比較,結果如表2所示。

表1 原K-means及K-MLS的準確率及運行時間
實驗表明,本文作者提出的點異常檢測算法雖然在運行時間上與原算法不相上下,但其準確率提高了;模式異常檢測算法在準確率對比其他算法也有較大的優勢。實驗最后,將點異常檢測結果和模式異常檢測結果合并,刪除重復異常點,最終將能全面得到擠壓機能耗異常序列。

表2 K-NN及K-MLOF的準確率及運行時間
針對擠壓機生產能耗數據的異常特征和傳統異常檢測算法漏檢率高、效率低的問題,提出一種基于時間序列和聚類的多層次異常檢測方法。并采用華南某鋁型材生產企業的擠壓機能耗數據對其進行了驗證。通過與現有異常檢測算法的檢測結果對比,驗證了該算法的有效性和優越性。