崔 響,房俊龍,曲 樂
(1.東北農(nóng)業(yè)大學(xué) 電氣與信息學(xué)院,哈爾濱 150031;2.國網(wǎng)黑龍江省電力有限公司哈爾濱供電公司,哈爾濱,150090)
在目前現(xiàn)代化生產(chǎn)中,人類所利用的主要能源是煤、石油、天然氣等不可再生能源。但長期使用這些能源不僅會造成能源枯竭,同時,這些能源在燃燒時釋放的氣體,也是全球環(huán)境變暖、溫室效應(yīng)加重的主要誘因[1]。近年來,人們逐漸認(rèn)識到,解決能源問題的最終方案是采用可再生能源取代傳統(tǒng)不可再生能源[2]。而光伏發(fā)電以其具有無污染,安全可靠等優(yōu)點成為世界各國關(guān)注的目標(biāo)。并且光伏發(fā)電具有極低的碳排放量,尤其是在低碳經(jīng)濟發(fā)展的當(dāng)下,光伏發(fā)電成為最具有潛力的電力能源之一[3-4]。
目前對光伏發(fā)電的預(yù)測有兩種分類:一是建立太陽輻照-光伏出力的物理模型,借此對光伏發(fā)電出力進行預(yù)測[5-8],這種方法可以在沒有任何歷史數(shù)據(jù)的情況下直接對光伏發(fā)電功率進行預(yù)測,但需要大量的光伏電站信息,以及諸多光電轉(zhuǎn)換參數(shù)來建立更加精確的物理模型,最后結(jié)合光電轉(zhuǎn)換效率等信息得到預(yù)測值;二是基于大數(shù)據(jù)應(yīng)用智能算法進行預(yù)測[9-12],這種方法無需光伏電站以及光電轉(zhuǎn)化的信息,只需要對歷史的輸出功率、天氣、輻照等數(shù)據(jù)進行統(tǒng)計和整理,使用這些數(shù)據(jù)對算法模型進行訓(xùn)練來建立輸入-輸出的非線性關(guān)系,對待測日的功率進行擬合,最終得到所需的輸出功率。
目前,通過大數(shù)據(jù)應(yīng)用智能算法進行預(yù)測的研究越來越多,該文所討論的是采用粒子群優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法(下稱PSO-BP算法)對光伏出力的預(yù)測。
光伏發(fā)電是指利用半導(dǎo)體界面的光生伏特效應(yīng)將光能轉(zhuǎn)化為電能的一種技術(shù)。當(dāng)光子照射到金屬上時,它的能量可以被金屬中某個電子全部吸收。如果電子因此獲得的能量足夠大就能從金屬表面逸散出來,成為光電子。硅原子中有4個外層電子,如果在其中摻入了具有5個外層電子的原子(如磷原子),就成為N型半導(dǎo)體;若摻入了具有3個外層電子的原子(如硼原子),則形成P型半導(dǎo)體。P型與N型結(jié)合在一起時,表面會形成電勢差,成為光伏電池。當(dāng)太陽光照射到P-N結(jié)之后,電子由N極區(qū)向P極區(qū)移動,形成了電流。
光伏發(fā)電的影響因素有很多,文獻[13]給出了單位面積光伏陣列的輸出功率表達式:
Ps=ηSI[100.005(t0+25)]
式中:η為光電轉(zhuǎn)化效率;S為光伏陣列面積;I為輻射強度;t0為大氣溫度。
對于同一光伏電站,光電轉(zhuǎn)化效率和光伏陣列面積是固定不變的,所以輻射強度與大氣溫度是實際影響光伏發(fā)電輸出功率的主要因素。太陽輻射強度就是指太陽在垂直照射的情況下在單位時間內(nèi),1 cm2的面積上所得到的輻射能量。在光電轉(zhuǎn)化效率一定的情況下,與光伏發(fā)電輸出功率呈正相關(guān)。在大氣溫度單獨作用下,與光伏發(fā)電輸出功率呈負(fù)相關(guān)關(guān)系。大量實驗統(tǒng)計表明,溫度上升1 ℃,晶體硅太陽電池的最大輸出功率下降0.04%,開路電壓下降0.04%,短路電流上升0.04%。
在實際的光伏發(fā)電系統(tǒng)中,光伏發(fā)電的輸出功率是輻射強度與大氣溫度共同作用的結(jié)果。這兩個因素可作為判斷相似日的主要參數(shù)。同時,還有其他的一些因素也會影響光伏發(fā)電的功率,如風(fēng)力、光伏陣列的安裝角度等。
如引言所述,隨著對光伏發(fā)電功率預(yù)測的研究,越來越多的學(xué)者開始或已經(jīng)使用人工智能算法對光伏發(fā)電功率進行預(yù)測。常見的算法,諸如BP神經(jīng)網(wǎng)絡(luò)、粒子群算法、灰度算法、支持向量機等都已有人將其應(yīng)用于該領(lǐng)域并取得了較為出色的成果[14]。
粒子群算法(PSO算法)本身就是一種收斂速度快、全局搜索能力強、魯棒性強的算法。使用PSO算法對BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化可以有效解決BP神經(jīng)網(wǎng)絡(luò)的缺點,改進算法精度以及收斂時間。PSO算法目前已經(jīng)廣泛應(yīng)用于包括風(fēng)電在內(nèi)的諸多領(lǐng)域之中,但在光伏發(fā)電功率的預(yù)測方面卻鮮有研究。
在PSO-BP算法中,依舊采用BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),即輸入層-隱含層-輸出層的結(jié)構(gòu)方式,但不使用梯度下降的方式進行訓(xùn)練,而是將隱含層中各個權(quán)值/閾值作為PSO算法的粒子,神經(jīng)元個數(shù)作為PSO算法的種群數(shù)。在算法進行訓(xùn)練學(xué)習(xí)時,首先將隨機生成的粒子初始值賦予BP網(wǎng)絡(luò)中對應(yīng)神經(jīng)元的閾值與權(quán)值并得到訓(xùn)練結(jié)果,計算與期望值之間的誤差E。自然,由于粒子初始值為隨機值,會產(chǎn)生極大誤差。隨后將該組權(quán)值/閾值作為粒子,使用PSO算法對粒子的位置和速度進行迭代,表達式如下:
V1=W·V0+c1·rand·(pBest-X0)+
c2·rand·(gBest-X0)
X1=X0+V1
式中:V1是待更新的速度;V0是當(dāng)前速度;W是慣性權(quán)重;c1、c2是學(xué)習(xí)因數(shù);pBest與gBest分別為個體最優(yōu)與群體最優(yōu)值;X1為待更新位置;X0為當(dāng)前位置;rand為隨機數(shù),區(qū)間為(-1,1)。
BSO-BP算法流程框圖如圖1所示。
圖1 PSO-BP流程框圖
PSO算法進行迭代尋優(yōu)之后,將迭代所得到的粒子值再次賦予BP網(wǎng)絡(luò)中對應(yīng)神經(jīng)元的閾值與權(quán)值并進行訓(xùn)練得到訓(xùn)練一次之后的結(jié)果,再次計算誤差E。如此反復(fù)直至誤差E縮小到設(shè)定誤差為止。
應(yīng)用PSO-BP算法對光伏發(fā)電功率進行預(yù)測,需要有歷史數(shù)據(jù)作為支持來挑選相似日作為基準(zhǔn)。選擇單日最高溫度、單日最低溫度、單日太陽輻射強度,作為挑選相似日的參考量。通過計算歷史數(shù)據(jù)與待測日的歐氏距離來確定相似日,歐式距離為
式中:tmax、tmin是歷史數(shù)據(jù)中各單日最高、最低溫度;t0max、t0min是待測日的最高、最低溫度;Q是歷史數(shù)據(jù)中各單日輻射強度;Q0是待測日輻射強度。
基于上述方式,可以挑選出與待測日的天氣環(huán)境相似的數(shù)個單日,作為相似日,并獲得該日8-17時每小時節(jié)點的對應(yīng)輸出功率。將這10個功率與當(dāng)天的最高、最低溫度、輻射強度作為一組數(shù)據(jù),反復(fù)此過程,即可獲得數(shù)組數(shù)據(jù)。對數(shù)據(jù)進行隨機分組并代入算法中進行訓(xùn)練,即可得出最終用于預(yù)測的模型。
由于輸入數(shù)據(jù)的量級以及單位各有不同,直接將原始數(shù)據(jù)輸入網(wǎng)絡(luò)會使得微小的數(shù)據(jù)變動引起較大的結(jié)果變化,對結(jié)果有較大的影響。為了避免這類誤差的產(chǎn)生,應(yīng)對所有數(shù)據(jù)進行歸一化處理。歸一化后所有數(shù)據(jù)會被歸為[-1,1]區(qū)間,表達式如下:
式中:y為歸一化的結(jié)果;x為原始數(shù)據(jù);xmax和xmin分別為該組數(shù)據(jù)中的最大值與最小值;ymax和ymin分別為歸一化的上下限。
選用待測日的輻射強度、最高溫度、最低溫度,以及基準(zhǔn)日8-17時的光伏發(fā)電功率數(shù)據(jù),共13個數(shù)據(jù)作為輸入,即輸入節(jié)點為13個。輸出節(jié)點數(shù)為待測日8-17時的光伏發(fā)電功率,即10個。
神經(jīng)元個數(shù)確定方式目前尚無統(tǒng)一定論。較為主流的觀點是使用Kolmogorov定理大致確定神經(jīng)元個數(shù),之后通過try-error-try,即反復(fù)嘗試的方法確定最優(yōu)神經(jīng)元個數(shù)。
Kolmogorov定理公式如下:
或
n1=log2(n2)
式中:n2為理想中的神經(jīng)元個數(shù);n1為輸入層節(jié)點個數(shù);m為輸出層節(jié)點個數(shù);a為[1,10]區(qū)間內(nèi)的任意數(shù)。
通過上述方式,確定神經(jīng)元個數(shù)為15個。
如2.2節(jié)所述方法,在該季度的歷史數(shù)據(jù)庫中挑選與待測日歐氏距離最小的10個值所對應(yīng)的日期作為相似日。在兩兩隨機分組后,使用Matlab工具箱的指令,建立5組13-15-10的BP神經(jīng)網(wǎng)絡(luò)并應(yīng)用2.1節(jié)中的PSO算法進行迭代尋優(yōu),將最終群體最優(yōu)值回代入網(wǎng)絡(luò),以此實現(xiàn)對網(wǎng)絡(luò)權(quán)值/閾值的訓(xùn)練。分別得到5組網(wǎng)絡(luò)預(yù)測結(jié)果之后,計算每組的相對誤差,取誤差最小的模型作為最終算法模型。
采用美國俄勒岡大學(xué)光伏站的公開數(shù)據(jù)[15],根據(jù)第3節(jié)的內(nèi)容建立預(yù)測模型,采用ASHLAND 2016年4月光伏數(shù)據(jù)作為數(shù)據(jù)樣本,使用Matlab進行仿真。在進行誤差對比之后選擇第二組神經(jīng)網(wǎng)絡(luò)作為最終預(yù)測模型,并應(yīng)用該模型對4月16日的光伏發(fā)電功率進行預(yù)測,其預(yù)測的結(jié)果如圖2所示。
圖2 PSO-BP算法的預(yù)測曲線
由圖2可以得出,該算法整體擬合程度較好。在上午和下午的3個時點的擬合精度較高,而在中午和日落前擬合精度略差。
誤差修正曲線如圖3所示??梢钥闯觯?00次之前誤差下降率非常高,說明該算法可以迅速獲得擬合區(qū)間;在300次迭代之后,誤差已經(jīng)趨于穩(wěn)定。
圖3 誤差修正曲線
誤差分析圖如圖4所示??梢缘贸觯傮w相對誤差約為4.4%。而BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度在8%~10%之間。由此可見,使用PSO-BP算法進行預(yù)測可以大幅提高整體預(yù)測精度。分析后發(fā)現(xiàn),誤差較大的主要時間為日落時,分析認(rèn)為在日落時存在太陽斜射電池板、云層遮擋、大氣折射等因素導(dǎo)致整體出力波動較大。并且,在原始數(shù)據(jù)中17時的功率波動最大可達100%,這也是導(dǎo)致最終預(yù)測結(jié)果差距較大的主要原因。
圖4 各時段相對誤差曲線
PSO-BP算法在光伏發(fā)電的預(yù)測領(lǐng)域應(yīng)用較少,針對該算法在光伏發(fā)電的功率預(yù)測中的關(guān)鍵問題進行了一些研究,并進行了仿真分析與驗證。但由于研究條件等的限制,尚有需進一步完善的地方:
1)采用了美國俄勒岡大學(xué)光伏電站的公開數(shù)據(jù),但中國幅員遼闊,不同的地區(qū)條件各不相同,之后研究方向轉(zhuǎn)向?qū)鴥?nèi)光伏電站研究。
2)應(yīng)用PSO算法對BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,確實增加了整體預(yù)測精度,但對日落時的預(yù)測波動仍較大。今后研究應(yīng)著重于提高對日落前功率預(yù)測的精度,以期進一步提高整體精度以及穩(wěn)定性。