楊 芮, 徐 虹, 文 武
(成都信息工程大學 計算機學院, 成都 610225)
化石燃料正處在耗盡的邊緣, 世界各國都意識到開發和使用可再生的清潔能源才是持久之道[1]. 目前,可再生能源發電形式有很多, 風電是所有方法中最成熟的一種, 將風電大規模加入到電網中, 可以大大減輕社會的能源負擔[2]. 對短期風電功率的準確預測, 不但能夠節約電網運行的本錢, 同時使電網系統可靠性更上一層樓[3]. 風速的短期預測, 能夠在一定程度上為電網調度提供參考, 是現代社會風電場以及電網運行和維護中不可缺少的一大助力.
早期的風速預測, 物理方法占據了半壁江山, 另一半為統計學方法. 物理方法需要采集大量的風機及天氣信息, 利用數學表達式計算出風速預測值, 由于數據量龐大, 需要使用高性能計算機進行運算, 預測難度和經費預算都比較大; 統計學方法需根據歷史信息建立模型, 預測精度受樣本量限制, 樣本量越大, 預測精度越高. 統計學方法擅長處理線性數據, 而風速數據是非線性的, 使用統計學方法預測風速準確度不夠高.
近年來, 使用機器學習(如SVM[4]、隨機森林[5]、極限學習機[6]等)、深度學習(如BP[7]、RNN[8]、LSTM[9]等)預測方法受到國內外學者的偏愛. 文獻[10]在對短期風速進行預測時, 使用到了支持回歸向量機(SVR)方法, 具有較好的仿真效果. 文獻[11]使用了SVM 預測模型, 其中核函數選擇了RBF, 并通過算法對懲罰因子(C)和RBF 自帶參數(gamma)進行尋優,預測結果較為理想. 文獻[12]提出一種基于正則化極限學習機的風電場短期風速預測新方法, 相較于標準的ELM 和BP 神經網絡, 該方法具有更好的預測精度.文獻[13]使用了BP 預測模型, 不同于一般做法, 在使用了風速歷史數據的同時, 還收集了風速周圍的時空信息, 將這兩種數據同時使用到風速預測中, 取得了較好的結果. 上述機器學習、深度學習方法在對風速數據進行預測時, 均取得了不錯的結果, 但在實際場景的風速預測中, 僅運用單一模型, 預測的精度很難滿足需求.
針對上述方法存在的問題, 組合預測模型目前被大量使用, 通過對不同單一預測模型的組合, 實現各模型之間優勢互補, 以此提高預測精度. 文獻[14]為了使非平穩風電功率信號相對平穩化, 使用EMD 方法對其進行分解, 得到n個平穩序列, 分別送入ARIMA 預測模型, 累加所有模型預測結果, 得到風速預測值. 文獻[15]采用LSTM 結構的循環神經網絡對超短期風力發電進行預測. 文獻[16]使用EMD 方法和堆疊的長短期記憶網絡的組合模型, 對短時風速進行預測. 上述組合模型均在一定程度上提升了預測精度, 但也存在一些問題, 文獻[14]和文獻[16]采用的EMD 分解方法分解風速信號, 容易被異常信號干擾, 導致模態混疊現象,文獻[15]僅采用LSTM 網絡預測, 在一些風速數據預測上可能存在滯后問題.
本文提出基于EEMD-GRU 的短期風速預測模型.首先, 對原始風速時間數據進行異常數據剔除操作, 使用EEMD 分解方法, 將原始數據分解成若干分量, 然后將分解得到的分量分別送入GRU 模型進行預測, 接著將所有分量的預測結果進行累加, 風速預測最終結果由此得到. 對于EMD 分解方法產生的模態混疊現象, 本文使用EEMD 分解方法來解決此問題; 對于單一LSTM 預測方法可能產生的預測結果滯后現象, 使用EEMD 與GRU 相結合的組合預測方法來解決. 最后與EEMD-LSTM、EMD-LSTM、EMD-GRU 等模型對比, 進行指標分析與評價, 實驗證明本文的方法, 在對時間序列預測時, 準確度更高, 預測能力更強.
經驗模態分解是一種比較智能的自適應算法(empirical mode decomposition, EMD), 在對原信號進行拆分時, 分解得到的分量能夠自動匹配自己應在的尺度, 若分解得到分量還可繼續拆分, 則繼續分解, 直到不可分解為止, 這時就得到了原始信號經EMD 方法分解后的所有分量[17]. 這種分解方法能夠挖掘出信號內部更詳細的細節, 非常適用于處理不穩定的數據. EMD分解的具體步驟如下:
(1) 將原始風速時間數據Y(t)里面包含的全部局部極大值以及極小值找出來;
(2) 對原始數據進行插值操作, 求得上下包絡線U(t)和D(t);
(3) 求出上下包絡線的平均值M(t);

(4) 用Y(t)減去M(t), 求得類距平值H(t);

(5) 對步驟(4)得到的序列H(t)進行檢查, 看其能否達到IMF 標準, 若不達標, 則將H(t)作為新的初始序列, 從頭進行步驟(1)–(4), 直到所得結果都達到標準, 若條件達標, 則得到初始風速時間序列分解的t時刻第n個分量Cn(t);

(6) 從原始序列中將Cn(t)去除, 得到剩余序列R(t);

(7) 將R(t)作為新的初始序列, 循環執行上述步驟,直到得到所有不可拆分的分量;
(8) 原始風速序列經過EMD 分解后可表示為:

EMD 分解方法處理非平穩數據時表現良好, 但也存在問題, 分解得到的有些分量會重疊在一起, 即模態混疊. Huang 等人為了解決這個缺陷, 在EMD 方法的基礎上不斷改進, 經過大量試驗, 發現在原信號中加入噪聲, 利用噪聲自身的特點, 可以解決模態混疊問題,由此集合經驗模態分解(ensemble empirical mode decomposition, EEMD)方法被提出[18]. EEMD 方法的改進之處, 就是將高斯白噪聲放到了原始信號中(之所以選擇高斯白噪聲, 是因為其具有隨機性、且頻譜均勻分布的特點), 之后就是多次使用EMD 方法分解新信號[19]. EEMD 的具體步驟如下:
(1) 向風速時間序列中添加噪聲, 噪聲為服從正態分布的白噪聲[20];
(2) 使用EMD 方法, 對新序列進行拆分, 結果就是新序列由n個IMF 分量和1 個殘差組成;
(3) 重復步驟(1)和步驟(2), 每次執行時, 將新的正態分布的白噪聲序列添加到信號中;
(4) 對所有IMF 分量, 做集成平均操作, 得到風速時間序列的IMF 分量.
GRU (gated recurrent unit)是LSTM (long shortterm memory)的一種變體[21], 從結構上看, 兩者還是有著很大的差別. 與LSTM 的三門結構不同, GRU 只有兩個門, 分別是重置門和更新門[22]. 因為少了一個門結構, 計算時參數數量相比于LSTM 會少一些, 訓練速度更快. GRU 整體結構如圖1 所示.

圖1 GRU 網絡基本單元
GRU 的迭代公式如下:


其中, 下標t代表t時刻、更新門由z指代, 重置門由r指代. 權重矩陣由W指代, Sigmoid 函數由符號σ指代,輸出值由h指代. *代表哈達瑪積(Hadamard product).
風速序列通常隨著時間的變化一直震蕩, 呈不平穩狀態, 且極容易受現實中周圍環境影響, 傳統預測方法效果較差. 本文為克服僅使用單一模型預測精度不夠高的問題, 使用兩種方法相結合的組合模型對風速進行預測. 組合模型由EEMD 和GRU 方法構成. 首先用孤立森林算法剔除原始風速中的異常點, 然后使用EEMD 方法, 將其拆分成不同尺度的信號, 從而大大降低風速信號的震動性、非平穩性, 其次, 將分解得到的各分量信號分別送入GRU 模型進行訓練得到各自的預測結果, 預測風速最后由所有分量結果累加得到. 具體預測流程如圖2 所示.

圖2 EEMD-GRU 組合模型基本結構
具體步驟如下:
(1) 獲取原始風速時間數據, 歸一化處理, 歸一化公式如下:

其中,i為風速序列的第i個元素; 風速的初始值、最大值、最小值由X、max、min分別指代;X*為歸一化操作后得到的序列;
(2) 對歸一化的數據, 使用孤立森林算法, 標注出全部異常點、剔除全部異常點;
(3) 使用EEMD 方法對上述操作得到的結果進行拆分, 得到不同尺度的IMF;
(4) 按照19:1 的占比, 將步驟(3)得到的序列劃分為訓練集和測試集;
(5) GRU 網絡初始化, 將步驟(4)所得數據分別送入GRU 網絡進行訓練;
(6) 將步驟(5)得到的全部預測結果累加求和, 得到最終風速預測結果.
為更加直觀的評估EEMD-GRU 模型在實際問題預測中的表現, 選用了4 種評價指標進行評測. 分別是RMSE(均方根誤差)、R2(決定系數)、MAE(平均絕對誤差)、MAPE(平均絕對百分誤差)[23]. 其中,RMSE、MAPE、MAE數值越小代表模型預測誤差越小,R2數值越接近于1, 代表模型表現越好. 4 項指標計算公式如下:

本文算例為我國新疆某地風場2017 年的風速實地采樣數據, 以15 min 對風速數據采樣, 每小時提取4 條數據. 本次實驗使用的2017 年5 月1 日至6 月2 日的數據, 一共3072 條, 原始樣本數據如圖3. 首先對數據進行歸一化操作, 縮小數據之間的量綱差距, 避免訓練中產生誤差過大. 歸一化結果如圖4 所示.

圖3 原始風速序列

圖4 歸一化結果
原始數據在采集時, 可能因為各種各樣的原因(風機故障、操作失誤等), 導致樣本中存在臟數據, 直接將數據送入網絡學習, 網絡會將錯誤信息一起學習,預測時會產生一定的誤差, 因此對異常數據處理顯得尤為重要. 對歸一化數據, 采用孤立森林算法, 找出異常點153 個, 如圖5 所示, 將異常點去除, 結果如圖6所示.

圖5 異常點分布

圖6 去除異常點結果
異常點去除后, 樣本剩余2919, 根據19:1 的占比,將數據劃為訓練集和測試集. 如圖7 所示, 原始的震動性極強的序列, 現在由9 個IMF 和1 個殘差分量所代替, 并且按照信號頻率的大小, 由高到低依次排列, 原始風速序列波動性大、非平穩的缺點被大大克服, 同時經過分解操作得到的分量, 具備較強的穩定性.

圖7 EEMD 分解結果 (橫坐標表示采樣點個數,縱坐標表示信號幅值大小)
深度學習發展至今, 網絡結構以及網絡參數選擇問題, 至今沒有定性的理論可參考, 學者們大多根據經驗或在實驗過程中確定參數. 過于復雜或簡單的網絡結構、過大或過小的神經元個數, 會導致過擬合或欠擬合現象, 因本文數據量只有3000 條左右, 樣本量不大, 故GRU 網絡考慮單層或雙層結構, 隱藏層神經元考慮30 或50. 為排除隨機性誤差, 采用10 次實驗的平均值作為模型結構選擇的參考. 如表1 所示.

表1 GRU 網絡參數
網絡結構確定后, 接下來探索時間步長(TIME_STEP)的合適值. TIME_STEP 用來重構風速序列, 形成新的輸入集合. TIME_STEP 為6, 意思是用前6 個風速數據作為模型的輸入, 預測第7 個風速數據的輸出. 不同大小的TIME_STEP, 對模型的預測結果會產生不同的影響, 因此在不同TIME_STEP 下, 進行實驗.
從表2 可以看出, TIME_STEP=32 時, 模型的預測誤差比TIME_STEP=20 時還要高, 這說明時間步長并不是越大越好. 隨著時間步長的增加, 誤差呈波浪式變化, 當TIME_STEP 為20 時RMSE和MAE值均為最小, 故本文時間步長設定為20.

表2 時間步長
本文選用EEMD-LSTM、EMD-GRU、EMDLSTM、LSTM、GRU、BP 網絡作為EEMD-GRU 模型的對比模型. 其中所有模型的網絡結構與GRU 模型相同, 均為單層結構, 神經元均設為50, Dropout 率設為0.2, epoch 為50, batch_size 為16, 預測結果如圖8、圖9 所示.

圖8 不同模型預測結果

圖9 不同模型預測結果放大圖
從圖9 可以明顯看出EEMD-GRU 模型預測的曲線能夠更好地跟隨真實數據變化, 擬合效果最好. 為了更加直觀的比較模型預測精度, 計算了所有模型在相同輸入條件下的4 種評價指標, 見表3.

表3 不同模型效果對比
從RMSE、MAPE、MAE三項指標來看, EEMDGRU 模型相較于EEMD-LSTM 模型, 誤差分別降低了7.47%、11.99%、7.48%; 相較于EMD-GRU 模型,誤差分別降低了16.33%、16.97%、19.74%; 相較于EMD-LSTM 模型, 誤差分別降低了12.33%、11.51%、15.22%; 相較于GRU 模型, 誤差分別降低了56.66%、59.17%、56.50%; 相較于LSTM 模型, 誤差分別降低了57.76%、59.32%、57.22%; 相較于BP 模型, 誤差分別降低了59.53%、62.09%、59.38%. 從R2來看,EEMD-GRU 模型相對于其他模型R2的值更接近1, 綜合4 種指標, 足以證明EEMD-GRU 方法在預測精度上表現的最好.
本文針對風速的隨機性、震動性以及僅使用LSTM預測可能出現的滯后性等問題, 提出了一種基于EEMDGRU 的短期風速預測方法, 采用實地采集的數據進行預測, 得出以下結論:
(1) 對原始風速時間序列分解, 能夠很大程度上降低風速數據自身的不穩定性.
(2) EEMD-GRU 模型克服了EMD 方法在分解非平穩數據(風速序列)時產生的模態混疊問題, 提高了預測精度.
(3) EEMD-GRU 模型有效地改善了單一LSTM 模型預測出現的滯后性問題.
(4) 通過與EEMD-LSTM、EMD-LSTM、EMDGRU、LSTM、GRU、BP 模型進行比較, 證明了本文提出的EEMD-GRU 組合模型在對風速數據預測時, 預測曲線更貼合實際曲線, 預測精度更高, 預測能力更強.