1 简介
- AFSIM的运动组件
mover定义了平台可以移动的域以及平台在该域内如何移动。 - 语法
-
mover MoverTypes end_mover
-
mover组件的公共命令有以下两个- update_interval:如果非零,指定模拟将调用 Mover 的周期时间间隔。如果为零,则仅在需要确定包含平台的位置时调用 Mover。默认值:0 秒。
- update_time_tolerance: 当模拟请求位置更新时,如果自上次更新以来的时间小于或等于此值,则 Mover 将忽略更新。默认值:大多数 Mover 实现将其定义为以某个适当的名义速度行驶 1 米所需的时间。
2 Mover的类型
2.1 路线类型
- 这些 Mover 是简化的 Mover,可以定义带有航点的路线,以便它们在模拟期间从一个位置移动到另一个位置。平台上的限制定义了它们的移动。平台移动基于数学计算,而不一定是平台的空气动力学或质量属性。
2.1.1 WSF_AIR_MOVER:空中运动模型。
- WSF_AIR_MOVER是一种为简化空中载具运动而设计的路线Mover。使用WSF_AIR_MOVER的优点在于,无需了解平台的质量属性、空气动力学或推进系统即可模拟空体运动。
- 运动基于为各种参数(如线性加速度、速度、G力、径向加速度)设置的最大限制,但仅适用于水平面的连续运动。WSF_AIR_MOVER的限制在于平台的垂直过渡(高度变化)。这些过渡是不连续的,因为不对过渡的垂直俯仰率和垂直加速度进行建模。
- 如果希望平台具有连续和平滑的垂直和水平过渡,请使用WSF_KINEMATIC_MOVER(如果不需要空气动力学、质量属性、推进或高度效应)或WSF_P6DOF_MOVER(如果需要真实的基于物理的建模)。
2.1.2 WSF_MATH_3D_MOVER:低保真空中运动模型。
- WSF_MATH_3D_MOVER是一种低保真度的空中移动器,类似于WSF_AIR_MOVER。然而,WSF_AIR_MOVER在结合横向和垂直机动时发现运动不平滑,因此需要这种替代方案。
- 其底层动力学模型本质上是一个四元数方向,仅允许在惯性空间中以受限的角速度旋转,速度矢量则指向该四元数的“前方”方向。没有建模空气动力学或推进力,这允许在横向和垂直方向上进行平滑转弯。加速度的大小由内部追踪和比例导航增益决定,三维空间中的目标点由路线移动器的航路点切换逻辑确定。
- 特点
- 平滑运动:通过使用四元数方向和受限的角速度旋转,实现横向和垂直方向的平滑转弯。
- 无空气动力学或推进力建模:仅依赖于内部追踪和比例导航增益来确定加速度。
- 航路点响应:响应纬度、经度和海平面高度(MSL)的航路点,并遵循速度命令。
- 忽略其他命令:忽略航向、距离、时间、爬升率、飞行路径角和加速度命令。
2.1.3 WSF_GROUND_MOVER:地面运动模型
- 实现一个用于地形跟踪地面vehicle的移动器。WSF_GROUND_MOVER是一个路线移动器。
2.1.4 WSF_KINEMATIC_MOVER:运动学模型
- 当放置在平台上时,WSF_KINEMATIC_MOVER 提供水平和垂直方向的平稳运动。与WSF_AIR_MOVER 不同,模型化了垂直加速度;高度和方向的过渡是动态且同时进行的。类似于WSF_AIR_MOVER,不需要已知任何空气动力学、质量属性或推进力特性即可使用此移动器。此外,平台的飞行特性不受使用此移动器定义的飞行高度变化的影响(无空气密度变化效应)
2.1.5 WSF_ROAD_MOVER:道路运动模型
- WSF_ROAD_MOVER是WSF_GROUND_MOVER的一种专门化,它在道路网络上移动。它计算起点和终点之间的最短路径,并将其用作路径点路径。可以设置暂停时间来偏移移动器的开始时间。此外,可以设置一个标志(use_closest_waypoint),使移动器根据用户指定的起点和终点位置的最近路径点来绘制最短路径。
2.1.6 WSF_ROTORCRAFT_MOVE:旋翼机动模型
- WSF_ROTORCRAFT_MOVER是一种用于模拟旋翼机运动特性的路线移动器。它允许将期
望的平台航向(机身指向方向)与速度矢量解耦。 - 在低速时,平台可以假设任何期望的航向,而不管移动方向,但在高速时,航向将假设为飞行方向。脚本命令假设期望的方向或航向(机身指向方向)作为请求,但可能不会立即被执行。移动器将保持期望的航向角,并在减速到低于风标速度时再次假设期望的航向。在横向加速或转弯时,平台旋翼平面的方向在北东下框架中倾斜到加速度矢量的方向,但在巡航条件下是水平的
2.1.7 WSF_SURFACE_MOVER:海上移动模型
- WSF_SURFACE_MOVER实现了一个移动器,用于在水面上移动的平台(例如,船只)。这个移动器类似于WSF_GROUND_MOVER;然而,俯仰和横滚默认设置为零。未来可能会增加一个可选的海况选项,以修改相关平台的俯仰、横滚和高度。
2.1.8 WSF_SUBSURFACE_MOVER:水下运动模型
- WSF_SUBSURFACE_MOVER实现了用于潜水器的移动器。WSF_SUBSURFACE_MOVER是
一种路径移动器,能够根据指定的路径和参数进行移动。
2.2 跟随类型
- 这些移动器“附加”到路线类型移动器上,用于使平台实例“跟随”其他平台。
2.2.1 WSF_HYBRID_MOVER:混合跟踪运动模型
- WSF_HYBRID_MOVER是一种专门的移动器,整合了WsfFollower移动器和WsfWaypointMover移动器的功能。
2.2.2 WSF_OFFSET_MOVER:保持偏移运动模型
- WSF_OFFSET_MOVER实现了一个移动器,使平台保持在指定的领航平台的预定偏移位置。平台可以“刚性”或“系绳”附加。
2.3 军事类型
2.3.1 WSF_ARGO8_MOVER:空空导弹运动模型
- WSF_ARGO8_MOVER 提供了用于 TMAPARGO 导弹模型对象的移动器。该移动器使用
Brawler 的 ARGO 接口作为其基础。
2.3.2 WSF_BRAWLER_MOVER:Brawler空战运动模型
- WSF_BRAWLER_MOVER是BRAWLER中AROTYP1移动器模型的精确复制。BRAWLER像是一个专业的飞行空战战术仿真工具。它设计用于加载BRAWLER飞机定义文件(仅关注空气动力学和物理块),以指定其飞行能力。
- WSF_BRAWLER_MOVER还配备了执行大多数常规移动器命令的能力,例如GoToLocation()、TurnToHeading()、GoToAltitude()、GoToSpeed()、FollowRoute()、ReturnToRoute()。WSF_BRAWLER_MOVER也可以飞行路线,但它会忽略路线中定义的任何加速或转向要求,以便在飞行时使用其自身的逻辑。
- 实际上,WSF_BRAWLER_MOVER保证遵守的唯一路线命令是“位置”、“高度”、“速度”和“爬升率”(如果提供)。当WSF_BRAWLER_MOVER到达路线的终点时,其默认行为是返回起点并再次飞行该路线。
2.3.3 WSF_FIRES_MOVER:炮弹运动模型
- WSF_FIRES_MOVER提供沿弹道轨迹的运动,假设一阶阻力(阻力与速度的一次方成正比)。由此产生的轨迹是确定性的,并以单一参数为特征。这种简单性使得可以轻松地以现实的撞击时间击中某个位置或目标。然而,这些轨迹不如使用完整空气动力学、发射表和数值积分计算的轨迹那么现实。该移动器最常用于火箭、火炮或迫击炮平台定义,从配置了WSF_FIRES_LAUNCH_COMPUTER和相关fires_tables的发射器发射。
2.3.4 WSF_FORMATION_FLYER:编队飞行模型
- WSF_FORMATION_FLYER是一个用于模拟编队飞行的移动器。它允许多个飞行器以编队形式飞行,并且可以根据领队飞行器的位置和运动进行调整。该移动器支持多种命令来控制编队飞行的行为和参数。
2.3.5 WSF_GUIDED_MOVER:制导运动模型
- WSF_GUIDED_MOVER 实现了一个能够代表制导滑翔炸弹或单级或多级制导导弹或火箭的移动器,具有中等程度的保真度。
2.3.6 WSF_OLD_GUIDED_MOVER:旧制导运动模型
- WSF_OLD_GUIDED_MOVER实现了一个能够代表制导滑翔炸弹或单级或多级制导导弹的移动器。
2.3.7 WSF_PARABOLIC_MOVER:简单抛物线弹道运动模型
- WSF_PARABOLIC_MOVER 类近似模拟弹道轨迹。
2.3.8 WSF_STRAIGHT_LINE_MOVER:简单直线运动模型
- WSF_STRAIGHT_LINE_MOVER实现了一个用于WSF_EXPLICIT_WEAPON的移动器,该移动器从发射点沿(或多或少)直线飞行以拦截目标轨迹。
- 用户无需指定武器的质量属性、推进或空气动力学表,但会因此损失一定的保真度。目标轨迹必须由某种WsfSensor或WsfProcessor类型提供,这些类型通过其WsfTrackManager填充WsfPlatform上的当前目标。该移动器将实现恒定的平均速度,或根据飞行时间线性插值的速度表。用户还可以选择指定最大横向过载限制,以限制任何初始或最终机动加速度的大小。
2.3.9 WSF_TBM_MOVER:多级弹道导弹运动模型
- WSF_TBM_MOVER 实现了一个能够以简化格式表示单级或多级战术弹道导弹的移动实体。使用 WSF_TBM_MOVER 时,弹道轨迹往往会达到极高的高度,因为燃料会完全燃烧。
- 注意,如果需要更高精度的弹道导弹(例如在弹道导弹拦截的情况下),强烈推荐使用WSF_GUIDED_MOVER。
2.3.10 WSF_TOWED_MOVER:牵引运动模型
- WSF_TOWED_MOVER 实现了一个由前导平台牵引的移动实体。只要被部署,牵引平台就会跟随前导平台的路径。
2.3.11 WSF_UNGUIDED_MOVER:非制导运动模型
- WSF_UNGUIDED_MOVER 实现了一个能够表示未制导的“哑弹”或单级或多级未制导火箭的移动实体。此移动实体继承自 WSF_GUIDED_MOVER 并接受其定义的相同命令。
- 此移动实体缺乏产生侧向力以机动拦截目标的能力,其“制导”功能默认情况下被禁用,且无法重新启用,导致其在推进(如果有的话)燃烧完后轨迹为弹道轨迹。
2.3.12 WSF_NEW_UNGUIDED_MOVER:新非制导运动模型
- 同WSF_UNGUIDED_MOVER
2.3.13 WSF_OLD_UNGUIDED_MOVER:旧的非制导运动模型
- WSF_OLD_UNGUIDED_MOVER 实现了一个能够代表无制导“哑弹”或单级或多级无制导火箭的移动器。它将接受与 WSF_OLD_GUIDED_MOVER 相关的相同命令。
- 此移动器缺乏产生侧向力以拦截目标的能力,其“制导”功能默认被禁用,且无法重新启用,这导致其在推进(如果有的话)燃烧完毕后,轨迹为弹道轨迹。
2.4 卫星轨道类型
2.4.1 WSF_SPACE_MOVER:通用空间运动模型
- WSF_SPACE_MOVER实现了一个用于地球轨道平台的移动实体。它对于建模概念卫星和卫星星座,以及提供现有卫星的理想化表示非常有用。
2.4.2 WSF_NORAD_SPACE_MOVER:NORAD空间运动模型
- WSF_NORAD_SPACE_MOVER实现了一个用于地球轨道平台的移动器。它对于建模那些有两行元素(TLE)集可用的卫星非常有用,包括大多数在轨运行的地球卫星、非运行卫星和被积极跟踪的轨道碎片。
2.4.3 WSF_INTEGRATING_SPACE_MOVER:数值积分空间运动模型
- WSF_INTEGRATING_SPACE_MOVER实现了一个用于空间域平台的移动器。不同于WSF_SPACE_MOVER或WSF_NORAD_SPACE_MOVER使用解析模型来提供平台的未来状态,WSF_INTEGRATING_SPACE_MOVER使用数值积分。通过使用用户指定的动态模型,该移动器不仅限于那两个移动器感兴趣的情况,即地球在动力学中起主导作用的传播。
3 运动示例
- 接下来通过一个示例,演示AFSIM中平台的运动。
- 首先创建几个平台类型,包含轰炸机、坦克、舰船、卫星等。在平台类型中设置运动组件。
- 轰炸机的运动类型可以设置为
WSF_AIR_MOVER-
platform_type BOMBER WSF_PLATFORM icon bomber mover WSF_AIR_MOVER end_mover end_platform_type
-
- 船舶的运动类型可以设置为
WSF_SURFACE_MOVER-
platform_type SHIP WSF_PLATFORM icon carrier mover WSF_SURFACE_MOVER end_mover end_platform_type
-
- 卫星的运动类型设置为
WSF_SPACE_MOVER-
platform_type SATELLITE WSF_PLATFORM icon satellite mover WSF_SPACE_MOVER end_mover end_platform_type
-
- 坦克的运动类型设置为
WSF_GROUND_MOVER-
platform_type TANK WSF_PLATFORM icon tank mover WSF_GROUND_MOVER end_mover end_platform_type
-
- 接下来根据平台类型创建不同的平台,如何创建可参考上篇文章。
- 在场景中选择要创建的平台右击,然后选择Route->Create Route on bomber_1
- 先给轰炸机创建路线
- 右边会出现一个路线游览菜单栏,选择Edit Route
- 接下来会弹出一个添加路线的对话框,点击如下图标。
- 点击后,鼠标会变为十字符号,然后在场景中依次点击轰炸机要经过的路线。设置完成后点确定。
- 设置完成后,在脚本中会自动生成代码,包含速度和每一个点的经度纬度高度等信息。
- 接下来在给船舶创建路线,同样的方法进行创建
- 路线的脚本代码可以作如下修改
- 再点击编辑船舶的路线
- 点击第5个点,goto到第0个点,就形成了一个闭合的运动路线。
- 同样的方法可以给坦克和卫星创建运动。
- 创建完成后选择worlock运行
- 可以看到,不同平台根据我们设定的路线在运动
- 在Platform Options面板中,勾选Trace lines可以看到平台运动的轨迹,勾选Routes可以看到完整路线。
- 打开Options->Preferences
- 在此处可以设置轨迹线的宽度等信息。
4 脚本
- 完成代码如下
- 平台运动脚本代码














1万+

被折叠的 条评论
为什么被折叠?



