陳駿嚎,張 娜,劉廣忱,郭力萍,李靜宇
(內蒙古工業大學 內蒙古自治區電能變換傳輸與控制重點實驗室,內蒙 古 呼和浩特 010000)
光伏發電在電力行業的應用發展得愈加迅速[1]。光伏電站的大規模并網給電網帶來了巨大沖擊,對電網日前調度計劃的合理性和經濟性提出挑戰。準確地預測光伏發電系統短期輸出功率,有助于電網調度中心合理安排日前調度計劃,減小并網光伏電站的經濟損失,對電力系統的穩定運行具有重大意義[2]。
目前,國內外學者對光伏輸出功率預測技術進行了大量研究。根據預測時間尺度的長短,可以把預測方法分為超短期(0~4 h)、短期(0~72 h)和中長期(30 d~1 a)[3]。根據預測方法的不同,光伏輸出功率預測主要分為物理法、統計法和組合法。物理法是依據光伏電池的發電原理,通過氣象數據信息與光伏電站的信息建立物理模型,經過計算得到光伏發電系統的輸出功率值[4],[5]。物理建模方法比較依賴地理位置信息和氣象數據的準確性,抗干擾能力差。統計法是通過輸入氣象因素和光伏發電系統輸出功率等歷史數據,建立輸入與輸出之間的映射模型,實現對光伏發電系統輸出功率的預測[6]~[10]。文獻[8]提出一種提升小波變換與BP神經網絡相結合的預測方法。該方法可以有效地提高光伏超短期輸出功率預測的精度,但BP神經網絡存在收斂速度慢和易陷入局部極值的問題。文獻[9]提出一種基于變分模態分解(VMD)和雙重注意力機制LSTM的光伏短期輸出功率預測方法。這種方法提升了單步、多步功率預測精度,但其計算成本較高,且分解序列預測再疊加的同時也產生了誤差。組合預測法是綜合考慮各模型的優缺點,取長補短,建立組合預測模型[11]~[16]。文獻[12]將天氣過程分類,繼而建立CNNLSTM組合預測模型,實現了對不同天氣類型的光伏輸出功率預測。該方法的特異性不強,沒能針對不同天氣建立具有特異性的組合預測模型。
為了解決預測模型收斂速度慢、易陷入局部極值的問題,本文選擇學習速率較快、學習參數簡化的極限學習機(Extreme Learning Machine,ELM)作為基礎預測模型。首先對數據進行分析、處理;然后介紹ELM的基本原理,接著對麻雀搜索算法(Sparrow Search Algorithm,SSA)進行改進;提出基于精英反向策略的麻雀搜索算法 (Elite Opposite Sparrow Search Algorithm,EOSSA); 最后建立EOSSA-ELM預測模型。通過算例的對比仿真分析表明,本文提出的EOSSA算法尋優能力更強,所建立的EOSSA-ELM光伏短期輸出功率預測模型的預測精度更高。
根據光伏發電特性可知,光伏發電系統輸出功率明顯地受氣象因素制約,主要有太陽輻照度、溫度、濕度、風速和風向等。不同氣象因素對輸出功率的影響程度不同,選取相關性較強的氣象因素可以有效地減小預測誤差。本文采用皮爾森相關系數對所選地區光伏發電系統的輸出功率與各個氣象因素之間的相關性進行分析,結果如表1所示。

表1 氣象因素的皮爾森系數Table 1 Pearson coefficient of meteorological factors
由表1可知,本文選擇相關性較強的太陽輻照度、溫度、濕度和風速作為模型的輸入向量。
根據皮爾森相關系數計算結果,確定聚類樣本輸入特征向量為日最大、最小和平均太陽輻照度,日最高、最低和平均溫度,日平均風速,日平均濕度。特征向量A的表達式為

式中:Gmax,Gmin,Gavg分別為日最大太陽輻照度、最小太陽輻照度、平均太陽輻照度;Tmax,Tmin,Tavg分別為日最高溫度、最低溫度、平均溫度;Vavg為日平均風速;Havg為日平均濕度。
特征向量A的維數較多,且相關性較大。主成分分析(PCA)是一種應用較為廣泛的數據降維方法,可以很好地解決維數災難、數據冗余問題[17]。
對特征向量A進行主成分分析,各個成分累計貢獻率如圖1所示。

圖1 主成分分析累計貢獻率Fig.1 Cumulative contribution rate of principal component analysis
由圖1可知,當選取主成分數n=3時,成分累計貢獻率為90.578 1%,可以代表原始數據的絕大部分信息。本文將所選的3個主成分作為選取相似日數據的輸入向量。
選擇與待預測日特征相似的歷史數據訓練模型可以大幅度提升預測精度。本文采用K均值聚類算法選擇相似日[18]。通過對特征向量A的去冗余、降維處理,將所選的3個主成分作為樣本數據聚類的輸入向量,對樣本進行聚類。K均值聚類的主要思想:首先,通過K-means人為給定聚類數目K,隨機選取K個中心;再通過計算樣本點與中心的距離,給每個中心點分配距離它較近的樣本點;然后,更新聚類中心直到每個簇的均值向量,即聚類中心不再更新時迭代結束;最后產生K個特征不同的簇。然而,K均值算法的聚類數目通常須要人為給定,為了避免人為因素產生的誤差,本文通過引入手肘法的誤差平方和指標(SSE)來確定K值[19]。SSE表達式為

式中:Ci為第i個簇;x為Ci中的樣本點;mi為Ci的質心(Ci中樣本的均值向量);SSE為所有樣本的聚類誤差。
對原始數據進行聚類時,SSE隨聚類數K的變化如圖2所示。

圖2 K-mean聚類SSE變化圖Fig.2 K-means clustering SSE variation diagram
由圖2可知,隨著K值的增大,SSE逐漸減小;當K<5時,SSE下降幅度較大,當K>5時,SSE下降幅度較小。這是由于隨著聚類數的增加,樣本劃分愈加精細,各簇內的相似程度也越高,因此SSE不斷減小。當K值小于真實聚類數時,K的增加會大幅提高每個簇內的聚合程度,因此SSE會大幅下降。當K值大于真實聚類數后,隨著K的增加,導致對聚合度的影響變小,SSE下降幅度也減小。因此,幅度變換的轉折點就是真實的聚類數,所以選擇聚類數為5。
極限學習機(ELM)是由文獻[20]提出的基于單隱層前饋神經網絡(SLFNs)的算法,其網絡結構如圖3所示。

圖3 ELM拓撲結構Fig.3 Topological structure of ELM
圖3中,N為輸入層和輸出層節點個數;L為隱含層節點個數;j為隱含層中第j個節點;wj為第j個隱含層節點與輸入層節點的權值(以下簡稱為輸入權值);βj為第j個隱含層節點與輸出層節點的權值(以下簡稱為輸出權值)。
假設有N個樣本點(xi,yi),輸入變量為xi=[xi1,xi2,…,xiN]T∈Rn;期望輸出為yi=[yi1,yi2,…,yiN]T∈Rm,則輸出函數的表達式為

式中:H為隱含層輸出矩陣;β為輸出權值;T為網絡計算輸出。
H,β,T的表達式分別為


式中:H?為H的Moore-Penrose廣義逆。
極限學習機的特點是輸入層與隱含層間的權值及隱含層的閾值為隨機給定。初始權值和閾值對預測精度影響很大,因此采用改進的麻雀搜索算法對極限學習機進行優化以提高預測的精度。
麻雀搜索算法是一種依據麻雀捕食與反捕食行為的新型群智能優化(SSA)算法[21]。SSA算法遵循以下準則:①種群分為3種類型,即發現者、追隨者和預警者;②發現者為整個種群提供覓食方向和區域;③發現者和追隨者按一定固定比例分配,發現者和追隨者可以轉換,但比例不變,預警者按一定比例隨機產生;④一旦有捕食者出現,個體發出預警,預警值大于安全值,發現者帶領追隨者轉移覓食;⑤追隨者總是能搜索到發現者,并在周圍覓食或爭奪資源;⑥意識到危險,邊緣麻雀會向安全區移動,以獲得更好位置。
從以上規則可以看出,發現者對于整個種群尋優起著至關重要的作用,發現者位置更新的表達式為

式中:Xtn,d,Xt+1n,d分別為種群在第t次和t+1次迭代時,第n只麻雀在第d維變量的位置;α為(0,1]之間的隨機數;iter max為最大迭代代數;Q為服從正態分布的隨機數;L為元素全是1的1行d維矩陣;R2為預警值,通常是[0,1]內的隨機數;ST為安全值,通常為[0.5,1]內的隨機數,當R2<ST時,表示發現者處于安全位置,可以大范圍覓食;當R2>ST時,表明有捕食者出現,種群須轉移到安全的地方覓食。
(1)改進策略一:動態安全值
在SSA算法中,發現者負責尋找食物,并為整個種群提供覓食區域和方向,因此發現者的位置更新極為重要。發現者位置更新與安全值ST有關,在不同迭代時期選擇不同的安全值可以幫助種群跳出局部最優解。本文ST選擇非線性遞減方式。ST的計算式為

式中:ST取值為[0.5,1];STmax為1;STmin為0.5;t為當前迭代數。
在迭代初期,ST取值較大,保證種群較大概率在安全位置大范圍搜素最優解。在迭代后期,ST較小,種群可以較大概率跳出當前位置,跳出局部最優解。
(2)改進策略二:反向學習
SSA算法中,個體每次迭代后位置更新都與之前密切相關。如果淘汰較差個體,選出更加優秀的個體加入種群,就可以保證種群以更快的速度找到最優區域,尋找到最優解。
反向學習策略是針對一個問題的可行解生成它的反向解,通過比較其優劣,選出更優者作為下一代的個體[22]。反向學習策略基本定義如下。
定義1:反向點


計算生成的反向解若超出上邊界,則取上邊界;若低于下邊界,則取下邊界值。
SSA算法迭代過程中,每一代種群及精英個體的優劣對種群位置更新影響很大。因此,通過生成精英反向解有助于探索更多的優質空間,從而提高種群的多樣性。
(3)EOSSA算法運行
EOSSA算法運行步驟如下:①初始化種群參數,計算初始種群的適應度并排序,選出最好適應度與最差適應度的個體;②隨機產生預警值R,按公式生成安全值ST,并更新種群位置以及適應度值;③對麻雀種群進行精英反向學習,挑選較好的個體組成新種群進行下一次迭代;④判斷是否達到精度或達到最大迭代次數,輸出最好個體以及它的適應度值。
圖4所示為EOSSA算法運行流程。

圖4 EOSSA流程圖Fig.4 Flow chart of EOSSA
EOSSA-ELM預測模型的預測步驟如下。
①收集所選光伏電站的歷史輸出功率與氣象數據,為了消除量綱的影響,對數據進行歸一化處理。②選擇用于聚類的氣象特征向量,并進行PCA降維處理。③采用K均值聚類選取相似日,將與待預測日處于一類的數據分為訓練集和測試集。④采用EOSSA對ELM進行參數尋優,并建立EOSSA-ELM預測模型。
基于EOSSA-ELM的光伏短期輸出功率預測流程如圖5所示。

圖5 EOSSA-ELM預測流程圖Fig.5 Flow chart of EOSSA-ELM prediction
本文選取澳大利亞沙漠太陽能研究中心(DKASC)某光伏電站作為研究對象。選取2014年1月1日-2015年12月31日光伏發電系統的輸出功率與氣象數據為原始數據。光伏發電系統輸出功率與太陽輻照度有關,因此選取每天8:00-17:00,采樣間隔1 h的數據進行研究。選取待預測日為2015年9月29日(晴天)和2015年12月17日(雨天)。
本文建立并訓練Elman神經網絡模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型,各模型的輸入向量為太陽輻照度、溫度、濕度和風速,輸出為光伏發電功率。
預測模型參數設定:ELM通過多次試驗確定為4-11-1結構,Elman采取與ELM一樣的結構。傳統ELM輸入權值及閾值為隨機給定,優化后的ELM各參數經優化后給定。EOSSA算法種群規模為50,迭代100次,生產者占比20%,剩余為追隨者,預警者隨機產生,占比10%,ST最大為1,最小為0.5。
本文采用均方根誤差(RMSE)和平均絕對百分比誤差(MAPE)作為模型的評價指標[23],[24]。

2015年9月29日和12月17日,光伏發電系統輸出功率的真實值,利用Elman神經網絡模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型得到的光伏發電系統輸出功率預測值隨時間的變化情況如圖6所示。

圖6 預測日光伏輸出功率實際值和各個模型的預測值隨時間的變化Fig.6 The change of the actual value of photovoltaic output power and the predicted value of each model with time on the forecast day
由圖6可見,不論哪種天氣條件,各模型預測值均能跟隨真實值曲線趨勢。在晴天條件下,隨著時間推移,光伏發電系統輸出功率先增大后減小,整體呈現平緩趨勢;各個模型的擬合精度都比較高。這是由于晴天條件下,各氣象因素較為穩定,光伏發電系統輸出功率波動較小。在雨天條件下,隨著時間推移,光伏發電系統輸出功率波動較大。在11:00和15:00,4種模型的擬合精度都比較低;在其余時刻,EOSSA-ELM模型預測曲線比其他模型的預測曲線更加接近真實曲線。這證明了對ELM模型采用EOSSA算法優化后,預測性能更佳。
2015年9月29日和12月17日,Elman神經網絡模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型光伏發電系統輸出功率預測值與真實值的相對誤差隨時間變化如圖7所示。

圖7 預測日各個模型的預測相對誤差Fig.7 The prediction relative error of each model on the forecast day
由圖7可知,在晴天條件下,ELM相關的3種模型的相對誤差基本都保持在-5%~5%,唯有Elman模型誤差相對較大。在雨天條件下,尤其在9:00,4種模型的相對誤差均較高。這可能是由于氣象變化劇烈或樣本數據過少而導致。Elman和ELM模型在雨天比晴天誤差高出很多,證明了其泛化能力不強,不能適應各種天氣狀況。對于預測的10個時間點,EOSSA-ELM模型相對誤差有9個保持在-10%~10%,與其他模型相比,預測精度有很大提升。
2015年9月29日和12月17日,Elman神經網絡模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型的預測精度如表2所示。

表2 各模型評估結果Table 2 Evaluation results of each model
由表2可知,晴天天氣下的各誤差指標均優于雨天;與晴天天氣相比,雨天天氣時,Elman模型的RMSE和MAPE分別上升了0.433 6 kW和31.1%;ELM模型RMSE和MAPE分別上升了0.319 8 kW和22.89%。這是由于Elman神經網絡采用梯度下降算法,存在訓練速度慢和容易陷入局部極值的缺點,對神經網絡的訓練較難達到全局最優;ELM模型訓練速度快,但初始權值、閾值對預測結果影響很大。因此,兩者對不同天氣狀況下的光伏發電系統輸出功率預測效果不佳,泛化能力不強。經過改進后的ELM,對比傳統ELM精度都有所提升。在晴天條件下,EOSSA-ELM模型與Elman模型相比,RMSE和MAPE分別下降了0.095 4 kW和1.29%;與ELM模型和SSA-ELM模型相比,分別下降了0.075 2,0.046 9 kW和1.09%,0.58%。 在雨天條件下,EOSSA-ELM模型與Elman模型相比,RMSE和MAPE分別下降了0.348 1 kW和25.77%;與ELM模型和SSA-ELM模型相比,分別下降了0.2141,0.0749 kW和17.16%,3.51%。這表明EOSSA-ELM模型的預測誤差較小,模型魯棒性更好。
ELM和Elman神經網絡模型的運行時間分別為1.37 s和7.02 s。由此可見,傳統ELM明顯快于Elman神經網絡模型。采用改進算法后,SSAELM和EOSSA-ELM模型的運行時間分別為53.27 s和204.9 s,雖然運行時間變長,但預測精度得到了明顯改善。
圖8為采取動態安全值策略后,EOSSA算法的安全值隨進化代數的變化情況。

圖8 動態安全值Fig.8 Dynamic safety value
由圖8可知,安全值隨進化代數呈現非線性遞減趨勢。本文設定:在迭代初期ST保持較大的值,而預警值R2為[0,1];R2大概率小于安全值ST,可保證種群在安全區域尋優;到后期以較小的安全值ST,就可保證種群有幾率可以跳離當前位置,從而減小種群陷入局部最優解的概率。
圖9為采取精英反向學習策略后,EOSSA算法新增種群占優個數隨進化代數的變化情況。

圖9 反向學習結果Fig.9 The result of opposition-based learning
由圖9可知,隨著種群不斷進化,新增種群占優個數呈現先急劇下降后逐漸平緩下降的趨勢。這證明每次迭代結束后,有比種群個體更好的反向解個體存在。剛開始迭代時,由精英反向學習策略產生反向解個體,在種群中適應度較好的個體占半數以上。隨著迭代次數的不斷增加,這些個體被不斷添加到種群中,使種群更加快速接近最優解區域,因而后面新增種群占優個數下降趨勢平緩,而標準SSA算法只能通過不斷迭代更新位置來逼近最優解區域。相比之下,改進后的算法尋優速度會快很多。2015年9月29日和12月17日,SSA和EOSSA算法的收斂曲線如圖10所示。

圖10 SSA和EOSSA算法收斂曲線Fig.10 Convergence curves of SSA and EOSSA algorithms
由圖10(a)可知,EOSSA算法的收斂速度略快于SSA,在最后的收斂精度上略強于SSA算法。這是由于在晴天光伏出力較為平緩,算法的尋優能力顯示不出很大的差別。由圖10(b)可知,與SSA算法相比,EOSSA算法在收斂速度以及跳出局部極值方面都有明顯改善。正是由于動態安全值ST和精英反向學習兩種策略相結合,EOSSA算法才表現出良好的的全局尋優能力。
從圖10的收斂曲線也可以看出,改進后的算法跳出局部極值的能力得到了加強,改進后的EOSSA算法的收斂速度得到明顯改善。
為了提高光伏發電系統短期輸出功率的預測精度,本文在SSA算法的基礎上,提出了EOSSA算法,建立了Elman神經網絡模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型。利用這4種模型對光伏短期輸出功率進行預測,分析了算法的尋優能力及各模型的預測性能。
①與標準SSA算法相比,EOSSA算法的收斂速度更快,尋優能力更強,證明了動態安全值和精英反向學習策略的有效性。
②氣象因素對模型的預測性能有很大影響。晴天條件下,各模型均能取得較好的預測效果;在雨天條件下,未經優化的模型精度下降,泛化能力不強。
③在晴、雨兩種天氣條件下,與Elman,ELM,SSA-ELM模型相比,EOSSA-ELM模型的預測精度較高。這證明了本文提出的預測模型魯棒性較好。