[关闭]
@Gwater 2016-04-12T16:24:06.000000Z 字数 1723 阅读 744

Inertial Cannon Problem

计算物理作业
Student ID : 2013301020120


问题背景

在地球表面上任一点处要发射一颗炮弹,打击地球表面一个目标。需要考虑重力,空气阻力,以及地球自转带来的科里奥利力的影响,计算出该炮弹发射时的速度大小及方向。

摘要

如果想要用计算机解决一个问题,那么就要先用数学语言来描述这个问题
本文采用欧拉法计算炮弹轨迹,在3维坐标系中计算比较各个因素对炮弹轨迹的影响,并计算出打击一个定点目标应该具备怎样的速度和方向

正文

实现原理

建立坐标系






欧拉方法计算轨迹





落点的修正
炮弹落点的高度是固定的,所以我们需要对炮弹落点位置进行修正



各因素的影响分析:
接下来的炮弹均以相同的速度(200,200,200)发射来比较不同模型下落点的位置
1.纯自由落体运动 :落点坐标(8183.25863 ,0 ,8183.25863
2.引入风阻: 落点坐标(6217.40764, 0 ,6217.40764
3.引入北纬30度的科里奥利力+风阻:落点坐标(6219.07349, 0, 6198.19130
4.考虑炮弹飞行中科里奥利力变化+风阻:落点(6219.08048,0, 6198.18876
.
分析以上结果可知:风阻对炮弹轨迹有极大影响;
北半球科里奥利力使飞行炮弹向右偏,偏离率约为3.2% 。实际应用中较远距离打击需要考虑。
同时考虑炮弹飞行中纬度的变化对科里奥利力的影响,发现仅会造成约0.001%的偏差,可以忽略
(该结果仅对该样本数据负责)
结果

遍历方法计算初速度
由于三维坐标中的扫描较为麻烦,所以要分两步进行。
第一步:在不考虑科里奥利力的情况下进行扫描,类似于第六次作业中在平面下扫描的方法
第二步:引入科里奥利力,这里先做分析:
6217.40764, 0 ,6217.40764)(6219.08048,0, 6198.18876)这两组坐标,第一个是没引入科里奥利力的情况,第二个是引入了科里奥利力的情况。
可见 x在增加,z在减少,北半球炮弹轨迹会偏右。因此在扫描时,我们要适当的减少vx,增加vz.

使

落点距离目标点随扫描过程变化曲线
结果图像
分析:其一在距离远的时候distance缩减很快,在距离目标近的时候distance缩减很慢。有能节省时间,又提高了精确度。
其二,distance的极小值的发射速度,即我们应该要的初速度,但是其偏差似乎还有点大,我们需要对速度步进函数再小调整一下,以便更好的精确度。调整后的结果如下:
结果8
可见我们的调整后,极小值大幅降低,有了很好的效果。(调整思路较经验化,不多叙述)

计算结果分析

起点:北纬30度,武汉大学
终点相对坐标:(15000,500,20000)
计算出的初速度:(347.75202, 579.58670, 467.23283)
理论落点位置:(14996 ,500 ,19996)
误差距离:5.17m 相对误差:0.02%

代码实现

pyhton源码:CODE

致谢

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注