1 概述
- AFSIM(Advanced Framework for Simulation, Integration and Modeling,高级仿真、集成与建模框架)是一个功能强大且高度灵活的仿真工具,主要用于军事领域的分析、研发和作战研究,同时也逐步应用于工业和其他民用领域。
- AFSIM 由波音公司最初投资开发(2003年),后转由美国空军研究实验室(AFRL)维护和管理(2013年起)。它旨在解决传统仿真环境的分析能力缺陷,并提供更现代的编程范式。截至2020年,已有超过 275个政府、行业和学术组织 加入了AFSIM社区。
2 核心架构
- AFSIM 采用了面向对象的C++架构,确保了其核心的高性能和计算效率。
- AFSIM 的面向对象 C++架构提供了一个可扩展和模块化的架构,允许轻松集成许多附加功能。AFSIM 允许在框架中插入和使用新的组件模型(例如传感器、通信、移动设备等),以及全新的组件类型。扩展和插件是扩展框架以集成新的平台组件模型、新的和扩展的平台能力以及新的和扩展的仿真服务的主要机制。插件功能是一种扩展形式,允许在不重新编译核心 AFSIM 代码的情况下添加功能。使用插件可以更轻松地分发扩展功能,并提供选择在特定分析中使用哪些扩展功能的能力。

3 核心功能与特点
- 多域作战仿真:AFSIM 能够模拟陆、海、空、天、电(电子战)、网(网络空间) 等多域作战空间。其应用涵盖了空中机动与拦截、海上反舰反潜、防空反导、导弹攻防、电子战和网络战、太空对抗以及联合作战指挥控制等众多环节。
- 多分辨率建模:它支持不同精度等级的模型灵活切换与混合仿真。
- 开放与可扩展性:AFSIM 采用模块化、面向对象的C++架构,并提供了扩展和插件机制。用户可以在不修改核心代码的情况下,通过C++插件自定义新的装备模型、组件类型或仿真服务,集成专属算法或第三方模型。
- 分布式与灵活运行:AFSIM 支持多种运行模式以适应不同应用场景的需求,包括单机运行、多机多样本(用于蒙特卡洛大样本分析)、集中运行分布式显控(模拟训练、装备试验)以及分布式运行(支持人在回路、虚实一体)。
- 标准化与互操作性:AFSIM 集成了 HLA(高层体系结构)和 DIS(分布式交互仿真) 等业界标准接口,这确保了它能与其他符合这些标准的仿真系统进行互联互通,支持跨地域、跨平台的协同仿真。
4 应用领域
- 军事领域:这是 AFSIM 的传统和核心应用领域。它主要用于作战概念开发与验证、武器装备体系效能评估(如新型雷达或导弹系统的效能)、战术战法研究与优化、兵棋推演和人员训练,以及任务规划与 rehearsal。
- 民用领域:近年来,AFSIM 的应用也逐步扩展到民用领域,例如在工业制造中优化生产线流程,在物流管理中模拟和优化物流网络,以及在城市交通管理中构建交通仿真模型来测试不同的交通管理策略。
5 源码编译
- 编译源码主要是为了进行二次开发,如果没有这方面需求,可以不进行编译。
- AFSIM源码有近10GB大小,由于资源太大,这里就不提供了,网上都可以找到资源。
- 先看下AFSIM源码结构
- 目录含义
- bin:可执行程序
- demos: 示例程序
- documentation:帮助文档
- resources:资源
- swdev:源码
- tools:工具
- training:官方培训课程
- 编译源码前,在swdev目录下创建一个
build
目录。 - 并且需要安装
cmake
和Visual Studio
,我使用的是版本是cmake 3.23.2
和Visual Studio 2015
。 - 打开cmake-gui.exe工具,配置AFSIM源代码和编译目录
- 然后点击
Configure
配置编译器和架构信息,配置完成后会生成工程。
- 生成没有问题的话最后会打印
Configuring done
。
- 再点击
Generate
生成最终的Visual Studio
工程。
- 在
swdev\build
目录下会生成一个afsim.sln
,使用Visual Studio 2015
打开。 - 选择ALL_BUILD生成可执行程序。
- 编译完成后,将wizard设为启动项目,拷贝一份
resources
到build目录下,运行。
- 弹出此窗口,则编译运行成功。
6 应用程序
- AFSIM的应用程序在源码目录的bin目录下,常用的主要有三个工具:Wizard、Warlock和Mystic。
- Wizard:想定编辑工具。AFSIM的集成开发环境,用于想定构建、模型实例化、作战单元部署、任务规划、高精度三维场景构设及脚本编辑调试。
- Warlock:推演导调工具。仿真实时推演引擎,支持“人在回路”的实时仿真,可调整任务部署。
- Mystic:复盘回放工具。态势显示与仿真结果回放工具,用于显示平台、事件、交互、传感器区域等,并进行数据分析。
- 示例
- 双击打开Wizard.exe程序,选择
File->Open Project
,打开一个示例,选择AFSIM目录下的training\user\3_Weapons\scenarios\floridistan\floridistan.txt
这个示例文件。 
- 先使用Warlock工具进行实时仿真。

- 然后点击编译运行按钮

- 会弹出一个Warlock新窗口。可以看到仿真已经开始,卫星在运动中,同时飞机和船舶也是在运动的,只不过相比于卫星,速度比较慢。

- 可以在Warlock窗口中,对仿真场景进行快进。

- 再看下效果,可以看到红方飞机投弹炸毁了蓝方的两辆坦克。

- 再使用复盘回放工具Mystic进行下仿真。

- 然后点击编译

- 编译成功后在工程目录下的
output
目录下会生成一个*.aer
文件。 
- 会弹出一个Mystic新窗口,可以看到上面提供了进度条,我们可以直接拖动进度条来对仿真过程进行回退和快进。

- 拖动进度条看下效果

- 整个场景都是三维的,按住鼠标滚轮再移动场景,可以改变Z轴坐标。
