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.
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 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.
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.
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.
An end-to-end example of using the Segment Propagation Library to compute a trajectory to the Moon.
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.