📄 jidong.m
字号:
clear
%目标先作匀速运动,然后作蛇形机动,再作匀加速运动,再作转弯运动,最后作匀速运动
%产生[0 1]间的正态分布的随机数
a0=19;
C=51329;
x1(1)=47169;
M=2^16;
for i=1:5999
x1(i+1)=mod(x1(i)*a0+C,M);
end
for i=1:6000
fakerand(i)=x1(i)/M;
end
for i=1:500
normrnd1(i)=0;
for j=(12*(i-1)+1):(12*i)
normrnd1(i)=normrnd1(i)+fakerand(j);
end
normrnd1(i)=normrnd1(i)-6;
end
%目标的参数,初始位置
x0=3000;
y0=4000;
v=20;
T=0.1;
Q1=20;
Q2=30;
b=pi/4;
vx=v*sin(b);
vy=v*cos(b);
for i=1:50
x2(i)=x0+vx*(i-1)*T;
y2(i)=y0+vy*(i-1)*T;
end
plot(x2,y2,'r-')
hold on
plot(x2+Q1*normrnd1(1:50),y2+Q2*normrnd1(1:50),'g:')
w=[0.05,-0.05]
T=0.5;
x(1,1)=x2(50);
x(2,1)=vx;
x(3,1)=y2(50);
x(4,1)=vy;
a=200*randn(1,50*length(w));
b=300*randn(1,50*length(w));
for j=1:length(w)
A=[1,sin(w(j)*T)/w(j),0,(cos(w(j)*T)-1)/w(j);0,cos(w(j)*T),0,-sin(w(j)*T);0,-(cos(w(j)*T)-1)/w(j),1,sin(w(j)*T)/w(j);0 ,sin(w(j)*T),0,cos(w(j)*T)];
for i=(50*(j-1)+1):(50*j)
x(:,i+1)=A*x(:,i);
end
end
hold on
plot(x0,y0,'r^',x(1,1:50),x(3,1:50),'r-')
hold on
plot(x(1,1:50)+Q1*normrnd1(1:50),x(3,1:50)+Q2*normrnd1(1:50),'g:')
hold on
plot(x(1,50:100),x(3,50:100),'b-')
hold on
plot(x(1,50:100)+Q1*normrnd1(1:51),x(3,50:100)+Q2*normrnd1(1:51),'g:')
x0=x(1,100);
y0=x(3,100);
v=50;
a=30;
b=pi/4;
vx=v*sin(b);
vy=v*cos(b);
ax=a*sin(b);
ay=a*cos(b);
for i=1:10
X1(i)=x0+vx*(i-1)*T+1/2*ax*((i-1)*T)^2;
Y1(i)=y0+vy*((i-1)*T)+1/2*ay*((i-1)*T)^2;
end
hold on
plot(X1,Y1,'r:')
hold on
plot(X1+Q1*normrnd1(1:10),Y1+Q2*normrnd1(1:10),'g:')
gtext('起始点');
gtext('匀速运动段');
gtext('蛇形机动段');
gtext('匀加速运动段');
hold on
legend('理论曲线','方差为Q1=120;Q2=160的观测曲线','起始点');
title('一般机动目标运动轨迹示意图');
xlabel('X坐标轴');
ylabel('Y坐标轴');
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -