基于可扩展仿真平台的战术机动模型设计与实现
2019-06-13苏玉婷李艳飞
苏玉婷,侯 磊,李艳飞
(1.北方自动控制技术研究所,太原 030006;2.北方信息控制研究院集团有限公司,南京 211100)
0 引言
传统的模块化和面向对象的建模方法因其在重用性和互操作性方面的限制,无法满足现代作战模拟训练系统对模型重用性和灵活性的要求。开发作战模拟训练系统亟需有效手段以适应系统模型扩展频繁、内容复杂的特点[1-2]。组件化建模技术的出现[3-8],使得模型开发具有了可重用性,大大提高了开发效率。组件化建模方法继承自面向对象的建模方法,其建模的步骤可抽象为:分解(实体)->建模实现(组件)->组装(实体)->应用。
在对复杂作战系统进行建模的过程中,行为建模是其中很重要的一个环节,因此,探索作战训练中各种行为建模的有效方法是作战演练仿真的基础[9-10]。计算机生成兵力(Computer Generated Forces,CGF)机动行为是指CGF为达成作战目的,在虚拟战场上进行有组织、有计划的兵力转移活动[11]。CGF机动行为受到包括地质、地形、道路、天候等自然因素和战场实体、人工防御工事、建筑等人为因素的制约。
1 组件化建模
传统的作战仿真实体建模多采用的是以对象为中心,综合功能抽象和数据抽象的面向对象的建模方法。目前由该方法构建的作战仿真实体模型,在推动部队信息化建设和模拟训练方面发挥了积极的促进作用。但由于各单位所采用的设计方法和技术体制不尽相同,导致在进行军兵联合作战仿真等具体应用时存在一些典型问题,包括模型粒度、模型重用和建模效率等。组件化建模的方法则是以组件为中心,按照对象本身固有的功能属性或者承担的任务属性进行拆解,将其封装为组件,再将其组装为实体进行应用。组件化建模方法的建模流程包括组件设计、组件开发、组件装配、组件参数化,以及对象存储等5个环节,其中组件设计是组件化建模的关键环节。组件化建模开发方法如图1所示[1]。
图1 组件化建模开发方法
2 战术机动模型设计
2.1 战术机动概念
以美陆军机械化步兵与坦克营为例,在现代战场上,机械化步兵与坦克营(连)通常采取特遣队(战斗队)的战斗编组组织实施主动式的攻防机动战斗。机动作为战斗力的四大要素(机动、火力、防护和领导)之一,其重要性可见一斑。营特遣队(连或连战斗队)的基本使命是接近敌方,其主要的机动效果包括:1)接近敌方目标;2)通过进攻机动行为进行突破、包围;3)实施追击战斗;4)进攻中向任何方向机动等等。
需要注意的是其机动力受地形、水障碍、道路条件、天候条件等限制,需根据限制条件修正其机动速度和行进队形。营特遣队在不同的任务、敌情和地形下可选择采用包围、突破、正面进攻、迂回和渗透等机动样式。
实施包围的要求是:利用隐蔽的路线接近敌军,发起冲击的点为敌方的防御薄弱点,占领敌方无兵力防守的关键地形,迫使敌方放弃预先准备的阵地。另外,迂回是包围的一个变种。实施突破需要在一条或几条进攻轴线上实施。渗透通常是突破或包围行动的一部分。正面进攻需要沿着最直接的路线机动,打击正面上的敌人。
运用上述进攻机动样式时,还需具体规定下述控制措施:目标、战斗分界线、行动地域、进攻轴线、进攻方向、进攻出发线、连战斗队或连的进攻出发阵地、最后协调线、集结地域、检查点。其中,目标包括当前目标和最终目标、中间目标,指定方向的目标和不规定目标时用检查点代替的目标,检查点一般需沿着机动计划设置。
2.2 移动路径
作战仿真实体最基本的机动行为有前进、后退、加减速和左右转向。除此之外,还需构建仿真实体与具体战场情景相结合的各种复杂机动行为[12-18]。在向目标位置机动的建模过程中,需要通过构造路径并沿着生成路径上的坐标点进行位置解算来完成。追逐或躲避目标时,需要通过不断比较追逐与被追逐实体的坐标来选择递增或递减追逐实体的位置坐标。徘徊行为也属于移动路径中机动行为的一种,该行为在位置解算需要随机移动目标位置。偏移跟随行为一般多用于作战仿真实体的跟踪行为或者队形保持行为等。此外,还有两种避障机动行为,即静态避障和动态避障,需要建立一定的避障策略。
实体位置信息的更新机制是实体行为模型的基础,本文中模型测试时所采用的机动路径是路径跟随行为。可处理的机动指令包括按照既定的路径点机动、机动到指定位置、返回基地、武器向目标机动和按指定方向机动等等。
路径跟随行为使可移动实体沿着构成路径的一系列点顺次移动,路径可以是循环路径也可以设定起点与终点。通过路径跟随行为,可以完成实体的巡逻、侦察、道路导航、特殊地形导航等功能。路径点的数量与具体的应用环境有关,一般设立的路径点越多越紧密,可以使实体的移动呈现出越高的精度[9]。
图2 由路径点顺次构成的移动路径
2.3 战术机动模型设计
本文中的机动模型是在XSIM可扩展仿真平台上进行设计的,主要采用组件化建模思想,将作战仿真实体和机动组件分别进行开发,再将已完善过的机动组件装配到作战仿真实体中,完成建模过程。利用XSIM可扩展仿真平台提供的想定编辑软件部署实体模板,在想定场景中验证对真实装备建模的正确性。仿真实体模型的组成机构如图3所示。
图3 仿真实体模型组成
实体模型规定了实体可具备的基本特征,可控制和协同组件模型工作,实现对实体能力的仿真。机动组件用于描述实体的运动方式,实体的运动能力通过机动组件进行模拟。根据实体战场控件及运动特性的不同可构建分层次多样化的机动组件,可通过关键方法AddComponent()将机动组件装配到实体上构成机动模型。模型开发流程主要包括以下几个步骤:仿真模型设计、模型代码实现、模型测试、入库等。模型设计工具用于设计生成仿真实体、组件等模型的基本代码框架,其工作流程图如图4所示,战术机动模型的战术机动逻辑流程图如图5所示。
图4 模型设计工具工作流程图
图5 战术机动逻辑流程图
实体和组件模型编辑主要是选择所需要集成的父类,添加自有属性、自有方法,以及添加能够处理的消息、态势或指令类型,并声明处理接口。其中,实体模型能够对消息和态势进行处理,组件模型可以对指令进行处理。
实体和组件类创建完成后,生成C++代码框架,生成完毕后,在其生成的代码框架上添加模型方法实现,完善模型功能。机动组件的功能就是对实体的位置、速度等进行处理和更新。本文在设计模型时自定义“加速度”属性对实体的位置Position、速度Velocity、航向角Heading和俯仰角Pitch等机动状态进行更新。
类“属性”的注册相关的宏BEGIN_METADATA(HRDemoMotionData)与 END_METADATA()宏协同工作,完成了机动类属性信息采集器的定义;REG_BASE(TSMotionCom::DataType):通过该宏完成父类信息的注册;REG_PROP(AccSpeed,“加速度”):通过该宏完成类属性的注册。
在机动模型设计工具中,选取机动组件基类TSMotionCom作为新建的父类,重写关键方法Motion()来进行运动状态的解算和更新,重写OnControl()方法来处理指令C2_MOVEWAYPOINT,并将指令参数作为机动参数SetMotionParam()。机动参数获取方法为GetMotionParameter(),返回值类型转换为TSWaypointMotionParamPtr,其中包含路径点信息等实体运动的依据,例如,获取航迹点列表Get-WaypointList(),获取当前位置点坐标GetDesirePos(),获取指令速度GetCmdSpeed()。当前仿真时间的获取方法为GetSimTime(),获取位置更新时间的方法为 GetBSE()->GetUpdateTime(),获取积分步长的方法为GetDt(),可通过宏TD2SECS转换为DOUBLE类型,单位为(s)。判断到达当前路径点时,调用接口AdjustCurrentWaypoint()调整目标点为下一个航迹点。根据当前的位置及速度,可以计算航向角和俯仰角。最终的目的是为了设置计算出的实体新的位置(SetPosition)、速度(SetVelocity)、航向(SetHeading)以及俯仰角(SetPitch)。
编写完毕的代码在应用到模型装配工具中时需对其进行编译,生成动态链接库文件。
表1中列出了与机动模型设计相关的方法及其描述,下页表2中列出了与机动组件相关的控制消息,表3列出了基本的机动态势。
表1 机动模型设计相关方法及其描述
表2 机动组件相关的控制消息
表3 基本的机动态势
3 战术机动模型实现
模型开发需安装Microsoft Visual Studio 2010开发平台及XSimStudio仿真平台,以完成代码编写、模型发布、模型装配、测试等工作。打开模型设计工具应用程序XCreator.exe,点击“模型设计”菜单下的“新建”选项,弹出“项目属性”窗口。为模型添加一个新属性,点击属性列表的“添加”按钮,弹出“属性编辑”对话框。“基础数据”选项表明该属性在组件实例化后即不会改变,生成代码时会被添加到模型数据类中。填写完属性的名称、类型等,点击【确定】按钮,一个属性添加完成。
基础数据类TSMotionComBasicData中主要包含以下属性:最小速度和最大速度。
机动组件基类TSMotionCom中主要包含以下属性:用于对运动过程精细解算时的仿真时间间隔的积分步长和外部传入的机动参数。
实体和机动组件模型设计视图如图6所示,参数编辑对话框如图7所示。
图6 模型设计视图界面示意图
图7 参数编辑对话框
4 机动模型测试
4.1 模型调试
机动模型的关键属性是最大速度、最小速度、积分步长、机动参数等,调试模型代码时可根据具体要调试的对象设置断点。在模型项目中附加引擎进程时,打开想定运行工具,勾选“引擎运行时需用户确认(便于程序调试跟踪)”选项,点击【开始运行】按钮,启动仿真引擎运行。模型测试流程图如下页图8所示。
4.2 测试结果
在想定编辑工具中,在可部署实体模板库中将所需实体模型部署地图中,部署好之后设定起始点和目标点,测试战术机动模型的机动性能,想定编辑界面如图9所示。启动仿真引擎之后勾选“运行完毕后自动开始回放”选项,在态势显示工具中测试模型的机动性能,态势显示界面如图10所示。
图8 模型测试流程图
图9 想定编辑工具部门界面示意图
图10 态势显示结果
测试结果表明:组装完成的战术机动模型,能够按照匀变速运动的规律,沿着“机动计划”中路径点的位置和速度前进,并在到达最后一个路径点后静止。
5 结论
本文以XSIM仿真平台为基础,运用组件化建模技术,结合战术机动概念和移动路径(测试中为路径跟随行为),初步构建了作战实体机动模型。详细介绍了基于组件化建模技术的战术机动模型建模过程,并运用平台自带的想定编辑和态势显示工具,验证了战术机动模型的可用性。可通过修改模型的参数进行实例化,将其应用在具体型号的仿真实体机动中。在今后的研究工作中,将继续开发诸如传感器组件、探测组件、火力组件等模型,将战术概念与组件化建模技术进行更加深入的结合,以期实现复杂系统的作战仿真,并根据具体的模型进行算法的改进,提高模型的效率和逼真度。