邱桂華,何引生,邱楠海,錢美伊
(1.南方電網(wǎng)廣東佛山供電局 廣東 佛山 528000;2. 煙臺(tái)海頤軟件股份有限公司,山東 煙臺(tái) 264000)
光伏發(fā)電具有高效、低污染、安全便利等特點(diǎn)[1],近年來,光伏發(fā)電功率預(yù)測(cè)成為了國(guó)內(nèi)外的研究熱點(diǎn)。由于光伏發(fā)電具有間歇性和隨機(jī)性,大規(guī)模的光伏并網(wǎng)可能會(huì)影響到電力系統(tǒng)的穩(wěn)定性與安全性[2]。高精度的光伏發(fā)電功率預(yù)測(cè)可以提供功率的瞬變信息,對(duì)保障電網(wǎng)平穩(wěn)運(yùn)行、優(yōu)化電力系統(tǒng)調(diào)度具有重要的意義[3]。
國(guó)內(nèi)外針對(duì)光伏發(fā)電功率預(yù)測(cè)做了大量研究。文獻(xiàn)[4]使用K-means聚類算法和改進(jìn)多輸出支持向量機(jī)(support vector machine,SVM)模型預(yù)測(cè)光伏發(fā)電功率,并計(jì)算了3種數(shù)學(xué)相關(guān)系數(shù);但該算法模型相對(duì)簡(jiǎn)單,預(yù)測(cè)精度有待提升。文獻(xiàn)[5]提出了基于森林模型的光伏發(fā)電功率(forest for photovoltaic power generation, FPPG)預(yù)測(cè)方法,通過集成多個(gè)回歸樹,構(gòu)建森林模型預(yù)測(cè)光伏發(fā)電功率;但該方法選擇的模型種類相對(duì)單一,挖掘的特征信息不夠完善,因而預(yù)測(cè)精度欠佳。文獻(xiàn)[6]詳細(xì)分析了輻照度、天氣類型、氣溫等多種氣象因子對(duì)光伏發(fā)電站輸出功率的影響,但是并未對(duì)光伏發(fā)電功率進(jìn)行預(yù)測(cè)。文獻(xiàn)[7]使用了基于高斯核函數(shù)的SVM和長(zhǎng)短期記憶(long short-term memory,LSTM)算法,并將二者的預(yù)測(cè)結(jié)果與深度置信網(wǎng)絡(luò)(deep belief networks,DBN)級(jí)聯(lián),進(jìn)一步訓(xùn)練DBN模型,提升了光伏發(fā)電功率預(yù)測(cè)精度,但整體的訓(xùn)練速度較為緩慢。文獻(xiàn)[8]用門控循環(huán)單元(gate recurrent unit,GRU)模型代替LSTM模型,引入注意力機(jī)制優(yōu)化GRU,并使用粒子群優(yōu)化(particle swarm optimization,PSO)算法調(diào)整神經(jīng)網(wǎng)絡(luò)的超參數(shù),在一定程度上提升了運(yùn)行速度。文獻(xiàn)[9]集成Mean-shift算法和層次聚類,并使用極限梯度提升(extreme gradient boosting,XGBoost)算法預(yù)測(cè)光伏發(fā)電功率,運(yùn)行速度較快,但是計(jì)算效率仍有待提升。文獻(xiàn)[10]使用了集合經(jīng)驗(yàn)?zāi)B(tài)分解,將1條光伏發(fā)電功率曲線分解為多組本征模態(tài)分量,各分量分別采用PSO算法優(yōu)化的LSTM實(shí)現(xiàn)訓(xùn)練與預(yù)測(cè),最后將各分量的預(yù)測(cè)結(jié)果累加;但模態(tài)分解可能會(huì)產(chǎn)生預(yù)測(cè)誤差的累積問題,從而導(dǎo)致該方法預(yù)測(cè)精度欠佳。文獻(xiàn)[11]使用K-means++聚類算法劃分訓(xùn)練集,計(jì)算相關(guān)系數(shù)選取氣象因子,使用基本的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)提取二維氣象矩陣特征,并且用CNN的預(yù)測(cè)結(jié)果修正LSTM的預(yù)測(cè)值;但該方法中LSTM的訓(xùn)練、預(yù)測(cè)耗時(shí)長(zhǎng),除此之外,基本的CNN結(jié)構(gòu)較為簡(jiǎn)單,提取特征的豐富度有待完善。
基于上述文獻(xiàn)存在的不足,本研究提出考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)方法:首先,采用皮爾遜相關(guān)系數(shù)法,篩選關(guān)聯(lián)氣象因子,并基于余弦距離改進(jìn)的K-means++聚類算法,將訓(xùn)練數(shù)據(jù)集高效地劃分為K個(gè)類簇;其次,在第1路預(yù)測(cè)中,考慮到光伏發(fā)電可能會(huì)受到近期氣象因素的影響,構(gòu)造二維氣象矩陣,并輸入柯西變異改進(jìn)的特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)模型(采用柯西變異策略優(yōu)化FPN目標(biāo)函數(shù),一定程度上可防止神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)解),提取二維氣象矩陣的深層融合特征,從而挖掘氣象因子對(duì)光伏發(fā)電功率的累積影響;接著,在第2路預(yù)測(cè)中,訓(xùn)練高效的輕量梯度提升機(jī)(light gradient boosting machine,LightGBM)算法模型,并借鑒集成學(xué)習(xí)的思路;最后,將第1、2路預(yù)測(cè)的結(jié)果按照(1-0.618)∶0.618的比例加權(quán)求和,作為最終的光伏發(fā)電功率預(yù)測(cè)值。
對(duì)光伏發(fā)電可能造成影響的因素主要包括太陽能電池板的裝機(jī)容量,以及各種類型的氣象因子,例如輻照度、天氣類型、濕度、PM2.5、氣溫等。將上述各項(xiàng)指標(biāo)數(shù)據(jù)按照時(shí)刻對(duì)齊后,計(jì)算各影響因子與光伏發(fā)電功率之間的皮爾遜相關(guān)系數(shù)[12],判斷各類影響因子與光伏發(fā)電功率的相關(guān)關(guān)系,從而篩選機(jī)器學(xué)習(xí)模型所需要的各項(xiàng)關(guān)聯(lián)氣象因子[13]。皮爾遜相關(guān)系數(shù)
(1)
此處相關(guān)系數(shù)閾值設(shè)置為0.3,只保留|r|≥0.3的氣象因子,將其作為關(guān)聯(lián)氣象因子。
K-means算法是基于劃分的常規(guī)聚類算法,其目的是將對(duì)象集劃分為若干個(gè)類簇,每個(gè)簇內(nèi)數(shù)據(jù)的相似度較高,而簇間數(shù)據(jù)的相似度則較低。K-means算法具有原理簡(jiǎn)單、收斂快速的優(yōu)點(diǎn),但是其聚類效果可能會(huì)受到初始聚類中心的影響;因此,本研究采用K-means的改進(jìn)算法——K-means++算法[11]為基線,對(duì)影響光伏發(fā)電功率的各項(xiàng)因子進(jìn)行聚類。
由于本文所提算法使用的數(shù)據(jù)集樣本數(shù)據(jù)量大,氣象因子種類較多,為了提高計(jì)算效率,將原K-means++算法中的歐式距離度量指標(biāo)替換為余弦距離[14],余弦距離
(2)
式中:x、y為數(shù)據(jù)集的任意2個(gè)樣本,二者均為具有相同維度的N維向量;xn、yn分別為向量x、y當(dāng)中每個(gè)維度的數(shù)值。計(jì)算的余弦距離d(x,y)取值范圍為[0,2]:d(x,y)越接近0,說明向量x與y越近似;d(x,y)越接近2,說明向量x與y的差異越大。
采用余弦距離改進(jìn)的K-means++聚類算法的計(jì)算步驟如下:
a)輸入數(shù)據(jù)集合C、聚類個(gè)數(shù)K。
b)從集合C中隨機(jī)選取一個(gè)點(diǎn)c1,作為第1個(gè)聚類中心向量。
c)使用式(2)計(jì)算集合C中的第j個(gè)向量xj到聚類中心的余弦距離d(xj)。對(duì)距離的平方求和,可以得到∑d2(xj)。
d)計(jì)算每個(gè)點(diǎn)被選為下一個(gè)聚類中心的概率P,
(3)
e)生成[0,1]內(nèi)的隨機(jī)數(shù)ρ,用ρ依次減去P(1),P(2),…,P(j),得到差值首次不大于0的P(j),將其對(duì)應(yīng)的點(diǎn)作為下一個(gè)聚類中心。
f)重復(fù)步驟c)—步驟e),可以找到K個(gè)初始聚類中心{ck},k=1,2,…,K。
g)計(jì)算集合C中每個(gè)點(diǎn)到各初始聚類中心ck的余弦距離,找到距離最近的聚類中心,將該點(diǎn)劃分到對(duì)應(yīng)的子集合中。
h)計(jì)算各子集合的均值,并用該均值更新聚類中心。使用
(4)
計(jì)算誤差平方和。
i)重復(fù)步驟g)—步驟h),直至誤差平方和E收斂。
經(jīng)過上述步驟,將篩選后的數(shù)據(jù)集高效地劃分為K個(gè)子簇,每個(gè)子簇內(nèi)的變量具有相近的特性,這利于后續(xù)機(jī)器學(xué)習(xí)算法模型更好地?cái)M合訓(xùn)練數(shù)據(jù),進(jìn)而提升預(yù)測(cè)效果。
光伏發(fā)電功率可能受到短期內(nèi)多氣象因子的累積影響,因此需要設(shè)計(jì)算法挖掘關(guān)聯(lián)氣象因子對(duì)光伏發(fā)電功率的累積影響。首先,構(gòu)建二維氣象矩陣,并將其送入FPN模型,生成多層級(jí)融合的氣象特征圖。采用柯西變異策略優(yōu)化FPN的目標(biāo)函數(shù),在一定程度上可以防止神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)解。
在使用聚類算法得到的每個(gè)子簇內(nèi),將間隔15 min采樣得到的關(guān)聯(lián)氣象因子(如輻照度、PM2.5、氣溫等)歷史數(shù)據(jù),按照時(shí)間先后排序?qū)R,構(gòu)造二維氣象矩陣,如圖1所示。
圖1 二維氣象矩陣
在圖1的二維氣象矩陣中:每一列代表不同的氣象因子種類(比如輻照度、天氣類型、濕度、PM2.5、氣溫等),以及光伏裝機(jī)容量;每一行代表同一時(shí)間的數(shù)據(jù)。通過構(gòu)建二維氣象矩陣,模擬CNN的輸入樣本圖像,即是將二維氣象矩陣中的氣象數(shù)據(jù)當(dāng)作樣本圖像各個(gè)位置的像素值,并使用卷積核計(jì)算特征圖。由于裝機(jī)容量對(duì)預(yù)測(cè)結(jié)果有較大的影響,需要在氣象矩陣最后一列增加對(duì)應(yīng)時(shí)刻的裝機(jī)容量。
以CNN為代表的深度學(xué)習(xí)算法,憑借卓越的性能成為計(jì)算機(jī)視覺領(lǐng)域的主流算法之一。CNN內(nèi)部采用了局部連接和參數(shù)共享,具有強(qiáng)大的特征自提取能力,可以充分提取二維數(shù)據(jù)所蘊(yùn)含的特征信息。
作為CNN的一種改進(jìn)算法,F(xiàn)PN[15]算法能夠提取多層級(jí)的融合特征圖,該特征圖兼具低層級(jí)的細(xì)節(jié)特征以及高層級(jí)的深層語義特征,從而顯著提升CNN的性能。FPN算法流程如下:首先,設(shè)置3個(gè)卷積階段,在每個(gè)卷積階段內(nèi),都含有卷積層、激活層和批量歸一化層等;在相鄰的卷積階段之間,采用池化操作實(shí)現(xiàn)特征圖尺度的下采樣;得到各個(gè)卷積階段的輸出特征圖之后,按照由深層至淺層的順序,依次放大特征圖的尺度,至與相臨較低層級(jí)的特征圖具有相同尺度,并對(duì)二者執(zhí)行加法操作;經(jīng)過上述迭代計(jì)算,可以得到FPN多層級(jí)融合特征圖。
在本文提出聚類算法劃分的各個(gè)子簇中,分別訓(xùn)練不同的FPN算法模型:將各個(gè)時(shí)刻的光伏發(fā)電功率作為訓(xùn)練目標(biāo),將各個(gè)時(shí)刻與之前3個(gè)連續(xù)時(shí)刻內(nèi)的二維氣象矩陣(含有各個(gè)時(shí)刻的裝機(jī)容量)作為輸入,通過監(jiān)督學(xué)習(xí)的方法訓(xùn)練FPN模型,從而確定其各項(xiàng)參數(shù)。在預(yù)測(cè)過程中,根據(jù)即時(shí)氣象因子找到對(duì)應(yīng)的類簇,并將待預(yù)測(cè)時(shí)刻以及之前連續(xù)3個(gè)時(shí)刻內(nèi)的二維氣象矩陣輸入該類簇的FPN模型,從而得到考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)值。
原始的FPN算法是為計(jì)算機(jī)視覺領(lǐng)域的目標(biāo)檢測(cè)任務(wù)而設(shè)計(jì)的,其目標(biāo)函數(shù)包含分類損失函數(shù)和邊界框回歸損失函數(shù),而本研究只需要預(yù)測(cè)光伏發(fā)電功率數(shù)值;因此,本文提出算法只需使用其中的smooth L1損失函數(shù)來訓(xùn)練算法模型。損失函數(shù)
(5)
式中e為訓(xùn)練誤差。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練采用的是梯度下降法,這可能會(huì)陷入局部最優(yōu)解,而忽略全局最優(yōu)解。為此,本研究引入柯西變異策略[16]來優(yōu)化FPN的目標(biāo)函數(shù),這樣可以使得神經(jīng)網(wǎng)絡(luò)的動(dòng)態(tài)回調(diào)過程中,具有相對(duì)更寬泛的搜尋范圍,從而提升全局尋優(yōu)能力。以原點(diǎn)為中心的標(biāo)準(zhǔn)柯西分布的概率密度函數(shù)
(6)
式中Θ為標(biāo)準(zhǔn)柯西概率分布函數(shù)中的自變量。
柯西分布是一種連續(xù)的概率分布,其概率密度函數(shù)在原點(diǎn)處的取值相對(duì)較小,函數(shù)圖像的兩端較為扁長(zhǎng),接近0的速率也相對(duì)較慢,有利于產(chǎn)生更大的擾動(dòng)。引入柯西變異策略后,F(xiàn)PN的目標(biāo)函數(shù)改進(jìn)為
(7)
實(shí)時(shí)氣象因子對(duì)光伏發(fā)電功率的影響非常明顯,因此,需要挖掘光伏發(fā)電功率與即時(shí)氣象因子之間的關(guān)系。LightGBM[17]算法屬于集成學(xué)習(xí)中的梯度提升決策樹算法,其前身XGBoost算法的每次迭代需要遍歷整體訓(xùn)練數(shù)據(jù)多次,無法滿足海量數(shù)據(jù)的擾動(dòng)分析需求。與之相比,LightGBM算法采用多線程并行、直方圖加速算法,并采用單邊梯度采樣、互斥稀疏特征綁定來預(yù)處理數(shù)據(jù)。其使用了帶深度限制的Leaf-wise生長(zhǎng)策略,在減少計(jì)算時(shí)間的同時(shí),可以有效防止過擬合現(xiàn)象,提升預(yù)測(cè)準(zhǔn)確率。XGBoost、LightGBM算法訓(xùn)練過程的可視化對(duì)比如圖2所示。
圖2 XGBoost與LightGBM的可視化對(duì)比
由圖2對(duì)比可知,LightGBM算法在每次迭代時(shí)只增加1個(gè)葉子結(jié)點(diǎn),而XGBoost需要增加1層葉子結(jié)點(diǎn),因而LightGBM相對(duì)更快速。LightGBM算法的詳細(xì)實(shí)現(xiàn)過程如下:
a)LightGBM算法在第t次迭代時(shí)的優(yōu)化目標(biāo)是獲得弱學(xué)習(xí)器ht,它能夠使本次迭代損失函數(shù)
L(φi,Ft(θi))=L(φi,Ft-1(θi)+ht(θi))
(8)
最小,式中:θi為第i個(gè)樣本數(shù)據(jù)的因變量部分;φi為第i個(gè)樣本數(shù)據(jù)的訓(xùn)練目標(biāo);ht(θi)為第t次迭代得到的弱學(xué)習(xí)器ht對(duì)第i個(gè)樣本的預(yù)測(cè)值;Ft(θi)、Ft-1(θi)分別為第t、t-1次迭代得到的強(qiáng)學(xué)習(xí)器Ft、Ft-1對(duì)第i個(gè)樣本的光伏發(fā)電功率預(yù)測(cè)值。
b)利用上一次強(qiáng)學(xué)習(xí)器損失函數(shù)的負(fù)梯度,擬合本次迭代弱學(xué)習(xí)器訓(xùn)練目標(biāo)的近似值。第i個(gè)訓(xùn)練樣本經(jīng)第t次迭代后的負(fù)梯度
(9)
c)使用平方差函數(shù)近似擬合ht(θi),
(10)
式中:hct為第t次迭代生成的各個(gè)候選新弱學(xué)習(xí)器;Ht為hct構(gòu)成的集合;hct(θi)為新弱學(xué)習(xí)器hct對(duì)第i個(gè)樣本的預(yù)測(cè)值。
d)得到第t次迭代生成的弱學(xué)習(xí)器ht,并最終得到第t次迭代生成的強(qiáng)學(xué)習(xí)器Ft,其與上一次迭代的強(qiáng)學(xué)習(xí)器Ft-1之間滿足
Ft(θi)=ht(θi)+Ft-1(θi).
(11)
在本文提出聚類算法劃分的每個(gè)子簇內(nèi),將各個(gè)時(shí)刻的光伏發(fā)電功率作為訓(xùn)練目標(biāo),將與之關(guān)聯(lián)的氣象因子、裝機(jī)容量作為模型輸入,分別訓(xùn)練不同的LightGBM算法模型。在預(yù)測(cè)時(shí),根據(jù)即時(shí)氣象因子找到對(duì)應(yīng)的類簇,并向該類簇的LightGBM模型輸入即時(shí)關(guān)聯(lián)氣象因子和裝機(jī)容量,從而預(yù)測(cè)即時(shí)光伏發(fā)電功率。
本文提出的考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)的總體流程如圖3所示。
如圖3所示,首先獲取各個(gè)光伏發(fā)電站的歷史真實(shí)光伏發(fā)電功率、裝機(jī)容量、各項(xiàng)候選氣象因子。采用皮爾遜相關(guān)系數(shù)法,篩選光伏發(fā)電的各項(xiàng)關(guān)聯(lián)氣象因子?;谟嘞揖嚯x的K-means++聚類算法,將訓(xùn)練數(shù)據(jù)集高效劃分為K個(gè)子簇,在每個(gè)子簇當(dāng)中,分2路預(yù)測(cè)短期光伏發(fā)電功率:在第1路預(yù)測(cè)中,使用關(guān)聯(lián)氣象因子構(gòu)建二維氣象矩陣,并送入改進(jìn)的FPN模型,提取氣象矩陣的深層融合特征,修改原始FPN損失函數(shù),并引入柯西變異策略優(yōu)化FPN損失函數(shù),輔助神經(jīng)網(wǎng)絡(luò)跳出局部最優(yōu)解;在第2路中,訓(xùn)練LightGBM算法模型,實(shí)現(xiàn)光伏發(fā)電功率的即時(shí)預(yù)測(cè)。最后,借鑒集成學(xué)習(xí)的思路,將上述2路預(yù)測(cè)值按照黃金分割比(1-0.618)∶0.618的比例加權(quán)求和,得到最終的光伏發(fā)電功率預(yù)測(cè)值,實(shí)現(xiàn)本文提出的考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)方法。
圖3 本文提出的算法流程
為完成本研究的實(shí)驗(yàn)內(nèi)容,使用的服務(wù)器信息如下:硬件配置方面,CPU為Intel Xeon E5-2678 2.50 GHz,GPU為NVIDIA GeForce GTX 1080 Ti,內(nèi)存容量32 GB,硬盤容量10 TB;軟件環(huán)境方面,操作系統(tǒng)為L(zhǎng)inux Ubuntu 21.04,編程語言為Python語言,Python庫為Anaconda3,Python版本號(hào)為3.6.5,數(shù)據(jù)庫為Oracle 11g Server。
本實(shí)驗(yàn)使用的數(shù)據(jù)為某地級(jí)市內(nèi)的數(shù)十個(gè)供電所光伏發(fā)電相關(guān)數(shù)據(jù),主要包括光伏發(fā)電功率、太陽能電池板的裝機(jī)容量、各項(xiàng)候選氣象因子等。其中,光伏發(fā)電功率、裝機(jī)容量來自于數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(supervisory control and data acquisition,SCADA)和配電管理系統(tǒng)(distribution management system,DMS),各項(xiàng)氣象數(shù)據(jù)主要來自于互聯(lián)網(wǎng)的氣象數(shù)據(jù)接口。實(shí)驗(yàn)數(shù)據(jù)的時(shí)間范圍為2021年3月至10月共8個(gè)月,數(shù)據(jù)的采樣時(shí)刻點(diǎn)間隔為15 min。由于分布式光伏的數(shù)據(jù)量相對(duì)較大,為保證腳本程序運(yùn)行的流暢性和穩(wěn)定性,使用大型Oracle 11g數(shù)據(jù)庫實(shí)現(xiàn)相關(guān)數(shù)據(jù)的讀寫與存儲(chǔ)。通過多組對(duì)比實(shí)驗(yàn),比較各項(xiàng)算法在不同氣象條件下的預(yù)測(cè)效果和精度,以驗(yàn)證本文提出方法的有效性和可行性。
可能影響光伏發(fā)電功率的候選氣象因子有輻照度、氣溫、濕度、PM2.5、天氣類型、大氣壓強(qiáng)、風(fēng)速、風(fēng)向、降水量。將光伏發(fā)電功率與各項(xiàng)候選氣象因子根據(jù)時(shí)間對(duì)齊,然后計(jì)算皮爾遜相關(guān)系數(shù),結(jié)果見表1。
表1 候選氣象因子的皮爾遜相關(guān)系數(shù)
由表1可知:在眾多候選氣象因子中,輻照度與光伏發(fā)電功率之間的皮爾遜相關(guān)系數(shù)為0.93,二者具有最強(qiáng)的相關(guān)關(guān)系;風(fēng)向與光伏發(fā)電功率的皮爾遜相關(guān)系數(shù)為0.13,二者之間的相關(guān)性最弱。只保留皮爾遜相關(guān)系數(shù)絕對(duì)值不小于0.3的對(duì)應(yīng)氣象因子,得到篩選后的關(guān)聯(lián)氣象因子有輻照度、氣溫、濕度、PM2.5、天氣類型、降水量。使用篩選后的關(guān)聯(lián)氣象因子、光伏裝機(jī)容量,作為聚類算法和機(jī)器學(xué)習(xí)模型的輸入數(shù)據(jù)。
為了實(shí)現(xiàn)光伏發(fā)電功率與各項(xiàng)關(guān)聯(lián)氣象因子的變化關(guān)系可視化,以輻照度為例進(jìn)行分析。按照時(shí)間維度,選取連續(xù)多天的輻照度、光伏發(fā)電功率數(shù)據(jù),對(duì)比結(jié)果如圖4所示。
圖4 光伏發(fā)電功率與輻照度總體對(duì)比
由圖4可知,輻照度與光伏發(fā)電功率的變化趨勢(shì)非常接近,具有較強(qiáng)的相關(guān)性。選取其中的2日數(shù)據(jù)深入分析,對(duì)比結(jié)果如圖5所示。
圖5 光伏發(fā)電功率與輻照度詳細(xì)對(duì)比
結(jié)合圖4、圖5可以看出,雖然光伏發(fā)電功率與輻照度的大致走勢(shì)相近,但是在局部位置還是存在不少跳點(diǎn),例如點(diǎn)54、點(diǎn)61、點(diǎn)65、點(diǎn)140、點(diǎn)150和點(diǎn)153等。為得到光伏發(fā)電功率與各項(xiàng)關(guān)聯(lián)因子的復(fù)雜變化關(guān)系,構(gòu)建相關(guān)的機(jī)器學(xué)習(xí)算法模型,自主學(xué)習(xí)該復(fù)雜關(guān)系。
將篩選后的各項(xiàng)關(guān)聯(lián)氣象因子、裝機(jī)容量,輸入改進(jìn)的K-means++算法,得到K個(gè)類簇。由于需要預(yù)先給定K-means++算法的類簇?cái)?shù)量K,因此采用戴維森堡丁指數(shù)(Davies-Bouldin index,DBI)指標(biāo)來評(píng)估聚類效果,從而確定最優(yōu)聚類數(shù)量K。DBI指標(biāo)
(12)
其中
(13)
表2 不同聚類數(shù)的DBI指標(biāo)
由表2可知,當(dāng)聚類數(shù)量K值取4,對(duì)應(yīng)的DBI指標(biāo)最小為1.40,說明這時(shí)的聚類效果最好;因此,在本研究實(shí)驗(yàn)中,將使用余弦距離改進(jìn)的K-means++算法聚類個(gè)數(shù)設(shè)置為4。
選取具有代表性氣象特征的2日測(cè)試數(shù)據(jù)進(jìn)行對(duì)比分析。改進(jìn)的K-means++聚類算法將篩選后的數(shù)據(jù)集高效劃分為4個(gè)類簇后,分別使用基線算法、各項(xiàng)改進(jìn)算法實(shí)現(xiàn)預(yù)測(cè),并將預(yù)測(cè)結(jié)果可視化。
以某供電所2021年9月4日為例,當(dāng)天的天氣類型為晴轉(zhuǎn)陰,輻照度數(shù)據(jù)如圖6所示,可知:當(dāng)天輻照度最大值為800 W/m2;上午的輻照度相對(duì)較高,為晴天;下午的輻照度相對(duì)較低,為陰天。
圖6 待預(yù)測(cè)日的輻照度(晴轉(zhuǎn)陰)
該供電所當(dāng)天的光伏發(fā)電功率預(yù)測(cè)結(jié)果如圖7所示,圖中Actual表示光伏發(fā)電功率真實(shí)值,F(xiàn)PN表示只使用FPN算法預(yù)測(cè)多氣象因子累積影響的光伏發(fā)電功率,F(xiàn)PN-C表示單獨(dú)使用柯西變異優(yōu)化的FPN預(yù)測(cè)結(jié)果,LightGBM表示只使用LightGBM算法預(yù)測(cè)即時(shí)光伏發(fā)電功率,Proposed表示本文所提預(yù)測(cè)算法的結(jié)果。
圖7 光伏發(fā)電功率預(yù)測(cè)對(duì)比(晴轉(zhuǎn)陰)
由圖7可知:上午的光伏發(fā)電功率相對(duì)較高,最大值約2 500 kW;下午的光伏發(fā)電功率相對(duì)較低,最大值約為2 000 kW。從整體上來看:?jiǎn)为?dú)使用FPN算法在光伏發(fā)電功率實(shí)際值突變情況下的預(yù)測(cè)欠佳,其預(yù)測(cè)結(jié)果最不符合真實(shí)功率;單獨(dú)使用柯西變異優(yōu)化的FPN預(yù)測(cè)效果有所提升;單獨(dú)使用LightGBM算法的預(yù)測(cè)效果也相對(duì)較好;與其他各項(xiàng)算法相比,本文提出的算法預(yù)測(cè)值最符合實(shí)際值,具有最好的預(yù)測(cè)效果。
以某供電所2021年8月9日為例,當(dāng)天的天氣類型為中雨,輻照度數(shù)據(jù)如圖8所示,可知當(dāng)天的輻照度最大值為175 W/m2,上午的輻照度相對(duì)較高,下午的輻照度相對(duì)較低。
圖8 待預(yù)測(cè)日的輻照度(中雨)
該供電所當(dāng)天的光伏發(fā)電功率預(yù)測(cè)結(jié)果如圖9所示,可知:上午的光伏發(fā)電功率相對(duì)較高,最大值約550 kW;下午的光伏發(fā)電功率相對(duì)較低,最大值約300 kW;單獨(dú)使用FPN預(yù)測(cè)時(shí),在上午、下午的幾個(gè)時(shí)刻的預(yù)測(cè)結(jié)果出現(xiàn)明顯偏離,預(yù)測(cè)效果相對(duì)較差;單獨(dú)使用柯西變異優(yōu)化的FPN預(yù)測(cè)效果有所改善;而單獨(dú)使用LightGBM的預(yù)測(cè)效果相對(duì)較好;與各項(xiàng)對(duì)照算法相比,本文提出的算法具有最好的預(yù)測(cè)效果。
圖9 光伏發(fā)電功率預(yù)測(cè)對(duì)比(中雨)
使用2021年3月至8月的數(shù)據(jù)作為訓(xùn)練集,使用2021年9月、10月的數(shù)據(jù)作為測(cè)試集。分別使用平均相對(duì)誤差(mean relative error,MRE)、均方根誤差(root mean square error,RMSE)來計(jì)算光伏發(fā)電功率的預(yù)測(cè)精度。平均相對(duì)誤差
(14)
均方根誤差
(15)
式(14)、(15)中:Ppi為第i個(gè)時(shí)刻的光伏發(fā)電功率預(yù)測(cè)值;Pti為第i個(gè)時(shí)刻的光伏發(fā)電功率真實(shí)值;I為時(shí)刻數(shù)。
在測(cè)試集中對(duì)比各項(xiàng)改進(jìn)算法和本文所提算法的精度,結(jié)果見表3,表中Proposed-no-K表示本文所提但不使用聚類算法的預(yù)測(cè)結(jié)果。
表3 各項(xiàng)算法的預(yù)測(cè)精度對(duì)比
由表3可知:①從平均相對(duì)誤差來看,本文所提但不使用聚類算法的方法精度最低,為84.23%;單獨(dú)使用FPN預(yù)測(cè)光伏發(fā)電功率的精度稍好,為85.37%;單獨(dú)使用柯西變異優(yōu)化的FPN預(yù)測(cè)精度有所提升,為86.24%;單獨(dú)使用LightGBM算法的預(yù)測(cè)精度較好,為87.56%;而使用本文提出的光伏發(fā)電功率預(yù)測(cè)算法具有最高的精度88.12%。②從均方根誤差來看,本文所提但不使用聚類算法的方法精度最低,為77.12%;單獨(dú)使用FPN的精度稍好,為78.11%;單獨(dú)使用柯西變異改進(jìn)的FPN精度提升至79.13%;單獨(dú)使用LightGBM算法的預(yù)測(cè)精度相對(duì)較好,為81.54%;與上述算法相比,本文提出的算法具有最高的預(yù)測(cè)精度,為82.03%。
綜上,分別從平均相對(duì)誤差、均方根誤差來看,與各項(xiàng)對(duì)照算法相比,本文提出的考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)算法都具有最好的預(yù)測(cè)精度。
本文提出了考慮多氣象因子累積影響的光伏發(fā)電功率預(yù)測(cè)方法,主要內(nèi)容有:
a)使用余弦距離改進(jìn)的K-means++聚類算法,將含有關(guān)聯(lián)氣象因子的數(shù)據(jù)集進(jìn)行高效分簇。
b)在每個(gè)子簇中,構(gòu)建二維氣象矩陣,并送入FPN模型提取深層融合特征。損失函數(shù)引入了柯西變異策略,輔助神經(jīng)網(wǎng)絡(luò)跳出局部最優(yōu)解。
c)借鑒了集成學(xué)習(xí)思想,將改進(jìn)FPN、LightGBM的預(yù)測(cè)結(jié)果按黃金分割比(1-0.618)∶0.618加權(quán)求和。
由實(shí)驗(yàn)結(jié)果可知,本文提出的方法與各項(xiàng)對(duì)照算法相比,在各種天氣情況下具有較好的預(yù)測(cè)效果。