Optimal Control

Top  Previous  Next

FreeFlyer includes support for generic optimal control through the use of segmented trajectory arcs and specific control models. The control model is the representation of the spacecraft's ability to adjust its own state. Users can configure and link multiple trajectory phases with varying control models including: ballistic, simple thruster, and ideal solar sail control models. Using the TrajectoryPhase object, users can add bounds and constraints to the optimization problem to reflect real world limits when optimizing the objective function. Continuous-thrust trajectories are demanding because forces often dominate the thrust. FreeFlyer uses collocation to solve the dynamics across the entire trajectory by ensuring that the approximating collocation polynomial agrees with the system dynamics (Force Model + Control Model).


The TrajectoryPhase object is added to the Optimizer using the Optimizer.AddTrajectoryPhase() method. When the Optimizer.LoadEngine() method is called, all variables and constraints associated with the added TrajectoryPhases will automatically be added to the optimization problem. No further action inside of the Optimizer evaluation loop is needed from the user in order to solve the constraints originating from TrajectoryPhases. FreeFlyer supports three industry-standard optimization engines: SNOPT, Ipopt, and NLopt. Support for Ipopt and NLopt is built-in and requires no additional configuration on the part of the user, although NLopt does not support sparse matrix operations and thus will not solve problems involving TrajectoryPhases efficiently. To use SNOPT, a user must have access to their own SNOPT license and provide the path to their SNOPT library when loading the optimization engine.


Note: This feature is unavailable for students using FreeFlyer Engineer-tier licenses as part of the FreeFlyer University program. If you are a student and have a need for the use of this feature, reach out to our FreeFlyer University team at ffuniversity@ai-solutions.com to discuss options.



Table of Contents

See the pages listed below for more information on the Optimal Control and other related topics.


Collocation Algorithm

Control Models

Trajectory Phases