任智仁, 湯 博, 周 弼, 薛 雷, 易靈芝, 劉西蒙
(1.威勝集團有限公司,湖南 長沙 410129;2.湘潭大學 自動化與電子信息學院,湖南 湘潭 411105)
非侵入式負荷監測(NILM)也稱負荷分解,通過一定區域內總功率數據分析出各個負荷的相關信息,進而通過分析得到的數據了解用戶的用電習慣以及各設備能耗的具體情況。在用戶用電舒適情況下,對用戶的可控負荷進行優化調度,實現節能降耗,節省電費開支[1]。
NILM最早由Hart[2]提出,之后,國內外便興起了對NILM領域的相關研究。文獻[3]利用低頻數據基于因子隱馬爾可夫模型(FHMM)的非侵入式負荷分解方法,將負荷分解轉化為概率最大的優化問題。文獻[4]設計了一種基于穩態分割的事件檢測器和一種基于多特征全局相似度的線性判別分類器組,利用綜合特征對一個周期內的獨立未知電器的功耗曲線進行分解,但分解的準確率較低。文獻[5]提出新的負載分解方法功率簽名符號,同時利用狀態機來檢測設備的開關狀態,機器學習用來識別設備,但該方法需要提前獲取設備信息。
近年來,深度學習在語音識別[6]、圖像識別[7]、自然語言[8]處理等方面取得了優異的識別效果,具有計算復雜度固定以及不需要人工提取特征的優勢。深度學習網絡模型得到了迅速發展,應用在非侵入式負荷分解中,大大提高了分解準確度。文獻[9]提出一種基于圖信號處理的非侵入式分解方法,但是分解的速度較慢。文獻[10]通過卷積深度神經網絡識別設備的激活狀態,不僅可以識別家用電器的激活狀態,還能估計消耗從而獲得高性能。文獻[11]為提高分解模型的準確率,提出了一種復合的深度長短期記憶(LSTM)網絡的負荷分解方法,該方法提高了分解的效率和事件檢測的綜合性能。文獻[12]研究了注意力機制對負載分解的影響,并將注意模塊添加到常用的負載分解模型中,將負載分解問題轉化為求解最優組合的過程。文獻[13]采用了一種基于深度學習的有效且適用的解決方案。該方法采用層對層結構,提取各家電的功耗曲線特征,能夠檢測和區分電器的類型,提高了分解的準確度和分解速度。文獻[14]提出了基于批量規范化和爬山算法的卷積神經網絡(CNN)自編碼器,通過公共數據集redd驗證了有效性。
本文對CNN模型進行改進,提出了將CNN與雙向門控循環單元(BiGRU)相結合的混合深度學習模型,進一步提取輸入序列的空間特性和時間特性,并且加入了注意力機制,提取有利特征,丟棄無用特征,不僅有效減少了訓練時間而且顯著提升了非侵入式負荷分解的準確率。最后采用國內自測數據集進行試驗,試驗結果表明,該方法能夠取得較為優異的分解性能。
非侵入式負荷分解以功率為研究對象,所探討的內容涉及到時序分析。以分解一戶家庭在某一時刻的總表功率為例,該時刻投入使用的所有負荷所消耗的功率決定總表功率。簡而言之,假設有M個只有簡單投切二狀態的負荷與總電表相連,并且設備投入時所消耗的功率保持不變,則時刻t下的總表功率可表示為

(1)
式中:am(t)表示設備m在t時刻的狀態,如果設備m在t時刻處于工作狀態,則am(t)=1,否則am(t)=0;Pm表示設備m處于工作狀態時的功率;e(t)表示噪聲或誤差量。


(2)
本文在編碼-解碼部分采用Seq2Seq模型。常見的Seq2Seq模型使用循環神經網絡(RNN)進行編碼和解碼。但是,由于RNN結構復雜、訓練參數多,容易造成梯度爆炸、梯度消失、訓練速度慢等問題。為了解決這些問題,本文在編碼部分采用CNN,提高了模型的訓練速度,在解碼部分采用BiGRU。BiGRU是LSTM的變體,可以有效地提取時間特征解決梯度消失問題,減少參數數量,提高訓練速度。Seq2seq模型使用一個滑動窗口大小作為一層神經網絡的輸入,根據不同的負荷類型設定不同的窗口大小,將每個時刻輸出的窗口預測值的平均值作為預測結果。試驗結果表明,該方法可以更好地提取特征,減少消耗的時間。
CNN屬于典型前饋神經網絡,包括輸入層、隱藏層、輸出層,其本質是通過建立多個濾波器提取輸入數據的特征。這些濾波器對輸入數據進行逐層卷積和池化,層層提取蘊含在輸入數據中的拓撲結構特征。其中隱藏層又可分為卷積層、池化層與全連接層。卷積層可通過不斷地迭代模型參數獲取最優卷積核,并對卷積核進行自動特征提取。池化層通過在時間層次上的降維操作抽取最重要的特性。常用的池化操作有最大值池化、平均池化。卷積層和池化層的堆積產生深度網絡結構,再通過逐層抽象化獲得更高級的特性。通過卷積層與池化層處理,將輸出數據通過全連接層映射至分類標記空間,最后將全連接層的輸出用Softmax函數轉換為分類標記。
RNN和普通前饋神經網絡的不同之處在于將輸入的時序類型信息納入考慮,常用于語音識別和圖像分類等領域。為了解決RNN中的梯度消失問題,Hochreite和Sshmidhuber提出LSTM。LSTM由多個相同的細胞結構構成,每個細胞結構由遺忘門、輸入門、輸出門組成。LSTM網絡參數過多,導致模型的速度慢、效率低。因此,通過將LSTM中的輸入門和遺忘門合并為更新門,衍生出了收斂速度更快的門控循環單元。
門限回歸單元(GRU)就是 LSTM 的一種變體,其細胞結構如圖1所示。GRU具有2個控制門單元,分別是重置門和更新門,去除了記憶單元,減少了參數,提高了模型的計算速度。GRU的單位神經元通過更新門和重置門來處理上一時刻輸出的信息,更新門處理上一時刻的信息,重置門移除上一時刻的無用信息。

圖1 GRU基本結構圖
BiGRU在GRU的基礎上改進了結構,其由兩層GRU 組成,一層正向傳播,一層反向傳播,最終將兩層的輸出結果進行擬合得到分解結果,提高模型的分解精度,其網絡結構如圖2所示。

圖2 BiGRU網絡結構圖
注意力機制類似于大腦對物體的觀測模式,當處理接受到的信息時,將目光聚焦于重點地方。注意力機制采用了分配信息權重的方法,篩選重要信息,舍棄無用信息。將注意力機制導入神經網絡中,就能夠降低干擾信息,從而提升模型的性能,具體結構如圖3所示。其中,x1~xn為預測模型的輸入;h1~hn為每一個輸入對應的隱藏層的輸出;α1~αn為每個隱藏層輸出的注意力概率分布值;y為經過注意力機制處理后的模型輸出值。

圖3 注意力單元結構圖
本文采用有功功率作為研究對象,通過對原始數據進行數據處理,劃分數據集。使用滑動窗口將輸入電力數據進一步處理成相同尺寸的數據,同時將總功率序列和單個電器序列輸入深度學習網絡模型進行訓練,得到單個模型的預測值,通過Adam優化器對輸出的損失值進行參數優化,不斷調節模型參數,進一步優化模型。最后將測試樣本中的總功率數據,輸入訓練好的模型中即可得到網絡的輸出,即單個目標電器的消耗功率。非侵入式負荷分解流程圖如圖4所示。

圖4 非侵入式負荷分解流程圖
訓練網絡模型需要大量的數據,然而測量大量數據需要投入很多時間成本,為了解決這個問題,本文使用原始數據去構造訓練數據,使用大量的訓練數據訓練分解模型,提高分解模型的性能。具體步驟如下:
(1) 選取一種用電器作為主電器,根據主電器深度學習模型的輸入序列長度構建輸入序列兩倍大小的全零序列,其中主電器的輸入序列長度由其激活狀態的長度決定。若用電器有多個激活狀態,選取激活狀態最長序列構建全零序列。
(2) 任意選取主電器的一次負荷激活狀態,并且保證該激活狀態可以完整放入新建的全零序列之中。除此之外,在50%的概率下,放入主電器的激活狀態。
(3) 任意選取其他非主電器的一次負荷激活序列任意起點疊加其中,并且非主電器序列的疊加以25%的概率即可。
(4) 重復(1)~(3),得到N條數據的測試集。
分解模型如圖5所示,輸入是有功功率序列,通過多層CNN對輸入序列進行編碼,提取輸入序列的空間特性。然后再經過BiGRU進行解碼,進一步提取時間特性,由于功率數據是一種典型的時間序列信息,BiGRU在對其進行學習時采用雙層循環單元,并借鑒“跨層連接”的思想,將前后特征進行組合復用輸出到多個負荷分支,減少大量的參數,提高了訓練速度,節約計算成本,加強了網絡對用電數據的表征能力。同時引入注意力機制,關注重要信息,剔除冗余信息,提高了分解模型的準確度。該分解模型具有較強的負荷分解能力。

圖5 分解網絡結構
對網絡分解性能及訓練時長綜合衡量,網絡結構及對應參數設置如表1所示。在對網絡進行訓練時,將Batchsize設置為256,迭代次數設為50,激活函數采用Relu,學習率為0.001,優化策略采用Adam優化器。

表1 網絡結構與對應參數
本文采用國內自測數據集進行試驗,數據集包含3個總表數據,每個總表數據下含有3個用電器,數據集的采樣頻率為1 s,即每1 s采樣一個功率點。
本文采用的硬件環境為內置Window10操作系統和16 G內存的64位計算機,軟件使用python3.7。
為了對所提模型進行負荷分解性能評估,本文選取其中兩類評估指標,即均值絕對誤差(MAE)與絕對誤差和(SAE),以此對模型進行評估。相關計算公式如下:

(3)

(4)

本小節采用的數據為國內3個家庭的總表數據及其對應的分表數據,具體為:總表1對應的分表為微波爐、水壺、電飯煲;總表2對應的分表為電磁爐、電飯煲、微波爐;總表3對應的分表為電磁爐、電飯煲、空調。
本小節將FHMM、組合優化算法(COA)、去噪自動編碼器(DAE)、LSTM作為對比模型,試驗結果對比如表2、表3所示。
分析表2和表3可知,相較于其他算法,FHMM和COA的MAE和SAE較高,而深度學習算法相較于前者MAE和SAE有所降低,相較于傳統的神經網絡,本文模型性能有較為顯著的提高。本文模型對電磁爐、電飯煲、微波爐3種電器的MAE和SAE的值降低明顯,表明該模型具有良好的分解效果。

表2 不同算法的MAE對比

表3 不同算法的SAE對比
由表2和表3數據可知,本文模型對總表下的大部分電器能夠取得較為優異的分解效果,其對于總表對應下的各類電器分解圖如圖6~圖8所示。由圖6~圖8可以看出,本文模型不僅對于真實值的擬合效果較好,而且分解的準確度較高。對水壺的分解在部分時間區域出現了偏差,但是分解的功率值仍較為準確。

圖6 總表1對應的各類電器分解圖

圖7 總表2對應的各類電器分解圖

圖8 總表3對應的各類電器分解圖
同時由表4的模型訓練時間對比可知,相比于其他分解算法,本文所提的方法可以減少模型訓練時間,使模型學習訓練更加快捷高效。

表4 模型訓練時間對比 min
為進一步提升負荷辨識的準確率,通過CNN對輸入功率序列進行空間特征提取,將其作為BiGRU的輸入,通過BiGRU進一步提取其時間特性,并且引入注意力機制,使該模型更加關注重要特征,剔除干擾因素,提高模型分解的準確度。為驗證所提方法的優越性,在國內自測數據集上進行試驗。對比結果表明,本文所提非侵入式負荷分解模型比其他算法更佳,該模型降低了MAE、SAE,其分解算法的準確率比其他算法更高。相關結論如下:
(1) CNN與BiGRU相結合的混合深度學習模型,對數據的空間特性和時序特性進行充分提取,提高了模型的分解準確度。
(2) 注意力機制的引入使神經網絡在對于某些特征向量的識別中具有良好的補足效用,使模型更加關注重要部分,剔除不必要的因素,提高了其分解性能。
(3) 在進行實際負荷監測時,所提算法具有較好的分解性能,能夠很好地應用于實際用電場景。