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

news2024/11/16 13:07:41
😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解【建模与仿真】一文搞定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

前言

在这里插入图片描述
🔗官方文档: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使用四个架构元素(属性,元素,组件和链接)来描述仿真中的每个平台:

在这里插入图片描述

  • 属性(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提供了处理和支持仿真执行、其他常规计算和基础功能的能力。

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

核心组件

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《学会 SpringBoot 系列 · ConfigurableApplicationContext 详解》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

WordPress多用途电子商务博客新闻主题betheme 21.5.6版本

简介: WordPress多用途电子商务博客新闻主题betheme 21.5.6版本 自带500多套模板 BeTheme第一次发布于2014年5月21日,自那时以来,已有数以百万计的人下载了BeTheme,其评分为4.8。 这个主题是WooCommerce支持的,在此…

UniApp第一天

一、官网介绍 1.1、 SDK SDK是"Software Development Kit"的缩写,中文意思是“软件开发工具包”。SDK通常是由软件开发者为其他开发者提供的一个软件工具集合,用于帮助开发者快速开发、测试和部署软件应用。SDK通常包含了一系列的开发工具、库…

让3岁小孩都能理解LeetCode每日一题_3148.矩阵中的最大得分

解释说明&#xff1a; 上面的内容的意思是为了有只移动一次的情况&#xff0c;而后面的grid&#xff08;i,j)-grid(i,k)由于j严格大于k,所以至少移动了一次&#xff0c;前面可以保持不移动&#xff0c;不移动就是选择0。 class Solution {public int maxScore(List<List&l…

倍福EAP协议应用讲解

倍福EAP协议应用讲解 前言 倍福提供了用于在以太网上进行实时通信的EtherCAT协议&#xff0c;EtherCAT协议属于现场层协议&#xff0c;即具有主从结构&#xff0c;通信只能由主站发起&#xff0c;从站不具备发起通信的功能&#xff0c;只能被动接收数据并插入数据到通信帧中。…

Java基础之switch分支语句

switch分支语句 ​ switch语句也称为分支语句&#xff0c;其和if语句有点类似&#xff0c;都是用来判断值是否相等&#xff0c;但switch默认只支持byte、short、int、char这四种类型的比较&#xff0c;JDK8中也允许String类型的变量做对比。 语法&#xff1a; switch (表达式…

了解数据库中常用存储引擎数据结构(3)

接上文了解数据库中常用存储引擎数据结构&#xff08;2&#xff09;-CSDN博客 目录 CoW BTree 补充&#xff1a;写入时复制&#xff08;Copy-on-write&#xff0c;简称COW&#xff09;是一种计算机程序设计领域的优化策略&#xff1b; Lazy BTree&#xff08;惰性BTree&…

【Linux】缓冲区和文件系统

目录 一、缓冲区 1.1 概念 1.2 用户缓冲区和内核缓冲区 二、磁盘的结构 三、文件系统 3.1 初识“块”和inode 3.2 磁盘分区和文件系统 一、缓冲区 1.1 概念 要理解什么是缓冲区&#xff0c;先看这段代码 #include <stdio.h> #include <string.h> #includ…

OpenTelemetry:新一代的开源可观测性标准

OpenTelemetry是由OpenTracing和OpenCensus两个开源项目合并而成&#xff0c;由云原生计算基金会&#xff08;CNCF&#xff09;托管。该项目旨在提供一套标准化的、跨语言的观测性工具&#xff0c;帮助开发人员和运维人员更好地理解和管理分布式系统的性能和行为。通过统一的Me…

html5宠物网站模板源码

文章目录 1.设计来源1.1 主界面1.2 主界面菜单1.3 关于我们界面1.4 宠物照片墙界面1.5 宠物博客界面1.6 宠物服务界面1.7 宠物团队界面1.8 联系我们界面 2.效果和源码2.1 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 【博主推荐】&a…

微信小程序同城信息共享

前端uniapp 后端thinkphp 热乎的纯手工代码

机械学习—零基础学习日志(如何理解线性代数3)

零基础为了学人工智能&#xff0c;正在快乐学习&#xff0c;每天都长脑子 行列式 最早行列式&#xff0c;是莱布尼茨用于判断&#xff0c;一个方程有没有解。例如&#xff0c;三元一次方程&#xff0c;如果有解&#xff0c;对应行列式就有值&#xff0c;但是如果无解&#xf…

一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)

Java持久化 一、JDBC、JPA、Spring Data JPA 的定义及关系二、JDBC&#xff08;古老的东西&#xff0c;只需简单知道是啥&#xff09;1.1 JDBC概念1.2 JDBC示例 三、JPA&#xff08;第二代持久化&#xff0c;代表是Hibernate等框架&#xff09;3.1 JPA概念3.2 JPA示例 四、Spri…

GB/T 38082-2019 生物降解塑料购物袋检测

生物降解塑料购物袋是指以生物降解树脂为主要原料制得的&#xff0c;具有提携结构的&#xff0c;在销售、服务等场所用于盛装及携提商品的袋制品。 GB/T 38082-2019 生物降解塑料购物袋检测项目&#xff1a; 检测项目 测试标准 尺寸偏差 GB/T 38082 感官 GB/T 38082 提掉…

html+css+js网页设计 大一电商6个页面 带js 有轮播图,增删改查等功能

htmlcssjs网页设计 大一电商6个页面 带js 有轮播图&#xff0c;增删改查等功能 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等…

JTAG标准笔记:IEEE1149.1、IEEE1149.4、IEEE1149.5、IEEE1149.6、 IEEE1500等协议之前的发展和联系

JTAG (Joint Test Action Group) 是一种串行通信协议。对于典型的串行通信&#xff0c;总线较少&#xff0c;线路数通常为1到4条&#xff0c;数据是以位为单位依次传输的。笔记中大部分图片来自JTAG标准介绍UP的视频 IEEE 1149.1&#xff0c;通常称为JTAG&#xff08;Joint Tes…

安防监控/视频汇聚平台EasyCVR如何配置,实现默认获取设备的子码流?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

设计模式22-迭代器模式

设计模式22-迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;动机定义结构定义结构结构图解释注意事项 C代码推导多态属性&#xff08;虚函数&#xff09;实现迭代器1. **返回值问题**2. **对象切割问题**3. **内存管理问题**4. **迭代器生命周期问题**5. **接口…

static、extern,const关键字

1、static关键字 static关键字&#xff1a;延长生命周期&#xff0c;限制作用域 static修饰局部变量&#xff1a;静态局部变量 static修饰全局变量&#xff1a;静态全局变量 static修饰函数&#xff1a;静态函数 2、extern关键字 extern&#xff1a;引用其他文件 .c 中的全局…

对敲期权组合如何操作?

对敲期权组合按照你说的对沖敲出期权应该是一种期权套利行为&#xff0c;在买入的同时卖出一个执行价格不同的期权进行对冲&#xff0c;或者在卖出一张期权合约的时候同时买进一张执行价不动的同类期权进行对中&#xff0c;这样亏报有限&#xff0c;是种套利行为&#xff0c;下…