Numerical Propagation¶
Numerical propagation solves equations of motion through numerical integration, enabling high-fidelity dynamics modeling with arbitrary force models. Unlike analytical propagators that use closed-form solutions, numerical propagators step through time, computing accelerations at each step and integrating to get the next state. This approach allows for complex perturbations, control input modeling, covariance propagation, sensitivity analysis, and event detection.
For orbital mechanics, Brahe provides the NumericalOrbitPropagator class built, which provides a fast way to propagate satellite orbits using the force models defined and discussed in Orbital Dynamics. The NumericalOrbitPropagator supports a variety of integrators, including fixed-step and adaptive methods, and can model perturbations such as atmospheric drag, solar radiation pressure, third-body effects, and relativistic corrections. It also supports covariance propagation and sensitivity analysis for orbit determination and parameter estimation. Finally, it supports event detection for orbital events like eclipses, node crossings, and altitude values. Event detection is covered in more detail in the Event Detection section, and premade event types are documented in Premade Events.
Brahe also includes a more general NumericalPropagator class for propagating arbitrary dynamical system systems. This class allows users to integrate equations of motion for non-orbital dynamical systems. This capability is discussed in more depth in General Dynamics Propagation.
Experimental Feature
The numerical propagation system is one of the newer parts of Brahe and is still considered experimental. While the core functionality has been tested and verified, it is one of the most complex features so the design needs further testing and use before finalization. Users are encouraged to provide feedback and report any issues they encounter.
Architecture Overview¶
The numerical propagation system consists of several configurable components:
Force Model Configuration¶
The ForceModelConfig is a data structure that specifies which physical perturbations to include in the dynamics and their parameters. Supported force include:
- Gravity: Point-mass or spherical harmonics (EGMS2008, GGM05S, or user-defined)
- Atmospheric Drag: NRLMSISE-00, Harris-Priester, or exponential atmosphere models
- Solar Radiation Pressure: Cannonball model with conical or cylindrical eclipse
- Third-Body: Sun and Moon gravitational perturbations with analytic or DE440 ephemerides
- Relativistic Effects: Special and general relativistic corrections
Integrator Configuration¶
The NumericalPropagationConfig specifies the integration method, integrator configuration, and variational equations settings:
- Integrator: Fixed-step (e.g., Runge-Kutta 4) or adaptive (e.g., Dormand-Prince 8(5,3)) methods
- Integrator Settings: Step size, error tolerances, and maximum step constraints
- Variational Equations: Enable/disable covariance and sensitivity propagation, with settings for state transition matrix and sensitivity matrix computation
Event Detection¶
The numerical propagator supports event detection through configurable event detectors. Brahe includes several premade event types (detailed in Premade Events):
- Time Events: Trigger at specific epochs
- Value Events: Trigger when a computed quantity crosses a value
- Binary Events: Trigger on boolean state changes
- Altitude Events: Trigger at specific altitudes
Events can be configured to execute callbacks for impulsive maneuvers.
Trajectory Storage¶
All propagators maintain an internal OrbitTrajectory storing propagated states, covariances, state transition matricies, and sensitivities.
Quick Start¶
The simplest way to create a numerical propagator uses default configurations:
Section Contents¶
- Numerical Orbit Propagator - Getting started with numerical propagation
- Force Models - Configuring physical force models
- Integrator Configuration - Choosing integration methods
- Event Detection - Detecting orbital events
- Premade Events - Built-in event types
- Event Callbacks - Responding to detected events
- Maneuvers - Impulsive and continuous thrust
- Covariance and Sensitivity - Uncertainty propagation
- Extending Spacecraft State - Additional state variables
- General Dynamics Propagation - Propagating arbitrary ODEs