Variable and Constraint Structure
|Top Previous Next|
The basic variable and constraint structures for solving an optimization problem are as follows:
The Optimizer variable vector includes:
•User-added generic state variables (in the order they are added)
oExamples of generic state variables can be found in the Using the Optimizer page of the Optimization Guide.
•TrajectoryPhase variables, in the order the TrajectoryPhases are added to the Optimizer.
oThe TrajectoryPhase object contains TrajectoryNodes. Each TrajectoryNode contains: Cartesian position variables (X, Y, Z), Cartesian velocity variables (VX, VY, VZ), a mass variable, an epoch variable, and any control variables associated with the Control Model. The example below demonstrates retrieving TrajectoryPhase variables for a series of nodes added to the TrajectoryPhase.
Constraint vectors include:
•User-added generic constraints
oExamples of generic constraints can be found in the Using the Optimizer page of the Optimization Guide.
•Inter-Phase constraints all in the order they are added
a.The defect constraints enforce the dynamics (force model and control model) along the trajectory path.
b.Each collocation point represents velocity defects (Vx, Vy, Vz), acceleration defects (Ax, Ay, Az), and mass flow rate defect.
2.Node Spacing constraints
a.These constraints enforce that the node spacing be constant.
3.Control model path constraints (dependent on Control Model)
Simple Thruster Control Model path constraints:
•PhaseSimpleThrusterOptions.ApplyNormConstraint - determines whether to constrain the norm of the Cartesian control variable vector to the bounds in the SimpleThrusterOptions.NormConstraintBounds property
•PhaseSimpleThrusterOptions.NormConstraintBounds - the array containing the lower (first element) and upper (second element) bounds to apply to the norm constraint. The norm constraint is only applied if the PhaseSimpleThrusterOptions.ApplyNormConstraint property is set to true (1)
•If ControlModel.ShadowingBodies is not empty, shadow constraints will be applied which prevent thrust from being applied when in shadow.
Note: Setting the PhaseSimpleThrusterOptions.ApplyNormConstraint to false (0) will often result in an ill-conditioned and/or non-physical problem unless the control variables are constrained directly by the user.
Ideal Sail Control Model path constraints:
•PhaseIdealSolarSailOptions.ApplyNormConstraint - determines whether to constrain the norm of the Cartesian control variable vector equal to 1.
•PhaseIdealSolarSailOptions.ApplySunPointingConstraint - determines whether the dot product of the Cartesian control variable vector and the position vector with respect to the sun will be constrained to be greater than or equal to 0.
Note: Setting the PhaseSimpleThrusterOptions.ApplySunPointingConstraint to false (0) will often result in a non-physical problem unless the Cartesian control variable vector is constrained directly by the user to never point towards the Sun.
4. Time of flight constraint
•By default, this constraint has a lower bound of zero and an upper bound of infinity.
•TrajectoryPhase.SetTimeOfFlightBounds() - sets bounds for the time of flight of the TrajectoryPhase
5. State boundary constraints
•TrajectoryPhase.AddRadiusConstraint() - constrains the radius (with respect to the central body) at the node(s) associated with the passed range.
•TrajectoryPhase.AddRotatingStateConstraint() - adds a constraint on the TrajectoryPhase's position and velocity variables in a rotating frame of reference. The Cartesian position and velocity variables are transformed into the rotating frame in order to produce the values constrained by the lower and upper bound.
6. State path constraints
•TrajectoryPhase.AddRadiusConstraint() - constrains the radius (with respect to the central body) at the node(s) associated with the passed range