clear all;
a=xlsread('E:/Lab/data/test/Wang/fe081dst');
%a=xlsread('E:/test/15tem');
y=a(:,2);%votage
u=a(:,3);%current
u=u;
s=length(y);
%y=y(5000:48000);
%u=u(5000:48000);
%s=length(y);
%soc=a(:,4);
soc(1)=0.999;
for i=1:s-1
soc(i+1)=soc(i)+u(i)/(3600*8.1);
if soc(i+1)<0.01
soc(i+1)=0.01;
end
end
%y1=y(13385:13422);
%u1=u(13385:13422);
%s=length(y1);
b(:,1)=[1 log(0.999) log(0.001) 0 u(1) 0]';%state
x=1;%forgetting factor
%chushihua
c(:,1)=[0.1 0.1 0.1 0.9 0 0]';%estimated needed
P=10000*eye(6,6);
for i=2:s
b(:,i)=[1 log(soc(i)) log(1-soc(i)) y(i-1) u(i) u(i-1)]';
e(i)=y(i)-b(:,i)'*c(:,(i-1));
K=(P*b(:,i))/(x+b(:,i)'*P*b(:,i));
P=(P-K*b(:,i)'*P)/x;
c(:,i)=c(:,(i-1))+K*e(i);
end
for i=1:s
vol(i)=b(:,i)'*c(:,i);
ocv(i)=(c(1,i)+c(2,i)*log(soc(i))+c(3,i)*log(1-soc(i)))./(1-c(4,i));
r(i)=(-c(6,i)+c(5,i))/(1+c(4,i));%欧姆内阻
k0(i)=c(1,i)/(1-c(4,i));
k1(i)=c(2,i)/(1-c(4,i));k2(i)=c(3,i)/(1-c(4,i));
ti(i)=(1+c(4,i))/(2*(1-c(4,i)));%时间常数
rps(i)=(1+2*ti(i))*c(5,i)-2*r(i)*ti(i)-r(i);%极化内阻
cps(i)=ti(i)/rps(i);%极化电容
end
plot(vol);hold on
plot(y);
plot(ocv)
figure;
plot(r)