Instant and Finite Maneuvers

ODTK makes available four types of instant maneuvers, each defined by a different method:

All instant maneuvers are applied at a single time where the time of application and the resultant change in velocity are computed based on algorithms given in the ODTK Orbit Determination: Theorems & Equations document.

Finite maneuvers employing three of the above methods - Acceleration History (FiniteManAccelFile), Constant Thrust (FiniteManConstThrust), and Velocity Change(FiniteManDeltaV) - are also provided. (Note: The Velocity Change finite maneuver computes and applies a constant thrust that will approximate the final velocity change.)

See information on the PermanentManeuverStates attribute below.

NOTE: Maneuvers are processed in the filter after all measurements (if any) are processed at the maneuver time.

Instant and Finite maneuver lists on the satellite object now automatically sort elements using the following criteria:

  1. Maneuver Time
  2. Maneuver Type
  3. Enabled / Disabled status
  4. Name

Note: For instant maneuvers, the Maneuver Time used for sorting is the Centroid Time of the maneuver which is computed based on maneuver type and input start/stop times. The Centroid Time is the time when the instantaneous Delta-V is applied.

Scripts that manage maneuver lists can no longer use push_back() operations. Insert() operations should be used instead. New elements added to the list will be placed into the correct sorted position and not at the end of the list as was the case previously.

If a new maneuver has all four fields equal to those of the existing manauver the new maneuver will replace the old. This is standard behaviour consistent with STL Set implementation. To avoid replacing existing maneuvers each new element should be given a unique name.

To insert a maneuver into the sequence, click the InstantManeuverList or FiniteManeuverList field. Then, click the Add... button, select the desired method and edit the maneuver's properties in the tree representation displayed in the List window. Use the Copy button to create a copy of a selected maneuver with a new name and edit the copied maneuver's properties as needed.

Maneuver Properties
Property Maneuver Type(s) Description
StateAssociation FiniteManConstThrust Used to share estimation states between multiple finite maneuvers. Useful for satellites that perform a large number of low thrust maneuvers. Select a predefined PermanentManeuverState to define the states to be estimated for this manuever, or select "Unique" to have a set of maneuver states added to the estimation state that are specific to this maneuver. If a permanent maneuver state is referenced, the selection of estimated parameters, reference frame and associated uncertainty are set to the values specified in the permanent maneuver state. See the PermanentManeuverStates attribute, below.
Name all Enter a name for the maneuver segment. The maneuver name is used in the reporting and graphing of maneuver data and should be unique.
Enabled all Set to true to apply the maneuver. This property enables you, among other things, to define several alternative maneuvers and then select among them as appropriate for the situation being modeled.
Frame all Select the coordinate system used to specify the maneuver as Body, Gaussian, Frenet, ICRF, or J2000. Inertial is also an option for the Earth and Moon. If the satellite central body property is set to Earth, the Inertial-frame selection implies the use of the Earth-centered ICRF reference frame. If the satellite central body property is set to Moon, the Inertial-frame selection implies the use of an inertial frame based on the IAU reports on Cartographic coordinates for the planets. For the Body frame, the normal ODTK attitude settings govern the relationship between the body and inertial frame.
Time InstantManConstThrust
InstantManConstAccel
FiniteManConstThrust
FiniteManDeltaV
Select a StopMode -- StopTime or TimeSpan and enter a StartTime. If StopTime is selected as the StopMode, enter the desired time value, and the TimeSpan will display in a read-only field. If TimeSpan is selected as the StopMode, enter the length of the desired interval, and the StopTime will display in a read-only field.
Epoch InstantManDeltaV Specify the time of the instant DV maneuver.
Specification InstantManDeltaV (DeltaV)
InstantManConstThrust (Thrust)
InstantManConstAccel (Accel)
FiniteManConstThrust (Thrust)
FiniteManDeltaV (DeltaV)
Select between:
  • By Component - specify the X, Y and Z components of the DV, thrust or acceleration.


  • MagnitudeAndYPR - use Yaw-Pitch-Roll angles to define the DV, thrust or acceleration.


  • RADec - use inertial {Right Ascension, Declination} angles to define the DV, thrust, or acceleration direction. Only a choice when the Frame selected is an inertial coordinate frame.


DeltaVMagnitude
ThrustMagnitude
AccelMagnitude
InstantManDeltaV (DeltaV)
InstantManConstThrust (Thrust)
InstantManConstAccel (Accel)
FiniteManConstThrust (Thrust)
FiniteManDeltaV (DeltaV)
Set the magnitude of the DV, thrust or acceleration, if MagnitudeAndYPR or RADec is selected for the Specification (see above).
YPRRotation InstantManDeltaV (DeltaV)
InstantManConstThrust (Thrust)
InstantManConstAccel (Accel)
FiniteManConstThrust (Thrust)
FiniteManDeltaV (DeltaV)
Specify the Yaw, Pitch and Roll angles and the sequence thereof to define DV, thrust or acceleration, if MagnitudeAndYPR is selected for the Specification (see above).
DeltaVX
DeltaVY
DeltaVZ
InstantManDeltaV (DeltaV)
FiniteManDeltaV (DeltaV)
Specify the amount of DV in the X, Y and Z directions of the selected coordinate frame, if By Component is selected for the Specification (see above).
TimeAfterStart
TimeBeforeEnd
InstantManDeltaV Specify, with reference to the DeltaVTime, the beginning and end point of a time interval surrounding the maneuver during which no measurements will be accepted.
Estimate all finite maneuvers Specifies what components of the finite maneuver will be estimated by the filter. The following options are available:
  • Nothing - The finite maneuver is not added to the estimation state.


  • MagnitudeOnly - A single variable is added to the estimation state representing a correction to the acceleration magnitude.


  • MagnitudeAndPointing - Three variables are added to the estimation state representing a correction to the acceleration magnitude and two components of a directional correction.


NOTES: Maneuver estimates are generated during the maneuver only if there is tracking data during the maneuver. If there is no tracking data during the maneuver, then the estimates of maneuver magnitude and direction will be zero at state epoch times during the maneuver, in which case database tables FiniteManeuverState and FiniteManeuverStatistics will return zero corrections at maneuver times.

Finite maneuver data, other than summary information, will not be available for reporting or graphing if corrections to the finite manuever are not estimated.

AccelHistoryFilename InstantManAccelFile
FiniteManAccelFile
Specify the path and filename for the file containing the acceleration history.
StartTime
StopTime
all except InstantManDeltaV Specify the beginning and end time for the period of constant acceleration or thrust. This field is read-only for InstantManAccelFile and FiniteManAccelFile.
AccelX
AccelY
AccelZ
InstantManConstAccel (Accel) Specify the amount of constant acceleration in the X, Y and Z directions of the selected coordinate frame, if By Component is selected for the Specification (see above).
Isp InstantManConstThrust
all finite maneuvers
Specific impulse. For instant maneuver types other than InstantManConstThrust, this property is set as a MassLoss factor (see below).
ThrustX
ThrustY
ThrustZ
InstantManConstThrust (Thrust)
FiniteManConstThrust (Thrust)
Specify the amount of constant thrust in the X, Y and Z directions of the selected coordinate frame, if By Component is selected for the Specification (see above).
RADec InstantManDeltaV (DeltaV)
InstantManConstThrust (Thrust)
InstantManConstAccel (Accel)
FiniteManConstThrust (Thrust)
FiniteManDeltaV (DeltaV)
Specify the inertial {Right Ascension, Declination} angles to define the DV, thrust, or acceleration direction, if RADec is selected for the Specification (see above).
Mass all finite maneuvers Two options are available for all finite maneuvers:
  • Select MassFlowRate as the LossMethod and enter the MassFlowRate.

  • Select BasedOnIsp as the LossMethod and enter the Isp.

For FiniteManDeltaV, a third option is available:


Select Mass as the LossMethod and enter the MassDelta (this is a negative number)


In all cases, InitialMass displays in a read-only field.


Uncertainty all

Select among the following UncertaintyType options, and then enter the appropriate information, depending on the type selected:

  • %MagnitudeAndPointing - Specify magnitude uncertainty (sigma) as a percentage and direction uncertainty (pointing sigma) as an angle value.
  • MagnitudeAndPointing - Specify magnitude uncertainty (sigma) and direction uncertainty (pointing sigma).
  • ByComponent - Specify uncertainty for the three components.

For FinManDeltaV and additional option is available

  • DVMagnitudeAbdPointing

For all Instant Maneuvers, MagnitudeSigma and BYCOMPONENT sigmas are expressed in acceleration units (m/s^2).


For FinManConstThrust, MagnitudeSigma and BYCOMPONENT sigmas are expressed in thrust units (kg*m/s^2).


For FinManDeltaV, BYCOMPONENT sigmas are expressed in thrust units, and MagnitudeSigma is optional expressed in either thrust for "MagnitudeAndPointing" or velocity units for "DVMagnitudeAndPointing"


In the simulator, random variation will reflect the uncertainty values specified here. In the filter and smoother, these uncertainty values modify the covariance of velocity of the spacecraft experiencing the maneuver.


Pointing uncertainty reflects the fact that we do not perfectly know the attitude of the spacecraft when the maneuver occurs.

Uncertainty - Halflife options all finite maneuvers Depending on the Uncertainty Type, one or more of the following additional fields are displayed:
  • PointingHalflife - the half life of the two Gauss Markov biases associated with the estimation of directional corrections for the finite maneuver.


  • MagnitudeHalflife - the half life of the Gauss Markov bias associated with the estimation of an acceleration magnitude correction for the finite maneuver.


  • ComponentHalflife - The half life of the three Gauss Markov biases associated with the estimation of corrections to the Cartesian components of acceleration for the finite maneuver. The biases are defined in the same frame as the maneuver. In the absence of measurements for a period equal to the half life, the Gauss Markov bias will decay by a factor of two during estimation. The half life also controls how quickly the value of the bias can be changed during simulation.


In the absence of measurements for a period equal to the half life, the Gauss Markov bias will decay by a factor of two during estimation. The half life also controls how quickly the value of the bias can be changed during simulation.
Mass all instant maneuvers

Select between the following MassLoss methods:

  • BasedOnIsp - MassLoss is calculated on the basis of Isp and displayed in a read-only field, together with InitialMass.
  • Explicit - MassLoss is entered directly by the user. InitialMass is displayed in a read-only field.
ComputedData all instant maneuvers The DV centroid epoch and computed DV in the X, Y and Z directions of the selected coordinate frame are displayed in read-only fields.
PropagatorControls finite maneuvers The user can set the Integration method and Integrator step size control during a finite maneuver to follow a rapidly changing maneuver profile. In the case where finite maneuvers overlap, the controls for the maneuver with the latest start time are used.

To set the integration method and step size control:
  1. Set the PropagatorControls.Enabled attribute to true.
  2. Set the PropagatorControls.IntegrationMethod (RK4 | RKF 7(8) | RKV 8(9)| BulirschStoer).
  3. Set the PropagatorControls.StepSize.Time attribute to the desired fixed time step value.

PermanentManeuverStates Attribute

Desciptions of maneuver states can be added to this list for inclusion in the estimation state. These states my then be referenced by one or more finite maneuvers to allow the sharing of estimation states between multiple maneuvers.

Note: These states will be included in the estimation state even if no finite maneuver references them.

When you create a finite maneuver, the default setting for Estimate is Nothing. When you add a permanent maneuver state, the default setting for Estimate is Magnitude and Pointing. When you then associate the Finite Maneuver with the Permanent Maneuver, the Estimate setting for the maneuver automatically changes from Nothing to Magnitude and Pointing. The reason the Estimate setting changes is that to add a Permanent Maneuver that estimates nothing has no effect.

ODTK 6.5