Advanced Regulatory Control: Cascade, Feedforward, Ratio & More
Single PID loops are not enough for real plants. Learn cascade control, feedforward (static and dynamic), ratio control, split-range, override/selector control, valve-position control, Smith predictor for dead time, and decoupling for interacting loops — with a simulation showing feedforward cancelling a disturbance.
Advanced regulatory control (ARC) combines simple PID blocks into structures that handle disturbances, constraints and interactions. These strategies are configured in every DCS and deliver a large part of the benefit of 'advanced process control' at low cost.
Each strategy answers a specific problem: a fast inner disturbance (cascade), a measurable disturbance (feedforward), a blend (ratio), one controller with two valves (split range), a safety limit (override), a long delay (Smith predictor).
An analogy
Feedback is steering after the car drifts; feedforward is turning the wheel when you see the crosswind sign. Cascade is a manager (outer loop) giving targets to a fast worker (inner loop) who fixes small problems before the manager notices.
Cascade control
Two controllers in series: the outer (primary) controller's output is the setpoint of the inner (secondary) controller. Classic example: reactor temperature (slow) → jacket temperature or steam flow (fast). The inner loop corrects valve non-linearity and supply disturbances before they affect the primary variable. Tune the inner loop first, and put it in cascade (remote setpoint) mode before tuning the outer.
Feedforward and ratio
Feedforward measures a disturbance (feed flow, ambient temperature) and acts before it affects the output. Dynamic compensation (lead-lag + delay) matches the timing. Ratio control keeps one flow proportional to another (fuel/air, reflux/feed, blending); it is a special feedforward. In boiler control, a cross-limited fuel/air ratio ensures air leads on load increase and lags on decrease — always excess air for safety.
Split-range, override and valve-position control
Handling multiple actuators and constraints:
- Split range — one controller drives two valves (e.g. 0–50% cooling, 50–100% heating)
- Override/selector — low/high select between controllers to respect a limit (e.g. compressor surge, max temperature); requires external reset feedback to avoid windup
- Auctioneering — select the highest of several temperatures (hot-spot control)
- Valve-position control — slowly move a setpoint so a valve stays near an efficient opening
Dead time and interaction
Long dead times force slow PID tuning; a Smith predictor uses a process model to let the controller act on the predicted undelayed output — powerful but sensitive to model error. In multivariable processes (distillation top/bottom compositions) loops interact; the relative gain array (RGA) selects pairings (pair on λ close to 1, avoid negative), and decouplers or MPC handle strong interaction.
Formulas
- Ideal feedforward:
G_ff = −G_d / G_p (static: −K_d / K_p) - Lead-lag feedforward:
G_ff = −(K_d/K_p)·(τ_p s + 1)/(τ_d s + 1)·e^(−(θ_d−θ_p)s) - Ratio control:
SP_wild-follower = R × measured wild flow - Cascade rule of thumb:
inner loop ≥ 3–5× faster than outer - Smith predictor:
Controller sees model output without delay + model error
Worked example: Static feedforward gain
Given: Feed flow +10% lowers outlet T by 4 °C; steam valve +1% raises it by 0.5 °C
Find: Feedforward gain.
- G_ff = −K_d/K_p = −(−0.4 °C/%)/(0.5 °C/%)
Answer: +0.8% steam valve per % feed
Worked example: Ratio control
Given: Air/fuel ratio 17.2 (mass), fuel 0.5 kg/s
Find: Air setpoint.
- 17.2 × 0.5
Answer: 8.6 kg/s (plus trim for excess O₂)
Worked example: RGA pairing
Given: 2×2 RGA λ₁₁ = 0.85
Find: Pairing.
- λ₁₁ close to 1 → pair y₁–u₁, y₂–u₂
Answer: Diagonal pairing; mild interaction
Feedforward cancels a measured disturbance
# Feedforward: disturbance d enters through Gd = Kd/(tau s+1), same lag as the process
K, Kd, tau, dt = 2.0, 1.5, 10.0, 0.1
def run(use_ff):
y = 0.0; integ = 0.0; worst = 0.0
Kp, Ti = 1.0, 10.0
for n in range(600):
d = 1.0 if n * dt >= 5 else 0.0 # step disturbance at 5 s
e = 0.0 - y
integ += e * dt
u = Kp * (e + integ / Ti)
if use_ff:
u += -(Kd / K) * d # static feedforward cancels d
y += dt * (K * u + Kd * d - y) / tau
worst = max(worst, abs(y))
return worst
print(f"feedback only : peak deviation {run(False):.3f}")
print(f"with feedforward: peak deviation {run(True):.3f}")
# feedback only : peak deviation 0.376
# with feedforward: peak deviation 0.000When the disturbance and process have the same dynamics, a static gain −K_d/K_p cancels it perfectly. In reality the model is imperfect, so feedforward is always combined with feedback, which trims the remaining error.
Common mistakes
- Wrong: Outer loop faster than inner loop. — Right: Inner must be 3–5× faster.
- Wrong: Feedforward without feedback. — Right: Always keep feedback trim.
- Wrong: Override without external reset. — Right: Prevent windup in the unselected controller.
- Wrong: Smith predictor with a poor model. — Right: Check model accuracy; detune if uncertain.
Applications
- Boilers: Three-element drum level (level, steam flow FF, feedwater cascade).
- Furnaces: Cross-limited fuel/air ratio.
- Compressors: Anti-surge override control.
- Blending: Ratio control of ingredients.
Key takeaways
- Cascade: fast inner loop rejects local disturbances.
- Feedforward: act on measured disturbances; keep feedback.
- Ratio, split range, override solve specific problems.
- Dead time → Smith predictor; interaction → RGA/decoupling/MPC.
Going further
- Internal model control: Structure behind lambda tuning and Smith predictors.
- Relative gain array: λ = Kij·(K⁻¹)ji for loop pairing.
- Inferential control: Soft sensors estimate compositions from temperatures.