メインコンテンツ

Explicit MPC

A classical linear model predictive controller solves a quadratic program (QP) at each control interval to determine the optimal manipulated variables (MV). This approach (solving a QP program at every control step) is also known as implicit MPC. For more information, see What Is Model Predictive Control? and QP Optimization Problem for Linear MPC.

Finding the optimal MV can be time consuming, and the required computation time can vary significantly from one control interval to the next. In applications that require a solution within a certain consistent time interval, which could be on the order of microseconds, the implicit MPC approach can be unsuitable.

As shown in Unconstrained Model Predictive Control, if no QP inequality constraints are active then the optimal MV become a time invariant affine function of x:

u=Fx+G.

where F and G are constants, and x contains the states of the plant, disturbance, and noise models, and the manipulated variables used in the previous control interval.

Similarly, if x remains in a region where a fixed subset of inequality constraints is active, the QP solution is also an affine function of x, but with different F and G constants.

Explicit MPC uses offline computations to determine all polyhedral regions where the optimal MV adjustments are affine functions of x and the corresponding control-law constants.

In the explicit MPC approach, the vector x also contains the current output reference values. For more information on the variables included in x, see generateExplicitRange.

When the controller operates in real time, the explicit MPC controller performs the following steps at each control instant k:

  1. Estimate the controller state using available measurements, as in classical MPC.

  2. Form x(k) using the estimated state and the current values of the other independent variables.

  3. Identify the region in which x(k) resides.

  4. Looks up the predetermined F and G constants for this region.

  5. Evaluate the linear function u(k) = Fx(k) + G.

You can establish a tight upper bound for the time required in each step. If the number of regions is not too large, the total computational time can be small. However, as the number of regions increases, the time required in step 3 dominates, and the memory required to store all the linear control laws and polyhedral regions becomes excessive. The number of regions characterizing u = f(x) depends primarily on the number of QP inequality constraints that could be active at the solution. If an explicit MPC controller has many constraints, and thus requires significant computational effort or memory, a classical implicit implementation might be preferable.

Because an explicit MPC controller does not solve an optimization problem online, it typically requires fewer computations than its implicit MPC counterpart and can therefore be useful for applications requiring small sample times. On the other hand, it might also have a larger memory footprint than an implicit MPC controller. Indeed, excessive memory requirements can render the explicit MPC approach no longer viable for medium to large problems. Also, since explicit MPC pre-computes the controller offline, it does not support runtime updates of parameters such as weights, constraints or horizons.

See Also

Functions

Objects

Blocks

Topics