炮弹发射的角度确定问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

炮弹发射的角度确定问题
实验目的:
1、学习由实际问题去建立数学模型的过程;
2、学会非线性方程的求解方法;
3、借助于matlab 软件,求解一个小型的实际问题;
实验问题:
将炮弹发射视为斜抛运动,已知初始速度为200米/秒,问要击中水平距离360米,垂直距离160米的目标,当忽略空气阻力时发射角应为多少? 进一步地思考:
如果要考虑水平方向的阻力且设阻力与(水平方向)速度成正比,系数为0.1(l/s ),结果又如何?
分析:
首先建立坐标系,以水平方向为x 轴,垂直方向为y 轴。

第一种情况: 当忽略空气阻力时
根据抛物运动的规律。

在水平方向上,炮弹是匀速直线运动,在t 时刻下,运动方程是:
t*0ν*)cos(θ =0x (1)
在垂直方向上,在t 时刻下,运动方程是:
0ν*)sin(θ *t -2
1*9.8*2t =0y (2) 其中参数是:0ν= 200 m/s ;(0x ,0y )=(360,160); 需要确定θ=?和时间t = ?
设)sin(θ=1x )cos(
θ=2x 对(1)求出t 后带入二试得:
0ν*1x *200*x x ν-21*9.8*2200*⎪⎪⎭
⎫ ⎝⎛x x ν=0y ---(1) 12221=+x x --------------------------------------(2)
对1x 做反正旋计算,对θ取0-90°
在matlab 中输入:
y1=’200*x1*360/(200*x2)-0.5*9.8*(360/(200*x2))^2-160’
y2=’x1^2+x2^2-1’
[x1,x2]=solve(y1,y1,’x1’,’x2’);
x1=subs(x1);x2=subs(x2);
arf=((asin(vpa(x1,8)))/pi)*180;
arf=subs(arf)
arf =
-26.5444
-87.4181
87.4181
26.5444
为运行结果,选择0-90°,所以可以选择87.4181°与26.544°
画出运动轨迹:
tp11=x1(3);tp12=x1(4);tp21=x2(3);tp22=x2(4);
t1=0:.1:360/(200*tp21);t2=0:.1:360/(200*tp22);
x11=t1*(200*tp21);x22=t2*(200*tp22);
y11=200*tp11*t1-0.5*9.8*t1.^2;y22=200*tp12*t2-0.5*9.8*t2.^2; plot(x11,y11,x22,y22),grid on;legend('87.4181°','26.544°')
完整程序如下:
y1='200*x1*360/(200*x2)-0.5*9.8*(360/(200*x2))^2-160';
y2='x1^2+x2^2-1';
[x1,x2]=solve(y1,y2,'x1','x2');
x1=subs(x1);
x2=subs(x2);
arf=((asin(vpa(x1,8)))/pi)*180;
arf=subs(arf)
clf
tp11=x1(3);
tp12=x1(4);
tp21=x2(3);
tp22=x2(4);
t1=0:.1:360/(200*tp21);
t2=0:.1:360/(200*tp22);
x11=t1*(200*tp21);
x22=t2*(200*tp22);
y11=200*tp11*t1-0.5*9.8*t1.^2;
y22=200*tp12*t2-0.5*9.8*t2.^2;
plot(x11,y11,x22,y22),grid on
legend('87.4181°','26.544°')
进一步思考:
如果考虑水平方向的阻力且设阻力与(水平方向)速度成正比,系数为0.1(l/s ),结果又如何?
与第一个模型进行比较,主要的差别在于水平方向上炮弹的运动不再是匀速直线运动了,而是变速运动。

水平方向的运动表示为:)cos(1.0θ⨯⨯=v dt
dv 初始条件: 0ν= 200 m/s 解此微分方程得:))cos(1.0(200t e v ⨯⨯-=θ
))cos(1.0(200t e v dt
dx ⨯⨯-==θ )1)(cos(/2000))cos(1.0(t e x ⨯⨯--=θθ---(1)
(1)式为水平运动方程 垂直方向运动方程仍然是:0ν*)sin(θ *t -
21*9.8*2t =0y -----(2) 由(1)得:)2000
)cos(1ln()cos(10θθx t --
=----------------------------(3) 带入(2)得:
160)2000)cos(3601(ln )
(cos 1009.4)2000)cos(3601ln()tan(200022=-⨯--
⨯⨯-θθθθ---(4) 对于方程 160)2000)cos(3601(ln )
(cos 1009.4)2000)cos(3601ln()tan(200022--⨯--⨯⨯-=θθθθy 的零点即为θ的值
2000/cos(x)*(1-exp(-0.1*cos(x)*ts))
matlab 命令如下:
t=0:.1:2*pi;
y1=-5:.01:5;
y=-(-20*tan(t).*log(1-36*cos(t)./200)-4.9*(log((1-36*cos(t)./200))).^2/(cos(t)).^2.-1.6); plot(t,y,pi/2,y1),grid on
由图可知该方程的解应该位于直线左侧即0-90°之间
那么大概在0.5左右利用matlab 零点求解命令
程序如下
yl='-(-20*tan(x)*log(1-36*cos(x)/200)-4.9*(log((1-36*cos(x)/200)))^2/(cos(x))^2-1.6)'; x=fzero(yl,0.5)
之后画出炮弹运动轨迹
matlab程序如下:
ts=-10/cos(x)*log(1-36*cos(x)/200)
t1=0:.1:ts;
xs=2000/cos(x)*(1-exp(-0.1*cos(x)*t1));
ys=200*sin(x)*t1-0.5*9.8*t1.^2;
plot(xs,ys),grid on
完整的程序如下:
yl='-(-20*tan(x)*log(1-36*cos(x)/200)-4.9*(log((1-36*cos(x)/200)))^2/(cos(x))^2-1.6)'; t=0:.1:2*pi;
y1=-5:.01:5;
y=-(-20*tan(t).*log(1-36*cos(t)./200)-4.9*(log((1-36*cos(t)./200))).^2/(cos(t)).^2.-1.6); %plot(t,y,pi/2,y1),grid on
x=fzero(yl,0.5);
arf=(asin(x)/pi)*180
ts=-10/cos(x)*log(1-36*cos(x)/200)
t1=0:.1:ts;
xs=2000/cos(x)*(1-exp(-0.1*cos(x)*t1));
ys=200*sin(x)*t1-0.5*9.8*t1.^2;
plot(xs,ys),grid on
运行结果
x =
0.4733
arf =
28.2519
入射角度为28.2519°
ts =
1.9617
炮弹运动时间为1.9617秒。

相关文档
最新文档