AFSim仿真系统 --- 系统简解_06 平台及平台类型

平台及平台类型


    在AFSIM模拟中,当在被模拟的场景中定义平台时,创建仿真实体(如车辆和结构)。

    AFSIM是一个用于创建仿真的对象框架,而平台封装了对象的原则身份或定义。

    平台可以拥有系统(或平台部分)、信息与属性,以及自动控制其行为的处理器。

以下是可能出现在特定平台上的一些组件类型:

  • 移动器(Mover) – 定义平台如何移动
  • 传感器(Sensor) – 定义平台如何感知其环境中的其他平台
  • 通信(Comm) – 定义平台如何与其他平台进行通信
  • 处理器(Processor) – 定义平台的决策和行动

快速入门


给定平台必须继承唯一的平台类型,默认平台类型为WSF_PLATFORM。平台类型对于封装多个平台之间的共享信息和平台部件非常有价值。这可以避免代码重复,并允许对多个平台迅速且无误地进行统一更改。

以下示例产生相同的输出,然而,第二个示例实现了平台类型块以避免代码重复。

                                         

无平台类型     有平台类型
platform cargo-1 WSF_PLATFORMicon c130spatial_domain aircategory cargoposition 00:30s 01:30w altitude 8000 mheading 90 deg
end_platformplatform cargo-2 WSF_PLATFORMicon c130spatial_domain aircategory cargoposition 00:30s 01:30e altitude 8000 mheading -90 deg
end_platform
platform_type CARGO_AIRCRAFT WSF_PLATFORMicon c130spatial_domain aircategory cargo
end_platform_typeplatform cargo-1 CARGO_AIRCRAFTposition 00:30s 01:30w altitude 8000 mheading 90 deg
end_platformplatform cargo-2 CARGO_AIRCRAFTposition 00:30s 01:30e altitude 8000 mheading -90 deg
end_platform

     虽然在这个简单例子中代码行数相同,但现在可以根据第二个示例中的代码快速、轻松地创建其他CARGO_AIRCRAFT平台。现在,可以使用CARGO_AIRCRAFT平台类型选项直接在场景文件中、通过向导地图显示、在Warlock中动态创建,或在脚本中创建平台。

深入了解


注意:以下步骤假设“simple_flight”场景存在,如场景和项目中讨论的那样。


平台定义


可以使用向导文本编辑器直接修改场景文件,或通过向导的地图显示向场景中添加平台。

按照以下步骤将航空器平台添加到simple_flight场景中:

   1 使用向导文本编辑器将以下平台命令块添加到simple_flight.txt中。

platform cargo-1 WSF_PLATFORMicon c130spatial_domain aircategory cargoposition 00:30s 01:30w altitude 8000 mheading 90 deg
end_platform

  2  保存文件。

  3  导航到地图显示(如果地图显示未显示,请使用向导视图菜单打开它)。

  4  如有必要,调整地图显示以显示新添加的平台。

  5  将光标放置在接近坐标00:30s 01:30e的地图上,然后右键单击 > 添加到位置 > 平台。

  6  在创建平台提示框中,将平台命名为“cargo-2”,并从平台类型下拉菜单中选择WSF_PLATFORM,然后单击确定。

 

注意:当在地图显示中创建平台时,相应的场景文件中会自动出现一个平台定义块,之后可以编辑该块。


7   注意到“cargo-2”默认没有图标,只有在定义中定义了位置。

8  将信息添加/修改到该块,使其与以下平台定义块匹配并保存文件。

platform cargo-2 WSF_PLATFORMicon c130spatial_domain aircategory cargoposition 00:30s 01:30e altitude 8000 mheading -90 deg
end_platform

向导的地图显示应反映以下内容:

平台类型
随着平台定义变得越来越复杂,将常见的个平台元素抽象出来并转移到父平台类型中变得越来越重要。

“cargo-1”和“cargo-2”之间重复了多个元素。虽然这个问题在这个例子中看似微不足道,但后续讨论的元素会增加平台的复杂性,如果不使用平台类型,则会使每个平台的维护变得更加困难。

请完成以下步骤,将常见的平台属性抽象为共享平台类型。

 1   在现有平台定义之前,将以下 platform_type 命令块添加到 simple_flight.txt 中:

platform_type CARGO_AIRCRAFT WSF_PLATFORMicon c130spatial_domain aircategory cargo
end_platform_type

 2 在各自的平台定义中将 WSF_PLATFORM 替换为 CARGO_AIRCRAFT,并保存文件。

   3   注意,在第2步之前,地图显示没有按预期显示平台,但在第2步之后自动更新。

回顾
完成此模块后,simple_flight 项目应包含一个反映以下内容的单一场景文件 simple_flight.txt

# simple_flight demosimulation_name "Simple Flight"execute at_time 0.1 sec absolutewriteln("\nSimulating simple_flight scenario...");
end_executeend_time 30 minplatform_type CARGO_AIRCRAFT WSF_PLATFORMicon c130spatial_domain aircategory cargo
end_platform_typeplatform cargo-1 CARGO_AIRCRAFTposition 00:30s 01:30w altitude 8000 mheading 90 deg
end_platformplatform cargo-2 CARGO_AIRCRAFTposition 00:30s 01:30e altitude 8000 mheading -90 deg
end_platform

总结
平台类型是强大且必要的,能够提供支持大型仿真的可扩展性。平台类型可以从其他现有的平台类型继承,从而允许继承链或“祖父类型”。每个平台或平台类型只能直接从单个父类型继承。

平台可以通过地图显示或场景文件创建,且通过地图显示创建的平台可以使用场景中已存在的任何预定义父类型。

一般来说,多个相似平台共同的组件和属性应保留在一个公共平台类型中。通常,平台类型定义会保存在专门针对该类型的文件中,以改善项目和场景的组织。

另外,平台定义应只包含特定平台实例独有的信息,例如其名称、团队、路线以及其初始位置和运动状态。

早期掌握使用平台类型将大大减少构建大型场景所需的时间,并显著减少难以发现的仿真问题的发生。

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

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

相关文章

自然语言处理-语言转换

文章目录 一、语言模型二、统计语言模型1.含义与方法2.存在的问题 三、神经语言模型1.含义与方法2.one-hot编码3.词嵌入-word2vec4.模型的训练过程 四、总结 自然语言处理(NLP)中的语言转换方法主要涉及将一种形式的语言数据转换为另一种形式&#xff0c…

[Cocoa]_[初级]_[使用NSNotificationCenter作为目标观察者实现时需要注意的事项]

场景 在开发Cocoa程序时,由于界面是用Objective-C写的。无法使用C的目标观察者[1]类。如果是使用第二种方案2[2],那么也需要增加一个代理类。那么有没有更省事的办法? 说明 开发界面的时候,经常是需要在子界面里传递数据给主界面&#xff0…

Windows 搭建 Gitea

一、准备工作 1. 安装 Git:Gitea 依赖 Git 进行代码管理,所以首先需要确保系统中安装了 Git。 下载地址:https://git-scm.com/downloads/win 2. 安装数据库(可选) 默认情况下,Gitea 使用 SQLite 作为内…

Nginx的基础讲解之重写conf文件

一、Nginx 1、什么是nginx? Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 2、用于什么场景 Nginx适用于各种规模的网站和应用程序,特别是需要高并发处理和负载均衡的场…

微信步数C++

题目: 样例解释: 【样例 #1 解释】 从 (1,1) 出发将走 2 步,从 (1,2) 出发将走 4 步,从 (1,3) 出发将走 4 步。 从 (2,1) 出发将走 2 步,从 (2,2) 出发将走 3 步,从 (2,3) 出发将走 3 步。 从 (3,1) 出发将…

AI 激活新势能,中小企业全媒体营销绽放无限可能

什么是全媒体营销: 全媒体营销是一种利用多种媒介渠道进行品牌、产品或服务推广的营销策略。它结合了传统媒体(如电视、广播、报纸、杂志)和新媒体(如互联网、社交媒体、移动应用等)的优势,以实现信息的广…

力扣之1322.广告效果

题目: sql建表语句: Create table If Not Exists Ads (ad_id int,user_id int,action ENUM (Clicked, Viewed, Ignored) ); Truncate table Ads; insert into Ads (ad_id, user_id, action) values (1, 1, Clicked); insert into Ads (ad_id, use…

【重学 MySQL】五十八、文本字符串(包括 enum set)类型

【重学 MySQL】五十八、文本字符串(包括 enum set)类型 CHAR 和 VARCHARTEXT 系列ENUMSET示例注意事项 在 MySQL 中,文本字符串类型用于存储字符数据。这些类型包括 CHAR、VARCHAR、TEXT 系列(如 TINYTEXT、TEXT、MEDIUMTEXT 和 L…

基于SSM的仿win10界面的酒店管理系统

基于SSM的仿win10界面的酒店管理系统 运行环境: jdk1.8 eclipse tomcat7 mysql5.7 项目技术: jspssm(springspringmvcmybatis)mysql 项目功能模块:基础功能、房间类型、楼层信息、附属功能

AtCoder ABC373 A-D题解

ABC372 的题解没写是因为 D 是单调栈我不会(⊙︿⊙) 比赛链接:ABC373 总结&#xff1a;wssb。听说 E 很水&#xff1f;有时间我看看。 Problem A: Code #include <bits/stdc.h> using namespace std; int mian(){int ans0;for(int i1;i<12;i){string S;cin>&g…

[Offsec Lab] ICMP Monitorr-RCE+hping3权限提升

信息收集 IP AddressOpening Ports192.168.52.218TCP:22,80 $ nmap -p- 192.168.52.218 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 de:b5:23:89:bb:9f:d4:1…

表面缺陷检测系统源码分享

表面缺陷检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Redis篇(缓存机制 - 基本介绍)(持续更新迭代)

目录 一、缓存介绍 二、经典三缓存问题 1. 缓存穿透 1.1. 简介 1.2. 解决方案 1.3. 总结 2. 缓存雪崩 2.1. 简介 2.2. 解决方案 2.3. 总结 3. 缓存击穿 3.1. 简介 3.2. 解决方案 3.3. 总结 4. 经典三缓存问题出现的根本原因 三、常见双缓存方案 1. 缓存预热 1…

国外媒体宣发:怎么在海外电子杂志版上发布新闻稿-时代周刊Time发布新闻稿

时代周刊Time发布新闻稿 在全球化的浪潮中&#xff0c;新闻媒体扮演着传递信息、引导舆论、塑造公众认知的重要角色。作为国际知名的媒体品牌&#xff0c;时代周刊&#xff08;Time&#xff09;以其独特的视角和深入的报道&#xff0c;为全球读者提供了一扇观察世界的窗口。近…

深度学习:GAN图像生成

GAN的诞生背景 诞生&#xff1a; 2014年由Ian Goodfellow提出 创新性&#xff1a; 无监督学习&#xff1a;GAN 提供了一种新的方法来进行无监督学习&#xff0c;即不需要对训练数据进行标注就可以学习到数据的潜在分布。对抗训练&#xff1a;通过引入对抗机制&#xff0c;G…

C语言文件操作(下)(28)

文章目录 前言一、文件的打开和关闭打开打开模式相对路径和绝对路径 关闭 二、文件操作正确流程三、文件顺序读写函数fopenfclosefputcfgetcfputsfgetsfprintffscanfsprintfsscanffwritefread 四、文件随机读写函数fseekftellrewind 五、文件读取结束时候的判断feofferror具体例…

Mysql锁机制解读(敲详细)

目录 锁的概念 全局锁 表级锁 表锁 元数据锁 意向锁 锁的概念 全局锁 表级锁 表锁 元数据锁 主要是对未提交事务&#xff0c;修改表结构造成表结构混乱&#xff0c;进行控制。 在不涉及表结构变化的情况下,元素锁可以忽略。 意向锁 避免有行级锁影响加表级锁&#xff0…

openpnp - 吸嘴校正失败的opencv参数分析

文章目录 openpnp - 吸嘴校正失败的opencv参数分析概述笔记阶段验证 - N2吸嘴校验完NT1NT2 阶段验证 - 底部相机高级校验完NT1NT2 参数比对保存 “阶段验证 - N2吸嘴校验完” 的NT1/NT2图像重建参数检测环境NT1ok的3个参数值NT1err的3个参数值NT2ok的3个参数值NT2err的3个参数值…

黑马JavaWeb开发跟学(九)MyBatis基础操作

黑马JavaWeb开发跟学九.MyBatis基础操作 1. Mybatis基础操作1.1 需求1.2 准备1.3 删除1.3.1 功能实现1.3.2 日志输入1.3.3 预编译SQL1.3.3.1 介绍1.3.3.2 SQL注入1.3.3.3 参数占位符 1.4 新增1.4.1 基本新增1.4.2 主键返回 1.5 更新1.6 查询1.6.1 根据ID查询1.6.2 数据封装1.6.…

C++引用(变量引用、数组引用与数组指针、引用本质-指针常量、常量引用)

C语言 ——对数组名进行解引用,取地址,还有sizeof和strlen进行操作解析_对数组名解引用得到什么-CSDN博客 C++引用(变量引用、数组引用与数组指针、引用本质-指针常量、常量引用)_c++11 数组引用-CSDN博客