張雨金,周杭霞
(中國(guó)計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)
光伏發(fā)電是可再生能源中最普及且具有很大發(fā)展?jié)摿Φ哪茉?目前已成為電力能源的重要組成部分.光伏發(fā)電受陽(yáng)光輻照度、環(huán)境溫濕度等因素影響,具有隨機(jī)性、波動(dòng)性和間歇性的特點(diǎn),當(dāng)大規(guī)模光伏系統(tǒng)并網(wǎng)后會(huì)對(duì)電網(wǎng)的穩(wěn)定性和安全性造成嚴(yán)重影響.為了減少光伏電站對(duì)電網(wǎng)的沖擊,就需要對(duì)電網(wǎng)進(jìn)行合理調(diào)度.短期光伏發(fā)電預(yù)測(cè)可用于光伏出力平滑控制和電網(wǎng)的調(diào)度[1-2],有利于維護(hù)電網(wǎng)安全穩(wěn)定和光伏電站經(jīng)濟(jì)運(yùn)營(yíng).
目前國(guó)內(nèi)外學(xué)界對(duì)光伏發(fā)電預(yù)測(cè)已有了一定的研究.氣象預(yù)測(cè)法以天氣預(yù)報(bào)系統(tǒng)預(yù)測(cè)的氣象參數(shù)來(lái)預(yù)測(cè)光伏發(fā)電量[3-5].相似日法通過(guò)太陽(yáng)輻照度、時(shí)間、溫度、相對(duì)濕度等參數(shù),從歷史數(shù)據(jù)中選取與當(dāng)前氣象參數(shù)相似的數(shù)據(jù),以相似日數(shù)據(jù)訓(xùn)練預(yù)測(cè)模型[6-8].機(jī)器學(xué)習(xí)法為精準(zhǔn)分析光伏發(fā)電影響因素和提高光伏發(fā)電預(yù)測(cè)精度提供了有效途徑,該方法使用BP神經(jīng)網(wǎng)絡(luò)算法[9]和支持向量機(jī)(SVM)[10]居多,已有多種組合改進(jìn)模型被提出[11,12],機(jī)器學(xué)習(xí)法晴天預(yù)測(cè)誤差在8%左右[13],多云誤差約為26.20%,陰雨天誤差約為43.05%[14].
上述研究中,氣象預(yù)測(cè)法受到天氣預(yù)報(bào)系統(tǒng)精度的限制,預(yù)測(cè)的氣象參數(shù)誤差較大時(shí),會(huì)嚴(yán)重影響預(yù)測(cè)精度.相似日法將晴轉(zhuǎn)多云、多云轉(zhuǎn)雨等復(fù)雜天氣類型歸類到晴天、雨天、多云等少數(shù)幾個(gè)簡(jiǎn)單天氣類型中,在晴轉(zhuǎn)多云、多云轉(zhuǎn)雨等復(fù)雜氣象條件下進(jìn)行預(yù)測(cè)時(shí)誤差較大.機(jī)器學(xué)習(xí)法使用BP神經(jīng)網(wǎng)絡(luò)面臨著易于陷入局部最優(yōu)和迭代收斂慢的問(wèn)題,BP、SVM及其組合改進(jìn)模型,本質(zhì)上是基于單一學(xué)習(xí)器的預(yù)測(cè)模型,其預(yù)測(cè)精度提升有限,存在較大改進(jìn)空間.
針對(duì)上述問(wèn)題,本文引入集成學(xué)習(xí)的思想和方法,采用Stacking算法改進(jìn)單一的SVM預(yù)測(cè)模型:首先使用多個(gè)初級(jí)SVM對(duì)預(yù)測(cè)樣本進(jìn)行一次預(yù)測(cè);然后使用Kmeans算法對(duì)訓(xùn)練集聚類,選擇與預(yù)測(cè)樣本同類別的訓(xùn)練樣本訓(xùn)練次級(jí)SVM;最后使用次級(jí)SVM對(duì)初級(jí)SVM預(yù)測(cè)輸出進(jìn)行結(jié)合得到最終預(yù)測(cè)結(jié)果.本文基于實(shí)測(cè)數(shù)據(jù)進(jìn)行算例分析,驗(yàn)證了經(jīng)Stacking算法改進(jìn)后的SVM預(yù)測(cè)模型在穩(wěn)定氣象條件與突變氣象條件下的預(yù)測(cè)精度有了明顯提升.
Stacking算法是集成學(xué)習(xí)中一種智能化的基學(xué)習(xí)器結(jié)合算法,該算法使用一個(gè)學(xué)習(xí)器來(lái)結(jié)合基學(xué)習(xí)器預(yù)測(cè)輸出得到最終預(yù)測(cè)值.Stacking算法中將基學(xué)習(xí)器稱為初級(jí)學(xué)習(xí)器,用來(lái)結(jié)合基學(xué)習(xí)器預(yù)測(cè)結(jié)果的學(xué)習(xí)器稱為次級(jí)學(xué)習(xí)器.Stacking算法使用訓(xùn)練好的初級(jí)學(xué)習(xí)器將原始訓(xùn)練集轉(zhuǎn)化為次級(jí)訓(xùn)練集,用來(lái)訓(xùn)練次級(jí)學(xué)習(xí)器;在次級(jí)訓(xùn)練集中,初級(jí)學(xué)習(xí)器的輸出值作為樣本特征,原始樣本的目標(biāo)值仍作為訓(xùn)練目標(biāo)值,其算法描述如下:
輸入:原始訓(xùn)練集
dataset={(x1,y1),(x2,y2),...,(xn,yn)}
次級(jí)訓(xùn)練集dataset*=φ
已訓(xùn)練好的初級(jí)學(xué)習(xí)器h1,h2,...,hT
次級(jí)學(xué)習(xí)器算法A
次級(jí)學(xué)習(xí)器h*
過(guò)程:fori=1,2,...,ndo
fort=1,2,...,Tdo
fit=ht(xi);
end for
dataset*=dataset*∪((fi1,fi2,...,fiT),yi);
end for
訓(xùn)練次級(jí)學(xué)習(xí)器h*=A(dataset*);
輸出:集成模型H(x)=h*(h1(x),h2(x),...,hT(x))
其中x為樣本特征,y為樣本訓(xùn)練目標(biāo);fit為初級(jí)學(xué)習(xí)器輸出值.
SVM算法在1995年由Vapnik等人提出,該算法以統(tǒng)計(jì)學(xué)習(xí)理論為基礎(chǔ),結(jié)合結(jié)構(gòu)風(fēng)險(xiǎn)最小化理論,可以解決小樣本、非線性、高維數(shù)等問(wèn)題.該算法性能較高,穩(wěn)定性較好,本文使用SVM作為Stacking算法的初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器.支持向量機(jī)回歸算法推導(dǎo)過(guò)程為:給定樣本集dataset={(x1,y1),(x2,y2),…,(xn,yn)},其中xi∈Rd是輸入值,yi∈R是目標(biāo)值,i=1,2,…,n,通過(guò)線性回歸函數(shù):
f(x)=wTx+b.
(1)
來(lái)擬合樣本(xi,yi),采用ε不敏感損失函數(shù):
(2)
(3)
(4)
將式(4)對(duì)w求偏導(dǎo),使偏導(dǎo)為0可得到
(5)
將式(5)代入式(1)得到回歸模型
(6)
Kmeans算法是常用的一種聚類算法,該算法采用距離來(lái)衡量樣本之間的相似性,能將樣本集劃分成K個(gè)簇,簇Ci的均值向量
(7)
為該簇的質(zhì)心.Kmeans算法的目的就是尋找K個(gè)質(zhì)心來(lái)最小化平方誤差
(8)
平方誤差E越小則表明簇內(nèi)樣本的相似度越高.Kmeans算法的主要過(guò)程如下:
輸入:樣本集dataset={X1,X2,…,Xn},K值
過(guò)程:隨機(jī)初始化質(zhì)心{μ1,μ2,…,μK}
repeat
fori=1,2,...ndo
forj=1,2,...kdo
計(jì)算樣本Xi與質(zhì)心μj之間的距離
distance=‖Xi-μj‖2;
end for
將樣本Xi與它最近的質(zhì)心μ歸為一類;
end for
forj=1,2,...kdo
end for
until達(dá)到最大迭代次數(shù)或質(zhì)心更新幅度小于閾值
輸出:簇集clusterset={C1,C2,...,CK}.
選取晴天、雨天、多云三種天氣的光伏發(fā)電功率曲線如圖1,光伏發(fā)電受天氣、環(huán)境等因素影響具有隨機(jī)性波動(dòng)性,尤其在多云、陰雨的氣象條件下,一天的光伏發(fā)電功率曲線劇烈波動(dòng),產(chǎn)生多個(gè)峰值.從圖1中截取短時(shí)間內(nèi)光伏發(fā)電功率曲線如圖2所示,在短時(shí)間內(nèi)天氣、環(huán)境等因素雖有變化,卻不容易引起發(fā)電功率的劇烈波動(dòng),相鄰幾個(gè)時(shí)刻的光伏發(fā)電數(shù)據(jù)具有一定的相關(guān)性,可用來(lái)預(yù)測(cè)未來(lái)一段時(shí)間的光伏發(fā)電功率.
圖1 全天光伏發(fā)電功率Figure 1 Full day PV power curve
圖2 短時(shí)光伏發(fā)電功率Figure 2 Short time PV power curve
目前光伏發(fā)電監(jiān)控系統(tǒng)主要監(jiān)測(cè)光伏組件輸出的直流電流電壓Idc、Vdc,組件溫度T,逆變器輸出的交流電流電壓Iac、Vac,當(dāng)前時(shí)刻發(fā)電功率P,當(dāng)日累計(jì)發(fā)電量E.這些參數(shù)全面的表示了光伏發(fā)電系統(tǒng)工作狀態(tài),t時(shí)刻光伏系統(tǒng)工作狀態(tài)可表示為
S(t)={Idc(t),Vdc(t),T(t),Iac(t),
Vac(t),P(t),E(t)}.
(9)
由上分析得到短時(shí)間內(nèi)光伏發(fā)電數(shù)據(jù)具有一定的相關(guān)性,本文將歷史數(shù)據(jù)中連續(xù)兩個(gè)時(shí)刻的光伏系統(tǒng)工作狀態(tài)S(t)、S(t-1)和時(shí)刻t作為樣本特征,將下一時(shí)刻發(fā)電功率P(t+1)作為訓(xùn)練目標(biāo),t時(shí)刻的訓(xùn)練樣本可表示為
sample(t)={[t,S(t),S(t-1)],P(t+1)}.
(10)
預(yù)測(cè)時(shí)以當(dāng)前時(shí)刻t、S(t)、S(t-1)為輸入來(lái)預(yù)測(cè)下一時(shí)刻的發(fā)電功率,預(yù)測(cè)模型可表示為
P(t+1)=model(t,S(t),S(t-1)).
(11)
本文將SVM作為Stacking算法的初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器.Stacking-SVM預(yù)測(cè)模型訓(xùn)練過(guò)程如圖3所示.從原始訓(xùn)練集中隨機(jī)采樣,從采樣得到的訓(xùn)練樣本中隨機(jī)選取特征得到初級(jí)訓(xùn)練集,然后訓(xùn)練初級(jí)SVM,上述過(guò)程循環(huán)n次得到n個(gè)不同的初級(jí)SVM.使用Kmeans算法對(duì)預(yù)測(cè)樣本和原始訓(xùn)練集進(jìn)行聚類分析,選取與預(yù)測(cè)樣本同類的訓(xùn)練樣本,將其輸入已訓(xùn)練的n個(gè)初級(jí)SVM轉(zhuǎn)化為次級(jí)訓(xùn)練集后進(jìn)行次級(jí)SVM的訓(xùn)練.
圖3 訓(xùn)練過(guò)程Figure 3 Training process
Stacking-SVM預(yù)測(cè)過(guò)程如圖4所示.將預(yù)測(cè)樣本輸入n個(gè)初級(jí)SVM,使用次級(jí)SVM對(duì)初級(jí)SVM的預(yù)測(cè)輸出進(jìn)行結(jié)合,得出最終預(yù)測(cè)結(jié)果.
圖4 預(yù)測(cè)過(guò)程Figure 4 Forecasting process
訓(xùn)練樣本包含時(shí)刻、直流電流電壓、交流電流電壓、溫度、發(fā)電量和發(fā)電功率八種參數(shù),這些參數(shù)單位不同,數(shù)量級(jí)也相差甚遠(yuǎn),因此需要進(jìn)行歸一化處理,本文采用以下歸一化方法
(12)
本文采用平均絕對(duì)百分比誤差MAPE和均方根誤差RMSE來(lái)評(píng)價(jià)模型的預(yù)測(cè)能力.
(13)
(14)
其中:xmodel為模型預(yù)測(cè)值,xactual為實(shí)測(cè)值.
本文數(shù)據(jù)為浙江紹興地區(qū)某20 kW光伏電站監(jiān)控?cái)?shù)據(jù),該電站監(jiān)控系統(tǒng)每隔8分鐘記錄光伏發(fā)電系統(tǒng)的工作狀態(tài).選用2015年4—6月和2016年4—6月的數(shù)據(jù)來(lái)訓(xùn)練預(yù)測(cè)模型,考察該模型在2017年5月的晴天、雨天、多云3種氣象條件下的表現(xiàn).
晴天云量較少,光照、溫度等氣象條件相對(duì)穩(wěn)定,因此光伏發(fā)電功率波動(dòng)較小.圖5給出了本文基于Stacking-SVM模型和SVM模型在晴天的預(yù)測(cè)結(jié)果對(duì)比,本文模型晴天發(fā)電功率預(yù)測(cè)曲線十分貼近實(shí)測(cè)值,與SVM相比,兩者沒(méi)有明顯差異.圖6給出了二者在晴天的預(yù)測(cè)誤差對(duì)比,本文模型在開(kāi)始發(fā)電和結(jié)束發(fā)電的短時(shí)間內(nèi)預(yù)測(cè)誤差偏高,其他時(shí)段與SVM相近,綜合來(lái)看本文模型與SVM模型在晴天的預(yù)測(cè)性能差距不大.
圖5 晴天發(fā)電功率預(yù)測(cè)曲線Figure 5 Forecast curve in sun day
圖6 晴天預(yù)測(cè)誤差曲線Figure 6 Forecast error curve in sun day
雨天的光照、溫度等氣象條件頻繁劇烈變化,導(dǎo)致光伏發(fā)電功率劇烈波動(dòng)產(chǎn)生多個(gè)尖峰.圖7給出了本文模型與SVM模型在雨天的預(yù)測(cè)結(jié)果對(duì)比,本文模型能有效的預(yù)測(cè)光伏發(fā)電功率的變化趨勢(shì),部分時(shí)段預(yù)測(cè)結(jié)果優(yōu)于SVM.圖8給出了二者在雨天的預(yù)測(cè)誤差對(duì)比,SVM在上午和傍晚的預(yù)測(cè)誤差明顯高于本文模型.
圖7 雨天發(fā)電功率預(yù)測(cè)曲線Figure 7 Forecast curve in rainy day
圖8 雨天預(yù)測(cè)誤差曲線Figure 8 Forecast error curve in rainy day
多云條件下光照成為影響光伏發(fā)電的主要因素,受風(fēng)力的作用,云層的厚度及位置在不斷變動(dòng),導(dǎo)致光伏發(fā)電功率產(chǎn)生波動(dòng).圖9給出了本文模型與SVM模型在多云的預(yù)測(cè)結(jié)果對(duì)比,本文模型能夠很好的預(yù)測(cè)多云天氣的發(fā)電功率和變化趨勢(shì),SVM在下午的預(yù)測(cè)曲線不夠貼近實(shí)測(cè)值.圖10給出了二者在多云的預(yù)測(cè)誤差對(duì)比,SVM在下午的預(yù)測(cè)誤差明顯大于本文模型.
圖9 多云發(fā)電功率預(yù)測(cè)曲線Figure 9 Forecast curve in cloudy day
圖10 多云預(yù)測(cè)誤差曲線Figure 10 Forecast error curve in cloudy day
表1給出了SVM、小波-SVM、Kmeans-SVM和本文模型在晴天、雨天、多云氣象條件下預(yù)測(cè)的平均絕對(duì)百分比誤差MAPE對(duì)比,表2給出了四個(gè)模型均方根誤差RMSE對(duì)比.
表1 四種模型MAPE值
表2 四種模型RMSE值
從表1對(duì)比可知:本文Stacking-SVM模型在多云情況下預(yù)測(cè)性能突出,其MAPE比SVM降低約9%,比小波-SVM和Kmeans-SVM降低約6%;Stacking-SVM模型在雨天的MAPE也有一定程度的降低;Stacking-SVM模型在晴天的MAPE與SVM和小波-SVM相差0.42%,晴天的預(yù)測(cè)精度較高,本文模型與其他模型的差距并不明顯.從表1四個(gè)模型的MAPE平均值對(duì)比和表2四個(gè)模型的RMSE平均值對(duì)比可看出,本文Stacking-SVM模型優(yōu)于其他三個(gè)模型.
綜合上述對(duì)比得出,本文Stacking-SVM模型在氣象環(huán)境小幅波動(dòng)的多云條件下預(yù)測(cè)性能較為突出,在氣象環(huán)境劇烈波動(dòng)的雨天有明顯優(yōu)勢(shì),在氣象環(huán)境穩(wěn)定的晴天與其他預(yù)測(cè)模型差距不大.
進(jìn)行光伏發(fā)電預(yù)測(cè)對(duì)維護(hù)電網(wǎng)安全穩(wěn)定,協(xié)調(diào)可再生能源與化石能源的使用有著重要的意義.本文借鑒集成學(xué)習(xí)的思想和方法,使用Stacking算法對(duì)單一SVM模型進(jìn)行改進(jìn).使用Kmeans算法對(duì)訓(xùn)練樣本聚類,減少其他類別樣本訓(xùn)練次級(jí)學(xué)習(xí)器對(duì)預(yù)測(cè)精度的影響.通過(guò)實(shí)際數(shù)據(jù)驗(yàn)證,分別在平穩(wěn)和突變氣象條件下分析光伏發(fā)電功率預(yù)測(cè)情況,結(jié)果表明本文提出的預(yù)測(cè)方法明顯優(yōu)于傳統(tǒng)的預(yù)測(cè)方法,具有一定的工程應(yīng)用潛力.