魏海浩 劉愛蓮 李英娜
(昆明理工大學信息工程與自動化學院 云南 昆明 650500)
智能用電是智能電網的重要環節之一,是實現高級量測體系和互動服務體系的核心內容。負荷監測是實現智能用電的關鍵技術之一。非侵入式負荷分解(Non-intrusive load disaggregation,NILD)最早由Hart[1]教授提出,利用電力入口處總負荷信息,對用戶內部的用電設備進行狀態監測和能耗分解。NILD有利于用戶與電網公司友好互動,對于電網削峰填谷以及用戶綠色用電、節約用電均具有指導意義。
目前負荷分解方法主要分為模式識別和機器學習兩種。其中模式識別主要包括粒子群算法、遺傳算法等。文獻[2]將總諧波失真系數和功率作為負荷特征,采用慣性權重粒子群算法進行負荷分解,負荷識別率高且克服了粒子群算法后期陷入局部最優的缺點,但是前提條件為用電設備是開關型負荷。文獻[3]將NILM視為0-1背包問題,測試粒子群、模擬退火、差分進化等數學優化算法對于負荷辨識的性能,同樣是將用電設備抽象成開關二狀態模型。文獻[4]首先運用AP聚類進行設備狀態提取,然后基于遺傳算法進行負荷識別與分解,雖然對設備的建模更貼近實際,但是未考慮多用電器同時運行的情況。
機器學習在一定程度上能夠解決上面的問題,其中隱馬爾可夫(HMM)是常用的方法。文獻[5]提出了一種基于粒子濾波的負荷分解方法,單個負載和負載的疊加分別用隱馬爾可夫(HMM)和因子隱馬爾可夫(FHMM)建模,并且模擬了三種情景下的實驗:有無噪聲和重置后驗估計。文獻[6]運用FHMM對整個家庭負載設備進行建模,使用維特比進行負載能耗的解碼,對比傳統的NILM,該方法識別精度有一定的提高特別是針對負荷波動性較大的負載設備。文獻[7]提出了一種稀疏維特比的方法,該方法基于超狀態隱馬爾可夫模型和稀疏維特比算法。文獻[8]考慮了設備之間的相互作用,使用FHMM對設備交互進行建模,并且通過維特比算法進行推斷。
目前對于負荷分解的研究很多,但是依然面臨一些問題:(1) 基于優化算法的負荷分解對負載設備的建模并不符合設備的實際運行情況[9],并且基于k-means電器狀態聚類受功率波動的影響,導致聚類中心不穩定。(2) 基于HMM的NILD考慮的用電情景過于單一,導致識別不準確。(3) 隨著電器數量的增多,基于HMM的NILD使用維特比進行負載能耗解碼的效率低問題。
針對以上問題,提出一種結合情景上下文的FHMM負荷分解。對于單個負載和多負載疊加的情況分別運用HMM和FHMM建模。運用高斯混合模型(GMM)進行負荷狀態聚類。結合情景上下文信息,對負載設備的狀態轉移概率進行優化消除冗余狀態轉移概率,對狀態空間以及狀態轉移路徑進行約束降低維特比算法的復雜度。
根據負載穩態特征的不同,負荷類型可分為開/關型負荷、有限狀態型負荷、連續變狀態型負荷。其中,前兩種設備類型沒有本質區別,都具有有限的工作狀態,且各狀態的負荷特征相對穩定,可以用來描述大多數家用電器[6]。有限狀態型負載的運行過程如圖1所示。

圖1 有限狀態負載的運行過程
有限狀態類型負載的運行過程可以通過HMM建模。假設,用電器狀態集合為Q={q1,q2,…,qK},K代表用電器運行狀態的個數,則其運行過程可以描述為一個離散時間序列S={s1,s2,…,st,…,sT},其中st∈Q表示時刻t時用電器所處的狀態是不可觀測的隱藏狀態,T為運行時間。用電器輸出功率作為觀測值輸出,觀測序列為O={o1,o2,…,oT}。單個用電器的負荷模型如圖2所示,該模型中K=2,st在ON和OFF之間切換。

圖2 單個負荷的HMM模型
單個負荷的HMM模型可由5個參數描述:θ={Q,V,π,A,B}。
1)Q代表隱藏狀態集合;V={v1,v2,…,vM}為觀測值集合,ot∈V。
2) 初始狀態概率π表示t=1時模型處于某個隱藏狀態的概率,π={π1,π2,…,πK},πk=P(s1=qk),k=1,2…,K。

4) 觀測值概率矩陣B={bj(m)}K×M,其中bj(m)表示t時刻狀態j輸出觀測值Vm的概率。


圖3 總負荷的FHMM模型
基于FHMM的總負荷模型可由3個參數描述:θ{π,A,B}。

(1)
式中:x是D維數據向量;λ=(ω1,ω2,…,ωK;μ1,μ2,…,μK;Σ1,Σ2,…,ΣK)為GMM的參數;ωk(k=1,2,…,K)代表第k個高斯分布的權重;g(x|μk,Σk)為第k個高斯分布模型。
(2)
g(x|μk,Σk)=
(3)
式中:μk為均值向量;Σk為觀測向量的協方差矩陣。
EM算法通過事先假定數據的類別然后根據迭代估計出GMM的權值ωk、均值μk和協方差Σk。具體步驟如下。
E-步:引入隱含變量,即xi屬于k類的后驗概率P(k|xi,λ(t))。對于數據X={x1,x2,…,xn},已知上次迭代的參數λ(t)=(ω(t),μ(t),Σ(t)),則隱含變量為:
(4)
M-步:求解模型參數的最大似然估計,并對參數進行更新。引入模型的對數似然函數:
(5)
分別對ωk、μk、Σk求偏導,將隱含變量代入得到t+1次迭代的GMM參數:
(6)
(7)
(8)

GMM模型建立后,對于輸入數據,采用Bayes最大后驗概率(MAP)準則[13],得到數據屬于哪一類,具體實現如下。
對于一組樣本數據,數據類別的劃分可以描述為:
(9)
每個數據點來自第k個高斯分量的后驗概率為:
(10)
式中:ωk為第k個高斯分布密度的先驗概率;g(xi|μk,Σk)為xi屬于第k類的概率密度。樣本xi屬于某類的后驗概率密度最大,即xi屬于該類。聯立式(9)和式(10)的聚類結果為:
(11)


(12)
(13)
(14)
(15)
觀測值滿足:ot|st(1:N)~N(μt,Σt)。

情景上下文包括:
1) 對實際環境下負載設備的功耗模式進行分析,對各負載的狀態轉移概率矩陣進行優化。考慮REDD數據集[14]中的washer_dryer負載設備,它包含OFF、洗衣、烘干三個狀態,washer_dryer的運行過程如圖4所示。

圖4 washer_dryer運行過程
觀察圖4可知,washer_dryer的狀態轉移矩陣為9×9方陣。假設其狀態轉移矩陣如表1所示。

表1 washer_dryer狀態轉移概率
但是實際情況下用戶行為決定了其操作模式,Q13、Q21和Q32是不存在的,即新的狀態轉換圖和狀態轉移矩陣更新如圖5和表2所示。

圖5 修正后的washer_dryer運行過程

表2 修正后的washer_dryer狀態轉移概率
仿照上述結合實際環境對負載設備的功耗模式進行分析,可得到其他負載設備優化后的狀態轉移概率矩陣。
2) 根據t時刻的功率觀測值ot對該時刻的狀態空間進行約束,同時考慮后前時刻的差分功率ΔPt來減少狀態轉移路徑的條數,降低維特比算法的計算量。

(16)

圖6 基于FHMM的負荷分解

(17)

(18)

(19)
對于總負荷模型t時刻的差分功率是大于或等于N個設備的差分功率的和,可由式(20)描述。
(20)

通過式(18)對負荷設備i的狀態空間進行約束,剔除狀態空間中不符合實際情況的狀態,通過式(20)考慮后前時刻觀測值的差分功率ΔPt減少狀態轉移路徑的條數,經過約束的FHMM負荷分解可由圖7表示。

圖7 基于狀態約束的FHMM負荷分解
在FHMM參數θ{π,A,B}已知的條件下,結合實際情況對負荷設備的狀態空間進行約束,接下來運用維特比算法通過動態規劃求解概率最大路徑,即求得各負荷設備的最優狀態序列實現負荷分解,其目標函數為:
(21)
其中:
(22)
(23)
(24)
(25)
(26)
聯立式(21)和式(26),得到負荷設備i的負荷序列Oi,得其在時段T內的能耗為:
(27)
本文選用REDD數據集中6戶家庭的負荷數據來驗證算法,數據長度為10天,采樣頻率為1 Hz。前7天的數據用于訓練模型參數,余下3天的數據用于驗證負荷分解效果。在用聚類算法求取用電器狀態之前,由于功率序列中普遍存在功率脈沖噪聲,因此選用中值濾波去除序列中的噪聲。圖8反映了dishwaser電器的原始功率信號,以及使用了中值率波處理后的信號。對比發現當濾波窗口為7的時候信號更加平滑,信號中幾乎沒有比較突出的尖峰,與此同時信號也并未發生畸變,與原信號比較吻合。

(a) 中值率波處理后的信號

(b) 原始功率信號圖8 中值濾波
針對濾波處理后的數據,分別使用k-means和GMM算法分別對該功率數據聚類,聚類效果如表3所示,選取House1和House2的兩種電器進行橫向對比,結果k-means受功率波動的影響較大,表現出較大的方差,從而導致聚類中心不穩定,而GMM是一種基于概率的聚類,受波動的影響較小,兩次聚類的中心比較穩定。圖9是GMM的聚類結果,可以看出其結果為四個高斯分布圖。綜上說明本文選取GMM狀態聚類是合理的。

表3 GMM和k-means聚類結果對比

續表3

圖9 基于GMM的dishwaser狀態聚類
表4為利用GMM聚類得到的House1中所有電器的運行功率。

表4 House1中各電器的運行功率
為驗證本文方法負荷分解的性能,引入F1-Measure、能耗分解誤差εE這2個參數作為評價指標,具體計算方法如下:
(28)
(29)

表5展示了利用第一周的歷史數據訓練的負荷分解模型在測試環境下2個指標的結果。表5中,F1-Measure的均值為0.823,表明本文方法能夠對電器設備準確辨識;其次,平均能耗誤差為4.034%,表明本文方法可以準確地實現負荷的分解。

表5 負荷分解測試結果
組合優化方法(Combinatorial Optimization,CO)[15]是NILM的常用方法,前文已經探討CO無法模擬用電器的實際運行過程,處理辦法往往是將用電設備抽象成開關二狀態負荷。因此,接下來本文將進行負荷分解方法的橫向和縱向對比。橫向對比為結合情節上下文的FHMM(C-FHMM)和CO的對比;縱向對比為FHMM和C-FHMM的對比,基于CO的負荷分解參考文獻[16]。實驗結果如表6所示。

表6 負荷分解方法對比
可以看出,從F1-Measure的角度看,CO的F1-Measure最高,平均值為0.883;FHMM的F1-Measure最低;C-FHMM的F1-Measure比CO低的原因為C-FHMM將電器建模為多狀態,負荷分解時出現電器狀態的混淆識別導致其F1-Measure略低于CO。從能耗分解誤差εE的角度看,C-FHMM的能耗誤差要比CO的能耗誤差小,為4.272%,這是由于當CO將電器建模為二狀態(電器的各狀態的平均功率代表運行時功率),出現負荷辨識錯誤時將提高其能耗分解誤差。其次,dishwaser和refrigerator的F1-Measure最低,原因是這兩個電器的運行狀態功率比較接近(見表4),導致負荷辨識錯誤。圖10為運用C-FHMM方法得到的負荷分解結果。

圖10 負荷分解結果
圖11展示了三種方法的負荷分解效率,觀察發現,隨著電器設備的增多,算法求解的復雜度越大。本文的C-FHMM在運用維特比算法進行解碼時對狀態空間和狀態轉移路徑進行了約束,所以運算效率相比FHMM有了明顯提高,且當電器設備數量大于8個時,負荷分解效率也優于CO。

圖11 負荷分解效率
本文提出一種結合情景上下文的FHMM的負荷分解方法:(1) 針對組合優化(CO)的負荷分解對電器設備建模不符合電器實際運行狀態的問題,運用因子隱馬爾可夫(FHMM)對負荷進行建模。(2) 根據電器工作狀態的功率服從高斯分布,運用GMM進行電器狀態聚類,避免了k-means聚類中心不穩定問題。(3) 考慮情景上下文的信息,對負載設備狀態轉移概率進行優化,其次,對狀態空間以及狀態轉移路徑進行約束,降低維特比算法的復雜度。
基于REDD數據集進行方法驗證,本文算法對比CO和FHMM在降低能耗分解誤差的情況下,分解效率也有一定的提高。不足的地方在于,當用電設備的狀態功率接近時分解效果并不理想,其次模型的訓練依賴于電器已知的情況。未來將對上述存在的問題進行研究。