基于EKF算法的电池SOC估算研究

本文以锂离子电池为研究对象,选取thevenin模型描述电池的动态行为,基于脉冲充放电数据,对电池模型进行参数辨识。结果表明,thevenin模型能较好地描述电池的动态行为。最后在simulink环境下,基于扩展卡尔曼滤波(ekf)算法,实现对电池soc的估算。
1、电池模型选取
由于thevenin模型结构简单,参数辨识容易,因此该模型常作为电动汽车动力电池的基础模型。thevenin模型如下图所示:
将模型的状态方程与量测方程离散化,得到如下形式的模型:
2、参数辨识方法
最小二乘法是一种最基本也最常用的估计方法。由于参数在线辨识需要不断更新数据,这时可以采用递推最小二乘法。
递推最小二乘法的基本思想为:利用新的观测数据对旧的估计值进行修正。其算法流程为:
其中,θ为待辨识参数组成的向量,k是增益系数,z是实际量测值,p是量测协方差阵。初值θ(0)和p(0)可以通过离线方法获得。
c0=[0.0001 0.0001 0.0001]'; % 直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^(6)*eye(3,3); % 直接给出初始状态p0,即一个充分大的实数单位矩阵c=[c0,zeros(3,l-1)]; % 被辨识参数矩阵的初始值及大小e=zeros(3,l); % 相对误差的初始值及大小lambda=0.98; % 遗忘因子递推最小二乘法随着时间的推移会出现“数据饱和”的现象,为克服这个问题。引入遗忘因子λ,改进后的算法递推公式如下:
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; % 求被辨识参数c e1=c1-c0; % 求参数当前值与上一次的值的差值 e2=e1./c0; % 求参数的相对变化 e(:,k)=e2; % 把当前相对变化的列向量加入误差矩阵的最后一列 c0=c1; % 新获得的参数作为下一次递推的旧参数 c(:,k)=c1; % 把辨识参数c列向量加入辨识参数矩阵的最后一列 p1=(p0-kk*h'*p0)/lambda; % 求出 p(k)的值 p0=p1; end根据电池thevenin模型,可以得到差分方程为:
可以解出模型中各参数的值:
a1=c(1,:); a2=c(2,:); a3=c(3,:); a = a1;r0 = a2;r1 = (a3-a.*r0)./(a-1);c1 = -1./(r1.*log10(a));参数辨识结果如下图所示:
使用脉冲放电工况对模型的精度进行验证,电池验证模型如下图所示:
其中,soc calculate模块:
其中,rc paremeter calculate模块:通过遗忘因子最小二乘法的参数辨识结果获取。
其中,voltage calculate模块:
结果表明:thevenin模型参数辨识较为容易,对工况的仿真效果较好,可以相对准确地描述电池的动态特性。
3、电池soc估算
其中,安时积分法模块:
其中,电池参数模块:
其中,电池模型模块:
其中,ekf估算模块:
q = noise(1); % 过程噪声r = noise(2); % 观测噪声%% --------------a矩阵,状态转移----------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); % 得到估计值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、小结
本期提供了一种电池soc估算的具体的学习方法,对于研究soc估算的同学有很大的引导作用。不管是做何种电池的soc估算,都需要通过电池参数辨识→电池模型验证→电池soc估算这样一个过程。
结果表明,thevenin模型能较好地描述电池的动态行为。最后在simulink环境下,基于扩展卡尔曼滤波(ekf)算法,实现对电池soc的估算。
需要通过其他参数辨识方法/其他电池soc估算方法的可以基于此模型进行修改/改进。

从 Matchbox桌面关断PetaLinux BSP无法关断电路板
雷曼拓享科技“工矿灯”获美国发明专利授权
电机定子灌封胶:选择、应用与效果
电磁干扰是什么意思 如何在PCB上减轻电磁干扰?
集创推出4K2K 大尺寸LCD TV全系列驱动芯片
基于EKF算法的电池SOC估算研究
国内将打造成3D打印领先市场
浅谈仿真工具的选择及注意事项
Synopsys将收购思源科技(SpringSoft)
MOS管米勒效应:感性负载和阻性负载差异点解析
H.264标准拓展视频监控潜力
压力传感器的工作原理是什么?
高稳定LCD驱动44*4/40段VK2C23A/B
各大汽车厂商投身车内空气安全战“疫”
印制板有什么设计要求
魅族pro7发布​魅族笑了,这一设计魅族pro7将再次领先iPhone8发布
μTCA 冗余电源子系统中的 12V 分配
苹果供应链议价策略:多元化与尖端技术相辅相成
利润大跌,SK海力士因日本出口管制拟减产闪存
新能源汽车进入后补贴时代该如何保持稳健发展?