轰!这一炮,打了多远?
一、前言
本文算是个人一次自由选题的作业,说白了也就是做着看着挺好玩的。方程很简单,只提供基础计算思路,关于任何数据或方程不要深究
二、关于射表和自动装表系统
无论是玩过哪个射击游戏,尤其是载具射击游戏,很多坦克炮的瞄准镜都会刻上一条条的横线,并在边上标注数字,这个横线就是告诉炮手,炮弹出膛后会因为重力作用发生下坠(废话),瞄准远处的目标要把炮管抬高一定仰角以精确命中。在榴弹炮的间接射击中,也需要一个射表中的弹道基本诸元——简单讲就是不同火炮仰角和命中距离的关系,获取与敌人的距离关系后,根据这个表调整火炮仰角曲射,达到间接射击火力支援的效果。因为这种射表直接传达了火炮的各项外弹道性能,因此各个国家现役的火炮射表都属于涉密文件,本文参考不来。
而自动装表系统则是根据敌我双方距离、运动状态、自身炮弹弹道性能等因素对火炮进行自动调整的系统。先进的瞄准系统甚至能实现动对动的精确打击。《战争雷霆》在最近更新中随着车长镜也实装了一部分自动装表功能,不知道各位用的习不习惯呢?(当然我的小程序不可能那么先进)
96式122mm榴弹炮射表(图源网络)
《战争雷霆》中炮镜视角,可以看到左下角的横线就是提示炮手根据目标距离把火炮抬起到对应位置的刻线
真正的外弹道计算十分复杂,需要考虑多种因素,至于多复杂,随便找一页截图给各位看看好了,至少我看完了就确定我的方程一定要从简了。
GIF
《火炮射表弹道系数函数f(θ0)的求取法》正文部分截图
于是乎,本着从简从到底的心态,掏出来初中的抛物线公式直接计算。虽然咱这个公式简单,但其实只要给这个基础的式子添加更多参数和修正量就能不断逼近真实值了(强行挽回点面子)。所以本程序也就是提供一个计算射表以及自动装表程序的思路。
三、Matlab脚本程序——计算射表部分
该计算过程使用的就是最简单的初中抛物线公式,因为考虑的因素很少,所以只需要输入炮弹初速度就能得到火炮从0º到90º的不同射程的射表了。
计算射表程序(1)
计算射表程序(2)
计算射表程序(3)
四、计算射表程序运算结果
输入炮弹初速度为655m/s,得到射表和每隔5º仰角炮弹的抛物线轨迹图。
射表计算结果(1)
射表计算结果(2)
这门天顶星科技无视任何阻力影响的炮弹在45º仰角下取得了最大射程43.778km!(#゚Д゚)
每隔5º仰角的炮弹轨迹图
这个轨迹图也还挺像回事的
五、Matlab脚本程序——自动装表程序
当然,有一个简单的射表,炮兵就满意了;坦克兵表示我可没炮兵指挥所给我数据,也没闲工夫测距之后对着表格调整火炮。于是乎自动装表程序也要安排上!
自动装表程序
该程序更加简洁,用“迫真”微分法求平抛后落地的角度,反推出炮管仰角,无阻力的抛物线是对称的,所以炮弹落地角度也就等于炮管仰角了。在运算中只需要输入炮弹的初速度和目标距离,就能自动得出炮管需要抬升的角度,通过连接高低机自动调整火炮仰角就是一个自动装表系统了。
六、自动装表程序运算结果
自动装表运算结果
本次输入炮弹初速为655m/s,目标出现在20km外,得到结果为火炮需要抬升12.8670º,炮弹需要飞行近30s。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删