龔瑞昆,劉昊晟,張堪傲,鄧朋浩
(1.華北理工大學(xué)電氣工程學(xué)院,河北 唐山 063210;2.華北理工大學(xué) 冶金能源學(xué)院,河北 唐山 063210)
太陽能發(fā)電技術(shù)日趨成熟,但是受地理位置等環(huán)境因素的局限性,在實際應(yīng)用的復(fù)雜環(huán)境中產(chǎn)生了許多問題。光伏陣列受外部環(huán)境因素影響比較大,輸出曲線具有非線性,呈現(xiàn)多峰現(xiàn)象,造成大量功率損失,而且可能導(dǎo)致熱斑效應(yīng),損壞電子設(shè)備。對此人們提出了許多方法來解決追蹤最大輸出功率的問題。文獻(xiàn)[1]研究粒子群遺傳算法,縮短達(dá)到穩(wěn)定狀態(tài)的時間;文獻(xiàn)[2]研究細(xì)菌覓食算法,但尋優(yōu)精度不夠,不能準(zhǔn)確追蹤到最大功率點;文獻(xiàn)[3]研究變步長擾動觀察法,改善了定步長存在的功率振蕩等問題,避免了跟蹤死區(qū)現(xiàn)象。傳統(tǒng)的最大功率點跟蹤(MPPT)控制算法是根據(jù)光伏電池特性參數(shù)進(jìn)行改進(jìn)[4],例如根據(jù)光伏電池的即時輸出進(jìn)行不斷檢測的擾動觀察法(P&O)、電導(dǎo)增量法(INC)等算法。
對比傳統(tǒng)MPPT 優(yōu)化算法,本文引入粒子群(PSO)算法到細(xì)菌覓食(BFO)算法中,提出了一種基于PSO-BFO 混合算法的MPPT 優(yōu)化方法,可以彌補(bǔ)BFO 算法更新速度慢的缺點,提高BFO 算法驅(qū)散過程中的全局搜索能力,而且彌補(bǔ)了PSO容易陷入局部最優(yōu)的缺點,此算法在全局尋優(yōu)過程中追蹤精度更高,收斂速度更快。
圖1 所示為光伏發(fā)電系統(tǒng)結(jié)構(gòu)。系統(tǒng)分為四部分:光伏陣列、Boost 電路、PWM 模塊以及MPPT 模塊。當(dāng)光伏陣列被局部陰影遮擋時,易產(chǎn)生熱斑效應(yīng),所以并聯(lián)旁路二極管。工作流程:光伏陣列將輸出的電壓電流輸入MPPT 模塊中,設(shè)計合適的MPPT 算法預(yù)測當(dāng)前的最大輸出功率位置;利用DC/DC 調(diào)控技術(shù),對比預(yù)測的最大輸出功率位置的電壓與輸出電壓,通過PWM 模塊改變開關(guān)管IGBT 的占空比;最終通過改變Boost 電路中的阻抗,與負(fù)載的阻抗相匹配,達(dá)到改變輸出電壓的目的。
圖1 光伏發(fā)電系統(tǒng)拓?fù)浣Y(jié)構(gòu)
根據(jù)電路的伏安特性,光伏電池的等效電路可以用圖2表示。
圖2 光伏電池等效電路
光伏電池的輸出特性方程為:
其中Rsh和Rs為寄生電阻,是由光伏電池的結(jié)構(gòu)缺陷或者局部區(qū)域的雜質(zhì)摻雜造成的,Rs~0,Rsh~∞。所以公式(1)可以簡化為:
根據(jù)系統(tǒng)的最大功率約束條件可得參數(shù)C1、C2:
當(dāng)外界條件變化時,新狀態(tài)下的電池參數(shù)為:
其中a、b、c為公式系數(shù)。為了考察環(huán)境變化對光伏電池輸出功率的影響,在Matlab 中搭建模型進(jìn)行仿真,得到如圖3所示的P-U 曲線。
圖3 不同光照強(qiáng)度下的P-U 曲線
PSO 算法是對動物群體活動行為的思考而提出的算法,類似于遺傳算法,但又有所不同。因為PSO 沒有“交叉”和“變異”操作,反而更容易實現(xiàn),所以常常把兩種算法的優(yōu)勢結(jié)合起來處理問題。PSO 算法通過記憶并更新粒子群動態(tài)信息,實現(xiàn)對解空間的全局搜索。它最優(yōu)越的地方是具有記憶能力,能記憶保留個體和群體的信息。
粒子群算法的基本原理為:將目標(biāo)函數(shù)的每個解看做無質(zhì)量且體積可忽略的粒子,用速度和適應(yīng)度值表示該粒子的特征,在迭代過程中,粒子通過更新自己的速度和位置,找出距離MPP 最近的個體最優(yōu)位置pbest 和群體最優(yōu)位置gbest,當(dāng)gbest 到達(dá)pbest 時,函數(shù)迭代終止。
迭代過程中,粒子更新自身速度Vid和位置Xid,公式如下:
式中:ω 為慣性權(quán)重;c1、c2為學(xué)習(xí)因子;r1、r2為隨機(jī)數(shù);k為迭代次數(shù)。在光伏系統(tǒng)中,函數(shù)的解是光伏陣列的輸出功率。
BFO 算法是根據(jù)細(xì)菌生長繁殖規(guī)律提出的一種新型仿生類算法,算法簡單、靈活,具有很強(qiáng)的魯棒性和適應(yīng)性,而且可以與其他各種算法結(jié)合生成新的算法,應(yīng)用于不同的領(lǐng)域。BFO 算法主要通過趨化、復(fù)制和驅(qū)散三種行為來實現(xiàn)尋優(yōu),細(xì)菌通過翻轉(zhuǎn)和前進(jìn)向富養(yǎng)區(qū)域聚集,達(dá)到一定次數(shù)后進(jìn)行分裂繁殖,用以避免種群更新的盲目性,分裂后的子細(xì)菌具有母細(xì)菌的位置步長等特性。操縱如下。
趨化操作:細(xì)菌通過翻轉(zhuǎn)和前進(jìn)向富養(yǎng)區(qū)域聚集,同時細(xì)菌之間會有信息交流,通過釋放斥力和引力信號來促使細(xì)菌聚集在一起,可通過修正細(xì)菌適應(yīng)度函數(shù)來達(dá)到目的,其中適應(yīng)度函數(shù)和位置更新公式如式(11)、(12)所示。
式中:θi(j,k,l)為第l次遷移中的第k次復(fù)制中的第j次趨化中的細(xì)菌的位置;C(i)是在[-1,1]中隨機(jī)選擇的步長大小,在方向上走了一個步長后,確定第j+1 次趨化時的位置。
復(fù)制操作:對細(xì)菌的適應(yīng)度函數(shù)值進(jìn)行排序,活性好的細(xì)菌進(jìn)行分裂復(fù)制,分裂所得細(xì)菌具有與母菌相同的特性。
遷移操作:當(dāng)環(huán)境發(fā)生改變或者其他突變情況,區(qū)域內(nèi)的細(xì)菌會死亡或者遷移到其他地方。
PSO 算法有記憶功能,記憶粒子群的速度、位置動態(tài)變化,以及優(yōu)化過程中的極值情況,通過比較適應(yīng)度函數(shù)的優(yōu)劣來進(jìn)行粒子更新,若適應(yīng)度函數(shù)值比上一次的差,則優(yōu)化過程回到原來的位置。PSO 算法中為單向信息傳輸,粒子根據(jù)gbest 或pbest 進(jìn)行動態(tài)調(diào)整,屬于單向信息流動,搜索過程跟隨當(dāng)前最優(yōu)解進(jìn)行調(diào)整,所以PSO 的收斂速度較快。
BFO 算法通過翻轉(zhuǎn)和游動來改變尋優(yōu)方向,搜索速度采用隨機(jī)數(shù),具有盲目性,僅僅使用復(fù)制過程中留下的細(xì)菌來進(jìn)行尋優(yōu),相對來說,尋優(yōu)速度較慢。
通過分析可以看出,BFO 算法搜索速度具有極大的盲目性,速度更新、位置更新并沒有PSO 算法簡單明了,計算相對來說比較復(fù)雜,而且全局搜索能力不如PSO 算法。所以提出改進(jìn)方法,用PSO 算法中的公式(9)來更新BFO 算法中的C(i),用公式(10)來更新θi(j,k,l),實現(xiàn)BFO 算法和PSO 算法的結(jié)合。利用PSO 算法的公式(9)和(10)簡化BFO 算法中的位置更新,并把速度的更新與位置的gbest 和pbest 結(jié)合,如此使得BFO 算法在復(fù)制過程中加速找到最優(yōu)解,增加驅(qū)散過程中的全局搜索能力,加快追蹤到最優(yōu)目標(biāo)函數(shù)。這里最優(yōu)目標(biāo)函數(shù)就是輸出功率P,其最大值對應(yīng)的調(diào)制脈沖輸出就是混合算法的輸出。改進(jìn)后的公式如下:
圖4 為算法流程圖。算法的具體步驟如下:
圖4 算法流程
(1)初始化PSO、BFO 各參數(shù);
(2)PSO 算法進(jìn)行全局尋優(yōu),記憶個體和群體信息,找到pbest 和gbest 并初始化;
(3)細(xì)菌翻轉(zhuǎn)尋找全局最優(yōu),根據(jù)式(11)、(12)更新粒子動態(tài),計算適應(yīng)度函數(shù);
(4)比較細(xì)菌的適應(yīng)度函數(shù)值,當(dāng)前值如果小于上一次的值,則返回步驟(3),進(jìn)行適應(yīng)度函數(shù)更新,否則進(jìn)行復(fù)制操作;
(5)趨化操作循環(huán);
(6)復(fù)制操作循環(huán);
(7)遷移操作循環(huán);
(8)判斷是否達(dá)到最大迭代次數(shù),如果達(dá)到,結(jié)束算法;否則返回步驟(4)。
為了驗證PSO-BFO 混合算法的有效性,在Matlab/Simulink 中搭建光伏系統(tǒng)仿真模型。模型采用2×2 的光伏組件和S-Function 模塊,組件參數(shù)為Uoc=44.8 V,Isc=7.2 A,Vm=36 V,Im=5 A。環(huán)境參數(shù)光照強(qiáng)度設(shè)置為S1=1 000 W/m2,溫度為25 ℃。仿真模型如圖5 所示。
圖5 MPPT仿真模型
在模型中采用PSO-BFO 算法進(jìn)行仿真,可得到圖6 所示的仿真結(jié)果。
圖6 PSO-BFO 算法仿真
BFO 算法在具備較強(qiáng)局部搜素能力的同時,加上PSO 算法的全局搜索能力,PSO-BFO 算法大大縮短了搜索時間,在所建模型中僅用了0.02 s 左右就追蹤到穩(wěn)定全局最大功率點294.6 W,而且搜索震蕩幅度特別小,穩(wěn)態(tài)時的振蕩幅度僅為±0.19 W 上下。
BFO 算法單獨作用時,仿真結(jié)果如圖7 所示。在0.17 s 附近搜索到全局最大功率點251.5 W,搜索震蕩幅度較大,穩(wěn)態(tài)時的振蕩幅度為±3.6 W 上下。
圖7 BFO算法仿真
使用經(jīng)典測試函數(shù)Rastrigin 函數(shù)對BFO 算法和PSOBFO 混合算法進(jìn)行尋優(yōu)測試比較,迭代次數(shù)為5 000 次,維度為30。Rastrigin 函數(shù)表達(dá)式為:
尋優(yōu)效果如圖8 所示。PSO-BFO 算法收斂速度較快且精度較高,而BFO 算法收斂速度較慢且精度較低。在相同迭代次數(shù)下,PSO-BFO 算法用時0.113 s,而BFO 算法用時0.695 s,用時縮短了83.7%。
圖8 尋優(yōu)測試
再分別用經(jīng)典函數(shù)Rosenbrock 函數(shù)和Griewank 函數(shù)對兩種算法進(jìn)行尋優(yōu)測試,三種典型函數(shù)的測試結(jié)果如表1 所示。經(jīng)過多次測試結(jié)果表明,PSO-BFO 算法搜索精度更高,尋優(yōu)速度更快。
表1 兩種算法運行最優(yōu)解
本文通過建立光伏系統(tǒng)模型,基于對外界環(huán)境導(dǎo)致的對光伏系統(tǒng)最大輸出功率追蹤出現(xiàn)偏差問題的分析,提出了PSO-BFO 混合算法。BFO 算法局部搜索能力較強(qiáng),通過引入PSO 算法加強(qiáng)BFO 算法的全局搜索能力,增強(qiáng)更新速度,把兩種算法優(yōu)勢結(jié)合起來,準(zhǔn)確快速地追蹤最大輸出功率。通過Matlab 進(jìn)行仿真實驗,觀察PSO-BFO 混合算法和BFO 算法的仿真尋優(yōu)性能,可以看出在2×2 的光伏陣列模型中,相比于BFO 算法單獨使用,PSO-BFO 混合算法在尋優(yōu)精度和收斂速度上都優(yōu)于BFO 算法,能夠改善功率損失的情況,而且此算法可以進(jìn)一步推廣到多分布式光伏陣列中使用。