湯德清,朱 武,侯林超
(上海電力大學(xué)電子與信息工程學(xué)院,上海 201300)
近年來,以光伏發(fā)電為代表的可再生能源發(fā)電得到迅猛發(fā)展,在電力系統(tǒng)裝機(jī)容量中的占比逐步增加。隨著光伏發(fā)電大規(guī)模并入電網(wǎng),光伏發(fā)電的隨機(jī)性與波動(dòng)性,可能對(duì)主電網(wǎng)造成沖擊,影響電力系統(tǒng)的穩(wěn)定運(yùn)行。對(duì)光伏發(fā)電功率進(jìn)行預(yù)測(cè)有助于調(diào)度部門制定合理的發(fā)電計(jì)劃,利于電網(wǎng)的調(diào)頻、調(diào)壓、備用等,進(jìn)一步保證供電的安全性和經(jīng)濟(jì)性[1]。
現(xiàn)有的光伏發(fā)電功率預(yù)測(cè)方法主要分為物理建模法和統(tǒng)計(jì)法。統(tǒng)計(jì)法預(yù)測(cè)精度較高且不需要光伏發(fā)電組件的詳細(xì)參數(shù),運(yùn)用統(tǒng)計(jì)法預(yù)測(cè)光伏發(fā)電功率成為主流趨勢(shì),常用的統(tǒng)計(jì)法包括支持向量機(jī)[2]、馬爾可夫鏈[3]、極限學(xué)習(xí)機(jī)[4]、人工神經(jīng)網(wǎng)絡(luò)[5]、時(shí)間序列預(yù)測(cè)[6-7]等方法。
文獻(xiàn)[8]通過改進(jìn)的Kohonen 聚類模型進(jìn)行天氣聚類,將輸入數(shù)據(jù)在季節(jié)維度上分為春、夏、秋、冬季,利用多種群果蠅優(yōu)化廣義回歸神經(jīng)網(wǎng)絡(luò)模型(MFOA-GRNN)進(jìn)行光伏發(fā)電預(yù)測(cè),縮短了模型訓(xùn)練時(shí)間,提高了預(yù)測(cè)精度。隨著預(yù)測(cè)技術(shù)發(fā)展,以小波分析和經(jīng)驗(yàn)?zāi)B(tài)分解為代表的信號(hào)預(yù)處理方法逐漸應(yīng)用在光伏功率序列預(yù)處理中,文獻(xiàn)[9]將光伏輸出功率時(shí)間序列在不同尺度上進(jìn)行小波分解,最后將輸出的預(yù)測(cè)結(jié)果疊加得到原始輸出功率序列的預(yù)測(cè)值。此方案的弊端在于小波分解會(huì)產(chǎn)生諧波,因此求和重構(gòu)之后存在不可避免的誤差。
上述文獻(xiàn)使用的方案往往采用單一預(yù)測(cè)模型,存在預(yù)測(cè)精度低、穩(wěn)定性差的問題。針對(duì)上述問題,本文提出了基于CNN-LSTM-XGBoost 模型的超短期光伏發(fā)電功率預(yù)測(cè)方法,該方法綜合了3 種模型的優(yōu)勢(shì),解決了單一模型精度不高的缺點(diǎn)。為長短期記憶(long short term memory,LSTM)網(wǎng)絡(luò)添加了卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)作為局部特征預(yù)提取模塊,采用誤差倒數(shù)法將XGBoost 模型與其并行拼接,構(gòu)成最終的光伏發(fā)電功率預(yù)測(cè)模型。使用Pearson 相關(guān)系數(shù)法篩選出與光伏發(fā)電功率相關(guān)系數(shù)較高的氣象因素作為輸入特征,通過實(shí)驗(yàn)確定模型的最佳超參數(shù),最后通過算例分析證明本模型提高了預(yù)測(cè)精度。
1.1.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)是一種基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),常用于處理具有已知網(wǎng)格狀拓?fù)涞臄?shù)據(jù),在時(shí)間序列分析、計(jì)算機(jī)視覺和自然語言處理等領(lǐng)域廣泛應(yīng)用[10]。CNN 的基本結(jié)構(gòu)如圖1 所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
卷積層是CNN 的核心組成部分,在卷積層中,采用濾波器對(duì)輸入進(jìn)行卷積操作,得到相應(yīng)的特征圖,從而捕捉數(shù)據(jù)的局部、細(xì)節(jié)信息。經(jīng)過多層卷積層的計(jì)算,低級(jí)特征被逐步提取成為高級(jí)特征。卷積層的特征輸出可以用式(1)、(2)表示:
式中:Ci、Ci-1為第i層與第i-1 層的特征輸出;?為卷積運(yùn)算;bi為第i層的偏移量;原始輸入C0為I。
連續(xù)的卷積層之間常常需要插入池化層,池化層將卷積層特定位置的輸出用附近數(shù)據(jù)的統(tǒng)計(jì)量代替,使之只保留主要特征,減小了下一層的計(jì)算量,并且能夠有效防止過擬合。
1.1.2 長短期記憶網(wǎng)絡(luò)
LSTM 是一種改良的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),可以通過遺忘門、輸入門和輸出門去除或增加“細(xì)胞狀態(tài)”信息,使其僅保留重要信息,從而避免了RNN 存在的梯度爆炸現(xiàn)象。長短期記憶網(wǎng)絡(luò)如圖2 所示。
圖2 LSTM結(jié)構(gòu)
遺忘門中,當(dāng)前網(wǎng)絡(luò)的輸入xt、上一時(shí)刻網(wǎng)絡(luò)的輸出ht-1和上一狀態(tài)的記憶單元St-1決定狀態(tài)記憶單元中的遺忘部分,避免了上一時(shí)刻的無用信息繼續(xù)向下傳遞。輸入門中,當(dāng)前網(wǎng)絡(luò)的輸入xt經(jīng)函數(shù)變換后決定狀態(tài)單元中的保留部分。輸出門中,記憶單元的輸出St和ot決定t時(shí)刻的輸出ht。
1.1.3 CNN-LSTM 混合神經(jīng)網(wǎng)絡(luò)模型
本文提出的CNN-LSTM 混合神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。CNN 由兩層一維卷積層(Conv1D)和兩層最大池化層(MaxPooling1D)組成。Flatten 層對(duì)數(shù)據(jù)扁平化處理,將輸入“壓平”成一維向量,再經(jīng)過RepeatVector 層處理成LSTM 網(wǎng)絡(luò)要求的輸入格式。LSTM 網(wǎng)絡(luò)包含三層LSTM 層,并在每層之間加入Dropout 層以防止在訓(xùn)練時(shí)過擬合。最后通過全連接層(Dense)輸出預(yù)測(cè)值。
圖3 CNN-LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
XGBoost是在梯度提升樹(GBDT)基礎(chǔ)上改進(jìn)的機(jī)器學(xué)習(xí)算法,其基本思想是通過不斷向模型中加入新的樹,來糾正上次預(yù)測(cè)的殘差,最終把多個(gè)決策樹加權(quán)求和得到預(yù)測(cè)結(jié)果。
XGBoost 采用增量訓(xùn)練方法,每一次訓(xùn)練在保留先前模型的基礎(chǔ)上,向決策樹函數(shù)空間加入新函數(shù)。XGBoost 的迭代過程如下:
XGBoost整體流程如圖4 所示。
圖4 XGBoost模型流程圖
本文采用了誤差倒數(shù)法將兩個(gè)模型并行拼接。通過并行CNN-LSTM 與XGBoost 結(jié)構(gòu),在CNN-LSTM 提取局部與時(shí)序特征的同時(shí)由XGBoost 實(shí)現(xiàn)統(tǒng)計(jì)角度的預(yù)測(cè)函數(shù)擬合,最大化利用模型訓(xùn)練時(shí)間,提升模型預(yù)測(cè)精度[11]。誤差倒數(shù)法公式如下:
式中:ω1、ω2分別為CNN-LSTM 與XGBoost 的權(quán)重系數(shù);f1t、f2t分別為這兩個(gè)模型的預(yù)測(cè)值;ε1、ε2分別為這兩個(gè)模型的誤差。
(1)異常數(shù)據(jù)處理
異常數(shù)據(jù)會(huì)導(dǎo)致模型對(duì)特征的擬合能力變差,因此修正數(shù)據(jù)是預(yù)測(cè)研究的前提。
對(duì)異常數(shù)據(jù)處理包括檢測(cè)和替換兩部分。檢測(cè)異常值基于3-sigma 原理:
式中:X為原始數(shù)據(jù)為平均值;σ為標(biāo)準(zhǔn)差。
由于氣象數(shù)據(jù)具有不易突變的特點(diǎn),因此本文采用前向替代法,使用前一采樣時(shí)刻的值代替該異常值。
(2)標(biāo)準(zhǔn)化
不同特征數(shù)據(jù)的量綱差別很大,不利于模型訓(xùn)練,且影響擬合速度,因此需要對(duì)歷史數(shù)據(jù)進(jìn)行歸一化。標(biāo)準(zhǔn)化公式為:
式中:xa、xb分別為標(biāo)準(zhǔn)化后與標(biāo)準(zhǔn)化前的數(shù)據(jù);xmax、xmin分別為各氣象因素原始數(shù)據(jù)的最大值和最小值。
特征維數(shù)過多會(huì)引入冗余信息,拉長了訓(xùn)練時(shí)間還會(huì)提高建模難度。在選擇輸入特征時(shí),應(yīng)該選擇與光伏發(fā)電功率關(guān)聯(lián)性較強(qiáng)的因素。
Pearson 相關(guān)系數(shù)可以用來衡量不同氣象因素與光伏發(fā)電功率之間的線性相關(guān)程度。二維Pearson 相關(guān)系數(shù)的計(jì)算公式為:
光伏發(fā)電歷史功率與各氣象因素之間的Pearson 相關(guān)系數(shù)如表1 所示。從表1 中分析得出,溫度、濕度、總輻射強(qiáng)度、風(fēng)速和散射輻射強(qiáng)度相關(guān)性較強(qiáng),本文選擇以上5 個(gè)氣象因素作為特征。
表1 各氣象因素的Pearson 相關(guān)系數(shù)
本文采用澳大利亞愛麗絲泉光伏電站提供的2014 年1月1 日—2015 年12 月31 日的歷史功率數(shù)據(jù)及氣象數(shù)據(jù)進(jìn)行仿真分析。數(shù)據(jù)的采樣時(shí)間間隔為15 min,每天可采集96 組觀測(cè)值。數(shù)據(jù)集共有70 077 組數(shù)據(jù),選取前18 個(gè)月的數(shù)據(jù)作為訓(xùn)練集,后6 個(gè)月的數(shù)據(jù)作為測(cè)試集。
采用三種誤差指標(biāo)評(píng)估模型,分別為平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)和平均絕對(duì)誤差率(MAPE)。三種評(píng)估指標(biāo)的計(jì)算公式如下:
式中:Pn為光伏電站發(fā)電功率的實(shí)測(cè)值為光伏發(fā)電功率的預(yù)測(cè)值;N為測(cè)試樣本數(shù)量。
輸入步長的選擇要在保證預(yù)測(cè)精度的情況下盡量降低模型復(fù)雜度,因此計(jì)算某個(gè)時(shí)刻功率與12 個(gè)相鄰歷史時(shí)刻功率之間的Pearson 相關(guān)系數(shù)。輸出功率的自相關(guān)系數(shù)如表2所示。
表2 輸出功率自相關(guān)系數(shù)
由表2 可以看出,相關(guān)系數(shù)隨時(shí)間步長的增加而逐步遞?減,步長為1~10 時(shí)相關(guān)性較強(qiáng)?;诔醪降臅r(shí)間步長范圍,利用測(cè)試集進(jìn)行輸入步長實(shí)驗(yàn),各項(xiàng)誤差指標(biāo)變化趨勢(shì)如圖5 所示。由圖5 可以看出,步長為7~9 時(shí)各項(xiàng)誤差指標(biāo)較小,預(yù)測(cè)精度較高。隨著步長的增加,訓(xùn)練時(shí)間也會(huì)增長,因此綜合各項(xiàng)指標(biāo),將步長設(shè)為8。
圖5 誤差指標(biāo)隨時(shí)間步長的變化
基于多模型融合的光伏功率超短期預(yù)測(cè)算法流程如圖6所示。將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,采用單步預(yù)測(cè)的方式,使用T-8 時(shí)刻到T-1 時(shí)刻共8 個(gè)時(shí)間點(diǎn)的數(shù)據(jù)預(yù)測(cè)T時(shí)刻的輸出功率,即使用前兩個(gè)小時(shí)的歷史數(shù)據(jù)預(yù)測(cè)15 min 后的光伏功率,每15 min 滾動(dòng)一次,進(jìn)而完成對(duì)整日的預(yù)測(cè)。由于夜晚的光伏發(fā)電功率為0,因此只對(duì)7:00—18:00 共44 個(gè)時(shí)刻進(jìn)行預(yù)測(cè)。預(yù)測(cè)流程如圖6 所示。
圖6 光伏功率預(yù)測(cè)流程
為直觀展現(xiàn)本文所提出模型對(duì)預(yù)測(cè)精度的提升,選擇2015-11-22(晴天)、2015-12-17(多云)和2015-12-21(雨天)作為待預(yù)測(cè)日,分別使用CNN-LSTM、XGBoost、支持向量機(jī)(SVM)和CNN-LSTM-XGBoost 模型對(duì)待預(yù)測(cè)日進(jìn)行預(yù)測(cè)。各模型預(yù)測(cè)值與真實(shí)值的對(duì)比如圖7 所示。
由圖7(a)可知,晴天時(shí)光伏功率的波動(dòng)幅度比較小,四個(gè)模型的預(yù)測(cè)曲線都能基本擬合光伏發(fā)電功率實(shí)際值曲線,表示各模型都能夠較為準(zhǔn)確地識(shí)別出功率輸出特征。其中,在上午和下午擬合效果較好,但在功率高峰的中午各模型出現(xiàn)了不同程度的誤差。在正午時(shí)間段,融合模型的預(yù)測(cè)精度明顯高于其他三種算法,預(yù)測(cè)曲線在實(shí)際值曲線兩端同步變化。
圖7 各天氣類型下預(yù)測(cè)結(jié)果對(duì)比
由圖7(b)可知,多云天氣下,云層受風(fēng)速和風(fēng)向的影響,其位置和厚度都會(huì)不斷變化,導(dǎo)致太陽輻照強(qiáng)度產(chǎn)生波動(dòng)。因此相較于晴天,光伏發(fā)電功率波動(dòng)較大,各模型預(yù)測(cè)偏差較大。圖中發(fā)電功率實(shí)際值存在多個(gè)峰值,在峰值處本文所提模型表現(xiàn)最佳,其他各模型預(yù)測(cè)誤差較大。說明本文所提模型在天氣變化時(shí)具有較強(qiáng)的抗干擾能力和泛化能力。
由圖7(c)可知,雨天情況下太陽輻照度較小,導(dǎo)致光伏發(fā)電功率幅值較小。相較于多云天氣,溫度、濕度等氣象因素變化更劇烈,存在更多不確定性與隨機(jī)性,使得功率波動(dòng)更加頻繁,預(yù)測(cè)難度更高,無法對(duì)每個(gè)時(shí)間段都有很好的擬合效果。本文所提融合模型相較于其他三種模型,預(yù)測(cè)曲線擬合性最高,說明本文所提融合模型對(duì)輸入特征的敏感度較高。
各預(yù)測(cè)模型在不同天氣下的預(yù)測(cè)誤差對(duì)比見表3,在三種天氣情況下,本文所提模型的各項(xiàng)誤差指標(biāo)均為最小。這表明本文所提CNN-LSTM-XGBoost 模型在不同天氣情況下都能夠具有較高的預(yù)測(cè)精度。
表3 預(yù)測(cè)誤差對(duì)比
本文所提融合模型的平均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%。由此可知單一模型對(duì)光伏發(fā)電功率預(yù)測(cè)時(shí)效果較差,使用本文所提出的融合模型有效提高了預(yù)測(cè)精度。
為充分利用歷史數(shù)據(jù)提高預(yù)測(cè)精度,本文將多維氣象數(shù)據(jù)作為輸入特征,提出基于CNN-LSTM-XGBoost 融合模型的預(yù)測(cè)方法,得出以下結(jié)論:
(1)通過使用大量歷史數(shù)據(jù)訓(xùn)練模型,能夠得到較為理想的預(yù)測(cè)精度,充分利用氣象數(shù)據(jù)及歷史功率數(shù)據(jù),避免了對(duì)其他外部信息的依賴。
(2)選擇相關(guān)系數(shù)較高的因素作為輸入特征能夠提高模型精度,發(fā)揮算法優(yōu)勢(shì)。使用Pearson 相關(guān)系數(shù)法分析歷史數(shù)據(jù),去除相關(guān)系數(shù)低的氣象因素,并且確定了輸入數(shù)據(jù)的時(shí)間步長,降低了模型復(fù)雜度,縮短了計(jì)算時(shí)間。
(3)CNN-LSTM-XGBoost 融合模型能夠綜合各模型的優(yōu)勢(shì),減小樣本的偶然性對(duì)單一模型造成的波動(dòng),從而提高了光伏功率預(yù)測(cè)的精度與穩(wěn)定性。仿真實(shí)驗(yàn)中可以嘗試多種融合方式,尋找最優(yōu)融合方式。
通過對(duì)比實(shí)驗(yàn)驗(yàn)證,本文所提出的光伏功率預(yù)測(cè)方法可以有效提高精確度,對(duì)于電網(wǎng)的運(yùn)行與調(diào)度具有一定的指定意義。