本篇教程由作者设定使用 CC BY-NC-SA 协议。

引言

在火炮的应用中,弹道计算的频率和时效会影响命中效果和使用体验。在教程炮弹弹道的高精度模型及其简单应用(就是隔壁的一篇教程),作者(zx1316)已经给出了弹道数据的解析方程。由于该方程不存在解析解,需要使用牛顿法或者二分法等取得数值解。在实时跟新的火控中,每次循环都需要进行迭代,大大降低运算效率和更新频率。同时,迭代法的极限初始值位置也会根据装药数量不同产生偏移,过大区间会出现奇点,过小区间会限制火炮射程,因此可以使用弹道函数拟合解决上述问题。

1.确认数学模型

对于火炮系统,有如下因素与其期望落点相关:

水平距离 w

射击角度 α

竖直高差 h

通常来说得到射击角度和高差可以计算出落点距离,但为了方便应用,本文将射击角度设为未知量,即:

α = F(w,h)

然而,在有效射程之内,该函数的解不唯一。根据经验和初步的解析法计算,不同装药的火炮普遍在30度以下一点取得最大有效射程。基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第1张图片

图1:火炮解析法曲线(n=4)

上图为不同高差下的四装药火炮解析解曲线混入了一个拟合曲线,高度从上到下为+15m,+10m,+5m,基准,-5m,-10m,出膛角度在不到30度的位置取得最大(超过会出现明显分叉)。于是,可以以30度为界限将弹道分为不同的区间。30度一下的可以称为平射区间,该区间跨度从最大俯角到最大射程。30度以上可以成为吊射区间,该区间从30度以上的某处最大射程处跨到火炮最大仰角(默认60度,也许某些方法能掰到90度甚至反过来)。

同时,根据图像研究,在一定的高差之内(你能差到哪去?),对于一个固定的射击角度,角度与高差可以看作是正比(莫非也是sin的小数值特性???),因此,高度差导致的射击角度差可以基于某高差拟合一个误差方程,然后成比例修正。

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第2张图片图2:高度相对基准差值曲线(基准为0,未画出)

得到基本的性质之后,可以使用四阶拟合距离函数,三阶拟合高差修正。至此,弹道计算的数学模型建立完毕。

2.函数拟合

本章考验你数值分析功夫,你正坐电脑中央,先后2*8枚炮弹抛出,将炮弹依照装药给出数值解画图打表并标出有效区间,你明白了吗!耐算王(

2.1平射弹道

根据数值解的图像,确立初步射程区间,如遇到函数边界则缩小区间,于是,得到了如下的射程表格:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第3张图片表1:不同装药下的射程区间

上表为射程区间,其中min为拟合时的最小射程,min(R)为实际使用时的最小射程,max为最大射程。数学拟合出于种种限制无法在最小值过低的时候得出正确结果,因此可以适当降低最低射程,使最小值时的火炮角度低于5度物理学常用小角度常数。该教程基于的版本中1装药增加40m/s的初速度。

基于MATLAB的polyfit函数,可以拟合出距离函数和高差修正。下表为距离函数的系数C0:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第4张图片表2:平射距离函数系数

该表中,C0指代平射函数的系数,系数的标号为降序,使用方法如下:

F1(w) = C01*w4+C02*w3+C03*w2+C04*w+C05

n为装药数量,w为目标距离,输出值为角度(deg)。其中,n=1时由于射程区间过于抽象不在考虑范围内丢石子儿都比他有用,故归零。

下表为平射时的高差修正拟合系数:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第5张图片表3:平射高差修正系数

该系数表为降序,符号C1,使用方法为:

F2(w) = C11*w3+C12*w2+C13*w+C14

同样的,n=1因为过于抽象被归零了。

该拟合函数源于高差为+5m时的差值函数,完整的函数使用方法为:

F(w) = F1(w)+(h/5)*F2(w)

其中,h为相对高差,其公式为:

h = ht - hg

其中ht为目标高度,hg为火炮高度不是汞

这样一来,拟合的函数就符合数学建模α = F(w,h), 同时以n=4和n=8为例,可以得到完整的拟合曲线:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第6张图片

图3:n=4时的拟合曲线组
基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第7张图片

图4:n=8时的拟合曲线组

这样一来,从图中得到了形状基本相似的拟合曲线组,并使得最小值时的射击角度小于5度,方便实际使用。

2.2吊射弹道

吊射是一种不同与平射的弹道曲线,它来自于火炮角度高于最大射程角后的一个单调降低区间。你看那炮弹呐,圆的像鸡蛋呐,朝你头顶飞过来啦~ 吊射的优势在于障碍跨越和对某些目标的高效打击(就你倾斜装甲是吧),在地形复杂或者面对正面装甲过硬的目标时可以采用的替代射击方式。吊射的缺点也很明显,由于最大仰角常常被限制,吊射模式对于过近的目标有点摸不着头脑。此外,还有飞行时间长,落点圆环小等特性应该不完全是缺点罢。这个模式在某些场合会有适用环境,因此一同于平射做出数值拟合。

吊射的有效射程如下表所示。

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第8张图片表4:吊射有效射程

其中,n是装药,min是拟合最小值,min(R)是选用最小值max是最大值。由于选用最小值和拟合最小值有差距,选用最小值时有可能会使火炮角度高于60度的限制。之所以保留这个参数是因为某些神秘科技摆式炮塔的存在,可以使得角度突破限制。从上表可以看出,吊射的最小有效射程远高于平射,因此该模式多半适用于特定场合的替代射击,作为常规射击模式略为鸡肋。

下表为吊射的距离函数系数:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第9张图片表5:吊射距离函数系数

下表为吊射的高差修正函数系数:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第10张图片表6:吊射高度修正函数系数

吊射的高度修正函数对距离函数影响非常小,甚至可以选择性去除(归零)。除此之外,使用方法于平射完全相同,这里不再赘述。

吊射函数的总弹道图如下:基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第11张图片

图5:n=4时的吊射函数

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第12张图片

图6:n=8时的吊射函数

以上就是弹道函数的特性和总览图。

3.弹道函数的应用

在得到了弹道函数以后,会发现拟合函数仅仅在有效射程区间内相对精准,出了这个区间就开始乱拐,因此需要对函数进行补完以应用。

对于平射来说,根据有效射程区间的表格,在区间内,弹道计算将根据函数直接算出。当目标超过射程时,可以直接定格为最大射程角防止乱动,反正本来就打不到。当目标距离小于弹道最小有效射程时,此时的火炮角度普遍小于5度,因此距离已经不再是影响火炮角度的重要因素。在这种情况下,火炮的角度主要受目标点和发射点的几何角度影响,即。

α = tan-1(h/w)

其中,α为火炮角度,h为高差,w为距离。在此公式中,弹道被视为一条直线,此时,距离因素反倒成为可有可无的修正因素。其中一个修正方法是使用线性拟合(正比例函数),将有效射程的最小值点接到原点以修正。

对于吊射来说,其应用比平射略为复杂一步。吊射模式下,有效射程区间短,且低于有效射程时显然不能直接线性拟合,因此可以增加一个平射区间以过渡从而避免完全打不了的尴尬局面。总体来说,吊射的射程可以分为,线性拟合,平射拟合,吊射拟合三部分。有了平射的补偿,除开平射和吊射之间存在奇点外,其余大部分诸如射击盲区的问题可以得到解决。

4.数据分析与展望

在得到了拟合数据之后,可以进一步分析以试图获取更多普适性的结论。首先是最大距离,下图为最大距离和装药的关系。我总感觉这一段都是废话

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第13张图片图7:距离-装药

距离跟装药的关系可以被视为线性,由数据可以看出装药的增加会线性的影响射程,这可以用于计算任何初速度的最大射程期望。

下图为平射距离函数的四阶系数和二阶系数与装药(可以理解为初速度)的关系:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第14张图片

图8:四阶系数-装药
基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第15张图片图9:二阶系数-装药

以上两图均采用双对数坐标系。从趋势线的结果来看,拟合函数的系数与装药数量成幂函数关系,由此可以得出适用于任何初速度点的系数。

下图为拟合函数趋势线幂数与系数序列的关系:

基于解析方程用于实时更新的火炮弹道拟合函数组及其应用方法-第16张图片从这张看似无意义的图来看,当序列达到5,即常数系数时,幂数是0。但我为什么会拟合出不一样的常数呢???

总之,这个教程就到这里,如有勘误,请评论提醒我修改。本人时间精力实在有限,至于这些数据的拓展应用和普适化的分析,我也交给后人吧)


参考文献

[1]zx1316, 炮弹弹道的高精度模型及其简单应用,https://www.mcmod.cn/post/2983.html