基于卡尔曼滤波的锂蓄电池SOC设计

本文探讨了使用自适应卡尔曼滤波方法,基于锂离子动力电池等效电路模型,在未知干扰噪声环境下在线估计电动汽车锂离子动力电池荷电状态(SOC)的问题。

随着电动汽车的快速发展,电池状态的准确估计变得越来越重要。自适应卡尔曼滤波方法作为一种高效的在线估计方法,能够很好地解决这一问题。等效电路模型是一种直观描述电池输入与输出关系的模型,易于用数学解析式表达。该模型将电池内部的复杂反应过程简化为一个等效电路,使得电池的电压和电流关系更加直观。自适应卡尔曼滤波方法是一种基于系统状态的在线估计方法,通过不断更新的状态估计来减小误差。在本研究中,我们将自适应卡尔曼滤波方法应用于等效电路模型,以实现对锂离子电池SOC的在线估计。在实际应用中,电池系统往往受到各种未知干扰噪声的影响。这些干扰噪声可能导致电池状态的估计误差增大。因此,我们需要通过优化算法和模型参数来减小这些干扰噪声对估计结果的影响。

在采用基本卡尔曼滤波和扩展卡尔曼滤波方法估计电池SOC时,我们通常会假定噪声为零均值白噪声,且噪声方差已知。这种假设下,卡尔曼滤波方法的估计效果通常很好。但实际上,白噪声是不存在的,这使得在实际应用中,噪声往往具有一定的随机性和不确定性。

为了解决这个问题,我们可以考虑以下几点:噪声模型优化:更准确地描述实际噪声的特性,比如采用更复杂的噪声模型,如有色噪声等。这需要对噪声的特性进行更深入的分析和建模。卡尔曼滤波方法的改进:开发更先进的卡尔曼滤波方法,比如自适应卡尔曼滤波方法,能够更好地适应实际噪声的变化,从而提高估计的准确性。数据预处理:在估计之前,对数据进行预处理,比如滤波、去噪等,以减少噪声对估计结果的影响。

通过这些方法,我们可以更准确地估计电池的SOC,提高系统的性能和可靠性。

01卡尔曼滤波S函数

function [sys,x0,str,ts]=kalman(t,x,u,flag,k)
switch flag,
case 0 %初始化设置
[sys,x0,str,ts]=mdlInitializeSizes;
case 3
sys=mdlOutputs(t,x,u,k);
case {1,2,4,9}
sys=[];
otherwise
error(['Unhandled flag=',num2str(flag)]);
end



% mdlInitializeSizes进行初始化,设置系统变量的大小
function [sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=0;
sizes.NumOutputs=2;
sizes.NumInputs=3;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[0 0 0 0 0]';
str=[];
ts=[-1,0];

% 当flag=3时,计算系统的输出变量:返回三个状态
function sys=kalman(t,x,u,k)
R=1;
L=0.02;
M=-0.0067;
Ls=L-M;
% J=0.005;
k=0.382;
T=0.002;%T=0&x5-per=pi/3&x5-per=2*pi/3&x5-per=pi&x5-per=4*pi/3&x5-per=5*pi/3&x5-per<2*pi
q=5*pi/3;
a11=-2/3;a12=4/pi;
a21=-2/3;a22=-2/pi;
a31=4/3;a32=-2/pi;
end
A=[1-R*T/Ls 0 0 k*T*(a11+a12*(x5-q-per))/Ls 0;0 1-R*T/Ls 0 k*T*(a21+a22*(x5-q-per))/Ls0;...001-R*T/Ls k*T*(a31+a32*(x5-q-per))/Ls 0;0 0 0 1 0;0 0 0 T 1];
A1=Jacobian(A*X,X');
B=[T/(3*Ls) -T/(3*Ls) 0 0 0;0 T/(3*Ls) -T/(3*Ls) 0 0;...
-T/(3*Ls) 0 T/(3*Ls) 0 0]';
C=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0];
P=[0.01 0.01 0.01 10 1];
R=diag([0.02 0.02 0.02]);
Q=diag([0.04 0.04 0.04 0.05 0.02]);
Xhat1=A*x+B*u;
Phat1=A1*P*A1'+Q;
K=Phat1*C'*inv,[C*Phat1*C'+R];
xhat=[eye(5)-K*C]*(A*X+H*u)+K*X,[[1:3],;];
Phat=[eye(5)-K*C]*Phat1;
sys(1,1)=x4;
sys(2,1)=x5;

01仿真主程序

02输入模型

03卡尔曼SOC模型

04容量矫正模块

05电流效率模块

06仿真结果图

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扬辰鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值