Control · identification

First-Order Lag & Dead Time

Where a plant model comes from, and whether PID can control what you measured.
L / τ

The process

from a step test
Output change divided by the input step that caused it.
Transport delay before anything moves — conveyor length, pipe run, sensor lag.

Step response

open loop
Dead time ratio L / τ
Off the curve
Tuning

What the model gives you

Every tuning rule below is computed from the same three numbers — gain, time constant and dead time. That is the point of measuring them: a step test turns guesswork into arithmetic. Ziegler–Nichols is aggressive by design and aims at quarter-amplitude decay; lambda tuning lets you ask for a specific closed-loop speed and is far gentler on a real plant.

MethodKpTiTdCharacter
Field notes

What a step test actually tells you

How it works

Three numbers, from one experiment

Almost every industrial loop is tuned against a first-order plus dead time model, because it is the simplest thing that captures what matters: how far the output moves, how fast, and how long before it moves at all. You get all three from a single step change.

Reading the curve

Step the input, then wait. L is the time before the output does anything. K is the total output change divided by the input change. τ is the time from the end of the dead time to 63.2% of the final value — not to the end, which is why one time constant is a usable measurement and "settled" is not.

Why 63.2%

y(t) = K(1 − e−t/τ). At t = τ the exponential term is e−1 = 0.368, so the response has covered 1 − 0.368 = 63.2%. Every further time constant closes 63.2% of what is left, which is why 4–5 of them is "settled" and why the number never depends on how big the step was.

Worked example

A tank heater with K = 2, τ = 10 s and L = 2 s reaches 63.2% of its final temperature 12 s after the step and is within 2% of it by 42 s. Its dead-time ratio is 0.2 — comfortably controllable. Ziegler–Nichols asks for Kp = 3.0, and doubling the dead time to 4 s halves that to 1.5.

Why does dead time matter more than lag?

Because a controller can see lag happening and act on it, but during dead time there is nothing to see. Every correction is made blind and arrives late, so the loop keeps pushing after the target is reached. Lag slows a loop down; dead time is what makes it unstable.

What is a workable dead-time ratio?

Below about 0.2, PID is easy and forgiving. From 0.2 to 0.6 it needs care. Past roughly 1.0 plain PID disappoints no matter how you tune it, and you want dead-time compensation — a Smith predictor, or a model-based controller that knows the delay is there.

Should I use Ziegler-Nichols?

As a starting point, knowing what it is aiming at. It targets quarter-amplitude decay, which means it deliberately accepts an oscillatory response — fine on a robust plant, alarming on anything with a person or a heavy load attached. Lambda tuning asks you for the closed-loop time constant you actually want and is the safer default.

Why is my measured time constant unstable between tests?

Usually because the process is not first-order, or not linear. A curve with an S-shaped start is second-order and the 63.2% point is meaningless on it; a valve with stiction gives a different answer for every step size. If two step tests disagree badly, the model is wrong, not the measurement.

What this page assumes

A single-input, single-output process that behaves linearly around the operating point, at steady state before the step, with no disturbance during the test. It models the plant as first-order plus dead time and nothing else — no integrating processes, no inverse response, no measurement noise, no valve nonlinearity, and no interaction with other loops. Tuning constants are starting points to be trimmed on the real plant.

Tuning constants are a starting point, not a commissioning document. Never drive a real plant to sustained oscillation to find its limits if people, heaters or heavy loads are attached — that is what the open-loop step test on this page exists to avoid.
Version history · unchanged

No changes to this tool’s own behaviour since the earliest archived release (v1.20). The full history for the site is in the changelog.