基于改进的遗传算法与龙格库塔法的弹道求解方法_刘彦君

兵工自动化 2011 01 Ordnance Industry Automation 30 1 4 doi 10 3969 j issn 1006 1576 2011 01 002 基于改进的遗传算法与龙格库塔法的弹道求解方法 刘彦君 国防科学技术大学 信息系统工程重点实验室 湖南 长沙 410073 摘要 为提高火炮打击效能 对基于改进的遗传算法与龙格库塔法的弹道求解方法进行研究 提出基于差分龙 格库塔法的外弹道模型 在目标点位置已知时 可以精确求出与目标点共水平面的落点坐标 并提出了基于遗传算 法的最佳射角求解方法 动态缩小搜索范围 运行参数自适应调整 快速高效的求出火炮初射角参数 案例结果验 证了该方法的可行性与有效性 对于弹道解算研究具有一定的应用价值 关键词 遗传算法 龙格库塔法 最佳射角 中图分类号 TP301 6 N945 12 文献标志码 A A of Ballistic Based on Genetic Algorithm and Runge Kutta Liu Yanjun Key Laboratory of Ination System Engineering National University of Defense Technology Changsha 410073 China Abstract In order to improve hit potency of guns this paper has researched the of ballistic based on genetic algorithm and Runge Kutta Firstly advanced a ballistic model based on difference Runge Kutta which can accurately solved the coordinate of point of fall after gaining the ination of target position Then put forward an algorithm of optimal angle of fire based on genetic algorithm which decreased the search range dynamically and parameters adjusted by them Ultimately it calculated the optimal angle of fire Meanwhile proved the feasibility and validity by analyzing a case the work has an important applied value for ballistic Keywords genetic algorithm Runge Kutta optimal angle of fire 0 引言 为提高战车火控系统性能 有必要对火炮外弹 道问题实时解算的理论与技术进行研究 由于受到 初速 旋转角速度等诸多因素的影响 弹丸在空中 的飞行轨迹是一条非常复杂的空间曲线 高炮火控 系统求解射击诸元的方法主要有 2 种 一种是射表 逼近方法 另一种就是外弹道数值积分解法 1 目前 外弹道模型已经比较成熟 4D 及改进的 4D 外弹道模型 2 将弹丸在被动段飞行的特征描述 得很完备 可以解决绝大多数弹丸弹道的计算问题 外弹道的数值计算方法也较多 王旭智提出的利用 外弹道微分方程组实时快速解算高炮理论弹道的方 法 3 王润岗提出的虚拟环境中坦克射击训练仿真 系统 1 等效果都比较显著 精度以及时间复杂度都 令人满意 但众多弹道解算方法主要围绕二维平面 的弹道进行研究 不利于大多数实际问题的解决 虽然有一些三维空间的弹道描述 如周启煌提出的 外弹道实时解算方法 4 孙幸福提出的高炮火控外 弹道实时解算方法 5 等 但是这些方法并没有从根 本上解决求解火力点初射角的二元边界问题 故提 出了基于改进的遗传算法与龙格库塔法的弹道求解 方法 1 基于改进龙格库塔法的外弹道模型 1 1 弹道求解模型 首先 假定火力点和目标点位置信息已知 将 求解数值积分的四阶龙格库塔方法与求解两点边值 问题的差分方法融合起来 对 4D 外弹道模型进行 数值积分 得到与目标点共水平面的落点坐标信息 并作为遗传算法适应度函数的组成部分 其次 根 据弹道的特点对遗传算法加以改进 包括动态缩小 搜索范围 遗传算子的设计与和遗传参数的选定等 使其更快反解出火力点的最佳射角 所描述的流程 如图 1 图 1 基于遗传算法与龙格库塔法的弹道求解模型 外弹道模型是由一组复杂的微分方程组成的 收稿日期 2010 07 02 修回日期 2010 08 13 基金项目 国家自然科学基金 70701038 作者简介 刘彦君 1987 男 河南人 从事指挥信息系统研究 刘彦君 基于改进的遗传算法与龙格库塔法的弹道求解方法 5 第 1 期 由于无法得到具体弹丸位移的解析表达式 因此 笔者采用四阶龙格库塔法 通过数值积分达到求解 目的 龙格库塔方法简单且精度很高 但一般采用 定步长的积分策略 且无法解决两点的边值问题 因此 笔者将求解边值问题的差分方法融入到四阶 龙格库塔方法中 使改进的数值积分方法可以快速 高效地解决外弹道的边值问题 得到与目标点同水 平面的弹丸落点坐标 1 2 外弹道模型 外弹道模型是在已知射角 初速 转速 弹丸 质量等初始条件下 综合考虑阻力 升力 重力 科氏力 马格努斯力 建立的质心运动方程 旋转 方程 动力平衡角方程 应用牛顿第二定律和动量矩定理 建立旋转稳 定弹丸 4D 模型 2 质心运动方程为 2 0 3 22 22 d d2 2 4 DDDe D Llee l ype uS F CCVV tm S F CCV m SdPC Vg m 1 旋转方程 2 d1 0 d4 lplp x P Sd VPCC tJ 2 动力平衡角方程 ebab VuVg 3 由于射角 初速等初始条件已知 运用四阶龙 格库塔法可以方便地求出上述常微分方程组的数值 解 得到一条弹道轨迹 1 3 基于差分的龙格库塔方法 由于上述弹道轨迹是由一些间隔的空间点连接 而成的 不能精确地得到与目标点共水平面的弹丸 落点坐标 势必会对其后的优化算法带来不利影响 故对于该二阶微分方程的两点边值问题 采用差分 方法与龙格库塔方法结合的形式 来达到求解目的 由于已知条件为 0 0 0 0 0 end Start txyzvv End zz 4 式中 x y z 分别为 x y z 坐标轴值 zend为 求解的终止条件 t 为时间值 v 为速度 可知该问 题为第一边值问题 差分方法以差商代替导数 从 而把微分方程离散化为一个差分方程组 然后解此 方程组 以它的解作为微分方程边值问题的近似解 则对于二阶微分方程 YXf X Y YaXb Y 5 式中 Xx y z 为坐标系上任意一点到原点的 向量 Y 为 Y 一阶导数 Y 为Y 二阶导数 a b 分 别为上下界 其差分方程为 2 11 11 0 2 0 2 0 0 mm mmmmm N YY YYYh f XY h YYx y zx y 6 式中 Ym为应变量第 m 个运算的值 Xm为自变 量第 m 个运算的值 Y0为起始条件 YN为终止条件 h 为步长 这是一个非线性方程组 利用龙格库塔 方法对该方程组进行迭代计算 在求解过程中采取 变步长 h 计算 一般而言 采用一个相对较大的 h 值 等到逼近 z 0 时 再缩小 h 已达到所需的精确 度 如图 2 原方法平均用时 t 0 008 265 s 改进 后平均用时 t 0 009 249 s 表明采用改进后的龙格 库塔方法仅比原方法多花时 0 001 s 如图 3 计算 的位移的相对误差几乎为零 表明该方法可以精确 地得到与目标点共水平面的弹丸落点坐标 因此 用 0 001 s 的时间换取如此的高精度是值得的 效果 显著 可作为下面遗传算法的适应度函数的组成部 分对个体进行筛选 图 2 龙格库塔方法改进前后用时比较 图 3 改进龙格库塔方法的误差 2 基于改进遗传算法的最佳射角反解模型 文献 4 5 虽提出了一些火力点初射角的反解 兵工自动化 6 第 30 卷 算法 但仅局限于单个角度变量 对水平 竖直方 向两个变量就无法同时满足要求 因此笔者提出基 于遗传算法的最佳射角反解算法 采用实数编码 以基于改进龙格库塔法的外弹道模型为目标函数 并依据弹道特征 对变异方式 交叉方式 选择策 略进行合理设计 对变异概率 交叉概率等参数进 行合理选定 以在时间与精度上达到满意效果 2 1 基本遗传算法模型 遗传算法都具有并行计算能力 但是在一台处 理器上执行 遗传算法也只能发挥隐形的并行计算 能力 因此采用遗传算法的分解型并行方法 7 对最 佳射角进行高效搜索 流程如图 4 图 4 基于改进遗传算法的最佳射角反解模型 其基本执行过程如下 8 1 初始化 确定种群规模N 交叉概率Pc 变 异概率Pm和置终止进化准则 随机生成N个个体作 为初始种群X 0 置进化代数计数器t 0 2 个体评价 计算或估价X t 中各个体的适应 度 3 种群进化 1 选择 从X t 中运用选择算子选择出M 2对 母体 M N 2 交叉 对选择的M 2对母体 依概 率 Pc 执行交叉形成 M 个中间个体 3 变异 对M 个中间个体独立依概率 Pm 执行变异 形成 M 个候 选个体 4 选择 子代 从上述所形成的 M 个候选个体 中依适应度选择出 N 个个体组成新一代种群X t 1 5 终止检验 如已满足终止准则 则输出X t 1 中具有最大适应度的个体作为最优解 终止计算 否则置t t 1并转3 2 2 实数编码 对于多维 高精度要求的连续函数优化问题 使用二进制编码来表示个体时将会带来不利之处 7 比如二进制编码存在连续函数离散化的映射误差 也不便反映所求问题的特定知识 因此 笔者采取 实数编码方式 对于处理弹道这类多决策变量的约 束问题 不仅改善了遗传算法的计算复杂度 也提 高了精确度 2 3 动态缩小搜索范围的群体设计 群体是遗传算法进化的基础 从某种程度上来 讲 群体的性质决定了遗传算法的搜索能力 群体 设计主要是对初始种群的产生和群体的大小进行分 析设计 动态缩小搜索范围可以使初始种群中的个体较 接近最优解 对于某特定目标 x y z 根据经验 可知 其竖直方向上的射角 arcsin 2 arcsin 2 9 s gs g 由旋转弹丸的 偏流特性知水平方向上的射角 arcsin arcsin 4 xyyxyy 这样可以动态减小搜索范围 初射角 如图 5 图 5 初射角 群体规模越大 遗传算子处理的模式就越多 进 化为最优解的机会就越高 但个体适应值与评估计算 次数增加 算法效率会显著下降 由于笔者的适应度 函数是以落点距目标点的距离来衡量的 全局仅有一 个最优解 所以遗传算法不会轻易陷入局部解 通过 实验 初始群体的规模在 30 个左右较为适宜 2 4 适应度函数设计 适应度较高的个体遗传到下一代的概率较大 采用落点与目标点的相对距离来度量个体的适应 度 距离越远 适应度就越小 距离越近 适应度 就越大 刘彦君 基于改进的遗传算法与龙格库塔法的弹道求解方法 7 第 1 期 针对本文的弹道问题 目标函数为 2222 endendend Sxxyyzz 7 式中 end x end y end z分别为x y z坐标轴的 终止目标点 求 2 S 的最小值 用以下方法进行转 换 10 22 maxmax 0 fCSSC 8 式中 f 为适应度函数 2 S 为目标函数 分别为火炮发射的水平 竖直角 max C为某 一固定的大值 2 5 遗传算子设计 由于采用了实数编码方式 交叉算子采取算术 交叉的方