1. Introduction#
MPOPT package implements libraries to solve multi-stage or single-stage optimal control problems of the Bolza form given below,
The package uses collocation methods to construct a Nonlinear programming problem (NLP) representation of OCP. The resulting NLP is then solved by algorithmic differentiation based CasADi nlpsolver ( NLP solver supports multiple solver plugins including IPOPT, SNOPT, sqpmethod, scpgen).
Main features of the package are :
Customizable collocation approximation, compatible with Legendre-Gauss-Radau (LGR), Legendre-Gauss-Lobatto (LGL), Chebyshev-Gauss-Lobatto (CGL) roots.
Intuitive definition of single/multi-phase OCP.
Supports Differential-Algebraic Equations (DAEs).
Customized adaptive grid refinement schemes (Extendable)
Gaussian quadrature and differentiation matrices are evaluated using algorithmic differentiation, thus, supporting arbitrarily high number of collocation points limited only by the computational resources.
Intuitive post-processing module to retrieve and visualize the solution
Good test coverage of the overall package
Active development
Access quick introduction presentation PDF.
Quick start demo Jupyter-notebook.
Similar solver packages: GPOPS II, ICLOCS2, PSOPT, DIRCOL, DIDO, SOS, ACADO, OPTY
Next steps: :doc:`./installation`_, :doc:`./getting_started>`_