陳 雷,劉林虎,閆川川,孫艷鐲,于 凱,周 超
(1.東北石油大學秦皇島校區電信系,河北秦皇島 066004;2.首鋼京唐鋼鐵聯合有限責任公司,河北唐山 063205)
電力系統的主要任務是給廣大用戶不間斷地提供優質電能,滿足各種類型負荷的需求[1]。目前,我國各地的電力需求巨大且具有隨機變化等特點,發電廠提供的電能和用戶負荷需求之間需要進行一定程度上的協調,而良好的電力負荷預測能夠將二者達到一種動態平衡的關系[2]。因此,做好電力負荷預測尤為重要。
電力負荷預測按時間大致可以分為四類:長期負荷預測、中期負荷預測、短期負荷預測和超短期負荷預測[3]。其中,超短期負荷預測的目的是在當日之內制訂出一套合理的發電計劃,精確預測未來幾小時甚至幾分鐘的負荷值,從而保障整個電網的安全運行,保證較高的電能質量[4]。
近幾年來,中外學者采用神經網絡的方法進行超短期電力負荷預測,取得了不錯的效果。M.A.Hossain 等人提出了一種基于CNN-GRU 的風電超短期預測方法,該方法的預測精度達到了98.4%以上[5];莊家懿等人提出一種基于CNN 和GRU 并行的超短期負荷預測方法,該方法與GRU 神經網絡、CNNGRU 神經網絡超短期負荷預測法相比,有更高的預測精度[6]。但上述方法在面對大容量負荷數據時的精度較低。
為了彌補和完善上述負荷預測方法帶來的不足,文中擬構建基于GRU、CNN 和Attention 相結合的神經網絡,該方法首先利用GRU 能夠處理時間序列的特點,初步提取較長時間的負荷序列的特征,然后利用CNN 能夠對負荷序列進行分批次提取特征的特點,即按照每天負荷數據的規律,將GRU 提取的特征進行分類處理,最后加入Attention 提高預測精度。
電力負荷的量測裝置有時會受到諸多不利因素的影響而發生故障,因此所測得的初始電力負荷數據中會偶爾存在一些異常值,如負荷零值或短時恒定的負荷值等,這些異常值會對負荷預測結果產生較大的影響[7]。采用孤立森林算法,可以很好地檢測出這些異常值的存在。孤立森林算法利用了一種“隔離”的思想,利用超平面對各負荷點進行隨機特征分割,其中異常值較正常值更易被分割并篩選出來,更易被“隔離”。該算法具有實現簡單、適用性強、識別準確率高等特點[8]。
文中擬采用該算法篩選出異常的負荷值,然后對異常值采用拉格朗日插值法進行修正處理,計算公式如下:
其中,t為負荷值異常的時刻;a、b分別為t時刻前、后一小段時間的負荷點數;Lt-n和Lt+n分別為初始負荷序列中t-n和t+n時刻的負荷值;Lt為修正后的t時刻的負荷值。
2014 年Kyunghyun Cho 等人提出了門控循環單元(Gated Recurrent Unit,GRU)網絡,相較于長短期記憶網絡(Long-Short Term Memory,LSTM),GRU 網絡的結構更為簡單,運行速度更快[9]。GRU 網絡只有兩個門,分別為更新門zt和重置門rt。其中,更新門控制前一時刻隱藏層ht-1的輸出對該時刻隱藏層輸出ht的影響,其值越大,影響程度就越大;重置門表示前一時刻隱藏層輸出到該時刻所刪除的信息量,其值越小,刪除的信息就越多[10]。GRU 網絡的結構如圖1 所示。

圖1 GRU網絡結構
相關計算公式如下:
其中,Wr、Wz、WH、Wo為需要訓練的權值參數,Ht為xt和ht組合得到的候選信息,σ為sigmoid 激活函數,×為矩陣的哈達瑪積(Hadamard product)。
卷積神經網絡(Convolutional Neural Network,CNN)是近幾年深度學習領域最熱門的模型之一,在圖像處理方面有著廣泛的應用,可以用來提取數據樣本的特征[11]。CNN 采用神經元之間的局部連接和卷積核之間權值共享的方式,可以減少參數的數量,從而大幅降低訓練時間[12]。CNN 由輸入層、卷積層、池化層、全連接層和輸出層組成,其中卷積層可以提取樣本中的局部特征;池化層可以降低特征的維度,在保留主要特征的情況下減少特征參數;全連接層可以將提取的特征進行整合[13]。其中一維CNN(Conv1D)結構圖如圖2 所示。

圖2 Conv1D結構
在超短期負荷預測中,往往需要模型能夠短時處理大量的負荷數據,而某一時刻的負荷值與接近該時刻時間點的負荷值聯系更為密切,與距離該時刻較遠時間點的負荷值之間的關系則不大,因此,希望模型在預測的過程中只需關注最近一小段時間的負荷值即可,就需用到注意力機制[14]。注意力機制能夠為每個時間點的負荷值添加不同的權值,距離當前時間越近的負荷值權重越大,而越久遠的負荷值的權重就越小,從而模型在短時內可以更好地獲得有價值的信息,提高了預測精度[15]。注意力機制的結構如圖3 所示,其中,α=[α1,α2,…,αt]為注意力分布向量。

圖3 Attention結構
注意力機制的相關公式如下:
其中,et為隱藏層ht的注意力打分函數,v、W為注意力權重,b為偏置,m為輸入向量的維度。
文中所采用的數據集為印度德里地區國家電力負荷調度中心2020 年6 月21 日至30 日共10 天的負荷數據,每5 分鐘取一個負荷數據點,共計2 880 個數據點,并按照9∶1 的比例劃分訓練集和測試集,即前9 天用來訓練,最后一天用來測試模型的預測效果。采用孤立森林算法將異常數據進行修正,修正前和修正后的結果分別如圖4 和圖5 所示。

圖4 修正前的負荷數據

圖5 修正后的負荷數據
為了使數據更易進行處理,提高模型訓練速度,文中擬采用數據歸一化(MinMaxScaler)函數對數據進行歸一化處理,將所有樣本數據壓縮到[0,1]范圍內,其公式如下:
其中,xt為原始數據,為歸一化處理后的數據,xmax和xmin分別為原始數據的最大值和最小值。
文中提出的基于孤立森林和GRU-CNN-Attention 模型的基本結構如圖6 所示。

圖6 基于孤立森林和GRU-CNN-Attention模型的基本結構
由于訓練集中各天的負荷特征不完全相同,所以將訓練集按天數劃分成九部分學習。各層結構說明如下:
1)孤立森林異常數據處理、數據歸一化:修正異常初始數據,減小模型訓練和預測誤差,其中式(1)的a、b均取5;
2)GRU 網絡:為了較好地提取負荷數據的時序特征,優化網絡結構,又不影響模型的預測速度,文中設置兩層GRU 網絡,神經元數目分別為32 和16;
3)Dropout 層:防止模型在訓練的過程中出現過擬合現象,文中設置Dropout 的值為0.3;
4)一維CNN(Conv1D)和一維最大池化(Maxpooling1D):為了精確地提取數據之間的局部特征,文中按照卷積層—池化層的順序設置兩組層結構。其中卷積層的卷積核數為16,卷積步長為3,池化層的池化步長為1;
5)Attention 層:賦予各負荷值不同的權重,提高預測精度,其中式(8)和式(9)中的m值取9;
6)Dense 層:綜合上述各層的信息,匯總輸出。
文中擬采用均方誤差(Mean Square Error,MSE)函數作為負荷預測的損失函數,其計算公式如下:
其中,yi為i時刻負荷的實際值,為i時刻負荷的預測值,n為測試集負荷數據的個數。
由于Relu 函數能夠提高神經網絡各層之間的非線性關系,且具有良好的防梯度消失和梯度爆炸的功能[16],因此選擇Relu 函數作為激活函數。
優化器的功能是基于訓練模型的數據來調整模型的參數,從而使所得的預測數據逐漸逼近最優,其本質是一個函數尋找最優解的過程[17]。文中擬采用Adam(Adaptive Moment Estimation)優化器,能夠為不同參數設置不同的學習率,具有一定的自適應性。
文中采用式(12)計算各點的誤差:
因均方根誤差(Root Mean Square Error,RMSE)和平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)更能體現預測值和真實值之間的誤差水平,文中擬選取上述兩種方法進行平均誤差分析,其公式如下:
其中,式(12)和式(13)的yi為i時刻負荷的實際值,為i時刻負荷的預測值,n為測試集樣本數。
文中的實驗設備采用Intel Core i7-7500U 處理器和AMD Radeon R7 M340 顯卡。文中采用Python作為編程語言,利用Tensorflow 框架和Keras 庫進行模型搭建。文中還用到的模塊為Numpy、Pandas、Matplotlib 和Scikit-learn。
為了檢驗文中所述模型的效果,需進行預測實驗。該實驗采用RMSE 和MAPE 誤差函數,與GRU網絡模型和GRU-CNN 網絡模型進行比較,驗證該模型的預測效果[18]。
首先驗證該模型的收斂性。如圖7 所示,模型在迭代200~300 次的損失值已經很小,且不再下降,因此模型具有較好的收斂性。文中設置模型迭代次數為300。

圖7 模型的收斂曲線
預測結果和各點的預測誤差曲線分別如圖8 和圖9 所示。從預測結果來看,文中所提出模型的預測負荷曲線更接近于實際值,各點預測誤差相對更小。

圖8 預測結果

圖9 各點的預測誤差曲線
預測的ERMSE和EMAPE如表1 所示。文中所提出模型的ERMSE與GRU 和GRU-CNN 模型的ERMSE相比分別下降了40.278 MW、18.969 MW,EMAPE分別下降了0.28%、0.272%。由此可以說明,文中所述模型的預測性能更好。

表1 不同模型ERMSE和EMAPE的對比
文中系統地介紹了基于孤立森林和GRU-CNNAttention 的超短期負荷預測模型,利用印度德里地區超短期負荷數據集,修正其中的異常負荷值和歸一化處理后進行預測,并與GRU、GRU-CNN 網絡模型的預測精度進行對比,通過一系列圖表展示了預測結果。分析表明,文中所提出模型的預測結果更接近于實際值,具有更高的預測精度。在后續研究中,擬加入天氣、工作日及節假日等影響負荷值大小的因素,并與其他超短期負荷預測方法進行比較,提升該模型的實際應用價值。