王星凱,邢麗坤,吳賢圓,孫朝鵬
(1.安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001;2.國網(wǎng)安徽省電力有限公司檢修分公司,安徽 合肥 230000)
鋰電池系統(tǒng)具有非線性[1-2]特征,模型參數(shù)是隨時間變化的,為了改善鋰電池在荷電估計中的精確性,本文將使用帶遺忘因子的遞推最小二乘法(FFRLS)來進行參數(shù)辨識.最小二乘法是Gauss為研究星體運動軌道預(yù)測而提出的,該方法因為原理簡單、收斂速度快、計算方便等特點在系統(tǒng)的參數(shù)估計領(lǐng)域有廣泛應(yīng)用[3].但在鋰電池系統(tǒng)中,由于采集數(shù)據(jù)過于巨大,且數(shù)據(jù)不能及時更新,導(dǎo)致參數(shù)估計結(jié)果不能隨時變參數(shù)的變化而及時變化.因此,提出FFRLS算法通過將LS算法改成遞推形式,并引入遺忘因子增加新數(shù)據(jù)在遞推過程中的權(quán)重,有效解決最小二乘計算繁瑣、參數(shù)估計不精確等問題.
目前電池模型主要分為電化學(xué)模型、神經(jīng)網(wǎng)絡(luò)模型和等效電路模型[4-5].本文采用二階RC電路模型,如圖1所示.Uoc為鋰電池開路電壓;Uo為鋰電池端電壓;R0為鋰電池內(nèi)阻;R1,R2和C1,C2分別為鋰電池的極化內(nèi)阻和極化電容.
圖1 二階RC電池等效電路模型
為了獲取一個較為準(zhǔn)確的電路模型,需要對電路模型中的元件參數(shù)進行參數(shù)辨識.目前常用的參數(shù)辨識方法有測量法、最小二乘法等[6].雖然測量法計算較為簡單并容易實現(xiàn),但只能用于離線的參數(shù)辨識,而且對傳感器精度要求很高,具有一定的局限性.
以SISO[7]為例,介紹一下FFRLS算法參數(shù)辨識過程.
z(k)=hT(k)θ+e(k),
(1)
式中:z(k)為系統(tǒng)第k次輸出量的觀測值;h(k)為系統(tǒng)第k次的輸入值;θ是需要被辨識的參數(shù).把式(1)擴展至N維,根據(jù)最小二乘準(zhǔn)則取泛函數(shù)J(θ)如下:
(2)
式中:Λ(k)為加權(quán)因子,對所有的k,Λ(k)為正數(shù),引入加權(quán)因子就是為了提高新數(shù)據(jù)在估計過程中的權(quán)重.對函數(shù)J(θ)取最小值,也就是J對θ求偏導(dǎo)等于0,就可以得到θ的最小二乘估計值.
對于k=1,2,…,L,將式(1)改寫成一個線性方程組.其中L為數(shù)據(jù)長度,在滿足L>na+nb的同時,還必須充分大.
z=HTθ+E.
(3)
然后引入衰減因子β(0<β≤1),且定義:
Z*=[βL-1z(1),βL-2z(2),…,
β2z(L-2),βz(L-1)z(L)],
(4)
H*=[βL-1hT(1),βL-2hT(2),…,
β2hT(L-2),βhT(L-1)hT(L)].
(5)
對于有L組觀測數(shù)據(jù)的系統(tǒng),采用FFRLS算法完成一次流程的結(jié)果為:
(6)
進一步,將結(jié)果改寫成:
(7)
式中:μ=β2,0<μ≤1,μ為遺忘因子.
同時,令
則可得到
P-1(k)=
μP-1(k-1)+h(k)hT(k).
(8)
聯(lián)合式(7)和式(8)再加上增益矩陣:
(9)
最后,將上述過程整理可得帶遺忘因子的遞推最小二乘法參數(shù)估計公式為:
(10)
在時變系統(tǒng)中引入遺忘因子是為了減少陳舊信息在參數(shù)估計中的權(quán)重,更多地使用新數(shù)據(jù),從而對算法起到修正作用.但引入遺忘因子可能會因噪聲干擾使參數(shù)估計波動更為嚴(yán)重,所以在實際運行中,要綜合考慮自適應(yīng)能力和精度損失兩方面因素.因此,遺忘因子選擇按以往經(jīng)驗選在0.9~1之間.
由圖1電路模型可設(shè)模型極化電壓與內(nèi)阻電壓之和為Ud,則有:
Ud=Uoc-Uo=IR0+U1+U2,
(11)
又有:
(12)
(13)
對式(12)和式(13)分別進行拉氏變換并代入式(11)后離散化處理可得:
Ud(k)=k1Ud(k-1)+
k2Ud(k-2)+k3I(k)+
k4I(k-1)+k5I(k-2),
(14)
其中:
這就滿足式(3)的最小二乘形式,然后根據(jù)式(10)遞推求得待辨識參數(shù)θ,進而根據(jù)各參數(shù)間關(guān)系求得二階電路的模型參數(shù).FFRLS算法流程如圖2所示.
圖2 基于FFRLS的模型參數(shù)在線辨識流程
如圖2所示,在Matlab中采用FFRLS對鋰電池二階RC等效電路模型參數(shù)進行在線辨識,過程如下:
(1)把充放電測試數(shù)據(jù)集導(dǎo)入,設(shè)置采樣時間為1 s,設(shè)置遺忘因子μ=0.973;
(2)將辨識參數(shù)初始化,設(shè)置θ(0)=0.001,P(0)=107I;
(4)計算新舊辨識參數(shù)的誤差e(k),并判斷是否超出誤差極限,若沒超出則重復(fù)步驟(3)、(4),超出極限則輸出辨識的參數(shù).
卡爾曼濾波主要應(yīng)用于線性系統(tǒng)中,而擴展卡爾曼濾波(EKF)是通過一階Taylor級數(shù)展開并線性化,但因其忽略高階項,導(dǎo)致估算精度不夠高,于是有了無跡卡爾曼濾波(UKF)的出現(xiàn).與EKF相比,UKF只需采用無跡變換,不需要求解Jacobi矩陣,UKF算法既減少了計算量又提高了數(shù)據(jù)精度.本文根據(jù)UKF算法分析,估算鋰電池的SOC,首先要建立電池的狀態(tài)空間方程.由式(15)結(jié)合圖1二階RC等效電路模型,鋰電池狀態(tài)方程和測量方程如下:
(15)
由圖1所示電池荷電狀態(tài)SOC、電容電壓U1、U2為狀態(tài)變量,端電流I為輸入量,端電壓Uoc為輸出量,模型離散化后轉(zhuǎn)換成空間狀態(tài)方程如下:
(16)
(17)
狀態(tài)向量xk=(SOCk,U1,k,U2,k)T,系統(tǒng)輸入uk為電流輸入Ik.
將狀態(tài)測量方程與UKF算法結(jié)合,估算出SOC的值.
實驗實現(xiàn)流程如下:將單節(jié)鋰電池放在恒溫箱(20℃±2℃)里進行脈沖放電(4.17 A放電18 min 靜置120 min)整個放電時長為780 min,采樣間隔1 s.
為驗證FFRLS算法參數(shù)辨識結(jié)果的準(zhǔn)確性,端電壓真實值與模型的誤差情況如圖3所示.平均誤差只有0.023,側(cè)面證實了參數(shù)的準(zhǔn)確性.
圖3 模型誤差
使用Matlab導(dǎo)入實驗測得的電池端電壓電流數(shù)據(jù),然后導(dǎo)入LS算法離線參數(shù)辨識結(jié)果結(jié)合UKF估計SOC,再通過FFRLS和UKF算法聯(lián)合估計SOC,實驗結(jié)果如圖4所示.
圖4 脈沖放電下的SOC估計及誤差曲線
從圖4(a)中可以看出,鋰電池荷電狀態(tài)在0.15~1之間變化, LS離線辨識參數(shù)代入UKF和FFRLS聯(lián)合UKF預(yù)測SOC對比,從曲線表現(xiàn)上來說采用FFRLS的曲線表現(xiàn)得更好一點,表現(xiàn)出更加出色的動態(tài)性能.為了更清晰地對比其差別,圖4(b)分別為LS和FFRLS荷電狀態(tài)估計曲線與真實值的相對誤差,可以看出FFRLS的SOC估計誤差在整體上都要小于LS的估計曲線,兩條曲線的誤差都控制在0.043之下,且FFRLS曲線的平均誤差要比LS曲線的平均誤差小0.007,F(xiàn)FRLS的表現(xiàn)要更為精確和穩(wěn)定.
本文使用二階RC等效電路模型對鋰電池進行建模,通過將FFRLS算法得出的參數(shù)帶入模型中驗證了該模型的準(zhǔn)確性;通過對比FFRLS算法和LS算法結(jié)合無跡卡爾曼濾波算法估計荷電狀態(tài),驗證了FFRLS參數(shù)辨識的精確度要高于LS,更適合實際應(yīng)用.從圖4也可以看出隨著工況的循環(huán)推進,兩條曲線的誤差也呈增長趨勢,且誤差波動幅度較大,這是因為實際情況下噪聲的不確定性,UKF算法不能較好地實時改變,而AUKF算法可以通過對噪聲協(xié)方差的實時更新,對噪聲模型的變化有較強的適應(yīng)能力,對SOC的估計性能更優(yōu).
蘭州文理學(xué)院學(xué)報(自然科學(xué)版)2022年5期