Propagators

The Component Browser is configured with several propagators that can be used for common situations, such as Earth Point Mass, Earth J2 and Heliocentric. In addition, you can create a new propagator, such as 'Venus J2' or 'Ceres Point Mass' by duplicating an existing propagator and redefining one or more of its parameters.

The Propagator components are defined by their their propagator function lists and numerical integrators.

Syntax

PropFuncs

ComponentBrowser */ SetValue Propagators {Component} PropFuncs.{Component}.{Attribute} <Value> [{Unit}]

NumericalIntegrator

ComponentBrowser */ SetValue Propagators {Component} NumericalIntegrator.{Attribute} <Value> [{Unit}]

Duplicate

ComponentBrowser */ Duplicate Propagators {Component} <Duplicate Component Name>

Description

Propagator Functions

The Propagator Functions attributes enable you to define the affecting forces that you want to model for orbit propagation. Astrogator numerically integrates these accelerations to calculate the position and velocity of the spacecraft over time.

Define the propagator function list using the following syntax:

ComponentBrowser */ SetValue "Propagators" {Component} PropFuncs {Propagator Function 1} {Propagator Function 2}...{Propagator Function x}

To modify specific propagator attribute functions, use the "PropFuncs" syntax given in the Syntax section of this help page. Modifications made using this syntax will only affect the implementation of the propagator function within the specified propagator component; the propagator function component will remain unchanged.

Numerical Integrators

The Numerical Integrators attributes allow you to identify the type of integrator to be used by the propagator and define its parameters. Astrogator provides eight numerical integrators that can be selected to define the algorithm used to integrate the accelerations of the spacecraft, as well as the constants that control the step size and accuracy of the propagation.

Integrator Description
Bulirsch-Stoer An integrator based on Richardson extrapolation with automatic step size control.
Gauss-Jackson A 12th order Gauss-Jackson integrator for second order ODEs. There is currently no error control implemented for this method, meaning that a fixed step size is used.
RK2nd3rd A 2nd order Runge-Kutta integrator with 3rd order error control, using Bogacki and Shampine coefficients.
RK4th A 4th order Runge-Kutta integrator that does not employ error control.
RK4th5th A 4th order Runge-Kutta integrator with 5th order error control, using Cash-Karp coefficients.
RK4thAdapt A 4th order Runge-Kutta integrator, adapting step size by comparing one full step to two half steps. Although this technique can be quite slow compared to the other algorithms, it is very common and can be used for comparison.
RKF7th8th A 7th order Runge-Kutta-Fehlberg integrator with 8th order error control. This is the default integrator used in the HPOP propagator.
RKV8th9th An 8th order Runge-Kutta-Verner integrator with 9th order error control.

Note: If in doubt about which integrator to choose, select the RKF7th8th integrator, since it can be used for all situations and the parameter default values are set to achieve good precision for low Earth orbits.

To define the numerical integrator for the propagator, use the following syntax:

ComponentBrowser */ SetValue "Propagators" {Component} NumericalIntegrator <Numerical Integrator>

To define attributes for the numerical integrator, use the "NumericalIntegrator" syntax given in the Syntax section of this help page. The attributes for the different numerical integrators are defined individually below, but the syntax for all of them is the same, regardless of the specific numerical integrator that has been selected for the propagator.

RK2nd3rd, RK4th5th, RK4thAdapt, RKF7th8th, RKV8th9th

For more details on these integrators, see the Astrogator graphical user interface (GUI) help.

Attribute Values
InitialStep <Numerical>
UseFixedStep Boolean
MaxIterations <Numerical>
UseMaxStep Boolean
UseMinStep Boolean
MaxStep <Numerical>
MinStep <Numerical>
MaxRelError <Numerical>
MaxAbsError <Numerical>
SCHigh <Numerical>
SCLow <Numerical>
ErrorControl "Relative to step", "Relative to state", "Relative by component", "Absolute"
CoeffType RKV8th9th only: "Efficient", "SIAM 1978"

Bulirsch-Stoer

For more details on the parameters for the Bulirsch-Stoer integrator, see the Astrogator GUI help.

Attribute Values
InitialStep <Numerical>
UseFixedStep Boolean
MaxIterations <Numerical>
UseMaxStep Boolean
UseMinStep Boolean
MaxStep <Numerical>
MinStep <Numerical>
MaxNumSequences <Numerical>
Tolerance <Numerical>
Safe1 <Numerical>
Safe2 <Numerical>

Note: The Bulirsch-Stoer integrator does not behave well with the Maximum Relative Error tolerance set to 1.0e-16 or below. The problem is due to the tolerance being of the same order as the truncation error. The result is extremely long run times.

Gauss-Jackson

For more details on the parameters for the Gauss-Jackson predictor-corrector, see the Astrogator GUI help.

Attribute Values
InitialStep <Numerical>
MaxCorrectorIterations <Numerical>
MaxCorrectorRelError <Numerical>
CorrectorMode "Full Correction", "Pseudo Correction"
SingleStepIntegrator "Bulirsch-Stoer", "RK2nd3rd", "RK4th", "RK4th5th", "RK4thAdapt", "RKF7th8th", "RKV8th9th"

When you identify Gauss-Jackson as the numerical integrator, you must define the Stopping Integrator attributes. The stopping integrator is a single-step integrator that is used when searching for stopping conditions.

To modify specific Stopping (Single Step) Integrator attributes, use the following syntax:

ComponentBrowser */ SetValue "Propagators" {Component} NumericalIntegrator.SingleStepIntegrator.{Attribute} <Value> [<Unit>]

RK4th

The RK4th uses a fixed step size and does not employ error control. For more details, see the Astrogator GUI help.

Attribute Values
InitialStep <Numerical>

Other Attributes

The attributes in the following table can be modified using the following syntax:

ComponentBrowser */ SetValue "Propagators" {Component} {Attribute} <Value> [<Unit>]

The CentralBody attribute pertains to the general propagator settings while the remaining attributes pertain the numerical integrator.

Attribute Values
CentralBody <Central Body>
UseVOP Boolean
UseRegularizedTime Boolean
RegularizedTimeExponent <Numerical>
RegularizedTimeStepsPerOrbit <Numerical>

Examples

Duplicating a Propagators component

ComponentBrowser */ Duplicate Propagators "Earth Full" "My Propagator"

Selecting a Numerical Integrator

ComponentBrowser */ SetValue Propagators "My Propagator" NumericalIntegrator RKF7th8th

Setting a specific Numerical Integrator attribute

ComponentBrowser */ SetValue Propagators "My Propagator" NumericalIntegrator.UseMaxStep true

Modifying a Single Step Integrator attribute

ComponentBrowser */ SetValue "Propagators" "My Propagator" NumericalIntegrator.SingleStepIntegrator.Tolerance 1e-15

Setting the Propagator Functions list

ComponentBrowser */ SetValue "Propagators" "My Propagator" PropFuncs Gravitational_Force Jacchia-Roberts Spherical_SRP Moon Sun General_Relativity Radiation_Pressure

Modifying a Propagator Function attribute

ComponentBrowser */ SetValue Propagators "My Propagator" PropFuncs.Jacchia-Roberts.AtmosDataGeoMagFluxUpdateRate Daily

Modifying a general (other) Propagator attribute

ComponentBrowser */ SetValue "Propagators" "My Propagator" CentralBody Mars

STK Programming Interface 11.0.1