Model Predictive Control Toolbox™ provides functions, an app, Simulink® blocks, and reference examples for developing model predictive control (MPC). For linear problems, the toolbox supports the design of implicit, explicit, adaptive, and gain-scheduled MPC. For nonlinear problems, you can implement single- and multi-stage nonlinear MPC. The toolbox provides deployable optimization solvers and also enables you to use a custom solver.
You can evaluate controller performance in MATLAB® and Simulink by running closed-loop simulations. For automated driving, you can also use the provided MISRA C®- and ISO 26262-compliant blocks and examples to quickly get started with lane keep assist, path planning, path following, and adaptive cruise control applications.
The toolbox supports C and CUDA® code and IEC 61131-3 Structured Text generation.
Linear MPC Design
Design implicit, gain-scheduled, and adaptive MPC controllers that solve a quadratic programming (QP) problem. Generate an explicit MPC controller from an implicit design. Use discrete control set MPC for mixed-integer QP problems.
MPC Designer App
Use the MPC Designer app to interactively design implicit MPC controllers, linearize your Simulink model with Simulink Control Design™, validate controller performance using simulation scenarios, and compare responses for multiple designs.
Nonlinear MPC Design
Design nonlinear and economic MPC controllers that use Optimization Toolbox™ to solve a nonlinear programming (NLP) problem. Use single- or multi-stage formulation for optimal planning and feedback control.
MPC Optimization Solvers
Select from built-in active-set, interior-point, and mixed-integer QP solvers, or use NLP solvers from Optimization Toolbox. Alternatively, use FORCESPRO solvers (by Embotech) or your own custom solver.
Prediction Model Specification
Specify prediction models analytically with Control System Toolbox™ or Symbolic Math Toolbox™, by linearizing a Simulink model with Simulink Control Design, or through measured data with System Identification Toolbox™ and Deep Learning Toolbox™.
State Estimation and Design Review
Estimate controller states from measured outputs using the state estimator provided by the toolbox or a custom state estimator. Detect potential stability and robustness issues with your linear MPC design using the built-in diagnostic function.
Evaluate controller performance by running closed-loop simulations in Simulink using ISO 26262- and MISRA C-compliant Simulink blocks, as well as in MATLAB with command-line functions. Automate testing for multiple scenarios with Simulink Test™.
Automatically generate production C/C++ and CUDA code, or IEC 61131-3 structured text, from MPC controllers designed in MATLAB and Simulink. Deploy the code to a variety of targets such as ECUs, GPUs, and PLCs.
"Sumitomo Construction Machinery achieved a 15% reduction in fuel consumption without sacrificing the excavator’s dynamic performance. The increase in efficiency was due, in part, to a 50% reduction in engine speed fluctuations made possible by Model Predictive Control Toolbox and our improved control design."Eisuke Matsuzaki, Sumitomo Heavy Industries