Skip to main content

optcontrol

Some information are from jkoendev/optimal-control-literature-software: List of literature and software for optimal control and numerical optimization.

List of software packages for optimal control

Survey papers

  • F. Topputo and C. Zhang, “Survey of Direct Transcription for Low-Thrust Space Trajectory Optimization with Applications,” Abstract and Applied Analysis, vol. 2014, Article ID 851720, 15 pages, 2014. [edited

Software

NiceHans D. Mittelmann

mintOC

(good) Python, Matlab, Cacados/acados: Fast and embedded solvers for nonlinear optimal control

(pass) AMPL with TACO extension (commercial)

(pass) Forces (commercial)

(pass) gPROMS (commercial)

(pass) Mujoco, domain specific for robotics/contact, simulator (commercial)

(pass) Optimica, Dymola (commercial)

(pass) PROPT (commercial)

Python

(good)BYU-PRISM/GEKKO: GEKKO Python for Machine Learning and Dynamic Optimization

(good)casadi/casadi: CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.

ethz-adrl/control-toolbox: The Control Toolbox - An Open-Source C++ Library for Robotics, Optimal and Model Predictive Control

Dynamic Optimization with pyomo.DAE — Pyomo 6.4.1 documentation

OpenMDAO/dymos: Open Source Optimization of Dynamic Multidisciplinary Systems

Shunichi09/PythonLinearNonlinearControl: PythonLinearNonLinearControl is a library implementing the linear and nonlinear control theories in python.

Examples — opty 1.2.0.dev0 documentation

wanxinjin/Pontryagin-Differentiable-Programming: A unified end-to-end learning and control framework that is able to learn a (neural) control objective function, dynamics equation, control policy, or/and optimal trajectory in a control system.

C++

GoodPSOPT/psopt: PSOPT Optimal Control Software

Very GoodDownload – Bocop – The optimal control solver

loco-3d/crocoddyl: Crocoddyl is an optimal control library for robot control under contact sequence. Its solver is based on various efficient Differential Dynamic Programming (DDP)-like algorithms

towr, domain specific for legged robots [github]

Julia

infiniteopt/InfiniteOpt.jl: An intuitive modeling interface for infinite-dimensional optimization problems.

RoboticExplorationLab/TrajectoryOptimization.jl: A fast trajectory optimization library written in Julia

FHoltorf/MarkovBounds.jl: A Julia package for the computation of hard, theoretically guaranteed bounds on the moments of jump-diffusion processes with polynomial data

odow/SDDP.jl: Stochastic Dual Dynamic Programming in Julia

ai4energy/OptControl.jl: A tool to solve optimal control problem

thowell/DirectTrajectoryOptimization.jl: A Julia package for constrained trajectory optimization using direct methods.

baggepinnen/DifferentialDynamicProgramming.jl: A package for solving Differential Dynamic Programming and trajectory optimization problems.

Matlab

ICLOCS2 [github] [web]

DIDO

GPOCS2Home | GPOPS-II - Next-Generation Optimal Control Software

Everglow0214/The_Adaptive_Dynamic_Programming_Toolbox

nurkanovic/nosnoc: NOSNOC is an open source software package for NOnSmooth Numerical Optimal Control.

OpenOCL/OpenOCL: Open Optimal Control Library for Matlab. Trajectory Optimization and non-linear Model Predictive Control (MPC) toolbox.

MatthewPeterKelly/OptimTraj: A trajectory optimization library for Matlab

acado/acado: ACADO Toolkit is a software environment and algorithm collection for automatic control and dynamic optimization. It provides a general framework for using a great variety of algorithms for direct optimal control, including model predictive control, state and parameter estimation and robust optimization.

Automatic differentiation

3.3. Optimal Control

eleurent/phd-bibliography: References on Optimal Control, Reinforcement Learning and Motion Planning

mintOC

Julia: Jump + InfiniteOpt

Jump is powerfull!!!

jump-dev/JuMP.jl: Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)

InfiniteOpt is powerfull!!!

pulsipher/InfiniteOpt.jl: An intuitive modeling interface for infinite-dimensional optimization problems.

GAMS unified softwareGAMS Documentation Center

GAMS-dev/gams.jl: A MathOptInterface Optimizer to solve JuMP models using GAMS

Matlab: Yalmip unifiedYALMIP

Python: unifiedPyomo/pyomo: An object-oriented algebraic modeling language in Python for structured optimization problems.

Solver Manuals

Julia:

martinbiel/StochasticPrograms.jl: Julia package for formulating and analyzing stochastic recourse models.

odow/SDDP.jl: Stochastic Dual Dynamic Programming in Julia

PSORLab/EAGO.jl: A development environment for robust and global optimization

JuliaSmoothOptimizers/PDENLPModels.jl: A NLPModel API for optimization problems with PDE-constraints

JuliaControl

JuliaMPC/NLOptControl.jl: nonlinear control optimization tool

Python:

casadi is powerful!

python-control/python-control: The Python Control Systems Library is a Python module that implements basic operations for analysis and design of feedback control systems.

Shunichi09/PythonLinearNonlinearControl: PythonLinearNonLinearControl is a library implementing the linear and nonlinear control theories in python.

Matlab:

OpenOCL/OpenOCL: Open Optimal Control Library for Matlab. Trajectory Optimization and non-linear Model Predictive Control (MPC) toolbox.

jkoendev/optimal-control-literature-software: List of literature and software for optimal control and numerical optimization.