[关闭]
@Canonvar 2016-04-10T18:53:19.000000Z 字数 1415 阅读 1423

Cannon-Shell Trail Problem (more-accurate versions)

计算物理作业

学号: 2013301020085


摘要

本次作业完成第7次作业level2,在上次作业的基础上增加科里奥利力影响,并将显示平台转移到VPython,给出了大炮在空间维度精确打击远处物体的解决方案。

正文

实现原理

考虑到方程没有解析解,故需要通过遍历的方法得到从目标位置得到发射的最佳角度和初速度。

欧拉近似计算炮弹轨迹

参考教材,每一时刻炮弹的状态可用如下公式得到,有

其中加速度第一项为科里奥利加速度,第二项为空气阻力加速度,第三项为重力加速度。
由于实际中炮弹需要落在某一特定高度,故利用牛顿逼近法对欧拉法算得的最后落点进行修正
其中为速度大小,为原点到落点的距离。

确定发射方向和发射速度(粗瞄)

由于科里奥利力方向垂直于速度方向,所以它不直接对物体做功,只是通过改变轨迹来改变物体所受的空气阻力,又地球自转速度较小,在小距离炮弹发射时,科里奥利力只影响发射方向,对炮弹的发射距离影响可忽略,所以可先确定发射的大致方向和速度。

确定炮弹落点(细瞄)

在北半球,由于科里奥利力的影响,炮弹将向右偏移,所以通过向左移动水平发射角即可得到精确发射方向,当移动偏大超过目标方向时在向右移动校准,重复上述过程直到角度偏差可忽略不计;再通过自增遍历至一较精确值后,即可得到精确落点。

程序实现

python源码地址:Cannon-3D

结果分析与结论

程序执行完成后得到打击参数如下

Target position:
X: 20000.000000m
Y: 2000.000000m
Z: 20000.000000m
Shooting Velocity:
X: 387.313296m/s
Y: 596.425203m/s
Z: 384.170456m/s

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