Matlab自解题

1.问题(编号7.2等级 A ):
问题7.2(A级):80kg的伞兵(paratrooper)在600m高度从飞机跳落,5s后降落伞打开,作为时间函数的伞兵高度y(t)由如下方程给出:
在这里插入图片描述
其中,g=9.81m/s^2为重力加速度,m =80kg为伞兵质量。空气阻力α(t)和速度平方成比例,但降落伞打开前后取不同的比例常数。在这里插入图片描述
(1)在K_1=0,K_2=0的假设下,求自由落体的解析解。问:降落伞在什么高度打开?需多长时间到达地面?着地的冲击速度是多少?绘出高度关于时间的曲线,并对图形作适当的标注。
(2)在K_1=1/15,K_2=4/15的情况下,问:降落伞在什么高度打开?需多长同问到达地面?着地的冲击速度是多少?绘出高度关于时间的曲线,并对图形作适当标注。

2.求解算法(方案或思路等)

对于第一题,是一个自由落体运动,理想状态下不考虑空气阻力。我直接采用物理中运动学公式进行求解。

对于第二题,考虑到空气阻力,并且空气阻力在开伞前后有区别。又考虑到空气阻力与速度有关,那么我想到可以使用微分法。将时间分为很短的一段,在这很短的一段时间里,可以将伞兵的运动视为匀变速运动。然后,运用匀变速运动规律结合累加法可以描绘伞兵在空中的较为复杂的运动。结合MATLAB强大的算法与绘图能力最终得解。

3.程序、运行结果(及分析)

(1)

clear;
clc;
y0=600;
g=9.81;
v0=0;
t0=abs(sqrt(y0*2/g));
t1=5;
y1=y0-1/2*g*t1.^2;
v1=v0+g*t0;
t=0:0.001:t0;
y=y0-1/2*g*t.^2;
plot(t,y);
title('自由落体运动图像');
xlabel('时间/s');
ylabel('高度/m');
text(8,450,'y=y0-1/2*g*t.^2');
str=['降落伞打开的高度为',num2str(y1),'到达地面的时间为',num2str(t0),...
    '着地的冲击速度为',num2str(v1)];
disp(str)

降落伞打开的高度为477.375到达地面的时间为11.06着地的冲击速度为108.4988

在这里插入图片描述

(2)

clear;
clc;
y0=600;
g=9.81;
v(1)=0;
K1=1/15;
K2=4/15;
detat=0.001;
n=0;
y(1)=600;
t(1)=0;
while  y(n+1)>0
      n=n+1;
      t(n+1)=n*detat;
      a(n)=0.0125*K1*v(n)*v(n)*(t(n+1)<5) + 0.0125*K2*v(n)*v(n)*(t(n+1)>=5);
      v(n+1)=v(n)+(g-a(n))*detat;
      y(n+1)=y(n)-v(n)*detat-0.5*(g-a(n))*detat^2;
      if y(n+1)<=0.05 && y(n+1)>=0
          H=n+1;
      end
end
y1=y(5000);
v1=v(H);
t0=H*detat;
plot(t,y,'r');
title('带有空气阻力运动图像');
xlabel('时间/s');
ylabel('高度/m');
str=['降落伞打开的高度为',num2str(y1),'到达地面的时间为',num2str(t0),...
    '着地的冲击速度为',num2str(v1)];
disp(str)

降落伞打开的高度为481.382到达地面的时间为14.297着地的冲击速度为53.9392

在这里插入图片描述

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值