😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解【建模与仿真】一文搞定AFSIM,期待与你一同探索、学习、进步,一起卷起来叭!

目录
  • 一、CMAKE
  • 二、AFSIM
  • 前言
  • 架构元素
  • 核心应用
  • 核心架构
  • 核心服务
  • 核心组件

一、CMAKE

  • 介绍:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),并且输出对应的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

🔗官网: https://cmake.org/download

💡AFSIM关于Win编译运行流程:

新建build文件夹 -> 使用cmake打开源代码(src文件夹) -> configuration -> generate -> open project -> 解决方案——cmaketargets——ALL BUILD(右键生成)【生成文件在build/Release/下】 -> 解决方案——cmaketargets——INSTALL(右键生成)【生成文件在build/wsf_install/下】 -> 把build/wsf_install/bin/* 复制到build/Release/下 -> 将resource、demo、document拷贝到build/下 -> 设置wizard设为启动项解决方案——applications——wizard——右键设为启动项目】-> VS中点击本地调试器

💡VS编译的时候不生成Release文件夹:

【建模与仿真】一文搞定AFSIM_仿真

二、AFSIM

前言

【建模与仿真】一文搞定AFSIM_仿真_02

🔗官方文档: http://124.222.40.9/html/docs/main_page.html

🔗参考论文1: Advanced Framework for Simulation, Integration and Modeling (AFSIM)

🔗参考论文2: Modeling fog of war effects in AFSIM

  • 背景:AFSIM(Advanced Framework for Simulation, Integration and Modeling)由美国空军研究实验室(AFRL)开发和维护。"AF"在AFSIM中不代表空军,而是表示一个通用的框架,用于对陆、海、空和空基平台进行建模,如潜艇,海军舰艇,坦克,飞机,直升机,卫星。
  • 介绍:AFSIM是一个通用的建模框架,底层是一个C++库,用于创建模拟,以模型在地理背景下的平台交互。在模拟中,顶级对象被称为平台(或主体、实体、参与者),每个平台都可以附加各种系统和属性,如车辆(地面、空中、太空、表面、地下)、建筑物或生物等。交互包括传感器探测(如雷达、红外等)、碰撞检测、以及通信等。

架构元素

AFSIM使用四个架构元素(属性,元素,组件和链接)来描述仿真中的每个平台:

【建模与仿真】一文搞定AFSIM_建模_03

  • 属性(Attributes):
  • 常规数据:包括平台名称、类型和从属关系等信息。
  • 任务特定信息:可扩展包含如雷达、光学、红外签名数据等,用于评估飞机被敌方传感器检测到的难易程度。
  • 信息(Information):
  • 驻留数据:包含平台上存在的所有数据。
  • 感知详情:详细描述了接收者(如飞行员)如何接收并感知这些数据,包括高度、速度、航向、雷达指示等显示给飞行员的信息类型。
  • 原始数据源:提供了驱动上述显示的大量原始数据。
  • 组件(Components):由直接控制平台行为的多种模型组成,这些模型描述了:
  • 时空运动:平台如何在时空中移动。
  • 环境感知:平台如何感知其周围环境。
  • 信息处理:平台如何处理收集到的信息。
  • 通信能力:平台如何与其他平台进行通信。
  • 武器使用:平台如何使用其动能和非动能武器库对抗对手平台。
  • 其他任务执行:执行除上述之外的各种任务的能力。
  • 链接(Links):
  • 数据交换协调:协调平台上各个子系统之间的数据交换。
  • 平台间通信:与其他平台进行通信。
  • 武器对抗:利用动能和非动能武器库对抗对手平台。
  • 任务执行:执行各种任务,包括但不限于上述功能。

核心应用

使用AFSIM库的应用程序可以利用AFSIM输入系统来加载系统属性、填充仿真实体并对仿真进行控制。

  • post_processor:负责处理仿真结果数据,生成报告和可视化图表,帮助用户理解仿真过程和结果。
  • sensor_plot:用于分析和可视化传感器在仿真环境中的覆盖范围以及天线的增益情况,对于评估传感器性能和通信能力至关重要。
  • engage:此应用专注于武器交战过程的仿真和分析,能够模拟不同武器系统之间的交互,评估其效能和准确性。
  • weapon_tools:提供一系列工具和接口,支持用户开发和验证新的武器模型,确保这些模型在仿真环境中能够准确反映实际性能。
  • mission(mission_analyzer、baseline_sim):用于执行具体任务分析和基准仿真。它允许用户定义任务场景、配置仿真参数,并运行仿真以评估任务执行效果。通过该应用,用户可以深入了解不同任务条件下的平台性能、资源需求和作战效能。

套件:

  • Wizard:这是一个向导式的开发工具,用于简化AFSIM框架下应用程序的创建和配置过程。它提供了一系列直观的界面和选项,帮助用户快速搭建仿真模型,减少手动编码的工作量。
  • EVT Reader:此工具用于读取AFSIM仿真过程中生成的事件文件(EVT文件),这些文件记录了仿真过程中的关键事件和状态变化。EVT Reader允许用户分析这些事件数据,以便深入理解仿真过程和行为。
  • Mystic:Mystic是一个强大的仿真结果可视化工具,它能够将AFSIM仿真产生的数据转换为易于理解的图表、图像和动画。通过Mystic,用户可以直观地观察和分析仿真结果,快速识别关键趋势和模式。
  • Mover Creator:此工具用于创建和管理AFSIM仿真中的移动器(Mover)对象,这些对象代表了在仿真环境中具有动态行为能力的实体(如车辆、飞机等)。Mover Creator提供了灵活的界面和参数设置,帮助用户精确定义移动器的行为模式和性能特征。
  • Warlock:Warlock是AFSIM框架中的人在回路(Operator-In-The-Loop, OITL)工具,它允许用户在仿真过程中实时参与和干预。通过Warlock,用户可以根据实时反馈调整仿真参数、发送指令或执行其他操作,以模拟真实世界中的决策和响应过程。

核心架构

AFSIM提供了一种可扩展和模块化的架构,使得许多附加功能能够轻松集成。

AFSIM允许新的组件模型(如传感器、通信、移动器等)以及全新的组件类型被插入并在框架中使用。

扩展和插件是框架扩展以集成新平台组件模型、新扩展平台功能以及新扩展仿真服务的主要机制。

插件功能是一种扩展形式,允许用户在不重新编译AFSIM核心代码的情况下添加新功能。使用插件可以更容易地分发扩展功能,并提供为特定分析选择使用哪些扩展功能的能力。

以下图表展示了AFSIM提供的主要框架组件和服务,这些组件和服务可以进行扩展。

【建模与仿真】一文搞定AFSIM_建模_04

核心服务

【建模与仿真】一文搞定AFSIM_仿真_05

AFSIM提供了处理和支持仿真执行、其他常规计算和基础功能的能力。

  • 场景 - 提供场景输入处理、类型列表和脚本。
  • 仿真 - 提供基于时间的事件处理和维护平台列表。
  • 线程管理 - 提供线程和多线程管理能力。
  • 扩展和插件 - 提供一种通用的方法来添加新的服务和组件。
  • 脚本 - 提供实现和扩展AFSIM脚本语言的基础设施。
  • 观察者 - 提供一种通用的发布-订阅服务,用于从仿真中提取数据。
  • 任务分配 - 允许跨平台的任务分配和行为建模。
  • 跟踪 - 允许根据传感器测量进行航迹形成、航迹相关和融合。
  • 地理空间 - 提供地形和视线数据。
  • 分布式仿真接口 - 仿真接口应用接口标准以实现仿真的互操作性(IEEE 1278 & 1516)。
  • 实用工具 - 提供地球模型、坐标系、数学例程、人工智能构造等。
核心组件

【建模与仿真】一文搞定AFSIM_C++_06

【建模与仿真】一文搞定AFSIM_数据_07

  • 移动器:移动器维护着它所附着的平台的动力学状态(位置、方向、速度、加速度等)。移动器有多种选项可供选择,范围从地下到空间动力学模型。
  • 通信:通信设备通过外部链路在平台之间发送和接收消息。AFSIM支持有线或无线设备,使用发射器、接收器和天线来捕捉通信系统的全部物理方面。
  • 传感器:传感器创建测量值并通过链路在轨迹消息中传输它们。在AFSIM中,传感器经常使用发射器、接收器和天线。AFSIM提供了雷达传播、衰减、杂波和误差的多种选项。
  • 武器:武器是指旨在阻止其他物体运行(永久或暂时)的装置。在AFSIM中,大多数武器是显式武器,即对象被明确建模为平台(如导弹和炸弹),与隐式武器相比,后者在模拟中不作为平台表示(如干扰机或激光器)。
  • 处理器:处理器定义行为或计算算法,类似于人脑或计算机。大多数处理器由用户使用AFSIM脚本语言定义,但AFSIM也提供了许多专用处理器。
📌 [ 笔者 ]   文艺倾年
📃 [ 更新 ]   2024.8.15
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

【建模与仿真】一文搞定AFSIM_建模_08