Model Predictive Control Toolbox
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 Design for Automated Driving
Accelerate development of automated driving systems using prebuilt Simulink blocks that comply with ISO 26262 and MISRA C standards. Prebuilt blocks support path planning, path following, adaptive cruise control, and other applications.
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.
Closed-Loop Simulation
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.
Code Generation
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.