Engee documentation

EngeePhased.Platform

Page in progress.

Platform movement.

Library

EngeePhased

Block

Motion Platform

Description

System object EngeePhased.Platform simulates the forward movement of one or more platforms in space. The platform can be a target, for example, a car or an airplane, as well as a sonar or radar transmitter and receiver. The model assumes that the platform is moving forward at a constant speed or constant acceleration at each step of the simulation. Positions and speeds are always set in the global coordinate system.

To simulate a moving platform, follow these steps:

  1. Create an object EngeePhased.Platform and set its properties.

  2. Call the object with arguments as if it were a function.

To learn more about how to work with system objects, see Engee System Objects.

Syntax

Creation

  • sPlat = phased.Platform() — creates a moving platform object with default property values.

  • sPlat = phased.Platform(Name=Value) — creates a moving platform object with the specified properties as a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

Using

  • Pos,Vel = sPlat(T) — Returns the current position Pos and speed Vel of the platform. Then it updates the position and speed. When for a property MotionModel value set "Velocity", and for the property VelocitySource — value "Property", the position is updated according to the equation Pos = Pos + Vel * T, where T is the elapsed time (in seconds) for the current step. When for a property MotionModel value set "Acceleration", and for the property AccelerationSource — value "Property", the position and velocity are updated according to the equation Pos = Pos + Vel * T + 1/2 Acl * T^2 and Vel = Vel + Acl * T, where T is the elapsed time (in seconds) for the current step.

  • Pos,Vel = sPlat(T,V) — Returns the current position Pos and speed Vel of the platform. The position is updated according to the equation Pos = Pos + Vel * T, where T is the elapsed time (in seconds) for the current step. This syntax applies if for a property MotionModel value set "Velocity", and for the property VelocitySource — value "Input port".

  • Pos,Vel = sPlat(T,A) — returns the current position Pos and speed Vel of the platform. The position is updated according to the equation Pos = Pos + Vel * T + 1/2 Acl * T^2 and Vel = Vel + Acl * T, where T is the elapsed time (in seconds) for the current step. This syntax applies if for the property MotionModel value set "Acceleration", and for the property AccelerationSource — value "Input port".

  • Pos,Vel,Laxes = sPlat(_) — also returns the directions of the orientation axes of the platform Laxes. This syntax applies if for a property OrientationAxesOutputPort value set true.

Arguments

Input arguments

T — time step

+ scalar

Details

The time step, set as a real scalar.

The units of measurement are seconds.

V — platform speed

+ the real matrix is 3 by N

Details

The speed of the platform, set as a real matrix on , where — the number of simulated platforms.

The units of measurement are meters per second.

Dependencies

To use this argument, set the property to MotionModel value "Velocity", and for the property VelocitySource — value "Input port".

A — platform acceleration

+ the real matrix is 3 by N

Details

Acceleration of the platform, specified as a real matrix on , where — the number of simulated platforms.

The units of measurement are meters per second.

Dependencies

To use this argument, set the property to MotionModel value "Acceleration", and for the property AccelerationSource — value "Input port".

Output arguments

Pos — current position of the platform

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The current position of the platform, returned as a real column vector. on in the form of [x, y, z] or a real matrix of size on , where — the number of simulated platforms. Each column has the form [x, y, z]. The units of measurement are meters.

Vel — current platform speed

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The current speed of the platform, returned as a real column vector with the size on in the form of [vx, vy, vz] or a real matrix of size on , where — the number of simulated platforms. Each column has the form [vx, vy, vz]. The units of measurement are m/s.

Laxes — axes of platform orientation

+ the real array is 3 by 3 by N

Details

The current orientation axes of the platform, returned as a real array on on , where N is the number of simulated platforms. Each submatrix on is an orthonormal matrix.

The current axes of the platform rotate around the vector normal to the trajectory of the platform.

Dependencies

To use this argument, set the property to OrientationAxesOutputPort value true.

Features

# MotionModel — the object’s motion model
String

Details

The object’s motion model, set as "Velocity" (by default), "Acceleration" or "Custom":

  • "Velocity" — the platform moves along the trajectory at a constant speed at each step of the simulation.

  • "Acceleration" — the platform moves along a trajectory with constant acceleration at each step of the simulation.

  • "Custom" — the movement of the platform occurs according to the sequence of points of the motion trajectory specified by the parameter [Property:customtrajector]. To obtain the position and velocity at each time step, the object performs piecewise cubic interpolation along the points of the trajectory.

# InitialPosition — the initial position of the platform
Vector / matrix of real numbers

Details

The initial position of the platform in meters, set as a matrix on , where each column represents the initial position of the platform in the form [x, y, z]. Number — number of platforms.

Default value — [0.0, 0.0, 0.0].

# OrientationAxesOutputPort — output of orientation axes
Logical

Details

Set this property to true to get the instantaneous axes of the platform orientation via the output argument Laxes.

Default value — false.

# AzimuthScanRate — azimuth angle scanning speed
Scalar / vector / matrix of real numbers

Details

The azimuthal angle scanning speed, set as a vector on , where — number of platforms.

Each entry in the vector represents the azimuth scan rate for the respective platform.

Default value — 10.

The units of measurement are degrees/sec.

Dependencies

To use this property, set the ScanMode value "Circular" or "Sector".

# InitialVelocity — initial speed of the platform
Vector / matrix of real numbers

Details

The initial velocity of the platform in m/s, set as a matrix on , where each column represents the initial velocity of the platform in the form [vx, vy, vz]. Number — number of platforms.

Default value — [0.0, 0.0, 0.0].

Dependencies

To use this property, set the properties to VelocitySource or AccelerationSource value "Input port".

# Acceleration — current acceleration
Vector / matrix of real numbers

Details

Current acceleration in m/s2, given as a matrix on where each column represents an acceleration in the form [ax, ay, az]. Number — number of platforms.

Default value — [0.0, 0.0, 0.0].

Dependencies

To use this property, set the MotionModel value "Acceleration" and for the AccelerationSource — value "Property".

# Velocity — current platform speed
Vector / matrix of real numbers

Details

The current speed of the platform (in m/s), set as a matrix on , where each column represents the initial velocity of the platform in the form [vx, vy, vz]. Number — number of platforms.

Default value — [0.0, 0.0, 0.0].

Dependencies

To use this property, set the MotionModel value "Velocity" and for the VelocitySource — value "Property".

# VelocitySource — the source of the speed data
String

Details

This property is only used when setting the MotionModel in value "Velocity". In this case, it is necessary to provide speed data for the model. Specify as the speed data source "Property" (by default) or "Input port".

# InitialOrientationAxes — initial orientation of the platform
Two-dimensional / three-dimensional matrix of real numbers

Details

Three axes defining the initial local the coordinate system of the platform, set as a matrix on on . Each column of the matrix represents an axis of the local coordinate system. All three axes must be orthogonal.

Default value — [1.0 0.0 0.0; 0.0 1.0 0.0; 0.0 0.0 1.0].

# AzimuthSpan — azimuth scanning angle range
Matrix of real numbers

Details

Azimuth scanning angle range, set as a matrix on 2, where — number of platforms.

Each row of the matrix defines the scanning range of the corresponding platform in the form [ScanAngleLowerBound ScanAngleHigherBound]. The default value is [−60 60].

The units of measurement are degrees.

Dependencies

To use this property, set the ScanMode value "Sector".

# AccelerationSource — acceleration data source
String

Details

This property is only used when setting the MotionModel in value "Acceleration". In this case, acceleration data must be provided for the model. Specify as the acceleration data source "Property" (by default) or "Input port".

# CustomTrajectory — points of the motion trajectory
Two-dimensional / three-dimensional matrix of real numbers

Details

The points of the motion trajectory, defined as a real matrix on or an array on on , where — number of points, — number of platforms. Meaning — 4 or 7.

If equally 4, then the first column indicates the time points at which the position of the platform is measured. Columns with 2 by 4 — these are measurements of position in coordinates , and . The speed is determined based on position measurements.

If equally 7, then columns c 5 by 7 The matrices represent speed measurements along the axes , and .

Time units are seconds, position units are meters, and velocity units are meters per second.

Default value — [0 0 0 0 0 0 0; 1 0 0 0 0 0 0].

Dependencies

To use this property, set the MotionModel value "Custom".

# InitialScanAngle — the initial scanning angle of the platform
Scalar / vector / matrix of real numbers

Details

The initial scanning angle of the platform, set as a vector on , where — number of platforms.

Scanning takes place in the local coordinate system of the platform. Parameter InitialOrientationAxes sets the initial local coordinate system. At the beginning of the simulation, the orientation axes specified by the parameter InitialOrientationAxes, are rotated by the angle specified in the InitialScanAngle parameter. The default value is zero. The units of measurement are degrees.

Default value — 0.

Dependencies

To use this property, set the ScanMode value "Circular" or "Sector".

# ScanMode — mechanical scanning mode
String

Details

The mechanical scanning mode for the platform, set as "None" (by default), "Circular" or "Sector":

  • "Circular" — the platform continuously scans clockwise on 360 degrees in the azimuthal direction along the axes of orientation of the platform.

  • "Sector" — the platform scans clockwise in the azimuthal direction along the axes of the platform orientation in the range specified by the parameter AzimuthSpan. When the scanning platform reaches the range boundary, the scanning changes direction and returns to the other scanning boundary. Scanning takes place within the orientation axes of the platform.

Methods

Common to all system objects

step!

Run the system object operation algorithm

release!

Allow changing the value of a system object property

reset!

Resetting the internal states of a system object

Additional Info

Platform orientation

Details

The platform has a local coordinate system associated with it, defined by three orthonormal axis vectors. The direction and magnitude of the velocity vector can change each time this object is called. When the platform makes a curved movement, the orientation of the axes of the local coordinate system rotates along with the movement of the platform. Changing the direction of the velocity vector determines the rotation matrix. The same rotation matrix is then used to rotate the local coordinate system. When the velocity vector maintains a constant direction, the rotation matrix is a unit matrix. The initial orientation of the local coordinate system is set using the InitialOrientationAxes. When multiple platforms are specified, each platform rotates independently.