Explicit model predictive controller
Explicit model predictive control uses offline computations to determine all operating regions in which the optimal control moves are determined by evaluating a linear function. Explicit MPC controllers require fewer run-time computations than traditional (implicit) model predictive controllers and are therefore useful for applications that require small sample times.
To implement explicit MPC, first design a traditional (implicit) model predictive controller for your application, and then use this controller to generate an explicit MPC controller for use in real-time control. For more information, see Design Workflow for Explicit MPC.
To create an explicitMPC
object:
Create an implicit MPC controller using an mpc
object.
Define the operating range for the explicit MPC controller by creating a range
structure using the generateExplicitRange
function and specifying
the bounds using dot notation.
Define the optimization options for converting the implicit controller into an
explicit controller using the generateExplicitOptions
function.
Create the explicit MPC controller based on the implicit controller, operating range,
and optimization options using the generateExplicitMPC
function.
simplify | Reduce explicit MPC controller complexity and memory requirements |
plotSection | Visualize explicit MPC control law as 2-D sectional plot |
mpcmoveExplicit | Compute optimal control using explicit MPC |
sim | Simulate closed-loop/open-loop response to arbitrary reference and disturbance signals for implicit or explicit MPC |
mpcstate | MPC controller state |
getCodeGenerationData | Create data structures for mpcmoveCodeGeneration |