AFSIM
术语定义及翻译
专业术语定义
AFSIM - Advanced Framework for Simulation, Integration, and Modeling高级仿真、集成与建模框架
AGL – Above Ground Level离地高度
DIS – Distributed Interactive Simulation分布式交互仿真
DTED – Digital Terrain Elevation Data数字地形高程数据
EO/IR – electro-optical/infra-red 光电 / 红外
ESM – electronic support measure电子支援措施
FOV – field of view视场
GUI – graphical user interface图形用户界面
HLA – High Level Architecture 高层体系结构
ID – identification识别
IEEE – Institute of Electrical & Electronics Engineers, Inc.电气与电子工程师协会
JTIDS – Joint Tactical Information Distribution System联合战术信息分发系统
MSL – Mean Sea Level平均海平面
OS – Operating System操作系统
PC – Personal Computer个人计算机
PDU – Protocol Data Unit协议数据单元
RCS – radar cross section雷达散射截面
SAM – surface-to-air missile地对空导弹
SAR – synthetic aperture radar 合成孔径雷达
VESPA – Visual Environment for Scenario Preparation and Analysis场景准备与分析可视化环境
WSF – World Simulation Framework世界仿真框架
单位缩写及定义
dB - decibels分贝
dBsm – decibel square meters分贝平方米
deg – degrees 度
ft – feet 英尺
GHz– GigaHertz 吉赫兹
kts – knots 节(速度单位,1 节 = 1 海里 / 小时)
m - meters米
m^2 – square meters平方米
mw – megawatts 兆瓦
nm – nautical miles海里
s – seconds秒
AFSIM简介
1、AFSIM 是什么
AFSIM 是一个主要为美军满足作战研究群体的任务级别分析需求而开发的模拟框架。
2、AFSIM 开发的原因
-
分析群体的需求未被满足:
- 传统的政府模拟工具如 SUPPRESSOR 不能提供足够的灵活性来分析先进的概念和技术。例如,在研究新的作战策略或评估新型武器系统的效能时,可能会受到这些传统模拟工具的功能限制。
- 用 Excel 和 VB 开发的低精度工具无法满足复杂的需求。对于一些需要高精度和复杂计算的分析任务,这些简单的工具显然不够用。
- 从头开始开发新的分析模拟成本过高。开发一个全新的模拟系统需要大量的时间、人力和资金投入,而 AFSIM 提供了一种更经济高效的解决方案。
-
AFSIM 的优势:
- AFSIM 提供了一组软件构建模块,可以在几周或几个月内(而不是几年)快速开发复杂的分析模拟。这使得研究人员和分析师能够更迅速地响应不断变化的需求,进行各种场景的模拟和分析。
3、AFSIM 的当前状态
- 成熟的框架:AFSIM 是一个成熟的模拟框架,已交付给政府,政府拥有无限权利。这意味着政府可以根据自己的需求自由使用和修改 AFSIM。
- 免费提供:对政府和行业都免费开放。这促进了各方面的合作和创新,使得更多的人可以利用这个强大的模拟工具来进行分析和研究。
- 包括全部源代码:提供了所有的源代码,方便用户进行定制和扩展。用户可以根据自己的特定需求对 AFSIM 进行修改和优化,以满足不同的分析任务。
- 包含经过验证的分类场景:这些场景经过了与 SUPPRESSOR 的验证,可以扩展用于分析先进武器系统概念的作战效益。这为评估新型武器系统的性能和效能提供了可靠的基础。
4、AFSIM 的规模和技术特点
-
代码规模:
- 截至 2021 年 1 月 15 日,AFSIM 大约有 200 万行代码。如此庞大的代码量表明 AFSIM 是一个功能丰富、复杂的软件系统,能够处理各种复杂的模拟任务。
-
编程语言:
- 用 C++ 编写,当前版本利用 C++11 标准。C++ 是一种高效、强大的编程语言,适用于开发高性能的软件系统。C++11 引入了许多新的特性和改进,进一步提高了开发效率和代码质量。
-
性能优势:
- 生成非常高效和高性能的代码。这对于模拟框架来说非常重要,因为模拟通常需要处理大量的数据和复杂的计算,高效的代码可以提高模拟的速度和准确性。
-
用户界面技术:
- 利用 Qt 进行用户界面开发。Qt 是一个流行的跨平台应用程序开发框架,提供了丰富的用户界面组件和功能,使得 AFSIM 可以在不同的操作系统上提供一致的用户体验。
5、AFSIM 的设计理念和优势
-
面向对象设计:
- 大量使用面向对象范式,包括封装、抽象、继承和多态。这些设计原则使得代码更加模块化、可维护和可扩展。
- 封装和抽象可以隐藏实现细节,提高代码的安全性和可维护性。继承和多态则允许代码的复用和扩展,使得开发人员可以在现有代码的基础上快速构建新的功能。
-
结果优势:
- 高效:由于采用了高效的编程语言和设计理念,AFSIM 能够快速处理复杂的模拟任务,提高工作效率。
- 稳定、可靠和准确:经过多年的发展和验证,AFSIM 具有很高的稳定性和可靠性,可以提供准确的模拟结果。这对于作战研究和决策支持非常重要。
- 提供大量的组件、服务和分析功能:AFSIM 包含了丰富的功能模块,可以满足不同用户的需求。这些组件和服务可以进行组合和扩展,以适应不同的模拟场景。
- 易于添加或扩展行为:面向对象的设计使得开发人员可以轻松地添加新的功能或修改现有行为,而不会影响其他部分的代码。
- 易于添加或扩展组件和服务:同样,由于良好的设计架构,开发人员可以方便地添加新的组件和服务,以增强 AFSIM 的功能。
AFSIM框架与工作流程
1、程序框架
(以下说明部分有大模型臆想的成分)
AFSIM(Advanced Framework for Simulation, Integration, and Modeling)架构提供了一个强大而灵活的平台,用于模拟、集成和建模各种复杂系统。以下是 AFSIM 架构的概述:
核心组件
-
Common Infrastructure(通用基础设施):
- 提供稳定的底层支持,包括数据存储、通信机制和资源管理。
- 确保不同的模拟应用能够在统一的环境中运行,提高可重复性和可维护性。
-
Interface(接口):
- 定义了标准化的接口,使得不同的模块和组件能够轻松地进行交互和集成。
- 促进了开发人员之间的协作,以及不同模拟应用之间的互操作性。
-
Component-Based Architecture(基于组件的架构):
- 允许开发人员将复杂的系统分解为独立的组件,每个组件负责特定的功能。
- 便于对各个组件进行独立的开发、测试和维护,提高了系统的可扩展性和可维护性。
功能模块
-
Simulation Engine(模拟引擎):
- 负责执行模拟过程,根据设定的规则和模型计算系统的状态变化。
- 可以支持多种不同类型的模拟,如物理模拟、行为模拟等。
-
Data Management(数据管理):
- 管理模拟过程中产生的大量数据,包括数据的存储、检索和分析。
- 提供数据接口,方便其他模块和外部系统访问模拟数据。
-
Visualization(可视化):
- 将模拟结果以直观的方式呈现给用户,帮助用户更好地理解系统的行为和性能。
- 支持多种可视化方式,如二维图表、三维模型等。
-
Integration and Interoperability(集成与互操作性):
- 允许 AFSIM 与其他模拟工具和系统进行集成,实现更复杂的模拟场景。
- 提供接口和协议,确保不同系统之间能够进行有效的数据交换和协同工作。
2、工作流程
(以下说明部分有大模型臆想的成分)
场景创建:这一阶段主要涉及设计和构建特定的场景。可能包括确定场景的地理位置、设定参与的实体(如人物、车辆、建筑物等)、定义各种条件和事件等。例如,在一个战争模拟场景中,需要确定战场的地形、部署各方的兵力、设定天气条件等。
场景执行:在这个阶段,实际运行创建好的场景。各个实体按照预设的规则和行为进行互动和行动。系统会根据场景中的各种因素进行计算和模拟,产生动态的结果。比如在游戏场景中,玩家控制的角色和非玩家角色会根据游戏规则进行移动、战斗等操作。
后处理:场景执行完成后,进行后处理阶段。这包括对执行结果进行分析、可视化展示、生成报告等。可以对场景中的数据进行统计分析,以评估场景的效果和性能。例如,在模拟实验中,可能会分析不同策略对结果的影响,或者生成详细的图表和报告来展示场景的执行情况。
AFSIM 部件(工具)介绍
1.Mission
“Mission” 提供了一种执行主程序的方式。这意味着它可以作为启动模拟的一个入口点,可能具有特定的配置和参数设置来控制模拟的运行。
2.Warlock
“Warlock” 提供了另一种执行主程序的方式。与 “Mission” 类似,它也可以启动模拟,但可能在功能或使用场景上与 “Mission” 有所不同。
3.Wizard
“Wizard” 是一个图形用户界面(GUI),它提供了构建要执行的场景的方法。通过这个界面,用户可以方便地创建和配置模拟场景。创建的场景被保存在 “.txt” 文件中,当 “Mission” 或 “Warlock” 执行时,会加载这些文件。这使得用户可以预先设计好场景,然后在不同的执行环境中重复使用。
4.Mystic
“Mystic” 同样是一个图形用户界面,它用于使用生成的 “.aer” 回放文件重放模拟。这对于分析和回顾模拟结果非常有用,可以帮助用户更好地理解模拟过程中发生的情况,并进行进一步的分析和评估。
VTK简介
VTK是Vespa Toolkit的简称
VESPA 工具包是 VESPA(传统工具)所构建的框架。
它用于创建和管理地图显示以及其中显示的对象。
位于名为 “vespatk” 的目录下的工具目录中。
VTK包含:
Attachment: a visual element in the scene that is associated with an Entity and Viewer
Entity: representation of a platform within the Scenario which contains a set of elements called Attachments
Environment: contains viewers and scenarios, manages scenario time, and provides access to the application’s factory
Overlay: used to display visual elements in a Viewer that are not associated with an Entity
Scenario: a container of the set of entities loaded in the application
Viewer: controls the visible scene, it is a container of attachments and Overlays
附件:场景中的一个视觉元素,与一个实体和查看器相关联。
实体:场景中平台的表示,包含一组称为附件的元素。
环境:包含查看器和场景,管理场景时间,并提供对应用程序工厂的访问。
覆盖图:用于在查看器中显示与实体不相关的视觉元素。
场景:应用程序中加载的一组实体的容器。
查看器:控制可见场景,它是附件和覆盖图的容器。
WKF简介
WKF是Warlock Framework的简称
Warlock 框架(WKF)是通用的应用程序代码,它利用 Qt 和 VTK 提供核心应用程序功能以及对地图显示的支持。
这个框架最初是为了支持 Warlock 的开发而创建的,后来被用于创建结果可视化(现在称为 Mystic)。
在 AFSIM 2.4 中,Wizard 被转换为使用 WKF。
WKF 通过其插件接口支持扩展。这些插件可以对所有三个应用程序通用,也可以仅限于单个应用程序。
WKF说明
用于创建图形用户界面(GUI)和支持功能的核心代码。此代码被所有 WKF 应用程序使用。位于 tools/wkf/core 目录下。
可能被 WKF 应用程序使用的通用代码。包含那些不是在 WKF 内部实例化,但被不同应用程序的插件普遍使用的类。有助于插件的代码复用。位于 tools/wkf/common 目录下。
对所有 WKF 应用程序通用的插件。位于 tools/wkf/plugins 目录下。
Environment
在 WKF中有两个环境类:
1、wkf::Environment(wkfEnv):
提供了对主窗口(MainWindow)、首选项(Preferences)、目录路径、用户选择等更多内容的访问途径。
这是最为常用的环境类,意味着在大多数情况下,开发人员或用户在与 WKF 进行交互时,很可能会频繁使用这个类来获取各种关键的系统信息和进行操作控制。
2、wkf::VtkEnvironment(vaEnv):
扩展自 vespa::VaEnvironment。这表明它继承了 vespa::VaEnvironment 的特性和功能,并在此基础上进行了特定于 WKF 的扩展。
插件使用这个类来访问标准查看器(Standard Viewer)和标准场景(Standard Scenario)。对于需要与可视化功能进行交互的插件来说,这个类提供了必要的接口和资源,以便能够在 WKF 中展示特定的内容或实现特定的功能。
总的来说,这两个环境类在 WKF 中扮演着不同的角色,分别满足不同的需求场景,为 WKF 的功能实现和扩展提供了重要的支持。
Standard Scenario
“标准场景(Standard Scenario)” 是已在 “VtkEnvironment” 类中注册的 “Scenario” 对象。
关于标准场景的类型:
标准场景” 是 “wkf::Scenario” 类型,而 “wkf::Scenario” 是从 “vespa::VaScenario” 派生而来。这意味着 “标准场景” 继承了 “vespa::VaScenario” 的属性和方法,并可能在此基础上进行了特定的扩展和定制
Scenario 的作用:
“Scenario”(场景)对象能够让用户访问 “平台(Platforms)”。这意味着通过 “Scenario”,可以获取或操作与平台相关的信息和功能。
然后可以向 “平台” 添加 “附件(Attachments)”。这表明在这个软件架构中,可以通过 “Scenario” 对象找到平台,并在平台上添加各种附件,以扩展平台的功能或丰富其内容。这种设计模式允许用户根据具体需求对平台进行个性化的配置和扩展。