楊德州,魏勇,李萬偉,彭婧,李敏,李正輝,甄釗, 3,王飛
(1.國網(wǎng)甘肅省電力公司經(jīng)濟技術研究院,蘭州市 730050;2.華北電力大學電力工程系, 河北省保定市 071003;3.清華大學電機系,北京市 100084)
目前,我國的城市化進程隨著經(jīng)濟社會發(fā)展水平的提高而快速推進,人口的聚集加大了城市資源的緊張程度。在這種情形下,大量的城市綜合體[1-3]應運而生。
城市綜合體是一種以建筑群為基礎,在地理空間上融合了商業(yè)零售、辦公商務、娛樂休閑、酒店餐飲、居住物業(yè)五大核心功能,并在各部分之間建立互相依存的能動關系,最終形成的一個多功能、高效率的“城中之城”。相較于單一功能建筑項目,大部分的城市綜合體都具有建筑面積大、負荷密度高的特點[4]。這使得城市綜合體成為城市電網(wǎng)中的一類大型用電客戶,因此,準確地預測其用電量至關重要。對于城市綜合體本身而言,電量預測有助于綜合體用戶合理靈活地安排用能方式,達到節(jié)能減排的目的。例如,可以根據(jù)電量預測的結果分時段利用儲能和分布式光伏;此外,對于供電企業(yè)而言,準確的電量預測有助于其制定靈活的檢修、調度和營銷計劃,從而最終降低供電成本。
目前,國內外學者已經(jīng)在月度用電量預測領域開展了大量的研究工作。根據(jù)預測算法的不同,可將其分為2類:基于數(shù)學或統(tǒng)計學的預測方法[5-6](時間序列法、灰色預測法等)和人工智能預測方法[7-8](神經(jīng)網(wǎng)絡法、支持向量機回歸法、隨機森林法等)。
文獻[9]指出,第一類方法往往從負荷時間序列的角度出發(fā),采用固定回歸函數(shù)組合來建立外推預測數(shù)學模型。這種方法的可解釋性往往較強,但缺乏適應性和準確性。相反,第二類方法雖然可解釋性較差,但是卻可以自組織地學習各輸入輸出間的關系,更適用于高維度、非線性的用電量預測問題。為避免模型出現(xiàn)局部最優(yōu)的情況,文獻[10]構建了一個基于混沌遺傳算法優(yōu)化的支持向量機(support vector machine, SVM)回歸預測模型。文獻[11]將月度用電量序列分解為趨勢和波動序列,并使用兩個神經(jīng)網(wǎng)絡模型分別對其預測。值得注意的是,大部分已有的研究都存在以下不足:首先,這些方法通常直接對用電客戶整體的月度電量進行預測,而完全忽略了其內部具體負荷成分的特點;其次,這些方法通常利用歷史月度用電量數(shù)據(jù)訓練月度用電量單步預測模型。該類型數(shù)據(jù)的分辨率低,可采集的數(shù)據(jù)點數(shù)量往往較少,因此可構建的模型訓練樣本數(shù)量有限,這大大增加了預測模型過擬合的風險,最終使得預測精度低下;這些方法大多采用單一的預測模型,在負荷變化特性復雜的情況下,其預測精度難以得到保證。
根據(jù)以上分析,本文提出一種基于多層分解-累加原理的城市綜合體月度用電量預測方法。首先,將城市綜合體內部各負荷成分根據(jù)其建筑負荷特性分為商業(yè)負荷、居民住宅負荷和商務辦公負荷;然后,針對每一類型的負荷搜集其歷史小時用電量數(shù)據(jù),并根據(jù)星期標簽將數(shù)據(jù)分解成星期一到星期日的小時用電量序列;接著,使用改進的經(jīng)驗模態(tài)分解(improved empirical mode decomposition, IEMD),將用電量序列中的波動特性與趨勢特性分離,并利用極端梯度提升(extreme gradient boosting, XGBoost)算法對分解后的各分量分別建立對應的多步預測模型;最后,將預測結果逐層累加得到月度用電量預測結果。
負荷種類的復雜多樣性是城市綜合體的一個顯著的特征。各建筑負荷的負荷密度、負荷率、負荷增長率差異較大,對于溫度等外部因素的敏感性也不盡相同,因此10 kV線路上的負荷變化并不能完全反映城市綜合體的用電特性。為了提高電量預測精度,需要將綜合體內部負荷根據(jù)其用電行為進行劃分。一般來說,城市綜合體內部通常包括五大類典型負荷:商業(yè)零售、辦公商務、娛樂休閑、酒店餐飲和居住物業(yè)負荷。其中,商業(yè)零售、娛樂休閑和酒店餐飲負荷往往集中于同一棟建筑樓宇,難以解耦開來。因此,本文將商業(yè)零售、娛樂休閑和酒店餐飲3類負荷合并作商業(yè)負荷。本文將此步分解定義為第一層分解。此時城市綜合體內部負荷將被分為三大類:
DCity=DCom+DRes+DBus
(1)
式中:DCity表示城市綜合體的總負荷;DCom表示商業(yè)負荷;DRes表示居民住宅負荷;DBus表示商務辦公負荷。
圖1展示了三大類負荷的冬季典型日負荷曲線。從圖1中可以看出,居民住宅負荷的峰谷差相對較小,在13:00—15:00會有一段較大的跌落,并且通常情況下日峰值會出現(xiàn)在晚間;商務辦公負荷的日峰值一般出現(xiàn)在白天,且負荷的變化趨勢相對平穩(wěn);商業(yè)負荷的日峰值一般出現(xiàn)在傍晚,且負荷從09:00開始激增,這與其營業(yè)時間基本吻合。
圖1 三類建筑負荷冬季典型日負荷曲線
(2)
考慮到用電行為的日歷效應,即不同星期中的同一工作日或周末休息日中的用電行為往往是相似的,本文將歷史小時用電量序列根據(jù)其周標簽分為7個子序列:歷史星期一小時用電量序列到歷史星期日小時用電量序列。圖2為分解過程的示意圖,具體來說,將采集到歷史N2個小時的用電量數(shù)據(jù)記為:
圖2 歷史小時用電量序列分解示意圖
(3)
(4)
同理可得星期二至星期日的6個用電量序列,并將7個分解后的用電量序列記為:
(5)
此時,一個月的用電量可以表示為:
(6)
使用歷史星期“i”的小時用電量對未來一個月星期“i”的每小時用電量進行預測,可以使總的預測步長T分解為7部分,每部分分別為Ti。該方法在減小預測步長的同時可以保證各子序列的規(guī)律性,從而最終提高預測精度。本文將此步分解定義為第二層分解。
經(jīng)驗模態(tài)分解(empirical mode decomposition, EMD)[12]是一種基于信號局部特征的自適應無監(jiān)督特征提取方法,特別適用于非平穩(wěn)、非線性的用電量序列分析。該方法可以將一個非平穩(wěn)時間序列分解成一系列相互獨立的本征模函數(shù)(intrinsic mode functions, IMF)和一個殘差。其用于用電量序列分解時的具體步驟如下:
1)找到用電量序列D(t)的所有極大值和極小值點,然后分別使用3次樣條曲線進行擬合,得到D(t)的上包絡線和下包絡線。定義差值序列h1(t)為:
h1(t)=D(t)-m1(t)
(7)
式中:D(t)為用電量時間序列;m1(t)為上下包絡線的均值序列。
若h1(t)滿足以下約束,即:過零點數(shù)與極值點數(shù)相同;上下包絡線關于時間軸對稱,則認為h1(t)是一個IMF,并將其重新記作c1(t);否則將以h1(t)為基礎,重新執(zhí)行步驟1)。
2)將提取出的IMF從原始序列D(t)中減去,得到新的原始序列,并定義差值序列r1(t)為:
r1(t)=D(t)-c1(t)
(8)
3)重復步驟1)和步驟2)n次,直到rn(t)是一個單調函數(shù)。
通過EMD算法,可以在無任何信息損失的情況下,將原始用電量序列D(t)分解為一系列IMFs的和與一個殘差項,其中IMFs體現(xiàn)了用電量序列的波動性,而殘差項體現(xiàn)了用電量序列的趨勢性:
(9)
式中:ck(t)表示第k個IMF;rn(t)為殘差項。
盡管EMD有很多優(yōu)點,但是在分解過程中容易產生端點效應,最終導致分解結果有所偏差。為了獲得更精確的分解結果,本文采用鏡像法[13]來抑制EMD的端點效應,得到IEMD算法。鏡像法的步驟可以簡單地總結如下:
1)通過鏡像對稱法,在D(t)前端添加局部最小值min(0)和局部最大值max(1)。
2)通過鏡像對稱法,在D(t)后端添加局部最大值max(n+1)和局部最小值min(n)。
3)使用最新的max(n+1)和min(0)形成上包絡線和下包絡線。
4)后續(xù)的步驟同EMD算法相同。
(10)
部分歷史用電量分解結果如圖3所示,本文將此步分解定義為第三層分解。
圖3 改進的EMD算法分解結果
Boosting算法是近年來數(shù)據(jù)挖掘領域中的一種流行且有效的集成學習算法。該算法通過對多個弱學習器進行加權,從而形成一個預測誤差更低的強學習器。梯度增強算法(gradient boosting, GB)是在Boosting的基礎上改進的。其思想是在負梯度方向上減小損失函數(shù),從而對原有模型進行優(yōu)化和更新。XGBoost則是由陳天奇[14]在2015年提出的一種基于GB的改進算法。該算法在訓練過程中采用自助抽樣法,而非直接利用所有特征來訓練模型。因此,相對于其他算法,XGBoost能夠在保證模型擬合效果的同時避免過擬合情況的發(fā)生,從而保證更高的預測精度。該算法的具體步驟如下:
(11)
式中:K表示樹的數(shù)量;F表示回歸樹空間;fk表示一個回歸決策樹。
定義包含損失函數(shù)項和正則化項的目標函數(shù)Lobj,如式(12)所示。其中正則化項是一個用來防止過擬合的懲罰函數(shù)。
(12)
式中:l(·)是一個可微函數(shù);Ω(·)是一個根據(jù)樹的復雜度定義的懲罰項。
(13)
考慮到優(yōu)化速度的問題,使用式(13)的二階泰勒展開式替代原目標函數(shù),即:
(14)
(15)
式中:Ij={i|q(xi)=j}表示葉子j的實例;γ表示懲罰強度;Q表示葉子的數(shù)量;λ為預先設計的超參數(shù);J表示樹的葉節(jié)點數(shù)。
本文提出的基于多層分解-累加原理的城市綜合體月度用電量預測方法,旨在通過建立一個混合多步預測模型,來挖掘城市綜合體內部各類型負荷的信息,從而最終提高城市綜合體月度用電量預測精度。
基于多層分解-累加原理的預測模型方法具體可分為4步:
1)根據(jù)式(1),將城市綜合體內各建筑負荷根據(jù)其負荷特性分為商業(yè)負荷、居民住宅負荷和商務辦公負荷;
2)以商業(yè)負荷為例,考慮到用電行為的日歷效應,根據(jù)式(4)、(5),將商業(yè)負荷的歷史小時用電量序列分解成歷史星期一小時用電量序列到歷史星期日小時用電量序列,從而在減小多步預測模型預測步長的同時保證各子序列的規(guī)律性;
3)針對商業(yè)負荷的7個分解后的子序列,利用IEMD算法將用電量序列內部復雜特征中的波動特性和趨勢特性分解開來,得到如式(10)所示的分解結果,包括n個IMFs序列和一個殘差序列,然后分別使用XGBoost算法構建與之適應的預測模型。以歷史星期一小時用電量序列分解得到的殘差序列為例,XGBoost預測模型的輸入包含了待預測小時t的日歷標簽以及其對應的歷史同期日的殘差序列數(shù)據(jù),如下:
(16)
式中:Thour(t)表示待預測小時t對應的具體小時時刻。
4)將以上n+1個XGBoost模型的預測結果相加,得到商業(yè)負荷未來一個月星期一的用電量預測結果。同理可得到星期二到星期日的小時用電量預測結果。將7個預測結果累加,得到商業(yè)負荷的月度用電量預測結果。同理,可得居民住宅負荷和商務辦公負荷的月度用電量預測結果。最后,將3類負荷的預測結果相加,得到城市綜合體總的月度用電量預測結果。
所提出的基于多層分解-累加原理的預測模型框架如圖4所示。
圖4 基于多層分解-累加原理的預測模型
選擇某城市綜合體作為研究對象,搜集其中各類型負荷2017年1月1日至2019年12月31日共36個月的歷史小時用電量數(shù)據(jù)。
本文選擇均方根誤差(root mean squard error, RMSE)、平均絕對誤差(mean absolute error, MAE)和平均絕對百分比誤差(mean absolute percentage error, MAPE)作為預測結果的評價指標,具體定義如下:
(17)
(18)
(19)
從式(17)—(19)中可以看出,指標計算結果越小,表明模型的預測精度越高。
以某城市綜合體2019年7月至12月的月度用電量作為待預測目標,本文將傳統(tǒng)的城市綜合體月度用電量預測方法與本文提出的預測方法進行對比,具體如下。
方法一:此方法為傳統(tǒng)的城市綜合體用電量單步預測方法,即直接利用城市綜合體2017年1月至2019年6月的月度用電量數(shù)據(jù)訓練單步預測模型,對2019年7月至12月的月度用電量進行預測。模型的輸入包含了待預測月的日歷標簽以及其前6個月的歷史月度用電量數(shù)據(jù):
(20)
式中:TMonth表示待預測月的月份。
方法二:此方法為本文所提出的基于多層分解-累加原理的綜合體用電量預測方法,即首先將城市綜合體2017年1月至2019年6月的小時用電量數(shù)據(jù)根據(jù)建筑負荷功能分為商業(yè)負荷、居民住宅負荷和商務辦公負荷3類用電量序列,然后再分別按其星期標簽分為7部分,接著分別使用IEMD分解算法進行分解,最后建立XGBoost多步預測模型進行預測并累加得到月度用電量預測結果。模型的輸入見式(16),XGBoost模型的各項參數(shù)如表1所示。
表1 XGBoost算法參數(shù)
值得注意的是,以上2種方法均可以結合不同的預測算法得到最終的預測模型。為了全面驗證所提出方法的有效性,在2個個算例仿真中均使用了BP(back propagation)神經(jīng)網(wǎng)絡和SVM兩種基礎預測算法作為XGBoost的對比算法。其中,BP神經(jīng)網(wǎng)絡算法權值和閾值初始化是隨機的,因此每次訓練模型后都會得到不同的預測結果。為了消除預測結果波動帶來的影響,本文重復使用BP神經(jīng)網(wǎng)絡預測100次,并選取100次預測結果的中位數(shù)作為最終預測結果。
表2記錄了2種方法預測結果對應的評價指標計算值。表3記錄了2種方法與不同的預測算法結合時的預測結果數(shù)值和曲線。
表2 預測結果評價指標
表3 城市綜合體月度用電量預測結果
從表2—3中可以看出,方法一的預測精度普遍較低。使用BP神經(jīng)網(wǎng)絡算法時得到的預測結果最差,其MAPE值達到了4.3%。SVM算法本身更加適應于小樣本學習,因此預測精度相對BP神經(jīng)網(wǎng)絡來說有一定的提升,但其預測值同樣存在較大的波動。XGBoost算法可以有效地防止過擬合情況的出現(xiàn),具有較強的泛化能力。因此在結合方法一時仍然可以提供一定的預測精度。
方法二考慮了城市綜合體內部各建筑負荷的特點,同時利用高分辨率的歷史小時用電量數(shù)據(jù)來訓練月度用電量多步預測模型。此方法增加了模型的訓練樣本,因此在結合3種預測算法時得到預測精度均有提升。結果表明,XGBoost算法可以提供最佳預測精度,而BP神經(jīng)網(wǎng)絡預測精度的提升最大,MAPE值從4.3%降低到了2.8%,預測精度相對提升了34.9%。SVM與XGBoost算法的預測精度則分別相對提升了25%和18.2%。由此可見,本文提出的方法可以實現(xiàn)對城市綜合體月度用電量的準確預測,此外還適用于分布式光伏容量估計和功率預測[15-16]、個體/集群負荷聚合商基線估計及其可調度容量預測估計[17-19]。
本文提出了一種基于多層分解-累加原理的城市綜合體月度用電量預測方法。算例分析以某城市綜合體2019年7月至12月的月度用電量作為待預測目標,將傳統(tǒng)的城市綜合體月度用電量單步預測方法與本文提出的方法進行了比較。結果表明,高分辨率歷史小時數(shù)據(jù)為預測模型提供了更多的訓練樣本,從而有效地提升了預測精度;IEMD與XGBoost算法的結合可以很好地捕捉用電量序列的變化規(guī)律,從而提供較高精度的預測結果。