田小情, 張著洪
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院, 貴陽 550025)
元啟發(fā)式隨機搜索算法作為一種受生物或自然現(xiàn)象啟發(fā)而設(shè)計的尋優(yōu)方法,在復(fù)雜工程問題的求解中已得到廣泛應(yīng)用。 已有代表性的多種新型算法陸續(xù)被報道,如金鷹優(yōu)化[1]、白鯊優(yōu)化[2]、鯨魚優(yōu)化[3]、麻雀搜索[4]等,其主要特點是尋優(yōu)速度快、結(jié)構(gòu)簡單、可操作性強且易于擴展,但求解中、高維優(yōu)化問題時,易于陷入局部搜索。 特別地,卷尾猴搜索算法(Capuchin search algorithm, CapSA)是Braik 等學(xué)者[5]于2021年模擬卷尾猴種群覓食行為而提出的新型群智能優(yōu)化算法。 相較于其它類型方法,該算法的原理簡單、尋優(yōu)能力強,且已應(yīng)用于諸如壓力容器設(shè)計等工程優(yōu)化問題[6]。 近來,多位學(xué)者已從不同角度對該方法的求解性能加以改進(jìn);例如,Kanipriya 等學(xué)者[7]基于反向?qū)W習(xí)及混沌局部搜索策略,提出改進(jìn)型卷尾猴搜索算法,并將其用于神經(jīng)網(wǎng)絡(luò)CNN-LSTM 中超參數(shù)優(yōu)化,已獲證其具有明顯優(yōu)勢。
另一方面,參數(shù)辨識是光伏電池設(shè)計中不可缺少的重要環(huán)節(jié),對電池性能的影響較大;當(dāng)光伏電池出現(xiàn)老化、故障或不穩(wěn)定時,參數(shù)變化極不穩(wěn)定且不可預(yù)測[8]。 如何快速、準(zhǔn)確地辨識光伏電池的內(nèi)部參數(shù),已成為光伏發(fā)電領(lǐng)域的重要科技難題。 通常,數(shù)值優(yōu)化法[9]和近似估計法[10]被用于光伏電池模型的參數(shù)辨識。 前者的思想簡單、易于實現(xiàn),但得到的解的質(zhì)量極大依賴于初始狀態(tài)的選取。 例如,Ayang 等學(xué)者[9]通過融合最大似然估計和牛頓法獲得一種混合優(yōu)化方法,并用于單二極管模型的參數(shù)辨識,其尋優(yōu)效率高,但搜索性能極大依賴于初始參數(shù)的取值;后者基于實驗特征方程和LambertW 函數(shù)來辨識模型的參數(shù)[10],其易于實現(xiàn),但關(guān)鍵數(shù)據(jù)點的確定及環(huán)境因素對此特征方程的影響較大。 近來,智能優(yōu)化[11]已為光伏發(fā)電模型的求解提供了新方法,主要思路是借助少量實驗數(shù)據(jù),將光伏電池參數(shù)辨識轉(zhuǎn)化為最優(yōu)化問題,進(jìn)而利用元啟發(fā)式隨機搜索算法求解模型的最優(yōu)參數(shù)值。 例如,張偉偉等學(xué)者[11]以光伏電池單、雙二極管模型的電流測量值和模型計算值的均方根誤差為性能指標(biāo),利用改進(jìn)型回溯搜索算法求解問題的最優(yōu)參數(shù)值。 可是,由于元啟發(fā)式方法固有的早熟現(xiàn)象,以及光伏發(fā)電問題的特異性和模型的強非線性性,使得智能優(yōu)化方法應(yīng)用于光伏電池參數(shù)辨識的研究仍處于不斷探索中。
綜上,鑒于CapSA 對最優(yōu)化問題的求解有較大潛力,但收斂精度低、局部搜索能力有待增強,以及智能優(yōu)化求解光伏電池參數(shù)辨識的研究尚處于起步階段,本文從如何提高和平衡CapSA 的開采與勘測能力出發(fā),提出一種改進(jìn)型卷尾猴搜索算法(Improved Capuchin Search Algorithm,ICapSA),進(jìn)而在擴展雙二極管模型為四二極管模型基礎(chǔ)上,將ICapSA 應(yīng)用于二極管的參數(shù)辨識。 比較性的實驗顯示,該算法的尋優(yōu)質(zhì)量有獨特優(yōu)勢,且四二極管的參數(shù)辨識效果好。
考慮如下類型函數(shù)優(yōu)化問題:
其中,x =(x1,x2,…,xp) ,ubj≤xj≤lbj,1 ≤j≤p;f(x)是非離散的目標(biāo)函數(shù);若對于任意x∈D,均有f(x?) ≤f(x),則x?稱為最優(yōu)解。
CapSA 是一種模擬卷尾猴在森林中游蕩覓食行為的群智能優(yōu)化算法,其以領(lǐng)導(dǎo)者和跟隨者作為個體,領(lǐng)導(dǎo)者負(fù)責(zé)發(fā)現(xiàn)食物區(qū)域,跟隨者在該區(qū)域?qū)ふ沂澄锏木唧w位置;卷尾猴在覓食過程中,依據(jù)自身位置與角色、歷史最好位置、種群的全局最好位置及位置更新策略不斷更新自身位置,直到最終獲取食物后,停止食物的搜索。
給定規(guī)模為N的卷尾猴種群,第i只卷尾猴的位置為xi=(xi1,xi2,…,xip) ; 依據(jù)適應(yīng)度降冪排列卷尾猴種群中的卷尾猴,前1/2 只卷尾猴構(gòu)成領(lǐng)導(dǎo)者種群A,后1/2 只卷尾猴構(gòu)成跟隨者種群B。 在第t時刻,經(jīng)由如下3 步完成卷尾猴的位置更新:
(1)卷尾猴的速度更新。 卷尾猴i(跟隨者或領(lǐng)導(dǎo)者)經(jīng)由式(2)更新其速度:
在此,T為最大時間步;β0、β1、β2為給定的常數(shù),依次取2、21 及2。
(2)領(lǐng)導(dǎo)者種群的位置更新。 種群A中位置為xi(t) 的領(lǐng)導(dǎo)者i依據(jù)介于0~1 間的 隨機數(shù)ε的取值,確定相應(yīng)的更新策略,即:
其中,Pbf是領(lǐng)導(dǎo)者卷尾猴在跳躍運動中提供平衡的概率,取值0.7;Pef為彈性系數(shù),取值9;r是介于0~1 間的隨機數(shù)。
(3)跟隨者種群的位置更新。 種群B中位置為xi(t) 的跟隨者i更新后的位置是介于自身位置和上一時刻位置的中間位置,即:
CapSA 求解低維優(yōu)化問題具有穩(wěn)定性好、求解精度高、進(jìn)化能力強等優(yōu)點,但由于種群初始化的隨機性、慣性系數(shù)ρ設(shè)置難和跟隨者位置更新策略的緣故,其搜索性能有限。 當(dāng)其用于求解性能指標(biāo)復(fù)雜的優(yōu)化問題時,因目標(biāo)函數(shù)的結(jié)構(gòu)復(fù)雜、決策變量多且計算量大,使得搜索性能和效率急劇退化。 例如,對于如下優(yōu)化問題:
CapSA 求解函數(shù)f(x) 的最小值的搜索曲線如圖1 所示。 圖1 中,n和f分別表示迭代次數(shù)和目標(biāo)函數(shù)值。 經(jīng)由圖1 獲知,CapSA 在最大迭代數(shù)為500 前提下,獲得的最好目標(biāo)值為85.55,但與最小目標(biāo)值的偏差較大;而在前12 次的迭代尚能維持全局搜索,但隨著迭代數(shù)的增加,卻快速陷入局部搜索,尋優(yōu)性能急劇下降。
圖1 CapSA 求解函數(shù)f(x)的最小值的搜索曲線Fig. 1 The search curve for CapSA solving the minimum value of the functionf(x)
概括起來,CapSA 存在如下主要缺陷:
(1)初始卷尾猴的位置分布直接影響領(lǐng)導(dǎo)者的全局開采能力,導(dǎo)致覓食過程中難以發(fā)現(xiàn)食物位置。
(2)慣性系數(shù)ρ不具有自適應(yīng)變化特性,使得在食物搜索后期的局部勘測能力弱且收斂速度慢。
(3)跟隨者的位置更新策略缺乏自適應(yīng)性,影響全局搜索能力。
(4)在全局最優(yōu)個體的位置信息引導(dǎo)下進(jìn)行更新時,領(lǐng)導(dǎo)者的位置在每個維度上的變化量快速減小,導(dǎo)致卷尾猴種群中各個體加速陷入局部搜索,進(jìn)而發(fā)現(xiàn)食物位置的幾率變小。
針對CapSA 存在的以上不足,圍繞初始種群的生成方式、慣性權(quán)重系數(shù)、跟隨者位置更新進(jìn)行如下改進(jìn)。
(1)初始種群。 由于隨機生成初始種群易于導(dǎo)致CapSA 的收斂速度和精度極大地降低;為此,利用如下Logistic 混沌映射生成初始種群:
(2)自適應(yīng)慣性權(quán)重。 速度更新具有繼承上一次迭代速度的經(jīng)驗和能力,但慣性系數(shù)ρ常為固定值,導(dǎo)致CapSA 在迭代前期搜索范圍小,而迭代后期搜索半徑過大,從而不能自適應(yīng)平衡種群的局部勘測和全局開采能力。 為此,引入如下S型函數(shù)來取代慣性系數(shù)ρ:
其中,ωmax及ωmin分別為最大和最小權(quán)重;m為進(jìn)化因子、且μ =10log(m)-2。 由此,卷尾猴i經(jīng)由式(9)更新速度:
(3)跟隨者種群的位置更新。 跟隨者始終追隨領(lǐng)導(dǎo)者尋找食物;每個跟隨者利用自身當(dāng)前和上一時刻之間的中間位置進(jìn)行位置更新,這種確定性的位置更新策略在領(lǐng)導(dǎo)者陷入局部最優(yōu)時,跟隨者較難執(zhí)行全局搜索,進(jìn)而使得CapSA 的尋優(yōu)性能受到極大影響。 為此,利用灰狼優(yōu)化[12]的覓食策略更新跟隨者種群的位置,即:
其中,a由式(11) 確定:
在此,r3和r4為介于0~2 的隨機數(shù)。
(4)全局最好位置更新。 卷尾猴種群的全局最好位置對卷尾猴的位置更新起引導(dǎo)性作用;一旦其為局部最優(yōu)位置,則卷尾猴種群的全局開采能力必然較弱。 為此,利用柯西變異策略增強全局最好位置被更新的能力,即:
其中,X是F經(jīng)由標(biāo)準(zhǔn)柯西變異算子作用后產(chǎn)生的位置向量。
結(jié)合式(4)、(7)~(12),ICapSA 的算法描述如下。
步驟1參數(shù)設(shè)置:種群規(guī)模N、最大和最小權(quán)值(ωmax,ωmin) 及最大迭代數(shù)T。
步驟2置n←1,依據(jù)式(7) 初始化卷尾猴種群X(t)。
步驟3依據(jù)適應(yīng)度降冪排序X(t) 中的卷尾猴,劃分X(t) 為領(lǐng)導(dǎo)者種群A和跟隨者種群B。
步驟4經(jīng)由式(11)更新種群A和B中各卷尾猴的速度。
步驟5位置更新:
5.1:利用式(4)更新種群A中領(lǐng)導(dǎo)者的位置;
5.2: 經(jīng)由式(12)更新種群B中跟隨者的位置;
5.3:更新種群A、B中各成員的歷史最好位置;
5.4: 借助A∪B中卷尾猴的最好位置更新F。
步驟6依據(jù)式(12)更新F。
步驟7置t←t +1;若t <T,則執(zhí)行步驟3;否則,輸出最優(yōu)解。
ICapSA 的計算復(fù)雜度主要由步驟3 ~5 確定。在一個迭代周期內(nèi),步驟3 需對卷尾猴個體進(jìn)行排序,計算復(fù)雜度為O(NlogN);步驟4 需對卷尾猴的速度更新,計算復(fù)雜度為O(N +3.5Np); 步驟5 對卷尾猴領(lǐng)導(dǎo)者種群A更新,最壞情形下計算復(fù)雜度為O(0.5N +2.5Np);步驟6 的計算復(fù)雜度為O(N +Np)。 因此,在最差情形下,ICapSA 的計算復(fù)雜度為O(N(logN +2.5+7p))。 綜 上 分 析 表 明,ICapSA 的種群規(guī)模N和優(yōu)化問題的維度p是影響其搜索效率的重要因素。
在配置為Windows10/CPU3.7GHz/RAM4.0 GB/Matlab R2018a 環(huán)境下開展ICapSA 的性能測試。 選取7 種具有代表性的元啟發(fā)式算法(灰狼優(yōu)化GWO[12]、野雁優(yōu)化WGA[13]、蟻獅優(yōu)化ALO[14]、黑猩猩優(yōu)化ChOA[15]、飛 蛾 撲 火 優(yōu) 化MFO[16]、正 弦 余 弦 算 法SCA[17]、鯨魚優(yōu)化WOA[3])、卷尾猴搜索算法CapSA 參與ICapSA 的比較,各算法的最大迭代數(shù)為1000。 參與比較的算法的參數(shù)設(shè)置源于相應(yīng)文獻(xiàn);ICapSA 中,取m =50,N =30,ωmax=0.9,以及ωmin=0.5。
測試實例包括維度為30 的13 個基準(zhǔn)函數(shù)優(yōu)化問題F1~F13[18],其中F1~F7為單峰值函數(shù),F(xiàn)8~F13為多峰值函數(shù)。 各算法對每個測試問題均獨立運行25 次,獲得的最好目標(biāo)值的統(tǒng)計值、搜索效率及顯著性水平為5%的t檢驗值用于算法的性能比較分析,見表1;以F1、F3、F5、F7、F9、F11為例,各算法的平均搜索曲線如圖2 所示。 圖2 中,n和f分別表示迭代次數(shù)和目標(biāo)函數(shù)值。
表1 各算法的統(tǒng)計結(jié)果比較Tab. 1 Comparison of statistical results of each algorithm
圖2 算法的平均搜索曲線比較Fig. 2 Comparison of average search curves of algorithms
經(jīng)由表1 中的均值可知,MFO、SCA、ALO 求解以上13 個實例的性能整體上劣于其它算法的性能,同時表1 中的均方差值說明MFO 和ALO 求解單、多峰值函數(shù)優(yōu)化問題的穩(wěn)定性較差,收斂能力相對偏弱;其次,相較于其它參與比較的算法,CapSA 求解多峰值函數(shù)優(yōu)化問題的搜索效果及穩(wěn)定性整體上具有明顯優(yōu)勢,但也存在尋優(yōu)精度低及求解F3、F5、F8失效的不足,這主要由算法易陷入局部搜索導(dǎo)致。 對于ICapSA,經(jīng)由表1 中的均值和方差獲知,無論是獲得的解的質(zhì)量、還是算法搜索效果的穩(wěn)定性,均明顯優(yōu)于其它參與比較的算法;同時除了求解F5、F8獲得的解的精度及搜索效果的穩(wěn)定性有待提高外,對于其它測試問題,得到的解的質(zhì)量均較高,搜索效果較穩(wěn)定、且求解性能對求解問題的特征依賴較弱。 與CapSA 相比,其尋優(yōu)性能有顯著提升。另外,t檢驗值表明,與CapSA、WGA、GWO、ChOA、ALO、WOA、MFO、SCA 比較,ICapSA 依次求解11、10、10、11、12、8、11、10 個測試實例有明顯優(yōu)勢,因此該算法顯著優(yōu)于參與比較的8 種算法。 另外,算法的平均運行時間表明,ICapSA 的執(zhí)行效率最高,WOA 及SCA 次之,而ALO 的執(zhí)行效率最低。
經(jīng)由圖2 可知,MFO、ALO、GWO、WOA 和SCA易陷入局部搜索,且收斂速度慢,表明其全局開采能力弱;ChOA 在前期收斂能力不足,求解精度較低;WGA 雖然收斂速度快,但易于陷入局部搜索,且求解性能不穩(wěn)定;CapSA 的進(jìn)化能力相對較強,收斂速度快,但獲得的解的精度偏低;ICapSA 能有效克服CapSA 存在的不足,且相比于其它參與比較的算法,收斂速度快,求解精度高,全局搜索能力強。
光伏電池雙二極管模型(Double Diode Model,DDM)由1 個受光照影響的理想電流源、2 個并列二極管(D1、D2) ,以及1 個等效并聯(lián)電阻Rsh和1 個等效串聯(lián)電阻RS組成[19],如圖3 所示。
圖3 光伏電池雙二極管模型Fig. 3 Photovoltaic cell double diode model
圖3 中,Iph、Id1、Id2,RS、Rsh、I、V分別表示雙二極管電池的光生電流、二極管飽和電流、串聯(lián)電阻、并聯(lián)電阻、輸出電流和輸出電壓。 根據(jù)基爾霍夫電流定律,輸出電流I由式(13)計算得到:
其中,Iph為光生電流;Id1、Id2分別為第一、二個二極管的電流;Ish為等效并聯(lián)電阻電流。 根據(jù)Shockley 方程,Id1、Id2及Ish由式(14)確定:
其中,Isdi及ni分別表示第i個二極管的飽和電流及理想因子;K是玻爾茲曼常數(shù), 取值1.3806503×10-23J/K;q表示電子的電荷量,取值1.60217646×10-19C。 在此,T0是電池的開爾文溫度。 由此,雙二極管的電流可由下式計算:
在給定電流I和電壓V下,式(15)包含7 個待定參數(shù),即Iph、Isd1、Isd2、IRS、Rsh、n1及n2, 則可通過參數(shù)辨識獲得參數(shù)值。 由于該模型所含參數(shù)較少,因此求解較為容易。 研究中,為檢測ICapSA 的性能,將圖2 中雙二極管模型擴展為含4 個二極管的模型,簡稱此模型為四二極管模型,如圖4 所示。
圖4 光伏四二極管模型Fig. 4 Photovoltaic cell four-diode model
類似于以上雙二極管的電流計算表達(dá)式,四二極管的電流經(jīng)由式(16)計算:
式(16)包含的待定參數(shù)為Iph、Isdi、RS、Rsh、ni,這里1 ≤i≤4。 記此11 個參數(shù)構(gòu)成的向量為x。 于是,在給定M組電流與電壓實測數(shù)值{(Ij,Vj)|1 ≤j≤M} 下, 獲得如下參數(shù)辨識模型(Four-diode model, FDM):
經(jīng)由文獻(xiàn)[20]獲得26 組實測電流Ik與電壓Vk,M =26。 參照第3.1 節(jié)的實驗方案,在最大迭代數(shù)為5000 前提下,ICapSA 與參與比較的方法均對模型FDM 求解25 次,獲得的統(tǒng)計結(jié)果見表2;算法的搜索曲線如圖5(a)所示,以及ICapSA 獲得的電壓與電流、電壓與功率曲線如圖5(b)~(c)所示。
經(jīng)由表2 獲知,ICapSA 及參與比較的算法求解以上四二極管模型FDM 后,各自獲得的最好目標(biāo)值及統(tǒng)計值之間僅存在精度差異,且搜索效果較為穩(wěn)定;相對而言,ICapSA 的精度最高,所獲模型的參數(shù)值逼近理論值的程度最高,因此應(yīng)用于太陽能四二極管模型的參數(shù)辨識效果最好,同時t檢驗值進(jìn)一步說明ICapSA 求解FDM 具有明顯優(yōu)勢。 圖5(a)表明,ICapSA 的搜索曲線下降速度最快,且能快速達(dá)到全局收斂;結(jié)合以上的算法性能測試實驗獲知,參與比較的算法僅能獲得精度較低的解,且易于陷入局部搜索。 圖5(b)~(c)說明,ICapSA 獲得的參數(shù)值能使得由式(16)計算得到的電流和功率值與測量值的誤差最小,且電流誤差介于1.4×10-3~1×10-5之間,功率誤差介于8×10-4~1×10-5。 因此表明FDM 的模型設(shè)計是合理的,且ICapSA 是有效的。
圖5 算法搜索曲線及實測與計算值形成的曲線Fig. 5 Algorithm search curve and curve formed by measured and calculated values
表2 各算法25 次運行獲得的最小目標(biāo)值、均值、方差及t-檢驗值Tab. 2 The minimum target values, means, variances, andt-test values obtained by each algorithm in 25 runs
為改善卷尾猴搜索算法的尋優(yōu)性能及探討其潛在的應(yīng)用,利用混沌因子增強初始卷尾猴種群的多樣性,同時借助柯西變異及灰狼覓食策略提升種群的全局搜索能力;借助自適應(yīng)變化的慣性權(quán)重增強種群的全局開采與局部搜素能力,以及提升算法的尋優(yōu)效率,獲得ICapSA。 理論分析表明,此算法的計算復(fù)雜度由種群規(guī)模和優(yōu)化問題的維度決定。 比較性的性能測試分析表明,ICapSA 求解13 個基準(zhǔn)函數(shù)優(yōu)化問題時,其尋優(yōu)性能和搜索效率在9 個測試函數(shù)上均優(yōu)于另8 個對比算法。 通過將光伏電池二極管模型擴展為四二極管模型,參數(shù)辨識結(jié)果表明,ICapSA 求解四二極管模型參數(shù)辨識問題,能獲得最好的辨識效果,且模型計算得到的電流與功率值逼近實測值的程度高,其最小誤差均達(dá)到1×10-5。