資源簡(jiǎn)介
本代碼采用UKF算法估計(jì)鋰電池SOC,有注釋?zhuān)芘艹鰣D,

代碼片段和文件信息
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;
%--------------構(gòu)造sigma點(diǎn)-----------------
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
%-------------時(shí)間傳播方程----------------
for?ks=1:2*n+1
????sigma(:ks)=systemfun(sigma(:ks)I0);%利用系統(tǒng)方程對(duì)狀態(tài)預(yù)測(cè)
????sxk=Wm(ks)*sigma(:ks)+sxk;
end
%----------完成對(duì)Pk的估計(jì)
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
%--------------測(cè)量更新方程--------------
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);%測(cè)量信息修正狀態(tài)
p=spk-kgs*pyy*kgs‘;?%誤差協(xié)方差陣更新
%-------------------------------------
end
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????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
評(píng)論
共有 條評(píng)論