WSF_AIR_MOVER

mover WSF_AIR_MOVER
mover WSF_AIR_MOVER

   Platform Part Commands

   // Mover Commands

   update_interval
   update_time_tolerance

   // Route Mover Commands

   altitude_offset
   at_end_of_path
   draw_route
   on_turn_failure
   pathfinder
   print_route
   start_at
   start_time
   switch_on_approach
   switch_on_passing
   turn_failure_threshold
   use_route

   // Waypoint Mover Commands

   angle_of_attack_table
   altitude
   speed
   angle
   bank_angle_limit
   body_g_limit
   heading_pursuit_gain
   maximum_climb_rate
   maximum_flight_path_angle
   maximum_linear_acceleration
   maximum_radial_acceleration
   maximum_altitude
   minimum_altitude
   maximum_speed
   minimum_speed
   path_variance_radius
   roll_rate_limit
   speed_variance_percent
   turn_rate_limit
   pitch_disable
   no_pitch
   on_road
   off_road
   path_compute_timestep

   // Air Mover Commands

   maximum_impact_speed

end_mover

Overview

WSF_AIR_MOVER is a Route Mover designed for simplified air vehicle motion. The advantage of using the WSF_AIR_MOVER is that a platform’s mass properties, aero, or propulsion is not required to be known to model an air body. Movement is based on maximum limits set for items (e.g., linear acceleration, velocity, Gs, radial acceleration), but it applies only to the continuous motion in the horizontal plane. The limitation of the WSF_AIR_MOVER is within the vertical transitions (altitude changes) of the platform. These transitions are discontinuous in that the effects are instantaneous because transitional vertical pitch rates and vertical accelerations are not modeled. If continuous and smooth vertical and horizontal transitions are desired on a platform, use the WSF_KINEMATIC_MOVER (if no aerodynamics, mass properties, propulsion, or altitude effects are desired) or the WSF_P6DOF_MOVER (if realistic, physics-based modeling is desired).

Mover Commands

update_interval <time-value>

If non-zero, specifies a periodic time interval at which the simulation will call the mover. If zero then the mover will be called only when it is necessary to determine the position of the containing platform.

Default: 0 seconds unless overridden by the specific mover implementation.

update_time_tolerance <time-value>

When a position update is requested by the simulation, if the time since the previous update is less than or equal to this value then the mover will ignore the update.

Default: Most mover implementations define this as the time it takes to travel 1 meter at some nominal velocity that is appropriate for the implementation.

Note

A mover implementation may choose to ignore this command.

Route Mover Commands

altitude_offset <length-value>

When set, this offset will offset the parent platform’s location by the given amount from the current waypoint’s altitude.

at_end_of_path [extrapolate | stop | remove]

Specify the action to take when the mover reaches the end of its defined path.

  • extrapolate: continue moving along at the last known heading, speed, and altitude.

  • stop: stop moving, but leave the platform in the simulation.

  • remove: remove the platform from the simulation.

Default Extrapolate

draw_route <boolean-value>

This command is the same as print_route, except the route text is not printed, only drawn with WsfDraw.

on_turn_failure [best_effort | reverse_turn | ignore_point]

Defines the behavior of the mover when a point on a route cannot be reached exactly due to the turn radius.

best_effort:

Turns until the platform reaches the point of closest approach to the point.

ignore_point:

The mover operates effectively as if the point is not there. Any script tied to this point will be executed when the point is skipped.

reverse_turn:

The mover will turn the opposite direction, enabling it to reach the point exactly.

Note

This command has no effect if the mover is given routes that fit within the mover’s constraints

Note

Also see turn_failure_threshold.

Default best_effort

pathfinder <path-name>

The name of the pathfinder object to use.

print_route <boolean-value>

When enabled, the route is printed to the screen whenever it is modified. Additionally, WsfDraw is used to output a visual of the route, which can be viewed with many visualization tools.

start_at <label-name>

The label identifying the waypoint in the route to use as the starting location.

start_time <random-time-reference>

Indicates the platform is to start moving at the time specified. The current velocity is set to zero and once the simulation time is reached, the platform starts moving at the speed specified in the first waypoint. If an elapse time is desired at a waypoint, use the subcommand pause_time.

switch_on_approach

Switches to the next waypoint when approaching within one turn radius of the current target waypoint.

switch_on_passing

Switches to the next waypoint only when abreast of the current target waypoint.

Note

This is the default.

turn_failure_threshold <ratio-value>

Defines the threshold for which the on_turn_failure behavior is triggered, given as a ratio of the turn radius. For example, a turn_failure_threshold of 0.01 and a turn radius of 1000 meters, on_turn_failure logic would be triggered if the point is missed by more than 10 meters.

Default 0.01

use_route <route-name>

Supplies the name of the route to follow. The route is assumed to be a predefined absolute route.

Waypoint Mover Commands

angle_of_attack_table … end_angle_of_attack_table
angle_of_attack_table
altitude <altitude-value>

speed <speed-value> angle <angle-value> speed <speed-value> angle <angle-value>

altitude <altitude-value>

angle <angle-value>

end_angle_of_attack_table

altitude <altitude-value>

Specifies the altitude that the subsequent data is valid for. The altitude blocks must be in increasing numerical order. Linear interpolation of the altitude blocks is used.

speed <speed-value>

Specifies the speed that the listed angle of attack is valid for. The speed entries must be in increasing numerical order. The angle of attack will be computed using a linear interpolation of the speed data.

angle <angle-value>

The angle of attack. The angle of attack entries must be in increasing numerical order.

bank_angle_limit <angle-value>

The roll angle limit. Value must be between 0 degrees to 85 degrees. Used to calculate the maximum radial acceleration.

Default 0

body_g_limit <acceleration-value>

The body g-limit. Value must be greater than the acceleration of earth’s gravity.

heading_pursuit_gain <double-value>

The heading pursuit gain.

Default 5

maximum_climb_rate <speed-value>

Specifies the maximum climb rate and dive rate used when changing altitude. Other climb rates specified by waypoints or scripts are bounded by this value.

Note

The actual climb rate of the mover will also be affected by ‘maximum_flight_path_angle’

maximum_flight_path_angle <angle-value>

Specifies maximum flight path angle (angle of climb/dive). Value must be greater than or equal to 0.

Note

The actual climb rate of the mover will also be affected by ‘maximum_climb_rate’

Default 0

maximum_linear_acceleration <acceleration-value>

Specifies the maximum linear acceleration to use when acceleration is necessary. This value is used if the waypoint does not include a linear _acceleration specification.

Default 6 g’s

maximum_radial_acceleration <acceleration-value>

Specifies the maximum radial acceleration to use when turning. This value is used if the waypoint does not include a radial_acceleration specification.

Default 6 g’s

Note:

The radial acceleration is NOT the load factor for the aircraft. For example, if one desires a maximum load factor of n = 2 for a 2g turn, then the radial acceleration for a desired 2g turn limit would need to be set = g * sqrt(n^2 -1) = 1.732g.

maximum_altitude <altitude-value>

Maximum altitude constraint.

minimum_altitude <altitude-value>

Minimum altitude constraint.

maximum_speed <speed-value>

Maximum speed constraint. Value must be greater than 0.

minimum_speed <speed-value>

Minimum speed constraint. Value must be greater than or equal to 0.

Default 0.0

path_variance_radius <length-value>

This value will randomly vary the location of the waypoint within the radius given. A random bearing and distance are chosen and applied to the next waypoint when calculating the path.

roll_rate_limit <angle-rate-value>

The roll rate limit. Value must be greater than 0. Note: When applied to a WSF_AIR_MOVER or other waypoint mover types, the roll rate will not affect the platform’s movement along a route. To affect route following behavior use maximum_radial_acceleration.

speed_variance_percent <percent-value>

This value will randomly vary the speed at each waypoint as the mover travels within +/- the pct given. Value must be greater than 0.

turn_rate_limit <angle-rate-value>

The turn rate limit. Value must be greater than 0.

pitch_disable
no_pitch

Restricts the mover from pitching the platform. This has no effect on kinematics.

on_road

Restricts the mover from rolling the platform. This has no effect on kinematics.

off_road

Turns off the ‘on_road’ option. This allows the platform to roll.

path_compute_timestep <time-value>

Waypoint movers precompute movement along paths. This behavior forces turns to have a constant radius. If path_compute_timestep is specified as a positive value, the turn rate will update on that interval if any changes in speed occur.

Default 0.0

Note about maximum and default commands

Movers have various commands that specify a maximum value such as maximum_linear_acceleration. These commands specify an overall limit to movement which will not be exceeded over the course of a simulation. There are a few default commands, such as default_linear_acceleration. These commands specify a rate to use unless otherwise specified in a route or script. These parameters may be omitted, leaving the mover to use the maximum rates by default. Rates may be modified during the simulation through routes, such as with the linear_acceleration command, or through scripts, such as the GoToSpeed() method. Rates remain the same until changed by another script or route. Routes provide a mechanism to return to a default rate, such as using the linear_acceleration default command.

Air Mover Commands

maximum_impact_speed <speed-value>

Specify the maximum speed above which the associated platform intersects terrain and is considered ‘crashed into the ground’. A crashed platform will notify observers via the WsfSimulationObserver::CrashedIntoGround() method and remove itself from the simulation. If impact speed is below this maximum, the platform is considered to be ‘landing’. The default behavior is to always land, rather than crash.