Quadratic Programming Solvers

As detailed in the Quadratic Programming Overview jMPC Toolbox comes with several Quadratic Programming (QP) solvers suited for the MPC problems the toolbox was designed for (small problems, short horizons). These are summarized below.

FunctionImplementationPrecisionReference
quad_wrightMATLAB m-codeDouble[1]
squad_wrightMATLAB m-codeSingle[1]
mquad_wrightMATLAB MEXDouble[1]
msquad_wrightMATLAB MEXSingle[1]
quad_mehrotraMATLAB m-codeDouble[2]
squad_mehrotraMATLAB m-codeSingle[2]
mquad_mehrotraMATLAB MEXDouble[2]
msquad_mehrotraMATLAB MEXSingle[2]

The default implementation and algorithm used by jMPC is the mquad_wright function, which is generally fastest and supports standard MATLAB precision (double). For detailed information on the solvers, including their algorithms and implementation, consult Chapter 3 in my thesis. For those interested, both algorithms above use Infeasible Interior Point (IIP) methods for solving the constrained optimization problem.

Algorithm References:

  • [1] S. J. Wright, "Applying New Optimization Algorithms to Model Predictive Control," in Chemical Process Control-V, CACHE, AIChE Symposium, 1997, pp. 147-155
  • [2] Object Orientated Software for Quadratic Programming by E. Gertz and S. Wright. University of Wisconsin-Madison.