?? test.m
字號:
function test=test(u)
%========================================================================
%首先產生仿真用運動數據(虛擬測量)
%========================================================================
%勻速運動模型階段,運動時間為10s
%-------------------------------------------------------------------
T=0.1;
A=[ 1, 0, T, 0; 0, 1, 0, T; 0, 0, 1, 0; 0, 0, 0, 1]; %勻速運動的狀態轉移矩陣
X0=[10 10 10 20]; %初始化
Xvk(:,:,1)=X0;
for i=1:100
Xvk(:,:,i+1)=A*Xvk(:,:,i)';
end
for i=1:101
x(i)=Xvk(1,1,i);
y(i)=Xvk(1,2,i);
end
%-------------------------------------------------------------------
%勻加速運動模型階段,運動時間為7s
%-------------------------------------------------------------------
A=[ 1, 0, T, 0, T*T/2, 0; 0, 1, 0, T, 0, T*T/2; 0, 0, 1, 0, T, 0; 0, 0, 0, 1, 0 ,T;0, 0, 0, 0, 1, 0;0, 0, 0, 0, 0, 1];
%勻加速運動的狀態轉移矩陣
X0=[Xvk(:,:,100),5,3]; %勻速運動轉勻加速運動初始化
Xak(:,:,1)=X0;
for i=1:70
Xak(:,:,i+1)=A*Xak(:,:,i)';
x(100+i+1)=Xak(1,1,i+1);
y(100+i+1)=Xak(1,2,i+1);
end
%-------------------------------------------------------------------
%給仿真用數據加噪
%-------------------------------------------------------------------
noise_d=u;
noise=noise_d*randn(2,171);
for i=2:171
xx(i)=x(i);
yy(i)=y(i);
x(i)=x(i)+noise(1,i);
y(i)=y(i)+noise(2,i);
test(:,:,i)=[x(i),y(i),xx(i),yy(i)];
end
for i=1:171
d(i)=sqrt(x(i)*x(i)+y(i)*y(i));
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -