吳忠強,王國勇,謝宗奎,盧雪琴,何怡林
(燕山大學(xué) 河北省工業(yè)計算機控制工程重點實驗室,河北 秦皇島 066004)
隨著能源危機的日益加重,新能源汽車代替燃油汽車成為各國可持續(xù)發(fā)展的重要舉措。相對于傳統(tǒng)汽車,電動汽車在能量補給速度方面存在一定的劣勢,因此動力電池充放電成為制約電動汽車推廣的關(guān)鍵因素。動力電池模型的建立以及模型參數(shù)的精確辨識是對電池電量進行高效利用和優(yōu)化控制的前提[1~3]。
蓄電池模型是研究蓄電池充放電性能的主要載體。常用的蓄電池模型主要有等效電路模型和電化學(xué)模型[4]。電化學(xué)模型主要研究動力電池內(nèi)部電化學(xué)反應(yīng)過程,是一種精確的電池模型,由于計算復(fù)雜,僅適用于理論研究[5];等效電路模型是目前應(yīng)用最廣泛的電池模型,由電池內(nèi)阻、極化電容和電壓源等理想電路元件組成,采用線性變參數(shù)方法(linear parameter varying, LPV)來模擬蓄電池的非線性工作特性[6]。等效電路模型精度略低于電化學(xué)模型,但相比電化學(xué)模型具有參數(shù)少、計算簡單、便于實時估計等優(yōu)點[7]。目前,常用的等效電路模型有Rint模型、RC模型、PNGV模型和Thevenin模型等。Thevenin模型具有更好的動態(tài)適應(yīng)性,可以很好地模擬電池的動態(tài)特性且結(jié)構(gòu)簡單[8],在蓄電池的建模及荷電狀態(tài)(SOC)估計中的應(yīng)用也最廣泛[9]。
目前,常用的等效電路模型參數(shù)辨識方法有最小二乘法,遺傳算法,粒子群優(yōu)化(particle swarm optimization, PSO)算法等。文獻[10,11]采用最小二乘法對電池等效電路模型中各元件參數(shù)進行辨識。最小二乘法原理簡單、便于實現(xiàn)、收斂速度快,但只適用于線性系統(tǒng)的參數(shù)辨識?;谶z傳算法的等效電路模型參數(shù)辨識[12,13],是將估計出的參數(shù)做I-V擬合,利用每次迭代減小誤差得到參數(shù),適用于非線性系統(tǒng)的參數(shù)辨識,但設(shè)定參數(shù)較多,編程復(fù)雜,優(yōu)化時間較長?;诹W尤簝?yōu)化算法的蓄電池參數(shù)辨識[14,15],該算法結(jié)構(gòu)簡單,搜索速度快,易于工程實現(xiàn)[16],但易陷入局部最優(yōu),全局搜索能力差。近幾年,許多智能優(yōu)化算法也被應(yīng)用到蓄電池等效電路模型的參數(shù)辨識中。文獻[17]采用布谷鳥算法辨識電池模型參數(shù),該算法結(jié)構(gòu)簡單、參數(shù)少,在處理優(yōu)化問題時不需要重新匹配參數(shù),缺點是辨識電池模型參數(shù)時容易陷入局部最優(yōu),迭代后期種群更新緩慢。文獻[18]采用細菌覓食算法對蓄電池模型進行參數(shù)辨識,該算法并行搜索,不易陷入局部最優(yōu),魯棒性強,找到全局最優(yōu)解的概率高,但是算法的收斂速度較慢。
針對上述算法在蓄電池參數(shù)辨識中的問題,本文提出了一種基于改進蟻獅優(yōu)化算法(improved ant lion optimization, IALO)的蓄電池參數(shù)辨識方法。針對蟻獅優(yōu)化算法(ant lion optimization, ALO)存在收斂速度較慢與精度較低的問題,引入混沌Logistic映射初始化,使初始化群體遍及解空間,有利于尋找全局最優(yōu)解;引入自適應(yīng)慣性權(quán)重加隨機柯西變異策略,提高算法收斂速度;引入精英反向?qū)W習(xí)策略提高群體的多樣性,避免算法陷入局部最優(yōu)解。將3種改進策略相結(jié)合,加快了ALO算法的收斂速度,提高算法的尋優(yōu)精度。
ALO算法是2015年由Seyedali等[19]提出的一種新型智能優(yōu)化算法,受到蟻獅捕食螞蟻過程中不斷尋找優(yōu)化問題的最優(yōu)解啟發(fā)而提出的。
螞蟻隨機游走表達式為:
xt=[0,cumsum(2r(t1)-1),cumsum, (2r(t2)-1),…,cumsum(2r(tN)-1)
(1)
式中:xt為第t次迭代過程中螞蟻隨機游走后的位置;cumsum為累加和;N為螞蟻的數(shù)目;t為當前迭代次數(shù);r(t)為一個隨機函數(shù)值,其數(shù)學(xué)表達式為:
(2)
式中:rand為[0,1]之間的隨機數(shù)。
螞蟻隨機游走受到蟻獅陷阱收縮影響,其數(shù)學(xué)表達式為:
(3)
(4)
當螞蟻在陷阱周圍隨機移動時,蟻獅會繼續(xù)挖洞,使螞蟻慢慢移向自己,數(shù)學(xué)表達式為:
(5)
(6)
式中:T為最大的迭代次數(shù);w為能夠調(diào)整螞蟻移向蟻獅的速度:
(7)
為保證螞蟻在搜索空間內(nèi)隨機游走,使用式(8)處理:
(8)
螞蟻當前的位置為:
(9)
式中:At為第t次迭代通過輪盤賭方式選擇的在蟻獅周圍隨機游走的螞蟻;Et為第t次迭代在精英蟻獅周圍隨機游走的螞蟻。
蟻獅捕到螞蟻后,位置更新公式為:
(10)
ALO算法中輪盤賭的選擇機制、螞蟻的隨機游走確保了對搜索空間的開發(fā)能力,蟻獅陷阱的自適應(yīng)性提高了算法的收斂效率[20]。
算法實現(xiàn)步驟為:
步驟1:設(shè)置參數(shù),最大迭代次數(shù)T、螞蟻和蟻獅的數(shù)目分別為N和M、適應(yīng)度函數(shù)維數(shù)D,以及位置變量的上限bu和下限bl。
步驟2:隨機初始化螞蟻和蟻獅的位置,并分別保存在位置矩陣pAnt和pAntlion中,適應(yīng)度值保存在FAnt和FAntlion中,將適應(yīng)度進行排序,選出其中適應(yīng)度值最大的蟻獅作為精英蟻獅個體EAntlion。
(11)
(12)
(13)
(14)
An,d=bl,d+rand(0,1)(bu,d-bl,d)
(15)
Lm,d=bl,d+rand(0,1)(bu,d-bl,d)
(16)
式中:n=1,2,…,N;d=1,2,…,D;An,d表示第n只螞蟻第d維搜索空間的位置;m=1,2,…,M;Lm,d表示第m只蟻獅第d維搜索空間的位置;bu,d、bl,d為第d維搜索空間的上下限;f[An,1…An,D]表示第n只螞蟻適應(yīng)度值;f[Ln,1…Ln,D]表示第n只蟻獅適應(yīng)度值。
步驟4:游走后的螞蟻根據(jù)式(10)與當前位置最好的蟻獅對比,重新調(diào)整最佳蟻獅的位置。如果蟻獅的位置超出了最遠邊界bu或者bl,則按照最遠邊界處理,t=t+1。
步驟5:判斷是否達到算法的最大迭代次數(shù)或精度。若達到,則獲得最佳蟻獅位置;否則轉(zhuǎn)至步驟3。
針對ALO算法在函數(shù)尋優(yōu)過程中存在的估計精度不高、收斂速度慢、易陷入局部最優(yōu)等問題,提出3點改進:(1) 混沌Logistic映射初始化;(2) 自適應(yīng)慣性權(quán)重加隨機柯西變異;(3) 精英反向?qū)W習(xí)。
文獻[21]將混沌Logistic映射應(yīng)用到蜂群算法初始化中,提高了蜂群算法的尋優(yōu)精度。在優(yōu)化算法中,初始化種群的方式?jīng)Q定了初始種群的多樣性,從而決定了尋優(yōu)的速度以及解的質(zhì)量。多數(shù)情況下隨機初始化產(chǎn)生的初始種群多樣性較差,在一定程度上影響了求解的效率。本文采用混沌Logistic映射初始化種群,有望提高種群的多樣性和遍歷性。
利用混沌算法產(chǎn)生初始解的過程為:
1) 通過式(16)隨機產(chǎn)生M個蟻獅初始解,通過式(17)將其映射到Logistic方程的定義域內(nèi):
(17)
2) 用Logistic方程進行迭代產(chǎn)生混沌序列:
(18)
式中:μ為3.57到4之間的隨機數(shù),當μ取4時,完全進入混沌狀態(tài)。
3) 將產(chǎn)生的混沌序列映射回原來的定義域內(nèi):
(19)
文獻[22]提出了一種非線性慣性權(quán)重下降策略并應(yīng)用到鯨魚優(yōu)化算法(whale optimization algorithm, WOA)中,慣性權(quán)重對智能優(yōu)化算法的收斂速度和全局尋優(yōu)能力都有重要影響。實驗證明,較大的慣性權(quán)重有利于粒子全局尋優(yōu),反之,則利于局部開發(fā)。文獻[23]引入柯西變異策略并應(yīng)用到PSO算法中,有利于增加種群多樣性以減小陷入局部最優(yōu)的概率。為了提高ALO算法的尋優(yōu)能力,本文提出一種以當前最優(yōu)蟻獅位置為中心的自適應(yīng)慣性權(quán)重加隨機柯西變異策略,協(xié)調(diào)全局搜索和局部開發(fā)能力,進而提高算法收斂速度與尋優(yōu)能力,表達式為:
(20)
Lm,d=WLm,d+z1z2Cauchy(0,1) ×(EAntlion,d-Lm,d)
(21)
式中:W(t)為第t次迭代的權(quán)重值;g、h為自適應(yīng)權(quán)重常數(shù)項因子;z1、z2為0到1之內(nèi)的隨機數(shù);Cauchy(0,1)是服從標準柯西分布的隨機數(shù);EAntlion,d為蟻獅最優(yōu)個體。
策略2中采用的隨機柯西變異策略變異范圍的中心為最優(yōu)個體位置,這一定程度上限定了個體變異的多樣性,因此,為了進一步增加算法尋優(yōu)過程中種群多樣性,群體更新過程中引入精英反向?qū)W習(xí)策略。Shahryar等[24]已證明反向候選解可以更大概率接近全局最優(yōu)解,反向?qū)W習(xí)策略現(xiàn)已被成功應(yīng)用到粒子群算法[25]、差分進化算法[26]等算法的優(yōu)化中,用于拓展種群的搜索區(qū)間,提高算法的性能。
精英反向?qū)W習(xí)策略過程為:
1) 根據(jù)現(xiàn)有種群生成其反向解種群:
(22)
2) 當反向解超過邊界時,對反向解進行重置:
(23)
(24)
(25)
式中:Ji,d代表第i個精英個體第d維搜索空間的位置,i=1,2,…,P;Pj,d代表第j個普通個體第d維搜索空間的位置,j=1,2,…,(N-P)。
4) 精英群體反向解和普通群體構(gòu)成新種群。
為了驗證所提算法的優(yōu)越性,選取5個標準測試函數(shù)將IALO與ALO、自適應(yīng)粒子群優(yōu)化算法(adaptive particle swarm optimization, APSO)和樽海鞘優(yōu)化算法(salp optimization algorithm, SSA)的性能進行比較。設(shè)置算法參數(shù):IALO算法中,自適應(yīng)權(quán)重常數(shù)項因子為:g=3、h=2。APSO算法中,學(xué)習(xí)因子c1=1.494 45、c2=1.494 45;慣性權(quán)值上下限ωmax=0.9,ωmin=0.4;速度更新上下限vmax=1,vmin=-1。SSA算法中,移動方向概率閾值r3=0.5。4種算法種群規(guī)模、迭代次數(shù)、粒子空間維數(shù)統(tǒng)一設(shè)定為:n=40、T=500、D=10。4種算法分別獨立運行10次,并對運行所得的最優(yōu)值、均值與方差進行比較,結(jié)果見表1。
從表1可看出,APSO最優(yōu)值達到10-4,ALO最優(yōu)值達到10-9,SSA的最優(yōu)值達到10-10,IALO最優(yōu)值達到零,IALO的尋優(yōu)精度優(yōu)于前3種算法。從測試函數(shù)的均值和方差可以看出,APSO對于測試函數(shù)的均值和方差大都在10-2和10-4左右,SSA對于測試函數(shù)的均值和方差大都在10-5和10-11左右,ALO算法對于測試函數(shù)的均值和方差大都在10-5與10-12左右,而IALO的對于測試函數(shù)的均值和方差大都在10-36和10-80左右,因此,相比較前3種算法,IALO具有更強的尋優(yōu)能力和穩(wěn)定性。
表1 PSO、SSA、ALO和IALO的估計精度Tab.1 Estimation accuracy of APSO,SSA,IALO and ALO
本文對4種算法的收斂速度也進行了比較,將運行10次的適應(yīng)度值取平均值,結(jié)果顯示:SSA對于多數(shù)測試函數(shù)迭代250~300次達到收斂,APSO對于多數(shù)測試函數(shù)迭代200~250次達到收斂,ALO對于多數(shù)測試函數(shù)迭代150~200次達到收斂,IALO對于多數(shù)測試函數(shù)迭代5~20次就達到收斂,因此,相比前3種算法,IALO收斂速度更快。
選用的電池模型為三階戴維南等效電路模型[27],如圖1。
圖1 三階電池模型Fig.1 Third-order model of a battery
電路中包含1個理想電壓源、1個電阻,3個RC環(huán)。將3個RC環(huán)兩端的電壓作為狀態(tài)變量,電流作為輸入變量,模型端電壓作為輸出變量,列寫電池模型的離散狀態(tài)空間表達式:
(26)
(27)
利用IALO算法對電池模型電阻、電容參數(shù)進行辨識,將放電電流iL作為系統(tǒng)輸入,電池端電壓uL作為輸出,待辨識參數(shù)包括uoc、Δuoc、R0、R1、R2、R3、C1、C2以及C3等9個參數(shù)。算法的目標函數(shù)為:
(28)
蓄電池是容量為12 V/50 A·h的鉛酸蓄電池,利用PITE 3980智能放電監(jiān)測儀采集電池組放電電壓、電流實驗數(shù)據(jù)。實驗平臺見圖2。
圖2 蓄電池實驗測試臺Fig.2 Test bench of battery
先采用4 A電流對蓄電池進行放電1 h,靜置0.5 h;再采用3 A放電電流對蓄電池放電1 h,靜置0.5 h;最后采用2 A放電電流對蓄電池放電1 h。每隔4 min取1次實驗數(shù)據(jù),得到的電池端電壓曲線見圖3,由圖可以看出:放電電流越大,電壓下降越快。
圖3 端電壓曲線Fig.3 Curve of terminal voltage
基于蓄電池的放電實驗數(shù)據(jù),采用ALO與IALO算法辨識模型參數(shù)。統(tǒng)一設(shè)置算法參數(shù):種群規(guī)模n為30,最大迭代T為1 000,粒子空間維數(shù)D為9,辨識模型10次。分別取兩算法最優(yōu)適應(yīng)度值的9個參數(shù)辨識結(jié)果如表2,端電壓的最優(yōu)估計曲線見圖4。
表2 模型參數(shù)辨識結(jié)果Tab.2 Identification result of model parameters
由圖4可看出,IALO和ALO算法的辨識結(jié)果與測量值基本重合,均有較好的辨識精度。為了更清楚地觀察辨識結(jié)果,給出辨識結(jié)果的誤差曲線見圖5。圖中,ALO算法估計誤差值在-0.02~0.015之間;IALO算法估計誤差值在-0.005~0.006之間,辨識誤差較小。
圖4 端電壓擬合比較曲線Fig.4 Fitting curve of terminal voltage
圖5 端電壓估計誤差曲線Fig.5 Terminal voltage estimation average error curve
為了進一步說明IALO算法的準確性,取10次辨識結(jié)果的均方誤差MSE、平均絕對百分比誤差MAPE和平均絕對誤差MAE作為擬合準確率的評價指標。均方誤差MSE是反映估計量與被估計量之間差異程度的一種度量;平均絕對百分比誤差MAPE反映預(yù)測效果;平均絕對誤差MAE是絕對誤差的平均值,能更好的反映預(yù)測值誤差的實際情況,3種評價指標取值越小越好。兩算法3種誤差的平均值見表3。MSE、MAPE及MAE的定義分別為:
(29)
(30)
(31)
由表3可看出,IALO算法相比ALO算法的MSE、MAPE、MAE分別小2.252×10-4,4.207×10-4,2.866×10-3,辨識精度更高。
等效電路模型的選擇和模型參數(shù)的辨識精度,對蓄電池荷電狀態(tài)的準確估計具有重要意義。提出了一種改進蟻獅優(yōu)化算法,引入混沌Logistic映射初始化,有利于尋找全局最優(yōu)解;引入自適應(yīng)慣性權(quán)重加隨機柯西變異策略,有利于提高算法收斂速度;引入精英反向?qū)W習(xí)策略可以有效地提高群體的多樣性,避免算法陷入局部最優(yōu)解。5個標準測試函數(shù)的尋優(yōu)結(jié)果表明:IALO相比于PSO,SSA,ALO算法尋優(yōu)精度更高,收斂速度更快,將IALO應(yīng)用于三階Thevenin等效電路模型參數(shù)辨識中,得到更小的估計誤差,驗證了IALO算法的有效性。