曾亮,狄飛超,蘭欣,王珊珊
(1.湖北工業大學電氣與電子工程學院,湖北 武漢 430068;2.湖北工業大學太陽能高效利用及儲能運行控制湖北省重點實驗室,湖北 武漢 430068)
風能作為一種清潔能源,可以緩解能源短缺、環境污染和氣候變化等問題。風能受風速、風向、氣壓和溫度等自然條件的影響很大,因此風力具有間歇性、波動性和隨機性。當風能大規模集成到電網中時,給電網的安全和穩定運行帶來了巨大挑戰。減少與風力發電相關的不確定性,對實現風電場風電功率的準確預測具有重大意義[1]。
風電功率的預測方法主要分為物理法和統計法[2],[3],這些方法大多基于傳統模型和深度學習模型[4]。物理法是基于各種影響因素,包括風速、溫度、氣壓等數據進行風電功率預測,統計法是根據歷史風電功率數據來進行分析與預測。常用的傳統模型包括支持向量機、馬爾可夫過程等[5],[6]。近幾年應用更為廣泛的預測模型是貝葉斯神經網絡、卷積神經網絡、以及長短期記憶(LSTM)等深度學習模型[7]。文獻[8]利用copula函數進行特征提取,將提取的特征作為LSTM的輸入,建立單一的光伏功率和風電功率預測模型,但是模型預測精度較低。文獻[9]提出了一種基于LSTM-Attention網絡的短期風電功率預測方法,利用LSTM進行特征提取,同時引入注意力機制分析輸入和輸出的相關性,得到最終的預測結果,但模型的預測精度有待進一步提升。文獻[10]提出了一種基于VMD-ConvLSTM的風電功率預測模型,通過疊加各分量的預測值得到最終的預測結果,然而并未對風電功率的預測誤差進行進一步修正。
針對目前風電功率預測方法在預測精度和誤差修正上的不足,本文提出了一種基于CEEMDCNN-BiGRU-RF模型的短期風電功率預測模型。首先,利用完全集成經驗模態分解(CEEMD)對風電功率時間序列進行模態分解;其次,對分解的各個風電功率時間序列利用卷積神經網絡(CNN)進行特征提取;再次,建立雙向門控循環單元(BiGRU)模型對各個風電功率時間序列進行預測,疊加各個分量的預測值;最后,對誤差進行進一步分析與預測,利用隨機森林(RF)進行誤差修正,得到最終的風電功率預測值。
CEEMD是經驗模態分解(EMD)和集成經驗模態分解(EEMD)的改進,是一種完整的模態分解技術,能夠完整地將信號進行分解。CEEMD通過在原始信號中添加一組正負相反的白噪聲,實現既能抑制EMD模態混疊,又能使得剩余噪聲始終維持在很小的量級上,進而忽略不計,算法主要步驟如下。
①在原始信號x(t)中加入n組正負相反的白噪聲m+和m-,構成合成信號p(t)和N(t)。

CNN本質上是一個數學模型,它通過數據轉換和數據降維將原始輸入映射為新的特征。與標準的全連接網絡不同,CNN具有特殊的網絡結構。CNN中的層間節點是本地連接的,且CNN中卷積層和池化層中的連接權重權值共享。
CNN的網絡結構包括1D CNN,2D CNN和3D CNN。其中,1D CNN主要用于序列數據處理,2D CNN通常用于圖像和文本識別,3D CNN主要用于醫學圖像和視頻數據識別。1D CNN可以很好地應用于時間序列分析,也可以用于分析周期性信號數據,1D CNN的詳細流程如圖1所示。

圖1 1D CNN流程圖Fig.1 1D CNN flowchart
圖1的左側是輸入時間序列數據,它是一個多維矩陣,從上到下進行卷積。使用濾波器進行卷積后,提取的特征維數為N×1,其中N與輸入數據維數、濾波器大小和步長有關。假設過濾器的數量為M,則提取的特征為N×M。
門控循環單元(GRU)是循環神經網絡的一種,是循環神網絡(RNN)和LSTM的改進。GRU的主要結構為更新門和重置門,簡化了模型結構和模型參數,在一定程度上抑制過擬合。GRU模型的結構如圖2所示。

圖2 GRU模型的結構圖Fig.2 GRU model structure diagram

式中:tanh為雙曲正切激活函數;ot為重置門計算的隱藏狀態。
本文對GRU模型進行改進,提出BiGRU模型。BiGRU模型包括前向GRU和反向GRU。前向GRU用于獲得輸入特征向量的上信息,并從左到右生成前向隱式狀態序列;反向GRU則獲得輸入特征向量的下信息,并從右到左生成反向隱式狀態序列。最后,組合獲得的前向隱式狀態序列和反向隱式狀態序列,獲得最后的特征信息。BiGRU模型的具體結構如圖3所示。

圖3 BiGRU模型的結構圖Fig.3 BiGRU model structure diagram
圖中,{h1→h2→hn}為前向GRU生成的隱式狀態序列,{hn→h2→h1}為反向GRU生成的隱式狀態序列。
RF是集成模型的一種,屬于Bagging集成方式,與單一模型相比,RF的預測效果更為精確。
將CNN與BiGRU相結合構建混合CNNBiGRU模型,以提高風電功率的預測精度。該模型以多維時間序列數據作為輸入,以多步或單步時間序列數據作為輸出。
利用CNN進行特征提取,構造了兩個一維卷積層和兩個池化層。過擬合是深度神經網絡(DNN)中的常見現象,利用Dropout層,可以有效抑制過擬合現象。Dropout是在DNN的訓練過程中,按照一定的概率丟失一定的神經元個數。為了避免過擬合,在BiGRU層后添加了一個Dropout層進行預測,最后連接全連接層(FC),獲得最后的預測結果。CNN-BiGRU混合模型的結構如圖4所示。

圖4 CNN-BiGRU混合模型的結構圖Fig.4 CNN-BiGRU hybrid model structure diagram
建立預測模型進行風電功率的預測,具體步驟如下:
①對風電功率數據集進行數據預處理,包括缺失值的補齊、異常點的剔除以及數據歸一化;
②對風電功率數據集進行CEEMD分解,分解成多個IMF分量和一個殘余分量(Rest);
③對各個IMF分量建立CNN-BiGRU預測模型,獲得各個分量的預測值,將預測值進行疊加,獲得預測結果;
④對誤差進行分析,對誤差建立RF模型,預測獲得測試集的誤差,將預測誤差與預測結果組合,獲得最終的風電功率預測值。
預測模型的流程如圖5所示。

圖5 CEEMD-CNN-BiGRU-RF預測模型流程圖Fig.5 CEEMD-CNN-BiGRU-RF prediction model flowchart
本文選用的預測模型評價指標為平均絕對百分比誤差MAPE和R-Square。

式中:yi為第i個時刻風電功率實際值;y^i為第i個時刻風電功率預測值;yˉ為m個風電功率值的平均值。
本文選用我國西北地區一個風電場的數據進行短期風電功率預測,選取該風電場2019年10月1日0時-11日0時共960個風電功率數據點進行實驗,實驗數據點之間的采樣間隔為15 min,得到的風電功率時間序列如圖6所示。其中,前9 d的數據作為訓練集,后1 d數據點作為測試集,以前1 h風電功率數據預測下一時刻的風電功率,實現風電功率的滾動預測。

圖6 風電功率時間序列圖Fig.6 Time series diagram of wind power
由圖6可知,風電功率時間序列具有波動性和非平穩性。對原始風電功率數據集進行CEEMD分解,得到的分解結果如圖7所示。

圖7 CEEMD分解結果圖Fig.7 CEEMD decomposition result diagram
由圖7可知,CEEMD分解風電功率時間序列的效果較好,且Rest始終維持在很小的量級上,因此Rest在預測時可以忽略不計。
對各個分量分別建立CNN-BiGRU預測模型,通過網格搜索等調參方法進行模型參數尋優。網格搜索是為每個需要尋優的參數預先設置一個可選范圍,然后進行訓練,最后輸出參數的最優取值。具體地,將CNN層和BiGRU層的神經元個數范圍設置為常用的[32,64,128],步長范圍為[0,1,2],padding可選范圍為[same,valid],激活函數可選范圍為[relu,tanh,sigmoid],Dropout范圍為(0,1)。通過不斷地參數調整、組合與尋優,得到各個最優參數分別為CNN層的神經元個數為32,步長為1,padding為same,激活函數為relu函數,BiGRU層的神經元個數設置為64,Dropout設置為0.1,訓練時最小批量大小設置為32,優化器設置為Adam,對各個分量的預測值進行累加,得到風電功率預測值。
在進行誤差修正時,采用同樣的調參方法,最終確定RF模型中,決策樹個數為400,最大深度為5。
為驗證模型的有效性和預測的高精度,本文采用了6種模型進行比較和驗證。模型1采用支持向量機(SVR)進行預測,模型2采用CNN進行預測,模型3建立CEEMD-CNN模型對風電功率進行預測,模型4采用CEEMD-CNN-BiLSTM模型進行預測,模型5采用CEEMD-CNN-BiGRU模型進行預測,模型6采用CEEMD-CNN-Bi-GRU-RF模型進行預測,同時對誤差進行修正,得到最終的風電功率預測值。
為驗證誤差修正的作用,對誤差修正前后的曲線進行作圖,真實值與模型5的結果如圖8所示。

圖8 誤差修正前后的曲線圖Fig.8 Curves before and after error correction
由圖8可知,在進行誤差修正后,風電功率的預測值和實際值的擬合效果更好。
表1列出了2019年10月10-11日6種不同預測模型的評價指標。

表1 6種不同預測模型的評價指標Table 1 Evaluation indicators of 6 different prediction models
圖9為6種模型預測結果與真實值的曲線圖,圖10為6種模型預測誤差絕對值的分布圖。

圖10 6種模型預測誤差絕對值分布Fig.10 The distribution of the absolute value of the prediction errors of the six models
根據表1和圖9的預測結果,可以得出:

圖9 6種模型預測結果的曲線圖Fig.9 Curves of prediction results of 6 models
①深層網絡模型在風電功率預測中的效果比傳統模型好;
②對于非平穩性和波動性的時間序列,對其進行分解,使得時間序列趨于平穩,能夠有效提升模型的預測精度,模型的評價指標MAPE下降到了4.761%,R-Square提升到了0.908;
③利用CNN進行深層特征提取,作為模型的輸入,CEEMD-CNN-BiGRU模型能夠有效提高模型的預測精度;
④當進一步對誤差進行修正時,模型的預測效果得到進一步提升,其中,MAPE為2.090%,RSquare提升到了0.982。
根據圖10,箱線圖中直線為預測誤差絕對值的中位數,三角為均值,可以看出本文提出的模型的預測誤差絕對值整體比較集中,中位數和均值最小。
與其他模型相比,本文提出的CEEMDCNN-BiGRU-RF預測模型能夠較好地預測短期風功率的變化趨勢,模型預測的精度得到了有效提升,驗證了本文提出方法的可行性和有效性。
本文針對時間序列的風電功率預測,提出了一種基于CEEMD-CNN-BiGRU-RF的短期風電功率預測模型,得出以下結論。
①通過對非平穩時間序列采用信號分解技術,可以調高模型的預測精度和預測效率。
②深度學習模型在時間序列上的預測效果較優,混合模型CNN-BiGRU的預測效果比單一的深度學習模型更好。
③當發現預測誤差呈現一定的規律性后,可以采用適當的模型對誤差進行訓練與修正,這能夠進一步提高模型的預測精度。