Lesson 5 · Objective
Integral Control
By the end of this lesson you'll be able to explain why integral control exists and, mechanically, what it actually does: it takes the error signal and accumulates it over time. That's the whole idea — not a new instantaneous reaction to error like proportional, but a running total that keeps growing for as long as any error remains.
Quick Refresher: SP, PV, CO
A fast recap of the three terms you've already seen in earlier lessons:
Setpoint — the target value you want the process at.
Process Variable — the actual, measured value right now.
Controller Output — the signal sent to the final control element (the valve, the pump) to correct error.
Where We Left Off
Manual Reset — The Real Dial
Before we get to the automatic fix, see how operators used to handle this problem by hand. It wasn't a mode switch: the controller stayed in Auto the whole time. Manual Reset was a dedicated bias setting, the same CO = Bias + Kp × Error baseline from Lesson 4, that the operator dialed in by hand until the offset closed. Below, the controller is already in Auto, P-only, with that bias sitting at 0% — dial it up yourself until the level lands exactly on setpoint.
Concept
What Is Integral Control?
You just watched manual reset solve the problem for one load — and then fail the instant that load changed. Integral control is how engineers automated that exact correction so it runs continuously, without anyone ever walking over and touching a dial again.
Where proportional reacts to how big the error is right now, integral reacts to how long error has been sticking around. It keeps a running total — think of it as the area under the error curve — and adds that accumulated total into the controller output.
That last piece — Ki × ∫Error dt — just means "Ki times the running total of error, accumulated over time." Don't let the ∫ symbol intimidate you: all it's saying is keep adding up error as time passes. The longer error sticks around, and the bigger it is while it's there, the bigger that running total grows.
The Sum block adds the Proportional term, the Integral term, and bias together to produce CO — the two terms react to the same error signal in two very different ways.
Concept
Ki: The Accumulator — and Why It's Called "Reset"
If Kp is a multiplier on error, think of Ki as a dial on how fast the accumulator fills. A bigger Ki means the same lingering error piles up into a bigger contribution faster; a smaller Ki means it takes longer for the same error to add up to much.
A Name From an Older Era
You'll sometimes see this term called Reset instead of Integral — on older controllers, in some industrial documentation, and in the tuning-unit name "repeats per minute." That's not a different concept, it's an older name for the exact same thing — and you've actually already done the manual half of that history yourself, a couple of pages back.
That history is also where the odd-sounding tuning unit "repeats per minute" comes from (or its flip side, minutes per repeat, also called reset time, Ti = Kp ÷ Ki): it's literally counting how many times per minute the automatic action "repeats" the correction a human used to make by hand.
Some controllers even let you switch the whole tuning display between styles — a "plain" view (P/I/D), a "gains" view (Kp/Ki/Kd), and an "industrial" view that shows Reset (and Rate, for the D term you'll meet in a later lesson) instead of the raw numbers. Same underlying math every time — just a different label on the same knob, exactly like proportional band was a different label for Kp back in Lesson 4.
Side-by-Side: P Alone vs. P + I
Same setpoint step, same process, run through two controllers side by side — the only difference is whether Ki is zero or not. Watch where each one settles.
Add Ki Yourself
The button below opens the real PID simulator in its own tab, already set up for this exercise — this lesson tab stays open behind it, so just switch back (or close that tab) when you're done.
Too Aggressive: When Ki Is Too High
Last page, Ki = 0.3 walked the level smoothly up to setpoint and held it there. That doesn't mean bigger is always better — push Ki too high and the same accumulator that closes offset so nicely can start working against you.
Here's why: the integral term keeps adding correction into CO for as long as any error remains, at a rate set by Ki. If Ki is too large, that correction piles on faster than the process can actually respond — by the time the level catches up to setpoint, the accumulator has already added way more correction than was needed, so the level sails right past it. Then the sign of the error flips, the accumulator starts unwinding the other way, and the whole thing overshoots again before it finally settles. That's the same oscillation risk you saw with Kp set too high back in Lesson 4 — just driven by the accumulator instead of the instantaneous gain.
Tune It Yourself
The button below opens the real PID simulator in its own tab, already set up for this exercise — this lesson tab stays open behind it, so just switch back (or close that tab) when you're done.
The Core Idea
Saturation & Integral Windup
Back in Lesson 3, you learned about saturation — when the calculated controller output would exceed what the valve or pump can physically deliver, so the real CO pins at 0% or 100% no matter how much bigger (or smaller) the math says it should be. At the time, you were told there was a specific problem that saturation sets up for integral control. Here it is.
What Goes Wrong
Remember, the integral term doesn't care whether CO can actually act on the error — it just keeps adding error into its running total, every instant error exists. Now picture what happens while CO is saturated:
- Error is large — the valve is already maxed out trying to correct it, but it isn't enough (or the process just hasn't caught up yet).
- The integral term keeps accumulating that error anyway, growing bigger and bigger — even though CO is already pinned and literally cannot move any further to act on it.
- Eventually the disturbance clears and PV starts catching up toward setpoint. But CO doesn't come off saturation right away — it stays pinned, because the accumulated integral total is still enormous and has to unwind first.
- By the time CO finally does come off the limit and starts correcting normally again, PV has already sailed past setpoint — a bad overshoot caused entirely by that backlog of accumulated error the integral term built up while it couldn't do anything useful with it.
This whole phenomenon — the integral term over-accumulating during saturation, then causing a big overshoot once the actuator is freed up again — is called integral windup (or just "windup").
| 1. CO pins | CO sits at 0% or 100% and stays there — the controller is asking for more than the actuator can deliver. |
| 2. PV starts recovering | PV begins heading back toward setpoint — the process is responding even though CO can't go any further. |
| 3. CO stays pinned anyway | CO doesn't back off — it stays pinned well after PV started moving the right way, and PV sails past setpoint. The accumulator built up a backlog while saturated and has to unwind before CO can come off the limit. |
Part 3 is the tell. Parts 1 and 2 alone are just a saturated loop working hard — normal and healthy. It's only windup when CO refuses to back off after the process has already started recovering. A loop that's simply tuned too aggressively also overshoots, but its CO comes off the limit as soon as the error shrinks; a wound-up loop's does not. Same overshoot, different cause, different fix. Most modern controllers ship with anti-windup built in, so this shows up mainly in older or hand-written PID code and in cascade / split-range setups where the secondary is in manual.
On the next page, you'll watch this happen live.
Watch Windup Happen — and the Fix
The button below opens the real PID simulator in its own tab. This demo is click-driven — follow the steps below in order to see CO pin, the I-term run away past 100 with Anti-Windup off, then snap back the instant you turn it on again.
How Windup Is Generally Handled
Real controllers don't just let this happen unchecked — there are standard ways to stop it, and you just saw the simplest one demonstrated live above:
- Anti-windup clamping — the integral accumulator is simply stopped (clamped) from growing any further the moment CO hits its saturation limit. It can still shrink if error reverses sign, but it can't keep piling up while CO is already maxed out and unable to act on it.
- Conditional integration — a close cousin of the same idea: the controller only lets the integral term accumulate under conditions where doing so would actually still help (for example, only while CO is not saturated, or only while error is pushing CO further into the limit rather than away from it).
Either approach does the same basic job: keep the accumulator from building up a backlog it can't use, so there's nothing left to unwind — and overshoot — once the actuator comes free again.
Review