Main Content

MPC Design

Basic workflow for designing traditional (implicit) model predictive controllers

A model predictive controller uses linear plant, disturbance, and noise models to estimate the controller state and predict future plant outputs. Using the predicted plant outputs, the controller solves a quadratic programming optimization problem to determine optimal manipulated variable adjustments. For more information on the structure of model predictive controllers, see MPC Prediction Models. Using your plant, disturbance, and noise models, you can create an MPC controller using the MPC Designer app or at the command line. You can simulate the performance of your controller at the command line or in Simulink®.

Structure of an MPC controller in feedback loop with a plant. The plant inputs are the manipulated variables (which are supplied by the MPC controller), measured disturbances, and unmeasured disturbances. Plant outputs are divided into unmeasured and measured outputs. The measured outputs feed back as an input of the MPC controller, which also receives an a reference signal and the measured disturbances as inputs.


  • Controller Creation
    Create model predictive controllers
  • Analysis
    Review run-time design errors and stability issues, analyze effect of weights on performance, convert unconstrained controller for linear analysis
  • Simulation
    Simulate controllers against linear or nonlinear plants in MATLAB® and Simulink
  • Refinement
    Specify custom disturbance models, custom state estimator, terminal weights, and custom constraints