Skip to content

Cascade Controller ​

Master-slave PID cascade for improved disturbance rejection

Overview ​

The Cascade Controller implements a master-slave PID structure where the outer (master) controller's output becomes the setpoint for the inner (slave) controller. This arrangement provides superior disturbance rejection for nested control problems.

When to Use ​

  • Nested process dynamics: When one variable affects another sequentially
  • Fast inner loop: When inner variable responds faster than outer
  • Better disturbance rejection: When upsets affect the inner loop first

Common Applications ​

Master VariableSlave VariableApplication
MLSSDOAeration control
Effluent TNMethanol doseDenitrification
SRTWAS flowSolids management
TemperatureCooling waterDigester control

Control Theory ​

Concept ​

mermaid
graph LR
    SP_M[Master SP] --> M_Sum((+/-))
    PV_M[Master PV] --> M_Sum
    M_Sum --> Master[Master PID]
    Master --> SP_S[Slave SP]
    SP_S --> S_Sum((+/-))
    PV_S[Slave PV] --> S_Sum
    S_Sum --> Slave[Slave PID]
    Slave --> MV[Output]
    MV --> Inner[Inner Process]
    Inner --> Outer[Outer Process]
    Inner --> PV_S
    Outer --> PV_M

Mathematical Model ​

Master Controller: $$u_m(t) = K_{pm} \cdot e_m + K_{im} \int e_m , dt + K_{dm} \frac{de_m}{dt}$$

Slave Controller: $$u_s(t) = K_{ps} \cdot e_s + K_{is} \int e_s , dt + K_{ds} \frac{de_s}{dt}$$

Where:

  • $e_m = SP_{master} - PV_{master}$ (master error)
  • $e_s = u_m - PV_{slave}$ (slave error = master output - slave PV)
  • $u_s$ = Final output to manipulated variable

Parameters ​

Master Loop ​

ParameterSymbolRangeDefaultDescription
SetpointSP_mProcess dependent-Master setpoint
Proportional gainK_pm0.1 - 101.0Master Kp
Integral gainK_im0.01 - 10.1Master Ki
Derivative gainK_dm0 - 10Master Kd
Output min-Process dependent0Min slave setpoint
Output max-Process dependent100Max slave setpoint

Slave Loop ​

ParameterSymbolRangeDefaultDescription
Proportional gainK_ps0.5 - 202.0Slave Kp
Integral gainK_is0.1 - 50.5Slave Ki
Derivative gainK_ds0 - 10.1Slave Kd
Output min-Process dependent0Min MV output
Output max-Process dependent100Max MV output

Tuning Guidelines ​

Cascade Tuning Procedure ​

  1. Place master in manual - Hold slave setpoint constant
  2. Tune slave first - As standard PID loop
  3. Verify slave response - Should be 3-5× faster than master
  4. Close slave loop - Slave now tracks setpoint
  5. Tune master - As if slave were the process

Rule of Thumb ​

The master loop should be 3-5× slower than the slave loop:

$$\tau_{master} \approx (3 \text{ to } 5) \times \tau_{slave}$$

ApplicationMaster KpMaster KiSlave KpSlave Ki
DO cascade0.50.055010
Temperature cascade1.00.12.00.5
Pressure cascade0.80.083.01.0

Configuration ​

Example: DO Cascade Control ​

json
{
  "id": "do-cascade-1",
  "type": "Cascade",
  "enabled": true,
  "master": {
    "setpoint": 3000,
    "kp": 0.5,
    "ki": 0.05,
    "kd": 0,
    "outputMin": 0.5,
    "outputMax": 4.0,
    "pvNodeId": "aerobic-reactor-1",
    "pvVariable": "MLSS"
  },
  "slave": {
    "kp": 50,
    "ki": 10,
    "kd": 5,
    "outputMin": 0,
    "outputMax": 1000,
    "pvNodeId": "aerobic-reactor-1",
    "pvVariable": "DO",
    "manipulatedVariable": "airflow",
    "targetNodeId": "aerobic-reactor-1"
  },
  "mode": "auto",
  "bumplessTransfer": true
}

Integration Example ​

MLSS-DO Cascade for Aeration ​

Scenario: Maintain MLSS at 3000 mg/L by adjusting DO setpoint, which in turn adjusts airflow.

  1. Master loop monitors MLSS
  2. If MLSS high, master reduces DO setpoint → less aeration → less oxygen for growth
  3. Slave loop adjusts airflow to meet new DO setpoint
  4. Fast DO control rejects disturbances before affecting MLSS

Benefits ​

  • Disturbances to airflow are corrected quickly by slave
  • MLSS remains stable despite blower variations
  • More robust than single-loop MLSS control

Best Practices ​

  1. Inner loop must be faster - Verify slave response time
  2. Start with slave tuning - Get inner loop right first
  3. Use bumpless transfer - Prevent bumps on mode changes
  4. Monitor both loops - Track master and slave outputs
  5. Decouple if needed - Consider if loops interact

Troubleshooting ​

IssueCauseSolution
Master oscillatesMaster too fastReduce master Kp, Ki
Slave oscillatesSlave too aggressiveRetune slave alone
Slow responseMaster too slowIncrease master gains
Bumps on startupNo bumpless transferEnable bumplessTransfer
InteractionLoops similar speedSlow down master 3-5×

References ​

  1. Marlin, T.E. "Process Control" (2nd Edition), Chapter 14
  2. Shinskey, F.G. "Process Control Systems" (4th Edition)