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/