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.
ComponentBrowser */ SetValue Propagators {Component} PropFuncs.{Component}.{Attribute} <Value> [{Unit}]
ComponentBrowser */ SetValue Propagators {Component} NumericalIntegrator.{Attribute} <Value> [{Unit}]
ComponentBrowser */ Duplicate Propagators {Component} <Duplicate Component Name>
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.
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.
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" |
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.
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>]
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> |
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> |
ComponentBrowser */ Duplicate Propagators "Earth Full" "My Propagator"
ComponentBrowser */ SetValue Propagators "My Propagator" NumericalIntegrator RKF7th8th
ComponentBrowser */ SetValue Propagators "My Propagator" NumericalIntegrator.UseMaxStep true
ComponentBrowser */ SetValue "Propagators" "My Propagator" NumericalIntegrator.SingleStepIntegrator.Tolerance 1e-15
ComponentBrowser */ SetValue "Propagators" "My Propagator" PropFuncs Gravitational_Force Jacchia-Roberts Spherical_SRP Moon Sun General_Relativity Radiation_Pressure
ComponentBrowser */ SetValue Propagators "My Propagator" PropFuncs.Jacchia-Roberts.AtmosDataGeoMagFluxUpdateRate Daily
ComponentBrowser */ SetValue "Propagators" "My Propagator" CentralBody Mars
STK Programming Interface 11.0.1