EngeePhased.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:
-
Create an object EngeePhased.Platform and set its properties.
-
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 pairName=Value, whereName— the name of the property, andValue— 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 equationPos = 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 equationPos = Pos + Vel * T + 1/2 Acl * T^2andVel = 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 equationPos = 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 equationPos = Pos + Vel * T + 1/2 Acl * T^2andVel = 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 settrue.
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 on360degrees 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.
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.