金宇悅,康健,陳永杰
(1.華北理工大學以升創新教育基地,河北唐山,063210;2.華北理工大學電氣工程學院,河北唐山,063210)
由于風力發電機工作受到包括風速、風向等氣候因素的影響,導致發電的不穩定性與隨機性,盲目將風電接入電網可能會對電網造成損害,而對風力發電進行提前預測有助于制定調度計劃,提升電網運行的安全性。目前常用于超短期風力發電預測的方法是機器學習。文獻[1]將小波分解與自適應神經模糊推理系統相結合,利用支持向量機減少預測誤差。文獻[2]采用統計預測方法并利用人工蜂群算法優化得到神經網絡的權值和閾值,構建ABC-BP神經網絡風電功率預測模型。文獻[3-5]提出了利用小波變換將原始風電數據分解為不同的頻率,然后利用卷積神經網絡有效地學習了每個頻率中用于提高預測精度的非線性特征。
本文選擇具有LSTM結構的循環神經網絡。以其優異的非線性擬合能力和數據的學習能力,有效的提升了網絡訓練效果和預測精度,從而實現每15分鐘一次自動預測,滾動執行的要求。
相較于傳統循環神經網絡沒有選擇性的記憶所有信息,LSTM-RNN采用了“門控制”的思想,通過遺忘門、輸入門、輸出門來控制更新這個網絡的記憶內容[6]。其核心思想是將數值位小數的梯度由連乘形式變為累加形式[7],可使LSTM在處理長期時序信息時解決梯度消失問題。具體網絡結構如圖1所示。

圖1 LSTM-RNN結構
第一個門控制是遺忘門,利用輸出之后的0~1的一個數與細胞狀態C相乘,就可以實現對跨時間的信息的遺棄。此操作可以由式1表示:

第二個門控制為輸入門,則負責決定輸入新信息的數量[9]。輸入門的操作分成兩個部分,如下兩式所示:


式中字母與式1中含義相同,但是權重和偏倚的數值會有所不同。通過這兩個式子的結果進行點乘,可以獲得更新進入到新細胞狀態的內容。
通過遺忘門和輸入門的操作對細胞狀態C進行更新。攜帶記憶信號的Ct解決了網絡梯度消失的問題。最終細胞狀態經過tanh激活函數與ot相乘所得,而ot是上一時刻隱藏層神經元的輸出和這個時刻的輸入相結合通過sigmoid激活函數所得[10],具體如式(4)和式(5)所示 :

選用Adam作為網絡的優化器,選用平均絕對誤差MAE作為網絡的損失函數,網絡由兩層LSTM神經元和一個全連接層構成,結構如圖2所示。

圖2 網絡結構
選用風速值作為輸入,選用長度為20個數據的窗口,對第21個數據進行預測,即對未來10分鐘的數據進行預測。訓練集輸入到模型的數據格式為(34980,20,1)的張量,驗證集為(12590,20,1)的張量。
網絡訓練參數選用Batch_size=256,Steps_per_epo ch=120,validation_steps=40,Eopch=20。通過模型訓練可得,每個Epoch耗時2s 20ms~3s 21ms,最終總耗時50s 419ms。訓練過程中的損失如圖3所示。

圖3 訓練損失和驗證損失
最后模型在測試集上的平均絕對誤差MAE為0.1659,由于模型進行了標準化,通過MAE誤差和標準差相乘可以得到實際誤差約為0.4637,由此可知此模型擁有非常好的預測精度,預測效果圖可見圖4所示。

圖4 預測結果
在圖4中由藍色的點連成的線是前20個數據,紅色的叉表示第21個點的真實數據,綠色的點是模型的預測數據。
選用風速本身、風速的最大值、風速的最小值和氣溫這四個變量作為模型的輸入,輸入數據選用連續720個數據,在這720個數據中進行步長為6的采樣。訓練集輸入網絡的數據形狀為(34280,120,4)的張量,驗證集為(11890,120,4)的張量,測試集為(3744,120,4)的張量。
與單個變量預測一個數據不同,多個變量會導致數據集數據量大幅上漲。為了避免出現過擬合現象,模型在之前的結構上加入了dropout隨機失活技術,同時由于輸入數據大小的增加,提升了LSTM結構中神經元的個數。
網絡訓練參數選擇,Batch_size=256,Steps_per_epoch=60,validation_steps=40,Eopch=20。通過對模型的訓練可得,每個Epoch耗時15s 248ms~18s 298ms,最終總耗時312s 113ms。網絡的訓練損失如圖5所示。

圖5 網絡訓練損失圖
網絡最終的平均絕對誤差MAE為0.1616,換算成實際風速誤差約為0.4517,可以發現,在使用多變量對未來某個時間點進行預測時,實際效果與單變量預測誤差相差不大,說明了風速在多變量預測中占主要作用。
本文主要從輸入門、輸出門、遺忘門三個門控制值和細胞狀態更新四方面介紹了LSTM循環神經網絡。通過LSTM循環神經網絡算法的構建,分別完成了單變量預測未來一個時間點、多變量預測未來一個時間點的實例驗證,最終模型很好地完成了風速到發電功率的預測,驗證了在實際風速預測中在多變量數據里風速本身仍起決定性作用。