• 大小: 2KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: UKF  SOC  

资源简介

本代码采用UKF算法估计锂电池SOC,有注释,能跑出图,

资源截图

代码片段和文件信息

function [xcp]=UKF_fiter(systemfunmeasurefunxc0ycp0I0)
global Qf n;
%---------------滤波初始化------------------
alp=2;
kap=1;
% beta=2;
lamda=alp^2*(n+kap)-n;
nc=n+lamda;
Wm=[lamda/nc 0.5/nc+zeros(12*n)];
Wc=Wm;
% Wc(1)=Wc(1)+(1-alp^2+beta);
ns=sqrt(nc);
%-------------------------------------------
sxk=0;spk=0;syk=0;pyy=0;pxy=0; p=p0;
%--------------构造sigma点-----------------
pk=ns*chol(p); % B=chol(A);meant:A‘*A=B;
sigma=xc0;
for k=1:2*n
    if(k<=n)
        sigma=[sigmaxc0+pk(:k)];
    else
        sigma=[sigmaxc0-pk(:k-n)];
    end
end
%-------------时间传播方程----------------
for ks=1:2*n+1
    sigma(:ks)=systemfun(sigma(:ks)I0);%利用系统方程对状态预测
    sxk=Wm(ks)*sigma(:ks)+sxk;
end
%----------完成对Pk的估计
for kp=1:2*n+1
    spk=Wc(kp)*(sigma(:kp)-sxk)*(sigma(:kp)-sxk)‘+spk;
end
%spk=spk+Qf*0.005*Qf‘;
    
%-----------------------
for kg=1:2*n+1
    gamma(kg)=measurefun(sigma(:kg)I0);
end
for ky=1:2*n+1
    syk=syk+Wm(ky)*gamma(ky);
end
%--------------测量更新方程--------------
for kpy=1:2*n+1
    pyy=Wc(kpy)*(gamma(kpy)-syk)*(gamma(kpy)-syk)‘+pyy;
end
 pyy=pyy+0.0000001;
for kxy=1:2*n+1
pxy=Wc(kxy)*(sigma(:kxy)-sxk)*(gamma(kxy)-syk)‘+pxy;
end
kgs=pxy/pyy;
xc=sxk+kgs*(yc-syk);%测量信息修正状态
p=spk-kgs*pyy*kgs‘; %误差协方差阵更新
%-------------------------------------
end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-12-16 12:18  UKF_SOC\
     文件        1385  2015-04-21 13:09  UKF_SOC\UKF_fiter.m
     文件        2145  2015-11-11 21:35  UKF_SOC\UKF_main.m

评论

共有 条评论