梁宏濤,劉紅菊,李 靜,2,王 瑩,郭超男
1(青島科技大學 信息科學技術學院,青島 266061)
2(華電國際十里泉電廠,棗莊 277100)
當前全球能源發展面臨資源緊缺、利用效率低等深層次矛盾與問題,能源轉型迫在眉睫[1].根據國際可再生能源署(international renewable energy agency,IRENA)數據統計,截至2020年底,中國光伏與風電裝機容量分別為254 GW 和282 GW,占世界領導地位[2].隨著新能源裝機量增加,能源消納問題日益凸顯,每年我國因“三棄”問題帶來的損失達百億元,近幾年能源消納問題雖有所緩解,但截止到2019年,新能源棄光電量仍然高達26.1 億千瓦時[3].因此精確的負荷預測對于優化能源調度、解決“三棄”問題具有重要意義.
負荷預測不僅在綜合能源管理與能源調度中占據主導地位,對于電價制定和電網的穩定運行也尤為重要[4].早在20世紀80年代便有專家學者針對負荷預測進行了研究,諸如回歸分析法[5]、時間序列法[6,7]等傳統負荷預測算法,但此類模型的預測能力僅針對線性模型表現較好,而用戶用電負荷具有典型的非線性特征.尤其近幾年隨著智能化設備的廣泛普及,用電量大幅度提升,捕獲到的諸如天氣、經濟、人口數量、地理位置等電力負荷影響因素越來越多,負荷預測的難度也隨之增大[8].為綜合考慮多個影響因素,ANN[9]、SVM[10]、集成學習[11,12]等智能化算法開始被廣泛應用于負荷預測,例如Chahkoutahi 等人[13]分別采用基于自適應網絡的模糊推理系統、多層感知器神經網絡和季節性自回歸綜合滑動平均法對電力負荷進行預測,預測精確度有所提高.與傳統預測算法相比,智能化預測算法適用范圍更廣和精確度也相對較高.
負荷是指供電地區或電網在某一瞬間所承擔的用電功率,根據用戶結構的不同,可將電力負荷劃分為工業負荷、商用負荷、城市民用負荷、農村負荷以及其他負荷等.其中城市民用負荷主要指城市居民家用電器的用電負荷,與居民日常生活息息相關,是目前的主要研究領域.
負荷預測[14]是指充分考慮各種自然因素、社會影響、系統運行等條件,利用各種數學方法或智能化模型預測用戶未來一定時間內的負荷數值.根據研究目的與預測時長的不同,可將負荷預測分為超短期負荷預測、短期負荷預測、中期負荷預測以及長期負荷預測[15].精確的短期負荷預測對于制定發電計劃、安排機組啟停與檢修以及電價制定具有重要意義.
電力是維持用戶日常生活的基礎能源,容易受到如天氣、建筑的物理特性、用戶行為、人口密度等多種因素的影響.本文將用戶用電負荷影響因素劃分為地區天氣因素、經濟因素、建筑結構以及人口密度等4 大類別.
(1)天氣因素主要包括室內外氣溫、空氣濕度、太陽照射角以及風速等; 天氣是影響用戶負荷的主要因素之一,尤其表現在夏季氣溫升高時,空調制冷等大功率電器用電量大幅度提升.
(2)經濟因素是指居民家庭收入、城區能源配比與價格、區域生活水平及教育水平等; 家庭經濟水平對居民用戶用電行為以及設備所有權起決定性作用,從而對用戶用電負荷產生影響.
(3)建筑結構包括建筑材料、綠化規劃、住戶位置等要素; 其中建筑高度與建筑位置等因素通過影響太陽輻射度、通風效果進而影響用戶用電負荷,建筑材料則會影響房間的制冷制熱問題.另外室內設備條件也會對用戶用電負荷產生較大影響.
(4)人文特點是指某地區的居民密集度、生活風俗以及居民特點,地域風俗習慣、居民職業特點以及家庭人口年齡構成對用戶用電習慣與負荷高低都會產生一定的影響.
目前負荷預測可分為傳統預測和基于深度學習的智能化預測模型,本文簡要介紹了回歸分析、ANN、SVM、CNN 以及RNN 等預測方法,總結概括各預測方法的優缺點與適用范圍,以期為未來負荷預測提供參考.
回歸分析法指在分析因變量與自變量的基礎上,建立回歸方程來預測因變量未來的變化趨勢.該模型構建簡單,預測速度較快.但隨著科技的快速發展,可收集到的用電負荷影響因素數據與日俱增,回歸分析模型往往會忽略負荷變化的內在規律性以降低預測精度.目前回歸分析逐漸開始作為基礎模型用于處理負荷預測問題,例如文獻[16]在基礎回歸模型的基礎上,引入虛擬變量用于描述時間的周期變化規律,同時考慮即時溫度、滯后溫度以及24 小時平均溫度實現用戶負荷預測.
時間序列算法最初由美國學者Box 等人[17]提出,該方法根據時間序列歷史數據,建立數學模型描述時間與負荷值之間的關系.Boroojeni 等人[18]通過模擬不同季節周期(每天、每周、每季度和每年)的離線數據,借助自回歸(auto regressive model,AR)和移動平均(moving average model,MA)模型,分別對季節性和非季節性負荷周期進行建模,有效降低了預測誤差.時間序列分析算法只考慮時間變量,需求數據量少,預測速度快.但該模型理論復雜,對原始數據平穩性要求較高,并且未考慮其他不確定性影響因素,最終的預測精確度存在較大誤差.
除回歸分析與時間序列法外,統計負荷預測模型還包括灰色模型法(grey model,GM)[19]、相似日法[20]、負荷求導法等.灰色模型對不確定性因素處理較好,僅適用于長期負荷預測; 相似日法在一定程度上解決負荷預測中的“積溫效應”問題,但過于依賴歷史數據; 負荷求導對超短期負荷預測表現出較好的性能,但計算復雜度較高.
BPNN 因其強大的非線性映射能力和柔性的網絡結構使之成為應用最廣泛的人工神經網絡之一[21].但目前沒有統一標準來定義神經元個數與網絡層數,同時BPNN 還存在學習收斂速度慢以及局部最優解的問題.許多專家學者針對這些問題進行改進.文獻[22]利用蝙蝠算法優化模型參數選擇,從負荷曲線形狀以及距離相似性兩個維度設計灰色關聯模型以選取負荷相似日,與單一BPNN 等模型相比,RMSE 降低了1.06%.
用戶因地理位置、地域經濟等情況不同導致用電負荷量產生較大差異,主成分分析以及Pearson 相關系數等常用方法具有一定的主觀性.針對該問題,文獻[23]利用最小二乘法、最小方差以及遺傳算法等模型計算各因素權重,利用加權方式得出影響因素的重要性排名,結合徑向基函數模型進行預測.文獻[24]構建新型隨機嵌入式分布框架,利用核密度估計法擬合多個神經網絡預測結果形成概率密度函數,結合期望估計法計算得到最終預測值,適用于數據較少的情況,并且BPNN 結構與隱含層節點個數仍需通過反復試驗確定.文獻[25]利用魯棒性較強的CIM 度量方式作為ANN的損失函數以減少噪聲和異常值的影響.
SVM[26]最早主要用于數據分類,由于其良好的非線性數據處理能力,也可被用于處理負荷預測問題.與BPNN 相比,SVM 收斂速度快,不存在網絡層數與局部最優解的問題,但針對復雜結構數據,計算難度高,模型較難實現.Chu 等人[27,28]利用決策樹和加權平均法劃分季節屬性,利用時間序列與SVM 支持向量機針對不同變量進行預測,呈現較好的預測效果.文獻[29]采用最小二乘支持向量機進行負荷預測,并結合改進并行粒子群優化算法(improved particle swarm optimization,IPPSO)優化參數選擇,有效提高了數據處理效率與算法預測準確率.Wu 等人[30]提出了一種面向預測成本的線性非對稱損失函數,對預測過高或過低實施不同懲罰措施,同時充分優化LSSVM 的不敏感參數,大大降低了負荷預測的經濟成本.文獻[31,32]分別將經驗小波變換、變分模式分解與LSSVM 模型相結合,在數據預處理階段將數據分解,合并所有子序列的預測結果,以獲得更滿意的預測結果.
模式搜索算法(pattern search,PS)在局部搜索方面呈現較好的效果,而螢火蟲群優化(glowworm swarm optimization,GSO)算法則具有全局搜索能力,文獻[33]結合這兩個算法的優點,提出一種綜合算法GSOPS,并利用多層次粒度提高SVM 的訓練效率,模型訓練效率高,但模型復雜,構建有難度.文獻[34]在基礎負荷預測的基礎上引入實時電價,利用加權灰色關聯投影算法預測節假日負荷,PSO 算法優化SVM 模型參數用于預測基本負荷,該模型更具有現實意義.
各種傳統負荷預測模型受到歷史數據影響較大,并且考慮因素不全面,導致預測準確度較低.隨著大數據的發展,深度學習預測模型應運而生.深度學習模型由于其強大的泛化能力和無監督學習等特征,被廣泛應用于圖像識別、自然語言處理等領域[35].本文以CNN、LSTM、深度置信網絡(deep belief network,DBN)以及集成學習與組合模型等多種預測算法為例,簡要介紹深度學習模型在短期負荷預測中的應用.
CNN 依賴卷積層從負荷數據中提取特征,利用全連接層實現回歸預測與分類.最初CNN 主要被用于圖像處理,但若將數據像圖像一樣以二維或三維表示時,也可使用CNN 進行處理數據預測.如表1 所示,文獻[36]結合CNN 和K-means 聚類的最佳特征,開發了一種混合預測方法,使用從電網獲得的大數據集,利用K-means算法將其聚類成子集,獲得的子集用于訓練CNN,最終將子集預測結果集成得到最終負荷預測結果.Sadaei 等人[37]將多變量時間序列數據轉換成多通道圖像輸入至CNN 模型,同時使用模糊空間、頻譜等邏輯模型來表示時間序列的一維結構,有效控制CNN 的過擬合問題.文獻[38]以歷史負荷為輸入特征,同時考慮數據時間序列分布,降低負荷數據噪聲誤差和增強時間序列特性,采用多時空尺度CNN (multi-temporalspatial-scale temporal convolutional network,MTCN)處理負荷數據; 該方法可同時學習負荷數據的非線性特征和時間序列特征.Imani 等人[39]將CNN 應用到住宅負荷預測中,利用非線性關系抽取方法(nonlinear relationship extraction,NRE)將歷史負荷的附近兩周前中后3 天的同時刻負荷與溫度數據抽取集成為一個負荷-溫度立方體,利用CNN 二維卷積算子從鄰域中提取負荷值之間的局部特征,同時使用負荷溫度立方體學習隱藏的非線性負荷溫度特征來訓練CNN 模型; 結合高斯核SVR 來最小化預測誤差,預測結果表明該方法具有優越的性能.
表1 CNN 模型在短期負荷預測中的應用
RNN 在負荷預測方面也做出了巨大貢獻.文獻[42]針對家庭用電負荷預測中的波動性和不確定性問題,將住宅消費者的負荷概況作為池化深度遞歸神經網絡(pooling-based deep recurrent neural network,PDRNN)的輸入,直接對不確定性信息進行處理學習,有效解決模型過擬合問題.RNN 一般被用于離線學習,每次訓練都存在無法從新數據中及時學習新知識,針對此問題,Fekri 等人[43]利用RNN 捕捉時間相關性,并根據新數據更新RNN 的權重,自動調整RNN 超參數以適應數據變化.文獻[44]則將RNN 與一維CNN 網絡相結合,提出了用于短期電力負荷預測的遞歸檢驗神經網絡模型(recurrent inspection CNN,RICNN),利用RNN學習電力負荷時間序列數據中存在的長期和短期時間相關性,CNN 則處理負荷時間序列的谷峰特征,與MLP 模型相比,有效提高了MAPE.
RNN 通過共享所有時間步的參數來學習過去時刻的模式表示,但隨著時間的推移,序列的增長使過去時刻的模式記憶逐漸消失,LSTM 利用門控記憶單元可以將數據信息保持更長的時間,并做出更好的預測.文獻[45]充分考慮能耗數據的周期性,利用自相關性分析影響因素特征,構建LSTM 網絡對序列數據進行建模和預測,與ARMA、BPNN 等傳統模型相比,RMSE 大幅度降低.文獻[46]則將LSTM 應用到非住宅用戶負荷預測上,利用K-means 分類挖掘用戶能耗行為模式,應用Spearman 相關系數研究非住宅消費者在多個時間序列下的時間相關性,最終設計提出一種基于多序列LSTM 遞歸神經網絡的非住宅負荷預測框架.而針對住宅用戶,文獻[47,48]利用負荷序列分解和基于互信息的多源輸入數據重構雙層特征方式處理住宅用戶負荷數據,引入自注意力機制(self-attention mechanism,SAM)為時間序列特征分配權重,最終采用LSTM 和SAM 相結合的混合模型進行預測,彌補了單一LSTM 的不足.針對個人用戶負荷預測,文獻[49]則利用LSTM 結合多分位數原理實現概率預測.Han 等人[50]將時間序列劃分為53 組,每層設計7 個輸入節點和1 個輸出節點; 將371 個的日用電負荷數據點輸入至具有53 個神經元的全連接層,全連接層的輸出作為LSTM 循環層的輸入,有效減少輸入負荷序列的長度,緩解了梯度消失問題.面對高維海量特征數據,文獻[51]構建影響因素特征矩陣,利用密度聚類將用戶聚為2 類,利用3 層BiLSTM 對某地區未來一周的負荷進行預測.
除LSTM 外,門控循環單元(gate recurrent unit,GRU)也由于其超群的記憶學習能力而受到各專家學者的青睞.Du 等人[52]建立具有時空相關性的歷史負荷矩陣(historical load matrix,HLM),利用3 層CNN提取負荷數據特征,GRU 則負責將序列映射到最終預測值.用電負荷的影響因素不斷疊加導致負荷序列非平穩性逐漸增強,為提高負荷序列的穩定性,Gao等人[53]利用EMD 將分離出負荷序列的不平穩因素,采用Pearson 分析序列相關性,將相關性較高的序列輸入GRU 中進行預測; 而文獻[54]則利用差分分解與誤差補償平滑負荷序列后利用GRU 進行預測;這兩種方法均有效提高了模型精度.Eskandari 等人[55]利用二維卷積層提取電力負荷矩陣的隱藏特征,有效避免了卷積層中參數爆炸的問題,其中卷積核大小由電力負載的自相關系數確定; 針對預測,該模型充分利用LSTM 和GRU 網絡的優點,LSTM 單元用于前向傳播,GRU 單元用于反向傳播,以獲得更高的預測精度.表2 展示了RNN 模型在短期負荷預測中的應用.
表2 RNN 模型在短期負荷預測中的應用
除CNN、LSTM、GRU 等常用模型外,還有部分其他深度學習模型也被應用于短期負荷預測中.例如Dedinec 等人[56]將多層受限玻爾茲曼機組成的深度信念網絡(deep belief networks,DBN)用于負荷預測,在逐層無監督訓練后使用有監督反向傳播訓練方法微調模型參數,同時引入電價變量,有效提高了預測精度.
為降低由于復雜的網絡結構和受限于確定性點預測而導致的計算成本問題,Dong 等人[57]利用K 近鄰算法尋找與未來值相似的歷史電力負荷時間序列特征,采用DBN 進行預測,而文獻[58]則利用縱橫交叉算法(crisscross optimization,CSO)優化DBN,利用互信息算法篩選影響因素,這兩種模型均表現出較好的性能.
Alipour 等人[59]利用自動編碼器與級聯神經網絡構建DNN 模型進行負荷預測.文獻[60]同時考慮歷史負荷與溫度、陽光等氣象數據,利用梯度增強回歸樹(gradient boosting regression tree,GBRT)進行概率凈負荷預測.文獻[61]研究光伏滲透率、季節性和負荷需求增加對凈負荷預測間隔的影響,采用分位數回歸和動態高斯模型進行日負荷區間概率預測.文獻[62]采用相空間重構和BNN 相結合進行短期凈負荷預測.
深度學習模型可以更深層次的挖掘負荷數據集特征,提高預測精確度,但模型框架、參數選擇仍然是亟待解決的難題.
一直以來,高穩定性和準確度都是模型訓練所追求的目標,但單一的模型訓練結果往往不如人意.為此各大專家學者將多個弱學習器組合成一個強學習器以期獲得更好的效果[63],即集成學習.Hu 等人[64]提出了一種基于綜合加權矢量角和基于移位的密度估計的多模態進化算法,設計了包括預測性能評估、模型屬性分析、結構和融合策略優化以及最優模型偏好選擇的智能決策支持方案,以改進基于隨機向量函數鏈網絡的集成學習模型.
目前應用比較廣泛的是Bagging、AdaBoost、XGBoost、GBDT 等集成學習模型.Bagging 采用并行方式,訓練速度快,但有放回抽樣導致部分數據集取不到,且每個學習器權重一致,未考慮其重要性.AdaBoost采用串行方式運行,可根據模型訓練結果調整權重,模型訓練精度更高,但弱學習器個數不好設定且訓練比較耗時.針對此問題,文獻[65]將決策樹作為弱學習器構建隨機森林(random forest,RF)模型進行負荷預測,分別利用粗糙集、灰色投影技術、果蠅優化算法對模型進行優化,均取得了較好的效果.
XGBoost 算法采用二階導,提高了計算效率并有效減小過擬合問題,但每次迭代運行都需遍歷整個數據集,不適合處理較大數據集,對內存也有較高的要求.為解決此問題,文獻[66]利用集成學習的stacking 技術將XGBoost 與輕量級梯度提升樹(light gradient boosting machine,LGBM)、多層感知機MLP 三個模型組合用于負荷預測,表現出較好的性能優勢.孫超等人[67]構建篩選特征集的數據處理層以及優化參數選擇的負荷預測層的雙層XGBoost 模型結構,該模型將第1 層篩選得到的特征集與負荷作為第2 層的輸入,有效避免特征數據相互依賴的問題.
除以上集成學習模型外,部分專家還將SVM、神經網絡、集成學習等算法集成進行組合預測(如表3所示).Malekizadeh 等人[68]將電力系統劃分為若干小區域,利用模糊神經網絡(fuzzy neural network,FNN)、SVM 等多個算法分別預測單個區域的用電負荷,采用局部線性模型樹(locally linear model tree,LOLIMOT)方式將小區域的預測結果組合,結合模糊推理靈活設置網絡拓撲結構,更加有效的提取負荷分布趨勢.文獻[69]將CNN 與RF 結合使用,有效減小了MAPE.針對數據特征少導致的預測低精度問題,Tian 等人[70]利用CNN 提取用戶用電負荷局部趨勢,結合LSTM 模型進行預測.陳振宇等人[71,72]則利用誤差倒數法(MAPEreciprocal weight,MAPE-RW)選取模型組合最佳權重,將XGBoost 與LSTM 模型預測的時序數據進行加權組合,有效降低了單一模型的預測誤差.Zhang 等人[73]利用CNN 提取數據特征,Seq2Seq 對用戶用能負荷進行預測,同時引入注意機制和多任務學習方法來提高負荷預測的準確性.Nie 等人[74]將數據預處理、多目標優化、模型預測以及模型評估組合成一個新型負荷預測系統,利用EMD將負荷數據分解,結合RBF、ELM 與GRNN 三種預測模型進行預測,將結果加權形成最終預測值.
表3 組合模型在短期負荷預測中的應用
研究發現,基于深度學習的預測算法已成功解決了大多數負荷預測分析問題,組合模型在性能與準確性方面表現都要優于單一模型,挖掘深度學習模型的更多組合方式是未來的研究熱點.
為進一步分析各預測模型的優缺點,本文利用2 個國外負荷數據與2 個國內負荷數據進行實驗對比,選取較為典型的SVM[27,28]、LSTM[49]、Bagging[65]、XGBoost[67]等模型進行實驗,國外數據集包括2016年國外建筑能耗數據(energydata)[75]以及2019年比利時負荷數據集(Elia_data)[76]; 國內數據集包括2016年電工數學建模競賽負荷預測數據集(math_load)與2014年上海市真實用電數據集(2014_上海).4 種電力負荷數據屬性如表4 所示.
表4 實驗測試數據集
為精確對比各模型優缺點,統一劃分數據集,選取前80%為訓練數據集,后20%為測試數據集,本實驗基于Python 3.8 進行.6 種常用的負荷預測模型預測值與用戶用電真實值的對比圖1 所示.
圖1 各模型預測值與真實值對比圖
圖1 由4 個子圖組成,圖1(a)-圖1(d)分別代表AdaBoost 與Bagging 模型、XGBoost 與GBDT 模型、選取3 種核函數的SVM 模型以及LSTM 模型.由圖可知,Bagging、GBDT 以及LSTM 等負荷預測模型的數值擬合度較高,而Adaboost 與XGBoost 的擬合度有待提高.由于SVM 處理數據的局限性,使得該模型的擬合度表現較差.
6 種常用模型的運行結果的MAPE 與運行時間(運行10 次取均值)如表5 和表6 所示.由實驗結果可知,Bagging 模型泛化能力較好,適用于各種大小的數據集,并且預測效果也較為可觀.與Bagging 模型相比,AdaBoost 運行時間較長,精確度也有待提高.針對小數據集,各個集成學習表現都較為穩定.但針對高維稀疏數據,例如energydata 數據集,GBDT 的預測效果有待提高.
表5 部分預測模型的MAPE 比較 (%)
表6 部分模型的運行時間比較(ms)
綜合看來,Bagging 模型與AdaBoost 模型具有很高的泛化能力,適合處理各種數據集.XGBoost 預測效果較好,但其對內存需求大,不適合處理大規模數據集.而GBDT 訓練速度快,但對高維稀疏數據集的處理存在一定的局限.LSTM 模型預測效果較好,但模型參數的選擇對預測結果影響較大.
隨著信息時代的高速發展,負荷預測已經成為電力系統領域不可或缺的重要部分[1].本文簡單介紹了有關負荷預測的傳統預測方法與基于深度學習的智能預測算法,可發現傳統負荷預測算法速度快、模型簡單,對于非線性數據處理存在一定局限[16,19,20].基于深度學習的智能化預測算法因其泛化能力強、自學習能力高等優點被各大專家青睞,但也存在模型復雜、過擬合、局部最優解等問題[35].模型組合策略、權重參數設置問題則成為集成學習模型發展的阻礙.
在實際應用中,短期電力負荷預測在以下方面仍有待發展:
(1)隨著智能化設備的發展,可獲取的負荷數據影響因素越來越多,但由于服務提供商出于安全考慮,對實時和歷史數據保密,高質量的標記數據仍然缺乏,利用傳感器獲取的數據存在重復、錯誤標記以及數據流的暫時丟失等問題,因此高效可靠的數據預處理在負荷預測中變得尤為重要[14].
(2)傳統模型與智能化模型各有優點,如何利用各個模型的優點,揚長避短,提高模型的準確率仍是目前的研究熱點[55,59,60].
(3)目前電力負荷預測涉及訓練數據的準確性和完整性、深度學習模型及其性能限制等多個不確定度的量化問題.不確定性的量化問題對于提高深度學習模型的可靠性與準確性具有重要意義.
(4)無人機、電動汽車、可再生能源的發展都使電力系統變得龐大而復雜,挖掘更深層次的影響因素、考慮更接近實際情況的用電負荷是未來努力方向.