張 進,劉 運,彭曙蓉
(1.陜西科技大學電氣與控制工程學院,西安710021;2.長沙理工大學電氣與信息工程學院,長沙410114)
光伏發電是可再生能源太陽能最重要的一種應用,截至2018 年底,全球總光伏裝機量大于500 GW,2018 年全球新增光伏裝機量約103 GW,其中,我國新增光伏發電裝機量為43 GW,占2018 年全球新增光伏發電裝機量的40%以上,中國已成為全球最大的光伏發電市場。光伏出力具有很大的隨機性和波動性,大面積并網會對電力系統產生一定影響[1]。有學者提出,光伏發電系統的發電功率在電力系統總發電功率中占比的提高會使電網調度難度加大,當比例大于15%時,則會造成發電系統錯亂的后果[2]。因此,對光伏發電功率的準確預測能夠很大程度上解決光伏發電所帶來的問題,使電網實現效率最大化。
國內外學者針對光伏預測已經做了較多的研究,主要的預測方法分為直接法和間接法[3]。直接預測法是根據光伏發電的歷史數據和氣象預測數據直接預測發電功率或發電量,直接法雖然預測過程簡單但是考慮因素比較單一,預測的發電功率也不夠精確;例如文獻[4-5]中采用直接法構造了ARMA模型以及馬爾科夫鏈模型預測短時間光伏發電功率,這種模型僅僅在晴天狀況下的出力預測效果較好,適用條件太單一。間接預測法則是先根據相關數據預測出太陽輻照度,再通過某種算法來預測光伏發電功率或者光伏發電量,間接法的預測精度比直接法高很多,使用也越來越廣泛。文獻[6-7]中參考了相似日和相似時段光伏出力的基礎上,對不同天氣狀況下的光伏出力預測搭建了BP 神經網絡、Elman 神經網絡和Spiking 神經網絡模型,這些模型只適合于天氣類型單一的日光伏出力預測,而對于1 d 當中歷經多種天氣變化情況的預測效果相對較差。文獻[8]中進行光伏出力預測的方法選取的是灰度神經網絡混合模型算法,對光伏出力有主要影響的因素納入了考量范圍,所得結果比單一模型好,但利用此模型進行預測時必須依照天氣情況來劃分子模型,實際適用效果較差;文獻[9]中使用多種灰色預測模型相互結合的方式對光伏出力預測進行建模,但是因為未結合天氣、溫度、濕度等因素,預測的精度不是很好。文獻[10-11]中建立了基于支持向量機的光伏預測系統,利用歷史數據和氣象數據按照統一建模和按時間順序建模對光伏出力進行了分析與預測,將兩種建模方式進行對比,得到按時間順序建模預測精度較高的結論,但是因為考慮的影響因素較少,沒有進行特征挖掘,得到的結論并不精準。深度學習方法預測過程簡單、結果較為準確,近年來受到了廣大學者的青睞。文獻[12-13]中則利用了SVG 模型、玻爾茲曼機算法、梯度累積策略等深度學習方法對光伏出力進行分析與預測,得到了較為精確的預測結果,但由于沒有考慮光伏出力的特征挖掘,預測精度還可有待提高。
本文提出深度學習方法中基于特征挖掘的門控循環單元網絡和注意力機制(Gated Recurrent Unit-Attention,GRU-A)光伏發電功率預測模型。門控循環模型(Gated Recurrent Unit,GRU)是基于長短期記憶模型(Long Short-Term Memory,LSTM)的一種變體,它把LSTM的遺忘門和輸入門合并成一個更新門,這樣可以簡化模型,使計算過程變得更加快速簡單。但LSTM和GRU均無法表示隱層輸出的重要性[14]。所以,文中在GRU的基礎上加入了可以體現每個輸出重要程度的注意力機制(Attention),賦予隱層不同的權重,處理長向量序列。將GRU模型和Attention模型結合起來,建立了GRU-A 光伏預測模型。最后,根據某個光伏電站的實際光伏數據進行仿真,仿真結果證明了基于特征挖掘的GRU-A 光伏發電功率預測模型相比于其他模型能得到更為精確的結果。
由光伏發電原理可知,太陽實發輻照度與實際功率呈現正相關關系,光伏發電功率的實際大小很大程度上由實際輻照度決定。由圖1 可以看出,實發輻照度與實際功率呈完全正相關,尤其在時間點50 和150前后,兩條曲線完全重合,實發輻照度和實際功率大致成100 倍的關系(文中相關圖片橫坐標時間點的數據采樣頻率為15 min。)

圖1 光伏實際功率與實發輻照度關系
圖2 展示了光伏實際功率與溫度的關系。可以看出兩者之間并不是簡單的正比例關系,當溫度出現峰值時,光伏實際功率則會驟降至零,并在溫度下降過程中,一直保持為零。

圖2 光伏實際功率與溫度關系
雖然實發輻照度與溫度和實際功率呈線性關系,但濕度、風速、風向和壓強與光伏實際出力并沒有明顯的線性關系,由圖3 ~6 很難找到兩條曲線的線性關系。除此之外,由輻照度、溫度、濕度、風速、風向及壓強構成的統計特征和多項式特征對光伏實際功率也存在一定影響。因此需要以這些特征為基礎建立構造特征,以便模型能夠更好地學習各個特征與光伏實際出力之間的關系。

圖3 光伏實際功率與濕度關系

圖4 光伏實際功率與風速關系

圖5 光伏實際功率與風向關系

圖6 光伏實際功率與壓強關系
預測未來的光伏實際功率用到的數據都是未來的相關預測數據。溫度、濕度、壓強等和天氣相關的預測數據都可以通過氣象預報得到,但是預測輻照度(文中簡稱輻照度)就得通過圖7 分析獲得。從圖中可以看出,輻照度具有較強的周期性規律,因此構造兩種特征來表示這種周期性,即dis2peak和peak輻照度。前者代表距周期峰值的距離;后者代表輻照度峰值的實際值。

圖7 dis2peak與peak輻照度特征構造方法
為了使模型預測更精確,需要考慮更多的影響因素。通過分析,在上文1.1 的基礎上添加了時間特征、相關因素的均值、方差、平方等特征,以及每天的白天溫差特征,還有各因素差值構造,例如白天溫差就是當天白天最大溫度和最小溫度差值,其他因素差值做相同處理。
風速及大氣濕度會影響太陽能光伏板表面的積灰程度,從而影響光伏出力。諸如此類的影響因素通過特征構造后共有132 個特征,這種特征構造對光伏出力的影響因素考慮全面,既能增加特征的非線性性,還可以發掘特征融合后對光伏發電功率的影響,使光伏預測更加精確。特征構造的方法是對相關因素之間進行多項式特征和統計特征構造,其中多項式特征的構造方法為:假設有特征a、b,則對應特征為1,a,b,ab等;統計特征的構造方法為:假設有特征a、b,則對應統計特征為amean,bmean,astd,bstd。
1.2.1 多項式特征
(1)a,b分別為各個特征的獨立模型,如風速、風向、濕度、溫度、輻照度、壓強、白天溫差等。
(2)特征a·b:輻照度·風速、風速·溫度、溫度·壓強、風速·壓強、輻照度·壓強、風速·風向、輻照度std·風速mean、風速·風速、濕度·濕度、溫度·溫度等。
(3)特征a/b:輻照度/風速、風速/溫度、溫度/壓強、風速/壓強、輻照度/壓強、風速/風向、輻照度std /風速std、濕度mean/風速mean等。
(4)特征a+b:輻照度+風速、風速+溫度、溫度+壓強、風速+壓強、輻照度+壓強、風速+風向、輻照度std+風速mean等。
(5)特征a-b:輻照度-風速、風速-溫度、溫度-壓強、風速-壓強、輻照度-壓強、風速-風向、風速mean-輻照度std等。
1.2.2 統計特征
(1)特征a或b的均值(mean)。如風速mean、濕度mean、溫度mean、輻照度mean、壓強mean、白天溫差mean等。
(2)特征a或b的標準差(std)。如風速std、濕度std、溫度std、輻照度std、壓強std、白天溫差std等。
文中考慮到的特征與其他現有文章相比更加全面,不再拘泥于幾個因素,而是全方位地構造出了上百個特征,同等條件下,考慮的特征越多,則預測精度就越高。在預測模型建造好之后,構造好的特征將作為輸入數據傳送到預測模型中,以實現使文中光伏發電功率預測精度更高的目的。
GRU網絡是一種比LSTM 網絡更加簡單、快速的循環神經網絡,加進了門控機制來控制信息更新的方式。在LSTM原有的基礎上引入了一個更新門來決定此刻狀態從上一時刻狀態中保留的信息量以及從候選狀態中選取的信息量[15]。它的傳遞公式如下:

其中:
①Zt∈[0,1]是更新門,當Zt=0 時,當前狀態ht和前一時刻狀態ht-1互為非線性函數關系;當Zt=1時,當前狀態ht和前一時刻狀態ht-1互為線性函數關系,ht-1是上一時刻狀態。?為向量乘積符號。
②ht是當前時刻的候選狀態。rt∈[0,1]是重置門,用來控制ht的計算。當rt=0 時,ht只和當前輸入xt有關,和歷史狀態無關。當rt=1 時,ht和當前輸入xt與歷史狀態ht-1都有關。
③σ為Sigmoid函數;tanh為雙曲正切函數。
由式(1)可以看出,Zt= 0,rt=1 時,GRU 網絡為簡單循環網絡;Zt=0,rt=0 時,ht只和xt有關,和ht-1無關;當Zt=1 時,ht=ht-1,和當前輸入xt無關。
圖8 為GRU循環單元結構,其中zt表示更新門,rt代表重置門。zt用于控制前一時刻的狀態信息被帶入到當前狀態中的程度,zt的值越小,前一時刻的狀態信息被帶入到當前狀態的就越少。rt控制前一狀態的信息被傳送到當前候選狀態ht中的數量,rt越大,前一狀態的信息被寫入當前候選狀態的就越多。

圖8 GRU結構圖
當需要處理大量輸入數據時,就可以用注意力機制(Attention機制)來從大量信息中選擇一些關鍵信息進行處理,這可以簡化運算、減小神經網絡的計算負擔、節約計算機資源。注意力模型如圖9 所示,其中x1,x2,x3,…為輸入,h1,h2,h3,…為輸出。

圖9 注意力模型
Attention機制的計算可以分為兩個步驟:① 在所有輸入數據中計算注意力分布;②根據注意力分布來計算加權平均。這里選用自注意力模型作為輸入的注意力模型。假設輸入信息為x=[x1,x2,…,xN,]∈,輸出信息為,通過線性變換可以得到以下3 組向量序列:

式中:Q是查詢向量序列;K 是鍵向量序列;V 是值向量序列;WQ、WK、WV分別是可學習的參數矩陣;i,j∈[1,N]為輸出和輸入向量序列的位置,連接權重αij由注意力機制動態生成。
文中所提的GRU-A 模型結構如圖10 所示。GRU-A模型使用上文中所搭建的特征群作為輸入x1,x2,…,xi,通過GRU 模型進行計算得到對應輸出h1,h2,…,hi,然后在隱藏層中利用Attention 機制計算各個輸入的注意力概率分布值a1,a2,…,ai,輸出層的輸入是上一層Attention 層的輸出。最后利用Softmax 函數對輸出層的輸入進行相應計算,從而得到下一時刻的光伏發電功率預測。

圖10 GRU-A模型結構圖
GRU-A模型的訓練和測試流程圖如圖11 所示。將上文1.2 中提出經過特征挖掘工程處理后的特征如濕度、風速、輻照度、壓強等作為輸入傳送進GRU-Attention網絡,經過一系列計算最終可輸出光伏功率的預測值。

圖11 模型預測流程
模型參數的優化采用一階Adam(Adaptive Moment Estimation)優化算法。此算法可以通過連續更新迭代網絡神經元節點的權重和偏置使函數值降至最優值。在模型訓練期間,根據訓練輸出和標準化實際功率計算GRU-A的損失MSE(Mean Squared Eorr),

式中:n為樣本數;yi為實際值;^yi為模型輸出值。
光伏功率預測的評價指標選定如下:
R2(R-squared)可決系數

MAE(Mean Absolute Error)均方根誤差

MAPE(Mean Absolute Percentage Error)相對百分誤差絕對值的平均值

根據某個光伏電站的實際光伏數據共41 853 條數據,數據采樣頻率為15 min,從2018-01-01 0:00:00開始直到2019-04-26 4:00:00。在cpu:i7-9 700K,gpu:2080Ti 11 GB,內存:16 GB 的計算機條件下進行。在41 853 條數據中選用33 853 條作為訓練數據,剩余8 000 條作為測試數據。數據中包含了時間、輻照度(預測輻照度)和來自數字天氣預報的風速、風向、溫度、壓強、濕度。采用下式對數據進行標準化,

式中:μ是該特征的均值;σ是該列特征的方差。
文中采集了實際的光伏數據集對模型進行實驗,選擇LSTM、BP、SVR、GRU 預測模型與文中所提出的GRU-A預測模型進行結果對比。5 種模型的輸入數據保持一致,均包括原始特征和經特征工程構造后的特征。這些特征組成輸入特征矩陣,分別采用以上5 種模型進行建模訓練和預測。由此可以驗證特征工程構造的預測精度以及GRU-A 模型的優良性能。模型及其參數見表1,其中神經網絡的參數代表其每層的單元數。

表1 各個模型參數
采用表1 中5 個模型分別對原始特征和特征工程構造后的特征進行建模,可得表2 給出的共8 000 個點的預測值平均MAE、R2、MAPE。經過對比可以看出,構造特征后的5 個模型的MAE、R2、MAPE 基本都有所提高,證明了對輸入數據進行特征構造可以使模型精度顯著提高。

表2 各個模型預測結果
表2 的預測結果中包含各類型復雜天氣情況,由于光伏發電功率受天氣影響隨機波動性較大,有必要深入分析不同變化情況下的光伏實際預測情況。為了具體驗證GRU-A模型的有效性,將不同天氣下基于構造特征的模型的預測結果進行展示。由于夜晚不存在陽光,所以只關注早上6:00 到晚上18:00 的光伏發電功率。
圖12 展示了晴天的光伏發電功率預測曲線圖。如圖所示,5 個模型都能擬合出實際光伏發電功率,擬合精度與穩定性卻有較大差別。BP 模型的預測曲線和實際功率曲線走向穩定性比較一致,但精確度不夠。SVR、BP、LSTM、GRU 4 個模型的預測曲線穩定性和精度均不佳。而GRU-A 的功率預測曲線和實際功率曲線最靠近,預測穩定性和精度都最好。

圖12 晴天下光伏發電功率預測對比
圖13 展示了復雜天氣情況下(上午晴天下午陰天)的光伏功率預測結果。此時,只有GRU-A 預測模型曲線與實際功率曲線大致貼合,說明該算法在天氣復雜時仍然能較好地預測光伏發電功率的變化情況。

圖13 天氣變化下光伏發電功率預測對比
圖14 展示了陰天情況下光伏功率預測情況,可看出,在此情況下只有GRU-A模型預測結果能大致擬合實際光伏發電功率。說明此類天氣下,需要有記憶能力的模型來預測光伏發電功率才會更加準確。

圖14 陰天下光伏發電功率預測對比
將仿真結果繪制成表格形式如表3 所示,其中,“變天”指1 d當中天氣在晴朗和陰天當中變換不定。對比分析可得,晴天時,GRU-A 模型預測結果的MAE和MAPE低了將近50%,而R2則與其他模型接近,顯然,GRU-A預測模型性能最好。而當天氣由晴好到變天時,其他模型的預測誤差率增大了50%以上,只有GRU-A的誤差率增大最少,變天情況下,誤差率也最小。由此,天氣復雜情況下,GRU-A 預測模型的預測性能最好。陰天時,GRU-A模型的3 項指標都比其他4 個模型好。由此可得,不論在何種天氣情況下,GRU-A模型的預測準確率都比其他模型更高。
以上通過仿真實驗曲線圖和數據圖表的形式對比了3 種不同天氣情況下各個模型的光伏發電功率預測結果。對此結果進行對比分析,充分證明GRU-A模型可以獲得更好的光伏發電功率預測指標和預測精度,既具有GRU模型的記憶能力,又比其他傳統模型具有更好的泛化能力和穩定性,具有顯著的優越性。

表3 不同天氣下不同模型的預測參數
光伏發電功率受到天氣狀況、輻照度、溫度、濕度等因素以及各因素組合等特征的影響,發電量的不穩定性會嚴重影響電網的調度質量、安全穩定運行及經濟效益。因此提出了一種基于特征挖掘的GRU-A 模型的光伏發電功率預測模型。文中首先對影響因素進行特征構造,然后對比使用原始特征和構造后特征兩種情況下各個模型的預測準確率,得出使用構造后特征會顯著提高預測精確度的結論。最后通過仿真實驗對比了使用構造后特征的各個模型在不同天氣情況下的光伏預測情況,經過與其他模型的比較,證明了GRU-A模型有以下優點:① 具有很強的泛化能力、構造了統計特征與多項式特征使預測結果更加精確;②搭建的GRU-A模型使預測結果更加穩定精準,不論天氣情況單一還是復雜多變,GRU-A模型都能夠精確地預測光伏出力。總而言之,與其他傳統模型相比,基于特征挖掘的GRU-A 光伏發電功率預測模型的預測精度更高、預測穩定性更好。