黃榮賡,陳路遙
(廈門理工學(xué)院光電與通信工程學(xué)院,福建廈門 361024)
現(xiàn)今光伏發(fā)電已成為全球最主要的可再生能源發(fā)電方式之一。由于光伏組件的輸出特性曲線是受光照強(qiáng)度、溫度與負(fù)載等影響的非線性曲線,為了提高電能轉(zhuǎn)化效率,就需要采用最大功率點(diǎn)追蹤(maximum power point tracking,MPPT)技術(shù),使組件工作在最大功率點(diǎn)。但在實(shí)際的應(yīng)用中,當(dāng)出現(xiàn)局部遮蔭的情況,由多塊光伏組件串聯(lián)而成的光伏陣列P-U曲線就會(huì)出現(xiàn)多個(gè)峰值點(diǎn)。傳統(tǒng)的擾動(dòng)觀察法[1]、增量電導(dǎo)法[2]等MPPT 算法就容易失效。針對(duì)此問題,研究人員提出了一些新穎算法,例如人工神經(jīng)網(wǎng)絡(luò)算法[3]、遺傳算法[4]、蟻群優(yōu)化算法[5-6]、蝠鲼優(yōu)化算法[7]、粒子群優(yōu)化算法[8-9](particle swarm optimization,PSO)等。人工神經(jīng)網(wǎng)絡(luò)算法運(yùn)算速度較快,效率高,但需要大量數(shù)據(jù)和時(shí)間訓(xùn)練,否則易陷入局部峰值點(diǎn)。遺傳算法能夠使光伏系統(tǒng)穩(wěn)定運(yùn)行在最大功率點(diǎn),但容易早熟并且收斂速度慢。蟻群優(yōu)化算法能夠在遮蔭條件下搜索到最大功率點(diǎn)但收斂速度偏慢。蝠鲼優(yōu)化算法具有良好的魯棒性并能有效地追蹤全局最大功率點(diǎn),但算法較復(fù)雜。粒子群算法具有全局搜索能力,搜索精度高,易于計(jì)算,并且容易在商用控制器上實(shí)現(xiàn),但算法的搜索速度較慢。蝙蝠算法(bat algorithm,BA)是一種新型的群智能算法,具有全局搜索能力,前期收斂效果好,但后期搜索速度慢,容易產(chǎn)生搜索偏差。
針對(duì)蝙蝠算法和粒子群算法的不足之處,本文提出了一種基于蝙蝠與粒子群混合優(yōu)化(bat and particle swarm hybrid optimization,BPSHO)的MPPT 算法。在混合算法的前期,采用BA,提升算法收斂速度,在算法中后期,采用PSO,提升搜索精度。在前期的BA 中引入PSO 的慣性權(quán)重和社會(huì)學(xué)習(xí)因子,避免BA 收斂精度低和早熟收斂的缺陷,在中期運(yùn)行PSO的過程中引入BA 的局部搜索機(jī)制,并采用指數(shù)方程調(diào)節(jié)混合算法的參數(shù),在保證搜索精度基礎(chǔ)上,進(jìn)一步提升搜索速度。
在實(shí)際應(yīng)用中,為了滿足負(fù)載對(duì)光伏系統(tǒng)電壓和電流的需求,光伏組件通過串并聯(lián)的方式連接形成光伏陣列,當(dāng)光伏陣列中的部分光伏組件被云層、建筑和樹等物體遮蔭,這些組件的光照強(qiáng)度就會(huì)弱于未被遮蔭的組件。為了避免熱斑效應(yīng)出現(xiàn),旁路二極管將被遮蔭的組件旁路,將導(dǎo)致光伏陣列的P-U曲線出現(xiàn)多峰值的情況。以3×1 光伏陣列為例,3×1 光伏陣列由三個(gè)光伏組件串聯(lián)而成。在如表1 所示的三種光照條件下,光伏陣列的I-U曲線和P-U曲線如圖1 和圖2所示。
圖1 光伏陣列的I-U曲線
圖2 光伏陣列的P-U 曲線
表1 光伏陣列的光照條件 W/m2
從圖2 所示可知,在均勻光照條件下(條件1),P-U曲線只有一個(gè)峰值,在局部遮蔭條件下,即光伏組件接受不同光照強(qiáng)度時(shí)(條件2、3),P-U曲線出現(xiàn)多個(gè)峰值。不同的遮蔭形式會(huì)導(dǎo)致不同的峰值個(gè)數(shù)和全局峰值功率點(diǎn)(GMPP)出現(xiàn)在不同的電壓區(qū)域。這種現(xiàn)象將大幅度降低傳統(tǒng)MPPT 算法追蹤最大功率點(diǎn)的有效性。
1995 年,Kennedy 和Eberhart 提出了PSO 算法[10]。算法中粒子的位置是問題的可行解,每一次的演化,粒子依據(jù)自身的飛行慣性,并通過追蹤粒子本身找到的歷史最優(yōu)解和整個(gè)群體目前所找到最優(yōu)解更新自身速度和位置,最終靠近或找到全局最優(yōu)解。速度和位置更新采用式(1)和(2):
式中:xi為粒子i的位置;vi為粒子i的速度;n為迭代次數(shù);ω 為慣性權(quán)重;r1和r2為在[0,1]之間的隨機(jī)數(shù);c1為認(rèn)知學(xué)習(xí)因子;c2為社會(huì)學(xué)習(xí)因子;xpbest,i為第i個(gè)粒子歷史最佳位置;xgbest為所有粒子的最佳位置。
蝙蝠算法(BA)是由Yang[11]于2010 年提出的一種模擬自然界蝙蝠捕獵和避障行為的隨機(jī)搜索算法。在BA 中,蝙蝠的位置即為問題的可行解,k只蝙蝠在可行解的空間中飛行,蝙蝠的頻率、飛行速度和位置更新公式如式(3)~(5):
式中:fi為蝙蝠發(fā)出超聲波的頻率;xi為蝙蝠i的位置;vi為蝙蝠i的速度;n為迭代次數(shù);fmin和fmax為超聲波的最小和最大頻率;rand為在[0,1]之間均勻分布的隨機(jī)數(shù);xgbest為所有蝙蝠的最佳位置。
對(duì)于局部搜索,生成一個(gè)隨機(jī)變量rand1,如果rand1 大于此時(shí)超聲波脈沖頻率ri(n),蝙蝠就會(huì)在最佳位置附近游走,按照式(6)更新蝙蝠位置:
式中:A(n)為蝙蝠群體在第n次迭代的平均響度;β 為[-1,1]之間的隨機(jī)數(shù)。超聲波最初響度較高,最初脈沖頻度較低,如果它在飛行的過程中發(fā)現(xiàn)獵物,則會(huì)逐漸降低響度,同時(shí)逐漸增加頻度。脈沖頻度和響度更新規(guī)則如下:
式中:Ai(n)和ri(n)為蝙蝠i在第n次迭代的響度和脈沖頻度;ri(0)為蝙蝠i的最初脈沖頻度;α 和γ為常數(shù)。
PSO 能夠?qū)崿F(xiàn)在全局搜索最大功率點(diǎn),搜索偏差小,但收斂時(shí)間較長(zhǎng),而BA 也具有全局搜索功能,前期搜索速度快,但后期搜索時(shí)間長(zhǎng),搜索精度低。鑒于這兩種算法的特點(diǎn),結(jié)合兩種算法在搜索不同時(shí)期的優(yōu)勢(shì),BA 應(yīng)用于混合算法前期,提升前期的搜索效果,PSO 應(yīng)用于算法中后期,提升算法的搜索精度,并分別對(duì)兩種算法進(jìn)行改進(jìn)。
蝙蝠的速度更新式(4)的第一部分和粒子群的速度更新式(2)的第一部分均為上代個(gè)體速度項(xiàng),粒子群可以通過慣性權(quán)重ω 調(diào)節(jié)個(gè)體慣性對(duì)速度的影響,為了平衡混合算法前期的全局搜索能力和后期的局部搜索能力,在前期蝙蝠算法中引入中后期PSO 的ω。蝙蝠的速度更新式(4)的第二部分和粒子群的速度更新式(2)的第三部分都為群體認(rèn)知項(xiàng),蝙蝠是通過頻率而粒子是通過社會(huì)學(xué)習(xí)因子c2調(diào)節(jié)群體經(jīng)驗(yàn)對(duì)速度的影響,兩者可以共用參數(shù)c2。為了進(jìn)一步提升收斂速度,ω和c2會(huì)隨著迭代次數(shù)而改變,因此改進(jìn)后蝙蝠算法的速度更新式為:
在BPSHO 算法早期,為了保證蝙蝠的多樣性和較強(qiáng)的全局搜索能力,提高搜索精度,應(yīng)選擇較大的ω 和較小的c2,在后期為了加快粒子收斂速度,減小ω,增大c2。按照指數(shù)規(guī)律調(diào)節(jié)ω 和c2,如式(10)和(11)所示:
式中:ωmax和ωmin為慣性權(quán)重的上下限;c2max和c2min為社會(huì)學(xué)習(xí)因子的上下限;ωmax和c2min也是慣性權(quán)重和社會(huì)學(xué)習(xí)因子的初始值;nmax為最大迭代次數(shù);δ 為參數(shù)調(diào)節(jié)系數(shù),通過調(diào)節(jié)δ改變?chǔ)?和c2的變化速度。
中后期的PSO 與前期BA 共用ω 和c2,并且認(rèn)知學(xué)習(xí)因子c1也設(shè)置為迭代次數(shù)的變量,PSO 算法的速度更新式改為:
粒子通過c1調(diào)節(jié)個(gè)體歷史經(jīng)驗(yàn)對(duì)速度的影響,為了保證中期的粒子多樣性并減少搜索時(shí)間,c1按照指數(shù)規(guī)律減小,參數(shù)變化規(guī)律如式(13)所示:
式中:c1max和c1min為認(rèn)知學(xué)習(xí)因子的上限和下限。
為了進(jìn)一步提升搜索速度,在PSO 中期繼續(xù)保留前期蝙蝠算法的局部搜索機(jī)制,滿足觸發(fā)條件,粒子會(huì)從其它位置直接跳躍到現(xiàn)有的最佳位置附近,但此時(shí)粒子可能保留較高的速度,粒子就容易在下一次迭代中越過最佳工作點(diǎn)所在的區(qū)域,降低搜索性能。因此在局部搜索后的下一次速度更新中,引入慣性衰減系數(shù)ε,減小慣性對(duì)速度的影響,ε 的取值范圍為(0,1),速度更新公式調(diào)整為:
實(shí)現(xiàn)BPSHO 算法的PV 系統(tǒng)由3×1 光電陣列、boost 變換器、BPSHO 算法控制器等組成。系統(tǒng)通過BPSHO 算法控制器輸出占空比D,控制升壓變換器調(diào)節(jié)光伏陣列的輸出電壓和電流,實(shí)現(xiàn)最大功率追蹤。
混合算法的流程如圖3 所示。
圖3 BPSHO算法流程圖
具體步驟如下:
步驟1:選擇參數(shù),以Boost 電路開關(guān)管的占空比D為個(gè)體位置,光伏陣列的輸出功率為個(gè)體適應(yīng)值。個(gè)體數(shù)目k與串聯(lián)的光伏組件數(shù)目相同。設(shè)置響度衰減系數(shù)α、脈沖頻率增強(qiáng)系數(shù)γ,脈沖最初頻度ri(0),脈沖最初響度Ai(0),慣性權(quán)重的上限ωmax和下限ωmin,認(rèn)知學(xué)習(xí)因子的上限c1max和下限c1min,社會(huì)學(xué)習(xí)因子的上限c2max和下限c2min,最大迭代次數(shù)nmax,個(gè)體移動(dòng)的最大速度vmax。
步驟2:初始化種群,在搜索空間[Dmin,Dmax]中均勻放置k只個(gè)體。個(gè)體從初始位置Di以初始速度vi出發(fā)。
步驟3:控制器輸出占空比,等到Boost 變換器穩(wěn)定后,得到功率作為適應(yīng)度值,如果個(gè)體i的適應(yīng)度值優(yōu)于它的歷史最佳值,更新個(gè)體最佳值和相應(yīng)位置。如果個(gè)體i的適應(yīng)度值優(yōu)于所有個(gè)體的最佳值,更新群體最佳值和相應(yīng)位置。
步驟4:如果迭代次數(shù)n<0.25nmax,即處于算法前期,按照BA 的式(5)和式(9)更新個(gè)體的速度和位置,ω 和c2按照指數(shù)式(10)和(11)調(diào)整。并且啟用局部搜索機(jī)制產(chǎn)生一個(gè)隨機(jī)數(shù)rand1,如果rand1>ri,則根據(jù)式(6)在最優(yōu)位置附近產(chǎn)生新位置。
步驟5:如果迭代次數(shù)n>0.25nmax,按照PSO 的式(5)和式(12)更新個(gè)體的速度和位置,ω、c1和c2按照指數(shù)式(10)、(11)和(13)調(diào)整。在算法的中期,即0.25nmax<n<0.75nmax,繼續(xù)采用局部搜索機(jī)制,如果局部搜索產(chǎn)生新位置,下一次速度按照式(14)更新,在算法后期,即n≥0.75nmax,取消局部搜索機(jī)制,利用PSO 自身的特點(diǎn)保證局部的搜索深度和收斂速度。
步驟6:確定收斂條件,如果迭代次數(shù)達(dá)到最大收斂次數(shù)或所有個(gè)體的速度小于某個(gè)限值,算法結(jié)束,控制器輸出的占空比即為群體的最佳位置xgbest。
步驟7:當(dāng)外部環(huán)境或負(fù)載發(fā)生變化時(shí),全局最大功率和它相對(duì)應(yīng)的電壓會(huì)發(fā)生改變,因此系統(tǒng)重新初始化種群搜索全局最大功率點(diǎn)。判斷條件如式(15)所示:
為了分析BPSHO 的精度和追蹤速度,搭建光伏系統(tǒng)仿真模型和實(shí)驗(yàn)電路。光伏系統(tǒng)包括3×1 光伏陣列、Boost 電路、BPSHO 控制器和負(fù)載電阻。單個(gè)光伏組件的參數(shù):最大功率Pmax=50 W,最大功率點(diǎn)電流Ir=2.78 A,最大功率點(diǎn)電壓Ur=18 V,短路電流Isc=3.05 A,開路電壓Uoc=21.6 V,Boost 電路參數(shù)為:C1=100 μF,C2=150 μF,L=1 mH,PWM 載波頻率f=20 kHz,系統(tǒng)采樣周期為0.05 s,算法個(gè)體數(shù)目k=3。
在MATLAB/Simulink 平臺(tái)中建立光伏系統(tǒng)仿真模型,模型如圖4 所示。在局部遮蔭條件下,分別用PSO 和BPSHO 進(jìn)行光伏陣列最大輸出功率追蹤。PSO 采用線性方式調(diào)節(jié)ω,c1和c2[9]。兩種算法基本參數(shù)一致。
圖4 光伏系統(tǒng)仿真模型
表1 所示的光照條件2 和3 分別對(duì)應(yīng)不同的遮蔭環(huán)境,兩種條件下最大功率點(diǎn)出現(xiàn)在P-U曲線的不同區(qū)域。在條件2和條件3 下,最大功率點(diǎn)的功率分別為72.925 和44.268 W。PSO 與BPSHO 的光伏陣列輸出功率曲線如圖5 和圖6 所示。在條件2 與條件3 下,PSO 算法追蹤過程的迭代次數(shù)分別為14 和17 次,追蹤時(shí)間分別為2.10 和2.55 s,迭代結(jié)束后,功率收斂值為72.915 與44.262 W。在條件2 與條件3 下,BPSHO的迭代次數(shù)分別為7 和10 次,追蹤時(shí)間分別為1.05 和1.50 s,功率收斂值為72.922 和44.263 W。
圖5 光照條件2下的光伏陣列功率追蹤波形圖
圖6 光照條件3下的光伏陣列功率追蹤波形圖
從功率收斂值可看出,局部遮蔭條件下PSO 與BPSHO都能有效追蹤最大功率點(diǎn)。PSO 與BPSHO 平均追蹤時(shí)間分別為2.325 與1.275 s。BPSHO 的用時(shí)僅為PSO 的54.8%。BPSHO 有效縮短了最大功率的追蹤時(shí)間。
實(shí)驗(yàn)電路中的BPSHO 控制器以STM32103C8T6 為主控芯片,以滑線變阻器作為負(fù)載電阻,光伏組件和Boost 電路參數(shù)已經(jīng)在前文中提及。
實(shí)驗(yàn)時(shí)用半透明紙對(duì)光伏組件進(jìn)行遮蔭,一塊光伏組件上放置2 張半透明紙,另一塊光伏組件上放置6 張紙,最后一塊不被遮蔭。分別用PSO 和BPSHO 進(jìn)行MPPT,光伏陣列的輸出電壓U和輸出功率P的波形如圖7 所示。從圖7 可看出,PSO 追蹤GMPP 所需的時(shí)間為2.55 s,而BPSHO 所需的時(shí)間僅為1.2 s,是PSO 的47.06%。
圖7 光伏陣列的實(shí)測(cè)電壓和功率波形圖
針對(duì)在局部遮蔭條件下群智能算法追蹤最大功率點(diǎn)速度較慢的問題,引入BA,提出了基于BPSHO 的MPPT 算法。該算法前期采用BA,中后期采用PSO,運(yùn)用指數(shù)方程調(diào)節(jié)混合算法的參數(shù),并在中期運(yùn)行PSO 的過程中加入局部搜索機(jī)制。仿真與實(shí)驗(yàn)結(jié)果表明:BPSHO 算法相較于PSO,能夠在保證實(shí)現(xiàn)GMPP 準(zhǔn)確追蹤的前提下,追蹤時(shí)間只有PSO 的一半左右。