本文以鋰離子電池為研究對(duì)象,選取Thevenin模型描述電池的動(dòng)態(tài)行為,基于脈沖充放電數(shù)據(jù),對(duì)電池模型進(jìn)行參數(shù)辨識(shí)。結(jié)果表明,Thevenin模型能較好地描述電池的動(dòng)態(tài)行為。最后在Simulink環(huán)境下,基于擴(kuò)展卡爾曼濾波(EKF)算法,實(shí)現(xiàn)對(duì)電池SOC的估算。
1、電池模型選取
由于Thevenin模型結(jié)構(gòu)簡(jiǎn)單,參數(shù)辨識(shí)容易,因此該模型常作為電動(dòng)汽車動(dòng)力電池的基礎(chǔ)模型。Thevenin模型如下圖所示:
將模型的狀態(tài)方程與量測(cè)方程離散化,得到如下形式的模型:
2、參數(shù)辨識(shí)方法
最小二乘法是一種最基本也最常用的估計(jì)方法。由于參數(shù)在線辨識(shí)需要不斷更新數(shù)據(jù),這時(shí)可以采用遞推最小二乘法。
遞推最小二乘法的基本思想為:利用新的觀測(cè)數(shù)據(jù)對(duì)舊的估計(jì)值進(jìn)行修正。其算法流程為:
其中,θ為待辨識(shí)參數(shù)組成的向量,K是增益系數(shù),z是實(shí)際量測(cè)值,P是量測(cè)協(xié)方差陣。初值θ(0)和P(0)可以通過離線方法獲得。
c0=[0.0001 0.0001 0.0001]'; % 直接給出被辨識(shí)參數(shù)的初始值,即一個(gè)充分小的實(shí)向量
p0=10^(6)*eye(3,3); % 直接給出初始狀態(tài)P0,即一個(gè)充分大的實(shí)數(shù)單位矩陣
c=[c0,zeros(3,L-1)]; % 被辨識(shí)參數(shù)矩陣的初始值及大小
e=zeros(3,L); % 相對(duì)誤差的初始值及大小
lambda=0.98; % 遺忘因子
遞推最小二乘法隨著時(shí)間的推移會(huì)出現(xiàn)“數(shù)據(jù)飽和”的現(xiàn)象,為克服這個(gè)問題。引入遺忘因子λ,改進(jìn)后的算法遞推公式如下:
for k=3:L;
y(k)=ocv(k)-ul(k);
h=[y(k-1),it(k),it(k-1)]';
d1=y(k)-h'*c0;
x=h'*p0*h+lambda;
x1=inv(x);
Kk=p0*h*x1; % 求出K的值
c1=c0+Kk*d1; % 求被辨識(shí)參數(shù)c
e1=c1-c0; % 求參數(shù)當(dāng)前值與上一次的值的差值
e2=e1./c0; % 求參數(shù)的相對(duì)變化
e(:,k)=e2; % 把當(dāng)前相對(duì)變化的列向量加入誤差矩陣的最后一列
c0=c1; % 新獲得的參數(shù)作為下一次遞推的舊參數(shù)
c(:,k)=c1; % 把辨識(shí)參數(shù)c列向量加入辨識(shí)參數(shù)矩陣的最后一列
p1=(p0-Kk*h'*p0)/lambda; % 求出 p(k)的值
p0=p1;
end
根據(jù)電池Thevenin模型,可以得到差分方程為:
可以解出模型中各參數(shù)的值:
a1=c(1,:); a2=c(2,:); a3=c(3,:);
a = a1;
R0 = a2;
R1 = (a3-a.*R0)./(a-1);
C1 = -1./(R1.*log10(a));
參數(shù)辨識(shí)結(jié)果如下圖所示:
使用脈沖放電工況對(duì)模型的精度進(jìn)行驗(yàn)證,電池驗(yàn)證模型如下圖所示:
其中,SOC Calculate模塊:
其中,RC Paremeter Calculate模塊:通過遺忘因子最小二乘法的參數(shù)辨識(shí)結(jié)果獲取。
其中,Voltage Calculate模塊:
結(jié)果表明:Thevenin模型參數(shù)辨識(shí)較為容易,對(duì)工況的仿真效果較好,可以相對(duì)準(zhǔn)確地描述電池的動(dòng)態(tài)特性。
3、電池SOC估算
其中,安時(shí)積分法模塊:
其中,電池參數(shù)模塊:
其中,電池模型模塊:
其中,EKF估算模塊:
Q = Noise(1); % 過程噪聲
R = Noise(2); % 觀測(cè)噪聲
%% --------------A矩陣,狀態(tài)轉(zhuǎn)移----------
A1 = 1;
A2 = exp(-0.05/Tao);
A = [A1 0;0 A2];
P_last = [P_old(1) P_old(2);P_old(3) P_old(4)];
P_pre=A*P_last*A'+ [Q 0;0 Q];
%% --------------C矩陣-------------
C1 = 1.526 - 9.117*2*SOC_pre + 41.17*3*SOC_pre^2 ...
- 116.2*4*SOC_pre^3 + 184.4*5*SOC_pre^4 ...
- 148.9*6*SOC_pre^5 + 47.59*5*SOC_pre^6;
C = [C1 -1];
%% --------------更新--------------
X_pre = [SOC_pre;Up_pre];
K = P_pre*C'*(C*P_pre*C'+ R)^(-1); % 增益
X_upd = X_pre + K*(UL_ob-UL_pre); % 得到估計(jì)值
P_update = P_pre - K*C*P_pre;
%% --------------輸出--------------
SOC_upd = X_upd(1);
Up_upd = X_upd(2);
P_upd = [P_update(1,1) P_update(1,2) P_update(2,1) P_update(2,2)];
4、小結(jié)
本期提供了一種電池SOC估算的具體的學(xué)習(xí)方法,對(duì)于研究SOC估算的同學(xué)有很大的引導(dǎo)作用。不管是做何種電池的SOC估算,都需要通過電池參數(shù)辨識(shí)→電池模型驗(yàn)證→電池SOC估算這樣一個(gè)過程。
結(jié)果表明,Thevenin模型能較好地描述電池的動(dòng)態(tài)行為。最后在Simulink環(huán)境下,基于擴(kuò)展卡爾曼濾波(EKF)算法,實(shí)現(xiàn)對(duì)電池SOC的估算。
需要通過其他參數(shù)辨識(shí)方法/其他電池SOC估算方法的可以基于此模型進(jìn)行修改/改進(jìn)。
-
鋰離子電池
+關(guān)注
關(guān)注
85文章
3319瀏覽量
78711 -
卡爾曼濾波
+關(guān)注
關(guān)注
3文章
166瀏覽量
24979 -
電池充放電
+關(guān)注
關(guān)注
1文章
166瀏覽量
9226 -
simulink仿真
+關(guān)注
關(guān)注
0文章
75瀏覽量
8727 -
電池SOC
+關(guān)注
關(guān)注
0文章
10瀏覽量
3635
發(fā)布評(píng)論請(qǐng)先 登錄
鋰電池soc估算問題
仔細(xì)研究電池的充電狀態(tài)SOC和健康狀況SOH估算技術(shù)
基于遺傳算法優(yōu)化EKF算法的SOC估算
鋰電池的SOC估算精度研究

鋰離子電池荷電狀態(tài)估算

動(dòng)力電池SOC估算復(fù)雜方法綜述

評(píng)論