徐先峰,劉阿慧,陳雨露,蔡路路
(長安大學 電子與控制工程學院,西安 710064)
太陽能作為環(huán)境友好型的可再生能源,應用前景一片明朗[1].因此,利用太陽能發(fā)電的光伏技術已成為我國應對世界能源危機和經(jīng)濟發(fā)展新形勢的戰(zhàn)略新興產業(yè).據(jù)統(tǒng)計,2018年,光伏發(fā)電躍居成為我國第四大主力電源,共發(fā)電1775億千瓦時,同比增長50%,居世界首位[2].然而,光伏發(fā)電的輸出功率受多種氣象因素影響,表現(xiàn)出明顯的間歇性、隨機性和波動性,進而嚴重影響與其連接的電網(wǎng)穩(wěn)定性[3].為確保光伏功率預測系統(tǒng)的預測精度,有效的光伏發(fā)電功率預測方法在電力生產方面占有舉足輕重的地位[4].
現(xiàn)存的光伏發(fā)電功率預測方法,總體可歸納為兩類[5]:基于物理模型的間接預測法和基于歷史數(shù)據(jù)的直接預測法.后者因無需預測光照幅度,建模簡單、預測成本較低,而得到大量應用.主要包括多元線性回歸[6]、支持向量機[7](Support Vector Machine,SVM)和人工神經(jīng)網(wǎng)絡法 (Artificial Neural Network,ANN)[8].相對于傳統(tǒng)的預測算法,人工神經(jīng)網(wǎng)絡具有良好的容錯性,泛化能力好,適于擬合復雜的非線性關系,應用領域廣泛.其中,文獻[9]運用LSTM 單一模型預測,模型簡單,精度一般;文獻[10]建立基于DBN的短期光伏出力預測模型,達到較高精度的預測效果,但其輸入變量的遴選是直接選取的,即未考慮除光照強度、溫度等相關性較強因素以外的氣象因子對輸出功率的影響;文獻[11]對不同發(fā)電站的輸出功率進行預測時采用主成分分析法,預測準確度因氣象因素的進一步利用得到了提高,但是只是主觀上突出主要矛盾,規(guī)避次要因素的影響,相對缺乏客觀實驗結果支持.可見,現(xiàn)有方法抑或不考慮氣象因素對光伏出力的影響;抑或主觀采用僅反映預測對象某一或某幾方面顯著特征的方法進行預測,導致未能對多元氣象因素進行充分挖掘、有效利用;再者因氣象因素充分挖掘工作復雜等原因而將所有影響因素未加選擇地全部作為預測模型的輸入,未剔除相關性極小、甚至不相關因素,使得訓練時間過長、預測精度不高.
為了充分挖掘氣象因素對光伏出力的影響,有效利用深度學習技術在非線性擬合方面的優(yōu)勢,并穩(wěn)定發(fā)揮復合模型強大的建模能力和顯著的預測能力,本文提出一種基于氣象因素充分挖掘的BiLSTM網(wǎng)絡的光伏發(fā)電短期功率預測方法.在KNN算法的遴選機制下,采用馬氏距離衡量各因素與發(fā)電數(shù)據(jù)之間的相關性,篩選出與輸出相關性最強的K個氣象因素,按序排列,優(yōu)化樣本.將重新構建的氣象因素數(shù)據(jù)序列與歷史發(fā)電功率作為BiLSTM預測模型的輸入,訓練并建立與出力值之間的映射關系,并以誤差最小時對應的K值的預測結果作為最終的預測值.從而達到氣象因素的充分挖掘,高效利用,進而提高預測精度的目的.基于實測數(shù)據(jù)的實驗結果及對比結果表明,該方法具有高效的氣象因素利用率、優(yōu)渥的預測準確率,是一種有效的光伏發(fā)電功率預測途徑.
本文所提的KNN-BiLSTM光伏短期功率預測方法,先利用KNN算法對原始氣象數(shù)據(jù)進行相關性篩選,生成按與光伏發(fā)電功率相關性強弱排列的全新數(shù)據(jù)集;然后,將此數(shù)據(jù)集與歷史發(fā)電功率一同作為BiLSTM的輸入,依據(jù)評價指標,得出最佳K值的預測結果.圖1為模型圖.其中,擬采用的理論知識介紹如下.
圖1 預測方法模型圖
為充分挖掘氣象因素對光伏功率的影響程度,因KNN算法具備強大的相似度問題處理能力,故采用KNN 構建關鍵氣象因素遴選模塊.其核心思想為:對于由氣象數(shù)據(jù)及歷史發(fā)電量構成的測試樣本,從中選取目標光伏發(fā)電功率為參照樣本,基于距離度量找出訓練集中與參照樣本最靠近的k個樣本,然后綜合參照樣本及這k個“鄰居”信息來進行預測.結合影響光伏發(fā)電氣象因素的特點,在眾多距離度量方法中,鑒于馬氏距離具有獨立于測量尺度,不受坐標之間量綱影響的特性,采用馬氏距離來衡量待選取特征與發(fā)電功率之間的相關程度.其具體計算公式為:
式中,x0為光伏發(fā)電輸出功率值,xi為數(shù)據(jù)集中第i個氣象因素的檢測值.
BiLSTM,即雙向長短期記憶神經(jīng)網(wǎng)絡,用其構建的預測模型具有良好的適應性,可以高效快速利用氣象因素和歷史發(fā)電功率數(shù)據(jù),表現(xiàn)出卓越的光伏發(fā)電功率預測能力[12].
BiLSTM由正、反向LSTM結合形成,可對時間序列實現(xiàn)向前和向后兩次LSTM訓練,進一步提高特征提取的全局性和完整性.LSTM,即長短期記憶網(wǎng)絡,在普通循環(huán)神經(jīng)網(wǎng)絡的基礎上,通過加入的“門”結構(即遺忘門、輸入門和輸出門),顯著改善了傳統(tǒng)RNN存在的梯度消失、梯度爆炸以及長期記憶不足等問題,從而有效控制信息的流動量,學習到準確的長期依賴關系.因此,在處理時間序列的預測和分類問題中被廣泛應用[13].其結構如圖2所示.
LSTM中信息的傳遞須經(jīng)過以下3個過程.
圖2 LSTM模型結構
(1)信號的取舍.遺忘門將LSTM在上一時刻隱藏層的輸出h(t-1)和當前的輸入x(t)連接,在激勵函數(shù)Sigmoid的激勵下使輸出值在[0,1]之間,決定是否讓上一時刻所學信息C(t-1)通過或部分通過.0表示全部舍棄,1表示全部保留.具體公式如下:
式中,Wf為權重,ft為隱含層的輸出.
(2)信號的更新.該環(huán)節(jié)包括3部分:首先是輸入門通過Sigmoid層決定用于更新的信息o(t),然后利用tanh生成新的候選值i(t),最后將這兩部分產生的值結合后進行信息的更新.具體公式如下:
(3)信號的輸出.首先通過Sigmoid層得到一個初始輸出o(t),然后使用tanh 將其值縮放,再將處理后的值與Sigmoid層的輸出逐對相乘,最終得到模型的輸出h(t).具體表達式如下:
若記t時刻正向LSTM輸出的隱藏狀態(tài)為ht1,反向LSTM輸出的隱藏狀態(tài)為ht2,則BiLSTM輸出的隱藏狀態(tài)ht:ht=ht1⊕ht2.
光伏輸出功率與太陽輻射強度、溫度、濕度和風況等因素息息相關,但影響程度存在差異[14].然而實際中影響光伏發(fā)電功率的氣象因素不止于此.列舉本文中研究的可能影響光伏出力的氣象因素如表1所示.
表1 氣象因素列表
依據(jù)BiLSTM神經(jīng)網(wǎng)絡在時序數(shù)據(jù)分析中強大的適應性,與KNN算法相結合,構建光伏出力短期預測模型,確定參數(shù)并進行訓練測試,得出預測結果.預測流程圖如圖3所示.
圖3 預測模型流程圖
為驗證本算法的科學性和實用性,本文實驗在Tensorflow1.8.0、Python3.6的運行環(huán)境下,并以某地區(qū)2010年1月1日到2010年12月31日的525 576光伏發(fā)電功率和氣象數(shù)據(jù)為依托進行驗證.數(shù)據(jù)采集周期為1分鐘,除記錄發(fā)電功率值外,每條歷史數(shù)據(jù)還包括時刻、氣溫、濕度等信息.最后與經(jīng)典的KNN預測模型[15]、BiLSTM網(wǎng)絡模型、DBN預測模型[10]、以及PCA-LSTM預測結果[11]進行對比分析.
以2010年1月1日至2010年11月30日光伏發(fā)電數(shù)據(jù)及氣象數(shù)據(jù)為訓練集,以2010年12月1日至31日數(shù)據(jù)作為測試數(shù)據(jù)集用于驗證模型的有效性.
為了準確評估各類模型的預測效果,本文選用了3個評價指標,分別為:均方誤差(MSE)、均方根誤差(RMSE)、決定系數(shù)R2.各評價指標的表達式如下:
式中,yi實際光伏發(fā)電功率,為預測發(fā)電功率,為真實發(fā)光功率的平均值,N為測試集的大小.其中,MSE、RMSE的值越小,R2越接近1,表征模型的預測能力越好.
本文所提預測方法依附于BiLSTM模型強大的“記憶”功能,故該模型參數(shù)的設置是實現(xiàn)高預測準確度的前提.文獻[16]指出,LSTM 主要由以下參數(shù)確定:輸入層維數(shù)、輸出層維數(shù)、輸入層時間步長、模型的層數(shù)以及每層維數(shù),BiLSTM亦然.其中,輸入層維數(shù)即輸入變量的個數(shù),則該值等于每次輸入BiLSTM模型的氣象因素個數(shù)加1;輸出層數(shù)值為1.輸入層時間步長、模型的層數(shù)以及每層維數(shù)3項參數(shù)將通過控制變量法進行逐步調優(yōu),得出相應數(shù)值.
(1)輸入層時間步長
輸入層時間步長即用于預測當前時刻光伏出力的輸入?yún)?shù)的長度.若該值過小,則不能充分發(fā)揮BiLSTM在解決時間序列長期依賴問題中的優(yōu)勢;反之,則因隱含層信息容量有限導致訓練時間過長,準確率降低.圖4為輸入層時間步長對預測準確度的影響.由RMSE及R2結果可得,當輸入時間步長為6時,預測效果最好.其含義為該分鐘的光伏出力由前6分鐘的氣象數(shù)據(jù)和發(fā)電數(shù)據(jù)預測得出.
圖4 不同時間步長下的預測結果
(2)模型的層數(shù)以及每層維數(shù)
模型的層數(shù)以及每層維數(shù)的選取對于最終的預測精度有直接影響.模型的層數(shù)越多,非線性擬合能力越強,但復雜度也會隨之增加.確定模型的層數(shù)及其維數(shù)時,按以下實驗步驟進行:第1步,確定單層模型時維數(shù)的最佳值并將其固定;第2步,增加一層隱藏層,并在第一步基礎之上確定該層最佳維數(shù);以此類推,預測誤差最小時所對應的層數(shù)及其維數(shù)為模型最終參數(shù).實驗結果如圖5所示.
圖5 不同層參數(shù)下的預測結果
實驗表明:模型的層數(shù)為2,維數(shù)分別為50、40時,BiLSTM模型預測性能最佳.最終BiLSTM模型相關參數(shù)設置如表2所示.
表2 相關參數(shù)設置
采用KNN方法實現(xiàn)影響光伏出力氣象因素的遴選,達到高效利用相關因子提高預測準確度的目的.K值不同即選取的相關氣象因素個數(shù)不同,將不同K值下選取的因子及訓練結果記錄如下.表3為不同K值遴選出的氣象因素,表4給出了不同K值時的預測誤差.
表3 不同K值遴選出的氣象因素
表4 不同K值所得實驗結果
由以上結果可得,當K=1時,選取的氣象因素為THSW指數(shù),即溫度、濕度、輻射、風4個參數(shù)綜合起來的參數(shù).在該數(shù)據(jù)集所有的氣象因素中,僅此特征含有與光伏發(fā)電功率相關性最強的因素——太陽輻射強度,則實驗結果與1.3 中進行的理論分析完全吻合,再次驗證該算法的準確性;當K=2時,選取的氣象因素為THSW指數(shù)和Temp_Out(外界溫度)項,可見溫度是影響光伏發(fā)電的另一個重要因素;當K=10時,預測效果最佳,此時R2的值可高達0.981 37,說明合理高效利用氣象因素對光伏出力的影響,有助于預測精度的提高:遴選出影響光伏發(fā)電功率相關性較強的氣象因素作為輸入,剔除相關性較弱的因子,實現(xiàn)光伏發(fā)電功率與氣象影響因子關聯(lián)關系研究的基礎上,預測準確度也因此得以提高.結果顯示,是否降雨、降雨量大小、以及氣壓與光伏出力相關性較弱,加入上述因素作為輸入結果未升反降,為得到最佳預測結果,最終確定除此之外的10項氣象因素為影響光伏出力的關鍵因素.
同時,本文利用KNN-BiLSTM方法得到的預測值與其實際值進行對比,如圖6所示.圖中,紅色實線為預測功率,藍色實線為實際功率.
圖6 KNN-BiLSTM 仿真結果
為了驗證KNN-BiLSTM的有效性,與KNN、DBN、BiLSTM、PCA-LSTM相比,以完成對模型的評估工作,性能指標對比如表5,預測結果如圖7.可見,采用任一指標衡量,本文提出的算法均具有最佳性能.再結合圖7,可以看出DBN、KNN預測精度一般,在發(fā)電量峰值谷值均有較大偏差.而BiLSTM、PCALSTM 雖預測精度有所提高,但輸出功率出現(xiàn)波動時偏差較大.所以,各項誤差均有明顯改善,優(yōu)于其他模型.
表5 各算法性能指標對比表
圖7 各算法仿真結果對比圖
本文采用KNN-BiLSTM方法通過歷史光伏發(fā)電功率、氣象因素作為輸入,預測光伏出力,可得結論:
1)該方法有效解決了氣象因素挖掘不深入、利用率不高等問題,實現(xiàn)了充分挖掘氣象因素對光伏出力的影響,達到提高預測精度的目的.2)該方法考慮發(fā)電數(shù)據(jù)的時序性,選擇BiLSTM作為模型的核心算法,結果表明,與KNN、BiLSTM預測模型相比,預測效果有較大提升;與DBN 及PCA-LSTM相比,具有更好的預測性能,預測誤差更小,準確度更高.