1 概念和需求
引擎一词来源于英语的“Egnien”,一般指的是将能量转化为力量或运动的装置,是系统的“心脏”。在仿真系统中,仿真引擎是驱动模型运行的核心组件,它为模型提供输人数据,控制模型运行,推进仿真时间,为各类分析和表现工具提供输出数据和控制信号。仿真引擎按照战争层次划分为不同的级别,如装备级仿真引擎、战术级仿真引擎、战役级仿真引擎和战略级仿真引擎。通常情况下,由于仿真的层次不同,仿真的侧重点也不同,仿真引擎在具体功能上也有不同,特别是其建模框架。按照分布程度可以将仿真引擎分为集中式仿真引擎和分布式仿真引擎,集中式仿真引擎具有单一的运行控制管理模块,而分布式仿真引擎则具有多个可以互相协调的运行控制管理模块。按照内部的处理机制可以将仿真引擎分为串行仿真引擎和并行仿真引擎两种,串行仿真引擎中按顺序调度各实体仿真执行,而并行仿真引擎中则可以支持多个实体同时仿真执行。
联合作战仿真引擎是面向联合作战仿真系统的仿真引擎,其主要需求应该包括以下几个方面。
一是提供联合作战模型的开发框架。模型开发框架采用面向对象的机制组织各类仿真实体,实体类的组织结构要符合联合作战的特点,具有开放性并且易于扩展。模型开发框架支持形式化的作战规则,提供作战规则表述机制和组织管理工具。模型开发框架提供一组设计合理的AIP,可以对实体的各种属性和行为进行调整,如实体的人员配置参数、武器装备参数、运动方式、通信行为、战役战术行为、毁伤和感知等等。
二是支持多种仿真推进方式。仿真引擎必须支持两种基本推进方式,即时间步长推进方式和事件步长推进方式,具备从模型组件库中读取模型组件信息,并根据这些信息,采用模型驱动的方式推进仿真。
三是支持实体的并行式仿真。通过在单一仿真引擎内采用多线程技术,不同的实体可以具有不同的线程,实体可以并行地仿真。
四是支持仿真引擎之间的分布式部署。仿真引擎之间可以通过特定的接口和某种通信基础设施进行互操作,从而可以将复杂大规模仿真合理部署到网络上,提高单独仿真引擎的执行效率及仿真实体的规模。
五是提供良好的数据组织方式。仿真引擎应提供结构合理、易于扩展的数据组织机制,方便模型读取各种输人数据(如来自想定中的部队配置和武器装备参数等),为态势表现模块和分析评估模块提供方便的输出数据(如部队的各种损耗)。
2 体系架构
联合作战仿真引擎的整体体系架构如下图所示。

联合作战仿真引擎的核心模块为管理器,用于对仿真过程及相应的仿真对象进行管理,提供仿真运行过程中所需的事件管理、对象管理、作战过程模拟功能,其概念结构如下图所示。

3 调度流程
联合作战仿真引擎的调度流程如下图所示。

仿真引擎采用灵活的MAL(Model Argument List)参数传递机制。MAL是包含向其他函数传递的参数列表的对象。每一个参数有独特的数据类型,名称和值。
4 核心模块
4.1 仿真元素管理器
该类用于仿真元素管理,如仿真元素的创建、注册、删除等。
4.2 组合实体管理器
该类用于组合实体管理,如组合实体的创建、注册、删除等。
4.3 仿真实体管理器
该类用于仿真实体管理,如仿真实体的创建、注册、删除等。
4.4 弹药实体管理器
该类用于提供毁伤裁决服务,能够根据设置的毁伤裁决标准,裁决兵力毁伤程度。
4.5 认知组件管理器
该类用于认知部件管理,包括认知部件的创建、注册、注销等。
4.6 平台管理器
该类用于平台管理,包括平台的创建、注册、注销等。
4.7 传感器管理器
该类用于传感器管理,包括传感器的创建、注册、注销等。
4.8 通讯装备管理器
该类用于通讯装备管理,包括通讯装备的创建、注册、注销等。
4.9 干扰装置管理器
该类用于干扰装置管理,包括干扰装置的创建、注册、注销等。
4.10 数据处理器管理器
该类用于数据处理器管理,包括数据处理器的创建、注册、注销等。数据处理器提供数采集服务,能够采集仿真过程数据,为态势显示等应用提供数据支撑。
4.11 子系统管理器
该类用于仿真子系统管理,包括仿真子系统的创建、注册、注销等。
4.12 弹药组件管理器
该类用于弹药管理,包括弹药的创建、注册、注销等。
4.13 武器系统管理器
该类用于武器系统管理,包括武器系统的创建、注册、注销等。
4.14 环境管理器
该类用于环境管理,包括环境的创建、注册、注销等。
4.15 大气管理器
该类用于大气管理,包括大气的创建、注册、注销等。
4.16 特征管理器
该类用于特征管理,包括特征的创建、注册、注销等。
4.17 效果管理器
该类用于效果管理,包括效果的创建、注册、注销等。
4.18 空域管理器
该类用于空域管理,包括空域的创建、注册、注销等。
5 辅助工具
用户控制界面主要负责提供仿真引擎所需要的控制命令,如启动、暂停、步进和结束等。
模型编辑工具处于仿真系统开发的最前端,主要用于模型组件建模,并生成模型组件动态库和描述文件,供想定编辑工具和仿真引擎使用。
想定数据通常按照仿真引擎所需要的格式进行组织,这种格式难以为军事用户所理解和掌握。而想定编辑工具则为想定数据的编辑提供一个可视化和形式化的管理界面,使得用户可以按照通常的军事想定开发习惯设计想定,并且可以使用形象快捷的可视化方法辅助生成该想定。
与想定编辑工具类似,脚本编辑工具也是为了辅助想定制作人员而提供的便捷工具,如提供脚本模板快速生成和在已有脚本上生成新脚本的功能等。可视化表现工具主要用于动态表现仿真过程,它可以接收来自仿真引擎中的实体状态变更消息,从而改变相应的图标位置或状态。
分析评估工具用于为分析人员提供分析和评估界面,如动态统计各方的各种战损,评估未来可能发展趋势等。它可以接收来自仿真引擎的各种实体状态变化,从而对统计数据进行动态更新。
6 关键技术问题
构建这样一个仿真引擎需要解决一系列技术问题,其中的关键技术问题包括以下几个方面。
6.1 仿真模型框架
联合作战仿真系统重点解决联合作战过程中多种实体在时间和空间上的行动和交互,所以仿真引擎不仅要有开放式的、面向对象的体系结构,同时还应提供可扩充性和可重用性强的仿真模型框架。仿真实体模型的构建是这个模型框架的核心。在系统仿真中,实体功能由其对应的功能模型所决定。采用“单元模型+功能模型”的模型结构,可以灵活、方便地创建各种功能的联合作战实体。单元模型是所有仿真实体的载体,它本身不具有指挥功能或作战功能,就像一个空壳,在仿真中代表着该实体,默认情况下不能执行任何功能。实体的运动、感知、通信、决策等功能由与其相关联的功能模型定义。功能模型包括许多类型的基础模型,有的模型模拟指挥人员的行为和决策,有的模型模拟实体所具有的武器装备或设备的性能及功能,有的模型负责作战环境、作战规则及作战效果等方面的描述。本文提出的联合作战仿真引擎模型框架中,实体之间行为交互通过消息进行传递,如通报态势信息和下达指挥作战信息等。消息模型负责模拟实体之间消息的传递。使用脚本关联不同类型的模型,可以定义飞机、装甲部队、导弹、卫星,或其他聚合类实体,实现仿真实体配载武器平台、拥有不同的行为。
6.2 数据管理
数据是模型的基础,也是仿真引擎需要考虑的一个重要内容。仿真引擎中的仿真数据需要具有良好的组织结构和接口,便于实现对仿真实体的快速查找和动态访问。特别需要关注异构数据的组织,通过建立通用的访问接口。可以减少软件开发的复杂度,提高软件质量。为了支持仿真引擎内多线程并行仿真机制,不同线程中的数据需要具有保护机制,维护线程内数据的一致性,如采用关键区或是加锁的线程仿真机制。另外,在分布式的仿真引擎中,还需要解决分布在不同计算机上的动态仿真数据之间的一致性问题分布在不同计算机上的动态仿真数据之间的一致性问题,需要给出特定的一致性维持算法。
评论区