AFSim仿真系统—16 平台WSF_PLATFORM

 本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!

对本书全文和AFSIM其它资料感兴趣的伙伴,可联系作者领取~

全部内容索引请看 ⬇️⬇️⬇️

《AFSim 2.9中文参考手册》-CSDN博客​编辑https://blog.csdn.net/henggesim/article/details/145566384


 AFSIM中所有能够布署的装备都是基于一个平台,比如一艘舰,一个飞机。而平台是由组件构成,比如舰上的弹就是一个组件。组件无法独立成为一个可布置的单位,只有形成平台才是可布置的。AFSIM中有大量的关于平台的使用示例,此处对其相关命令做全面的介绍。以全面为主。

platform <platform-name> <platform-type>
   acoustic_signature ...
   altitude ...
   aux_data ...
   category ...
   clear_categories
   commander ...
   command_chain ...
   concealment_factor ...
   creation_time ...
   empty_mass ...
   fuel ... end_fuel
   fuel_mass ...
   geo_point ...
   group_join ...
   group_leave ...
   heading ...
   height ...
   icon ...
   indestructible ...
   infrared_signature ...
   inherent_contrast ...
   initial_damage_factor ...
   length ...
   marking ...
   mgrs_coordinate ...
   add_mover ... end_mover
   mover ... end_mover
   navigation_errors ... end_navigation_errors
   nutation_update_interval ...
   on_broken ...
   optical_reflectivity ...
   optical_signature ...
   payload_mass ...
   position ...
   precession_nutation_update_interval ...
   radar_signature ...
   route ... end_route
   side ...
   spatial_domain ...
   <component> ... end_<component>
   add <component> ... end_<component>
   edit <component> ... end_<component>
   delete <component> ...
   track ... end_track
   track_manager ... end_track_manager
   use_zone ...
   width ...
   zone ... end_zone
   zone_set ... end_zone_set

   # Script Interface

   on_initialize ... end_on_initialize
   on_initialize2 ... end_on_initialize2
   on_update ... end_on_update
   script_variables ... end_script_variables
   script ... end_script
   ... Other Script_Commands ...

   script void on_damage_received() ... end_script
   script void on_platform_deleted() ... end_script
   script void on_commander_deleted(WsfPlatform aCommander) ... end_script
   script void on_peer_deleted(WsfPlatform aPeer) ... end_script
   script void on_subordinate_deleted(WsfPlatform aSubordinate) ... end_script
   callback ... end_callback

end_platform

作者注:官方帮助文档给的是上面的,感觉少了sensor... end_sensor和processor

...end_processor

WSF_PLATFORM属于顶级模型,没有需要继承的其它父类模型命令。平台中包含一系列的组件,通过以下表格中平台中包含的命令便可以了解组件在平台中定义的方式。平台中的所有组件细节均在3组件Platform Part中一节中进行定义。

命令

side <side-name>

解释

定义平台所属的“方”(可以是“团队”或“归属”)。side 子命令可以是蓝方(blue)、红方(red)、国家名称或团队名称。具体支持哪些方,请参考所使用的可视化应用或工具。

默认值:无。

命令

icon <icon-name>

解释

指定在显示此类平台时所用的图标名称。如果平台类型在 dis_interface(4.2分布式接口dis_interface)  模块中没有相关的 entity_type 子命令,则使用此图标。

默认值:<platform-name> 或 <new-type-name> 的值。

命令

marking <marking-name>

解释

指定要应用于平台的标记名称。此文本字段在 dis_interface(4.2分布式接口dis_interface) 中与该平台关联。

默认值:无标记。

命令

indestructible (or destructible)

解释

指示平台类型是否不可摧毁。每次命中将根据以下公式更新生存概率:

Ps(new)=Ps(old)×(1-Pk)

默认值:可摧毁(destructible)。

命令

on_broken [ remove | disable | disabled_but_movable ]

解释

指示当平台被破坏时应执行的操作。

指定 remove 时,平台被破坏后将从仿真中移除。

指定 disable 时,平台被破坏后将留在仿真中,平台的运动将停止,所有子系统将被设置为“非操作状态”且无法重新开启。脚本方法 WsfPlatform.DamageFactor 将返回 1.0。

指定 disabled_but_movable 时,平台被破坏后将留在仿真中,平台的运动将继续。一些移动器可能会因破坏状态而影响运动,如减速和失控。所有子系统将被设置为“非操作状态”且无法重新开启。脚本方法 WsfPlatform.DamageFactor 将返回 1.0。

默认值:remove。

命令

spatial_domain [ land | air | subsurface | surface | space ]

解释

指示平台主要操作的空间域。这有时用于分类对象是“陆地”对象、“空间”对象等。

默认值:如果平台有移动器,则默认值由移动器的类型推断(例如,对于 WSF_AIR_MOVER,默认值为“air”)。如果平台没有移动器,则默认值为“land”。

命令

acoustic_signature <string-reference>

解释

指定此平台类型的声学特征定义。特征类型必须已通过 acoustic_signature 定义。

默认值:无。

参考:4.4.1声学特性acoustic_signature

命令

infrared_signature <string-reference>

解释

指定此平台类型的红外特征定义。特征类型必须已通过 infrared_signature 定义。

默认值:无。

参考:4.4.2红外特性infrared_signature

命令

optical_reflectivity <string-reference>

解释

指定此平台类型的光学反射率定义。特征类型必须已通过 optical_reflectivity 定义。

默认值:无。

参考:4.4.3光学反射率optical_reflectivity

命令

optical_signature <string-reference>

解释

指定此平台类型的光学特征定义。特征类型必须已通过 optical_signature 定义。

默认值:无。

参考:4.4.4光学特性optical_signature

命令

radar_signature <string-reference>

解释

指定此平台类型的雷达特征定义。特征类型必须已通过 radar_signature 定义。

默认值:无。

命令

geo_point <geo-point-name> <latitude-value> <longitude-value> <length-value>

解释

用纬度、经度、高度元组定义一个命名位置。该位置可以通过 WsfPlatform.GeoPoint 脚本方法访问。

命令

position <latitude-value> <longitude-value>

解释

指定平台的纬度和经度。此命令仅适用于没有移动器的静态平台。

默认值:0n 0e。

命令

nutation_update_interval <time-value>

解释

指定用于 WCS-ECI 坐标转换的章动计算更新间隔时间。

默认值:1000 秒。

命令

precession_nutation_update_interval <time-value>

解释

指定用于 WCS-ECI 坐标转换的章动计算更新间隔时间。

默认值:1000 秒。2.9以后该命令被nutation_update_interval代替。

命令

mgrs_coordinate <MGRS-value>

解释

指定平台在军事网格参考系统中的坐标。此命令仅适用于没有移动器的静态平台。

命令

altitude <length-value> [ agl | msl ]

解释

指定平台的高度。此命令仅适用于没有移动器的静态平台。如果在平台中定义了移动器,则忽略此命令。

默认值:0 米 msl。

命令

creation_time <random-time-reference>

解释

指定平台在仿真中添加的时间。平台存在于内存中但尚未成为仿真中的参与者。

默认值:0 秒(在仿真开始时创建)。

命令

heading <angle-value>

解释

指定平台的朝向。此命令仅适用于没有移动器的静态平台。如果在平台中定义了移动器,则忽略此命令。

默认值:0 度。

命令

empty_mass <mass-reference>

解释

指定平台的空重,通常是一个固定值。

默认值:0 公斤。

命令

fuel_mass <mass-reference>

解释

指定平台的燃料质量。当用户在输入文件中指定时,该值假定为固定值。然而,如果平台包含燃料对象,则在运行时允许且预期会修改燃料质量,覆盖用此关键字指定的值。

默认值:0 公斤。

命令

payload_mass <mass-reference>

解释

指定平台的载荷质量。当用户在输入文件中指定时,该值假定为固定值。然而,某些运行时事件(例如投放浮标)可能会改变载荷质量。

默认值:0 公斤。

命令

concealment_factor <concealment-factor>

解释

用于表示平台的视觉隐蔽程度。值为 0.0 表示没有隐蔽。值为 1.0 表示完全隐藏(例如在建筑物内或地下掩体中)。介于这两个端点之间的值表示增加的伪装程度。大多数传感器不会检测到隐蔽因子为 1.0 的平台,但任何较小的值都没有效果。

默认值:0.0。

命令

initial_damage_factor <initial_damage_factor>

解释

损伤因子是 [0 .. 1] 范围内的值,用于表示平台的损伤程度。值为 0 表示没有损伤,而值为 1 表示平台“破损”。

默认值:0.0。

命令

track_manager track_manager

#Commands track-manager-commands … end_track_manager

解释

此块中的命令由平台的主跟踪管理器处理。请参阅 track_manager。

参考:4.5跟踪管理器track_manager

命令

aux_data <aux-data> … end_aux_data

解释

定义平台的辅助数据。请参阅 aux_data。

参考:4.6辅助数据aux_data

命令

height <length-reference> length <length-reference> width <length-reference>

解释

指定平台的尺寸。

默认值:所有值均为 0。

命令

category <category-name>

解释

指定平台属于指定类别。类别可用于强制传感器忽略平台。类别也可以通过 WsfPlatform.CategoryMemberOf 脚本方法访问。

默认值:平台不属于任何类别。

命令

clear_categories

解释

取消任何先前的 category 命令。

命令

group_join <group-name>

解释

group_leave <group-name> 将平台加入或移出指定组。

命令

commander <commander-name>

command_chain <command-chain-name> <commander-name>

解释

commander 指定平台在默认指挥链中的直接上级(指挥官)。默认指挥官是自己。

command_chain 指定平台在给定指挥链中的直接上级(指挥官)。

指挥链由决策程序使用,以确定命令和/或报告的接收者。

参考:4.7指挥链Command Chains

命令

route route-commands … end_route

解释

route 子命令提供一组定义路径或路线的航点,用于平台移动器。

参考:4.8.1路由route

命令

add_mover <mover-type> mover-commands … end_mover

mover <mover-type> mover-commands … end_mover

解释

移动器定义平台可以移动的域及其在域内的移动方式。

参考:3.6运动组件Mover

命令

fuel <fuel-type> fuel-commands .. end_fuel

解释

燃料对象可以附加到平台上以模拟燃料消耗的影响。

默认值:未定义燃料对象(不模拟燃料消耗)。

参考:3.7燃料组件fuel

命令

<component> <component-name> [<component-type>] component-commands … end_<component>

add <component> <component-name> <component-type> component-commands … end_<component> edit <component> <component-name> component-commands … end_<component> delete <component> <component-name>

解释

向平台添加组件,修改或移除现有组件。

参考:3组件Platform Part。

命令

track … end_track

解释

track块中定义的目标会一直被跟踪,无论传感器有没有探测到,相当于定义了个初始跟踪物体,只要没有明确停止跟踪,则会一直跟踪和更新其信息。可以定义多个track。

参见:4.5.5跟踪器track

命令

use_zone <shared-zone-type> as <zone-name>

解释

将指定区域的副本附加到平台上,并命名为 <zone-name>。如果指定的区域没有定义姿态,则复制的区域使用平台的当前姿态。此命令可以根据需要重复使用。

use_zone:这个命令用于将一个预定义的区域(zone)的副本附加到平台上,并为这个副本指定一个新的名称。如果预定义的区域没有指定姿态(pose),那么这个副本将使用平台当前的姿态。这对于在仿真中管理和复用区域非常有用。

命令

zone … end_zone

zone_set … end_zone_set

解释

zone 和 zone_set 子命令定义了:

与平台姿态对齐的相对区域。

保持静态姿态的相对区域。

保持静态姿态的绝对区域。

请参阅 zone 和 zone_set 以了解影响仿真行为的子命令。

zone 和 zone_set:这些命令用于定义区域。区域可以是相对的(与平台姿态对齐或保持静态姿态)或绝对的(保持静态姿态)。这些区域可以用于模拟不同的行为和环境条件。

参考:4.9区域和区域集

命令

navigation_errors … end_navigation_errors

解释

navigation_errors 块提供了一种方法,用于定义平台认为其位置与实际位置之间的误差。请参阅 navigation_errors 以了解输入的描述。

navigation_errors:这个块允许定义平台的导航误差,即平台认为自己所在的位置与实际位置之间的差异。这对于模拟导航系统的精度和误差非常重要。

默认值:无导航误差。

参考:4.10导航误差navigation_errors

命令

weapon_effects <string-reference>

weapon_effects_type <string-reference>

解释

这些命令用于指定平台的武器效果。武器效果定义了武器在使用时的各种效果,如爆炸、火焰等。这些效果通常在平台是 WSF_EXPLICIT_WEAPON 类型时使用,这意味着平台本身就是一个明确的武器系统。

参考:3.8.6武器效能模型weapon effects

命令

sensor <sensor-type> sensor-commands … end_sensor

解释

指定平台传感器效果。可以添加多个传感器。

参考:▪3.53.5传感器组件sensor

命令

processor <name><base-type> processor-commands … end_processor

解释

指定平台处理器效果。可以添加多个处理器。

平台脚本使用4.1公共脚本接口Common Script Interface的基本功能,而后扩展了自己个性化的脚本如下:

脚本

script void on_damage_received() ... end_script

功能

这是一个可选脚本,可以定义在平台受到伤害时接管控制。

这个脚本通常与 indestructible 或 on_broken 命令一起使用。通常,当平台受到伤害时,如果确定该伤害导致平台破损,平台将从仿真中移除。如果指定了 indestructible、on_broken disable 或 on_broken disabled_but_movable,平台将不会被删除,而是增加损伤因子(DamageFactor),并调用此脚本。脚本可以执行停止移动、关闭传感器、更改外观等操作。

注意:如果指定了 on_broken disable,平台的运动将停止,所有子系统将被设置为非操作状态,无需额外干预。如果指定了 on_broken disabled_but_movable,平台的运动将继续,但所有子系统将被设置为非操作状态,无需额外干预。

脚本

script void on_platform_deleted() ... end_script

功能

这是一个可选脚本,可以定义在平台从仿真中移除之前接管控制。

脚本

script void on_commander_deleted(WsfPlatform aCommander) ... end_script

功能

这是一个可选脚本,可以定义在平台的指挥链层级中的其他平台从仿真中移除之前执行。脚本的唯一参数是待移除平台的引用。

脚本

script void on_peer_deleted(WsfPlatform aPeer) ... end_script

功能

这是一个可选脚本,可以定义在平台的指挥链层级中的其他平台从仿真中移除之前执行。脚本的唯一参数是待移除平台的引用。

脚本

script void on_subordinate_deleted(WsfPlatform aSubordinate) ... end_script

功能

这是一个可选脚本,可以定义在平台的指挥链层级中的其他平台从仿真中移除之前执行。脚本的唯一参数是待移除平台的引用。

脚本

callback <callback-name> <callback-type> callback-commands end_callback

功能

回调是一个命名的动作,可以通过路线的 execute 命令在平台到达路线中的特定航点时调用。

注意:这是一个已过时的形式,已被脚本取代。