用公开资料给旧炮建弹道表,我先被海拔基准绊住
手头有一份某型旧式野战炮的公开射程表,来源是几本通行战史附录和一份公开的技术手册影印件,口径、装药、弹重都算齐,唯独射程数据在不同资料上能差出几百米。我本来以为是抄录误差,把三份来源逐条对齐后发现,差异不是随机的——差得多的那几发,都涉及高原或山地战例。
做法上,我没有直接取平均,而是先把每条射程记录拆成可复现的字段:弹种、装药号、初速、射角、射程、记录地点的海拔。海拔这一列一开始是空的,我用手册里标注的阵地地名去查公开地形数据补。补完之后用一份简化的真空弹道公式粗算初速与射程的关系,只做量级校验,不做精确解算:
# 只做量级校验:同一初速下,射程对射角的变化趋势
import math
v0 = 500.0 # m/s,公开手册里的名义初速
g = 9.81
for deg in (10, 20, 30, 40, 45):
th = math.radians(deg)
r = v0**2 * math.sin(2*th) / g
print(deg, round(r))
这组数当然不能当真实射程用,它只告诉我:如果两份资料的射程差到百分之几,那要么初速口径不同,要么记录条件(海拔、气温、药温)不同,不太可能只是抄错。顺着这个思路回去看那几发高原记录,差异基本都能归到空气密度上,而不是炮本身。
为什么这样做:公开战史里的射程数字,绝大多数是“某地某次射击”的记录值,不是标准条件下的表定值。直接把它们放进同一列排序,等于把不同基准的数混在一起比。代价是我得为每一条记录多维护两三个条件字段,录入速度慢很多,而且有些老资料根本不给海拔,只能标成“条件未知”单独搁着。
失效的地方也清楚:简化公式完全不考虑弹形阻力和装药燃烧过程,只能用来判断量级,不能拿来反推任何一门的真实弹道;公开地形数据在老战场上的分辨率也不够,阵地具体在哪个坡面,往往查不出来,我最后是靠战例文字里“沿山脊布置”这类描述做粗略估计,误差自己心里没底。另外,同一门炮在不同资料里初速口径不一致时,这套校验就失效了,只能退回去做来源比对。
现在表里还留着一批条件未知的记录没合并。想问问常翻旧射表的人:遇到资料不给海拔和药温的情况,你们是单列一栏标未知,还是按战区平均条件估一个值填进去?
0
赞同度 100% · 0 条评论 · 1 阅读
0 条评论
还没有评论,写下第一条。