@SuperMan
2016-06-21T13:26:45.000000Z
字数 1721
阅读 2096
姓名:夏海峰 学号:201301020094
- 题目
- Calculate the trajectory of your cannon shell including both air drag and the
Reduced air density at high altitudes so that you can reproduce the results in
Figure2.5.Perform your calculation for different firing angles and determine the
Value of the angle that gives the maximum range.- 摘要
本次作业以Lev1完成了炮弹在空气阻力作用,且空气阻力随而变的情况下,炮弹的运行轨迹。- 基本原理介绍:
运用欧拉法近似计算进行模拟。
具体操作方法:
(1)选定发射炮弹的初值:初始发射速度、发射角度等。
(2)选定时间间隔dt,dt选取得越短则模拟计算越精确,但是会增加程序运行时间。
(3)在此问题中,空气阻力是与位置(高度)和速度相关的函数:
(4)欧拉法具体计算公式:
空气阻力影响因子:
(5)使用画图功能观察炮弹运动的轨迹参数选择
(1)重力加速度选取:
(2)由于随着炮弹高度的增加,空气变得稀薄,因此空气阻力,式中a值会减小。空气阻力影响因子受高度y影响,并随之变化。下图显示了不同时间间隔dt对模拟计算的精确度的影响:
- 由图中的曲线可以清晰地看到:随着时间间隔的缩短,曲线变得更加光滑(精度越高),时间间隔dt的选取对模拟计算的影响还是十分明显的。因此在模拟计算的过程中,应该尽量把时间间隔选取的尽量小以提高精度。
下图显示了不同发射角度炮弹(初始速度保持不变)情况下炮弹的运行轨迹:
下图分别展示了在:
(1)无空气阻力
(2)有空气阻力,但空气阻力不随高度变化
(3)有空气阻力,且空气阻力随高度变化
的情况下炮弹的运动轨迹:
程序

从图中的三条曲线可以清楚地看出:
(1)空气阻力对炮弹的运动会产生较大影响。
(2)高度对空气阻力的影响也较为明显。下图显示了不同发射角度对炮弹轨迹的影响:
程序2 cannon_final.py
程序中炮弹发射速度V的取值对结构有较大影响
(1)Python计算浮点数精度有限,若速度过大会是某些值趋于0,而由于精度原因,Python在运算过程中把这些本非0的量当做0带入计算,产生了误差。
(2)时间间隔dt对模拟计算影响也较大。但是时间间隔若选取得过小会急剧地增加计算量,过大又会严重影响精度。在尝试下,只有dt取0.1,较为合适(dt若取大于0.1的数则精度太低,获取小于0.1的数,如0.05,0.01等,计算量太大,耗时过长,且内存占用过高,容易导致死机)。
下图显示了V=300时的曲线:

- 由图中曲线可看出,此时曲线较符合实际情况。
下图显示了V=350时的曲线:

由图中曲线可看出,此时曲线已经开始出现偏离实际情况的现象出现!
下图分别展示了在:
(1)无空气阻力
(2)有空气阻力,但空气阻力不随高度变化
(3)有空气阻力,且空气阻力随高度变化
的情况下炮弹的运动轨迹:
(3D版本)
程序
- 图示曲线展示了炮弹在运动过程中的二位轨迹,是一条抛物线。
- 空气阻力对炮弹的运动会产生较大影响。
- 高度对空气阻力的影响也较为明显。