宋春寧,蘇有平,莫偉縣,鄭少耿
(廣西大學(xué)電氣工程學(xué)院,廣西 南寧 530004 )
單液流鋅鎳電池的結(jié)構(gòu)簡單、循環(huán)壽命長、能量轉(zhuǎn)換效率高、功率可靈活設(shè)置,且沒有離子交叉污染,在應(yīng)急電源系統(tǒng)、電站儲(chǔ)能和智能電網(wǎng)等方面,具有潛在的應(yīng)用前景[1]。
荷電狀態(tài)(SOC)是電池狀態(tài)的重要指標(biāo)之一,準(zhǔn)確估計(jì)電池SOC,既是電池管理系統(tǒng)的基本要求,也可提高電池的使用效率,避免過度充放電對(duì)電池的損壞[2]??柭鼮V波算法基于電池的狀態(tài)空間模型,通過遞推迭代估計(jì)SOC,對(duì)狀態(tài)初始值誤差有很強(qiáng)的修正作用,還可根據(jù)系統(tǒng)觀測(cè)量,不斷修正估算的系統(tǒng)狀態(tài)量,對(duì)系統(tǒng)噪聲的抑制作用較強(qiáng)[3]。文獻(xiàn)[4]使用近似二階擴(kuò)展卡爾曼濾波(ASEKF)對(duì)鋰離子電池進(jìn)行SOC估計(jì),誤差估算精度小于2%。文獻(xiàn)[5]基于H∞濾波器(HIF)在線估計(jì)電池模型參數(shù),并使用無跡卡爾曼濾波(UKF)估計(jì)電池SOC,提出應(yīng)用于電動(dòng)汽車運(yùn)行工況下SOC估計(jì)的HIF-UKF算法。文獻(xiàn)[6]在容積卡爾曼濾波(CKF)的基礎(chǔ)上,增加實(shí)時(shí)自適應(yīng)修改過程噪聲協(xié)方差Q和量測(cè)噪聲協(xié)方差R的功能,提出了自適應(yīng)容積卡爾曼濾波(ACKF),用于鋰離子電池SOC估計(jì)。CKF[6]是電池SOC估計(jì)的常用方法,但在迭代過程中存在破壞協(xié)方差對(duì)稱性和正定性的敏感操作,從而導(dǎo)致算法終止[7],且不更新量測(cè)噪聲協(xié)方差R會(huì)造成估算誤差累積,因此,要根據(jù)經(jīng)驗(yàn)來設(shè)定過程噪聲協(xié)方差Q、量測(cè)噪聲協(xié)方差R和狀態(tài)誤差協(xié)方差P。
本文作者在CKF算法中增加平方根濾波,確保協(xié)方差在迭代過程中保持正定性,對(duì)量測(cè)噪聲協(xié)方差R進(jìn)行自適應(yīng)更新,提出自適應(yīng)平方根容積卡爾曼濾波(ASRCKF)算法;并應(yīng)用郊狼優(yōu)化算法(COA)[8]對(duì)ASRCKF算法的過程噪聲協(xié)方差Q、量測(cè)噪聲協(xié)方差初值R(0)及狀態(tài)誤差協(xié)方差初值P0進(jìn)行參數(shù)尋優(yōu),以提高SOC估計(jì)精度和算法的魯棒性;提出COA-ASRCKF算法,用于單液流鋅鎳電池的SOC估計(jì)。
采用等效電路模型對(duì)單液流鋅鎳電池進(jìn)行建模。等效電路模型的選取,通常需要在復(fù)雜性和精度兩個(gè)方面進(jìn)行平衡[9]。理論上模型階次越高,越能準(zhǔn)確反映電池充放電時(shí)的內(nèi)部反應(yīng),但階次過高會(huì)使計(jì)算過程太復(fù)雜、實(shí)時(shí)性下降。選用二階等效電路模型,可獲得相對(duì)較好的估算精度和簡單的計(jì)算過程。單液流鋅鎳電池的等效電路模型見圖1。
圖1 單液流鋅鎳電池的等效電路模型
圖1中:Uoc為電池的開路電壓(OCV),通常被看作SOC的非線性函數(shù)[9];R1為電化學(xué)極化電阻;C1為電化學(xué)極化電容;R2為濃差極化電阻;C2為濃差極化電容;R0為電池的歐姆內(nèi)阻;i為放電電流;Ucell為電池端電壓。
假設(shè)UR1C1表示電化學(xué)極化電壓,UR2C2表示濃差極化電壓。根據(jù)基爾霍夫定律,得到式(1)。
(1)
電池SOC安時(shí)積分法的定義為:
(2)
式(2)中:t為放電時(shí)間;η為電池的庫侖效率;Cn為電池的額定容量;Soc(0)為電池SOC(Soc)初值。
該模型是非線性模型,為準(zhǔn)確地辨識(shí)出模型參數(shù),采用文獻(xiàn)[10]中的遞推最小二乘(RLS)法進(jìn)行模型參數(shù)辨識(shí)。
ASRCKF算法在CKF算法的基礎(chǔ)上增加平方根濾波和量測(cè)噪聲協(xié)方差更新,當(dāng)初始條件選擇不當(dāng)或工況發(fā)生變化時(shí),ASRCKF自適應(yīng)更新量測(cè)噪聲協(xié)方差,用于對(duì)下一狀態(tài)的估計(jì),以適應(yīng)外部變化,提高算法的魯棒性和估計(jì)精度。
ASRCKF算法的系統(tǒng)狀態(tài)空間表達(dá)式見式(3)。
(3)
式(3)中:xk、yk分別為系統(tǒng)狀態(tài)量和觀測(cè)量;uk為輸入量;f、g為非線性函數(shù);wk-1、vk分別為過程噪聲和量測(cè)噪聲。
ASRCKF算法的具體步驟如下。
①初始化
S0=chol(P0)
(4)
②計(jì)算容積點(diǎn)Xj,k
(5)
式(5)中:Sk為狀態(tài)誤差協(xié)方差P在k時(shí)刻的平方根;n為系統(tǒng)狀態(tài)量的維數(shù);En為n階單位矩陣;ξj為權(quán)值矩陣[En,-En]的第j列;Xj,k為第j個(gè)容積點(diǎn)k時(shí)刻的值。
(6)
④計(jì)算狀態(tài)誤差協(xié)方差平方根預(yù)測(cè)值
(7)
(8)
(9)
式(9)中:Yk+1為k+1時(shí)刻觀測(cè)量的測(cè)量值;Rk為k時(shí)刻量測(cè)噪聲協(xié)方差;χk+1、SR、rk+1為計(jì)算過程的中間變量。
(10)
⑧更新下一時(shí)刻量測(cè)噪聲協(xié)方差Rk+1
(11)
式(11)中:ek+1為k+1時(shí)刻的測(cè)量值與預(yù)測(cè)值的差值;L為動(dòng)態(tài)窗口的長度,L越大計(jì)算量越大,精度也越高。實(shí)驗(yàn)時(shí),設(shè)置L=2。
重復(fù)循環(huán)步驟②-⑧,對(duì)系統(tǒng)狀態(tài)量進(jìn)行迭代估計(jì)。
根據(jù)式(1)、(2),選取[UR1C1,k,UR2C2,k,Soc,k]T作為系統(tǒng)狀態(tài)量,建立單液流鋅鎳電池等效電路放電模型離散化方程,見式(12)。
(12)
式(12)中:T為系統(tǒng)采樣時(shí)間,設(shè)置為1 s。
使用ASRCKF算法估算單液流鋅鎳電池SOC時(shí),設(shè)置觀測(cè)量yk=Ucell,k,狀態(tài)量xk=[UR1C1,k,UR2C2,k,Soc,k]T,輸入量uk=ik。非線性函數(shù)f、g的函數(shù)關(guān)系見式(13):
(13)
式(13)中:Uoc(Soc,k)表示Uoc關(guān)于SOC的函數(shù)關(guān)系。
ASRCKF算法通過迭代更新,計(jì)算單液流鋅鎳電池每個(gè)時(shí)刻的SOC估計(jì)結(jié)果。
根據(jù)式(11)可知,在ASRCKF算法估計(jì)電池SOC時(shí),過程噪聲協(xié)方差Q和狀態(tài)誤差協(xié)方差初值P0均是3維變量,量測(cè)噪聲協(xié)方差初值R(0)是1維變量。參數(shù)Q、R(0)和P0對(duì)狀態(tài)量的估計(jì)精度具有重要影響,選取時(shí)通常是根據(jù)經(jīng)驗(yàn)進(jìn)行設(shè)定。根據(jù)經(jīng)驗(yàn)設(shè)定參數(shù)不僅需要耗費(fèi)一定的時(shí)間,且當(dāng)參數(shù)設(shè)定不當(dāng)時(shí),還會(huì)導(dǎo)致算法性能下降。針對(duì)這一現(xiàn)象,應(yīng)用郊狼優(yōu)化算法(COA)對(duì)Q、R(0)和P0進(jìn)行參數(shù)尋優(yōu),以提高電池SOC的估算精度和算法魯棒性,并提出COA-ASRCKF算法,用于單液流鋅鎳電池SOC估計(jì)。
2.3.1 郊狼優(yōu)化算法(COA)
COA是由J.Pierezan等[11]提出的一種模擬郊狼群居生活、成長、生死等現(xiàn)象的算法,具有獨(dú)特的搜索模型和結(jié)構(gòu),優(yōu)化能力出色,在解決復(fù)雜優(yōu)化問題時(shí)優(yōu)勢(shì)明顯[8]。在COA中,每頭郊狼代表一個(gè)候選解,每個(gè)解向量由郊狼的社會(huì)狀態(tài)因子構(gòu)成,每一個(gè)狀態(tài)因子代表一個(gè)決策變量,D個(gè)狀態(tài)因子構(gòu)成了一個(gè)含D個(gè)決策變量的解向量,用社會(huì)適應(yīng)度評(píng)價(jià)每頭郊狼。COA主要分為4個(gè)步驟:初始化郊狼群、組內(nèi)郊狼成長、郊狼的出生與死亡和郊狼被組驅(qū)離與接納。
①初始化郊狼群
(14)
②組內(nèi)郊狼成長
組內(nèi)郊狼成長主要靠組內(nèi)最優(yōu)狼Ga、組文化趨勢(shì)Cu及隨機(jī)選取的組內(nèi)兩頭郊狼rc1、rc2,Cu的計(jì)算見式(15)。
(15)
式(15)中:O為郊狼種群按適應(yīng)度升序排列后的社會(huì)狀態(tài)因子。
郊狼成長公式見式(16)。
(16)
(17)
采用式(18)進(jìn)行優(yōu)勝劣汰,以保留對(duì)應(yīng)更優(yōu)郊狼。
(18)
③郊狼出生與死亡
每組郊狼成長后會(huì)產(chǎn)生一只新生郊狼(Gu),新生郊狼受隨機(jī)選擇的父母郊狼rc3、rc4的遺傳基因及社會(huì)環(huán)境影響,數(shù)學(xué)模型見式(19)。
(19)
式(19)中:Mj為第j個(gè)決策變量取值范圍內(nèi)的隨機(jī)數(shù);rj為由均勻概率產(chǎn)生的[0,1]內(nèi)的隨機(jī)數(shù);Grc3,j、Grc4,j為組內(nèi)兩個(gè)不同的郊狼的第j維;j1、j2為兩個(gè)隨機(jī)選擇的維度標(biāo)號(hào);Ps和Pa分別是分散概率和關(guān)聯(lián)概率,決定著幼狼被遺傳和變異的情況,計(jì)算公式見式(20)。
(20)
幼狼Gu出生后開始評(píng)價(jià)社會(huì)適應(yīng)能力,若適應(yīng)能力比組內(nèi)適應(yīng)能力最差、年齡(Aage)最老的郊狼(G0)好,則淘汰G0留下Gu,并將Gu的年齡置0,否則Gu淘汰。
④郊狼被驅(qū)離與接納
隨機(jī)分配到各組的郊狼,會(huì)以一定的概率被驅(qū)離并與其他組內(nèi)的某郊狼交換。該機(jī)制有助于各組郊狼的交流。被驅(qū)離和接納的概率Pe見式(21)。
(21)
在初始化并隨機(jī)分組后,依次不斷進(jìn)行②、③、④這3個(gè)步驟,當(dāng)達(dá)到迭代終止條件輸出最優(yōu)郊狼,否則跳轉(zhuǎn)到②。
2.3.2 COA-ASRCKF估算電池SOC求解模型
COA-ASRCKF算法估計(jì)電池SOC求解模型如下:
將COA算法中郊狼設(shè)置為ASRCKF算法中的參數(shù)R(0)、P0=diag([PL1,PL2,PL3])、Q=diag([QL1,QL2,QL3]),即郊狼=[R(0),PL1,PL2,PL3,QL1,QL2,QL3];將郊狼代入ASRCKF算法,計(jì)算電池SOC估計(jì)值,以安時(shí)積分法估算的電池SOC作為參考值,根據(jù)式(22)計(jì)算郊狼的適應(yīng)度fit。
(22)
用COA-ASRCKF算法估算單液流鋅鎳電池SOC的偽代碼見表1。
表1 COA-ASRCKF算法的偽代碼
以單液流鋅鎳電池(張家港產(chǎn))為研究對(duì)象,額定容量為210 Ah,充電終止電壓為2.1 V,放電截止電壓為1.2 V,尺寸為22 cm×21 cm×19 cm。用CT-3004-5V200A-NTFA電池綜合測(cè)試儀(深圳產(chǎn))進(jìn)行脈沖恒流放電實(shí)驗(yàn)[12],實(shí)驗(yàn)環(huán)境溫度為25 ℃,設(shè)置電池初始SOC=0.95,放電截止SOC=0.05,脈沖放電步進(jìn)增量為電池額定容量的5%(共18個(gè)放電脈沖),放電電流為100 A,擱置時(shí)間為5 min,采樣周期為1 s。
單液流鋅鎳電池的OCV與SOC具有非線性函數(shù)關(guān)系。用脈沖恒流放電試驗(yàn)來標(biāo)定開路電壓曲線,將每個(gè)放電脈沖結(jié)束并靜置至端電壓Ucell穩(wěn)定后的值,作為電池的開路電壓Uoc。通過脈沖放電曲線可獲得電池OCV和SOC的數(shù)據(jù),通過MATLAB的cftool工具箱,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行多項(xiàng)式擬合,得到電池放電狀態(tài)下Uoc與SOC函數(shù)表示式,見式(23)。
(23)
將采集到的實(shí)驗(yàn)數(shù)據(jù)導(dǎo)入MATLAB,設(shè)置郊狼群規(guī)模N=100、郊狼組數(shù)Np=10、組內(nèi)郊狼數(shù)Nc=10、最大迭代次數(shù)tmax=10 000等參數(shù),電池等效模型參數(shù)根據(jù)辨識(shí)結(jié)果確定;COA-ASRCKF算法參數(shù)Q、P0、R(0)根據(jù)COA算法尋優(yōu)獲得;ASRCKF算法和CKF算法參數(shù)Q、P0、R(0)依據(jù)經(jīng)驗(yàn)設(shè)定,具體取值均為Q=diag([1×10-6,1×10-25,4×10-50]),R(0)=3×10-7,P0=diag([0.01,0.01,0.01])。設(shè)置SOC正確初值(SOC=0.95)和錯(cuò)誤初值(SOC=0.50),得到的仿真結(jié)果見圖2。
從圖2可知,在SOC初值設(shè)置正確(SOC=0.95)的情況下,使用COA算法尋優(yōu)得到參數(shù)Q、P0、R(0)的COA-ASRCKF算法,相較于根據(jù)經(jīng)驗(yàn)來設(shè)置參數(shù)的ASRCKF算法和CKF算法,估計(jì)精度更高;在SOC初值設(shè)置錯(cuò)誤(SOC=0.50)的情況下,相較于CKF算法和ASRCKF算法,COA-ASRCKF算法估算電池SOC的魯棒性更強(qiáng),同時(shí)估計(jì)精度也更高。CKF算法由于量測(cè)噪聲協(xié)方差固定不變,導(dǎo)致估計(jì)誤差累積,在SOC估計(jì)末端估計(jì)誤差明顯增大。
圖2 SOC初值為0.95和0.50的估計(jì)結(jié)果對(duì)比
為更加清晰直觀地比較3種算法在對(duì)電池SOC估計(jì)過程中的估計(jì)精度和魯棒性,設(shè)置電池SOC錯(cuò)誤初值為0.50,并將3種算法的SOC估計(jì)結(jié)果與參考值進(jìn)行差值計(jì)算,得到SOC估計(jì)誤差結(jié)果,見圖3,電池SOC估計(jì)評(píng)價(jià)指標(biāo)見表2。
圖3 SOC初值為0.50的估計(jì)誤差對(duì)比
從圖3可知,在SOC估計(jì)過程中,COA-ASRCKF算法的魯棒性和估計(jì)精度優(yōu)于CKF算法和ASRCKF算法。
從表2可知,不論電池SOC初值設(shè)置正確與否,COA-ASRCKF算法的均方根誤差均小于ASRCKF算法和CKF算法。
表2 SOC估計(jì)方法評(píng)價(jià)指標(biāo)
在CKF算法中加入平方根濾波及自適應(yīng)更新量測(cè)噪聲協(xié)方差R,并使用COA算法對(duì)卡爾曼方程的過程噪聲協(xié)方差Q、量測(cè)噪聲協(xié)方差初值R(0)及狀態(tài)誤差協(xié)方差初值P0進(jìn)行參數(shù)尋優(yōu),提出COA-ASRCKF算法用于單液流鋅鎳電池SOC估計(jì)。該算法在估計(jì)單液流鋅鎳電池SOC時(shí),相較于ASRCKF算法和CKF算法,具有更高的估計(jì)精度和更強(qiáng)的魯棒性,可在初值錯(cuò)誤的情況快速修正,估計(jì)均方根誤差小于1%。在研究過程中,假定參數(shù)不變且未考慮電池受老化及電解液流速的影響,在后續(xù)研究中可考慮添加這兩個(gè)內(nèi)容。