运动学导弹拦截计算方法matlab源码
Posted MatlabQQ1575304183
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运动学导弹拦截计算方法matlab源码相关的知识,希望对你有一定的参考价值。
一、简介
说明导弹拦截的计算方法。通过动画和互动演示拦截过程。
二、源代码
%导弹拦截
clear %清除变量
rand('state',0) %随机状态初始化
v2=1.1; %拦截导弹速率与来袭导弹初速度之比
%v2=1; %拦截导弹速率与来袭导弹初速度之比
%v2=0.9; %拦截导弹速率与来袭导弹初速度之比
T=linspace(0,1); %飞行时间
while 1 %做无限循环
figure %创建图形窗口
axis([0,1,-0.2,0.6]) %坐标范围
axis equal off %隐藏坐标
title('导弹拦截','FontSize',20) %标题
text(0,0.5,'导弹来袭时,按空格键发射拦截导弹.','FontSize',16)%显示操作方法
hold on %保持图像
plot([0,1],[0,0]) %画地平线
th=90*rand; %0到90度之间的随机角度
th=th*pi/180; %化为弧度
xx1=0;yy1=0; %来袭导弹的初坐标
xx2=1;yy2=0; %拦截导弹的初坐标
x2=1;y2=0; %拦截导弹的终坐标的初值
c=''; %字符变量置空
dt=0; %时间间隔取0
for t=T %按来袭导弹的时间循环
x1=t*sin(2*th); %计算来袭导弹的横坐标
y1=2*sin(th)^2*(t-t^2); %计算来袭导弹纵坐标
plot([xx1,x1],[yy1,y1],'k','LineWidth',2)%画来袭导弹轨迹
s=sqrt((x2-x1)^2+(y2-y1)^2); %计算两弹之间的距离
if s<=0.02|y1<=0&t~=0 %如果两导弹距离很小或对方导弹落地
plot(x1,y1,'*','MarkerSize',20)%画爆炸射线
break %退出循环
end %结束循环
xx1=x1;yy1=y1; %保存来袭导弹的坐标
c=get(gcf,'CurrentCharacter'); %从键盘取图形窗口的当前字符
if length(c)~=0&&c==' ' %如果c中有字符且为空格
dt=T(2); %取时间间隔
end %结束条件
三、运行结果
四、备注
以上是关于运动学导弹拦截计算方法matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
车辆计数基于matlab GUI背景差分法道路行驶多车辆检测含Matlab源码 1911期
导弹仿真基于matlab导弹轨迹和撞击位置仿真含Matlab源码 2067期
导弹仿真基于matlab导弹轨迹和撞击位置仿真含Matlab源码 2067期