战列舰

 找回密码
 登上甲板
搜索
查看: 1819|回复: 16

弹道计算器

[复制链接]

军士长

发表于 2024-9-10 23:25 | 显示全部楼层 |阅读模式
本帖最后由 Matlab 于 2024-9-16 22:55 编辑

此前已经出现过不少弹道计算器,例如43年阻力地炮弹道表计算器、战列党人综合计算器等

但是这些计算器有一定的适用范围:
43年阻力地炮弹道表计算器需要使用电脑运行,使用的弹道系数法不能直观的体现口径、弹重和气动外形的特征
战列党人综合计算器只能计算已知的大口径火炮
使用编程语言的弹道计算器需要设备装载相应编程语言

因此提供一个基于迭代的、使用Execl实现的弹道计算器,可以在移动端运行




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-10 23:42 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:08 编辑

弹道计算器:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-10 23:44 | 显示全部楼层
Excel的迭代功能一般默认关闭,可以通过文件-选项-重新计算-迭代计算打开


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-10 23:46 | 显示全部楼层
移动端也可运行该计算器,不过经过测试需要下载Microsoft Excel

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-10 23:50 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:03 编辑

使用计算器大部分输入很直观,使用公制单位

计算器的迭代步长是可调的,当步长设置的比较小、射程比较远时,可能会达到设置迭代次数的上限,在Excel打开迭代功能的界面可调,最大不能超过32767

设置火炮参数后需要先进行设置初值,随后选择弹道计算,计算出弹道后自动计算穿深



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-10 23:50 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:07 编辑

炮弹飞行受到的空气阻力包含摩阻、涡阻和波阻,空气阻力的计算公式如下:

k即为弹道计算器中的风阻系数项,k并非一个定值,具体修正可见:


外弹道原理
https://www.warships.com.cn/thread-8672-1-1.html
(出处: 战列舰)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-11 15:08 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-11 15:34 编辑

压差阻力与大气密度有关,大气密度受海拔高度和海平面温度影响,修正公式如下:

地面曲率也会对弹道终点有一定影响,当炮弹坐标与球心距离为地球半径时视为落地

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-11 15:14 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:10 编辑

尽管进行了修正,实际弹道终点与实际炮表的差值最终不可避免
在k值设定较好的情况下,达到炮表射程时,比较好的情况下存速误差小于2m/s、落角误差小于0.15°,一般情况下存速误差小于10m/s、落角误差小于0.3°,较差的情况下(如黎塞留20km处)存速误差可能达到10-15m/s左右
相对而言,对已知炮表进行插值误差可以维持在较低水平

军士长

 楼主| 发表于 2024-9-11 18:53 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:00 编辑

对于二战的大部分炮弹来说,风阻系数范围大约为0.14-0.20
前者是黎塞留等L5.0左右风帽的风阻系数,后者大约是4rch弹的水平

俾斯麦的风阻系数大约在0.148左右,对应射程的存速和落角和炮表贴合的很好




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-11 18:59 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 23:24 编辑

KGV的风阻系数大约在0.150左右,对应射程的落角和存速与炮表差距较小,仰角与炮表略有不同







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-11 19:01 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 23:25 编辑

黎塞留的风阻系数大约为0.140,20km处的存速和炮表相比偏差的幅度比俾斯麦大一些,但25km、30km处的误差收窄






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-11 19:07 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 13:12 编辑

偏差的产生多产生于阻力构成复杂、炮弹弹型与阻力模型有差距,同时对于不同速度下的炮弹来说,阻力系数的大小也在不断发生变化
采用1943年阻力定律给出的不同马赫数表,可以尽可能的减少误差

军士长

 楼主| 发表于 2024-9-12 18:27 | 显示全部楼层

附录:穿甲公式的求解

本帖最后由 Matlab 于 2024-9-18 19:14 编辑


目前已知的穿甲公式都是用来计算一定条件下击穿某一厚度的装甲所需的最小速度
而我们在很多时候希望在口径、弹重、速度、着角等条件已知的情况下,计算具体炮弹的穿深
通过对穿甲计算公式进行一定的运算,我们实际上可以得到厚度的解析解、或者至少是高精度的数值解

日本德尔玛公式的形式比较简单,经过少量的运算即可得到厚度T的解


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-18 19:16 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 19:18 编辑

美国海军经验式的形式比较复杂。但是进行换元后,经验式可以转化为一个关于厚度T的三次方程
而三次方程有求根公式,这意味着经验式有解析解:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-18 19:35 | 显示全部楼层
本帖最后由 Matlab 于 2024-9-18 19:40 编辑

德国海军克虏伯公式看上去没有经验式复杂,然而它是一个关于厚度S的幂指方程,即是一个超越方程,这意味我们不可能以初等函数写出它的解析解

因此我们通过一些拟合的方法,退而求其次得到克虏伯公式的高精度数值解
首先我们进行换元后,对等式两边取对数,将多项式项和自然对数函数项分开:

根据泰勒公式,自然对数函数可以写成级数形式,当然泰勒式的拟合有效范围很小,即使在项比较多的情况下,而且次数超过4次将无法求解
如果采用分式多项式形式,可以得到比较好的拟合式(可见:从「如何用多项式函数拟合ln(x)」到「泰勒展开」):

这里我们将自然对数函数写成n=2的分式多项式。我们预期,最后可以化为一个三次方程,这样就可以得到解了:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

军士长

 楼主| 发表于 2024-9-18 19:56 | 显示全部楼层
通过以上的求解公式得到的结果,与真实值的误差不超过1%,实际上在大部分情况下不会超过1mm

当然对于比较极限的D、G、S取值,误差可能会达到2%,例如15km处计算俾斯麦的水平穿深

想要进一步提高精度,一是可以使用更好的拟合公式,例如n=3的分式多项式:

然而我们预期这将得到一个四次方程,尽管有求根公式,但复杂程度相比三次方程求根公式更进一步

我们重新观察分式多项式拟合,可以发现在我们选择拟合的起点附近(一般以x=1做起点)。即使对n=1的分式多项式,拟合精度也是非常高的:

通过上一层楼的计算,我们实际上得到了一个接近真实解的x0。如果我们以x=x0做起点重新建立拟合函数,哪怕使用n=1的分式多项式,也可以得到高精度的结果。这相当于解一个二次方程,它的形式就比较简单了:

解的结果的误差小于万分之一

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?登上甲板

x

列兵

发表于 2024-9-30 21:16 | 显示全部楼层
谢谢大佬

手机版|Archiver|© 2010-2025 战列舰 warships.com.cn, All Rights Reserved ( 沪ICP备13004737号 )

GMT+8, 2025-5-1 20:56 , Processed in 0.022149 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表