ParaOCP
The C++ software package ParaOCP (standing for Parameter estimation in Optimal Control Problems) implements an direct-all-at once approach for hierarchical dynamic optimization problems including:
- a nonlinear least-squares-type objective function
- nonlinear constraints on upper-level variables
- a nonlinear multi-stage lower-level optimal control problem (OCP) with
- a nonlinear lower-level objective function of Bolza-type (Mayer and Lagrange term)
- a nonlinear system of ordinary differential equations (ODEs) as constraints
- and multiple model stages with discontinuous transitions expressed by nonlinear transition conditions
- nonlinear mixed control-state constraints
- coupled and decoupled nonlinear equality and inequality multi-point constraints.
Furthermore, the software package includes a module for solving nonlinear one-level multi-stage parameter estimation problems constrained by a system of ODEs, nonlinear transition conditions, state constraints and nonlinear coupled/decoupled equality/inequality multi-point constraints. A second module allows to solving nonlinear one-level multi-stage OCPs, constrained by a system of ODEs, nonlinear transition conditions, mixed control-path constraints and nonlinear coupled/decoupled equality/inequality multi-point constraints.
The implementation of the data structure is based on C++ classes, whereas the numerical algorithms are written in C using BLAS / LAPACK routines for a fast linear algebra.
[1] Kathrin Hatz: Efficient numerical methods for hierarchical dynamic optimization with application to cerebral palsy gait modeling, PhD Thesis, Heidelberg University, 2014. Online: http://archiv.ub.uni-heidelberg.de/volltextserver/16803/