湯德清,朱 武,侯林超
(上海電力大學電子與信息工程學院,上海 201300)
近年來,以光伏發電為代表的可再生能源發電得到迅猛發展,在電力系統裝機容量中的占比逐步增加。隨著光伏發電大規模并入電網,光伏發電的隨機性與波動性,可能對主電網造成沖擊,影響電力系統的穩定運行。對光伏發電功率進行預測有助于調度部門制定合理的發電計劃,利于電網的調頻、調壓、備用等,進一步保證供電的安全性和經濟性[1]。
現有的光伏發電功率預測方法主要分為物理建模法和統計法。統計法預測精度較高且不需要光伏發電組件的詳細參數,運用統計法預測光伏發電功率成為主流趨勢,常用的統計法包括支持向量機[2]、馬爾可夫鏈[3]、極限學習機[4]、人工神經網絡[5]、時間序列預測[6-7]等方法。
文獻[8]通過改進的Kohonen 聚類模型進行天氣聚類,將輸入數據在季節維度上分為春、夏、秋、冬季,利用多種群果蠅優化廣義回歸神經網絡模型(MFOA-GRNN)進行光伏發電預測,縮短了模型訓練時間,提高了預測精度。隨著預測技術發展,以小波分析和經驗模態分解為代表的信號預處理方法逐漸應用在光伏功率序列預處理中,文獻[9]將光伏輸出功率時間序列在不同尺度上進行小波分解,最后將輸出的預測結果疊加得到原始輸出功率序列的預測值。此方案的弊端在于小波分解會產生諧波,因此求和重構之后存在不可避免的誤差。
上述文獻使用的方案往往采用單一預測模型,存在預測精度低、穩定性差的問題。針對上述問題,本文提出了基于CNN-LSTM-XGBoost 模型的超短期光伏發電功率預測方法,該方法綜合了3 種模型的優勢,解決了單一模型精度不高的缺點。為長短期記憶(long short term memory,LSTM)網絡添加了卷積神經網絡(convolutional neural network,CNN)作為局部特征預提取模塊,采用誤差倒數法將XGBoost 模型與其并行拼接,構成最終的光伏發電功率預測模型。使用Pearson 相關系數法篩選出與光伏發電功率相關系數較高的氣象因素作為輸入特征,通過實驗確定模型的最佳超參數,最后通過算例分析證明本模型提高了預測精度。
1.1.1 卷積神經網絡
卷積神經網絡是一種基于深度學習的神經網絡,常用于處理具有已知網格狀拓撲的數據,在時間序列分析、計算機視覺和自然語言處理等領域廣泛應用[10]。CNN 的基本結構如圖1 所示。

圖1 卷積神經網絡結構
卷積層是CNN 的核心組成部分,在卷積層中,采用濾波器對輸入進行卷積操作,得到相應的特征圖,從而捕捉數據的局部、細節信息。經過多層卷積層的計算,低級特征被逐步提取成為高級特征。卷積層的特征輸出可以用式(1)、(2)表示:

式中:Ci、Ci-1為第i層與第i-1 層的特征輸出;?為卷積運算;bi為第i層的偏移量;原始輸入C0為I。
連續的卷積層之間常常需要插入池化層,池化層將卷積層特定位置的輸出用附近數據的統計量代替,使之只保留主要特征,減小了下一層的計算量,并且能夠有效防止過擬合。
1.1.2 長短期記憶網絡
LSTM 是一種改良的循環神經網絡(RNN),可以通過遺忘門、輸入門和輸出門去除或增加“細胞狀態”信息,使其僅保留重要信息,從而避免了RNN 存在的梯度爆炸現象。長短期記憶網絡如圖2 所示。

圖2 LSTM結構
遺忘門中,當前網絡的輸入xt、上一時刻網絡的輸出ht-1和上一狀態的記憶單元St-1決定狀態記憶單元中的遺忘部分,避免了上一時刻的無用信息繼續向下傳遞。輸入門中,當前網絡的輸入xt經函數變換后決定狀態單元中的保留部分。輸出門中,記憶單元的輸出St和ot決定t時刻的輸出ht。
1.1.3 CNN-LSTM 混合神經網絡模型
本文提出的CNN-LSTM 混合神經網絡結構如圖3 所示。CNN 由兩層一維卷積層(Conv1D)和兩層最大池化層(MaxPooling1D)組成。Flatten 層對數據扁平化處理,將輸入“壓平”成一維向量,再經過RepeatVector 層處理成LSTM 網絡要求的輸入格式。LSTM 網絡包含三層LSTM 層,并在每層之間加入Dropout 層以防止在訓練時過擬合。最后通過全連接層(Dense)輸出預測值。

圖3 CNN-LSTM 網絡結構
XGBoost是在梯度提升樹(GBDT)基礎上改進的機器學習算法,其基本思想是通過不斷向模型中加入新的樹,來糾正上次預測的殘差,最終把多個決策樹加權求和得到預測結果。
XGBoost 采用增量訓練方法,每一次訓練在保留先前模型的基礎上,向決策樹函數空間加入新函數。XGBoost 的迭代過程如下:

XGBoost整體流程如圖4 所示。

圖4 XGBoost模型流程圖
本文采用了誤差倒數法將兩個模型并行拼接。通過并行CNN-LSTM 與XGBoost 結構,在CNN-LSTM 提取局部與時序特征的同時由XGBoost 實現統計角度的預測函數擬合,最大化利用模型訓練時間,提升模型預測精度[11]。誤差倒數法公式如下:

式中:ω1、ω2分別為CNN-LSTM 與XGBoost 的權重系數;f1t、f2t分別為這兩個模型的預測值;ε1、ε2分別為這兩個模型的誤差。
(1)異常數據處理
異常數據會導致模型對特征的擬合能力變差,因此修正數據是預測研究的前提。
對異常數據處理包括檢測和替換兩部分。檢測異常值基于3-sigma 原理:

式中:X為原始數據為平均值;σ為標準差。
由于氣象數據具有不易突變的特點,因此本文采用前向替代法,使用前一采樣時刻的值代替該異常值。
(2)標準化
不同特征數據的量綱差別很大,不利于模型訓練,且影響擬合速度,因此需要對歷史數據進行歸一化。標準化公式為:

式中:xa、xb分別為標準化后與標準化前的數據;xmax、xmin分別為各氣象因素原始數據的最大值和最小值。
特征維數過多會引入冗余信息,拉長了訓練時間還會提高建模難度。在選擇輸入特征時,應該選擇與光伏發電功率關聯性較強的因素。
Pearson 相關系數可以用來衡量不同氣象因素與光伏發電功率之間的線性相關程度。二維Pearson 相關系數的計算公式為:

光伏發電歷史功率與各氣象因素之間的Pearson 相關系數如表1 所示。從表1 中分析得出,溫度、濕度、總輻射強度、風速和散射輻射強度相關性較強,本文選擇以上5 個氣象因素作為特征。

表1 各氣象因素的Pearson 相關系數
本文采用澳大利亞愛麗絲泉光伏電站提供的2014 年1月1 日—2015 年12 月31 日的歷史功率數據及氣象數據進行仿真分析。數據的采樣時間間隔為15 min,每天可采集96 組觀測值。數據集共有70 077 組數據,選取前18 個月的數據作為訓練集,后6 個月的數據作為測試集。
采用三種誤差指標評估模型,分別為平均絕對誤差(MAE)、均方根誤差(RMSE)和平均絕對誤差率(MAPE)。三種評估指標的計算公式如下:

式中:Pn為光伏電站發電功率的實測值為光伏發電功率的預測值;N為測試樣本數量。
輸入步長的選擇要在保證預測精度的情況下盡量降低模型復雜度,因此計算某個時刻功率與12 個相鄰歷史時刻功率之間的Pearson 相關系數。輸出功率的自相關系數如表2所示。

表2 輸出功率自相關系數
由表2 可以看出,相關系數隨時間步長的增加而逐步遞?減,步長為1~10 時相關性較強。基于初步的時間步長范圍,利用測試集進行輸入步長實驗,各項誤差指標變化趨勢如圖5 所示。由圖5 可以看出,步長為7~9 時各項誤差指標較小,預測精度較高。隨著步長的增加,訓練時間也會增長,因此綜合各項指標,將步長設為8。

圖5 誤差指標隨時間步長的變化
基于多模型融合的光伏功率超短期預測算法流程如圖6所示。將數據集劃分為訓練集、驗證集和測試集,采用單步預測的方式,使用T-8 時刻到T-1 時刻共8 個時間點的數據預測T時刻的輸出功率,即使用前兩個小時的歷史數據預測15 min 后的光伏功率,每15 min 滾動一次,進而完成對整日的預測。由于夜晚的光伏發電功率為0,因此只對7:00—18:00 共44 個時刻進行預測。預測流程如圖6 所示。

圖6 光伏功率預測流程
為直觀展現本文所提出模型對預測精度的提升,選擇2015-11-22(晴天)、2015-12-17(多云)和2015-12-21(雨天)作為待預測日,分別使用CNN-LSTM、XGBoost、支持向量機(SVM)和CNN-LSTM-XGBoost 模型對待預測日進行預測。各模型預測值與真實值的對比如圖7 所示。
由圖7(a)可知,晴天時光伏功率的波動幅度比較小,四個模型的預測曲線都能基本擬合光伏發電功率實際值曲線,表示各模型都能夠較為準確地識別出功率輸出特征。其中,在上午和下午擬合效果較好,但在功率高峰的中午各模型出現了不同程度的誤差。在正午時間段,融合模型的預測精度明顯高于其他三種算法,預測曲線在實際值曲線兩端同步變化。


圖7 各天氣類型下預測結果對比
由圖7(b)可知,多云天氣下,云層受風速和風向的影響,其位置和厚度都會不斷變化,導致太陽輻照強度產生波動。因此相較于晴天,光伏發電功率波動較大,各模型預測偏差較大。圖中發電功率實際值存在多個峰值,在峰值處本文所提模型表現最佳,其他各模型預測誤差較大。說明本文所提模型在天氣變化時具有較強的抗干擾能力和泛化能力。
由圖7(c)可知,雨天情況下太陽輻照度較小,導致光伏發電功率幅值較小。相較于多云天氣,溫度、濕度等氣象因素變化更劇烈,存在更多不確定性與隨機性,使得功率波動更加頻繁,預測難度更高,無法對每個時間段都有很好的擬合效果。本文所提融合模型相較于其他三種模型,預測曲線擬合性最高,說明本文所提融合模型對輸入特征的敏感度較高。
各預測模型在不同天氣下的預測誤差對比見表3,在三種天氣情況下,本文所提模型的各項誤差指標均為最小。這表明本文所提CNN-LSTM-XGBoost 模型在不同天氣情況下都能夠具有較高的預測精度。

表3 預測誤差對比
本文所提融合模型的平均MAE、平均RMSE和平均MAPE分別為0.355 kW、0.422 kW 和9.297%。與CNN-LSTM相比,分別降低了26.04%、28.03%和23.75%;與XGBoost 相比,分別降低了23.71%、37.51%和19.75%。由此可知單一模型對光伏發電功率預測時效果較差,使用本文所提出的融合模型有效提高了預測精度。
為充分利用歷史數據提高預測精度,本文將多維氣象數據作為輸入特征,提出基于CNN-LSTM-XGBoost 融合模型的預測方法,得出以下結論:
(1)通過使用大量歷史數據訓練模型,能夠得到較為理想的預測精度,充分利用氣象數據及歷史功率數據,避免了對其他外部信息的依賴。
(2)選擇相關系數較高的因素作為輸入特征能夠提高模型精度,發揮算法優勢。使用Pearson 相關系數法分析歷史數據,去除相關系數低的氣象因素,并且確定了輸入數據的時間步長,降低了模型復雜度,縮短了計算時間。
(3)CNN-LSTM-XGBoost 融合模型能夠綜合各模型的優勢,減小樣本的偶然性對單一模型造成的波動,從而提高了光伏功率預測的精度與穩定性。仿真實驗中可以嘗試多種融合方式,尋找最優融合方式。
通過對比實驗驗證,本文所提出的光伏功率預測方法可以有效提高精確度,對于電網的運行與調度具有一定的指定意義。