Multivariable Centralized Control and MPC

Advanced Modeling and Control

2x2 MIMO process system

  • Inputs: c1,c2c_1, c_2c1​,c2​. Outputs: y1,y2y_1, y_2y1​,y2​.
  • Plant ransfer function matrix
    G=[G11′G12′G21′G22′]\mathbf{G}=\begin{bmatrix} G'_{11} & G'_{12} \\ G'_{21} & G'_{22} \end{bmatrix}G=[G11′​G21′​​G12′​G22′​​]
  • G12′G'_{12}G12′​ is the transfer from c2c_2c2​ to y1y_1y1​.
  • Interactions: a change in c1c_1c1​ or c2c_2c2​ affects both outputs.
  • Cross terms G12′G'_{12}G12′​ and G21′G'_{21}G21′​ create loop coupling.
  • Interactions can limit decentralized control performance.
  • Decoupler can be used to reduce the coupling effect
  • Model predictive control (MPC)

Decoupling controller

  • A decoupling controller (decoupler) can be added to decentralized control
    to reduce process interactions

  • Types of decoupling systems:

    • Partial decoupling (one-way):

      Cancels the interaction in one direction

      Most common in practice

    • Complete decoupling (two-way):

      Cancels interactions in both directions

      Useful for severe interactions but often requires very high control action

      Leads to increased valve wear and tear

  • A one-way decoupler is typically designed for a pair of control loops to
    cancel the interaction from one loop to the other

  • Two decouplers can be used for the same pair of loops to cancel interactions
    in both directions

One way decoupler

  • Assume perfect cancellation of coupling effect from loop 2 to loop 1

U2D12G11+U2G12=0 U_2 D_{12} G_{11} + U_2 G_{12} = 0 U2​D12​G11​+U2​G12​=0

∴  D12=−G12G11 \therefore \; D_{12} = - \frac{G_{12}}{G_{11}} ∴D12​=−G11​G12​​

  • General equation for decoupler DijD_{ij}Dij​

Dij=−GijGii D_{ij} = - \frac{G_{ij}}{G_{ii}} Dij​=−Gii​Gij​​

  • DijD_{ij}Dij​ is used to remove the coupling effect from loop jjj to loop iii

Two way decoupler

  • For an n×nn \times nn×n MIMO system, n(n−1)n(n-1)n(n−1) decouplers are required in a complete decoupling system

  • Complete decoupling is often not practical for large MIMO systems

  • Partial decoupling is more commonly adopted

Multi-loop controllers for distillation column

  • A common application of multi-loop control is the control of a distillation column
  • There are 4 controlled variables:
    • Liquid level in reflux drum
    • Liquid level at the bottom of the column
    • Top composition
    • Bottom composition
  • This forms a 4×44 \times 44×4 decentralized control system
  • Each loop employs an individual PID-type controller

Multivariable control (MPC)

  • For weak interactions and loose constraints, a simpler multi-loop PID
    approach is often sufficient

  • Fast, lightly coupled units can run well with well-tuned SISO loops
    In MIMO systems with strong interactions, multi-loop coordination becomes complex

  • Multivariable Predictive Control (MPC)

    • Uses a process model to predict future behavior and choose control moves
      over a short horizon
    • The controller optimizes, applies the first move, then repeats at the next
      sample
  • Compared with multi-loop PID, MPC considers all inputs and outputs together
    and accounts for interactions

  • MPC enforces constraints on actuators and process variables explicitly

  • MPC looks ahead in time rather than reacting loop by loop

  • Advantages

    • Better coordination when loops are strongly coupled
    • Safer, more efficient operation under tight constraints
    • Improved performance on processes with delays and slow dynamics

Multivariable controllers for distillation column

  • Replace the two SISO composition controllers with a single multivariable controller (MPC)
  • MPC reduces the negative effects of loop couplings between top and bottom compositions
  • Loop couplings are a major limitation to achievable control performance
  • Mixed control strategy:
    • MPC for composition loops
    • PID controllers for level loops
  • Keep level controllers as SISO since interactions between level loops are relatively small

Multi-loop control block diagram

Multivariable controller block diagram

Model Predictive Control (MPC)

Overview

  • Widely used multivariable control approach in process industry
  • often considered the gold standard for coordinating interacting loops
  • Handles soft and hard constraints on inputs and outputs
  • Conventional PID cannot enforce constraints explicitly
  • Can operate close to economic or safety limits without violating constraints
  • Several industrial variants exist; dynamic matrix control (DMC) is the most common lineage

Advantages

  • Provides decoupling to reduce effects of process interactions
  • Enables feedforward compensation for measured disturbances
  • Can address process nonlinearity when a nonlinear model is used
  • Enforces constraints directly on variables and move rates

Genealogy of linear MPC algorithms

  • MPC emerged in the late 1970s and early 1980s, evolving from Linear Quadratic Gaussian (LQG) control introduced by Kalman in the 1960s

  • MPC performs prediction within a finite time horizon, unlike LQG which assumes infinite horizon and unconstrained optimization

  • 1st generation (1970s)
    • DMC: dynamic matrix control Shell implementations
    • IDCOM: Texas Instruments multivariable controller
  • 2nd generation (1980s)
    • QDMC: quadratic dmc shell
    • SMOC: setpoint multivariable optimal control
    • IDCOM-M: multivariable extension
  • 3rd generation (1990s)
    • DMCPLUS: AspenTech commercial successor
    • RMPCT: Honeywell robust MPC
    • SMOC-II: Shell evolution
  • 4th generation (2000s and onward)
    • DMC+ enhanced commercial variants

Dynamic Matrix Control (DMC)

  • Developed by Shell Oil engineers and first applied in 1973
  • Based on a linear step response model of the plant
  • Uses a quadratic performance objective over a finite prediction horizon
  • Computes future control actions so the controlled variables follow setpoints as closely as possible
  • Became the first widely adopted form of model predictive control in the process industry

Discrete-Time Step Response Model (DTSRM)

  • Dynamic Matrix Control (DMC) requires a dynamic model of the process
  • DTSRM is the model structure used in DMC
  • Provides the basis for calculating optimal control actions
  • Equivalent to the transfer function model GpG_pGp​ used in conventional control
  • Captures the effect of manipulated variables (MV) on controlled variables (CV)
  • Offers the same process information as GpG_pGp​ but expressed in step response form

DTSRM developed from FOPDT

  • Start with a FOPDT model

Gp(s)=y(s)u(s)=exp⁡(−s)s+1,Kp=1, τp=1, θp=1 G_p(s) = \frac{y(s)}{u(s)} = \frac{\exp(-s)}{s+1}, \quad K_p = 1, \, \tau_p = 1, \, \theta_p = 1 Gp​(s)=u(s)y(s)​=s+1exp(−s)​,Kp​=1,τp​=1,θp​=1

  • Apply a unit step change in input

Δu(s)=1sat t=t0 \Delta u(s) = \frac{1}{s} \quad \text{at } t = t_0 Δu(s)=s1​at t=t0​

  • Choose a fixed sampling time, e.g. Ts=1T_s = 1Ts​=1
  • From the step test, derive DTSRM coefficients

ai=y′(i)Δu(t0),y′(i)=y(i)−y(0)(1) a_i = \frac{y'(i)}{\Delta u(t_0)}, \quad y'(i) = y(i) - y(0) \tag{1}ai​=Δu(t0​)y′(i)​,y′(i)=y(i)−y(0)(1)

  • A set of coefficients aia_iai​ for i=0,1,2,…,ni = 0, 1, 2, \dots, ni=0,1,2,…,n defines the DTSRM

Example: DTSRM

t i Δu y(t) aᵢ
0 0 1 0.00 0.00
1 1 0 0.00 0.00
2 2 0 0.63 0.63
3 3 0 0.87 0.87
4 4 0 0.95 0.95
5 5 0 0.98 0.98
6 6 0 0.99 0.99
7 7 0 1.00 1.00
8 8 0 1.00 1.00
  • Input step change at t=0t = 0t=0 by 1 unit
  • Only one input change is applied at t=0t = 0t=0
  • Several input changes could be applied at different ttt values
  • A set of coefficients aia_iai​ for i=0,1,…,8i = 0, 1, \dots, 8i=0,1,…,8 is calculated
  • nnn is chosen so that the process reaches a new steady state

Response of a process to an input change

  • From Eqn. (1):

y(ti)=y′(ti)+y(t0)=aiΔu(t0)(2) y(t_i) = y'(t_i) + y(t_0) = a_i \Delta u(t_0) \tag{2}y(ti​)=y′(ti​)+y(t0​)=ai​Δu(t0​)(2)

  • Eqn. (2) can be extended to predict y(t)y(t)y(t) for several input changes at t=t0,t1,t2,…t = t_0, t_1, t_2, \dotst=t0​,t1​,t2​,…

{y1−y0=a1Δu0=a1Δu(t0)y2−y0=a2Δu0+a1Δu1y3−y0=a3Δu0+a2Δu1+a1Δu3(3) \begin{cases} y_1 - y_0 = a_1 \Delta u_0 = a_1 \Delta u(t_0) \\ y_2 - y_0 = a_2 \Delta u_0 + a_1 \Delta u_1 \\ y_3 - y_0 = a_3 \Delta u_0 + a_2 \Delta u_1 + a_1 \Delta u_3 \end{cases} \tag{3}⎩⎨⎧​y1​−y0​=a1​Δu0​=a1​Δu(t0​)y2​−y0​=a2​Δu0​+a1​Δu1​y3​−y0​=a3​Δu0​+a2​Δu1​+a1​Δu3​​(3)

  • In general:

yn−y0=∑i=1naiΔu(tn−i)(4) y_n - y_0 = \sum_{i=1}^{n} a_i \Delta u(t_{n-i}) \tag{4}yn​−y0​=i=1∑n​ai​Δu(tn−i​)(4)

Response to input changes in matrix form

[y′(t1)y′(t2)y′(t3)y′(t4)⋮y′(tn)]=[a1000⋯a2a100⋯a3a2a10⋯a4a3a2a1⋯⋮⋮⋮⋮⋱amam−1⋯a2a1][Δu(t0)Δu(t1)Δu(t2)Δu(t3)⋮Δu(tn−1)] \begin{bmatrix} y'(t_1) \\ y'(t_2) \\ y'(t_3) \\ y'(t_4) \\ \vdots \\ y'(t_n) \end{bmatrix} = \begin{bmatrix} a_1 & 0 & 0 & 0 & \cdots \\ a_2 & a_1 & 0 & 0 & \cdots \\ a_3 & a_2 & a_1 & 0 & \cdots \\ a_4 & a_3 & a_2 & a_1 & \cdots \\ \vdots & \vdots & \vdots & \vdots & \ddots \\ a_m & a_{m-1} & \cdots & a_2 & a_1 \end{bmatrix} \begin{bmatrix} \Delta u(t_0) \\ \Delta u(t_1) \\ \Delta u(t_2) \\ \Delta u(t_3) \\ \vdots \\ \Delta u(t_{n-1}) \end{bmatrix} ​y′(t1​)y′(t2​)y′(t3​)y′(t4​)⋮y′(tn​)​​=​a1​a2​a3​a4​⋮am​​0a1​a2​a3​⋮am−1​​00a1​a2​⋮⋯​000a1​⋮a2​​⋯⋯⋯⋯⋱a1​​​​Δu(t0​)Δu(t1​)Δu(t2​)Δu(t3​)⋮Δu(tn−1​)​​

y′=AΔu y' = A \Delta u y′=AΔu

  • nnn is the prediction horizon
  • mmm is the model horizon
  • n>mn > mn>m, typically n=1.5mn = 1.5mn=1.5m
  • For a single input step change: Tstt=mTsT_{stt} = mT_sTstt​=mTs​
  • For multiple input changes, settling time is longer than TsttT_{stt}Tstt​

Moving horizon algorithm

Moving horizon algorithm

  • Future manipulated variable (MV) values are chosen to regulate the controlled variable (CV) to its setpoint using the DTSRM and past input history

  • After each control interval, the present CV value and the last MV change Δu(t)\Delta u(t)Δu(t) are measured

  • The controller recalculates a new sequence of MV values into the future to meet the control objective

  • Only the first move from the optimized sequence is implemented

    • At the next interval, the horizon shifts forward and the optimization is repeated

Prediction vector yPy^PyP

  • So far, we assumed that y(t0)y(t_0)y(t0​) is at steady state and MV changes occur only for t>t0t > t_0t>t0​
  • In practice, this assumption is unrealistic since MV changes for t<t0t < t_0t<t0​ are likely to exist
  • The effect of past input changes Δu(t)\Delta u(t)Δu(t) for t<t0t < t_0t<t0​ must be included to predict future CV behavior
  • The prediction vector yPy^PyP represents the effect of previous MV changes on CV for t>t0t > t_0t>t0​
    • If no future MV changes are applied (Δu(t)=0\Delta u(t) = 0Δu(t)=0 for t>t0t > t_0t>t0​), yPy^PyP captures the continuing response of the CV

Prediction vector yPy^PyP

  • Assume the model horizon mmm time steps, so that an input change has reached steady state
  • Using Eqn. (4), the prediction vector at t=t1t = t_1t=t1​ is

yP(t1)=  y(t−m)+amΔu(t−m)+amΔu(t−m+1)+am−1Δu(t−m+2)+⋯+a2Δu(t−1)(5) \begin{aligned} y^P(t_1) = \; & y(t_{-m}) + a_m \Delta u(t_{-m}) + a_m \Delta u(t_{-m+1}) \\ & + a_{m-1}\Delta u(t_{-m+2}) + \dots + a_2 \Delta u(t_{-1}) \end{aligned} \tag{5}yP(t1​)=​y(t−m​)+am​Δu(t−m​)+am​Δu(t−m+1​)+am−1​Δu(t−m+2​)+⋯+a2​Δu(t−1​)​(5)

  • Notes:
    • a−m=am,  a−m+1=am+1,…a_{-m} = a_m, \; a_{-m+1} = a_{m+1}, \dotsa−m​=am​,a−m+1​=am+1​,…
    • am+j=ama_{m+j} = a_mam+j​=am​ for j=1,2,3,…j = 1, 2, 3, \dotsj=1,2,3,… once the steady state is reached
    • Negative subscripts indicate sampling intervals before t0t_0t0​
  • General form:

yP(t1)=y−m+∑i=−m−1aiΔu(tm−i) y^P(t_1) = y_{-m} + \sum_{i=-m}^{-1} a_i \Delta u(t_{m-i}) yP(t1​)=y−m​+i=−m∑−1​ai​Δu(tm−i​)

Matrix form of yPy^PyP

[yP(t1)yP(t2)⋮yP(tn)]=[y(t−m)y(t−m)⋮y(t−m)]+AP[Δu(t−m)Δu(t−m+1)⋮Δu(t−1)] \begin{bmatrix} y^P(t_1) \\ y^P(t_2) \\ \vdots \\ y^P(t_n) \end{bmatrix} = \begin{bmatrix} y(t_{-m}) \\ y(t_{-m}) \\ \vdots \\ y(t_{-m}) \end{bmatrix} + A^P \begin{bmatrix} \Delta u(t_{-m}) \\ \Delta u(t_{-m+1}) \\ \vdots \\ \Delta u(t_{-1}) \end{bmatrix} ​yP(t1​)yP(t2​)⋮yP(tn​)​​=​y(t−m​)y(t−m​)⋮y(t−m​)​​+AP​Δu(t−m​)Δu(t−m+1​)⋮Δu(t−1​)​​

yP=y(t−m)+APΔuP y^P = y(t_{-m}) + A^P \Delta u^P yP=y(t−m​)+APΔuP

  • nnn = prediction horizon (number of future steps, with n>mn > mn>m)
  • mmm = model horizon (time steps needed for steady-state response)
  • y(t−k)y(t_{-k})y(t−k​) = value of CV at t=t0−kTst = t_0 - kT_st=t0​−kTs​, where kkk is the number of steps from present to historical past

Prediction values of y(t)y(t)y(t) for t>t0t > t_0t>t0​

  • Future CV values are predicted by combining effects of:
    • Past input movements (prediction vector yPy^PyP)
    • Future input movements (Δu\Delta uΔu)

y~=yP+AΔu \tilde{y} = y^P + A \Delta u y~​=yP+AΔu

∴  y~=y(t−m)+APΔuP+AΔu \therefore \; \tilde{y} = y(t_{-m}) + A^P \Delta u^P + A \Delta u ∴y~​=y(t−m​)+APΔuP+AΔu

  • Accuracy of predictions depends on:
    • Errors in identifying DTSRM coefficients
    • Unmeasured disturbances
    • Nonlinear process behavior
    • Lack of steady-state behavior at t=t−mt = t_{-m}t=t−m​

Reducing Effects of Process/Model Mismatch

  • Reliability of MPC requires that the deviation of the model from the actual process is small

    • Large mismatch can degrade control performance
  • The error between measured y(t0)y(t_0)y(t0​) and predicted yP(t0)y^P(t_0)yP(t0​) can be used to correct predictions

  • Recall equation (6):
    y~=yP+AΔu \tilde{y} = y^P + A \Delta u y~​=yP+AΔu

  • Prediction error:
    ε=yP(t0)−y(t0) \varepsilon = y^P(t_0) - y(t_0) ε=yP(t0​)−y(t0​)

  • Corrected model:
    y=yP+AΔu+ϕT y = y^P + A \Delta u + \phi^T y=yP+AΔu+ϕT

  • Error vector:
    ϕ=[ε,ε,ε,…,ε] \phi = [\varepsilon, \varepsilon, \varepsilon, \dots, \varepsilon] ϕ=[ε,ε,ε,…,ε]

  • Number of rows of ϕT\phi^TϕT matches the dimension of yyy

DMC Control Law

  • DMC control law is based on minimizing the error from setpoint EEE
  • The objective function Φ\PhiΦ is the sum of the squared errors from setpoint over the prediction horizon nnn

Φ=∑i=1n[ysp−y(ti)]2 \Phi = \sum_{i=1}^n \bigl[y_{sp} - y(t_i)\bigr]^2 Φ=i=1∑n​[ysp​−y(ti​)]2

Error term: E(ti)=ysp−yP(ti)−ε E(t_i) = y_{sp} - y^P(t_i) - \varepsilon E(ti​)=ysp​−yP(ti​)−ε

So, Φ=∑[E(ti)−yc(ti)]2 \Phi = \sum \bigl[E(t_i) - y^c(t_i)\bigr]^2 Φ=∑[E(ti​)−yc(ti​)]2

Taking derivative: ∂Φ∂Δu=AT(AΔu−E)=0 \frac{\partial \Phi}{\partial \Delta u} = A^T \bigl(A \Delta u - E \bigr) = 0 ∂Δu∂Φ​=AT(AΔu−E)=0

Hence the control law: Δu=KDMCE \Delta u = K_{DMC} E Δu=KDMC​E

where KDMC=(ATA)−1AT K_{DMC} = \bigl(A^T A \bigr)^{-1} A^T KDMC​=(ATA)−1AT

DMC computations

Move Suppression Factor Q

  • Basic DMC can be very aggressive

    • Focuses on minimizing deviation from setpoint
    • Ignores large changes in MV levels
  • This causes sharp changes in MV, which is undesirable

  • Solution: Add a move suppression term

    • Introduce diagonal matrix Q2Q^2Q2 into the control law
    • Penalizes rapid MV adjustments
  • Effect of qqq

    • Larger qqq → more penalty on Δu\Delta uΔu
    • Leads to smoother, less aggressive control actions

Control law with suppression:

Δu=(ATA+Q2)−1ATE \Delta u = (A^T A + Q^2)^{-1} A^T E Δu=(ATA+Q2)−1ATE

Suppression matrix:

Q=[q00…00q0…000q…0⋮⋮⋮⋱⋮000…q] Q = \begin{bmatrix} q & 0 & 0 & \dots & 0 \\ 0 & q & 0 & \dots & 0 \\ 0 & 0 & q & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & q \end{bmatrix} Q=​q00⋮0​0q0⋮0​00q⋮0​………⋱…​000⋮q​​

Summary

  • Decouplers reduce control-loop interactions and improve performance

  • Two common industrial control architectures:

    • Decentralized (multi-loop)
    • Centralized (multivariable)
  • Model Predictive Control (MPC) is the most widely used multivariable controller in process industries

  • One of the most common MPC variants is Dynamic Matrix Control (DMC)

  • MPC requires a process model and an optimizer

  • Advantages of MPC

    • Handles constraints explicitly
    • Provides feedforward compensation for disturbances
    • Manages process interactions effectively
    • Can incorporate nonlinear models if needed
  • Optimal control actions are computed as

Δu=KDMCE \Delta u = K_{DMC} E Δu=KDMC​E

Advanced Modeling and Control

1 / 29
Multivariable Centralized Control and MPC Advanced Modeling and Control

  1. Slides

  2. Tools

  3. Close
  • Multivariable Centralized Control and MPC
  • 2x2 MIMO process system
  • Decoupling controller
  • One way decoupler
  • Two way decoupler
  • Multi-loop controllers for distillation column
  • Multivariable control (MPC)
  • Multivariable controllers for distillation column
  • Multi-loop control block diagram
  • Multivariable controller block diagram
  • Model Predictive Control (MPC)
  • Genealogy of linear MPC algorithms
  • Dynamic Matrix Control (DMC)
  • Discrete-Time Step Response Model (DTSRM)
  • DTSRM developed from FOPDT
  • Example: DTSRM
  • Response of a process to an input change
  • Response to input changes in matrix form
  • Moving horizon algorithm
  • Moving horizon algorithm
  • Prediction vector y^P
  • Prediction vector y^P
  • Matrix form of y^P
  • Prediction values of y(t) for t > t_0
  • Reducing Effects of Process/Model Mismatch
  • DMC Control Law
  • DMC computations
  • Move Suppression Factor Q
  • Summary
  • f Fullscreen
  • s Speaker View
  • o Slide Overview
  • e PDF Export Mode
  • r Scroll View Mode
  • b Toggle Chalkboard
  • c Toggle Notes Canvas
  • d Download Drawings
  • ? Keyboard Help