Numerical solvers for MPC
QP solvers suitable for (linear) MPC
The extra features needed for MPC:
- warmstarting requires fesibility of the previous solution. Some methods the iterations may temporarily lose feasibility, which can be a problem if only a fixed number of iterations is allowed (in favor of predictable timing).
- …
A curated list of QP solvers is maintained at https://github.com/qpsolvers/qpbenchmark. Below are a few most popular from the open-source domain. Most if not all of them can be interfaced from various programming languages.
Higher-level tools
- acados – free & open source; intervaces to Octave/Matlab, Python, C++.
- CasADi – free & open source; intervaces to Octave/Matlab, Python, C++.
- ModelPredictiveControl.jl – free & open source; Julia.
- Model Predictive Control Toolbox for Matlab – commercial (by The Mathworks); Matlab; the generated C code follows industrial standards.
- Multiparametric Toolbox 3 (MPT3) – free & open source; Matlab.
- Yalmip – free & open source; Matlab.
- ForcesPro – commercial (by Embotech).