| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Model Predictive Control Toolbox |
| Contents | Index |
Model Predictive Control of a SISO Plant
The usual Model Predictive Control Toolbox™ application involves a plant having multiple inputs and multiple outputs (a MIMO plant).
Consider instead the simpler application shown in Figure 1-1 (see the nomenclature summary in Table 1-1). This plant could be a manufacturing process, such as a unit operation in an oil refinery, or a device, such as an electric motor. The main objective is to hold a single output,
, at a reference value (or setpoint), r, by adjusting a single manipulated variable (or actuator) u. This is what is generally termed a SISO (single-input single-output) plant. The block labeled MPC represents a Model Predictive Controller designed to achieve the control objective.
The SISO plant actually has multiple inputs, as shown in Figure 1-1. In addition to the manipulated variable input, u, there may be a measured disturbance, v, and an unmeasured disturbance, d.

Figure 1-1: Block Diagram of a SISO Model Predictive Control Toolbox™ Application
The unmeasured disturbance is always present. As shown in Figure 1-1, it is an independent input-not affected by the controller or the plant. It represents all the unknown, unpredictable events that upset plant operation. (In the context of Model Predictive Control, it can also represent unmodeled dynamics.) When such an event occurs, the only indication is its effect on the measured output, y, which is fed back to the controller as shown in Figure 1-1.
Some applications have unmeasured disturbances only. A measured disturbance, v, is another independent input affecting
. In contrast to d, the controller receives the measured v directly, as shown in Figure 1-1. This allows the controller to compensate for v's impact on
immediately rather than waiting until the effect appears in the y measurement. This is called feedforward control.
In other words, Model Predictive Control Toolbox design always provides feedback compensation for unmeasured disturbances and feedforward compensation for any measured disturbance.
Model Predictive Control Toolbox design requires a model of the impact that v and u have on
(symbolically,
and
). It uses this plant model to calculate the u adjustments needed to keep
at its setpoint.
This calculation considers the effect of any known constraints on the adjustments (typically an actuator upper or lower bound, or a constraint on how rapidly u can vary). One may also specify bounds on
. These constraint specifications are a distinguishing feature of Model Predictive Control Toolbox design and can be particularly valuable when one has multiple control objectives to be achieved via multiple adjustments (a MIMO plant). In the context of a SISO system, such contraint handling is often termed an anti-windup feature.
If the plant model is accurate, the plant responds quickly to adjustments in u, and no constraints are encountered, feedforward compensation can counteract the impact of v perfectly. In reality, model imperfections, physical limitations, and unmeasured disturbances cause the y to deviate from its setpoint. Therefore, Model Predictive Control Toolbox design includes a disturbance model (
) to estimate d and predict its impact on
. It then uses its
model to calculate appropriate adjustments (feedback). This calculation also considers the known constraints.
Various noise effects can corrupt the measurement. The signal z in Figure 1-1 represents such effects. They could vary randomly with a zero mean, or could exhibit a non-zero, drifting bias. Model Predictive Control Toolbox design uses a
model in combination with its
model to remove the estimated noise component (filtering).
The above feedforward/feedback actions comprise the controller's regulator mode. Model Predictive Control Toolbox design also provides a servo mode, i.e., it adjusts u such that
tracks a time-varying setpoint.
The tracking accuracy depends on the plant characteristics (including constraints), the accuracy of the
model, and whether or not future setpoint variations can be anticipated, i.e., known in advance. If so, it provides feedforward compensation for these.
Typical Sampling Instant
Model Predictive Control Toolbox design generates a discrete-time controller - one that takes action at regularly spaced, discrete time instants. The sampling instants are the times at which the controller acts. The interval separating successive sampling instants is the sampling period,
t (also called the control interval). This section provides more details on the events occuring at each sampling instant.
Figure 1-2: Controller State at the kth Sampling Instant
Figure 1-2 shows the state of a hypothetical SISO model preditive control system that has been operating for many sampling instants. Integer k represents the current instant. The latest measured output, yk, and previous measurements, yk-1, yk-2, ..., are known and are the filled circles in Figure 1-2 (a). If there is a measured disturbance, its current and past values would be known (not shown).
Figure 1-2 (b) shows the controller's previous moves, uk-41, ..., uk-1, as filled circles. As is usually the case, a zero-order hold receives each move from the controller and holds it until the next sampling instant, causing the step-wise variations shown in Figure 1-2 (b).
To calculate its next move, uk the controller operates in two phases:
, and any internal variables that influence the future trend,
, ...,
. To accomplish this, the controller uses all past and current measurements and the models
,
,
, and
. For details, see Prediction and State Estimation.
1) is the prediction horizon - see Figure 1-2 (a). The controller computes M moves uk, uk+1, ... uk+M-1, where M (
1,
P) is the control horizon - see Figure 1-2 (b). In the hypothetical example shown in the figure, P = 9 and M = 4. The moves are the solution of a constrained optimization problem. For details of the formulation, see Optimization Problem.
In the example, the optimal moves are the four open circles in Figure 1-2 (b), and the controller predicts that the resulting output values will be the nine open circles in Figure 1-2 (a). Notice that both are within their constraints,
and
.
When it's finished calculating, the controller sends move uk to the plant. The plant operates with this constant input until the next sampling instant,
t time units later. The controller then obtains new measurements and totally revises its plan. This cycle repeats indefinitely.
Reformulation at each sampling instant is essential for good control. The predictions made during the optimization stage are imperfect. Periodic measurement feedback allows the controller to correct for this error and for unexpected disturbances.
Prediction and Control Horizons
You might wonder why the controller bothers to optimize over P future sampling periods and calculate M future moves when it discards all but the first move in each cycle. Indeed, under certain conditions a controller using P = M = 1 would be identical to one using P = M =
. More often, however, the horizon values have an important impact. Some examples follow:
For example, suppose D = 5, P = 7, M = 3, the current time instant is k, and the three moves to be calculated are uk, uk+1, and uk+2. Moves uk, uk+1 would have some impact within the prediction horizon, but move uk+2 would have none until yk+8, which is outside. Thus, uk+2 is indeterminant. Setting P = 8 (or M = 2) would allow a unique value to be determined. It would be better to increase P even more.
Most designers choose P and M such that controller performance is insensitive to small adjustments in these horizons. Here are typical rules of thumb for a lag-dominant, stable process:
If performance is poor, you should examine other aspects of the optimization problem and/or check for inaccurate controller predictions.
| Provide feedback about this page |
![]() | Introduction | MIMO Plants | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |