learn · South Africa
PID tuning by feel: getting a loop stable without ZN math
PID tuning by feel for SA control engineers — manual P, I, D sequence on a heater loop, derivative on PV, and a 3 percent overshoot target on step three.
PID tuning by feel is the part of the job that the textbooks make harder than it needs to be. The Ziegler-Nichols tables, the relay-feedback methods, the lambda tuning spreadsheets — they all have their place, but on a Wednesday afternoon at a brownfield FMCG plant where the heating loop on the chocolate temperer has been hunting plus or minus four degrees for a month and the production manager wants it fixed before the night-shift runs the cocoa batter, the engineer who can settle the loop in twenty minutes by watching the trend chart is the engineer who keeps getting called back. This tutorial walks the manual sequence — P only, then P plus I, then P plus I plus D — on a simulator temperature loop with specific gains and a specific overshoot target.
Try the simulator →Why this matters on real plants
Most loops on a SA plant are tuned once at commissioning, written down on a sheet that disappears, and never touched again until somebody complains. The classic pathology is a heating loop on a tank that was tuned at 60 percent fill and now runs at 90 percent fill — the process gain has changed, the time constant has changed, and the same controller settings now produce a slow oscillation that the operator has learned to ignore because it never quite trips an alarm. A PID loop is not a fit-and-forget device. It is a controller whose tuning depends on the process, and the process changes. An engineer who can re-tune by feel, without booking a four-hour test window and an external consultant, is the engineer who actually keeps the plant in spec.
The cost of getting PID tuning wrong is rarely a hard failure. It is product variation — a temperate window plus or minus four degrees instead of plus or minus one, a level that hunts by 200 mm instead of holding to 50 mm, a flow that overshoots ten percent on a setpoint change and takes two minutes to settle. Each of those costs reject product, energy waste, or operator attention. None of them trip an alarm. All of them are fixable in twenty minutes by an engineer who knows the manual sequence.
The third reason it matters more in SA than in textbook examples: load-shedding interrupts steady-state control loops daily on many plants, and a loop that recovers cleanly from a 30-minute power loss is a loop that was tuned with realistic integral wind-up limits and a derivative term that does not kick on the setpoint return. Loops tuned to a tight oscillation-free spec on a stable grid become unstable the moment the diesel comes on and the bus voltage sags. Tuning by feel teaches you to watch the recovery, not just the steady state.
The mental model
Every PID loop has three terms and they each fix a different shape of error on the trend chart. P fixes the proportional offset — the gap between PV and SP that scales with how far apart they are. I fixes the steady-state offset — the residual gap that P alone leaves behind. D fixes the rate of change — the overshoot when PV approaches SP too fast. Tuning by feel is the discipline of adding one term at a time and reading the trend chart at each step before adding the next.
Start with P only. Set Kp to a low number — 0.5 is a sane starting point for a temperature loop on a small heater — and step the setpoint by ten percent of full scale. Watch the PV. If the response is sluggish and reaches a plateau short of the setpoint, raise Kp. If it overshoots and oscillates without damping, lower Kp. The right Kp is the one where the loop responds in two to three time constants and damps within four oscillations or fewer. Do not move on until the proportional response looks clean. Adding I or D on top of a poorly tuned P just makes the diagnosis harder.
Add I next. The integral term — Ti, the integral time, in seconds — closes the steady-state offset that P leaves behind. Start Ti high — 60 seconds is conservative for a temperature loop — and lower it until the offset closes within a reasonable settling time. If you lower Ti too far the loop will oscillate again because integral wind-up overshoots the setpoint. The right Ti is the one where the offset closes in two to three time constants without re-introducing oscillation.
Add D last and only if the loop overshoots on a setpoint step. The derivative term — Td, in seconds — damps the rate of change as PV approaches SP. The trap is that derivative kicks hard on a setpoint change, which is why you put derivative on PV (not on error) — that way a setpoint step does not produce a spike in the D term. Start Td at one tenth of Ti and raise it until the overshoot drops below the target. Five seconds is a sane starting point for a temperature loop where Ti is 30 seconds.
Worked example
Open the simulator. Drop a CompactLogix CPU on the rack with an AI4 input module and an AO2 output module. Load the temperature-loop demo — an electric heater driving a stirred tank with a thermowell-mounted RTD reading PV, a PWM output to a heater relay, and a noise-injection slider on the analog input that mimics the 0.3 degC noise band of a typical thermowell. Setpoint sits at 60 degC. Ambient is 22 degC. The loop is running open-loop at the start.
Switch the controller to manual and confirm the PV is steady at 22 degC. Switch to auto with Kp = 0.0, Ti disabled, Td disabled — the loop is now in P-only mode with zero gain. Step the setpoint from 22 to 25 degC. Nothing happens. Raise Kp to 0.5 in increments of 0.1 and watch the trend chart at each step. At Kp = 0.5 the PV climbs slowly toward 25 but settles at about 23.8 — a 1.2 degC steady-state offset. At Kp = 1.0 the offset shrinks to about 0.6 degC and the rise is faster. At Kp = 1.4 the offset is about 0.4 degC but the response shows a small oscillation around the new steady state, plus or minus 0.2 degC every 18 seconds. Back off to Kp = 0.8 — the offset is 0.7 degC, the rise time is 35 seconds, no oscillation. That is a clean P-only baseline.
Now add the integral term. Set Ti = 30 s (this is a Ti, not a Ki — the simulator's PID block takes integral time in seconds, same as the Siemens and Allen-Bradley conventions). The trend chart shows the offset closing — over about 60 seconds the PV climbs from 24.3 to 25.0 and settles. Step the setpoint to 28 degC. The PV rises to 28.0, but you can see a slight overshoot on the way up — the trend peaks at 28.4 before settling back. That overshoot is the trigger to add D.
Add the derivative term. Set Td = 5 s with derivative on PV (not on error — the simulator's PID block has a checkbox labelled "Derivative on PV" which is on by default; confirm it is ticked). Step the setpoint from 28 to 31 degC. The trend chart now shows the rise time at about 45 seconds, settles within 60 seconds, no overshoot. Specifically: peak PV during the step is 31.05, never crosses the 3 percent overshoot target (which would be 31.09 on a 3 degC step). Settling is within plus-minus 0.1 degC of setpoint within 60 seconds. That is the third-step target hit.
The PID block configuration ends up looking like this:
PID_LOOP : PID;
(* Tuned-by-feel settings — temperature loop, electric heater + thermowell *)
PID_LOOP.Kp := 0.8; (* proportional gain, dimensionless *)
PID_LOOP.Ti := T#30s; (* integral time, seconds *)
PID_LOOP.Td := T#5s; (* derivative time, seconds *)
PID_LOOP.D_on_PV := TRUE; (* derivative kick suppression *)
PID_LOOP.PV_filter := T#1s; (* first-order filter on PV *)
PID_LOOP.MV_min := 0.0; (* output clamp, percent *)
PID_LOOP.MV_max := 100.0;
PID_LOOP.I_anti_windup := TRUE; (* clamp integral when MV saturates *)
Now stress the tuning. Step the setpoint from 31 to 35, then from 35 down to 28, then turn the noise-injection slider from 0.3 to 1.0 degC and watch the loop hold. The third step should show the overshoot stay under 3 percent on the upward step and undershoot stay under 3 percent on the downward step. The settling time stays around 60 seconds. The loop does not hunt at the higher noise band because the derivative-on-PV plus the 1 second PV filter together suppress the noise contribution to the D term. That is what tuning by feel looks like when it is done right.
Common mistakes
-
Tuning with Kp set high and adding I before the loop is stable. A common rookie pattern is to crank Kp up until the loop oscillates, then add I to "fix" the oscillation. The I term does not fix oscillation — it makes it worse, because integral wind-up adds energy at the wrong phase. Always tune Kp to a clean non-oscillating response first, then add I. If the P-only response oscillates, lower Kp before doing anything else.
-
Ignoring derivative kick from setpoint changes. Derivative on error spikes hard the instant the setpoint changes, because the error suddenly steps and the rate of change is briefly enormous. The output saturates, the loop overshoots, and the engineer blames the D term for the wrong reason. Derivative on PV — where the D term sees only the process variable's rate of change, not the setpoint's — eliminates the spike entirely. Every modern PID block has a "derivative on PV" option. Tick it.
-
Failing to account for measurement filter delay. A first-order PV filter with a 1 second time constant adds 1 second of phase lag to every term in the PID. If you tune with the filter at 1 second and somebody later changes it to 5 seconds, the loop becomes unstable because the lag now exceeds the integral and derivative time constants. Always document the PV filter time as part of the tuning, and re-tune if the filter changes.
-
Tuning during a load disturbance. A loop being tuned while an upstream tank is being filled, while ambient temperature is changing, or while a downstream valve is being stroked, is a loop being tuned against the wrong test signal. The setpoint step you induced is mixed with the load change you did not, and the response on the trend chart is the sum of both. Always tune against a setpoint step on a steady-state load. If the load cannot be held steady, tune against a load-change rejection test instead — but never both at once.
-
No anti-windup on the integral term. A loop with the output saturated at 100 percent and the integral term still accumulating will overshoot massively when the PV finally crosses the setpoint, because the integrator has wound up to a value far larger than steady-state demands. Modern PID blocks have an anti-windup clamp that stops integration when the MV is saturated. Tick the box. Without it, every cold start of the heater overshoots by 4 to 8 degrees.
-
Tuning by feel without a tuning record. A loop tuned by feel and not written down is a loop that will be re-tuned by feel by the next engineer in three months, with no baseline. Always commit the tuning values, the date, the operating point (PV, SP, MV at steady state), and the observed step response (rise time, overshoot, settling time) to the project file. The next engineer will thank you.
How to practise this in the simulator
The simulator's temperature-loop demo is built for this exact sequence. Open it, switch to manual, drive the PV to a known starting point, switch to auto with the PID block in P-only mode, and step the setpoint by 10 percent of range. Watch the trend chart, raise Kp until the response damps cleanly, then add I, then add D. The trend chart shows the rise time, peak overshoot, and settling time as numeric overlays so you can hit the 3 percent target by reading numbers, not by eyeballing. Then break the tuning deliberately — set Td to 30 s, set derivative on error instead of PV, turn off anti-windup — and watch the loop misbehave in the way each section above describes. Twenty minutes of breaking and fixing teaches more about PID tuning by feel than reading any tuning rule sheet.
Start the free tier →Vendor reference
The cross-vendor reference for the manual sequence is the Wikipedia: PID controller — manual tuning section, which covers the P-then-I-then-D order, the trade-offs between rise time and overshoot, and the role of derivative-on-PV in suppressing setpoint kick. It is not a substitute for the vendor manuals — Siemens TIA Portal's PID_Compact block has its own auto-tuning routine that produces decent first-pass numbers, and Allen-Bradley's PIDE block has a similar tune button — but the manual sequence above is what you fall back to when the auto-tune disagrees with what the trend chart is telling you, and on a non-linear process (heating, neutralisation, level control near a deadband) the auto-tune often disagrees.
What we don't claim
This site is not SAQA-registered, not MerSETA-accredited, and not an NQF-registered qualification provider. Our completion certificates are course-level only — they describe what you covered, not an NQF Level X qualification. The CCST cert from ISA is the portable industry credential we recommend; we are not an ISA cert delivery partner either, but our cert packs are CCST-aligned. PID tuning by feel is a skill that lives in the trend chart, not in a certificate — the simulator gives you the trend chart and the loops to practise on.