导弹追踪问题数学建模matlab_精品文档.doc
《导弹追踪问题数学建模matlab_精品文档.doc》由会员分享,可在线阅读,更多相关《导弹追踪问题数学建模matlab_精品文档.doc(12页珍藏版)》请在冰豆网上搜索。
数学实验结课论文
——导弹跟踪问题
班级:
信息与计算科学
姓名:
孔雪婷
学号:
2012518083
实验一导弹跟踪问题
一.实验目的
本实验主要涉及常微分方程。
通过实验复习微分方程的建模和求解,介绍两种求解微分方程的数值方法:
Euler法和改进的Euler法,还介绍了仿真方法。
二.实际问题
某军的一导弹基地发现正北方向120km处海面上有敌艇一艘以90km/h的速度向正东方向行驶。
该基地立即发射导弹跟踪追击敌艇,导弹的速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌艇。
试问导弹在何时何处击中敌艇?
三.数学模型
设坐标系如下,取导弹基地为原点0(0,0)。
轴指向正东方,y轴指向正北方。
当t=0时,导弹位于O,敌艇位于点(0,H),(H=120(km))设导弹t时刻的位置为P(),由题意,
(4.1)
其中。
另外在t时刻,敌艇位置应该为,其中=90(km/h)。
由于导弹轨迹的切线方向必须指向敌艇,即直线PM的方向就是导弹轨迹上点P的切线方向,故有
(4.2)
(4.3)
方程(4.3)初值条件想
x(0)=0,y(0)=0(4.4)
构成了一个关于时间变量t的一阶微分方程组的初值问题。
由(4.2)得
两边对t求导得
即有
把(4.1)写为代入上式,就得到轨迹方程。
这是一个二阶非线性微分方程,加上初值条件,则初值问题
上式分别为(4.5),(4.6),(4.7)。
就是导弹的轨迹的数学模型。
四.解析方法
方程(4.5)可以降阶。
令,则式(4.5)化为一介可分离变量方程
易得
由式(4.7)得,从而
于是有
(4.8)
于是积分又可以得到
利用式(4.6)得,于是导弹轨迹方程为
(4.9)
设导弹击中敌艇于B(L,H),以y=H代入(4.9)得
(4.10)
而导弹击中敌艇的时刻
(4.11)
将数据代入(4.10),(4.11)式,得
L=25(km),T0.2778(h)
五.数值方法
1.Euler方法
Euler方法十分简单,就是用差商代替微商,即将代之以,而将代之以。
设导弹到达()处的时刻为tk,那么得到计算的迭代格式为
上式分别为(4.15)(4.16)(4.17)
于是
使用MATLAB,编辑文件m4_.m:
functionm4_1(n)
H=120;
h=H/n;
lamda=90/450;
x
(1)=0;p
(1)=0;
y=0:
h:
H;
fori=0:
n-1
x(i+2)=x(i+1)+h*p(i+1);
p(i+2)=p(i+1)+h*(lamda*sqrt(1+p(i+1)^2)/(H-y(i+1)));
end
[x;p]’
L=x(n+1)
T=x(n+1)/90
输入m4_1(4)得到
ans=
00
00.0500
1.50000.1167
5.00250.2174
11.52540.4221
L=
11.5254
T=
0.1281
使用MATLAB,建立m4_2.m:
functionm4_2(N)
k=1;
forn=N
H=120;
h=H/n;
lamda=90/450;
x0=0;p0=0;
fori=0:
n-1
x1=x0+h*p0;
p1=p0+h*(lamda*sqrt(1+p0^2)/(H-i*h));
x0=x1;
p0=p1;
end
L(k)=x1;
T(k)=x1/90;
k=k+1;
end
[N;L;T]'
键入m4_2([4,8,12,24,48,96,120,240])得到
ans=
4.000011.52540.1281
8.000015.95370.1773
12.000017.97320.1997
24.000020.55080.2283
48.000022.24940.2472
96.000023.32860.2592
120.000023.58030.2620
240.000024.15100.2683
由方程(4.1),(4.3)解出的表达式,取时间步长,对应
时导弹轨迹上点的坐标为,则Euler格式为
上式分别为(4.21)(4.22)(4.23)
当计算到即停止,于是,
使用matlab,编辑m文件:
functionm4_3(t)
H=120;Ve=90;Vw=450;
x
(1)=0;y
(1)=0;T
(1)=0;
fori=1:
10e6
M=(Ve*T(i)-x(i))/(H-y(i));
x(i+1)=x(i)+Vw*t/sqrt(1+1/M.^2);
y(i+1)=y(i)+Vw*t/sqrt(1+M.^2);
T(i+1)=t+T(i);
ify(i+1)>=H
break;
end
end
[T;x;y]'
L=x(i+1)
T=x(i+1)/Ve
m4_3(0.1)
>Inm4_3at6
ans=
000
0.1000045.0000
0.20005.361589.6795
0.300022.6750131.2155
L=22.6750
T=0.2519
m4_3(0.05)
Warning:
Dividebyzero.
>Inm4_3at6
ans=
000
0.0500022.5000
0.10001.037444.9761
0.15003.412167.3504
0.20007.646289.4484
0.250014.8679110.7580
0.300029.1948128.1070
L=
29.1948
T=
0.3244
2.改进的Euler方法
改进的Euler迭代式
上式分别为(4.24)(4.25)(4.26)(4.27)(4.28)
六.仿真方法
设导弹和敌艇在初始时刻分别位于。
此时,导弹指向。
而在时,导弹的位置,其中,敌艇的位置则为。
这时导弹沿方向飞行,的倾角为;在时导弹的位置为。
以此方式,当时,导弹的位置为,其中
(4.33)
(4.34)
(4.35)
(4.36)
而敌艇的位置为。
如之前一样,当时,仿真停止。
这时
,
七.实验任务
1.应用数学软件MATLAB对问题(4.12)~(4.14)进行数值计算,先运用Euler法,与表4.2以及表4.3的数据比较,并以更小的步长计算结果,再用改进的Euler法计算(步长与Euler法相同)
用改进的Euler方法取步长为0.1和0.05时计算,用MATLAB验证结果。
m.文件
functionm4_5(t)
H=120;Ve=90;Vw=450;
x
(1)=0;y
(1)=0;T
(1)=0;
fori=1:
10e6
M=(Ve*T(i)-x(i))/(H-y(i));
x1(i+1)=x(i)+Vw*t/sqrt(1+1/M.^2);
y1(i+1)=y(i)+Vw*t/sqrt(1+M.^2);
T(i+1)=i*t;
x(i+1)=0.5*(x1(i+1)+x(i)+Vw*t/sqrt(1+((H-y1(i+1))/(Ve*T(i+1)-x1(i+1))).^2));
y(i+1)=0.5*(y1(i+1)+y(i)+Vw*t/sqrt(1+((Ve*T(i+1)-x1(i+1))/(H-y1(i+1))).^2));
ify(i+1)>=H
break;
end
end
[T;x;y]'
L=x(i+1)
T=x(i+1)/Ve
运行结果:
m4_5(0.1)
Warning:
Dividebyzero.
>Inm4_5at6
ans=
000
0.10002.680844.8397
0.200012.575288.2868
0.300027.0724130.2557
L=
27.0724
T=
0.3008
m4_5(0.05)
Warning:
Dividebyzero.
>Inm4_5at6
ans=
000
0.05000.518722.4880
0.10002.106044.9219
0.15005.098267.2021
0.200010.161089.0691
0.250019.6565108.9880
0.300024.2409130.9903
L=
24.2409
T=
0.2693
得到的结果与书上表4.6和4.7结果一致。