張 潔,羅俊杰
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210023)
相較于傳統(tǒng)能源,光伏能源更加清潔且有著易獲取和低價(jià)等優(yōu)點(diǎn),這使得近些年來(lái)光伏能源在全部能源使用的占比越來(lái)越高,光伏產(chǎn)業(yè)規(guī)模也逐年擴(kuò)增,同時(shí)光伏產(chǎn)業(yè)的技術(shù)要求也隨之提升。由于光伏組件工作在室外,氣溫、沙塵、降雨等因素都導(dǎo)致了光伏組件功率模型的不確定性,帶來(lái)許多安全問(wèn)題。為獲得光伏組件的功率模型情況,通常會(huì)選取合適的組件模型,使用多種參數(shù)辨識(shí)算法基于獲取的大規(guī)模的光伏數(shù)據(jù)來(lái)對(duì)光伏組件模型中的未知參數(shù)進(jìn)行辨識(shí)[1],所得到的模型參數(shù)對(duì)光伏產(chǎn)業(yè)的效率計(jì)算、最大功率點(diǎn)追蹤和未知效率預(yù)測(cè)等都有著重要的意義。
歷經(jīng)數(shù)年的發(fā)展,如今在光伏組件參數(shù)辨識(shí)領(lǐng)域已經(jīng)涌現(xiàn)出不少優(yōu)秀的算法。文獻(xiàn)[2]提出了自適應(yīng)進(jìn)化粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(AEPSO-BPNN)辨識(shí)方法,在粒子群算法中引入自適應(yīng)和重構(gòu)策略以此優(yōu)化BP神經(jīng)網(wǎng)絡(luò),避免BP神經(jīng)網(wǎng)絡(luò)在迭代后期陷入局部最優(yōu)解。文獻(xiàn)[3]在傳統(tǒng)的HHO算法中引入了多種策略,延長(zhǎng)了迭代后期的局部搜索時(shí)間,并且縮小了搜索空間,提高了在光伏電站模型參數(shù)辨識(shí)中的尋優(yōu)效率。張海寧[4]使用基于遞推的最小二乘法對(duì)光伏組件逆變器進(jìn)行模型參數(shù)辨識(shí),實(shí)驗(yàn)結(jié)果表明該算法步驟簡(jiǎn)單、計(jì)算量小,在多次辨識(shí)中一致性較高,通用型較強(qiáng)。文獻(xiàn)[5-6]中都引用了自適應(yīng)函數(shù)對(duì)傳統(tǒng)的粒子群算法進(jìn)行優(yōu)化,使用了自適應(yīng)調(diào)整策略來(lái)控制全局和局部搜索,以此提高算法的收斂精度,實(shí)驗(yàn)結(jié)果表明引入自適應(yīng)函數(shù)優(yōu)化后有著更高的求解精度和尋優(yōu)效率。此外還有許多文獻(xiàn)提出了一系列模擬動(dòng)物行為的搜索算法,如鯨魚(yú)優(yōu)化算法、灰狼算法、閃電算法、飛蛾火焰算法和蝙蝠優(yōu)化算法等,仿真結(jié)果都表明此類(lèi)算法都有著不錯(cuò)的尋優(yōu)能力,能在光伏系統(tǒng)模型辨識(shí)中快速找到最優(yōu)解[7-9]。
針對(duì)光伏組件參數(shù)辨識(shí)問(wèn)題,該文提出了一種基于禁忌搜索算法優(yōu)化的果蠅算法(TS-FOA)的參數(shù)辨識(shí)方法。該方法利用果蠅算法在全局搜索的高效性,并引入禁忌搜索算法對(duì)后期尋優(yōu)方向進(jìn)行限制,這樣同時(shí)擁有禁忌搜索算法和果蠅算法的尋優(yōu)特點(diǎn),可以有效避免在搜索過(guò)程中陷入局部最優(yōu)解并有效提高尋優(yōu)效率。之后,采用某光伏電站的實(shí)測(cè)數(shù)據(jù),使用TS-FOA算法對(duì)模型進(jìn)行參數(shù)辨識(shí)仿真實(shí)驗(yàn),驗(yàn)證了TS-FOA算法的實(shí)用性和高效性。
在理想的情況下,光伏組件模型等效為一個(gè)二極管和一個(gè)光伏板(電流源)的并聯(lián),通常稱(chēng)之為單二極管的等效基礎(chǔ)模型,而在實(shí)際的工程中,內(nèi)部組件都存在損耗,故需要在理想模型基礎(chǔ)上加上幾個(gè)等效的電阻,得到的光伏電池等效模型如圖1所示。
圖1 光伏電池的等效模型
根據(jù)二極管的特性和圖1中的模型,可以得到流過(guò)內(nèi)部二極管的電流ID的計(jì)算公式為:
(1)
式中,ID和I0分別為模型中流經(jīng)二極管的電流和反向飽和電流;IL和UL分別表示光伏電池系統(tǒng)實(shí)際輸出電流和輸出電壓;A為二極管的理想因子,取值由系統(tǒng)組件結(jié)構(gòu)和材料決定;q為電子電荷,q=1.6×10-19C;k為Botzman系數(shù),k=1.38×10-23J/K;T為光伏模塊某種工況下的絕對(duì)溫度。
繼續(xù)按照?qǐng)D1中規(guī)定的參考模型,并結(jié)合公式(1)和基爾霍夫定律可以得到如式(2)的光伏組件I-V的表達(dá)式。
IL=Iph-ID-Ish=
(2)
式中,Iph和Ish分別為光伏組件光電效應(yīng)產(chǎn)生的電流和流經(jīng)并聯(lián)電阻Rsh的電流;Rs和Rsh分別為模型上的串聯(lián)電阻和并聯(lián)電阻。
公式(2)便是目前光伏組件系統(tǒng)中最基礎(chǔ)的表達(dá)式,目前大多數(shù)對(duì)光伏組件性能的研究都是基于此表達(dá)式。在光伏系統(tǒng)性能的研究中,常需要對(duì)光伏組件中最大功率點(diǎn)MPPT(maximum power point tracking)進(jìn)行跟蹤控制,以此獲得組件最大的電力輸出,所以就需要確定此時(shí)模型中的IL和UL,但是在式(2)中I0、Iph、Rs、Rsh和A這五個(gè)參數(shù)都是不確定的,五個(gè)參數(shù)都與組件的工作實(shí)況有關(guān),難以求解,故需要這五個(gè)參數(shù)進(jìn)行參數(shù)辨識(shí)。
參數(shù)辨識(shí)求解的最終結(jié)束標(biāo)志是目標(biāo)函數(shù)到達(dá)了預(yù)期的最值范圍,所以在參數(shù)辨識(shí)之前,還需要建立一個(gè)適當(dāng)?shù)哪繕?biāo)函數(shù),首先將式(1)進(jìn)行如下變形可得:
(3)
選擇均方根誤差RMSE作為尋優(yōu)過(guò)程中的目標(biāo)函數(shù)。
(4)
式中,i為第i次數(shù)據(jù)的變形差值。
果蠅優(yōu)化算法(fruit fly optimization algorithm,F(xiàn)OA)是基于果蠅覓食的復(fù)雜關(guān)系衍生出的一種全局范圍下的尋優(yōu)方法[10]。基于仿生學(xué)原理研究,果蠅群體憑借敏銳的嗅覺(jué)和視覺(jué),對(duì)食物有著非常強(qiáng)的感知能力,可以依據(jù)食物的味道尋找食物的方位,味道越濃說(shuō)明離目標(biāo)食物越近反之味道越淡距離越遠(yuǎn),根據(jù)味道濃度便可以繼續(xù)飛向該目標(biāo)位置,在到達(dá)一個(gè)新位置后,繼續(xù)通過(guò)嗅覺(jué)判斷食物方位,直到找到食物源為止。
如圖2所示:Fly Group為果蠅群體的初始所在位置;Flyi是果蠅群體中飛出去的單只果蠅的位置;Di為單只果蠅距離起點(diǎn)的距離。通過(guò)Di可以計(jì)算出味道判定值Si,再基于預(yù)先設(shè)定的味道濃度判定函數(shù)SmellFuntion(Si),可以得到單只果蠅此時(shí)位置的味道濃度Smelli,從而選取味道濃度最優(yōu)的方向,將整個(gè)Fly Group朝著該方向移動(dòng),繼續(xù)迭代直到達(dá)到終止條件為止。
圖2 果蠅群體覓食示意圖
禁忌搜索算法(tabu search,TS)基于對(duì)局部領(lǐng)域搜索算法的優(yōu)化[11],使用領(lǐng)域搜索的規(guī)則得到跳轉(zhuǎn)位置更佳到領(lǐng)域位置以此來(lái)到達(dá)尋優(yōu)的目的。TS算法在此基礎(chǔ)上模仿人腦的記憶模式建立出禁忌表,使用禁忌表來(lái)記錄已經(jīng)到過(guò)的位置,避免了對(duì)局部最優(yōu)解的重復(fù)搜索,再引入了特赦規(guī)則的概念,以特赦機(jī)制保證局部搜索的同時(shí)不會(huì)遺漏掉其他最優(yōu)解。
圖3是禁忌搜索算法尋優(yōu)示意圖。
圖3 禁忌搜索算法尋優(yōu)示意圖
科研中常用爬山尋峰圖來(lái)表示TS算法的尋優(yōu)過(guò)程[12],如圖3所示:Highi為各個(gè)位置的目標(biāo)值;山頂位置Highmax是尋優(yōu)過(guò)程中最終期望到達(dá)的極值位置,位于“山頂”。通過(guò)在山峰中坐標(biāo)的位置Locationi計(jì)算出周?chē)腍ighi,選取目標(biāo)值最佳的坐標(biāo)位置,判斷該坐標(biāo)點(diǎn)是否存在于禁忌表T中,若不存在則將初始位置High0向該坐標(biāo)點(diǎn)移動(dòng),繼續(xù)迭代直至達(dá)到終止條件為止。
FOA算法利用果蠅群體的協(xié)作能力進(jìn)行尋優(yōu),具有良好的全局搜索能力,但是由于果蠅尋優(yōu)過(guò)程中存在著不確定性,也導(dǎo)致了FOA易于快速陷入局部最優(yōu)解,無(wú)法給出精確的解。其次,由于光伏組件參數(shù)辨識(shí)問(wèn)題中需要辨識(shí)的參數(shù)較多,導(dǎo)致FOA算法難以處理類(lèi)似的高維度問(wèn)題,會(huì)導(dǎo)致后期迭代效果較差,迭代時(shí)間長(zhǎng);TS算法是基于傳統(tǒng)的局部搜索算法的改進(jìn),代碼簡(jiǎn)單且容易實(shí)現(xiàn),在引入禁忌表和特赦規(guī)則后,具有較強(qiáng)的局部尋優(yōu)能力,但是在全局搜索的應(yīng)用上表現(xiàn)一般,迭代時(shí)間較長(zhǎng)。
基于FOA算法和TS算法的各自特點(diǎn),該文將TS算法的思想融合到FOA算法中,提出一種禁忌搜索算法優(yōu)化的果蠅算法(TS-FOA)來(lái)對(duì)光伏組件進(jìn)行參數(shù)辨識(shí)[13]。TS-FOA算法使用FOA算法對(duì)辨識(shí)過(guò)程進(jìn)行一個(gè)全局的快速搜索,得到已經(jīng)在最優(yōu)解附近的小規(guī)模子群解,之后融合TS算法的禁忌表機(jī)制和特赦機(jī)制來(lái)避免FOA算法的局部最優(yōu)問(wèn)題,對(duì)已有的小規(guī)模子群進(jìn)行一個(gè)局部搜索,最終快速、精確地得到最優(yōu)解。
TS-FOA算法的具體執(zhí)行步驟如下:
步驟1:設(shè)定果蠅群體的群體規(guī)模FlySize和FOA算法最大的迭代查找次數(shù)MaxGen_FOA,初始化果蠅群體Fly Group所在的位置為X0,該位置包括在光伏組件參數(shù)辨識(shí)過(guò)程中需要辨識(shí)的參數(shù)I0、Iph、Rs、Rsh和A,即為一個(gè)五維參數(shù):
X0=[Iph_0,I0_0,A0,Rs_0,Rsh_0]
(5)
步驟2:為第i只果蠅飛出群體的方位進(jìn)行隨機(jī)賦值。
(6)
步驟3:得到單只果蠅的新位置后,先計(jì)算Flyi距離原點(diǎn)的距離Di,并得到該果蠅的味道濃度判定值Si。
(7)
(8)
步驟4:將Flyi的味道濃度判定值Si代入到味道判定函數(shù)SmellFuntion(Si)中,從而得到Flyi的味道濃度值Smelli,基于光伏組件數(shù)據(jù)的特點(diǎn),該文選取式(4)的均方根誤差RMSE作為味道判定函數(shù)SmellFuntion(Si)的判定函數(shù),以此轉(zhuǎn)化為一個(gè)以式(9)為目標(biāo)函數(shù)的最值尋優(yōu)問(wèn)題[14]。
Smelli=SmellFunction(Si)
(9)
步驟5:遍歷查找種群中味道濃度值Smelli最佳的果蠅,并記錄最佳味道濃度值best_smell和最佳果蠅Flyi的下標(biāo)best_index。
[best_smell,best_index]=Smelli
(10)
步驟6:使用best_smell更新此時(shí)的最佳味道濃度值BestSmell,并將果蠅群體坐標(biāo)替換為當(dāng)前最佳位置,即視作將果蠅群體Fly Group朝著Flybest_smell移動(dòng)。
BestSmell=best_smell
(11)
(12)
步驟7:判斷終止條件,即該位置濃度是否最佳,并且已經(jīng)達(dá)到最大的迭代查找次數(shù)MaxGen_FOA,否則轉(zhuǎn)入步驟2繼續(xù)進(jìn)行迭代尋優(yōu)查詢(xún)。若達(dá)到終止條件,轉(zhuǎn)入步驟8繼續(xù)執(zhí)行TS算法搜索。
步驟8:設(shè)定TS算法最大的迭代查找次數(shù)MaxGen_TS,設(shè)定最大等待步數(shù)N,初始化當(dāng)前所在的位置Location0為步驟7中已經(jīng)到達(dá)終止條件的小規(guī)模子群X0,即Location0=X0=[Iph_0,I0_0,A0,Rs_0,Rsh_0],初始化禁忌表空表T。
步驟9:通過(guò)當(dāng)前坐標(biāo)Location0獲得當(dāng)前可達(dá)的位置坐標(biāo)Locationi。
步驟10:獲得了Locationi后,代入到最佳高度計(jì)算函數(shù)High(Locationi)中,在此使用式(4)的均方根誤差RMSE作為最佳高度計(jì)算函數(shù)High(Locationi),得到各個(gè)坐標(biāo)點(diǎn)的目標(biāo)值,再對(duì)Locationi的集合進(jìn)行排序。
Highi=High(Locationi)
(13)
Highi=Sort(Highi)
(14)
步驟11:從Locationi的集合中選取高度目標(biāo)值Highk最大的Locationk,判斷Locationk是否已經(jīng)存在禁忌表T中,若已存在則選取其他Locationk,若不存在將Locationk加入到禁忌表T中,并更新Location0。
Locaton0=Locationk
(15)
T.add(Locationk)
(16)
步驟12:判斷是否達(dá)到終止條件,TS算法中終止條件包括:已達(dá)到最大的迭代查找次數(shù)MaxGen_TS或者在當(dāng)前Location0停留步數(shù)已經(jīng)達(dá)到最大等待步數(shù)N,此時(shí)即可終止計(jì)算。若未達(dá)到終止條件,轉(zhuǎn)入步驟9繼續(xù)進(jìn)行迭代尋優(yōu)搜索。
此外,需要對(duì)TS-FOA算法中的特赦規(guī)則進(jìn)行設(shè)定,根據(jù)上文所述,在迭代過(guò)程中可能會(huì)出現(xiàn)較優(yōu)解屬于禁忌表的情況,為此設(shè)定特赦規(guī)則為:若候選位置狀態(tài)優(yōu)于當(dāng)前位置狀態(tài),則可以跳出禁忌表限定,更新當(dāng)前位置狀態(tài)為最佳狀態(tài)[15]。TS-FOA算法流程如圖4所示。
圖4 TS-FOA算法流程
該文使用的是南通理工學(xué)院提供的光伏單晶硅固定電站運(yùn)行監(jiān)測(cè)數(shù)據(jù),選取某日7時(shí)到下午6時(shí)每10分鐘的監(jiān)測(cè)數(shù)據(jù)作為本次參數(shù)辨識(shí)的實(shí)驗(yàn)數(shù)據(jù)集。在使用相同數(shù)據(jù)集的條件下,選取傳統(tǒng)粒子群算法(PSO)、未使用TS機(jī)制優(yōu)化的果蠅算法(FOA)和提出的TS-FOA算法進(jìn)行實(shí)驗(yàn)訓(xùn)練,使用Matlab進(jìn)行算法模擬和測(cè)試并比較結(jié)果,以說(shuō)明該算法相較于其他算法具有的迭代速度快和精度高等優(yōu)勢(shì)。
迭代次數(shù)都設(shè)定為25次,此時(shí)各算法參數(shù)辨識(shí)結(jié)果如表1所示。在表1的條件下,限定三種算法的迭代次數(shù)都為25次并使用相同的數(shù)據(jù)集對(duì)參數(shù)進(jìn)行辨識(shí)。
表1 各算法參數(shù)辨識(shí)結(jié)果
由表1可得,在傳統(tǒng)FOA算法中引入了TS算法的機(jī)制提升了同迭代次數(shù)下參數(shù)辨識(shí)的準(zhǔn)確率,此外相較于傳統(tǒng)的PSO算法,TS-FOA算法的精度同樣有著較大的提升。
圖5 各算法辨識(shí)結(jié)果與實(shí)測(cè)數(shù)據(jù)曲線(xiàn)圖
由圖5可得,TS-FOA算法的參數(shù)辨識(shí)曲線(xiàn)和實(shí)測(cè)數(shù)據(jù)曲線(xiàn)擬合度最佳,誤差較小。PSO算法曲線(xiàn)相較于TS-FOA算法曲線(xiàn)的擬合略差,在中午時(shí)段會(huì)出現(xiàn)偏差,而傳統(tǒng)FOA算法曲線(xiàn)和實(shí)測(cè)數(shù)據(jù)曲線(xiàn)相差最大,較難滿(mǎn)足一些情況下精度的要求。
為了得到不同迭代次數(shù)下TS-FOA算法的性能參數(shù),在Matlab的算法中設(shè)定不同的迭代次數(shù)對(duì)PSO算法、FOA算法和TS-FOA算法進(jìn)行參數(shù)辨識(shí),結(jié)果如圖6所示。
圖6 各算法不同迭代次數(shù)下實(shí)驗(yàn)數(shù)據(jù)
由圖6可得,在限定迭代次數(shù)的情況下,TS-FOA算法在大約20次迭代的條件下便可以完成全局收斂,獲得最優(yōu)解,并且在三種算法中TS-FOA算法可以得到最佳的目標(biāo)函數(shù)值。PSO算法由于自身的限制,在迭代次數(shù)較少的情況下目標(biāo)函數(shù)值改變不大,即陷入了局部最優(yōu)解的情況。傳統(tǒng)的FOA算法有著較好的全局搜索能力,但是在局部搜索中表現(xiàn)較差,即使在迭代次數(shù)較大的情況下,相較于TS-FOA算法存在較大的誤差,并且在迭代的初期也出現(xiàn)了陷入了局部最優(yōu)解的情況。
為了解決光伏組件的參數(shù)辨識(shí)問(wèn)題,該文基于傳統(tǒng)的FOA算法引入TS算法機(jī)制,提出了TS-FOA算法模型,其中使用了禁忌表機(jī)制和特赦機(jī)制對(duì)FOA算法進(jìn)行優(yōu)化,優(yōu)化了FOA算法易于陷入局部最優(yōu)解的問(wèn)題,同時(shí)也提升了參數(shù)辨識(shí)的尋優(yōu)精度。使用光伏組件實(shí)測(cè)數(shù)據(jù)集對(duì)TS-FOA算法進(jìn)行的實(shí)驗(yàn)測(cè)試表明,相較于PSO算法和FOA算法,TS-FOA算法有著更高的精確度以及更短的收斂時(shí)間,能夠快速迭代以得到最優(yōu)解,大大提高了光伏組件參數(shù)辨識(shí)的效率。