With the Segment Propagation Library, you can model a trajectory where the type of propagation varies over the lifetime of the object being modeled. This can be used to perform simulations such as maneuvers between stretches of propagation, or changing which NumericalPropagator is used to produce ephemeris as events occur during your mission. 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 type in the Segment Propagation Library. This topic explains what segments are, how they work, and other basic related concepts, and also includes descriptions and examples for each type of segment provided by the library.
Stopping conditions provide a way to stop propagation of a StoppablePropagator when some event occurs. That event could be simply 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 numeric 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 propagator in STK, then the Segment Propagation Library will also be familiar. However, there are a few differences you should know before you dive in:
Controls in Astrogator are analogous to SolverVariableSettings and the types that extend from them.
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.
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.