English

CGPOPS: A C++ Software for Solving Multiple-Phase Optimal Control Problems Using Adaptive Gaussian Quadrature Collocation and Sparse Nonlinear Programming

Optimization and Control 2019-05-30 v2

Abstract

A general-purpose C++ software program called CGPOPS\mathbb{CGPOPS} is described for solving multiple-phase optimal control problems using adaptive Gaussian quadrature collocation. The software employs a Legendre-Gauss-Radau direct orthogonal collocation method to transcribe the continuous-time optimal control problem into a large sparse nonlinear programming problem. A class of hphp mesh refinement methods are implemented which determine the number of mesh intervals and the degree of the approximating polynomial within each mesh interval to achieve a specified accuracy tolerance. The software is interfaced with the open source Newton NLP solver IPOPT. All derivatives required by the NLP solver are computed using either central finite differencing, bicomplex-step derivative approximation, hyper-dual derivative approximation, or automatic differentiation. The key components of the software are described in detail and the utility of the software is demonstrated on five optimal control problems of varying complexity. The software described in this article provides a computationally efficient and accurate approach for solving a wide variety of complex constrained optimal control problems.

Keywords

Cite

@article{arxiv.1905.11898,
  title  = {CGPOPS: A C++ Software for Solving Multiple-Phase Optimal Control Problems Using Adaptive Gaussian Quadrature Collocation and Sparse Nonlinear Programming},
  author = {Yunus M. Agamawi and Anil V. Rao},
  journal= {arXiv preprint arXiv:1905.11898},
  year   = {2019}
}

Comments

38 pages, 15 figures, 19 tables

R2 v1 2026-06-23T09:29:23.086Z