Cascade Control Loop Tuning Calculator

Tune the secondary and primary PI loops of a cascade control scheme from each process's gain, time constant, and dead time, and validate the required speed separation.

🔁 Cascade Control Loop Tuning Calculator
Kp2
τ2 s
θ2 s
λ2 s
Kp1
τ1 s
θ1 s
λ1 s
Speed separation ratio
Separation verdict
Secondary Kc2
Secondary Ti2
Primary Kc1
Primary Ti1
Step-by-step working

🔁 What is Cascade Control?

Cascade control is a control architecture that nests two feedback loops together, a fast secondary (inner, or slave) loop working inside a slower primary (outer, or master) loop, instead of using a single feedback loop to control everything. The primary controller does not manipulate the final control element directly, instead its output becomes the setpoint for the secondary controller, which manipulates the actual valve or actuator and reacts to disturbances that enter within its own faster loop long before they can propagate out to the slower primary variable.

Cascade structures appear throughout process industries wherever a fast, directly measurable variable sits between the final actuator and a slower variable of real interest. A flow loop nested inside a tank level loop lets the level controller issue a flow setpoint instead of fighting valve nonlinearity and supply pressure swings directly. A valve-position or coolant-flow loop nested inside a reactor temperature loop rejects upstream pressure disturbances in seconds rather than letting them show up as a slow temperature drift minutes later. A motor current loop nested inside a motor speed loop is the same idea applied to electrical drives.

A common misconception is that adding a cascade structure is only about adding more control hardware or complexity for its own sake. In reality, the entire benefit comes from exploiting a genuine speed difference between the two loops, if the secondary loop is not meaningfully faster than the primary, cascading adds complexity without adding disturbance-rejection performance, and can even make the primary loop harder to tune because it now has to account for the secondary loop's own dynamics. The value only appears once the secondary loop is tuned fast and tight relative to the primary.

This calculator tunes both loops from their individual first-order-plus-dead-time process models using the SIMC PI rule, then validates the single design decision that makes or breaks a cascade scheme: whether the secondary loop's closed-loop time constant is fast enough, by the standard 3-5x rule of thumb, relative to the primary's.

📐 Formula

Kc  =  τ / [K(λ+θ)]     Ti  =  min(τ, 4(λ+θ))     ratio  =  λ1 / λ2
K, τ, θ = process gain, time constant (s), and dead time (s), separately for the secondary (subscript 2) and primary (subscript 1) loop
λ = desired closed-loop time constant for that loop (the SIMC tuning parameter), chosen independently for each loop
SIMC PI rule (Skogestad, 2003), applied to each loop with its own K, τ, θ, λ
Recommended ratio λ1/λ2 ≥ 3, ideally 3-5× or faster, so the primary loop can treat the closed secondary loop as effectively instantaneous
Example: Secondary Kp2=1.2, τ2=8 s, θ2=1 s, λ2=4 s → Kc2=1.3333, Ti2=8 s; Primary λ1=20 s → ratio = 20/4 = 5.00× (passes)

📖 How to Use This Calculator

Steps

1
Enter the secondary (inner) loop process model. Type Kp2, tau2, and theta2 for the fast secondary process, plus lambda2, the desired secondary closed-loop time constant.
2
Enter the primary (outer) loop process model. Type Kp1, tau1, and theta1 for the slower primary process, plus lambda1, the desired primary closed-loop time constant.
3
Read the tuned gains and separation verdict. See Kc and Ti for both loops, the speed separation ratio lambda1/lambda2, and whether it meets the recommended 3-5x rule of thumb.

💡 Example Calculations

Example 1 — Level Loop Cascaded on a Flow Loop

Secondary: Kp2=1.2, τ2=8 s, θ2=1 s, λ2=4 s. Primary: Kp1=0.8, τ1=120 s, θ1=5 s, λ1=20 s

1
Secondary: Kc2 = 8/[1.2×(4+1)] = 1.3333, Ti2 = min(8, 4×5) = 8.0000 s
2
Primary: Kc1 = 120/[0.8×(20+5)] = 6.0000, Ti1 = min(120, 4×25) = 100.0000 s
3
Speed separation ratio = 20/4 = 5.00×, at the top of the recommended 3-5× range
Kc2=1.3333, Ti2=8.00 s, Kc1=6.0000, Ti1=100.00 s, ratio=5.00x (Sufficient separation)
Try this example →

Example 2 — Insufficient Speed Separation

Same secondary loop, but primary λ1 tuned too fast at 8 s

1
Secondary gains unchanged: Kc2 = 1.3333, Ti2 = 8.0000 s
2
Primary: Kc1 = 120/[0.8×(8+5)] = 11.5385, Ti1 = min(120, 4×13) = 52.0000 s
3
Speed separation ratio = 8/4 = 2.00×, below the recommended minimum of 3×
Ratio = 2.00x, flagged as Insufficient separation, decrease λ2 or increase λ1
Try this example →

Example 3 — Temperature Loop Cascaded on a Coolant Flow Loop

Secondary: Kp2=2.0, τ2=15 s, θ2=2 s, λ2=6 s. Primary: Kp1=1.5, τ1=300 s, θ1=10 s, λ1=30 s

1
Secondary: Kc2 = 15/[2.0×(6+2)] = 0.9375, Ti2 = min(15, 4×8) = 15.0000 s
2
Primary: Kc1 = 300/[1.5×(30+10)] = 5.0000, Ti1 = min(300, 4×40) = 160.0000 s
3
Speed separation ratio = 30/6 = 5.00×, at the top of the recommended range
Kc2=0.9375, Ti2=15.00 s, Kc1=5.0000, Ti1=160.00 s, ratio=5.00x (Sufficient separation)
Try this example →

❓ Frequently Asked Questions

What is cascade control and when is it used?+
Cascade control uses two nested PID (or PI) loops, a fast secondary (inner) loop nested inside a slower primary (outer) loop, where the secondary loop's setpoint is the output of the primary controller. It is used when a faster, more directly measurable variable (like flow through a valve) sits between the final control element and the slower variable the process actually needs to control (like tank level or temperature).
What is the difference between the primary and secondary loop in cascade control?+
The secondary (or slave/inner) loop controls a fast, intermediate variable, typically flow or valve position, and rejects disturbances close to where they enter the process. The primary (or master/outer) loop controls the actual variable of interest, such as temperature or level, by adjusting the secondary loop's setpoint rather than the final control element directly.
Why must the secondary loop be faster than the primary loop?+
If the secondary loop is not significantly faster, its own dynamics start to interact with the primary loop's control action, effectively adding extra unmodeled lag to what the primary controller sees. The classic rule of thumb is that the secondary loop's closed-loop time constant should be 3 to 5 times faster than the primary's, so the primary loop can treat it as an effectively instantaneous actuator.
What is the SIMC PI tuning rule used by this calculator?+
SIMC (Skogestad's Internal Model Control rule, 2003) gives Kc = tau/(K(lambda+theta)) and Ti = min(tau, 4(lambda+theta)) for a first-order-plus-dead-time process with gain K, time constant tau, and dead time theta, where lambda is the desired closed-loop time constant. It is a simple, well-tested rule that works for both fast secondary loops and slower primary loops.
How do I choose lambda for the secondary and primary loops?+
Choose lambda2 for the secondary loop first, as fast as the process and actuator can safely support (often close to or a little above its dead time theta2). Then choose lambda1 for the primary loop to be at least 3 to 5 times larger than lambda2, which this calculator checks automatically and flags if it falls short.
What happens if the speed separation ratio is too low?+
If lambda1/lambda2 falls below about 3x, the primary loop's assumption that the secondary loop responds instantly starts to break down, which can cause oscillation, overshoot, or sluggish disturbance rejection in the outer loop. The calculator flags this as insufficient separation and recommends decreasing lambda2 or increasing lambda1 until the ratio clears 3x.
Why is the secondary loop tuned before the primary loop?+
The primary loop's tuning formula treats the closed secondary loop as an approximately first-order, fast subsystem with its own settled dynamics. That assumption only holds once the secondary loop is already tuned and stable, so tuning order matters, secondary first, then primary using the secondary's achieved speed as a design input.
Can cascade control use PID instead of PI for the secondary loop?+
Yes, but PI is far more common in practice for secondary loops, since they usually control fast, low-noise variables like flow or pressure where derivative action adds little benefit and amplifies measurement noise. This calculator uses PI tuning for both loops to match that standard industrial practice.
What's a typical real-world example of cascade control?+
A classic example is a jacketed reactor temperature loop: the primary loop measures reactor temperature and outputs a setpoint for coolant flow, while the secondary loop measures actual coolant flow and rapidly adjusts the valve to hit that setpoint, rejecting supply-pressure disturbances long before they would otherwise show up as a slow, hard-to-correct temperature swing.
Does cascade control eliminate the need for feedforward control?+
No, they solve different problems and are often combined. Cascade control speeds up disturbance rejection for disturbances entering inside the secondary loop, feedforward control (see the Feedforward Control Estimator on this site) cancels a specific, measurable disturbance before it affects the output at all, regardless of which loop it enters through.

What is cascade control and when is it used?

Cascade control uses two nested PID (or PI) loops, a fast secondary (inner) loop nested inside a slower primary (outer) loop, where the secondary loop's setpoint is the output of the primary controller. It is used when a faster, more directly measurable variable (like flow through a valve) sits between the final control element and the slower variable the process actually needs to control (like tank level or temperature).

What is the difference between the primary and secondary loop in cascade control?

The secondary (or slave/inner) loop controls a fast, intermediate variable, typically flow or valve position, and rejects disturbances close to where they enter the process. The primary (or master/outer) loop controls the actual variable of interest, such as temperature or level, by adjusting the secondary loop's setpoint rather than the final control element directly.

Why must the secondary loop be faster than the primary loop?

If the secondary loop is not significantly faster, its own dynamics start to interact with the primary loop's control action, effectively adding extra unmodeled lag to what the primary controller sees. The classic rule of thumb is that the secondary loop's closed-loop time constant should be 3 to 5 times faster than the primary's, so the primary loop can treat it as an effectively instantaneous actuator.

What is the SIMC PI tuning rule used by this calculator?

SIMC (Skogestad's Internal Model Control rule, 2003) gives Kc = tau/(K(lambda+theta)) and Ti = min(tau, 4(lambda+theta)) for a first-order-plus-dead-time process with gain K, time constant tau, and dead time theta, where lambda is the desired closed-loop time constant. It is a simple, well-tested rule that works for both fast secondary loops and slower primary loops.

How do I choose lambda for the secondary and primary loops?

Choose lambda2 for the secondary loop first, as fast as the process and actuator can safely support (often close to or a little above its dead time theta2). Then choose lambda1 for the primary loop to be at least 3 to 5 times larger than lambda2, which this calculator checks automatically and flags if it falls short.

What happens if the speed separation ratio is too low?

If lambda1/lambda2 falls below about 3x, the primary loop's assumption that the secondary loop responds instantly starts to break down, which can cause oscillation, overshoot, or sluggish disturbance rejection in the outer loop. The calculator flags this as insufficient separation and recommends decreasing lambda2 or increasing lambda1 until the ratio clears 3x.

Why is the secondary loop tuned before the primary loop?

The primary loop's tuning formula treats the closed secondary loop as an approximately first-order, fast subsystem with its own settled dynamics. That assumption only holds once the secondary loop is already tuned and stable, so tuning order matters, secondary first, then primary using the secondary's achieved speed as a design input.

Can cascade control use PID instead of PI for the secondary loop?

Yes, but PI is far more common in practice for secondary loops, since they usually control fast, low-noise variables like flow or pressure where derivative action adds little benefit and amplifies measurement noise. This calculator uses PI tuning for both loops to match that standard industrial practice.

What's a typical real-world example of cascade control?

A classic example is a jacketed reactor temperature loop: the primary loop measures reactor temperature and outputs a setpoint for coolant flow, while the secondary loop measures actual coolant flow and rapidly adjusts the valve to hit that setpoint, rejecting supply-pressure disturbances long before they would otherwise show up as a slow, hard-to-correct temperature swing.

Does cascade control eliminate the need for feedforward control?

No, they solve different problems and are often combined. Cascade control speeds up disturbance rejection for disturbances entering inside the secondary loop; feedforward control (see the Feedforward Control Estimator on this site) cancels a specific, measurable disturbance before it affects the output at all, regardless of which loop it enters through.