黃佳凌,林順富,2,詹銀楓,劉持濤,李東東
(1.上海電力大學(xué)電氣工程學(xué)院,上海 200090;2.上海市智能電網(wǎng)需求響應(yīng)重點實驗室,上海 200063;3.國網(wǎng)上海市電力公司青浦供電公司,上海 201700)
城鄉(xiāng)居民生活用電量在全社會用電量的占比逐年提高。隨著智能電網(wǎng)在全球電力工業(yè)中的發(fā)展與應(yīng)用[1],家庭用戶內(nèi)部電器使用信息的感知與獲取成為近年的研究熱點。家庭電器使用信息可以讓電力公司進一步了解居民負荷組成情況,有助于節(jié)能措施的實施和電網(wǎng)經(jīng)濟運行。傳統(tǒng)的侵入式負荷監(jiān)測需要為每個居民電器安裝智能插座等分離式傳感裝置,成本高且不便于維護[2]。美國麻省理工大學(xué)的Hart教授提出的非侵入式負荷監(jiān)測技術(shù)有可能通過家庭總功率、總電流等數(shù)據(jù)來獲取家庭中每個電器耗電數(shù)據(jù)[3]。由于基于非侵入式負荷監(jiān)測(non-intrusive load monitoring,NILM)技術(shù)的居民家庭監(jiān)測設(shè)備具有低成本、易維護的優(yōu)點,近年來受到廣泛的關(guān)注[4]。
非侵入式負荷監(jiān)測技術(shù)主要包括三個技術(shù)環(huán)節(jié):負荷開關(guān)事件檢測、負荷特征提取和負荷辨識[2],其中負荷開關(guān)事件檢測是重要的基礎(chǔ)和前提。當前,負荷開關(guān)事件檢測方法有譜圖理論算法[5]、雙邊累加求和算法[6-7]、小波分解算法[8]、自適應(yīng)粒子群算法[9]及二分遞推奇異值分解算法[10]等。其中,文獻[10]提出的二分遞推奇異值分解算法能有效降低開關(guān)事件檢測的漏檢、誤檢率,但是,該方法基于漢克爾矩陣變換和奇異值分解,運算量大且對硬件設(shè)備要求高,不便于應(yīng)用在低成本的監(jiān)測終端中。
基于開關(guān)事件檢測和長短時神經(jīng)網(wǎng)絡(luò)將家庭總有功功率曲線分解,可以獲得單一電器的耗電數(shù)據(jù)。基于此耗電數(shù)據(jù),用戶可以改變用電習(xí)慣以節(jié)約電費;電網(wǎng)公司制定合理的需求響應(yīng)策略,實現(xiàn)削峰填谷。家庭總有功功率曲線電器級別的分解將是非侵入式監(jiān)測技術(shù)中的研究熱點。文獻[11]基于暫態(tài)功率波形和功率變化量作為負荷特征,利用動態(tài)時間規(guī)整(dynamic time warping,DTW)和聚類算法與歷史波形數(shù)據(jù)庫對比后得到相似事件集,得到開關(guān)事件的檢測后,最終實現(xiàn)負荷分解。但上述兩篇文獻均只實現(xiàn)了能量的分解。文獻[12]將電器根據(jù)運行狀態(tài)數(shù)分布分類并選擇負荷分解的方式,對于多狀態(tài)電器使用雙向長短期記憶網(wǎng)絡(luò)和樹結(jié)構(gòu)Parzen 估計算法進行優(yōu)化參數(shù),對于單一狀態(tài)的電器則引入電流、功率作為負荷特征,最后使用多層感知器和極大似然估計分解出負荷的耗能量。該算法實現(xiàn)了單一電器曲線分解。
綜上所述,本文提出一種基于開關(guān)事件和長短時神經(jīng)網(wǎng)絡(luò)的居民家庭負荷曲線分解方法,還原組合功率曲線中單一負荷的運行曲線,計算出其耗電量,同時提出一種基于差分和方法的非侵入式負荷開關(guān)事件檢測方法。首先,基于差分和方法檢測居民家庭總有功功率曲線中的突變特征,并采用硬閾值函數(shù)濾除細節(jié)信號的噪聲,實現(xiàn)突變點位置的準確檢測;其次,利用居民電器組合開關(guān)模型和長短時神經(jīng)網(wǎng)絡(luò)對多負荷功率曲線進行負荷曲線分解;最后,用實驗測試數(shù)據(jù)和REDD 數(shù)據(jù)庫對所提方法進行驗證,與已有算法進行分析對比,結(jié)果證明所提方法具有更高的準確性。
總有功功率是檢測負荷開關(guān)事件的重要分析對象,其伴隨著用電設(shè)備電流、電壓值的變化而產(chǎn)生相應(yīng)的變化,在居民負荷開關(guān)狀態(tài)變化時存在著突變點[7]。因此,負荷開關(guān)事件的檢測即為總有功功率曲線中突變點的檢測。
差分是研究離散數(shù)學(xué)的一種算法,是對離散信號求微分運算,反映了離散量之間的一種變化。差分可以分為前向差分ΔP+和后向差分ΔP-,差分和信號S(i)定義為
其中
式中:P為居民家庭有功功率;i為采樣點序號(i=1,2,3,…,N);N為采樣總點數(shù);H為以某一時間點為中心的最大差分半徑;ω為局部分析窗口長度。
基于差分和算法的開關(guān)事件檢測流程圖如圖1所示。
圖1 差分和算法流程圖Fig.1 Flow chart of difference summation method
具體步驟如下:
1)對居民負荷總有功功率P進行差分和運算,得到差分和信號S(i);
2)對S(i)進行硬閾值濾波,得到全新的差分和信號S′(i);
3)對S′(i)中所有的值進行判斷,若為變號零點,則為負荷開關(guān)事件。
選用混淆矩陣[11]來評估負荷開關(guān)事件檢測的準確率,如表1所示。表中,1為真,0為假。
表1 混淆矩陣Tab.1 Confusion matrix
真陽性(true positive,TP)表示算法檢測出開關(guān)事件存在,真實情況中也發(fā)生開關(guān)事件;假陰性(false negative,F(xiàn)N)表示算法未檢測出開關(guān)事件,而真實情況發(fā)生開關(guān)事件,即漏檢事件;假陽性(false positive,F(xiàn)P)表示算法檢測出開關(guān)事件,而真實情況未發(fā)生開關(guān)事件,即誤檢事件;真陰性(true negative,TN)表示算法中未檢測出開關(guān)事件,真實情況也未發(fā)生開關(guān)事件。
同時,引入真陽性率(true positive rate,TPR)、準確率(precision rate,PR)、F1 分數(shù)和絕對時間偏差(absolute time deviation,ATD)4個指標,如下式所示:
式中:t(i)為所有TP 樣本中負荷真實開關(guān)時刻;(i)為所有TP 樣本中算法檢測出的開關(guān)時刻;T為數(shù)據(jù)總時長。
如果aTPR越大,aPR越大,aF1越大,而aATD越小,則說明檢測算法的綜合評價越好。
開關(guān)事件匹配模型是指將組合數(shù)據(jù)中同一類型負荷開和關(guān)事件的匹配。由于負荷類型辨識工作非討論重點,在此不過多闡述。開關(guān)事件匹配模型可以還原負荷運行的真實情況,了解負荷使用先后順序。
恒功率負荷指在運行工作時,功率穩(wěn)定輸出的負荷。對于恒功率負荷,其運行周期及工況相對穩(wěn)定。檢測到開事件后,可直接與后續(xù)開關(guān)事件中出現(xiàn)的第一個同類型負荷的關(guān)事件匹配。
變功率負荷的運行周期及工況均不穩(wěn)定。在某一個運行周期中,常出現(xiàn)多個干擾事件,則選取這一運行周期內(nèi)最后一個同類型負荷的關(guān)事件匹配檢測到的開事件。根據(jù)實驗室采集數(shù)據(jù),典型負荷運行周期如表2所示。以變功率負荷空調(diào)舉例說明,檢測到空調(diào)的開事件后,在28 800 s內(nèi)以檢測到的最后一個空調(diào)關(guān)事件匹配該開事件。
表2 典型負荷數(shù)據(jù)的運行周期Tab.2 Operation cycle of typical load data
開關(guān)事件匹配具體步驟如圖2所示。具體步驟如下:
圖2 開關(guān)事件匹配流程圖Fig.2 Flow chart of switch event matching
1)對開關(guān)事件集合進行開與關(guān)事件判斷;
2)若為開事件,記錄該開事件負荷類型,若為關(guān)事件,則返回判斷下一個開關(guān)事件;
3)根據(jù)開事件負荷類型,判斷其是否為恒功率負荷;
4)若為恒功率負荷,則匹配開關(guān)事件集合中該開事件后的第一個同類型負荷關(guān)事件;若為非線性變功率負荷,則匹配開關(guān)事件集合中該類型負荷運行周期內(nèi)的最后一個關(guān)事件。
長短時神經(jīng)網(wǎng)絡(luò)(long short-term memory networks,LSTM)是基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一類特殊神經(jīng)網(wǎng)絡(luò),可解決RNN 中出現(xiàn)的長期依賴問題。長短時神經(jīng)網(wǎng)絡(luò)的內(nèi)部構(gòu)造中含有4 個相互交錯的神經(jīng)網(wǎng)絡(luò)層,分別為遺忘層、輸入層、更新層和輸出層。其具體計算過程如下:
1)遺忘層最終傳遞信息ft表示為
式中:σ為sigmoid 函數(shù);Wf為遺忘層的權(quán)重向量;[ht-1xt]為將先前輸出信息與當前輸入信息結(jié)合成一個信息向量;bf為遺忘層的偏置項。
2)輸入層最終更新信息it和候選信息~t表示為
式中:Wi,Wc為輸入層兩個函數(shù)的不同權(quán)重向量;bi,bc為輸入層兩個函數(shù)的偏置項。
3)更新層最終輸入下一層的信息Ct表示為
式中:Ct-1為先前單元信息。
4)輸出層是決定最后的輸出信息,最后輸出中間信息ot和輸入下一單元的信息ht表示為
式中:Wo為輸出層的權(quán)重向量;bo為輸出層的偏置項。
差分和算法與長短時神經(jīng)網(wǎng)絡(luò)的負荷曲線分解流程圖如圖3所示。具體由以下4步組成:
圖3 負荷曲線分解流程圖Fig.3 Flow chart of load curve decomposition
1)根據(jù)開關(guān)事件合集和負荷總功率數(shù)據(jù)P選擇數(shù)據(jù)樣本X,劃分訓(xùn)練集和驗證集;
2)對訓(xùn)練集和驗證集進行歸一化處理;
3)進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,當誤差值或者訓(xùn)練次數(shù)滿足判定條件后,停止訓(xùn)練,得到預(yù)測的負荷數(shù)據(jù);
4)利用預(yù)測的負荷數(shù)據(jù)和開關(guān)事件進行負荷曲線分解,得到單一負荷曲線。
文獻[13-14]均采用功率分解準確率和能量分解準確率作為非侵入式負荷分解的評價指標。功率分解準確率的公式表示為
式中:(t)為t時刻功率的估計值;P(t)為t時刻功率的實際值。
能量分解準確率的公式表示為
式中:∑t∈TP(t)為T時段所消耗電能的實際值,∑t∈T(t)為T時段所消耗電能的估計值。
在實驗室內(nèi)利用泰克P5201電壓采集設(shè)備和泰克A622 電流探頭采集各類負荷的數(shù)據(jù),每秒鐘連續(xù)采集10 個周期,每個周期64 個數(shù)據(jù)點,每秒鐘總共640 個數(shù)據(jù)點。所采集的電器共5 種:電水壺、電飯鍋、飲水機、微波爐和空調(diào)。在實驗算法中,通過實驗室實驗數(shù)據(jù),選擇差分和局部分析窗口長度ω的值為3。
4.1.1 單個線性恒功率負荷開關(guān)事件檢測
以恒功率電水壺為例,敘述所提差分和算法的檢測過程。電水壺開啟時,有功功率曲線出現(xiàn)第1個突變點,開啟時刻為17 s;關(guān)閉時,有功功率曲線出現(xiàn)第2 個突變,關(guān)閉時刻為186 s。功率曲線如圖4a 所示。對電水壺的有功功率數(shù)據(jù)進行差分和計算,獲得差分和信號如圖4b所示。
圖4 電水壺有功功率曲線和差分和信號圖Fig.4 Active power curves and difference summation signal figure of electric kettle
在電水壺開關(guān)時刻,差分和信號出現(xiàn)對應(yīng)的變號零點,開啟時刻為17.5 s,關(guān)閉時刻為186.5 s。
將所提算法(方法4)與滑動雙邊累積和(cumulative sum,CUSUM)算法[6-7](方法1)、小波分解算法[8](方法2)和奇異值分解(singular value decomposition,SVD)分解算法[10](方法3)進行對比。
采用非參數(shù)化的滑動雙邊CUSUM 變點檢測方法對電水壺的開關(guān)事件進行檢測,設(shè)定閾值h=80 W,當功率變化值En超過閾值h時,則判定出現(xiàn)開關(guān)事件,其開啟事件結(jié)果局部圖如圖5所示,此方法檢測出電水壺的開啟時刻為18 s,關(guān)閉時刻為186 s。
圖5 CUSUM算法檢測結(jié)果局部圖Fig.5 Partial details of the detection results of the CUSUM algorithm
采用具有二階消失矩陣的Daubechies 2 號小波[8]對電水壺的有功功率曲線進行分解,得到細節(jié)信號w1,同時采用硬閾值濾波函數(shù)對細節(jié)信號進行過濾。如圖6 所示,小波分解在四個尺度細節(jié)信號中可識別的突變點位置并不相同,所以得到的檢測結(jié)果也不一致,增加了漏檢、誤檢的可能性,同時也無法保證開關(guān)時刻的準確率。
圖6 小波分解四個尺度細節(jié)信號圖Fig.6 Detailed signal diagram at four scales of wavelet transform
SVD分解算法[10]是一種基于二分遞推奇異值分解的突變點檢測方法,用不同層次空間的細節(jié)信號體現(xiàn)原始信號的突變點特征,圖7 為SVD 四層[10]信號分解后的細節(jié)信號圖,其在開關(guān)事件處出現(xiàn)明顯的變號零點,此方法檢測出電水壺的開啟時刻為17.5 s,關(guān)閉時刻為186.5 s。
圖7 SVD細節(jié)信號圖Fig.7 Detailed signal diagram of SVD
使用4 種方法對電水壺開關(guān)事件進行檢測,結(jié)果如表3所示。
表3 電水壺開關(guān)事件檢測結(jié)果對比Tab.3 Comparison of detection results of electric kettle
4.1.2 單個非線性變功率負荷開關(guān)事件檢測
非線性變功率負荷的運行工況比較復(fù)雜,在實際應(yīng)用中為開關(guān)事件檢測的一個難點。以非線性變功率負荷空調(diào)數(shù)據(jù)為例,圖8 為實驗室測試環(huán)境下的空調(diào)有功功率曲線圖。
圖8 空調(diào)總有功功率曲線Fig.8 Active power curve of air conditioner
由圖8可知,空調(diào)的運行特性較明顯,空調(diào)開啟后,出現(xiàn)多次上升突變,且呈現(xiàn)一個爬坡狀態(tài),增加了檢測難度,這使得絕對時間偏差的計算無法準確進行,選擇第一個突變點作為開啟時刻,同時在表4中我們只選用其中3個評價指標。
表4 空調(diào)開關(guān)事件檢測結(jié)果對比Tab.4 Comparison of detection results of air conditioner
由表4 可知,對于空調(diào)這樣運行工況復(fù)雜的負荷,方法1 出現(xiàn)了多次誤檢事件;方法2 出現(xiàn)了多次漏檢事件;方法3 和方法4 相比,所提方法4的aTPR,aPR和aF1均大于方法3。因此,方法4 在這四種方法中綜合評價最高。
4.1.3 組合負荷開關(guān)事件檢測
為說明算法流程,選用實驗室測量的較為理想的負荷組合場景,負荷類型及開關(guān)順序如圖9所示。
圖9 組合場景功率曲線圖Fig.9 Power curve of the combined scene
用四種方法分別對組合場景進行檢測分析,結(jié)果如表5所示。當檢測時刻與真實開關(guān)時刻的絕對誤差大于3 s時,視為漏檢。
表5 組合場景開關(guān)事件檢測結(jié)果對比Tab.5 Comparison of detection results of combination scene
同時,對仿真算法運行時間進行對比,使用Inter(R)Pentium(R)CPU G3250@3.20GHz 3.20GHz 64 位計算機,每種方法做5 組實驗,最后取平均值。最后,4 種方法所耗時間分別為:0.046 s,0.364 s,0.642 s,0.241 s。結(jié)合表3~表5 和運行耗時可知,在檢測準確度較高的方法3 與方法4 中,方法4 的耗時小于方法3,并且在仿真算法中具有更簡單的程序,方法3 運算所占內(nèi)存更大,應(yīng)用于多用戶終端時,方法4 的適用性更強。
4.2.1 長短時神經(jīng)網(wǎng)絡(luò)負荷曲線分解
為了說明提取方法,以4.1.3 節(jié)中所提理想組合場景的曲線作為分析對象,提取微波爐的功率曲線,如圖10 所示。利用長短時神經(jīng)網(wǎng)絡(luò)對功率曲線空缺部分(圖10b 黑色表示部分)進行預(yù)測填補,再將總功率曲線與填補后的曲線進行相減,即可通過該兩條曲線提取出單一負荷的運行曲線。
圖10 應(yīng)用于負荷曲線分解的長短時神經(jīng)網(wǎng)絡(luò)Fig.10 Application of load curves decomposition of LSTM
4.2.2 單一負荷曲線分解
用所提方法對單一負荷電水壺、電飯鍋、微波爐和空調(diào)進行負荷曲線分解,并計算出評價指標功率分解準確率和能量分解準確率。
表6顯示,對于線性負荷的曲線分解,所提方法的功率分解準確率和能量分解準確率都達到99%,而對于非線性負荷,準確率也達到96%。
表6 單一負荷的功率分解準確率和能量分解準確率Tab.6 Accuracies of power and energy estimation of a single load
4.2.3 組合數(shù)據(jù)負荷分解
對4.1.3 節(jié)中所提組合場景進行負荷曲線分解,將分解后的單一負荷曲線和原始功率曲線進行疊加對比,如圖11所示。
圖11 長短時神經(jīng)網(wǎng)絡(luò)在組合場景下的負荷曲線分解圖Fig.11 Load curves decomposition diagram of the combined scene of LSTM
4.2.4 與線性差值算法對比
為了說明所提負荷曲線分解算法的準確度,采用線性插值(linear interpolation,LI)的方法提取單一負荷曲線,分解結(jié)果如圖12所示。
圖12 線性插值負荷曲線分解圖Fig.12 Load curves decomposition diagram of linear interpolation
對比圖11 和圖12,可以看出,利用長短時神經(jīng)網(wǎng)絡(luò)分解出的各個單一負荷功率曲線更平穩(wěn)。
表7 展示了LSTM 與LI 的功率分解和能量分解的結(jié)果。對比結(jié)果顯示,在組合場景下,LSTM也具有明顯的優(yōu)勢,每一種負荷的準確率均在90%以上。
表7 組合場景下的功率分解準確率和能量分解準確率Tab.7 Accuracies of power and energy decomposition of load combination scene
REDD 數(shù)據(jù)集單個負荷有功功率采樣時間每個相隔3 s,對于其中缺失的數(shù)據(jù),因為小于2 min的數(shù)據(jù)缺失主要由無線傳輸?shù)墓收蠈?dǎo)致,可直接使用線性插值法補全數(shù)據(jù)[11]。選用REDD 數(shù)據(jù)庫中的低頻功率數(shù)據(jù)進行驗證,由于不涉及負荷辨識,因此本次驗證將用負荷1、負荷2、負荷3代表不同的負荷。REDD數(shù)據(jù)功率曲線圖如圖13所示。
圖13 REDD數(shù)據(jù)功率曲線圖Fig.13 Power curve of REDD data
分別用四種方法對REDD數(shù)據(jù)庫中60 min的負荷功率數(shù)據(jù)進行開關(guān)事件檢測,檢測結(jié)果如表8所示。
表8 REDD數(shù)據(jù)開關(guān)事件檢測結(jié)果對比Tab.8 Comparison of detection results of REDD data
重復(fù)進行5次實驗,并記錄下運算時長,最后求出平均值,四種方法所耗時間分別為:0.056 s,0.599 s,3.347 s,0.393 s。結(jié)合表8 可以看出,相對于方法1和方法2,方法3、方法4有效提高了檢測精度,并且更為準確地還原了負荷開關(guān)的具體時刻,然而方法3 運行時間明顯長于方法4,應(yīng)用于實際情況時,方法4會使設(shè)備運行更快,能有效節(jié)約時間和設(shè)備使用內(nèi)存。
REDD 數(shù)據(jù)的功率分解準確率和能量分解準確率如表9 所示。由結(jié)果可以看出,相比于LI 方法,所提分解算法對于復(fù)雜混合功率曲線具有更好的分解效果,再次證明所提方法的有效性。
表9 REDD數(shù)據(jù)下的功率分解準確率和能量分解準確率Tab.9 Accuracies of power and energy estimation of REDD data
針對當前負荷開關(guān)事件檢測算法準確度不高、實用性差的問題,利用負載特征及開關(guān)響應(yīng)特征,提出一種基于差分和計算的檢測方法。差分和檢測負荷開關(guān)事件算法可降低現(xiàn)有方法的漏檢,提高負荷開關(guān)事件發(fā)生時刻的檢測準確率,并在此基礎(chǔ)上,提高了運行速度,減小了程序運算內(nèi)存,針對未知負載也具有良好的檢測準確度,在實際情況下具有更好的適用性。同時,為了分解出總有功功率下單一負荷的曲線,提出一種基于開關(guān)事件匹配和利用長短時神經(jīng)網(wǎng)絡(luò)的負荷曲線分解方法。基于開關(guān)事件匹配和長短時神經(jīng)網(wǎng)絡(luò)的負荷曲線分解可將混合負荷曲線較為精確地分解成單一負荷曲線,并計算出單一負荷的耗能。最后,通過實驗數(shù)據(jù)和REDD 數(shù)據(jù)庫驗證了方法的有效性。
由于不涉及負荷辨識,下一步將完善負荷辨識的方法,提高辨識的準確率,在此基礎(chǔ)上開展閉環(huán)非侵入式檢測系統(tǒng)研究,同時,跟進實際設(shè)備產(chǎn)品的研發(fā)與應(yīng)用。