?? c8l3.m
字號:
ITERM=1;
G=32.2;
SIGNOISE=25.;
RMAT=SIGNOISE^2;
X=200000.;
XD=-6000.;
BETA=500.;
XH=200025.;
XDH=-6150.;
XDDH=0.;
XNT=322.;
ORDER=3;
TS=.1;
TF=30.;
PHIS=XNT*XNT/TF;
T=0.;
S=0.;
H=.001;
HP=.001;
TS2=TS*TS;
TS3=TS2*TS;
TS4=TS3*TS;
TS5=TS4*TS;
PHI=[1 TS .5*TS*TS;0 1 TS; 0 0 1];
P=[SIGNOISE*SIGNOISE 0 0;0 20000 0;0 0 0];
IDNP=eye(ORDER);
Q=zeros(ORDER,ORDER);
PHIT=PHI';
Q(1,1)=TS5*PHIS/20.;
Q(1,2)=TS4*PHIS/8.;
Q(1,3)=PHIS*TS3/6.;
Q(2,1)=Q(1,2);
Q(2,2)=PHIS*TS3/3.;
Q(2,3)=.5*TS2*PHIS;
Q(3,1)=Q(1,3);
Q(3,2)=Q(2,3);
Q(3,3)=PHIS*TS;
HMAT=[1 0 0];
HT=HMAT';
count=0;
while T<=TF
XOLD=X;
XDOLD=XD;
XDD=.0034*32.2*XD*XD*exp(-X/22000.)/(2.*BETA)-32.2;
X=X+H*XD;
XD=XD+H*XDD;
T=T+H;
XDD=.0034*32.2*XD*XD*exp(-X/22000.)/(2.*BETA)-32.2;
X=.5*(XOLD+X+H*XD);
XD=.5*(XDOLD+XD+H*XDD);
S=S+H;
if S>=(TS-.00001)
S=0.;
PHIP=PHI*P;
PHIPPHIT=PHIP*PHIT;
M=PHIPPHIT+Q;
HM=HMAT*M;
HMHT=HM*HT;
HMHTR=HMHT+RMAT;
HMHTRINV=inv(HMHTR);
MHT=M*HT;
GAIN=HMHTRINV*MHT;
KH=GAIN*HMAT;
IKH=IDNP-KH;
P=IKH*M;
XNOISE=SIGNOISE*randn;
RES=X+XNOISE-XH-TS*XDH-.5*TS*TS*XDDH;
XH=XH+TS*XDH+.5*TS*TS*XDDH+GAIN(1,1)*RES;
XDH=XDH+TS*XDDH+GAIN(2,1)*RES;
XDDH=XDDH+GAIN(3,1)*RES;
RHOH=.0034*exp(-XH/22000.);
BETAH=16.1*RHOH*XDH*XDH/(XDDH+32.2);
ERRX=X-XH;
SP11=sqrt(P(1,1));
ERRXD=XD-XDH;
SP22=sqrt(P(2,2));
ERRXDD=XDD-XDDH;
SP33=sqrt(P(3,3));
SP11P=-SP11;
SP22P=-SP22;
SP33P=-SP33;
count=count+1;
ArrayT(count)=T;
ArrayX(count)=X;
ArrayXH(count)=XH;
ArrayXD(count)=XD;
ArrayXDH(count)=XDH;
ArrayXDD(count)=XDD;
ArrayXDDH(count)=XDDH;
ArrayERRX(count)=ERRX;
ArraySP11(count)=SP11;
ArraySP11P(count)=SP11P;
ArrayERRXD(count)=ERRXD;
ArraySP22(count)=SP22;
ArraySP22P(count)=SP22P;
ArrayERRXDD(count)=ERRXDD;
ArraySP33(count)=SP33;
ArraySP33P(count)=SP33P;
end
end
figure
plot(ArrayT,ArrayERRX,ArrayT,ArraySP11,ArrayT,ArraySP11P),grid
xlabel('Time (Sec)')
ylabel('Error in Estimate of Altitude (Ft)')
axis([0 30 -50 50])
figure
plot(ArrayT,ArrayERRXD,ArrayT,ArraySP22,ArrayT,ArraySP22P),grid
xlabel('Time (Sec)')
ylabel('Error in Estimate of Velocity (Ft/Sec)')
axis([0 30 -150 150])
figure
plot(ArrayT,ArrayERRXDD,ArrayT,ArraySP33,ArrayT,ArraySP33P),grid
xlabel('Time (Sec)')
ylabel('Error in Estimate of Acceleration (Ft/Sec^2)')
axis([0 30 -200 200])
clc
output=[ArrayT',ArrayX',ArrayXH',ArrayXD',ArrayXDH',ArrayXDD',ArrayXDDH'];
save datfil.txt output -ascii
output=[ArrayT',ArrayERRX',ArraySP11',ArraySP11P',ArrayERRXD',ArraySP22',...
ArraySP22P',ArrayERRXDD',ArraySP33',ArraySP33P'];
save covfil.txt output -ascii
disp 'simulation finished'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -