Manual/auto mode and bumpless transfer

Why the controller output jumps when switching from manual to automatic and when settings change, and how to avoid it: integral initialisation, output tracking, set-point tracking, storing the integral in output units.

In short. In manual the operator sets the output and the controller is not in control. If on switching to auto the controller simply starts computing its output by its formula, the output jumps — a "bump". To avoid it, in manual the controller tracks the actual output: it adjusts its integral so that at the moment of switching its output equals the manual one.

3040506070020406080100120time, soutput, %MAN → AUTOwithout trackingbumpless (integrator tracks)
Schematic: an operator holds the output at 40 % in manual. Without tracking, the controller starts from its old integrator state (here 64 %) and the valve jumps; with tracking it continues from 40 %.

Where the bump comes from

Positional PI: u = Kc·e + I. Say the manual output is 47 %, at switching the error is e = 3 °C, Kc = 2 %/°C, and the integral I is left over from the previous auto period, say 20 %.

without tracking:   u = 2·3 + 20 = 26 %     → jump 47 → 26 %
with tracking:      I = 47 − 2·3 = 41 %     → u = 47 %, no jump

Methods

MethodWhat happens in manualResult when switching to auto
Output trackingI = u_man − Kc·e − D every samplethe output is continuous, then the controller moves PV smoothly to the set point
Set-point tracking (SP = PV)the set point follows PV, e = 0, I = u_manthe output is continuous, set point = current PV; the operator changes it
Incremental algorithmu[k] = u[k−1] + Δu, u[k−1] is the manual outputbumpless by construction (incremental algorithm)
Back-calculationthe integral is pulled towards the actual output with time constant Ttthe bump shrinks but does not vanish if Tt is large

Output tracking and anti-windup solve the same problem: the integral must match the actual output, not the computed one.

Bumpless parameter changes

If the block stores ∫e dt and multiplies it by Kc/Ti on every calculation, changing Kc or Ti changes the integral contribution instantly:

∫e dt = 800 %·s, Kc = 2, Ti = 40 s:  I = 2/40 · 800 = 40 %
Ti changed to 20 s:                  I = 2/20 · 800 = 80 %   → the output jumps by 40 %

If the integral is stored in output units (I += Kc·Ts/Ti·e every sample), the new Ti affects only future increments — no jump. This is how the app's simulator computes it. How a particular block stores its integral — see the documentation of its version; when in doubt change parameters in manual or in small steps.

Switching from auto to manual

The manual output must start from the last automatic value, not from zero or an old manual value. Usually the block or the actuator control function does this (valve and motor control).

Typical mistakes

  • The manual output is written after the block and the block does not know — no tracking.
  • Set-point tracking is on while the operator expects the set point to be kept: after switching it equals the current PV.
  • A D-term bump at switching: D on error reacts to the step in e — use D on measurement (D filter).
  • Cascade: slave in manual, master in auto — the master winds up; it must track the slave set point.

Limits

The diagram shows the principle. Real blocks name the modes differently (Manual, Tracking, Inactive, Follow) and implement tracking differently; check the documentation.

Loading the map…

Sources

  1. Åström & Murray — Feedback Systems, 2nd ed. (2020), ch. 11 «PID Control», §11.4 (tracking), §11.5 Implementation: operational aspects, bumpless parameter changes — Caltech / Lund University
  2. MathWorks — PID Controller block: Enable tracking mode, Tracking coefficient Kt (R2026b) — MathWorks

Updated 2026-10-12