SIMC and AMIGO: robust PID tuning that should replace Ziegler–Nichols
Skogestad SIMC and Åström AMIGO as robust PID rules: half-rule, τc, integrating plants, and a numeric FOPDT comparison with Ziegler–Nichols and Cohen–Coon.
Ziegler–Nichols still occupies the first lecture on PID tuning, and it still produces loops that move. It also still produces 20–50 % overshoot, a complementary-sensitivity peak that eats noise, and a gain margin that will not survive a modest error in plant gain. Cohen–Coon is the same family with a different decay-ratio fit: faster on the design model, more brittle off it. The last two decades of industrially usable PID theory have a different target. Instead of quarter-amplitude decay, they specify a robustness margin — typically a maximum sensitivity Ms around 1.4 to 1.6 — and they give the engineer one speed knob. Skogestad’s SIMC and Åström–Hägglund’s AMIGO are the two rules that belong on a plant standard. Both start from the same FOPDT (or integrating) model that Ziegler–Nichols uses. Both are simple enough to compute by hand. Both default to a loop that stays in automatic.
This article derives the SIMC formulas from the half-rule and the choice of τc, shows when SIMC wants PI versus PID, treats integrating processes properly, summarises AMIGO as a robustness fit across L/τ, and runs one FOPDT through Ziegler–Nichols, Cohen–Coon, SIMC and AMIGO so the numbers can be compared without folklore. The recommendation at the end is not diplomatic: unless you have a documented reason to want Ziegler–Nichols’ load rejection and can live with the overshoot, the plant default should be SIMC. Compute all four in the auto tuner and keep the one that survives a dead-time error in the simulator.
What “robust” means on a PID faceplate
A tuning rule is a map from a plant model to (Kp, Ti, Td). The model is wrong: K moves with throughput, L grows with fouling, the valve is not the linear gain you stepped. A robust rule is one whose closed-loop behaviour degrades gracefully when those numbers move. The usual scalar for that is the maximum sensitivity
Ms = max_ω | 1 / (1 + C(jω) G(jω)) |Ms = 1.4 is a strong robustness specification (gain margin at least 2.5, phase margin at least 41° in the classical equivalences). Ms = 2.0 is already a lively loop. Ziegler–Nichols on a lag-dominant FOPDT often lands near or above 2. SIMC with the default τc = L is designed around Ms ≈ 1.6. AMIGO was fitted to keep Ms ≈ 1.4 across a wide range of normalised dead times. That is the entire philosophical difference. You can still ask SIMC to be fast by shrinking τc; you are then choosing to spend robustness, and the formula makes that choice visible. Ziegler–Nichols never offered the choice.
Robustness is not the same as sluggishness. A SIMC loop with τc = L on a well-identified FOPDT is not an IMC controller with λ = τ. It is fast enough for most temperature and composition loops and much calmer than quarter-amplitude decay. If a level needs to recover in a hurry, SIMC can do that too: use the integrating-process rule and a small τc, or accept a larger Ms. What you should not do is take Ziegler–Nichols, panic at the overshoot, cut Kp by half, and leave Ti = 2L. That orphaned integrator is how “detuned Ziegler–Nichols” becomes a slow oscillator. SIMC and AMIGO already lengthen Ti in the lag-dominant region. See PID tuning methods for the classical formulas you are replacing, and gain and phase margin for the frequency-domain checks to run afterwards.
The FOPDT model and Skogestad’s half-rule
SIMC assumes you can write the plant as a first-order-plus-dead-time model, or as an integrator plus dead time, possibly after a model reduction. Almost every self-regulating process loop can:
G(s) = K e^(−L s) / (τ s + 1)K is the steady-state gain, τ the apparent time constant, L the apparent dead time. You get them from a step test: identify with the two-point method or a tangent, and do not invent L = 0 because the trend is busy. The ratio R = L/τ decides how much bandwidth physics will sell you. SIMC uses R implicitly through the way τc and L sit in the same denominator.
Real plants are not first order. Skogestad’s half-rule is the reduction that keeps SIMC honest. For a transfer function with several lags and a true delay θ,
G(s) = K e^(−θ s) / [(τ1 s + 1)(τ2 s + 1)(τ3 s + 1)…]with τ1 ≥ τ2 ≥ τ3 ≥ …, the half-rule says:
τ = τ1 + τ2 / 2
L = θ + τ2 / 2 + τ3 + τ4 + …The largest lag is kept (plus half of the second). The rest of the second lag, and all smaller lags, are thrown into the delay. That is conservative: delay is harder to control than lag, so stuffing leftover dynamics into L produces a slower, safer PID than pretending they are part of τ. Do not dump a lag that is comparable to τ1 entirely into L without the half split; you will overstate delay and understate the cancellable pole. Do not keep three poles and then apply an FOPDT rule anyway; reduce first, then tune.
A second-order plant with a numerator zero needs more care. If the zero is in the left half-plane and slower than the intended bandwidth, it helps. If it is a right-half-plane zero, it is extra delay in disguise and belongs in L. SIMC does not cancel RHP zeros. If the plant is clearly second-order and both lags matter inside the bandwidth, keep a two-time-constant model and use the SIMC PID form below, which assigns derivative to the second lag instead of stuffing it all into L.
The half-rule is also how you connect a first-principles sketch to the tuner. A jacket plus a bulb plus a transport delay: keep the jacket as τ1, put half the bulb into τ and half into L, add the transport to L. Then step-test to confirm. The rule is a prior, not a replacement for the experiment.
SIMC PI: the formula and the τc knob
For the FOPDT plant, SIMC PI is
Kp = (1/K) · τ / (τc + L)
Ti = min( τ , 4 (τc + L) )That is the entire PI rule. τc is the desired closed-loop time constant, the one speed knob. The gain is an IMC/direct-synthesis gain: you are inverting K and the plant lag, and you are paying for the delay you cannot invert by adding L to τc in the denominator. The integral time is the plant lag, unless that would be slower than good disturbance rejection allows. The min(τ, 4(τc+L)) is Skogestad’s correction to pure IMC. IMC with Ti = τ is excellent on setpoints and sleepy on load disturbances when τ is huge compared with L. Clipping Ti at 4(τc+L) shortens the integrator on lag-dominant plants and recovers load rejection without returning to Ziegler–Nichols’ Ti = 2L.
Choosing τc
The default that plants should write into a standard is
τc = LIt is the fastest choice that still matches the SIMC robustness story (Ms around 1.6 on the design model). Aggressive and still sane: τc = L means you are asking the loop to settle on a horizon set by the delay, which is the physical speed limit. More robust:
τc = 2 L or τc = 3 LUse those when L is uncertain, when the valve is sticky, when operators will not tolerate overshoot, or when the measurement is noisy and you do not want a high Kp. Slower than 3L is rarely a tuning choice; it is a process that cannot be controlled, or a loop that should be averaging (surge tanks). Faster than L:
τc = 0.5 Lis permitted if the model is excellent, the delay is truly delay and not neglected lags, and you have simulated a +50 % error in L. Below about 0.5 L you are designing a controller the FOPDT model cannot justify. SIMC will still output numbers. They will chatter on the real plant.
τc has the same units as τ and L. Pick them in seconds or minutes consistently. A loop sheet that says “SIMC, τc = L = 12 s” is information. A loop sheet that says Kp = 3.8 is a number.
PI versus PID in SIMC
For a true FOPDT, SIMC’s recommended structure is PI. Derivative on a first-order-plus-delay plant is trying to cancel a pole that the PI already cancelled with Ti, or to buy phase at a frequency where the delay dominates. You get a little extra bandwidth and a lot of noise gain. Unless the PV is a quiet temperature or composition and you have a reason, stop at PI. That recommendation matches field practice: flow, pressure and many process loops want PI.
PID enters when the reduced plant still has a second lag you intend to cancel. For
G(s) = K e^(−θ s) / [(τ1 s + 1)(τ2 s + 1)]SIMC PID (series/cascade form, then convert) is
Kp = (1/K) · τ1 / (τc + θ)
Ti = min( τ1 , 4 (τc + θ) )
Td = τ2with τc chosen against θ the same way as against L. Derivative is not a fudge factor; it is the second time constant. Filter it (α ≈ 0.1) so you are not differentiating noise at 1/Td. If you already applied the half-rule and reduced to FOPDT, do not then add a Td from folklore. You spent τ2 in L. Adding derivative on top double-counts.
Convert series/ideal numbers into the form your DCS implements. SIMC is usually published for the cascade (series) PID. Parallel Ki = Kp/Ti, Kd = Kp Td is correct for the ideal form after a series-to-ideal conversion if the DCS is parallel. The complete PID guide covers the algebra. Wrong form is a bigger error than the difference between τc = L and τc = 2L.
Integrating processes in SIMC
A surge tank, a batch level, a pure accumulating pressure, or a slow temperature that looks like a ramp on the time scale of interest is not FOPDT. It is
G(s) = (K / s) e^(−L s)where K is now a ramp gain (PV units per actuator units per second), not a steady-state gain. A step in u produces a ramp of slope K after the delay L. SIMC for this plant is
Kp = 1 / ( K (τc + L) )
Ti = 4 (τc + L)There is no min(τ, …) because there is no τ. The default τc = L again. Ti = 8 L when τc = L, which is a slow integrator compared with Ziegler–Nichols’ Pu/2, and that is correct: an integrating plant already provides infinite DC gain; the PID’s integral is there for disturbance rejection and for removing the offset a P-only controller would leave on a load, not for “making it integrating.” Too small a Ti on a tank is the classic source of a level that cycles.
Identifying K and L: step the valve, wait out the delay, fit the ramp slope. Do not force an FOPDT fit on a ramp that has not settled (it will never settle) and then apply the self-regulating SIMC formulas. You will get a huge τ, a moderate L, a small Kp, and a Ti clipped to 4(τc+L) that happens to look similar — until K of the FOPDT, which was a fiction, moves. Use the integrating rule.
For “almost integrating” plants, τ ≫ L (a self-regulating tank with a very long time constant), the FOPDT SIMC with Ti = min(τ, 4(τc+L)) already clips Ti and the result is close to the integrating rule if you interpret K_int ≈ K_FOPDT / τ. That is a useful check, not an excuse to skip classifying the process.
AMIGO: robustness fitted across L/τ
AMIGO — Approximate M-constrained Integral Gain Optimisation — is Åström and Hägglund’s answer to the same problem SIMC addresses, with a different style. Instead of one knob τc, AMIGO is a set of formulas fitted so that the loop meets a robustness constraint (Ms ≈ 1.4) and maximises integral gain (load-disturbance rejection) across the range of normalised dead time. You give it K, τ, L and you get a PID. There is no speed knob. The speed is whatever the robustness constraint allows for that L/τ.
For an FOPDT plant the widely used AMIGO PID set is
Kp = (1/K) ( 0.2 + 0.45 τ/L )
Ti = L (0.4 L + 0.8 τ) / (L + 0.1 τ)
Td = 0.5 L τ / (0.3 L + τ)The PI set, for noisy loops that should not have derivative, is
Kp = (1/K) [ 0.15 + 0.35 (τ/L) (τ/(τ+L)) ]
Ti = 0.35 L + 13 L τ² / (τ² + 12 τ L + 7 L²)Read the PID gain: Kp scales as (1/K)(τ/L) with a floor of 0.2/K. On a lag-dominant plant (τ/L large) AMIGO is willing to use high gain, like every other inversion-based method. On a delay-dominant plant (τ/L small) the 0.45 τ/L term shrinks Kp and the 0.2/K floor keeps a little proportional action. Ti interpolates: it is not stuck at 2L (Ziegler–Nichols) and not stuck at τ (pure IMC). Td sits near 0.5 L when τ is large compared with L, which is the same neighbourhood as Ziegler–Nichols’ Td = 0.5 L, but it shrinks when delay dominates, where derivative does less good.
AMIGO’s advantage is coverage. SIMC’s default τc = L is a single robustness point. AMIGO was fitted across L/τ so that a delay-dominated plant and a lag-dominated plant both land near Ms = 1.4 without the engineer changing a knob. If your site will not teach τc, AMIGO is the better one-shot rule. SIMC’s advantage is the knob. When the same plant is sometimes a quality loop (calm) and sometimes a recovery loop (fast), τc is the documented way to say so. A plant standard can say “SIMC, τc = L for temperature, τc = 2L for quality composition, integrating SIMC for surge level.” That sentence does not exist for AMIGO; you would have to detune Kp by hand, which is what AMIGO was meant to avoid.
AMIGO PID will propose derivative on plants where you should refuse it. On a noisy flow, take the AMIGO PI set, not the PID set with Td zeroed. Zeroing Td on a PID formula does not give you the PI formula; the Kp and Ti were derived together with Td. The same warning applies to Ziegler–Nichols and Cohen–Coon.
For integrating processes AMIGO has a separate table (not the FOPDT formulas with τ → ∞). If your plant is a tank, use SIMC’s integrating rule or AMIGO’s integrating rule, not a huge-τ FOPDT limit unless you have checked it. PID Solver 360’s tuner applies the self-regulating formulas to the FOPDT you identified; classify the process before you identify.
Numeric comparison on one FOPDT
Take a self-regulating plant that is neither a toy lag nor a pure delay:
G(s) = 1.5 e^(−20 s) / (100 s + 1)so K = 1.5, τ = 100 s, L = 20 s, R = L/τ = 0.2. This is a typical temperature or slow composition loop: lag dominant, but L is large enough that you cannot ignore it. All four methods below are in ISA form Kp (1 + 1/(Ti s) + Td s). PI rows have Td = 0.
Open-loop Ziegler–Nichols PID:
Kp = 1.2 τ / (K L) = 4.00
Ti = 2 L = 40 s
Td = 0.5 L = 10 sZiegler–Nichols PI: Kp = 0.9 τ/(K L) = 3.00, Ti = 3.3 L = 66 s.
Cohen–Coon PID, with R = 0.2:
Kp = (1/(K R)) (1.35 + R/4) = 4.67
Ti = L (2.5 + 0.46 R) / (1 + 0.61 R) = 46.2 s
Td = L (0.37) / (1 + 0.19 R) = 7.13 sSIMC PI with the default τc = L = 20 s:
Kp = (1/1.5) · 100 / (20+20) = 1.67
Ti = min(100, 4×40) = 100 sSIMC PI with a calmer τc = 2L = 40 s: Kp = 1.11, Ti = min(100, 4×60) = 100 s. Derivative is omitted (FOPDT).
AMIGO PID:
Kp = (1/1.5) (0.2 + 0.45×100/20) = 1.63
Ti = 20 (0.4×20 + 0.8×100) / (20 + 0.1×100) = 58.7 s
Td = 0.5×20×100 / (0.3×20 + 100) = 9.43 sAMIGO PI:
Kp = (1/1.5) [0.15 + 0.35 (100/20) (100/120)] = 1.07
Ti = 0.35×20 + 13×20×10000 / (10000 + 24000 + 2800) = 77.7 sFor a closed-loop check, the same FOPDT has ultimate gain and period Ku ≈ 5.67, Pu ≈ 74.5 s (solve atan(τ ω)+L ω = π). Closed-loop Ziegler–Nichols PID is then Kp = 0.6 Ku ≈ 3.40, Ti = Pu/2 ≈ 37.2 s, Td = Pu/8 ≈ 9.3 s, in the same aggressive neighbourhood as the open-loop Ziegler–Nichols set. Tyreus–Luyben PID, Kp = Ku/2.2 ≈ 2.58, Ti = 2.2 Pu ≈ 164 s, Td = Pu/6.3 ≈ 11.8 s, is calmer in Ti but still a one-point method; see relay autotune.
| Method | Kp | Ti (s) | Td (s) |
|---|---|---|---|
| Ziegler–Nichols PID | 4.00 | 40 | 10 |
| Ziegler–Nichols PI | 3.00 | 66 | 0 |
| Cohen–Coon PID | 4.67 | 46 | 7.1 |
| SIMC PI, τc = L | 1.67 | 100 | 0 |
| SIMC PI, τc = 2L | 1.11 | 100 | 0 |
| AMIGO PID | 1.63 | 59 | 9.4 |
| AMIGO PI | 1.07 | 78 | 0 |
The table is the argument. Ziegler–Nichols and Cohen–Coon put two to four times the proportional gain of SIMC/AMIGO on this plant and integrate two to three times faster. On the design-model setpoint step they will rise harder, overshoot tens of percent, and settle with a visible tail. On a load step they will often win IAE, which is why they survive in folklore. On the same plant with L moved from 20 s to 30 s (fouling, a slower valve, a filter someone enabled), the Ziegler–Nichols set is near the edge and the SIMC set is still a loop. That is the definition of a plant default.
AMIGO PID and SIMC PI with τc = L have almost the same Kp on this example (1.63 versus 1.67) and different Ti. AMIGO, having spent a derivative term, shortens Ti relative to SIMC PI. If you take AMIGO PID and drop Td because the PV is noisy, you are left with Kp = 1.63, Ti = 59 s, which is more aggressive than AMIGO PI (Kp = 1.07, Ti = 78 s). Use the PI row.
SIMC’s τc = 2L row is the one to ship when the identification is a noisy step or the unit is full of unmodelled lags. You give up speed on purpose. Cohen–Coon has no such row; “detune Cohen–Coon” is not a method.
Simulate all of them with the same actuator limits, the same derivative filter on the PID rows, and a load step as well as a setpoint step. Closed-loop metrics — overshoot, settling, IAE — plus a rerun with L scaled by 1.3, are the review, not the table by itself. Enable anti-windup before you judge overshoot on a large setpoint; Ziegler–Nichols will saturate this plant on a big step and the overshoot will belong to the integral, not to the linear rule.
Why the plant default should be SIMC
A site standard has to be teachable, auditable and hard to misuse. SIMC wins that contest among methods that still fit on a loop sheet.
It uses the same FOPDT experiment everyone already knows. No relay, no ultimate-gain hunt, no permission to cycle a fired heater. Step, wait, read K, τ, L, optionally apply the half-rule, then two lines of arithmetic. The identifier and tuner implement that path.
It has one named knob. τc = L is the default; τc = 2L is the conservative default; anything else is a documented exception. Ziegler–Nichols has no knob. AMIGO has no knob. IMC has λ, which is SIMC’s cousin, but IMC without the Ti clip is weak on lag-dominant load rejection — the exact loops (large jackets, rooms, columns) that need a standard.
It treats integrators as integrators. A level standard that says “SIMC integrating, τc = L” is clearer than “Ziegler–Nichols with Ku from a relay on the glass.”
It defaults to PI on FOPDT, which is the structure that survives noise. Derivative is opt-in when a second lag is real.
It is conservative where Ziegler–Nichols is not, without collapsing to λ = τ. On the numeric example, SIMC Kp is 1.67 versus Ziegler–Nichols 4.0. That is not timid. It is a loop that will still look like a loop when K is 30 % high.
AMIGO should be the approved alternative when the engineer must not be given a knob — a vendor skid, a remote site, a first-pass autotune that will not be revisited. Compute AMIGO alongside SIMC in the tuner. If they agree within 20 %, you have a consensus. If AMIGO is much more aggressive, check whether you are in a region of L/τ where the AMIGO PID fit is spending derivative you will not implement; fall back to AMIGO PI or SIMC PI.
Ziegler–Nichols remains a teaching tool and a fast initialisation when you intend to simulate and back off. Cohen–Coon remains a delay-dominant curiosity. Neither should be the default in a 2026 plant standard. Tyreus–Luyben is the least harmful of the Ku–Pu family and is what a relay autotune should convert to if you cannot take a step; it is still inferior to SIMC on a good FOPDT because it cannot see τ.
The operational test of a default is what happens at 2 a.m. when the loop is in alarm and the board operator has a formula sheet. “Put it in manual, step 5 %, read K, τ, L, set τc = L, apply SIMC PI” is a procedure. “Raise Kp until it oscillates, take 0.6 of that” is how trips happen. Pair the formula with a simulation gate: no new PID goes to a live quality loop until a setpoint step and a load step have been run against the identified model, with a dead-time sensitivity case. PID Solver 360 is that gate. The docs describe the modes; how to tune a PID is the workflow; this article is the rule that belongs in the middle of it.
A working procedure
Identify. Controller in manual, plant as steady as it gets, step Δu large enough to see and small enough to stay linear. Fit FOPDT, or fit K and L on a ramp if the PV integrates. Apply the half-rule if you started from more than one lag. File R = L/τ. If R > 1, expect every method to be slow; the process is delay-dominated and no PID will make it snappy.
Structure. PI unless a second lag is being cancelled or a quiet temperature loop needs the extra phase. Filter derivative. Anti-windup on.
Rule. SIMC, τc = L as default, τc = 2L if L is sloppy or the loop is quality-critical. Compute AMIGO on the same model as a check. Compute Ziegler–Nichols so you know what “aggressive” would have been; do not install it by accident.
Simulate. Setpoint step, load step, L plus 30 %, noise if the PV is a flow. Reject on overshoot, on saturation that only anti-windup saves, or on margins that collapse when L grows. Then, and only then, a small live step.
That is modern PID tuning: a model, a robustness-aware formula, a simulation, and a default that does not depend on the engineer having read Ziegler and Nichols in 1942. SIMC is the formula. AMIGO is the spare. The rest is verification. Plants that standardise on this sequence spend their time on structure — cascade, feedforward, the right PV — rather than on arguing about whether Kp should be 3.8 or 4.0. The argument was never about the second digit. It was about whether the rule knew what robustness was. SIMC and AMIGO do. Ziegler–Nichols, on purpose, did not.
Put this into practice — model your process, auto-tune it and check the stability margins.
Launch PID Solver 360