当前位置: 首页 > news >正文

AFSIM仿真工具介绍与源码编译

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目录。
  • 并且需要安装cmakeVisual Studio,我使用的是版本是cmake 3.23.2Visual 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轴坐标。
    • 在这里插入图片描述
http://www.dtcms.com/a/358481.html

相关文章:

  • Isaac Lab Newton 人形机器人强化学习 Sim2Real 训练与部署
  • uniapp监听物理返回按钮事件
  • 软考 系统架构设计师系列知识点之杂项集萃(136)
  • 将 Logits 得分转换为概率,如何计算
  • SRE命令行兵器谱之三:grep - 日志海洋中的“精确制导”
  • JavaWeb前端06(ElementPlus快速构建网页)
  • IDM手机端,速度能提高6倍!
  • 消息队列核心技术解析与应用场景
  • JAVA EE初阶 4:文件操作和IO
  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理
  • leetcode2(移除元素)
  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践
  • I2C多点触控驱动开发详解
  • Elasticsearch logsdb 索引模式和 TSDS 的业务影响
  • 【小白笔记】基本的Linux命令来查看服务器的CPU、内存、磁盘和系统信息
  • 网络编程4-并发服务器、阻塞与非阻塞IO、信号驱动模型、IO多路复用..