Modeling & Simulation > MDSTraj Utility Trajectory Fitter

MDSTraj - An Quick Utility to Convert State, Delta, Rate of Change Trajectory Descriptions to High Fidelity Trajectories

The handy MDSTraj time savings utility converts a coarse description of a time history trajectory and created higher order states. Often one has description of flight trajectory based on starting position, heading, speed, altitude, roll, pitch, yaw and rate of change and total delta change for each item. Easy to compute and propagate but is generally has issues when used in WGS-84 applications where physics matter such as alignment of velocity vectors.

High rate and fidelity trajectories with linear acceleration, body rates and angular accelerations are automatically derived from the broad scenario definition. The trajectory definitions are parsed, cubic spline interpolated to the Step Size (dt) specified. The MDSTraj calculates the derivatives necessary to form the higher order term trajectory states.

The process builds the 3D vector in ECEF representation using a natural cubic spline interpolator to form velocity and acceleration vector as well as Euler angle rates and accelerations. Finally, body rates and angular accelerations are calculated from the derivatives of the Euler angles.

Cubic spline functions are used to fit the data. A cubic spline is a spline of piecewise third-order polynomials passing through a set of control points (i.e. in this case trajectory points – Position, Attitude, Speed). The resulting spline (segments) curve that spans each trajectory point is a cubic polynomial. With cubic polynomials splines, the adjacent cubic polynomials endpoints must match in location, first and second derivatives.

The Automated MDSTraj Process to Create Trajectory Files:

  • Build the Position Vector in the ECEF coordinate frame from the file input states (Time, Longitude, Latitude, Altitude, Roll, Pitch, Heading and Speed)
  • Build the cubic spline vector arrays from the input file data.
  • With the input step size of say 5msec, interpolate state spline points at Time t, returning the Time, Longitude, Latitude, Altitude, Roll, Pitch, Heading and Speed and the second order derivatives (dy=rates , ddy=accelerations)
  • Now that we have rates, calculate the Body Rates in Defender body frame coordinates.
  • Add the Earth rates by:
  • •   Calculating the Body Rates relative to NED geographic frame by forming NED-to-Body frame and ECEF to North-East-Down (NED) direction cosines matrices.

    •   Multiply the ECEF to NED direction cosine by earth rate and transform to defender body frame.

    •   Add the NED frame rate of change relative to the ECEF frame (a.k.a. Platform Rates).

  • Using ddy Interpolated Accelerations, calculate the Angular Accelerations (roll pitch yaw accelerations) in the body frame
  • Thus we have a 3D Vector of all states needed to generate the Trajectory file directly or for conversion to other formats.


    Trajectory Description – Fixed Format ASCII, Event Block of Parameters

    ASCII Value(s), Comment:(Event ID Parameter) Comment:Item
    Integer # of Maneuver Events -
    Float Event ID 1 Time "Time"-
    Int Int Float Latitude "Latitude DD MM SS.SSSSS"
    Int Int Float Longitude "Longitude DD MM SS.SSSSS
    Float Heading "Degrees
    Float Heading Rate of Change "Deg/Secrees
    Float Heading Delta "Degrees
    Float Speed Knots
    Float Speed Rate of Change Knots/Sec
    Float Speed Delta Knots
    Float Altitude Feet
    Float Altitude Rate of Change Feet/Sec
    Float Altitude Delta Feet
    Float Roll Degrees
    Float Roll Rate of Change Degrees/Sec
    Float Roll Delta Degrees
    Float Yaw Degrees
    Float Yaw Rate of Change Degrees/Sec
    Float Yaw Delta Degrees
    Float Pitch Degrees
    Float Pitch Rate of Change Degrees/Sec
    Float Pitch Delta Degrees
    Float Pitch Delta Degrees
    "0000" Spare N/A
    Float Event ID 2 Time N/A
    Float Heading "Degrees
    Float Heading Rate of Change "Deg/Secrees
    Float Heading Delta "Degrees
    ... ... "Time"-
    ... ... ...
    "-1" End of File n/a
    Note A -1000 Value In Parameter value field means no change


    Trajectory File – Space Delimited:

    Column Parameter Units
    1 Time Seconds
    2 Longitude Degrees
    3 Latitude Degrees
    4 Altitude Meters Relative to WGS84
    5..7 ECEF Vel X,Y,Z Meters/Seconds
    8..10 ECEF Accel X,Y,Z Meters/Second2
    11.13 Roll, Pitch, Yaw (hdg) Degrees
    14..16 Body Rate X,Y,Z Radians/Second
    17..18 Angular Accel X,Y,Z Radians/Second2

    Trajectory Debug File – CSV Formatted:

    Column Parameter Units
    1 Time Seconds
    2 Longitude Degrees
    3 Latitude Degrees
    4 Altitude Meters Relative to WGS84
    5..7 NEU Velocities Meters/Seconds
    8 Total Velocity Meters/Seconds
    9..11 NEU Acclerations Meters/Second2
    12 Dive Angle Degrees
    13 Bearing Degrees
    14 Roll Degrees
    15..17 Body Rate X,Y,Z Radians/Second
    18..20 Angular Accel X,Y,Z Radians/Second2

    Note: Things Change Rapidly! Specifications, Capabilities, Features and Availability Subject to Change Without Notice and May Be Restricted to Certain Users.