資源簡(jiǎn)介
用于動(dòng)力電池SOC估計(jì),在simulink搭建模型,采用一階RC環(huán)節(jié)
代碼片段和文件信息
function?[sysx0strts]=kalman(txuflagk)
switch?flag
case?0?%初始化設(shè)置
[sysx0strts]=mdlInitializeSizes;?
case?3
sys=mdlOutputs(txuk);
case?{1249}
sys=[];
otherwise
error([‘Unhandled?flag=‘num2str(flag)]);
end
%=====================================================
%?mdlInitializeSizes進(jìn)行初始化設(shè)置系統(tǒng)變量的大小
%=====================================================
function?[sysx0strts]=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=[-10];
%=====================================================
%?當(dāng)flag=3時(shí)計(jì)算系統(tǒng)的輸出變量:返回三個(gè)狀態(tài)
%=====================================================
function?sys=kalman(txuk)
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*XX‘);
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(11)=x4;
sys(21)=x5;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????30561??2019-08-25?10:13??ekfsoc2014a.slx
?????文件???????33541??2019-08-25?10:11??ekfsoc2016a.slx
?????文件??????119705??2019-08-24?23:50??ekfsoc2018b.mdl
?????文件????????1628??2019-08-24?22:14??kalman.m
評(píng)論
共有 條評(píng)論