陳朔, 陳小龍, 張婷, 王艷龍, 張照, 王雙
(1.國網安徽省電力有限公司合肥供電公司, 安徽,合肥 230000;2.國網安徽省電力有限公司肥西縣供電公司, 安徽,合肥 231299;3.安徽明生恒卓科技有限公司, 安徽,合肥 230001)
隨著電力建設規模的不斷擴大,智能電網覆蓋的范圍也在持續增大,電網系統中的各項電力運行數據也隨之增多[1]。當電網系統中出現問題,如變電站設備故障、電表保險熔斷、輸電線路中斷等[2],智能電網中的電表數據會隨之發生異常。因此,對智能電網能源大數據中心中的電表數據進行持續實時的監控和異常檢測,可以及時發現電網中出現的異常或事故,避免因故障處理不及時導致的更嚴重的電量損失和設備損壞[3]。因此,對能源大數據中心的數據進行異常檢測對智能電網來說有著重大的經濟和安全價值。
異常檢測一直是數據分析中的熱門領域,現階段對時間序列進行異常檢測的算法主要可以分為時間序列分解法、分類和回歸樹、ARIMA、指數平滑法和神經網絡這幾種[4]。ZENG等[5]利用分解法將圖像分為正常部分和殘差部分來檢測醫學圖像中的異常區域。PANAGIOTIS等[6]利用決策樹和機器學習算法設計了一種基于異常的智能電網入侵檢測系統。YAACOB等[7]利用ARIMA技術進行異常檢測來查找網絡中的潛在攻擊。ANDRYUKHIN等[8]使用基于指數平滑的模型來對工業網絡中的異常行為進行檢測。WANG等[9]采用基于LSTM的功耗預測和異常檢測方法來識別異常功率消耗數據。由于智能電網中數據量龐大,這些算法不能同時滿足速度和準確率的雙重需求。
基于此,本文設計了一種基于云計算平臺的能源大數據中心的數據異常檢測方法,利用云計算架構,實現對智能電網能源大數據中心中超大數據量的存儲和計算。此外,根據用電數據隨季節變化的特征,采用STL分解法將電表數據進行分解,再利用分解后的殘差數據進行異常分析,完成對能源大數據中心異常數據的檢測。
云計算是一種基于互聯網的,通過網絡互聯異構和按需為個人用戶或企業用戶提供取用的計算方式[10]。云計算是一種新興的IT服務交付方式,它具有超大規模、通用性、高可擴展性、廉價性、高可靠性和按需服務等特點[11]。因此,它可以為用戶提供更加方便快捷的使用體驗和更加低廉的服務成本。云計算的應用場景目前也已增多,IDC云、企業云、云存儲系統、開發測試云、協作云等已經被廣泛應用[12]。
云計算架構通常分為服務和管理兩部分[13]。服務部分為用戶提供各種基于云的服務,包括軟件服務、平臺服務和基礎架構服務。管理部分則以管理層為主,它可以對云計算中心進行及時有效的管理,確保整個云計算中心運行的穩定和安全。
Robert B Cleveland提出的A Seasonal-Trend Decomposition Procedure Based on Loess,即STL是一種專門用來處理時間序列數據的分解算法,其原理是以魯棒局部加權回歸作為平滑方法,將某個時間序列Y=(T,X)分解為3個分量,即趨勢分量Q、周期分量C和殘余分量R。其中:T={t1,…,tn},tn表示第n個時間節點;X={x1,…,xn},xn表示第n個時間節點對應數據。
Y=Q+C+R
(1)
其中,趨勢分量可以顯示時間序列中低頻的變化率,周期分量可以顯示頻率周期性變化,殘余分量顧名思義則為時間序列去除趨勢分量和周期分量后的分量。
STL時間序列分解算法主要分為兩部分,分別為內循環和外循環。在內循環階段需要對時間序列Y進行Loess平滑,得到趨勢分量Q和周期分量C。在外循環部分則為殘余分量的獲取。

(2)
其中,xFarthest表示區間內距離xi最遠的點。
通過該區域內所有時間點,對xi進行線性回歸得到平滑直線y′=a+bt,則時間點ti處的平滑值為yi。
對于時間序列Y,在確定區間大小為sc以后,可以得到子序列,通過對子序列進行平滑,即可得到周期子序列C′,對其進行低通濾波得到低頻分量L,則周期分量C=C′-L。接著計算:
Q′=Y-C
(3)
對Q′進行區間大小為sq的平滑,得到趨勢分量Q。則殘余分量R=Y-Q-C。
圖1為本文提出的智能電網云計算平臺整體框架。它分為顯示云層、分析計算云層、數據云層、基礎設施云層和管理云層。其中,顯示云層提供軟件服務,用戶可以通過該層發布命令,并獲得反饋。分析計算云層和數據云層提供平臺服務,龐大的計算任務在該層完成。基礎設施云層提供基礎架構服務,它為云計算提供硬件和軟件支撐。管理云層提供賬號、安全、運維、服務、計費等方面的管理,對整個智能電網云計算平臺進行高效的管理,保證整個平臺的穩定運行。

圖1 智能電網云計算平臺整體框架
由于智能電網能源大數據中心中的電表數據來源廣泛,又經過了長時間的傳輸,所以會存在數據缺失和格式不一致的問題,因此,在進行數據分解之前,需要對數據進行預處理。本文采用牛頓插值法對缺失數據進行補全,再采用min-max標準化函數對所有格式不一致的數據進行標準化操作。
設時間序列T={t1,…,tn}對應的原始數據集為X={x1,…,xn}={f(t1),…,f(tn)},假設(ti,xi)數據缺失,則:
P(ti)=f(t1)+(ti-t1)f[t2,t1]+(ti-t1)(ti-t2)f[t3,t2,t1]+…+(ti-t1)(ti-t2)…(ti-tn-1)f[tn-1,…,t2,t1]
(4)
R(ti)=(ti-t1)(ti-t2)…(ti-tn)f[tn-1,…,t2,t1]
(5)
P(ti)=f(t1)+(ti-t1)f[t2,t1]+(ti-t1)(ti-t2)f[t3,t2,t1]+…+(ti-t1)(ti-t2)…(ti-tn-1)f[tn-1,…,t2,t1]
(6)
其中,f[ti,tj]為f(t)在點ti、tj處的一階差商,P(ti)為牛頓插值逼近函數,R(ti)為余項函數。
(7)
完成預處理之后的數據集為Y={y1,…,yn}。
能源大數據中心中的電表數據具備明顯的晝夜周期特征和趨勢變化率,因此通過STL時序分解法去除數據中的趨勢分量和周期分量,可以較為明顯輕松地找到異常數據,降低異常數據引起的故障報錯等問題。
對預處理后的數據集采用1.2中提到的STL時序分解法,得到殘余分量R,對R進行ESD檢驗。其步驟如下。
(1) 計算殘余分量序列數據R的中位數M。
(2) 計算M的絕對中位數誤差mad。
(3) 計算R中每個數據點的統計量:
(8)

(4) 統計S中最大的數,若該數大于閾值σ則將其認為為異常點,從時序數據集中將其去除。
(5) 迭代執行步驟(1)~步驟(4)。
本文實驗數據選自國家電網安徽省某變電站采集的2020年變壓器數據,其中70%的數據作為訓練集,剩下30%作為測試集。為驗證算法的可行性,如圖2、圖3分別為改變參數sc和sq觀察算法的檢測準確率。

圖2 參數sc對算法精度的影響

圖3 參數sq對算法精度的影響
為驗證算法的性能,圖4通過將本文的算法與ARIMA,回歸樹做對比,通過準確率,召回率來衡量本文的算法優越性。
準確率公式為
(9)
召回率公式為
(10)
其中,TP表示真正的異常值被區分,FP表示非異常值被分為異常值,FN表示真正的異常值未被區分,TN表示非異常值未被分為異常值。

圖4 3個算法評估指標
為了避免因故障處理不及時導致的電量損失和設備損壞,需要對能源大數據中心中的數據進行異常檢測。本文設計了一種基于能源大數據中心的數據異常檢測方法,方法利用云計算架構,實現了對能源大數據中心中超大數據量的存儲和計算。采用STL分解法將電表數據進行分解,再利用分解后的殘差數據進行異常分析,完成對智能電網能源大數據中心中異常數據的檢測。并通過實驗驗證了該方法的準確性。