PSOPT Project Home

  • A test release for version 4 is currently available from GitHub via the following link (This test release only supports Ubuntu Linux 16.04 and 15.04):

  • NLR, the national aerospace laboratory of the Netherlands, is using PSOPT as a key tool in the computation of optimised aircraft continuous descent trajectories, aiming to reduce fuel consumption, emissions and noise, as part of their involvement in the EU project¬†Clean Sky.

  • PSOPT is being used to help design optimal trajectories for the first Brazilian deep space mission to the triple asteroid system 2001 SN263, which is due to be launched in 2016

PSOPT is an open source optimal control software package written in C++ that uses direct collocation methods, including pseudospectral and local discretizations. Pseudospectral methods solve optimal control problems by approximating the time-dependent variables using global polynomials, such as Legendre or Chebyshev functions. Local discretization methods approximate the time dependent functions using local splines, and can be seen as implementations of implicit Runge-Kutta integrators. With both global and local methods, differential equations, continuous constraints and integrals associated with the problem are discretized over a grid of nodes. Sparse nonlinear programming is then used to find local optimal solutions. PSOPT is able to deal with problems with the following characteristics:

  • Single or multiphase problems
  • Continuous time nonlinear dynamics
  • Nonlinear path constraints
  • General event constraints
  • Integral constraints
  • Interior point constraints
  • Bounds on controls and state variables
  • General cost function with Lagrange and Mayer terms.
  • Linear or nonlinear linkages between phases
  • Fixed or free initial phase time
  • Fixed or free final phase time
  • Optimization of static parameters
  • Optimal parameter estimation given sampled observations

Full details on PSOPT and its features can be found in its PDF documentation.

    Image courtesy of