《MATLAB缉私艇追击走私船PPT参考课件》由会员分享,可在线阅读,更多相关《MATLAB缉私艇追击走私船PPT参考课件(27页珍藏版)》请在金锄头文库上搜索。
1、实验实验3 缉私艇追击走私船缉私艇追击走私船 3.1 3.1 实验目的实验目的 (1)学会用MATLAB软件求解微分方程的初值问题; (2)了解微分方程数值解的思想,掌握微分方程数值解的方法; (3)学会根据实际问题建立简单微分方程数学模型,提高解决问题能力; (4)了解简单的计算机仿真和数据模拟的基本方法.3.2 3.2 实验问题实验问题 海上边防缉私艇发现距c公里处有一走私船正以匀速a沿直线行驶,缉私艇立即以最大速度b追赶,在雷达的引导下,缉私艇的方向始终指向走私船。问缉私艇何时追赶上走私船?并求出缉私艇追赶的路线。 xyco2021/3/101授课:XXX2.3 2.3 建立模型建立模型
2、 xcoy走私船初始位置在点走私船初始位置在点(0,0)(0,0),行驶方向为行驶方向为y y轴正方向,轴正方向,缉私艇的初始位置在点缉私艇的初始位置在点( (c c,0),0),缉私艇行驶的路程为缉私艇行驶的路程为s s 。 在时刻在时刻t t:缉私艇到达点缉私艇到达点 走私船的位置到达点走私船的位置到达点2021/3/102授课:XXX2.4 模型求解模型求解 (1) 求解析解求解析解 令:,2021/3/103授课:XXX1),当 x = 0 时, ,c=3c=3千米,千米,a=0.4a=0.4千米千米/ /分,分,分别取分别取b=0.6,0.8,1.2b=0.6,0.8,1.2千米千米
3、/ /分时,分时,缉私艇追赶路线的图形。缉私艇追赶路线的图形。 追赶时间分别为:追赶时间分别为:t=9t=9,5 5,2.81252.8125(分钟)(分钟) 2021/3/104授课:XXX2)2)当当时,时,缉私艇不可能追赶上走私船。缉私艇不可能追赶上走私船。 3 3),当当时,时,缉私艇不可能追赶上走私船。缉私艇不可能追赶上走私船。 2021/3/105授课:XXX(2)用MATLAB软件求解析解 MATLABMATLAB软件软件5.35.3以上版本提供的解常微分方程解析解的指令是以上版本提供的解常微分方程解析解的指令是dsolvedsolve,完整的调用格式是,完整的调用格式是: :微
4、分方程的书写格式规定:当微分方程的书写格式规定:当y y是因变量时,用是因变量时,用“Dny”“Dny”表示表示y y的的n n阶导数。阶导数。 例例1 1 求微分方程的通解。 解解 输入命令: y=dsolve(Dy=x+x*y,x)y=dsolve(Dy=x+x*y,x)Ans=-1+exp(1/2*x2)*C1dsolve(dsolve(方程方程1, 1, 方程方程2,2,方程方程n, n, 初始条件初始条件, , 自变量自变量)2021/3/106授课:XXX 解解 输入命令: y=dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)结 果 为 : y =
5、3e-2xsin(5x)2021/3/107授课:XXX解解 输入命令 : x,y,z=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z, t); x=simple(x) % 将x化简 y=simple(y) z=simple(z)结 果 为:x = (c1-c2+c3+c2e -3t-c3e-3t)e2t y = -c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t z = (-c1e-4t+c2e-4t+c1-c2+c3)e2t 2021/3/108授课:XXX在实际生产和科研中所建立的微分方程往往很复杂在
6、实际生产和科研中所建立的微分方程往往很复杂, ,有时有时尽管是一阶微分方程尽管是一阶微分方程, , 也很难求解也很难求解, ,即使求出解的表达式即使求出解的表达式, ,要想计算相应已知变量的函数值也是很困难的要想计算相应已知变量的函数值也是很困难的, ,在这种情在这种情况下,在实际上,对初值问题,一般是要求得到解在若况下,在实际上,对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值干个点上满足规定精确度的近似值,研究常微分方程的研究常微分方程的数值解法数值解法,或者得到一个满足精确度要求的便于计算的或者得到一个满足精确度要求的便于计算的表达式。表达式。(3 3)用)用MATLABM
7、ATLAB软件求微分方程的数值解软件求微分方程的数值解因此,研究常微分方程的数值解法是十分必要的因此,研究常微分方程的数值解法是十分必要的。对常微分方程对常微分方程 其数值解就是求其解析解其数值解就是求其解析解2021/3/109授课:XXX 在一系列离散点在一系列离散点处的近似值处的近似值用MATLAB软件求数值解的一般格式为tt,x=solverx=solver(f,ts,xf,ts,x0 0)ode45 ode23 ode113ode15sode23s由待解方程写成的m-文件名ts=t0,tf,t0、tf为自变量的初值和终值函数的初值ode23:组合的2/3阶龙格-库塔-芬尔格算法ode
8、45:运用组合的4/5阶龙格-库塔-芬尔格算法自变量值函数值2021/3/1010授课:XXX 1、在解n个未知函数的方程组时,x0和x均为n维向量,m-文件中的待解方程组应以x的分量形式写成. 2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.注意注意: :2021/3/1011授课:XXXfunction u=function u=文件名文件名( (自变量自变量, ,因变量因变量) ) u= u=微分方程的右端微分方程的右端然后在指令窗口执行然后在指令窗口执行ode23ode23(文件名文件名,0,2,0),0,2,0)可得到图形与相关数据可得到图形与相关数据
9、再执行再执行x,y=ode23(x,y=ode23(文件名文件名,0,2,0),0,2,0)可得到两组数据可得到两组数据执行执行plot(x,y)plot(x,y)可得到图形可得到图形建立M文件, 格式如左例polyfit(自变量,因变量,次数)2021/3/1012授课:XXX(3)用MATLAB软件求数值解c=3,a=0.4,b=0.8, 程序程序zjet.mzjet.mfunction u=zjwt(t,y)function u=zjwt(t,y) u=0.5*(t/3)0.5-(3/t)0.5) u=0.5*(t/3)0.5-(3/t)0.5) 执行下面的命令:执行下面的命令:ode2
10、3(zjwt,3,0.0005,0) 若想看图中点的坐标可执行下面的命令:若想看图中点的坐标可执行下面的命令:t,y=t,y=ode23(zjwt,3,0.0005,0) plot(t,y)plot(t,y)此时缉私艇的位置坐标是(此时缉私艇的位置坐标是(0.000500000000000.00050000000000,1.960136577121181.96013657712118) 执行下面的命令执行下面的命令: : ode45(zjwt,3,0.0005,0) 若想看图中点的坐标可执行下面的命令:若想看图中点的坐标可执行下面的命令:t,y=t,y=ode45(zjwt,3,0.0005,
11、0) plot(t,y)plot(t,y)此时缉私艇的位置坐标是(此时缉私艇的位置坐标是(0.00050.0005,1.9675 1.9675 ) 2021/3/1013授课:XXXMATLAB软件仿真法软件仿真法 当建立动态系统的微分方程模型很困难时,当建立动态系统的微分方程模型很困难时,我们可以用计算机仿真法对系统进行分析研究。我们可以用计算机仿真法对系统进行分析研究。所谓计算机仿真就是利用计算机对实际动态系所谓计算机仿真就是利用计算机对实际动态系统的结构和行为进行编程、模拟和计算,以此统的结构和行为进行编程、模拟和计算,以此来预测系统的行为效果。来预测系统的行为效果。2021/3/101
12、4授课:XXXMATLAB软件仿真法软件仿真法xcoy走私船初始位在点走私船初始位在点(0,0)(0,0),方向为,方向为y y轴正方向,轴正方向,缉私艇的初始位在点缉私艇的初始位在点( (c c,0),0),追赶方向可用方向余弦表示为追赶方向可用方向余弦表示为: 走私船的位置走私船的位置:缉私艇的位置缉私艇的位置: o缉私艇的位置缉私艇的位置: 则则时间步长时间步长2021/3/1015授课:XXX仿真算法:仿真算法: 第二步:第二步: 计算动点缉私艇计算动点缉私艇D D在时刻在时刻 时的坐标时的坐标 计算走私船计算走私船R R在时刻在时刻 时的坐标时的坐标 第一步:设置时间步长第一步:设置
13、时间步长, 速度速度a, ba, b及初始位置及初始位置2021/3/1016授课:XXX第三步:计算缉私艇与走私船这两个动点之间的距离:第三步:计算缉私艇与走私船这两个动点之间的距离: 根据事先给定的距离,判断缉私艇是否已经追上根据事先给定的距离,判断缉私艇是否已经追上了走私船,从而判断退出循环还是让时间产生一个了走私船,从而判断退出循环还是让时间产生一个步长,返回到第二步继续进入下一次循环;步长,返回到第二步继续进入下一次循环; 第四步:当从上述循环退出后,由点列第四步:当从上述循环退出后,由点列 和和可分别绘制成两条曲线可分别绘制成两条曲线即为缉私艇和走私船走过的轨迹曲线。即为缉私艇和走
14、私船走过的轨迹曲线。 2021/3/1017授课:XXX取取c=3 3千米,千米,a=0.40.4千米千米/ /分钟,分钟,b=0.80.8千米千米/ /分钟,分钟, c=3; a=0.4/60; b=0.8/60;d=0.01;dt=2;t=0;jstx=c;jsty=0;zscx=0;zscy=0;hold onaxis(0,3,0,2)while (sqrt(jstx-zscx)2+(jsty-zscy)2)d) t=t+dt; jstx=jstx-b*dt*jstx/sqrt(jstx2+(a*t-jsty)2); jsty=jsty+b*dt*(a*t-jsty)/sqrt(jstx
15、2+(a*t-jsty)2); zscy=a*t; plot(jstx,jsty,r+,zscx,zscy,b*) pause(0.2)endjstx,jsty,zscx,zscy,t程序程序zhuixiantu.mzhuixiantu.m历时历时:296秒秒,艇艇:(:(0.000041,1.97) 船船:(:(0,1.97) 2021/3/1018授课:XXX 显示船与艇行进路线程序显示船与艇行进路线程序c=3; a=0.4/60; b=0.8/60;d=0.01;dt=2;t=0;jstx=c;jsty=0;zscx=0;zscy=0;while (sqrt(jstx-zscx)2+(j
16、sty-zscy)2)d)pause(0.01) hold onaxis(0,3,0,2) t=t+dt; jstx=jstx-b*dt*jstx/sqrt(jstx2+(a*t-jsty)2); jsty=jsty+b*dt*(a*t-jsty)/sqrt(jstx2+(a*t-jsty)2); zscy=a*t; plot(jstx,jsty,rO,zscx,zscy, b*)end2021/3/1019授课:XXX例例设设A(0,0)为一导弹发射点,发现位于为一导弹发射点,发现位于B(0,100)处一架敌机沿处一架敌机沿水平方向逃离(如图),随即发射一枚导弹予以打击,现已水平方向逃离(如
17、图),随即发射一枚导弹予以打击,现已知导弹时刻对准敌机,且速率为飞机速率的两倍(设飞机速知导弹时刻对准敌机,且速率为飞机速率的两倍(设飞机速度为度为1)。试编程模拟导弹打击敌机的动态过程,并实时给)。试编程模拟导弹打击敌机的动态过程,并实时给出飞机和导弹的位置坐标。出飞机和导弹的位置坐标。 分析:分析:现将整个动态过程离散化,现将整个动态过程离散化,即以即以dt为时间间隔,实时观测飞机为时间间隔,实时观测飞机与导弹的位置:与导弹的位置:假定敌机从假定敌机从B点飞行到点飞行到B1点,点,导弹沿向量导弹沿向量AB1到到A1点;点;此时敌机又到此时敌机又到B2点,导弹则点,导弹则沿向量沿向量A1B2
18、到到A2点;点;以此类推,计算飞机的位置以此类推,计算飞机的位置坐标和导弹的位置坐标。坐标和导弹的位置坐标。2021/3/1020授课:XXX记记2021/3/1021授课:XXXstep1 画出导弹与飞机画出导弹与飞机A、B点位置;点位置;step2 求出求出dt时间段后的时间段后的B1点坐标;点坐标; 2.1 求出向量求出向量A0B1的方向,的方向, 2.2 求出求出A1点坐标点坐标 2.3 求出导弹与飞机间的距离求出导弹与飞机间的距离d;step3 判断距离判断距离d是否达到精度要求;如果没有是否达到精度要求;如果没有达到要求,转向达到要求,转向step1重复画点、计算新的位置重复画点、
19、计算新的位置直到直到d达到要求达到要求.步骤:步骤:2021/3/1022授课:XXXhold onaxis(0 3 0 2);k=0;A=3,0;B=0,0;v=0.01;dt=1;d=3;while d0.01plot(A(1),A(2),r.);plot(B(1),B(2),b*);pause(0.2);k=k+1;B=B+0,v*dt;e=B-A;d=norm(e);A=A+2.0*v*dt*e/d;fprintf(k=%.0f B(%.2f,100) A(%.2f,%.2f) d=%.2fn,k,B(1),A(1),A(2),d);end2021/3/1023授课:XXX2.5 2.
20、5 结果分析结果分析 用求解析解的方法算得的解是最为精确的;用数值方法计算的结果依赖于迭代终值的设定,减小迭代终值可以提高计算精度;用计算机仿真法计算的结果依赖于时间迭代步长的选取和程序终止条件的设定,修改终止条件的设定和减小时间迭代步长可以提高计算精度,减小误差。 2021/3/1024授课:XXX 1. 有一只猎狗在有一只猎狗在B B点位置发现了一只兔子在正东北方距离它点位置发现了一只兔子在正东北方距离它200200米的地方米的地方O O处,此时兔子开始以处,此时兔子开始以8 8米米/ /秒的速度向正西北方距离秒的速度向正西北方距离为为120120米的洞口米的洞口A A全速跑去,假设猎狗在
21、追赶兔子的时候始终全速跑去,假设猎狗在追赶兔子的时候始终朝着兔子的方向全速奔跑,用计算机仿真法等多种方法完成朝着兔子的方向全速奔跑,用计算机仿真法等多种方法完成下面的实验:下面的实验: (1) (1) 问猎狗能追上兔子的最小速度是多少?问猎狗能追上兔子的最小速度是多少? (2) (2) 在猎狗能追上兔子的情况下,猎狗跑过的路程是多少?在猎狗能追上兔子的情况下,猎狗跑过的路程是多少? (3) (3) 画出猎狗追赶兔子奔跑的曲线图。画出猎狗追赶兔子奔跑的曲线图。 (4) (4) 假设在追赶过程中,当猎狗与兔假设在追赶过程中,当猎狗与兔子之间的距离为子之间的距离为3030米时,兔子由于害怕米时,兔子
22、由于害怕, , 奔跑的速度每秒减半,而猎狗却由于兴奔跑的速度每秒减半,而猎狗却由于兴奋奔跑的速度每秒增加奋奔跑的速度每秒增加0.10.1倍,在这种情倍,在这种情况下,再按前面的况下,再按前面的(1)(3)完成实验任务。完成实验任务。 实验任务实验任务ABNWO2021/3/1025授课:XXX 2. 使用计算机仿真方法求解下述问题:在正方形的四个顶点使用计算机仿真方法求解下述问题:在正方形的四个顶点上各有一人,如下图所示,在某一时刻,四人同时出发以匀速上各有一人,如下图所示,在某一时刻,四人同时出发以匀速按顺时针方向追赶下一个人按顺时针方向追赶下一个人, ,如果他们始终保持对准目标如果他们始终保持对准目标, ,试确试确定每个人的行进路线。定每个人的行进路线。 2021/3/1026授课:XXX 素材和资料部分来自素材和资料部分来自网络,如有帮助请下载网络,如有帮助请下载!2021/3/1027