龔瑞昆,劉昊晟,張堪傲,鄧朋浩
(1.華北理工大學電氣工程學院,河北 唐山 063210;2.華北理工大學 冶金能源學院,河北 唐山 063210)
太陽能發電技術日趨成熟,但是受地理位置等環境因素的局限性,在實際應用的復雜環境中產生了許多問題。光伏陣列受外部環境因素影響比較大,輸出曲線具有非線性,呈現多峰現象,造成大量功率損失,而且可能導致熱斑效應,損壞電子設備。對此人們提出了許多方法來解決追蹤最大輸出功率的問題。文獻[1]研究粒子群遺傳算法,縮短達到穩定狀態的時間;文獻[2]研究細菌覓食算法,但尋優精度不夠,不能準確追蹤到最大功率點;文獻[3]研究變步長擾動觀察法,改善了定步長存在的功率振蕩等問題,避免了跟蹤死區現象。傳統的最大功率點跟蹤(MPPT)控制算法是根據光伏電池特性參數進行改進[4],例如根據光伏電池的即時輸出進行不斷檢測的擾動觀察法(P&O)、電導增量法(INC)等算法。
對比傳統MPPT 優化算法,本文引入粒子群(PSO)算法到細菌覓食(BFO)算法中,提出了一種基于PSO-BFO 混合算法的MPPT 優化方法,可以彌補BFO 算法更新速度慢的缺點,提高BFO 算法驅散過程中的全局搜索能力,而且彌補了PSO容易陷入局部最優的缺點,此算法在全局尋優過程中追蹤精度更高,收斂速度更快。
圖1 所示為光伏發電系統結構。系統分為四部分:光伏陣列、Boost 電路、PWM 模塊以及MPPT 模塊。當光伏陣列被局部陰影遮擋時,易產生熱斑效應,所以并聯旁路二極管。工作流程:光伏陣列將輸出的電壓電流輸入MPPT 模塊中,設計合適的MPPT 算法預測當前的最大輸出功率位置;利用DC/DC 調控技術,對比預測的最大輸出功率位置的電壓與輸出電壓,通過PWM 模塊改變開關管IGBT 的占空比;最終通過改變Boost 電路中的阻抗,與負載的阻抗相匹配,達到改變輸出電壓的目的。

圖1 光伏發電系統拓撲結構
根據電路的伏安特性,光伏電池的等效電路可以用圖2表示。

圖2 光伏電池等效電路
光伏電池的輸出特性方程為:

其中Rsh和Rs為寄生電阻,是由光伏電池的結構缺陷或者局部區域的雜質摻雜造成的,Rs~0,Rsh~∞。所以公式(1)可以簡化為:

根據系統的最大功率約束條件可得參數C1、C2:

當外界條件變化時,新狀態下的電池參數為:

其中a、b、c為公式系數。為了考察環境變化對光伏電池輸出功率的影響,在Matlab 中搭建模型進行仿真,得到如圖3所示的P-U 曲線。

圖3 不同光照強度下的P-U 曲線
PSO 算法是對動物群體活動行為的思考而提出的算法,類似于遺傳算法,但又有所不同。因為PSO 沒有“交叉”和“變異”操作,反而更容易實現,所以常常把兩種算法的優勢結合起來處理問題。PSO 算法通過記憶并更新粒子群動態信息,實現對解空間的全局搜索。它最優越的地方是具有記憶能力,能記憶保留個體和群體的信息。
粒子群算法的基本原理為:將目標函數的每個解看做無質量且體積可忽略的粒子,用速度和適應度值表示該粒子的特征,在迭代過程中,粒子通過更新自己的速度和位置,找出距離MPP 最近的個體最優位置pbest 和群體最優位置gbest,當gbest 到達pbest 時,函數迭代終止。
迭代過程中,粒子更新自身速度Vid和位置Xid,公式如下:

式中:ω 為慣性權重;c1、c2為學習因子;r1、r2為隨機數;k為迭代次數。在光伏系統中,函數的解是光伏陣列的輸出功率。
BFO 算法是根據細菌生長繁殖規律提出的一種新型仿生類算法,算法簡單、靈活,具有很強的魯棒性和適應性,而且可以與其他各種算法結合生成新的算法,應用于不同的領域。BFO 算法主要通過趨化、復制和驅散三種行為來實現尋優,細菌通過翻轉和前進向富養區域聚集,達到一定次數后進行分裂繁殖,用以避免種群更新的盲目性,分裂后的子細菌具有母細菌的位置步長等特性。操縱如下。
趨化操作:細菌通過翻轉和前進向富養區域聚集,同時細菌之間會有信息交流,通過釋放斥力和引力信號來促使細菌聚集在一起,可通過修正細菌適應度函數來達到目的,其中適應度函數和位置更新公式如式(11)、(12)所示。

式中:θi(j,k,l)為第l次遷移中的第k次復制中的第j次趨化中的細菌的位置;C(i)是在[-1,1]中隨機選擇的步長大小,在方向上走了一個步長后,確定第j+1 次趨化時的位置。
復制操作:對細菌的適應度函數值進行排序,活性好的細菌進行分裂復制,分裂所得細菌具有與母菌相同的特性。
遷移操作:當環境發生改變或者其他突變情況,區域內的細菌會死亡或者遷移到其他地方。
PSO 算法有記憶功能,記憶粒子群的速度、位置動態變化,以及優化過程中的極值情況,通過比較適應度函數的優劣來進行粒子更新,若適應度函數值比上一次的差,則優化過程回到原來的位置。PSO 算法中為單向信息傳輸,粒子根據gbest 或pbest 進行動態調整,屬于單向信息流動,搜索過程跟隨當前最優解進行調整,所以PSO 的收斂速度較快。
BFO 算法通過翻轉和游動來改變尋優方向,搜索速度采用隨機數,具有盲目性,僅僅使用復制過程中留下的細菌來進行尋優,相對來說,尋優速度較慢。
通過分析可以看出,BFO 算法搜索速度具有極大的盲目性,速度更新、位置更新并沒有PSO 算法簡單明了,計算相對來說比較復雜,而且全局搜索能力不如PSO 算法。所以提出改進方法,用PSO 算法中的公式(9)來更新BFO 算法中的C(i),用公式(10)來更新θi(j,k,l),實現BFO 算法和PSO 算法的結合。利用PSO 算法的公式(9)和(10)簡化BFO 算法中的位置更新,并把速度的更新與位置的gbest 和pbest 結合,如此使得BFO 算法在復制過程中加速找到最優解,增加驅散過程中的全局搜索能力,加快追蹤到最優目標函數。這里最優目標函數就是輸出功率P,其最大值對應的調制脈沖輸出就是混合算法的輸出。改進后的公式如下:

圖4 為算法流程圖。算法的具體步驟如下:

圖4 算法流程
(1)初始化PSO、BFO 各參數;
(2)PSO 算法進行全局尋優,記憶個體和群體信息,找到pbest 和gbest 并初始化;
(3)細菌翻轉尋找全局最優,根據式(11)、(12)更新粒子動態,計算適應度函數;
(4)比較細菌的適應度函數值,當前值如果小于上一次的值,則返回步驟(3),進行適應度函數更新,否則進行復制操作;
(5)趨化操作循環;
(6)復制操作循環;
(7)遷移操作循環;
(8)判斷是否達到最大迭代次數,如果達到,結束算法;否則返回步驟(4)。
為了驗證PSO-BFO 混合算法的有效性,在Matlab/Simulink 中搭建光伏系統仿真模型。模型采用2×2 的光伏組件和S-Function 模塊,組件參數為Uoc=44.8 V,Isc=7.2 A,Vm=36 V,Im=5 A。環境參數光照強度設置為S1=1 000 W/m2,溫度為25 ℃。仿真模型如圖5 所示。

圖5 MPPT仿真模型
在模型中采用PSO-BFO 算法進行仿真,可得到圖6 所示的仿真結果。

圖6 PSO-BFO 算法仿真
BFO 算法在具備較強局部搜素能力的同時,加上PSO 算法的全局搜索能力,PSO-BFO 算法大大縮短了搜索時間,在所建模型中僅用了0.02 s 左右就追蹤到穩定全局最大功率點294.6 W,而且搜索震蕩幅度特別小,穩態時的振蕩幅度僅為±0.19 W 上下。
BFO 算法單獨作用時,仿真結果如圖7 所示。在0.17 s 附近搜索到全局最大功率點251.5 W,搜索震蕩幅度較大,穩態時的振蕩幅度為±3.6 W 上下。

圖7 BFO算法仿真
使用經典測試函數Rastrigin 函數對BFO 算法和PSOBFO 混合算法進行尋優測試比較,迭代次數為5 000 次,維度為30。Rastrigin 函數表達式為:

尋優效果如圖8 所示。PSO-BFO 算法收斂速度較快且精度較高,而BFO 算法收斂速度較慢且精度較低。在相同迭代次數下,PSO-BFO 算法用時0.113 s,而BFO 算法用時0.695 s,用時縮短了83.7%。

圖8 尋優測試
再分別用經典函數Rosenbrock 函數和Griewank 函數對兩種算法進行尋優測試,三種典型函數的測試結果如表1 所示。經過多次測試結果表明,PSO-BFO 算法搜索精度更高,尋優速度更快。

表1 兩種算法運行最優解
本文通過建立光伏系統模型,基于對外界環境導致的對光伏系統最大輸出功率追蹤出現偏差問題的分析,提出了PSO-BFO 混合算法。BFO 算法局部搜索能力較強,通過引入PSO 算法加強BFO 算法的全局搜索能力,增強更新速度,把兩種算法優勢結合起來,準確快速地追蹤最大輸出功率。通過Matlab 進行仿真實驗,觀察PSO-BFO 混合算法和BFO 算法的仿真尋優性能,可以看出在2×2 的光伏陣列模型中,相比于BFO 算法單獨使用,PSO-BFO 混合算法在尋優精度和收斂速度上都優于BFO 算法,能夠改善功率損失的情況,而且此算法可以進一步推廣到多分布式光伏陣列中使用。