MATMPC - A MATLAB Based Toolbox for Real-time Nonlinear Model Predictive Control
This toolbox enables researchers and practitioners with limited programming knowledge to prototype and implement real-time NMPC efficiently, though it is an incremental contribution as it combines existing methods into a MATLAB-based framework.
MATMPC is an open-source MATLAB toolbox for real-time nonlinear model predictive control (NMPC) that provides state-of-the-art performance by compiling modules into MEX functions, achieving speeds comparable to C/C++ solvers. It includes features like automatic differentiation, direct multiple shooting, and a unique CMoN algorithm, and has been tested on multiple operating systems.
In this paper we introduce MATMPC, an open source software built in MATLAB for nonlinear model predictive control (NMPC). It is designed to facilitate modelling, controller design and simulation for a wide class of NMPC applications. MATMPC has a number of algorithmic modules, including automatic differentiation, direct multiple shooting, condensing, linear quadratic program (QP) solver and globalization. It also supports a unique Curvature-like Measure of Nonlinearity (CMoN) MPC algorithm. MATMPC has been designed to provide state-of-the-art performance while making the prototyping easy, also with limited programming knowledge. This is achieved by writing each module directly in MATLAB API for C. As a result, MATMPC modules can be compiled into MEX functions with performance comparable to plain C/C++ solvers. MATMPC has been successfully used in operating systems including WINDOWS, LINUX AND OS X. Selected examples are shown to highlight the effectiveness of MATMPC.