Once you have validated a model predictive controller in Simulink® or MATLAB®, you can generate code and deploy it for real-time control applications. For more information, see Generate Code and Deploy Controller to Real-Time Targets.
MATLAB Code Generation
|Create data structures for |
|Compute optimal control moves with code generation support|
|Create data structures for
|Compute nonlinear MPC control moves with code generation support (Since R2020a)|
Generate MEX File
|Build MEX file that solves an MPC control problem (Since R2020a)|
Custom QP Applications
|Solve quadratic programming problem using active-set algorithm (Since R2020a)|
|Create default option set for |
|Solve a quadratic programming problem using an interior-point algorithm (Since R2020a)|
|Create default option set for
|Configures an MPC object to use the QP solver from Optimization Toolbox as a custom solver (Since R2021b)|
|MPC Controller||Simulate model predictive controller|
|Adaptive MPC Controller||Simulate adaptive and time-varying model predictive controllers|
|Explicit MPC Controller||Explicit model predictive controller|
|Multiple MPC Controllers||Simulate switching between multiple implicit MPC controllers|
|Multiple Explicit MPC Controllers||Multiple explicit MPC controllers|
|Nonlinear MPC Controller||Simulate nonlinear model predictive controllers|
|Adaptive Cruise Control System||Simulate adaptive cruise control using model predictive controller|
|Lane Keeping Assist System||Simulate lane-keeping assistance using adaptive model predictive controller|
|Path Following Control System||Simulate path-following control using adaptive model predictive controller (Since R2019a)|
Code Generation Basics
- Generate Code and Deploy Controller to Real-Time Targets
Model Predictive Control Toolbox™ software provides code generation functionality for controllers designed in Simulink and MATLAB.
- QP Solvers
The model predictive controller QP solvers convert an MPC optimization problem to a general form quadratic programming problem.
Simulink Code Generation
- Simulation and Code Generation Using Simulink Coder
Simulate your MPC controller in Simulink and generate real-time code that uses either double-precision or single-precision signals.
- Simulation and Structured Text Generation Using Simulink PLC Coder
Simulate your MPC controller in Simulink and generate structured text for programmable logic controllers.
- Using MPC Controller Block Inside Function-Call and Triggered Subsystems
To ensure that an MPC controller works properly inside a Function-Call or triggered subsystem, configure the MPC Controller block to use inherited sample time and invoke the subsystem periodically with the same sample time defined in the MPC controller object.
MATLAB Code Generation
- Generate Code to Compute Optimal MPC Moves in MATLAB
Generate C code to compute manipulated variable moves for real-time applications.
- Solve Custom MPC Quadratic Programming Problem and Generate Code
You can implement a custom MPC control algorithm that supports C code generation in MATLAB using the built-in QP solver,
CUDA Code Generation
- Use the GPU to Compute MPC Moves in MATLAB
Simulate your MPC controller in MATLAB using the GPU.
- Use the GPU to Simulate an MPC Controller in Simulink
Simulate your MPC controller in Simulink using the GPU.
Using Custom Solvers
- Simulate and Generate Code for MPC Controller with Custom QP Solver
Generate code for a model predictive controller that uses a custom quadratic programming solver.
- Implement MPC Controllers Using Embotech FORCESPRO Solvers
Use Embotech FORCESPRO Solvers with the Model Predictive Control Toolbox to solve MPC problems and deploy controllers to real-time targets.
- Real-Time MPC Simulation Using OPC Client
Implement an online model predictive controller application using the OPC client supplied with the Industrial Communication Toolbox™.