Orbit Propagation Library contains a variety of environment and force models, as well as other types necessary to calculate the acceleration of a satellite or other object in orbit. These forces can be used to propagate the position, mass, or other attributes of the satellite over time. The resulting data can then be used with other libraries to perform mission analysis between spacecraft, aircraft, ships, and the ground.
The functionality described in this topic requires a license for the Orbit Propagation Library.
There are many different forces available to provide the effects of gravity, solar radiation, and atmospheric drag at a particular point of interest. In addition, several different environment models are provided, such as the percentage of solar radiation occluded by celestial bodies or the atmospheric density calculated at a given position. Primarily, ForceModels are used together with a Scalar mass to define the acceleration used to propagate the position and velocity of an object of interest.
There are several different torques available to model the effects of environmental and control torques upon a rigid body. TorqueModels are used together with a Matrix3By3Symmetric inertia matrix to define the orientation rates and angular acceleration used to propagate the orientation (attitude) and angular velocity of a rigid body of interest.
The NumericalPropagator provides a means of propagating the state over a time span, stepping manually over a single step, or iterating from a given step to find a particular boundary condition. During and after propagation, users can obtain output for the various elements of the state by using the PropagationStateConverter to transform the raw state information into a form that other types in DME Component Libraries can use.
A NumericalPropagatorDefinition holds a collection of various elements chosen by a user which together define the state for propagation. Elements such as position, mass, or any other custom scalar or vector quantities can be coupled together to create a state based on various forces and user-defined derivatives. Overall, this provides a manager which can maintain the relationship between the coordinate types used by individual elements (such as Cartesian in the case of position) and the raw array used to integrate the state efficiently. In addition, the PropagationStateElements provide ways to specify time-varying geometry that may or may not depend on time or other elements within the state, allowing flexibility for customization and for coupling different elements together.
In addition to propagating the state elements forward in time, a NumericalPropagator can also be used in conjunction with a StateTransitionMatrix to calculate the values of the state covariance over time. The state covariance can then be used to describe the uncertainty of those state elements.
A complete code example of everything a user needs to set up the environment, configure a NumericalPropagatorDefinition, create a NumericalPropagator, and generate data in a form that can be used by other libraries.
The following illustrates the perturbation in Right Ascension of Ascending Node caused by the Earth's Spherical Harmonic Gravity Field (oblateness) on an inclined orbit over five days.