PIDSnap

Blog · 2026-08-23

P vs PI vs PID: what each controller form is for

Proportional-only, PI and PID compared — what each form can and cannot do, and why the full PID is a minority taste on a real plant.

Three forms, one question

The three forms of a controller differ only in which terms act, and the terms exist to answer different questions. Proportional action asks how hard to push for the current error; integral action remembers that the loop is still wrong; derivative action watches which way the measurement is moving. Every controller builds its output from some combination of the three.

The names on the faceplate are shorthand for what has been switched on. P, PI and PID say which of the three questions the controller is allowed to ask — and most of the useful work on a plant is done by the middle one.

Proportional-only: simple, offset, and honest

A proportional-only controller produces output in proportion to error, and that is its whole method. It is the fastest form a loop can have, because it has nothing to wind up and nothing to remember, and it is the form that cannot reach setpoint.

The reason is the offset. Proportional action needs error to produce output, so it settles where the proportional term balances the load rather than where the setpoint sits. On a loop where holding the measurement exactly is the job, that residual error is a defect; on an averaging level loop it is precisely the behaviour wanted.

PI: the default for a reason

Adding integral action removes the offset. The integral term accumulates while the loop is wrong, so the controller keeps pushing until the measurement closes on setpoint — which is why almost every loop on a plant runs PI. Flow, pressure, level and temperature all sit in the same family of loops that are regulated rather than just stabilised.

The price of integral action is a new failure mode. Because it remembers, it can wind up while the output is saturated, and because it repeats, it has to be set slower than the dead time or the loop cycles by construction. Neither is a reason to avoid PI; both are reasons the integral time is the number people get wrong.

PID: only when the measurement is quiet and the lag is big

Derivative action reacts to the direction the measurement is moving, and it earns its place in one situation: a lag-dominated loop with a quiet measurement. The temperature loop is the canonical case — the lag is large, the signal is clean, and the derivative can act on the early slope of the response rather than waiting for the error to grow.

Everywhere else it is trouble. A noisy measurement makes the derivative term amplify the noise, because noise is the fastest thing in the signal and derivative is a rate-of-change sensor. A loop that needs its derivative filtered hard enough to be useable usually did not need derivative at all.

Adding derivative is usually the last thing to try

The sequence that survives contact with a plant is short: clean the measurement, set up a solid PI tune, and only then ask whether derivative is called for. Adding derivative early is the most common way to make a loop's symptom worse while keeping the trend looking busy.

Where the derivative term acts matters as much as whether it acts at all. Derivative on the error fires a spike at every setpoint change; derivative on the process variable reacts only to the process's own movement, which is the information it is for. Both settings exist on most platforms, and the wrong one masquerades as a tuning problem.

What PIDSnap does here

PIDSnap works from the response your loop actually produces, and the controller form is a setting the session operates within rather than one it decides. A proportional-only loop holding offset is read for what it is; a loop with derivative amplifying noise is flagged on the trend before any constant is touched.

The converters cover the ground around the choice — proportional band and gain, and the series, ideal and parallel forms — so a tuning set moved between systems stays the tuning set it was meant to be.

Questions that come up

Why does my proportional-only loop never reach setpoint?

That is offset, and it is the defining behaviour of proportional action. The loop settles where the proportional term balances the load, which is away from setpoint unless the load happens to sit at the proportional balance point. Integral action exists to close the gap.

When should I add derivative action?

On a lag-dominated loop with a quiet measurement — most often a temperature loop. On a noisy measurement derivative amplifies the noise, and on a fast loop it buys nothing. Add it last, after the measurement is clean and the PI tune is solid.

Related

Back to the blog

Run a free PIDSnap check on this loop

Two photos, thirty seconds, no signup. The pre-flight check finds the structural problems that no amount of tuning will fix — before you touch the controller.

Start a free check