AFSim仿真系统-架构概览

引言

     本文档从最终用户的角度描述了AFSIM架构,旨在帮助最终用户深入了解AFSIM的操作概念。

核心架构

     AFSIM基于面向对象的C++架构,提供了一种可扩展和模块化的架构,使得许多附加功能能够轻松集成。AFSIM允许新的组件模型(如传感器、通信、移动器等)以及全新的组件类型被插入并在框架中使用。扩展和插件是框架扩展以集成新平台组件模型、新扩展平台功能以及新扩展仿真服务的主要机制。插件功能是一种扩展形式,允许用户在不重新编译AFSIM核心代码的情况下添加新功能。使用插件可以更容易地分发扩展功能,并提供为特定分析选择使用哪些扩展功能的能力。以下图表展示了AFSIM提供的主要框架组件和服务,这些组件和服务可以进行扩展。

核心应用程序

       基于AFSIM的可执行文件通常由单个AFSIM“应用程序”组成,该程序利用AFSIM的服务。这个应用程序维护着脚本类型、扩展和插件管理器以及应用程序配置数据。该应用程序由一个或多个场景组成,这些场景拥有类型工厂和列表、用户输入以及脚本。场景由一个或多个模拟组成,具体取决于应用程序。模拟包含了类型实例、接口(如DIS、XIO、观察者、地形)以及运行时数据,包括事件管理和线程处理。

核心服务

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

        场景 - 提供场景输入处理、类型列表和脚本。

        仿真 - 提供基于时间的事件处理和维护平台列表。

        线程管理 - 提供线程和多线程管理能力。

        扩展和插件 - 提供一种通用的方法来添加新的服务和组件。

        脚本 - 提供实现和扩展AFSIM脚本语言的基础设施。

        观察者 - 提供一种通用的发布-订阅服务,用于从仿真中提取数据。

        任务分配 - 允许跨平台的任务分配和行为建模。

        跟踪 - 允许根据传感器测量进行航迹形成、航迹相关和融合。

        地理空间 - 提供地形和视线数据。

        分布式仿真接口 - 仿真接口应用接口标准以实现仿真的互操作性(IEEE 1278 & 1516)。

        实用工具 - 提供地球模型、坐标系、数学例程、人工智能构造等。

场景

        场景输入加载器提供了从输入文件加载仿真的机制。场景类型列表和脚本为AFSIM组件和脚本的用户输入提供了内部表示。尽管不太常见,但一个应用程序中可能包含多个场景。

仿真

        每个仿真都维护一个平台列表。仿真从场景中的场景类型列表中实例化。仿真使用时间管理来以实时或比实时更快(即构造性,尽可能快)的模式推进仿真的状态。仿真拥有一个事件管理器,负责按时间顺序处理事件。尽管AFSIM是基于事件的,但事件被抽象化,以便分析人员无需担心它们。每个场景中可能包含多个仿真。

线程管理

       模拟线程管理使得模拟执行更加迅速且流畅,特别是在虚拟实时环境中。通过线程化,可以利用独立的执行线程并行处理一些任务,例如传感器和移动器更新、模拟界面以及地理空间检查。

扩展与插件

     扩展

     应用、场景和模拟都可以进行“扩展”。应用扩展代表可以添加到应用中的可选功能。场景扩展用于注册新的组件类型并提供对输入加载器的访问。模拟扩展提供针对模拟的特定可选功能,并允许访问观察者服务。

      插件

      扩展插件管理允许开发扩展的AFSIM功能,而无需更改已交付的框架代码。

实用工具

   AFSIM实用工具提供了多种多样的软件工具,包括:

  • 专门的数据类型
  • 人工智能构造
  • 数学类和算法
  • 输入、输出和文件管理例程
  • 时间管理
  • 地球坐标参考系和大气数据
  • 观察者服务使用的发布/订阅类
  • 以及其他许多工具……
任务分配

        任务分配是一种服务,用于发送和接收与轨迹或感知相关的*任务分配。它允许用户利用有限状态机的概念对轨迹进行分类。用户定义一组转换规则,这些规则定义了从一个状态转换到另一个状态的条件。在AFSIM任务分配中,每条轨迹都维护着自己的状态。

跟踪

   提供轨迹关联、轨迹滤波和轨迹融合功能。AFSIM提供了原生的跟踪算法,同时也可集成第三方跟踪算法。目前,AFSIM支持:

  • 完美和不完美的轨迹相关选项。
  • 多种轨迹滤波器选择。
  • 协方差矩阵提供检测和跟踪概率区域。
地理空间数据

    地形(地理空间数据)管理:为DTED和“浮点网格”(与ESRI-GIS兼容)数据库提供优化的地形高程查找功能。

   视线管理:提供目标可见性计算服务。

观察者

     观察者允许在不更改框架的情况下提取数据。用户可以轻松创建“脚本观察者”,以脚本类型输出方式提取数据,而无需对软件进行修改。观察者可用于标准和自定义输出、回放文件和分布式接口。

脚本

     脚本管理器理解脚本类型并启用脚本语言。脚本类型易于扩展,以适应新集成的模型和服务。

分布式模拟接口

        DIS & HLA

                AFSIM集成了行业标准接口,这些接口允许平台与其他模拟中的实体进行交互。

        XIO

                XIO是AFSIM的一个专用接口,它允许模拟分布在多台计算机上,并通过图形用户界面进行模拟控制。

核心组件

 

平台

     平台是其构成组件的“容器”。平台由以下部分组成:* 物理组件 * 心理/计算组件 * 信息 * 属性 * 链接

移动器

     移动器维护着它所附着的平台的动力学状态(位置、方向、速度、加速度等)。移动器有多种选项可供选择,范围从地下到空间动力学模型。

通信

     通信设备通过外部链路在平台之间发送和接收消息。AFSIM支持有线或无线设备,使用发射器、接收器和天线来捕捉通信系统的全部物理方面。

传感器

     传感器创建测量值并通过链路在轨迹消息中传输它们。在AFSIM中,传感器经常使用发射器、接收器和天线。AFSIM提供了雷达传播、衰减、杂波和误差的多种选项。

武器

     武器是指旨在阻止其他物体运行(永久或暂时)的装置。在AFSIM中,大多数武器是显式武器,即对象被明确建模为平台(如导弹和炸弹),与隐式武器相比,后者在模拟中不作为平台表示(如干扰机或激光器)。

处理器

    处理器定义行为或计算算法,类似于人脑或计算机。大多数处理器由用户使用AFSIM脚本语言定义,但AFSIM也提供了许多专用处理器。

术语

        AFSIM - 高级模拟、集成和建模框架

        COMMS - 通信

        DIS - 分布式交互模拟

        HLA - 高级体系结构

        WSF - 世界模拟框架

        XIO - 外部输入/输出

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

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

相关文章

vue3.0学习笔记(二)——生命周期与响应式数据(ref,reactive,toRef,toRefs函数)

1. 组合API-setup函数 使用细节: setup 是一个新的组件选项,作为组件中使用组合API的起点。从组件生命周期来看,它的执行在组件实例创建之前vue2.x的beforeCreate执行。这就意味着在setup函数中 this 还不是组件实例,this 此时是…

SpringBoot 实现图形验证码

一、最终结果展示 二、前端代码 2.1 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title>验证码</title><style>#inputCaptcha {height: 30px;vertical-align: middle;}#verifica…

交易积累-BR

BR指标&#xff0c;全称是“买卖意愿比率”&#xff08;Bull/Bear Ratio&#xff09;&#xff0c;是一个衡量市场买卖力量对比的技术分析工具。BR指标是由中国的技术分析师发展起来的&#xff0c;它通过比较股票或市场在一定时间内的上涨能量与下跌能量来评估市场情绪和潜在的趋…

自动驾驶(八十八)---------通讯之SOMEIP

1. 什么是SOME/IP 服务导向架构&#xff08;SOA&#xff0c;Service-Oriented Architecture&#xff09;是一种设计软件系统的方法&#xff0c;强调通过可重用的服务来实现系统的松散耦合。每个服务是独立的功能单元&#xff0c;可以被不同的应用程序使用。这些服务通过标准化的…

【教程】Node.js+Apache 部署网页全过程(非常详细!)

文章目录 背景0. 前置假设1. 更新系统和安装必要软件2. 打包并上传项目到服务器2.1 识别需要上传的文件2.2 文件归档和压缩2.3 压缩文件上传到服务器2.4 解压文件 3. 配置Node.js应用3.1 启动 PM23.2 确认 PM2 进程 4. 配置Apache反向代理5. 启用必要的Apache模块6. 检查 Apach…

linux如何卸载python3.5

卸载&#xff1a; 1、卸载python3.5 sudo apt-get remove python3.5 2、卸载python3.5及其依赖 sudo apt-get remove --auto-remove python3.5 3、清除python3.5 sudo apt-get purge python3.5 或者 sudo apt-get purge --auto-remove python3.5

AI发展下的伦理挑战:构建未来科技的道德框架

一、引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;我们正处在一个前所未有的科技变革时代。AI不仅在医疗、教育、金融、交通等领域展现出巨大的应用潜力&#xff0c;也在日常生活中扮演着越来越重要的角色。然而&#xff0c;这一技术的迅猛进步也带来…

【OpenCV C++20 学习笔记】操作图片

操作图片 概述图片的导入和保存对导入的图片的操作获取像素值Point类型和图片像素 内存管理和引用计数一些简便操作图片可视化更精确的类型转换 概述 在本专栏的第一篇文章中就介绍了一个用OpenCV处理图片的实例&#xff08;《图片处理基础》&#xff09;&#xff0c;这篇文章…

【Linux】信号3——信号的处理

1.信号的处理 我们都说信号被收到了&#xff0c;可能不会里面处理 信号是什么时候被处理的呢&#xff1f; 前提是我们得知道自己收到了信号&#xff0c;进程就得在合适的时候去查自己的pending表和block表&#xff0c;这些属于内核数据结构&#xff0c;进程一定要处于内核态&a…

学习测试12-车(略)

系统讲解&#xff0c;可以在懂车帝网站去了解汽车结构

DMv8共享存储集群部署

DMv8共享存储集群部署 环境说明 操作系统&#xff1a;centos7.6 服务器&#xff1a;2台虚拟机 达梦数据库版本&#xff1a;达梦V8 安装前准备工作 参考达梦官方文档&#xff1a;https://eco.dameng.com/document/dm/zh-cn/ops/DSC-installation-cluster.html#%E4%B8%80%E3…

如何为 DigitalOcean 上的托管数据库收集可观测指标

DigitalOcean 在 2024 年 5 月开始支持在托管数据库&#xff08;PostgreSQL、MySQL、Redis和Kafka&#xff09;中收集可观测指标。我们将在本偏内容中&#xff0c;告诉大家如何使用部署在 DigitalOcean App Platform 上的网络应用程序&#xff0c;为 DigitalOcean 上的 Postgre…

数据恢复教程:如何从硬盘、SD存储卡、数码相机中恢复误删除数据。

您正在摆弄 Android 设备。突然&#xff0c;您意外删除了一张或多张图片。不用担心&#xff0c;您总能找到一款价格实惠的数据恢复应用。这款先进的软件可帮助 Android 用户从硬盘、安全数字 (SD) 或存储卡以及数码相机中恢复已删除的数据。 Android 上数据被删除的主要原因 在…

厚积薄发,详解 IoTeX 2.0 如何推动 DePIN 赛道迈向新台阶

背 景 DePIN 是加密货币行业的一个新兴垂直领域&#xff0c;也是本轮牛市最重要的叙事之一。DePIN 通常通过发行和分配代币来激励参与者&#xff0c;用户可以通过提供资源、维护网络、参与治理等方式获得代币奖励并产生直接的经济收益&#xff0c;从而重新洗牌财富分配方…

【Linux】网络通信基础:应用层协议、HTTP、序列化与会话管理

文章目录 前言1. 应用层自定义协议与序列化1.1 什么是应用层&#xff1f;1.2 再谈 "协议"1.3 序列化 和 反序列化 2. HTTP 协议3. 认识 URL(统一资源定位符)4. urlencode和urldecode5. HTTP 协议请求与响应格式5.1 HTTP 请求5.2 HTTP 响应 6. HTTP 的方法6.1 GET 方法…

50.TFT_LCD液晶屏驱动设计与验证(3)

&#xff08;1&#xff09;数据生成模块Verilog代码&#xff1a; module data_gen(input [9:0] hang ,input [9:0] lie ,input clk_33M ,input reset_n ,output reg [23:0] data ); //定义最大行、列parameter …

Git(分布式版本控制系统)(fourteen day)

一、分布式版本控制系统 1、Git概述 Git是一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更&#xff0c;它由Linux、torvalds创建的&#xff0c;最初被设计用于Linux内核的开发。Git允许开发人员跟踪和管理代码的版本&#xff0c;并且可以在不同的开发人员之间进行…

监控Windows文件夹下面的文件(C#和C++实现)

最近在做虚拟打印机时&#xff0c;需要实时监控打印文件的到达&#xff0c;并移动文件到另外的位置。一开始我使用了线程&#xff0c;在线程里去检测新文件的到达。实际上Windows提供了一个文件监控接口函数ReadDIrectoryChangesW。这个函数可以对所有文件操作进行监控。 ReadD…

【C语言】数组栈的实现

栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#…

Hadoop集群安装配置

文章目录 Hadoop部署配置集群配置历史服务器配置日志的聚集分发Hadoop群起集群Hadoop群起脚本 准备工作&#xff1a;需要3台虚拟机&#xff0c;每台虚拟机搭建好JDK并配置环境变量 Hadoop部署 1&#xff09;集群部署规划 注意&#xff1a;NameNode和SecondaryNameNode不要安…