PIDSnap

FOPDT calculator

A first-order-plus-dead-time model is three numbers: how much the measurement moves per unit of output, how long before it starts, and how long it takes to get most of the way. Those three numbers are what every open-loop tuning rule eats, and they come from a bump you already know how to run.

This calculator does the arithmetic. Process gain is the settled change in PV divided by the change in output. Dead time is the delay to first movement. The time constant is the time to 63% of the settled change, minus the dead time. Type the six numbers, or upload a CSV of time, PV and OP from a historian.

Fit K, L and T from a bump

Output step
Process variable
Times, measured from the instant of the step

Or fit from a CSV

Time, PV, OP. Historian export. PIDSnap reads the six numbers off the series and runs the same estimator. Nothing is stored.

What you have to measure

With the loop in manual and the process steady, step the output a few percent and hold it. Record the output before and after, the PV before and after it settles, the time until the PV first moves, and the time until it has covered 63% of its settled change. Both times are measured from the instant of the step, not from each other.

If the PV never settles — it keeps drifting — the process is integrating and this model does not apply. Level loops are the usual case. Do not force a time constant onto a tank.

A historian CSV instead of six numbers

Export time, PV and output. Headers such as time, timestamp, pv, process, op, output, mv are recognised. Comma, semicolon or tab. PIDSnap finds the largest held output step, reads as-found and as-left OP and PV from the windows around it, then picks first movement and the 63% crossing. Those six numbers go into the same estimator as the form above. The file is not stored.

If the PV is still walking in the last fifth of the record after the step, the process did not settle. That is an integrating loop, or a bump that was cut short, and this model does not apply. The page says so rather than inventing a time constant.

What the 63% point is

A first-order lag covers 63% of its final change in one time constant. That is the definition, not an approximation. If you cannot pick the 63% point cleanly off the trend, the response is not first-order enough for the model, and the PID calculator will still give you a number. It will just be a number for a process you do not have.

Questions that come up

Can I take these numbers straight to the PID calculator?

Yes. The Lambda, Cohen-Coon and open-loop Ziegler-Nichols methods take exactly K, L and T. Whether you should type the result into a live controller is a different question — the model has to be a fair picture of the loop first.

What columns does the CSV need?

PV and OP, with names like pv, process, op, output or mv. Time is optional: seconds from the start, or an ISO timestamp. Without a time column the row index is the time in samples.

What if the PV moved the opposite way to the output?

Then the process gain is negative, which is a reverse-acting process. The calculator keeps the sign. The PID methods use the magnitude for the gain formula; you still have to set controller action to match the process.

Related

These tools assume a self-regulating loop and a bump you have not shown us. Photograph the trend and the faceplate if you want a check against the loop in front of you, not a formula.

Written by PIDSnap control engineering. Published 2026-08-01, last reviewed 2026-09-10.

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