【美军仿真系统】FLAMES仿真剖析:组件和类层次结构

FLAMES程序本身并不包含任何模拟现实世界系统行为的软件。所有这类软件都驻留在FLAMES程序之外的组件中。组件存储在动态由FLAMES应用程序加载的组件插件库(简称“插件”)中。

图 1  使用FLAMES进行复杂的系统分析过程

一个FLAMES组件通常模拟现实世界中存在的事物的属性和行为,如人类、车辆、传感器、通信设备或武器效果。这种类型的组件通常被称为“建模组件”或简称“模型”。还支持其他类型的“基础设施”组件,如视图覆盖层、管理服务或与外部系统的接口。

图 1  FLAMES插件

在所有情况下,FLAMES组件都是作为继承自FLAMES主要类别的单独软件类实现的。主要类别定义了组件类的整体结构并提供了丰富的内置功能,极大地简化了组件类的开发。FLAMES为仿真中可能需要的每种类型的组件定义了一个主要类别。FLAMES支持多种不同类型的组件,包括下面描述的几种。

  1. 单位模型

在FLAMES场景中的每一个独立、互动的参与者被称为一个单位(Unit)。单位的功能,包括移动、感知、通信、思考和影响其他单位的能力,是由FORGE通过附加模型来组成的。可以附加到单位上的主要模型类型有认知模型、装备模型和属性模型。

图 1  The Unit Window

图 2  Create New Unit window

  1. 环境模型

环境模型存储描述场景发生时的自然和人造环境的数据,或是适用于整个场景而不特定于具体单位的数据。FLAMES支持几种不同类型的环境模型。

  1. 视图覆盖层

视图覆盖层在FORGE和FLASH的2D和3D视图顶部显示补充信息。几乎任何东西都可以在覆盖层中绘制,从简单的线条和文本注释到完整的抬头显示器全仪表板。每个覆盖层类还可以定义一个视图偏好对象,该对象将自动包含在FORGE和FLASH的视图偏好窗口中。

图 3  FORGE Main Window

图 4  FLASH Main Window

  1. 服务组件

服务组件扩展了FLAMES引擎的功能,极其强大且灵活。服务组件的例子包括与外部系统(如图像生成器和实时系统)的接口以及在场景执行期间引发额外处理的服务。所有FLAMES选项都是作为一项或多项服务组件实施的。

图 5  FLAMES应用

所有与FLAMES兼容的组件都是作为独立的类来实现的,这些类是从FLAMES基类派生(继承)而来。下面的图表展示了所有可以被继承以创建自定义组件类的FLAMES基类。红色的类是用C++编写的,只能直接由用C++编程语言编写的自定义类继承。蓝色的类是用C编写的,只能直接由用C编程语言编写的自定义类继承。灰色的类不能直接被继承。

图 5  FLAMES Class Hierarchy

接下来,我们将参照FLAMES的设计思路,设计一款类似的纯国产化柔性仿真建模框架,敬请关注。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值