2. 中国人民解放军92819部队, 辽宁 大连 116021
2. No. 92819 Unit of PLA, Dalian 116021, China
作战计划是为完成作战任务而制定的指导作战准备和作战行动的指挥文书[1]。作战计划分析是预先对作战进程和结果进行分析评估,将发现的问题加以更正和完善,进而优化作战计划,为实际的作战行动提供支持。随着技术的发展,海上作战日益复杂,战斗节奏不断加快,传统的舰艇作战计划分析手段已无法满足要求。随着计算机仿真技术的发展,仿真分析技术已成为作战计划分析的主要技术途径。
军事作战系统是典型的离散事件系统[2, 3]。尤其在海战中,战争的状态并非连续变化,具有很强的跳跃性。作战进程依靠不连续的作战行动驱动。本文结合水面舰艇作战特点,提出一种基于碰撞检测的仿真方法,用于求解海战中重要条件事件的发生时间。本文所讨论的舰艇作战计划适用于战役、战术层面。
1 舰艇作战计划仿真的仿真策略仿真策略是系统仿真模型的控制逻辑,从根本上决定了仿真模型的结构,是仿真的核心问题。离散事件系统目前形成了 3 种典型的仿真策略:事件调度法(Event Scheduling,ES)、活动扫描法(Activity Scanning,AS)和进程交互法(Process Interactive,PI)[4, 5]。
以上 3 种仿真策略的差别主要体现在:事件调度法关心的重点是发生在某一时刻下的行为;活动扫描法的重点是某一状态下发生的行为;进程交互法的重点则是某一实体的完整生命周期的行为序列。
选择何种方法,需要根据仿真系统的特点和需求决定。海战场中的基本作战单元是平台。攻击行动的基本作战流程是:由各平台(预警机、舰船)进行机动,利用装备的电子侦察设备进行预警探测;对探测到的目标信息进行数据融合,取得目标的轨迹、识别目标性质,进而通过指挥控制系统为舰艇编队中的打击兵力进行目标指示,打击兵力对目标实施火力打击;各侦察设备对目标进行毁伤评估。这一过程中,涉及众多实体,交战的一方会根据遭遇的事件做出相应反应,进而引发新的事件。由此可以看出,舰艇作战计划仿真中,一方产生事件或状态发生改变,另一方将据此产生事件或改变状态,事件的发生环环相扣。这一仿真过程中,比较关心的是事件发生的顺序、时间。
从建模角度来看,事件调度法比较直观,以事件作为其基本单元,与其他方法相比建模灵活简便;活动扫描法需要设置每个实体的时间元,在实体较多时流程复杂;进程交互法针对实体的生命周期建立,与舰艇作战计划仿真的运行机制不相适应。综上所述,事件调度法更适合作为舰艇作战计划仿真的仿真策略。
2 基于碰撞检测的仿真方法分析与研究 2.1 舰艇作战中离散事件的分类事件调度法中关键问题之一是确定事件发生的时间。离散事件分为确定性事件和条件事件。确定性事件的发生时间能提前知晓,条件事件的发生时间与条件相关,一般不能提前确定。
在舰艇作战计划仿真中,确定性事件是作战计划中规定要执行的作战行动,有明确的执行主体、作用对象。作战行动的行动序列中,行动时间也有明确的安排,所以对应事件的发生时间已知,直接来源于作战计划。由于战争的复杂性,敌我双方的对抗性,作战过程的发展无法完全按照作战计划的内容进行,确定性事件的“确定”更多体现在仿真初期,起到对仿真状态初始化的作用。作战计划的后续规定事件能否发生还要依赖于是否具备事件的发生条件。舰艇作战计划中,确定性事件的典型例子是舰艇机动,舰艇机动是舰艇在指定时间按照规定的运动要素(速度、航向)行进。
条件事件的发生需要进行条件判断,其发生时间并不固定。在舰艇作战计划仿真中,大部分的仿真事件为条件事件。根据舰艇作战的特点,敌我双方兵力大部分时间都处于运动状态,所以不论是进攻还是防御,首先都需要进行探测,发现目标的位置。这是后续决策和交战的基础。所以发现目标可以看作是舰艇作战计划仿真中首要的条件事件,其时间确定后,后续其他条件事件的发生时间可以依据规则求解。
现在一般有 2 种方法确定条件事件的发生时间[4]:1)在确定性事件发生的同时,对各个条件事件发生的条件进行判断,如果满足就处理;2)针对条件事件每隔一个“时间步长”判断一次,如果满足就处理。第一种方法无法精确求出条件事件的时间点;第 2 种方法在 2 个事件之间要进行n次判断。
${n}=({{{T}}_{{E}2}}-{{{T}}_{{E}1}})/{{{T}}_{\text{interval}}}$ | (1) |
Te2 是下一事件 e2 发生的时间,Te1 是前一事件 e1 发生的时间,Tinterval 是时间步长。当 e1 与 e2 发生的时间间隔 TE2-TE1-Te1 较大时,或者为了得到较高的时间精度而 Tinterval 较小时,都会增加判断次数 n,降低仿真效率。
2.2 基于碰撞检测的仿真方法海战中的探测是利用电子侦察设备对目标进行搜索、定位、识别。发现目标的依据是目标处于探测设备的作用范围内,本质上是探测范围对目标的覆盖。根据这一判断准则,可以利用碰撞检测的方法来求解发现目标的时间。这样可以通过一次计算得出发现目标的时间,有利于仿真效率的提高。
“碰撞检测”是检测 2 个(或多个)物体是否相交的技术[6]。最初用于机器人的路径规划,使机器人能够避开障碍物。后广泛应用于计算机游戏、计算机动画等领域。碰撞检测将确定 2 个物体是否、何时以及何处形成碰撞。在作战计划仿真中,碰撞检测的对象并不是作战实体,而是作战实体执行任务时所对应的作用范围。碰撞检测的目的也不是为了避免碰撞,而是通过确定何时发生“碰撞”,得出离散事件的发生时刻。
海战空间可以简化为二维空间下的作战环境,如果探测设备没有角度的限制,则覆盖范围是一个圆形区域。设在 t0 时刻,1 架我方预警机和 1 艘敌方舰船分别位于 C0 和 P0 处,速度矢量分别为 vf 和 vs,预警机的探测范围是以 C0 为圆心,以探测距离 Rd 为半径的圆,如图 1 所示。
将预警机探测范围所覆盖区域作为碰撞检测的对象之一,与舰船进行碰撞检测。为了方便求解,将问题转化为圆(预警机探测范围)与质点(舰船)间的动态碰撞检测。在初始时刻 t0 的状态下,经过时间 t 后,圆与质点位置发生变化,可表示为:
$\left\{ \begin{gathered} tg = \min ({t_{vf}},{t_{vs}}) \hfill \\ C(t) = {C_0} + t \cdot {v_f} \hfill \\ P(t) = {P_0} + t \cdot {v_s} \hfill \\ 0 \leqslant t \leqslant tg \hfill \\ \end{gathered} \right.$ | (2) |
假设在 t 时刻,圆和质点相交,即两者发生碰撞。t 时刻圆心与质点间的向量 d(t) 为
$d(t)=C(t)-P(t)=({{C}_{0}}+t\cdot {{v}_{f}})-({{P}_{0}}+t\cdot {{v}_{s}})$ | (3) |
因为两者相交,所以 d(t) 的长度等于圆的半径,即 $ ||d(t)|| = {R_d} $,可以表示为:
$d(t) \cdot d(t) = {R_d}^2$ | (4) |
对 t 进行求解。将式(3)代入式(4)得:
${(({C_0} + t \cdot {v_f}) - ({P_0} + t \cdot {v_s}))^2} = {R_d}^2$ | (5) |
将式(5)化为二次方程的标准式:
$\begin{array}{*{20}{l}} {{{({v_f} - {v_s})}^2}{t^2} + 2({v_f} - {v_s})({C_0} - {P_0})t + } \\ {\quad \quad \quad ({{({C_0} - {P_0})}^2} - {R_d}^2) = 0} \end{array}$ | (6) |
${\text{令}}\left\{ {\begin{array}{*{20}{c}} {a = ({v_f} - {v_s}) \cdot ({v_f} - {v_s})} \\ {b = ({v_f} - {v_s}) \cdot ({C_0} - {P_0})} \\ {c = ({C_0} - {P_0}) \cdot ({C_0} - {P_0}) - {R_d}^2} \end{array}} \right.$ | (7) |
将式(7)代入式(6),求得 $ t = \displaystyle\frac{{-b \pm \sqrt {{b^2}-ac} }}{a} $。利用 $ d = {b^2}-ac $判断解的个数。如果 d < 0,则圆与质点不相交,未发生碰撞;如果 d = 0,则圆与质点“相切”,意味着两者在 t=-b/a 时刻接触,随后两者相离,质点没有进入圆内部;如 d > 0,t 有 2 个解,较小的 t 为质点初次碰撞圆的时刻,是质点进入圆的瞬间,较大的 t 是质点贯穿圆后,两者分离的时刻。碰撞时刻取 $ t = \displaystyle\frac{{-b-\sqrt {{b^2}-ac} }}{a} $。如图 2 所示。t 有解时,还需要判断解是否位于 t 的定义范围内。当探测设备受覆盖角度或最近探测距离限制时,覆盖范围分别为扇形区域和环形区域,求解原理同圆形区域一致。
因为探测平台可同时搭载多种侦察设备,不同的设备具有不同的作用距离,所以同一探测平台具有多个覆盖区域,利用最大的覆盖区域进行碰撞检测,如果不发生碰撞,则其他覆盖区域不必再进行检测。
对于同一种侦察设备,在不同环境下针对不同目标,其作用距离也不同。以主动雷达为例,雷达作用距离为[7]:
$\begin{gathered} {R_{\max }} = {P_t}{G_t}{G_r}{\lambda ^2}\sigma /[{\left( {4\pi } \right)^3}k{T_s}\left( {1 + } \right. \hfill \\ \frac{{{C_0}}}{{{N_0}}} + \frac{{{J_0}}}{{{N_0}}}){\left( {SNR} \right)_n}{L_t}{L_a}{]^{1/4}} \hfill \\ \end{gathered} $ | (8) |
由式(8)可以看出,实际作用距离和电磁环境、探测目标有很大关系,其他侦察设备同理。所以在进行碰撞检测时,要根据具体环境、具体目标来确定覆盖区域。
除探测事件可以利用碰撞检测求解时间外,武器发射也是一类重要的条件事件。发射的基本条件是目标进入武器射程。此时作用距离用武器射程表示,由武器射程的覆盖区域与目标进行碰撞检测求解发射时间。
3 实例分析图 3 为舰艇编队抗击导弹活动图。预警机获得导弹来袭情况后,对导弹进行定位、识别,将导弹信息发送给舰艇编队,编队指挥对敌情进行判断后,做出防空决策。如果采用主动防御方式,则将导弹信息分配给各软硬抗击武器,各武器组织目标搜索,进入武器射程后实施抗击。如果选择撤退,则舰艇进行机动以规避导弹。
预警机在 t0 时刻执行预警探测任务,t0 时刻是仿真的初始时刻,各平台的位置和运动要素已知。然后利用预警机的探测区域和来袭导弹进行碰撞检测,求出“碰撞”时刻 td。td 值是预警机发现导弹的时刻。将仿真时钟从 t0 推进到 td,这一过程将跳过时间步长的中间环节,快速推进到下一事件发生时刻。发现目标事件发生后,将触发后续事件的产生。如发送信息事件,信息融合事件、指挥决策事件。这一系列事件的发生时间由处理事件的模型进行计算[8],分别为通信模型、信息处理模型和指挥决策模型。这些事件的时间不是交互式产生的,而是由一类模型内部进行计算的结果。在经过防空决策后,如果决定进行主动防御,则各武器的发射时间仍采取碰撞检测的方法取得。此时,武器射程所覆盖的区域与导弹进行碰撞检测,发生“碰撞”的时刻即导弹进入武器射程的时刻,满足发射条件。图 3 中 tm,tj,tf分别对应防空导弹、干扰设备、舰载火炮发射的时刻。
4 结 语在离散事件系统仿真中,不论使用哪种仿真策略,都需要确定事件的发生时间,所以本文提出的基于碰撞检测的仿真方法有一定的通用性。碰撞检测算法结合海战的特点,是求解重要条件事件的一种有效方法,但仍需要不断检验和完善,提高舰艇作战计划仿真的效率,为指挥决策提供支持。
[1] | 《海军军语》编撰办公室. 中国人民解放军海军军语[M]. 北京:海潮出版社, 2006:11. |
[2] | 刘兴堂, 周自全, 李为民, 等. 仿真科学技术及工程[M]. 北京:科学出版社, 2013. |
[3] |
李京, 王子明, 李冬. 基于DEVS的作战指挥行为建模研究[J]. 兵工自动化, 2014, 33(8):11-15. LI Jing, WANG Zi-ming, LI Dong. Study on combat commanding behavior modeling based on DEVS[J]. Ordnance Industry Automation, 2014, 33(8):11-15. |
[4] | 许瑞明. 作战建模与仿真[M]. 北京:军事科学出版社, 2012. |
[5] |
邓书晶. 计算机离散事件仿真的原理[J]. 计算机与现代化, 2009(6):74-77. DENG Shu-jing. Principle of computer's discrete event simulation[J]. Computer and Modernization, 2009(6):74-77. |
[6] | (美)埃里克森. 实时碰撞检测算法技术[M]. 刘天慧, 译. 北京:清华大学出版社, 2010. |
[7] | 樊邦奎. 现代战场侦察技术[M]. 北京:国防工业出版社, 2008. |
[8] |
朱江, 白海涛, 马文. 方案评估动态推演模型设计[J]. 指挥控制与仿真, 2012, 34(1):78-81. ZHU Jiang, BAI Hai-tao, MA Wen. Design of combat plan evaluation deduction model[J]. Command Control & Simulation, 2012, 34(1):78-81. |