卡尔曼滤波CSDN,自适应卡尔曼滤波算法
【滤波估计】用matlab代码实现基于双卡尔曼滤波的soc和soh联合估计_ MATLAB仿真博客的技术博客_博客
1引言电动汽车电池管理系统对电池状态的估计,对电池的准确充电,实现电池模型参数的在线更新至关重要。本文将开路电压的估计转化为开路电压拟合的估计参数,将开路电压的快时变参数转化为几个慢时变参数。提出了一种基于双卡尔曼滤波的多尺度参数自适应方法。可以获得电池充电状态和包括开路在内的所有参数的多尺度估计电压。以及双扩展卡尔曼滤波器的参数调整方法,估计了几个参数。实验结果表明,通过增加对开路电压的估计,提高了算法的准确性。该方法可以减小初始状态误差对算法的影响,提高算法的鲁棒性。
第2部分代码%%该程序使用DEKF来估计锂电池的SOC和SOH。
清晰;clc
全部关闭
%%模型参数
R1=0.0019;
R2=0.0035;
C1=23340;
C2=501270;
load( discharge . mat );%放电数据
load( OCV _ SOC . mat );%OCV-SOC关系
Ts=0.1%采样间隔
%%矩阵
a=[1-1 * Ts/R1/C1 0;0 1-1 * Ts/R2/C2 0;0 0 1];%系统矩阵
c=[-1-1 0];
d=0;
%%初始值
Q=0.00000001 *眼(3);%系统误差协方差
r=1;%测量误差协方差
xekf=[0;0;0.8];%[U1,U2,SOC]初始值
pa _ EKF=[0.0037;30.23*3600];%初始值[R0最大可用容量]
P0=0.01 *[0.1 0;0 0.1 0;0 0 1];%初始状态误差协方差值
%%分配
tm=discharge(1,);%时间
Cur=-discharge(2,);当前百分比
Vot=discharge(3,);%测量的终端电压
RSOC=放电(4,);%SOC的真实值-通过安培小时法计算
t=长度(TM)-1;%时间
%% emf-soc关系
x=OCV_SOC(2,);%SOC
y=OCV_SOC(1,);%OCV
p=polyfit(x,y,8);%多项式参数值
%%初始化
L _ discharge=长度(放电);
Uoc=零(1,L _ discharge);%OCV
h=零(L_discharge,3);%dUt/dx
Vekf=zeros(1,L _ discharge);%估计终端电压值
k=零(3,L _ discharge);%卡尔曼增益
C _ 1=零(L_discharge,2);
C _ 2=零(L_discharge,2);
d _ g _ PA=零(L_discharge,2);%dUt/d参数(内部电阻、容量)
K _ pa=零(2,8137);%卡尔曼增益,参数估计进行中
Pa=零(1,L _ discharge);%容量估计
Pa(1)=Pa _ EKF(2);
SOH=zeros(1,L _ discharge);%SOH
SOH(1)=1;%SOH初始值
uoc(1)=p(1)*xekf(3)^8 p(2)*xekf(3)^7 p(3)*xekf(3)^6 p(4)*xekf(3)^5 p(5)*xekf(3)^4 p(6)*xekf(3)^3 p(7)*xekf(3)^2 p(8)* xekf(3)p(9);%OCV
vekf(1)=Uoc(1)C * Xekf-Cur(1)* Pa _ EKF(1);%估计终端电压值
计数器=0;%计数
j=1;
图例(“真实值”、“估计值-DEKF”);
ylabel(SOC , Fontsize ,16)
Xlabel(时间,字体大小,16)
v _ error=Vot-Vekf ;
SOC_error=RSOC-Xekf(3,);
SOC _ error _ mean=mean(ABS(SOC _ error));
图(3);
set(gcf,单位,厘米,位置,[10 5 19.6 8]);
plot(t,V_error,-k , lineWidth ,2);网格打开
图例(“端电压误差”);
Ylabel(终端电压误差, Fontsize ,16)
Xlabel(时间,字体大小,16)
图(4);
set(gcf,单位,厘米,位置,[10 5 19.6 8]);
plot(t,SOC_error,-k ,线宽,2);网格打开
图例(“SOC误差”);
Yabel (SOC错误, Fontsize ,16)
Xlabel(时间,字体大小,16)
图(5);
set(gcf,单位,厘米,位置,[10 5 19.6 8]);
plot(t,Pa,-k ,线宽,2);网格打开
图例(“容量估计”);
ylabel(As , Fontsize ,16)
Xlabel(时间,字体大小,16)
图(6);
set(gcf,单位,厘米,位置,[10 5 19.6 8]);
plot(t,Pa_Qn_estimation,-k ,线宽,2);网格打开
图例(“容量过滤器值”);
ylabel(As , Fontsize ,16)
Xlabel(时间,字体大小,16)
3运行结果
4参考文献[1]浦仁,何,等.一种基于双自适应卡尔曼滤波算法的混合动力汽车锂电池SOC和SOH联合估计方法.
有些理论引用自网络文献。如有侵权,联系博主删除。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。