Phoenix-OC is a general-purpose Optimal Control (OC) framework for large-scale problems and large problem sets.

NOTE: To get started, check out the installation instructions at GitHub Phoenix-OC for a containerized setup.

The user interface of Phoenix-OC allows you to intuitively model, run, and inspect solutions.

Phoenix User Interface

Among many others, Phoenix-OC includes the following features:

  • State Discretization: Collocation methods (Hermite-Simpson, RadauIIA, Trapezoidal, Backward Euler, Forward Euler).
  • Control Parameterization: B-Splines (arbitrary smoothness, control derivatives of arbitrary order).
  • Cost Function: Including, but not limited to, end-point (Mayer) cost and integral (Lagrange) cost functions.
  • Constraint Functions: Including, but not limited to, end-point constraint, path constraint, and integral constraint functions.
  • Automatic Differentiation: First- and second-order derivatives.
  • Parametric Problems: Including post-optimal sensitivity analysis.
  • Bilevel Optimal Control: Optimal control problems can depend on other optimal control problems.
  • Multi-Phase Problems: Essentially arbitrary linkage conditions between phases.
  • Parallelization: Parallel batch processing of parametrized optimal control problems.
  • Modeling and Post-Processing: Integrated capabilities for problem definition, modeling, visualization, and export.

Once the Phoenix-OC extension is installed, it is straightforward to run your first example and get started:

Phoenix User Interface