matlab实践(十一):导弹追踪

1.题目

在这里插入图片描述
a=9.94,x0=62.06

2.方程

我们有:
( d x d t ) 2 + ( d y d t ) 2 = w 2 (\frac{\mathrm d\mathrm x}{\mathrm d\mathrm t})^2+(\frac{\mathrm d\mathrm y}{\mathrm d\mathrm t})^2=\mathrm w^2 (dtdx)2+(dtdy)2=w2
还有导弹始终指向船
( d x d t d y d t ) = λ ( X − x Y − y ) \left.\left(\begin{array}{c}\frac{\mathrm{dx}}{\mathrm{dt}}\\\frac{\mathrm{dy}}{\mathrm{dt}}\end{array}\right.\right)=\lambda\left(\begin{array}{c}\mathrm{X-x}\\\mathrm{Y-y}\end{array}\right) (dtdxdtdy)=λ(XxYy)
则有:
{ d x d t = w ( X − x ) 2 + ( Y − y ) 2 (X-x) d y d t = w ( X − x ) 2 + ( Y − y ) 2 (Y-y) \begin{cases}&\frac{\mathrm{dx}}{\mathrm{dt}}=\frac{\mathrm{w}}{\sqrt{(\mathrm{X}-\mathrm{x})^2+(\mathrm{Y}-\mathrm{y})^2}}\text{(X-x)}\\&\frac{\mathrm{dy}}{\mathrm{dt}}=\frac{\mathrm{w}}{\sqrt{(\mathrm{X}-\mathrm{x})^2+(\mathrm{Y}-\mathrm{y})^2}}\text{(Y-y)}\\\end{cases} dtdx=(Xx)2+(Yy)2 w(X-x)dtdy=(Xx)2+(Yy)2 w(Y-y)
先编写函数:

function dy=eq1(t,y)v0=10;a=9.94;x0=62.06;dy=zeros(2,1);dy(1)=a*v0*(x0-y(1))/sqrt((x0-y(1))^2+(v0*t-y(2))^2);dy(2)=a*v0*(v0*t-y(2))/sqrt((x0-y(1))^2+(v0*t-y(2))^2);
end

接着利用ode45求解

%调用
[t,y]=ode45('eq1',[0 0.6],[0 0]);
plot(y(:,1),y(:,2),'r*')

在这里插入图片描述
更改函数中的v0可以得到不同的轨迹
对于第二题做法是求出中间时刻t,dx,dy再列方程求解
试探法得到t=0.3125,dy=0.9910,由公式一得到dx
新函数

function dy=eq3(t,y)v0=10;a=9.94;x0=62.06;t1=0.3125;dy=zeros(2,1);dy(1)=a*v0*(x0-y(1))/sqrt((x0-y(1))^2+((1.5*v0*t+t1*10)-y(2))^2);dy(2)=a*v0*((1.5*v0*t+t1*10)-y(2))/sqrt((x0-y(1))^2+((1.5*v0*t+t1*10)-y(2))^2);end

求解

clc;clear;
x0=62.06;
a=9.94;
y11=0.990954556248263;%调用
[t,y]=ode45('eq1',[0 0.3125],[0 0]);
dy=0.0767429352348030;
dx=sqrt(9.94*10*9.94*10-dy^2);
plot(y(:,1),y(:,2),'r*')
hold on
[t1,y1]=ode45('eq3',[0 0.325],[31.03 y11]);
plot(y1(:,1),y1(:,2),'b*')

在这里插入图片描述
红色是加速前的轨迹,蓝色是加速后的轨迹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295580.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mingw下编译opencv4.5.2

初衷: 加载之前的模型没问题,但最近加载另一个模型时出现报错: OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.1.0) Error: Assertion failed (nodesMapIt ! nodesMap.end()) in sortByExecutionOrder, file G…

Vue和jQuery:横向对比

聚沙成塔每天进步一点点 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技…

java并发编程三 共享内存的问题和synchronized解决方案

文章目录 共享带来的问题synchronized 解决方案方法上的 synchronized 共享带来的问题 小故事 老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快 小南、小女(线程&…

数字人解决方案——ER-NeRF实时对话数字人模型推理部署带UI交互界面

简介 这个是一个使用ER-NeRF来实现实时对话数字人、口播数字人的整体架构,其中包括了大语言回答模型、语音合成、成生视频流、背景替换等功能,项目对显存的要求很高,想要达到实时推理的效果,建议显存在24G以上。 实时对话数字人 …

CycleGAN-两个领域非匹配图像的相互转换

1. CycleGAN的简介 pix2pix可以很好地处理匹配数据集图像转换,但是在很多情况下匹配数据集是没有的或者是很难收集到的,但是我们可以很容易的得到两个领域大量的非匹配数据。2017年有两篇非常相似的论文CycleGAN和DiscoGAN,提出了一种解决非匹…

初识Docker-什么是docker

Docker是一个快速交付应用、运行应用的技术 目录 一、Docker 二、运用场景 一、什么是Docker?它的作用是什么? Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包&…

旅游海报图怎么做二维码展示?扫码即可查看图片

现在旅游攻略的海报可以做成二维码印刷在宣传单单页或者分享给用户来了解目的地的实际情况,出行路线、宣传海报等。用户只需要扫描二维码就可以查看内容,更加的方便省劲,那么旅游海报的图片二维码制作的技巧有哪些呢?使用图片二维…

【Flutter】黑白图片

一、将图片处理成黑白图片 //第一种方法CachedNetworkImage(imageUrl: imageUrl,width: 80,height: 80,fit: BoxFit.cover,color: Colors.black,//目标颜色colorBlendMode: BlendMode.color,//颜色混合模式)//第二种方法ShaderMask(shaderCallback: (Rect bounds) {return Lin…

【shell脚本实战学习笔记】#1

shell脚本实战学习笔记#1 脚本编写场景需求: 编写一个比较数据大小的shell脚本,要求判断用户只能输入两位数字,不能是字符或其他特殊字符;并且在shell脚本中需要用到函数来控制执行顺序。 知识点:shell函数&#xff…

ros2humble使用gazebo加载urdf文件的基本流程

1:编写xacro文件 2:把xacro文件转换为urdf文件 3:使用gazebo建立sdf文件fine,也就是ros1里面的world文件,现在后缀是sdf文件了 4:把urdf文件转换为sdf文件good 5:把修改后的good.sdf文件稍微…

swing快速入门(二十五)

注释很详细,直接上代码 新增内容 1.ImageIO.write读取并显示图片 2.ImageIO.writeImageIO.write读取并保存图片 package swing21_30;import javax.imageio.ImageIO; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent…

内存函数的学习

额外知识点 第一个 假设c为int类型,(char)c之后,之后如果还用变量c的话,c依然为int类型。()强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …