孫 輝 冷建偉
(天津理工大學(xué)電氣電子工程學(xué)院 天津 300384)
光伏系統(tǒng)因受太陽(yáng)輻照度、溫度、濕度等氣象因素影響,導(dǎo)致其輸出功率具有明顯的非線性和波動(dòng)性。當(dāng)光伏系統(tǒng)在這種情況下并網(wǎng)時(shí),將對(duì)大電網(wǎng)產(chǎn)生較大的沖擊力。因此,精準(zhǔn)地預(yù)測(cè)光伏發(fā)電系統(tǒng)的輸出功率變得越來(lái)越重要。
目前,光伏發(fā)電系統(tǒng)的功率預(yù)測(cè)方法主要有支持向量機(jī)預(yù)測(cè)(Support Vector Machine,SVM)[1-2]、人工神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)(如BP神經(jīng)網(wǎng)絡(luò))[3]等。其中,支持向量機(jī)方法有較好的效果泛化能力,但經(jīng)驗(yàn)選擇的基函數(shù)可能會(huì)導(dǎo)致意外誤差。文獻(xiàn)[4]不考慮太陽(yáng)輻照度的影響,將溫度和濕度作為輸入直接預(yù)測(cè)光伏輸出功率,由于考慮的氣象因素較少,預(yù)測(cè)精度較低。文獻(xiàn)[5]引入天氣類型指數(shù)的神經(jīng)網(wǎng)絡(luò)發(fā)電預(yù)測(cè)模型,但單一神經(jīng)網(wǎng)絡(luò)對(duì)不同的天氣類型進(jìn)行預(yù)測(cè)效果較差。神經(jīng)網(wǎng)絡(luò)被電力負(fù)荷預(yù)測(cè)[6-7]和風(fēng)力發(fā)電預(yù)測(cè)[8-9]廣泛應(yīng)用,現(xiàn)正蓬勃應(yīng)用在光伏發(fā)電短期預(yù)測(cè)[10-11]中。
Ada Boost作為一種監(jiān)督學(xué)習(xí)分類器,當(dāng)改善決策樹(shù)和神經(jīng)網(wǎng)絡(luò)等不穩(wěn)定分類算法的分類能力時(shí),有著較好的效果[12-13],但當(dāng)其改善穩(wěn)定分類算法時(shí)效果并不盡如人意[14-15]。半監(jiān)督學(xué)習(xí)(Semi-supervised Learning,SSL)利用無(wú)標(biāo)記樣本來(lái)增強(qiáng)學(xué)習(xí)器的分類能力,Semi Boost屬于這種分類器的代表,它能提升基分類器之間差異分化能力,進(jìn)一步提高終極分類器的泛化能力。
深度學(xué)習(xí)理論作為研究熱點(diǎn),在電力行業(yè)受到廣泛關(guān)注。當(dāng)建立DBN光伏功率預(yù)測(cè)模型時(shí),通過(guò)隨機(jī)分配獲得網(wǎng)絡(luò)連接權(quán)重初始化。在這種方法下進(jìn)行學(xué)習(xí)和訓(xùn)練,DBN存在易陷入局部最優(yōu)解的缺陷,降低預(yù)測(cè)精度[17]。
為實(shí)現(xiàn)典型天氣分類,解決DBN易陷入局部最優(yōu)解的缺陷,本文提出一種基于Semi Boost改進(jìn)的加權(quán)K近鄰分類方法將數(shù)據(jù)的天氣類型分類并采用CC-PSO優(yōu)化DBN連接權(quán)重,再針對(duì)分類后的天氣類型分別建立CC-PSO-DBN的組合光伏發(fā)電功率預(yù)測(cè)方法。通過(guò)全局優(yōu)化算法迭代求解權(quán)重最優(yōu)值,建立的預(yù)測(cè)模型提高了預(yù)測(cè)結(jié)果的可靠性。實(shí)驗(yàn)表明,本文預(yù)測(cè)模型比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和DBN預(yù)測(cè)模型,預(yù)測(cè)精度更高。
選取澳洲沙漠太陽(yáng)能研究中心(DKASC)的2016年7月3日到2017年7月3日春、夏、秋、冬四個(gè)季節(jié)每日7:00-18:00的光伏出力數(shù)據(jù)繪制成圖,如圖1和圖2所示,步長(zhǎng)為5 min,共133個(gè)數(shù)據(jù)點(diǎn)。
圖1 春季和夏季光伏出力
圖2 秋季和冬季光伏出力
可以看出,同一個(gè)季節(jié)的不同日光伏出力情況差異較大,這表明光伏發(fā)電功率與天氣類型有緊密聯(lián)系。為提高預(yù)測(cè)精度,必須對(duì)天氣進(jìn)行聚類。春、夏、秋三個(gè)季節(jié)的光伏發(fā)電功率情況差異不大,但冬季的光伏發(fā)電量明顯較少。從整體上看,春季和夏季的光伏出力情況比秋季和冬季更穩(wěn)定。
本節(jié)選取2017年1月31日的溫度、濕度和輻照度,繪制了它們與當(dāng)日光伏實(shí)際發(fā)電量的關(guān)系圖,如圖3-圖5所示。從圖中可知:光伏輸出功率與水平輻射的相關(guān)性最高,二者曲線幾乎吻合;光伏輸出功率在一天的7:00-14:30時(shí)間段大致與溫度成正相關(guān)關(guān)系;當(dāng)大氣相對(duì)濕度降低時(shí),光伏輸出功率呈上升趨勢(shì),二者為負(fù)相關(guān)關(guān)系。本文將考慮溫度、濕度、輻照度對(duì)光伏輸出功率的影響。
圖3 光伏出力和溫度的關(guān)系曲線
圖4 光伏出力和相對(duì)濕度的關(guān)系曲線
圖5 光伏出力和水平輻射的關(guān)系曲線
光伏電站由于成本問(wèn)題約束,可利用的天氣預(yù)報(bào)精度較低,數(shù)據(jù)有限,故難以利用天氣預(yù)報(bào)信息對(duì)歷史樣本進(jìn)行準(zhǔn)確地天氣類型分類。本文提出一種采用Semi Boost改進(jìn)的加權(quán)K近鄰分類算法來(lái)解決這一問(wèn)題。
定義兩個(gè)樣本xi和xj的相似度為S(xi,xj),利用夾角余弦公式來(lái)度量它:
(1)
在天氣類型的分類中,每日的天氣樣本xi都可被映射到特征空間中的一個(gè)規(guī)范化向量xi=(wsi1,wsi12,…,wsi1|v|),wsik(k=1,2,…,|V|)為樣本xi的第k個(gè)特征的權(quán)重。
為使訓(xùn)練錯(cuò)誤最小化,定義Semi Boost分類模型的目標(biāo)函數(shù)時(shí)考慮未標(biāo)注樣本的訓(xùn)練情況:
(2)
式中:Fl為標(biāo)注樣本的訓(xùn)練錯(cuò)誤;Fu表示未標(biāo)注樣本的訓(xùn)練錯(cuò)誤;C為常數(shù)。
當(dāng)Semi Boost分類迭代時(shí),未標(biāo)注樣本加入標(biāo)注訓(xùn)練集的數(shù)量按置信度傳播算法選取。傳統(tǒng)的置信度傳播(Belief Propagation,BP)算法利用節(jié)點(diǎn)與節(jié)點(diǎn)間傳遞信息來(lái)更新當(dāng)前整個(gè)馬爾可夫隨機(jī)場(chǎng)(Markov Random Field,MRF)的標(biāo)記狀態(tài),是基于MRF的近似迭代計(jì)算。經(jīng)過(guò)多次迭代后,MRF收斂,每一個(gè)節(jié)點(diǎn)的信度不再改變,達(dá)到最優(yōu)狀態(tài)。其傳播過(guò)程如圖6所示。
圖6 置信度傳播算法過(guò)程
節(jié)點(diǎn)間相互傳播的信息為:
(3)
式中:mij(xj)為節(jié)點(diǎn)i傳播給節(jié)點(diǎn)j的消息,代表節(jié)點(diǎn)j對(duì)節(jié)點(diǎn)i當(dāng)前狀態(tài)的影響;φj(xj,yj)表示節(jié)點(diǎn)j的局部證據(jù),反映了在節(jié)點(diǎn)j處xj和yj存在統(tǒng)計(jì)上的依賴性,稱為節(jié)點(diǎn)j的聯(lián)合相容度;N(j)/i表示節(jié)點(diǎn)j的馬爾可夫隨機(jī)場(chǎng)一階鄰域中排除掉目標(biāo)節(jié)點(diǎn)i的鄰域;ψji(xj·xi)代表相鄰節(jié)點(diǎn)xj和xi間的勢(shì)能,反映了xj和xi之間的相容性。
由于BP算法在進(jìn)行迭代運(yùn)算時(shí),以隨機(jī)選擇的方式選取相鄰節(jié)點(diǎn)xi和xj為起點(diǎn)進(jìn)行迭代,若選取不當(dāng)則會(huì)直接影響下一步迭代的計(jì)算值,影響最終的置信度結(jié)果。為消除這種影響,本文在選取相鄰節(jié)點(diǎn)時(shí),采用WKNN算法為每個(gè)節(jié)點(diǎn)間的距離增加了權(quán)重,離節(jié)點(diǎn)越近,則對(duì)應(yīng)的權(quán)重越大。定義節(jié)點(diǎn)xi的k個(gè)近鄰到xi的標(biāo)準(zhǔn)距離為:
(4)
式中:d(xi,xj)(j=1,2,…,k+1)為節(jié)點(diǎn)xi到它的k+1個(gè)近鄰的歐式距離。
將式(4)求得的標(biāo)準(zhǔn)距離進(jìn)行排序,取距離最近的k個(gè)相鄰節(jié)點(diǎn)進(jìn)行距離加權(quán)平均,使計(jì)算出的相鄰節(jié)點(diǎn)間傳播的信息最準(zhǔn)確:
(5)
式中:Mji(xi)為mji(xi)的近似估計(jì);w1,w2,…,wk為權(quán)重,計(jì)算公式為:
(6)
本節(jié)將置信度較高的未標(biāo)注樣本和置信度較低的樣本的數(shù)量分別設(shè)為N1和N2。
(7)
由此,Semi Boost改進(jìn)的基于加權(quán)KNN-BP分類算法流程為:
1) 輸入訓(xùn)練集D=Dl∪Du,近鄰的數(shù)值K,迭代次數(shù)T,N1和N2;
4) 在Dl中生成新分類器φNB,ht;
(8)
(9)
8) 計(jì)算ht錯(cuò)誤率:
(10)
10) 更新刪除前的Dl樣本權(quán)重:
(11)
11) 更新加入后Dl的樣本權(quán)重:
(12)
12) 輸出最終分類器:
(13)
式中:αt是ht的信任權(quán)重。
光伏出力預(yù)測(cè)模型框架如圖7所示。
圖7 光伏出力預(yù)測(cè)模型框架
模型的輸入層包括由Semi Boost改進(jìn)的基于加權(quán)KNN-BP分類后的天氣類型,各類天氣類型的光伏出力歷史數(shù)據(jù)、溫度、相對(duì)濕度和輻照度。采用Semi Boost改進(jìn)的基于加權(quán)KNN-BP算法分類后的DBN網(wǎng)絡(luò)光伏預(yù)測(cè)結(jié)構(gòu)模型如圖8所示。
圖8 DBN網(wǎng)絡(luò)光伏預(yù)測(cè)結(jié)構(gòu)模型
圖8是由三層RBM組成的網(wǎng)絡(luò)結(jié)構(gòu)。受限玻爾茲曼機(jī)(RBM)是DBN的基本組成部分,單個(gè)RBM(例如RBM1)是對(duì)稱的非自反饋隨機(jī)神經(jīng)網(wǎng)絡(luò)模型,由可見(jiàn)層和隱式層組成。由狀態(tài)(v,h)確定的RBM系統(tǒng)的能量函數(shù)具體定義參見(jiàn)文獻(xiàn)[18]。
為了提高DBN網(wǎng)絡(luò)在后期的學(xué)習(xí)和訓(xùn)練過(guò)程中的局部尋優(yōu)能力,避免出現(xiàn)由隨機(jī)初始化導(dǎo)致的局部最優(yōu)解現(xiàn)象,本文采用結(jié)合混沌縱橫交叉的粒子群優(yōu)化連接權(quán)重算法來(lái)優(yōu)化網(wǎng)絡(luò)權(quán)重。標(biāo)準(zhǔn)粒子群算法具有一些不足:在迭代時(shí)由于其搜索速度快,易早熟收斂并陷入局部最優(yōu)?;煦缈v橫交叉算法可以有效解決優(yōu)化后的PSO在進(jìn)化過(guò)程中易早熟的問(wèn)題,其中縱向交叉可以有效地避免早熟問(wèn)題,幫助種群跳出局部最優(yōu),以此增強(qiáng)全局搜索能力,實(shí)現(xiàn)由迭代前期的全局搜索轉(zhuǎn)換為后期的局部搜索。
傳統(tǒng)粒子群算法按照以下規(guī)則將每個(gè)粒子的速度和位置更新到其pbest和pgbest位置:
vid(k+1)=wvid(k)+c1rand1d[pid(k)-xid(k)]+
c2rand2d[pgd(k)-xid(k)]
(14)
xid(k+1)=xid(k)+vid(k+1)
(15)
式中:w為慣性權(quán)重;c1、c2為加速因子;rand2d,rand1d∈Rand[0,1];
基于優(yōu)化后的PSO的最優(yōu)個(gè)體xbest,混沌序列由Logistic映射產(chǎn)生,由此產(chǎn)生的縱橫交叉算法種群為:
Fi=sCi+(1-s)xbest
(16)
(17)
在執(zhí)行交叉算子之前,將群體中所有粒子成對(duì)不重復(fù)地隨機(jī)組合,執(zhí)行橫向交叉對(duì)組合后的粒子進(jìn)行更新。橫向交叉父代粒子F(i)和F(j)的第l維產(chǎn)生下一代:
MShc(i,l)=d1F(i,l)+(1-d1)F(j,l)+
c1(F(i,l)-F(j,l))
(18)
MShc(j,l)=d2F(j,l)+(1-d2)F(i,l)+
c2(F(j,l)-F(i,l))
(19)
式中:d1,d2∈Rand[0,1];i,j∈N[1,M];l∈N[1,D];M為種群規(guī)模;D為粒子變量維度;F(i,l)、F(j,l)為F(i)和F(j)的父代粒子的第l維;MShc(i,l)橫向交叉產(chǎn)生的第l維下一代是MShc(j,l)。
接著進(jìn)行概率為Pa的縱向交叉操作,縱向交叉操作的作用為早熟的某一維度從局部最優(yōu)中解放出來(lái)??v向操作F(i)的第l1和第l2維,按式(20)產(chǎn)生下一代:
MSac(i,l1)=dF(i,l1)+(1-d)F(i,l2)
(20)
式中:i∈N[1,M];l1,l2∈N[1,D];d∈Rand[0,1];MSac(i,l1)為縱向交叉F(i)的第l1維和第l2維產(chǎn)生的下一代。
數(shù)據(jù)選自澳洲沙漠太陽(yáng)能研究中心(DKASC)的光伏發(fā)電系統(tǒng)。選取2016年1月1日至2018年11月15日的天氣和光伏輸出功率的時(shí)間序列作為原始數(shù)據(jù)。
本文將平均絕對(duì)百分比誤差(MAPE)和均方根誤差(RMSE)用于評(píng)估光伏出力預(yù)測(cè)模型的有效性。其中,MAPE用于評(píng)估系統(tǒng)的預(yù)測(cè)能力,RMSE用于評(píng)估系統(tǒng)預(yù)測(cè)值的誤差。
(21)
(22)
選取隱藏層的數(shù)量為5,節(jié)點(diǎn)數(shù)為28,粒子群算法種群大小N設(shè)為40,最大迭代次數(shù)Tmax設(shè)為500,初始權(quán)重w取0.7,加速因子c1=2.0、c2=2.0,N1、N2分別取前5%和后5%,縱橫交叉種群大小M設(shè)為30,最大迭代次數(shù)Dmax設(shè)為40,縱向交叉概率設(shè)為0.5。
本文采用MATLAB R2014a進(jìn)行仿真,并對(duì)僅根據(jù)天氣預(yù)報(bào)信息劃分的天氣類型的BP神經(jīng)網(wǎng)絡(luò)、傳統(tǒng)DBN、PSO-DBN、CC-PSO-DBN和由基于改進(jìn)Semi Boost天氣聚類的CC-PSO-DBN模型這五種模型分別進(jìn)行預(yù)測(cè)。為了測(cè)試本文方法在不同條件下的適用性,選擇春夏季平穩(wěn)天氣(晴天)、突變天氣(雨天)和秋冬季突變天氣(陰天)分別來(lái)預(yù)測(cè)。預(yù)測(cè)結(jié)果如圖9-圖11所示。預(yù)測(cè)誤差對(duì)比如表1所示。
圖9 A日(晴天)五種模型預(yù)測(cè)結(jié)果
圖10 B日(陰天)五種模型預(yù)測(cè)結(jié)果
圖11 C日(雨天)五種模型預(yù)測(cè)結(jié)果
表1 五種預(yù)測(cè)模型誤差的比較
續(xù)表1
可以看出,五種模型可以跟隨不同天氣類型的輸出功率趨勢(shì),但春夏季晴天的預(yù)測(cè)精度更高,并且在陰天和雨天的預(yù)測(cè)誤差較大,需要進(jìn)一步改善。在春夏季節(jié)的晴天,光照強(qiáng)度穩(wěn)定,數(shù)據(jù)相對(duì)穩(wěn)定,預(yù)測(cè)精度更高。無(wú)論在秋冬季陰天還是春夏季雨天,不確定性都在增加,數(shù)據(jù)變化規(guī)律難以捕捉,因此預(yù)測(cè)精度低于晴天。
當(dāng)利用歷史天氣預(yù)報(bào)信息對(duì)天氣分類時(shí),傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的預(yù)測(cè)誤差在春夏季晴天較小,平均百分比誤差約為7.51%,但在秋冬季陰天和春夏季雨天中,誤差增大,為8.57%和17.04%,泛化能力一般,雖然它可以跟隨變化趨勢(shì),但準(zhǔn)確性有待提高。與之相比,DBN、PSO-DBN和CC-PSO-DBN的泛化能力大大提高。例如,在春夏季雨天,平均百分比誤差分別約從17.04%降至16.36%、11.52%和7.53%,均方根誤差也從4.74降至3.93、3.20和1.88左右,表明DBN預(yù)測(cè)模型的準(zhǔn)確性較高。PSO-DBN和CC-PSO-DBN的預(yù)測(cè)結(jié)果優(yōu)于傳統(tǒng)的DBN模型,預(yù)測(cè)誤差較小。但在雨天情況下CC-PSO-DBN的平均百分比誤差比PSO-DBN低4%,均方根誤差低1.32。在春夏季晴天和秋冬季陰天情況下,CC-PSO-DBN的平均百分比誤差比PSO-DBN分別低1.16%和1.25%,均方根誤差分別低0.57和0.98。這主要是因?yàn)楦倪M(jìn)的CC-PSO算法具有強(qiáng)大的全局搜索能力,并且通過(guò)CC-PSO優(yōu)化獲得的參數(shù)優(yōu)于PSO。具有局部?jī)?yōu)化功能的CC-PSO算法有效地避免了粒子群算法在迭代的后期容易陷入局部最優(yōu)的問(wèn)題?;诟倪M(jìn)Semi Boost天氣聚類后的CC-PSO-DBN模型預(yù)測(cè)效果更好,在這三種天氣中比基于天氣預(yù)報(bào)信息劃分的天氣類型的CC-PSO-DBN的平均百分比誤差低0.82%、1.78%和2.53%,均方根誤差低0.32、0.017和0.63。當(dāng)使用同一種CC-PSO-DBN模型時(shí),改進(jìn)Semi Boost后的天氣聚類結(jié)果明顯優(yōu)于歷史天氣預(yù)報(bào)信息分類的天氣類型。
本文分析了季節(jié)和天氣狀態(tài)對(duì)光伏出力的影響,選取天氣溫度、相對(duì)濕度和光照強(qiáng)度作為影響因素,選取春夏季晴天和雨天,秋冬季陰天三種不同季節(jié)下的天氣進(jìn)行光伏出力預(yù)測(cè)分析,并結(jié)合半監(jiān)督學(xué)習(xí),提出了改進(jìn)Semi Boost聚類算法對(duì)天氣類型進(jìn)行聚類識(shí)別。比較基于本文模型聚類后的歷史日與基于由天氣預(yù)報(bào)信息分類后的歷史日的預(yù)測(cè)結(jié)果以及在三種不同季節(jié)下的天氣的預(yù)測(cè)結(jié)果可知,基于本文模型聚類后的歷史日的預(yù)測(cè)模型精度更高。當(dāng)Semi Boost進(jìn)行分類迭代時(shí),BP算法以隨機(jī)選擇的方式選取相鄰節(jié)點(diǎn)為起點(diǎn)進(jìn)行迭代,若選取不當(dāng)則會(huì)影響最終的置信度結(jié)果。本文采用WKNN算法為每個(gè)節(jié)點(diǎn)間的距離設(shè)置權(quán)重,選擇最佳初始相鄰節(jié)點(diǎn)消除因不當(dāng)?shù)碾S機(jī)初始點(diǎn)產(chǎn)生的迭代誤差。
本文選擇結(jié)合混沌縱橫交叉的粒子群算法優(yōu)化深度信念網(wǎng)絡(luò)的輸入權(quán)重w的方法的預(yù)測(cè)精度更高,模型泛化能力更強(qiáng)。與PSO相比,CC-PSO的全局搜索能力更佳且收斂精度和穩(wěn)定性提高,并且通過(guò)CC-PSO優(yōu)化獲得的參數(shù)優(yōu)于傳統(tǒng)DBN的原始參數(shù)。具有局部?jī)?yōu)化功能的CC-PSO算法有效地避免了粒子群算法在迭代的后期容易陷入局部最優(yōu)的問(wèn)題,更適用于光伏出力預(yù)測(cè)。因此本文提出的基于改進(jìn)Semi Boost天氣聚類的CC-PSO-DBN的短期光伏出力預(yù)測(cè)模型具有較高的參考價(jià)值。