Click or drag to resize

Segment Propagation

With the Segment Propagation Library, you can model a trajectory where the manner of propagation varies over the lifetime of the object. This can be used to simulate scenarios such as, finite/impulsive maneuvers between stretches of ballistic motion, or changing which NumericalPropagator is used to produce ephemeris as events occur. The library also can solve for a trajectory by varying the initial settings of your segments to satisfy certain constraints. Once you have your results, additional analysis can be done between the computed ephemeris and other spacecraft, aircraft, ships, and the ground.

Note Note

The functionality described in this topic requires a license for the Segment Propagation Library.




SegmentDefinitions are the fundamental objects in the Segment Propagation Library. This topic explains what segments are, how they work, and other basic concepts. This section also includes descriptions and examples for each type of segment provided by the library.

Stopping Conditions

Stopping conditions provide a mechanism to stop propagation of a StoppablePropagator when some event occurs. That event could simply be triggered by how much time has passed, or it could be a complicated condition involving multiple elements being propagated, such as stopping the third time a satellite's true anomaly reaches a particular minimum value.

Targeted Segment List Operators

Often the configuration of the segments should change during propagation. This can be to vary configuration values, or enable or disable various settings. TargetedSegmentListOperators provide a mechanism to make these types of changes.

Multivariable Function Solvers

MultivariableFunctionSolvers solve a multivariable function based on a set of constraints. You can construct multivariable functions using values computed from a trajectory, solve for constraints, and use the results to change the configuration of your segments.

Code Sample

An end-to-end example of using the Segment Propagation Library to compute a trajectory to the Moon.

Lambert and Primer Vector Example

An example of solving for two impulsive maneuvers within a LEO to GEO transfer using a Lambert solution and Primer Vector theory.

Trajectory Optimization Example

An example of optimizing three impulsive maneuvers that circularize and reduce the inclination of an orbit with minimal propellant usage.

Lunar Free Return Code Sample

An example of how to design and target both cislunar and circumlunar free return trajectories.

Comparisons to STK Astrogator

If you are familiar with the Astrogator satellite propagator in STK, then the Segment Propagation Library can be thought of as analogous. However, there are a few differences you should know before you dive in:

  • Astrogator provides very specific types of stopping conditions, constraints and controls. In contrast, the Segment Propagation Library provides stopping conditions, constraints, and variables that usually require a Scalar, delegate, or state element. For example, to create the Altitude stopping condition that Astrogator provides, you could create a ScalarCartographicElement using the IntegrationPoint (get) of the PropagationNewtonianPoint that is being propagated, then use that scalar in a ScalarStoppingCondition with your desired stopping condition threshold. Effectively, Segment Propagation Library provides the User Select stopping condition from Astrogator, which most of the other stopping conditions can be made from.

  • Controls in Astrogator are analogous to SolverVariableSettings and the types that extend from them.

  • The states of the segments can include any number of objects to propagate simultaneously. For example, you can create a control law to simulate two satellites interacting with each other in a closed loop.