陳駿嚎,張 娜,劉廣忱,郭力萍,李靜宇
(內(nèi)蒙古工業(yè)大學(xué) 內(nèi)蒙古自治區(qū)電能變換傳輸與控制重點實驗室,內(nèi)蒙 古 呼和浩特 010000)
光伏發(fā)電在電力行業(yè)的應(yīng)用發(fā)展得愈加迅速[1]。光伏電站的大規(guī)模并網(wǎng)給電網(wǎng)帶來了巨大沖擊,對電網(wǎng)日前調(diào)度計劃的合理性和經(jīng)濟性提出挑戰(zhàn)。準確地預(yù)測光伏發(fā)電系統(tǒng)短期輸出功率,有助于電網(wǎng)調(diào)度中心合理安排日前調(diào)度計劃,減小并網(wǎng)光伏電站的經(jīng)濟損失,對電力系統(tǒng)的穩(wěn)定運行具有重大意義[2]。
目前,國內(nèi)外學(xué)者對光伏輸出功率預(yù)測技術(shù)進行了大量研究。根據(jù)預(yù)測時間尺度的長短,可以把預(yù)測方法分為超短期(0~4 h)、短期(0~72 h)和中長期(30 d~1 a)[3]。根據(jù)預(yù)測方法的不同,光伏輸出功率預(yù)測主要分為物理法、統(tǒng)計法和組合法。物理法是依據(jù)光伏電池的發(fā)電原理,通過氣象數(shù)據(jù)信息與光伏電站的信息建立物理模型,經(jīng)過計算得到光伏發(fā)電系統(tǒng)的輸出功率值[4],[5]。物理建模方法比較依賴地理位置信息和氣象數(shù)據(jù)的準確性,抗干擾能力差。統(tǒng)計法是通過輸入氣象因素和光伏發(fā)電系統(tǒng)輸出功率等歷史數(shù)據(jù),建立輸入與輸出之間的映射模型,實現(xiàn)對光伏發(fā)電系統(tǒng)輸出功率的預(yù)測[6]~[10]。文獻[8]提出一種提升小波變換與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的預(yù)測方法。該方法可以有效地提高光伏超短期輸出功率預(yù)測的精度,但BP神經(jīng)網(wǎng)絡(luò)存在收斂速度慢和易陷入局部極值的問題。文獻[9]提出一種基于變分模態(tài)分解(VMD)和雙重注意力機制LSTM的光伏短期輸出功率預(yù)測方法。這種方法提升了單步、多步功率預(yù)測精度,但其計算成本較高,且分解序列預(yù)測再疊加的同時也產(chǎn)生了誤差。組合預(yù)測法是綜合考慮各模型的優(yōu)缺點,取長補短,建立組合預(yù)測模型[11]~[16]。文獻[12]將天氣過程分類,繼而建立CNNLSTM組合預(yù)測模型,實現(xiàn)了對不同天氣類型的光伏輸出功率預(yù)測。該方法的特異性不強,沒能針對不同天氣建立具有特異性的組合預(yù)測模型。
為了解決預(yù)測模型收斂速度慢、易陷入局部極值的問題,本文選擇學(xué)習(xí)速率較快、學(xué)習(xí)參數(shù)簡化的極限學(xué)習(xí)機(Extreme Learning Machine,ELM)作為基礎(chǔ)預(yù)測模型。首先對數(shù)據(jù)進行分析、處理;然后介紹ELM的基本原理,接著對麻雀搜索算法(Sparrow Search Algorithm,SSA)進行改進;提出基于精英反向策略的麻雀搜索算法 (Elite Opposite Sparrow Search Algorithm,EOSSA); 最后建立EOSSA-ELM預(yù)測模型。通過算例的對比仿真分析表明,本文提出的EOSSA算法尋優(yōu)能力更強,所建立的EOSSA-ELM光伏短期輸出功率預(yù)測模型的預(yù)測精度更高。
根據(jù)光伏發(fā)電特性可知,光伏發(fā)電系統(tǒng)輸出功率明顯地受氣象因素制約,主要有太陽輻照度、溫度、濕度、風速和風向等。不同氣象因素對輸出功率的影響程度不同,選取相關(guān)性較強的氣象因素可以有效地減小預(yù)測誤差。本文采用皮爾森相關(guān)系數(shù)對所選地區(qū)光伏發(fā)電系統(tǒng)的輸出功率與各個氣象因素之間的相關(guān)性進行分析,結(jié)果如表1所示。
表1 氣象因素的皮爾森系數(shù)Table 1 Pearson coefficient of meteorological factors
由表1可知,本文選擇相關(guān)性較強的太陽輻照度、溫度、濕度和風速作為模型的輸入向量。
根據(jù)皮爾森相關(guān)系數(shù)計算結(jié)果,確定聚類樣本輸入特征向量為日最大、最小和平均太陽輻照度,日最高、最低和平均溫度,日平均風速,日平均濕度。特征向量A的表達式為
式中:Gmax,Gmin,Gavg分別為日最大太陽輻照度、最小太陽輻照度、平均太陽輻照度;Tmax,Tmin,Tavg分別為日最高溫度、最低溫度、平均溫度;Vavg為日平均風速;Havg為日平均濕度。
特征向量A的維數(shù)較多,且相關(guān)性較大。主成分分析(PCA)是一種應(yīng)用較為廣泛的數(shù)據(jù)降維方法,可以很好地解決維數(shù)災(zāi)難、數(shù)據(jù)冗余問題[17]。
對特征向量A進行主成分分析,各個成分累計貢獻率如圖1所示。
圖1 主成分分析累計貢獻率Fig.1 Cumulative contribution rate of principal component analysis
由圖1可知,當選取主成分數(shù)n=3時,成分累計貢獻率為90.578 1%,可以代表原始數(shù)據(jù)的絕大部分信息。本文將所選的3個主成分作為選取相似日數(shù)據(jù)的輸入向量。
選擇與待預(yù)測日特征相似的歷史數(shù)據(jù)訓(xùn)練模型可以大幅度提升預(yù)測精度。本文采用K均值聚類算法選擇相似日[18]。通過對特征向量A的去冗余、降維處理,將所選的3個主成分作為樣本數(shù)據(jù)聚類的輸入向量,對樣本進行聚類。K均值聚類的主要思想:首先,通過K-means人為給定聚類數(shù)目K,隨機選取K個中心;再通過計算樣本點與中心的距離,給每個中心點分配距離它較近的樣本點;然后,更新聚類中心直到每個簇的均值向量,即聚類中心不再更新時迭代結(jié)束;最后產(chǎn)生K個特征不同的簇。然而,K均值算法的聚類數(shù)目通常須要人為給定,為了避免人為因素產(chǎn)生的誤差,本文通過引入手肘法的誤差平方和指標(SSE)來確定K值[19]。SSE表達式為
式中:Ci為第i個簇;x為Ci中的樣本點;mi為Ci的質(zhì)心(Ci中樣本的均值向量);SSE為所有樣本的聚類誤差。
對原始數(shù)據(jù)進行聚類時,SSE隨聚類數(shù)K的變化如圖2所示。
圖2 K-mean聚類SSE變化圖Fig.2 K-means clustering SSE variation diagram
由圖2可知,隨著K值的增大,SSE逐漸減??;當K<5時,SSE下降幅度較大,當K>5時,SSE下降幅度較小。這是由于隨著聚類數(shù)的增加,樣本劃分愈加精細,各簇內(nèi)的相似程度也越高,因此SSE不斷減小。當K值小于真實聚類數(shù)時,K的增加會大幅提高每個簇內(nèi)的聚合程度,因此SSE會大幅下降。當K值大于真實聚類數(shù)后,隨著K的增加,導(dǎo)致對聚合度的影響變小,SSE下降幅度也減小。因此,幅度變換的轉(zhuǎn)折點就是真實的聚類數(shù),所以選擇聚類數(shù)為5。
極限學(xué)習(xí)機(ELM)是由文獻[20]提出的基于單隱層前饋神經(jīng)網(wǎng)絡(luò)(SLFNs)的算法,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 ELM拓撲結(jié)構(gòu)Fig.3 Topological structure of ELM
圖3中,N為輸入層和輸出層節(jié)點個數(shù);L為隱含層節(jié)點個數(shù);j為隱含層中第j個節(jié)點;wj為第j個隱含層節(jié)點與輸入層節(jié)點的權(quán)值(以下簡稱為輸入權(quán)值);βj為第j個隱含層節(jié)點與輸出層節(jié)點的權(quán)值(以下簡稱為輸出權(quán)值)。
假設(shè)有N個樣本點(xi,yi),輸入變量為xi=[xi1,xi2,…,xiN]T∈Rn;期望輸出為yi=[yi1,yi2,…,yiN]T∈Rm,則輸出函數(shù)的表達式為
式中:H為隱含層輸出矩陣;β為輸出權(quán)值;T為網(wǎng)絡(luò)計算輸出。
H,β,T的表達式分別為
式中:H?為H的Moore-Penrose廣義逆。
極限學(xué)習(xí)機的特點是輸入層與隱含層間的權(quán)值及隱含層的閾值為隨機給定。初始權(quán)值和閾值對預(yù)測精度影響很大,因此采用改進的麻雀搜索算法對極限學(xué)習(xí)機進行優(yōu)化以提高預(yù)測的精度。
麻雀搜索算法是一種依據(jù)麻雀捕食與反捕食行為的新型群智能優(yōu)化(SSA)算法[21]。SSA算法遵循以下準則:①種群分為3種類型,即發(fā)現(xiàn)者、追隨者和預(yù)警者;②發(fā)現(xiàn)者為整個種群提供覓食方向和區(qū)域;③發(fā)現(xiàn)者和追隨者按一定固定比例分配,發(fā)現(xiàn)者和追隨者可以轉(zhuǎn)換,但比例不變,預(yù)警者按一定比例隨機產(chǎn)生;④一旦有捕食者出現(xiàn),個體發(fā)出預(yù)警,預(yù)警值大于安全值,發(fā)現(xiàn)者帶領(lǐng)追隨者轉(zhuǎn)移覓食;⑤追隨者總是能搜索到發(fā)現(xiàn)者,并在周圍覓食或爭奪資源;⑥意識到危險,邊緣麻雀會向安全區(qū)移動,以獲得更好位置。
從以上規(guī)則可以看出,發(fā)現(xiàn)者對于整個種群尋優(yōu)起著至關(guān)重要的作用,發(fā)現(xiàn)者位置更新的表達式為
式中:Xtn,d,Xt+1n,d分別為種群在第t次和t+1次迭代時,第n只麻雀在第d維變量的位置;α為(0,1]之間的隨機數(shù);iter max為最大迭代代數(shù);Q為服從正態(tài)分布的隨機數(shù);L為元素全是1的1行d維矩陣;R2為預(yù)警值,通常是[0,1]內(nèi)的隨機數(shù);ST為安全值,通常為[0.5,1]內(nèi)的隨機數(shù),當R2<ST時,表示發(fā)現(xiàn)者處于安全位置,可以大范圍覓食;當R2>ST時,表明有捕食者出現(xiàn),種群須轉(zhuǎn)移到安全的地方覓食。
(1)改進策略一:動態(tài)安全值
在SSA算法中,發(fā)現(xiàn)者負責尋找食物,并為整個種群提供覓食區(qū)域和方向,因此發(fā)現(xiàn)者的位置更新極為重要。發(fā)現(xiàn)者位置更新與安全值ST有關(guān),在不同迭代時期選擇不同的安全值可以幫助種群跳出局部最優(yōu)解。本文ST選擇非線性遞減方式。ST的計算式為
式中:ST取值為[0.5,1];STmax為1;STmin為0.5;t為當前迭代數(shù)。
在迭代初期,ST取值較大,保證種群較大概率在安全位置大范圍搜素最優(yōu)解。在迭代后期,ST較小,種群可以較大概率跳出當前位置,跳出局部最優(yōu)解。
(2)改進策略二:反向?qū)W習(xí)
SSA算法中,個體每次迭代后位置更新都與之前密切相關(guān)。如果淘汰較差個體,選出更加優(yōu)秀的個體加入種群,就可以保證種群以更快的速度找到最優(yōu)區(qū)域,尋找到最優(yōu)解。
反向?qū)W習(xí)策略是針對一個問題的可行解生成它的反向解,通過比較其優(yōu)劣,選出更優(yōu)者作為下一代的個體[22]。反向?qū)W習(xí)策略基本定義如下。
定義1:反向點
計算生成的反向解若超出上邊界,則取上邊界;若低于下邊界,則取下邊界值。
SSA算法迭代過程中,每一代種群及精英個體的優(yōu)劣對種群位置更新影響很大。因此,通過生成精英反向解有助于探索更多的優(yōu)質(zhì)空間,從而提高種群的多樣性。
(3)EOSSA算法運行
EOSSA算法運行步驟如下:①初始化種群參數(shù),計算初始種群的適應(yīng)度并排序,選出最好適應(yīng)度與最差適應(yīng)度的個體;②隨機產(chǎn)生預(yù)警值R,按公式生成安全值ST,并更新種群位置以及適應(yīng)度值;③對麻雀種群進行精英反向?qū)W習(xí),挑選較好的個體組成新種群進行下一次迭代;④判斷是否達到精度或達到最大迭代次數(shù),輸出最好個體以及它的適應(yīng)度值。
圖4所示為EOSSA算法運行流程。
圖4 EOSSA流程圖Fig.4 Flow chart of EOSSA
EOSSA-ELM預(yù)測模型的預(yù)測步驟如下。
①收集所選光伏電站的歷史輸出功率與氣象數(shù)據(jù),為了消除量綱的影響,對數(shù)據(jù)進行歸一化處理。②選擇用于聚類的氣象特征向量,并進行PCA降維處理。③采用K均值聚類選取相似日,將與待預(yù)測日處于一類的數(shù)據(jù)分為訓(xùn)練集和測試集。④采用EOSSA對ELM進行參數(shù)尋優(yōu),并建立EOSSA-ELM預(yù)測模型。
基于EOSSA-ELM的光伏短期輸出功率預(yù)測流程如圖5所示。
圖5 EOSSA-ELM預(yù)測流程圖Fig.5 Flow chart of EOSSA-ELM prediction
本文選取澳大利亞沙漠太陽能研究中心(DKASC)某光伏電站作為研究對象。選取2014年1月1日-2015年12月31日光伏發(fā)電系統(tǒng)的輸出功率與氣象數(shù)據(jù)為原始數(shù)據(jù)。光伏發(fā)電系統(tǒng)輸出功率與太陽輻照度有關(guān),因此選取每天8:00-17:00,采樣間隔1 h的數(shù)據(jù)進行研究。選取待預(yù)測日為2015年9月29日(晴天)和2015年12月17日(雨天)。
本文建立并訓(xùn)練Elman神經(jīng)網(wǎng)絡(luò)模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型,各模型的輸入向量為太陽輻照度、溫度、濕度和風速,輸出為光伏發(fā)電功率。
預(yù)測模型參數(shù)設(shè)定:ELM通過多次試驗確定為4-11-1結(jié)構(gòu),Elman采取與ELM一樣的結(jié)構(gòu)。傳統(tǒng)ELM輸入權(quán)值及閾值為隨機給定,優(yōu)化后的ELM各參數(shù)經(jīng)優(yōu)化后給定。EOSSA算法種群規(guī)模為50,迭代100次,生產(chǎn)者占比20%,剩余為追隨者,預(yù)警者隨機產(chǎn)生,占比10%,ST最大為1,最小為0.5。
本文采用均方根誤差(RMSE)和平均絕對百分比誤差(MAPE)作為模型的評價指標[23],[24]。
2015年9月29日和12月17日,光伏發(fā)電系統(tǒng)輸出功率的真實值,利用Elman神經(jīng)網(wǎng)絡(luò)模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型得到的光伏發(fā)電系統(tǒng)輸出功率預(yù)測值隨時間的變化情況如圖6所示。
圖6 預(yù)測日光伏輸出功率實際值和各個模型的預(yù)測值隨時間的變化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可見,不論哪種天氣條件,各模型預(yù)測值均能跟隨真實值曲線趨勢。在晴天條件下,隨著時間推移,光伏發(fā)電系統(tǒng)輸出功率先增大后減小,整體呈現(xiàn)平緩趨勢;各個模型的擬合精度都比較高。這是由于晴天條件下,各氣象因素較為穩(wěn)定,光伏發(fā)電系統(tǒng)輸出功率波動較小。在雨天條件下,隨著時間推移,光伏發(fā)電系統(tǒng)輸出功率波動較大。在11:00和15:00,4種模型的擬合精度都比較低;在其余時刻,EOSSA-ELM模型預(yù)測曲線比其他模型的預(yù)測曲線更加接近真實曲線。這證明了對ELM模型采用EOSSA算法優(yōu)化后,預(yù)測性能更佳。
2015年9月29日和12月17日,Elman神經(jīng)網(wǎng)絡(luò)模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型光伏發(fā)電系統(tǒng)輸出功率預(yù)測值與真實值的相對誤差隨時間變化如圖7所示。
圖7 預(yù)測日各個模型的預(yù)測相對誤差Fig.7 The prediction relative error of each model on the forecast day
由圖7可知,在晴天條件下,ELM相關(guān)的3種模型的相對誤差基本都保持在-5%~5%,唯有Elman模型誤差相對較大。在雨天條件下,尤其在9:00,4種模型的相對誤差均較高。這可能是由于氣象變化劇烈或樣本數(shù)據(jù)過少而導(dǎo)致。Elman和ELM模型在雨天比晴天誤差高出很多,證明了其泛化能力不強,不能適應(yīng)各種天氣狀況。對于預(yù)測的10個時間點,EOSSA-ELM模型相對誤差有9個保持在-10%~10%,與其他模型相比,預(yù)測精度有很大提升。
2015年9月29日和12月17日,Elman神經(jīng)網(wǎng)絡(luò)模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型的預(yù)測精度如表2所示。
表2 各模型評估結(jié)果Table 2 Evaluation results of each model
由表2可知,晴天天氣下的各誤差指標均優(yōu)于雨天;與晴天天氣相比,雨天天氣時,Elman模型的RMSE和MAPE分別上升了0.433 6 kW和31.1%;ELM模型RMSE和MAPE分別上升了0.319 8 kW和22.89%。這是由于Elman神經(jīng)網(wǎng)絡(luò)采用梯度下降算法,存在訓(xùn)練速度慢和容易陷入局部極值的缺點,對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練較難達到全局最優(yōu);ELM模型訓(xùn)練速度快,但初始權(quán)值、閾值對預(yù)測結(jié)果影響很大。因此,兩者對不同天氣狀況下的光伏發(fā)電系統(tǒng)輸出功率預(yù)測效果不佳,泛化能力不強。經(jīng)過改進后的ELM,對比傳統(tǒng)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模型的預(yù)測誤差較小,模型魯棒性更好。
ELM和Elman神經(jīng)網(wǎng)絡(luò)模型的運行時間分別為1.37 s和7.02 s。由此可見,傳統(tǒng)ELM明顯快于Elman神經(jīng)網(wǎng)絡(luò)模型。采用改進算法后,SSAELM和EOSSA-ELM模型的運行時間分別為53.27 s和204.9 s,雖然運行時間變長,但預(yù)測精度得到了明顯改善。
圖8為采取動態(tài)安全值策略后,EOSSA算法的安全值隨進化代數(shù)的變化情況。
圖8 動態(tài)安全值Fig.8 Dynamic safety value
由圖8可知,安全值隨進化代數(shù)呈現(xiàn)非線性遞減趨勢。本文設(shè)定:在迭代初期ST保持較大的值,而預(yù)警值R2為[0,1];R2大概率小于安全值ST,可保證種群在安全區(qū)域?qū)?yōu);到后期以較小的安全值ST,就可保證種群有幾率可以跳離當前位置,從而減小種群陷入局部最優(yōu)解的概率。
圖9為采取精英反向?qū)W習(xí)策略后,EOSSA算法新增種群占優(yōu)個數(shù)隨進化代數(shù)的變化情況。
圖9 反向?qū)W習(xí)結(jié)果Fig.9 The result of opposition-based learning
由圖9可知,隨著種群不斷進化,新增種群占優(yōu)個數(shù)呈現(xiàn)先急劇下降后逐漸平緩下降的趨勢。這證明每次迭代結(jié)束后,有比種群個體更好的反向解個體存在。剛開始迭代時,由精英反向?qū)W習(xí)策略產(chǎn)生反向解個體,在種群中適應(yīng)度較好的個體占半數(shù)以上。隨著迭代次數(shù)的不斷增加,這些個體被不斷添加到種群中,使種群更加快速接近最優(yōu)解區(qū)域,因而后面新增種群占優(yōu)個數(shù)下降趨勢平緩,而標準SSA算法只能通過不斷迭代更新位置來逼近最優(yōu)解區(qū)域。相比之下,改進后的算法尋優(yōu)速度會快很多。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算法。這是由于在晴天光伏出力較為平緩,算法的尋優(yōu)能力顯示不出很大的差別。由圖10(b)可知,與SSA算法相比,EOSSA算法在收斂速度以及跳出局部極值方面都有明顯改善。正是由于動態(tài)安全值ST和精英反向?qū)W習(xí)兩種策略相結(jié)合,EOSSA算法才表現(xiàn)出良好的的全局尋優(yōu)能力。
從圖10的收斂曲線也可以看出,改進后的算法跳出局部極值的能力得到了加強,改進后的EOSSA算法的收斂速度得到明顯改善。
為了提高光伏發(fā)電系統(tǒng)短期輸出功率的預(yù)測精度,本文在SSA算法的基礎(chǔ)上,提出了EOSSA算法,建立了Elman神經(jīng)網(wǎng)絡(luò)模型、ELM模型、SSA-ELM模型和EOSSA-ELM模型。利用這4種模型對光伏短期輸出功率進行預(yù)測,分析了算法的尋優(yōu)能力及各模型的預(yù)測性能。
①與標準SSA算法相比,EOSSA算法的收斂速度更快,尋優(yōu)能力更強,證明了動態(tài)安全值和精英反向?qū)W習(xí)策略的有效性。
②氣象因素對模型的預(yù)測性能有很大影響。晴天條件下,各模型均能取得較好的預(yù)測效果;在雨天條件下,未經(jīng)優(yōu)化的模型精度下降,泛化能力不強。
③在晴、雨兩種天氣條件下,與Elman,ELM,SSA-ELM模型相比,EOSSA-ELM模型的預(yù)測精度較高。這證明了本文提出的預(yù)測模型魯棒性較好。