宋春寧,蘇有平,莫偉縣,鄭少耿
(廣西大學電氣工程學院,廣西 南寧 530004 )
單液流鋅鎳電池的結構簡單、循環壽命長、能量轉換效率高、功率可靈活設置,且沒有離子交叉污染,在應急電源系統、電站儲能和智能電網等方面,具有潛在的應用前景[1]。
荷電狀態(SOC)是電池狀態的重要指標之一,準確估計電池SOC,既是電池管理系統的基本要求,也可提高電池的使用效率,避免過度充放電對電池的損壞[2]。卡爾曼濾波算法基于電池的狀態空間模型,通過遞推迭代估計SOC,對狀態初始值誤差有很強的修正作用,還可根據系統觀測量,不斷修正估算的系統狀態量,對系統噪聲的抑制作用較強[3]。文獻[4]使用近似二階擴展卡爾曼濾波(ASEKF)對鋰離子電池進行SOC估計,誤差估算精度小于2%。文獻[5]基于H∞濾波器(HIF)在線估計電池模型參數,并使用無跡卡爾曼濾波(UKF)估計電池SOC,提出應用于電動汽車運行工況下SOC估計的HIF-UKF算法。文獻[6]在容積卡爾曼濾波(CKF)的基礎上,增加實時自適應修改過程噪聲協方差Q和量測噪聲協方差R的功能,提出了自適應容積卡爾曼濾波(ACKF),用于鋰離子電池SOC估計。CKF[6]是電池SOC估計的常用方法,但在迭代過程中存在破壞協方差對稱性和正定性的敏感操作,從而導致算法終止[7],且不更新量測噪聲協方差R會造成估算誤差累積,因此,要根據經驗來設定過程噪聲協方差Q、量測噪聲協方差R和狀態誤差協方差P。
本文作者在CKF算法中增加平方根濾波,確保協方差在迭代過程中保持正定性,對量測噪聲協方差R進行自適應更新,提出自適應平方根容積卡爾曼濾波(ASRCKF)算法;并應用郊狼優化算法(COA)[8]對ASRCKF算法的過程噪聲協方差Q、量測噪聲協方差初值R(0)及狀態誤差協方差初值P0進行參數尋優,以提高SOC估計精度和算法的魯棒性;提出COA-ASRCKF算法,用于單液流鋅鎳電池的SOC估計。
采用等效電路模型對單液流鋅鎳電池進行建模。等效電路模型的選取,通常需要在復雜性和精度兩個方面進行平衡[9]。理論上模型階次越高,越能準確反映電池充放電時的內部反應,但階次過高會使計算過程太復雜、實時性下降。選用二階等效電路模型,可獲得相對較好的估算精度和簡單的計算過程。單液流鋅鎳電池的等效電路模型見圖1。

圖1 單液流鋅鎳電池的等效電路模型
圖1中:Uoc為電池的開路電壓(OCV),通常被看作SOC的非線性函數[9];R1為電化學極化電阻;C1為電化學極化電容;R2為濃差極化電阻;C2為濃差極化電容;R0為電池的歐姆內阻;i為放電電流;Ucell為電池端電壓。
假設UR1C1表示電化學極化電壓,UR2C2表示濃差極化電壓。根據基爾霍夫定律,得到式(1)。
(1)
電池SOC安時積分法的定義為:
(2)
式(2)中:t為放電時間;η為電池的庫侖效率;Cn為電池的額定容量;Soc(0)為電池SOC(Soc)初值。
該模型是非線性模型,為準確地辨識出模型參數,采用文獻[10]中的遞推最小二乘(RLS)法進行模型參數辨識。
ASRCKF算法在CKF算法的基礎上增加平方根濾波和量測噪聲協方差更新,當初始條件選擇不當或工況發生變化時,ASRCKF自適應更新量測噪聲協方差,用于對下一狀態的估計,以適應外部變化,提高算法的魯棒性和估計精度。
ASRCKF算法的系統狀態空間表達式見式(3)。
(3)
式(3)中:xk、yk分別為系統狀態量和觀測量;uk為輸入量;f、g為非線性函數;wk-1、vk分別為過程噪聲和量測噪聲。
ASRCKF算法的具體步驟如下。
①初始化
S0=chol(P0)
(4)
②計算容積點Xj,k
(5)
式(5)中:Sk為狀態誤差協方差P在k時刻的平方根;n為系統狀態量的維數;En為n階單位矩陣;ξj為權值矩陣[En,-En]的第j列;Xj,k為第j個容積點k時刻的值。
(6)
④計算狀態誤差協方差平方根預測值
(7)
(8)
(9)
式(9)中:Yk+1為k+1時刻觀測量的測量值;Rk為k時刻量測噪聲協方差;χk+1、SR、rk+1為計算過程的中間變量。

(10)
⑧更新下一時刻量測噪聲協方差Rk+1
(11)
式(11)中:ek+1為k+1時刻的測量值與預測值的差值;L為動態窗口的長度,L越大計算量越大,精度也越高。實驗時,設置L=2。
重復循環步驟②-⑧,對系統狀態量進行迭代估計。
根據式(1)、(2),選取[UR1C1,k,UR2C2,k,Soc,k]T作為系統狀態量,建立單液流鋅鎳電池等效電路放電模型離散化方程,見式(12)。
(12)
式(12)中:T為系統采樣時間,設置為1 s。
使用ASRCKF算法估算單液流鋅鎳電池SOC時,設置觀測量yk=Ucell,k,狀態量xk=[UR1C1,k,UR2C2,k,Soc,k]T,輸入量uk=ik。非線性函數f、g的函數關系見式(13):
(13)
式(13)中:Uoc(Soc,k)表示Uoc關于SOC的函數關系。
ASRCKF算法通過迭代更新,計算單液流鋅鎳電池每個時刻的SOC估計結果。
根據式(11)可知,在ASRCKF算法估計電池SOC時,過程噪聲協方差Q和狀態誤差協方差初值P0均是3維變量,量測噪聲協方差初值R(0)是1維變量。參數Q、R(0)和P0對狀態量的估計精度具有重要影響,選取時通常是根據經驗進行設定。根據經驗設定參數不僅需要耗費一定的時間,且當參數設定不當時,還會導致算法性能下降。針對這一現象,應用郊狼優化算法(COA)對Q、R(0)和P0進行參數尋優,以提高電池SOC的估算精度和算法魯棒性,并提出COA-ASRCKF算法,用于單液流鋅鎳電池SOC估計。
2.3.1 郊狼優化算法(COA)
COA是由J.Pierezan等[11]提出的一種模擬郊狼群居生活、成長、生死等現象的算法,具有獨特的搜索模型和結構,優化能力出色,在解決復雜優化問題時優勢明顯[8]。在COA中,每頭郊狼代表一個候選解,每個解向量由郊狼的社會狀態因子構成,每一個狀態因子代表一個決策變量,D個狀態因子構成了一個含D個決策變量的解向量,用社會適應度評價每頭郊狼。COA主要分為4個步驟:初始化郊狼群、組內郊狼成長、郊狼的出生與死亡和郊狼被組驅離與接納。
①初始化郊狼群

(14)

②組內郊狼成長
組內郊狼成長主要靠組內最優狼Ga、組文化趨勢Cu及隨機選取的組內兩頭郊狼rc1、rc2,Cu的計算見式(15)。
(15)
式(15)中:O為郊狼種群按適應度升序排列后的社會狀態因子。
郊狼成長公式見式(16)。
(16)
(17)
采用式(18)進行優勝劣汰,以保留對應更優郊狼。
(18)
③郊狼出生與死亡
每組郊狼成長后會產生一只新生郊狼(Gu),新生郊狼受隨機選擇的父母郊狼rc3、rc4的遺傳基因及社會環境影響,數學模型見式(19)。
(19)
式(19)中:Mj為第j個決策變量取值范圍內的隨機數;rj為由均勻概率產生的[0,1]內的隨機數;Grc3,j、Grc4,j為組內兩個不同的郊狼的第j維;j1、j2為兩個隨機選擇的維度標號;Ps和Pa分別是分散概率和關聯概率,決定著幼狼被遺傳和變異的情況,計算公式見式(20)。
(20)
幼狼Gu出生后開始評價社會適應能力,若適應能力比組內適應能力最差、年齡(Aage)最老的郊狼(G0)好,則淘汰G0留下Gu,并將Gu的年齡置0,否則Gu淘汰。
④郊狼被驅離與接納
隨機分配到各組的郊狼,會以一定的概率被驅離并與其他組內的某郊狼交換。該機制有助于各組郊狼的交流。被驅離和接納的概率Pe見式(21)。
(21)
在初始化并隨機分組后,依次不斷進行②、③、④這3個步驟,當達到迭代終止條件輸出最優郊狼,否則跳轉到②。
2.3.2 COA-ASRCKF估算電池SOC求解模型
COA-ASRCKF算法估計電池SOC求解模型如下:
將COA算法中郊狼設置為ASRCKF算法中的參數R(0)、P0=diag([PL1,PL2,PL3])、Q=diag([QL1,QL2,QL3]),即郊狼=[R(0),PL1,PL2,PL3,QL1,QL2,QL3];將郊狼代入ASRCKF算法,計算電池SOC估計值,以安時積分法估算的電池SOC作為參考值,根據式(22)計算郊狼的適應度fit。
(22)

用COA-ASRCKF算法估算單液流鋅鎳電池SOC的偽代碼見表1。

表1 COA-ASRCKF算法的偽代碼
以單液流鋅鎳電池(張家港產)為研究對象,額定容量為210 Ah,充電終止電壓為2.1 V,放電截止電壓為1.2 V,尺寸為22 cm×21 cm×19 cm。用CT-3004-5V200A-NTFA電池綜合測試儀(深圳產)進行脈沖恒流放電實驗[12],實驗環境溫度為25 ℃,設置電池初始SOC=0.95,放電截止SOC=0.05,脈沖放電步進增量為電池額定容量的5%(共18個放電脈沖),放電電流為100 A,擱置時間為5 min,采樣周期為1 s。
單液流鋅鎳電池的OCV與SOC具有非線性函數關系。用脈沖恒流放電試驗來標定開路電壓曲線,將每個放電脈沖結束并靜置至端電壓Ucell穩定后的值,作為電池的開路電壓Uoc。通過脈沖放電曲線可獲得電池OCV和SOC的數據,通過MATLAB的cftool工具箱,對實驗數據進行多項式擬合,得到電池放電狀態下Uoc與SOC函數表示式,見式(23)。
(23)
將采集到的實驗數據導入MATLAB,設置郊狼群規模N=100、郊狼組數Np=10、組內郊狼數Nc=10、最大迭代次數tmax=10 000等參數,電池等效模型參數根據辨識結果確定;COA-ASRCKF算法參數Q、P0、R(0)根據COA算法尋優獲得;ASRCKF算法和CKF算法參數Q、P0、R(0)依據經驗設定,具體取值均為Q=diag([1×10-6,1×10-25,4×10-50]),R(0)=3×10-7,P0=diag([0.01,0.01,0.01])。設置SOC正確初值(SOC=0.95)和錯誤初值(SOC=0.50),得到的仿真結果見圖2。
從圖2可知,在SOC初值設置正確(SOC=0.95)的情況下,使用COA算法尋優得到參數Q、P0、R(0)的COA-ASRCKF算法,相較于根據經驗來設置參數的ASRCKF算法和CKF算法,估計精度更高;在SOC初值設置錯誤(SOC=0.50)的情況下,相較于CKF算法和ASRCKF算法,COA-ASRCKF算法估算電池SOC的魯棒性更強,同時估計精度也更高。CKF算法由于量測噪聲協方差固定不變,導致估計誤差累積,在SOC估計末端估計誤差明顯增大。

圖2 SOC初值為0.95和0.50的估計結果對比
為更加清晰直觀地比較3種算法在對電池SOC估計過程中的估計精度和魯棒性,設置電池SOC錯誤初值為0.50,并將3種算法的SOC估計結果與參考值進行差值計算,得到SOC估計誤差結果,見圖3,電池SOC估計評價指標見表2。

圖3 SOC初值為0.50的估計誤差對比
從圖3可知,在SOC估計過程中,COA-ASRCKF算法的魯棒性和估計精度優于CKF算法和ASRCKF算法。
從表2可知,不論電池SOC初值設置正確與否,COA-ASRCKF算法的均方根誤差均小于ASRCKF算法和CKF算法。

表2 SOC估計方法評價指標
在CKF算法中加入平方根濾波及自適應更新量測噪聲協方差R,并使用COA算法對卡爾曼方程的過程噪聲協方差Q、量測噪聲協方差初值R(0)及狀態誤差協方差初值P0進行參數尋優,提出COA-ASRCKF算法用于單液流鋅鎳電池SOC估計。該算法在估計單液流鋅鎳電池SOC時,相較于ASRCKF算法和CKF算法,具有更高的估計精度和更強的魯棒性,可在初值錯誤的情況快速修正,估計均方根誤差小于1%。在研究過程中,假定參數不變且未考慮電池受老化及電解液流速的影響,在后續研究中可考慮添加這兩個內容。