当前位置: 首页 > article >正文

导弹追踪问题:蒙特卡罗模拟+matlab代码

问题描述

在这里插入图片描述

蒙特卡罗模拟思想

在这里插入图片描述
采用微元法以直代曲的思想,假设一个个小时间段内,B船先走完一段直线距离后,导弹朝着两者连线方向走直线,这样若干条直线便近似拟合导弹轨迹。代码中判断碰撞的依据是A、B之间的距离小于某个阈值,导弹射程即导弹碰撞之前的最大飞行距离。

Matlab参考代码

% 初始化参数
% B船初始位置
B_x = 20;
B_y = 0;

% 导弹初始位置
A_x = 0;
A_y = 0;
v_B = 200;  % B船的速度
v_A = 3 * v_B;  % 导弹的速度
B_range = 50;  % 导弹射程
dt = 0.0000001;  % 时间步长
min_distance=0.001;%认为碰撞最大距离
t=0; % 初始化导弹击中B船的时间
d=0; % 初始化导弹飞行的距离
m=sqrt(2)/2; %定义常量
dd=sqrt((B_x-A_x)^2+(B_y-A_y)^2); %导弹与B船的距离
plot(A_x,A_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
plot(B_x,B_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
grid on; %打开网格线
axis([0 30 0 10]) %设置x轴范围、y轴范围
k=0; %控制画图速度
while(1) %当两者距离足够小时,表示导弹击中B船 
  t=t+dt; %更新导弹飞行时间
  B_x=20+t*v_B*m;B_y=0+t*v_B*m; %更新B船位置
  %更新导弹位置
  tan_alpha=(B_y-A_y)/(B_x-A_x);
  cos_alpha=1/(sqrt(1+tan_alpha^2));
  sin_alpha=tan_alpha/(sqrt(1+tan_alpha^2));
  A_x=A_x+v_A*dt*cos_alpha; A_y=A_y+v_A*dt*sin_alpha;
  %更新导弹飞行距离
  d=d+v_A*dt;
  %计算导弹与B船距离
  dd=sqrt((B_x-A_x)^2+(B_y-A_y)^2);
  
  k=k+1;
  if mod(k,1000)==0 %每刷新1000次时间画一个图
    plot(A_x,A_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
    plot(B_x,B_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
    pause(0.001); %暂停0.001s后再继续下面的操作
  end
  %导弹达到最大射程
  if d>50
      disp('导弹没有击中B船');
      break;
  end 
  %导弹击中B船
  if d<=B_range && dd<min_distance
      disp(['导弹飞行',num2str(d),'个单位后击中B船'])
      disp(['导弹飞行时间为',num2str(t*60),'分钟'])
      break;

  end

end

运行结果

在这里插入图片描述

导弹飞行27.8018个单位后击中B船
导弹飞行时间为2.7802分钟

http://www.kler.cn/news/309417.html

相关文章:

  • Linux7-su,exit,sudo
  • Java 中的 sleep、wait、join 怎么理解
  • linux中的kill、pkill和killall
  • C++速通LeetCode简单第3题-相交链表
  • RTMP协议在无人机巡检中的应用场景
  • 【深度学习】【OnnxRuntime】【Python】模型转化、环境搭建以及模型部署的详细教程
  • Java学习线路(2024版)
  • 简单了解微服务--黑马(在更)
  • 安全运维教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • 【Pycharm使用技巧记录手册】批量检索与替换功能——辅助Yolo训练标签label配置文件构建
  • Mac笔记本上查看/user/目录下的文件的几种方法
  • mysql配置优化和分组报错问题解决
  • 信号与线性系统综合实验
  • 87-java 可轮询锁和定时锁
  • 网络安全宣传周的时间,举办活动的方式和意义
  • 计算机毕业设计公交站点线路查询网站登录注册搜索站点线路车次/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序
  • 场外个股期权通道商是什么业务?个人投资者可以参与场外期权吗?
  • JavaScript ES6特性(var let const、function=>、增强表达赋值、类与对象)
  • 【大模型专栏—进阶篇】语言模型创新大总结——“三派纷争”
  • 微信小程序点赞动画特效实现
  • [乱码]确保命令行窗口与主流集成开发环境(IDE)统一采用UTF-8编码,以规避乱码问题
  • C++学习笔记(25)
  • TypeScript —枚举的应用
  • “拍照赚钱”的任务定价(2017数学建模国赛b题)
  • 中国农业银行——数据湖建设
  • 5V全桥驱动芯片单通道可替代型号LG9110S,应用于牙刷,电子锁,共享单车锁等产品中具有过温保护功能
  • Python模块化程序设计理念及实战
  • 【快慢指针】突破环形链表
  • 企微无限群发:精准营销与合规边界的探索
  • 性能测试的五大目标