首页 > Python资料 博客日记
AFSim仿真系统-架构概览
2024-09-10 01:00:13Python资料围观106次
引言
本文档从最终用户的角度描述了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 - 外部输入/输出
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj