AG88 Engineeringnotes
← all notes

Why the derivative term usually makes things worse

2026-08-12 · control loops

Every controller has a D field, and the temptation is to put something in it. In fifteen years of loop tuning I have left derivative action switched on in maybe one loop in twenty, and I have switched it off to fix a problem far more often than I have switched it on.

The reason is arithmetic rather than opinion. Derivative acts on the rate of change of the measurement. Sensor noise is, by definition, fast change. A 4–20 mA transmitter with 0.1 % peak-to-peak noise on a 100 °C span is producing ±0.1 °C of jitter — invisible on a trend, irrelevant to P, integrated away by I. Give it a derivative time of 20 seconds and the controller sees that jitter as a temperature ramp of several degrees per minute and moves the valve accordingly. You have converted an unmeasurable amount of noise into visible valve travel, and valve travel is what wears out packing.

Where it does earn its place

Two situations, in my experience:

If you must use it

Filter the derivative, not the process variable. Most controllers implement a derivative filter with a time constant of Td/8 to Td/10; check whether yours does, because if it does not you are differentiating raw noise. Then take derivative on measurement rather than on error, so that a setpoint step does not produce a spike in the output — the vendors call this "derivative on PV" and it should be the default.

Rule of thumb before enabling D
  1. measure the noise band on PV with the loop in manual, 10 minutes
  2. multiply that band by Td / (sample time)
  3. if the result exceeds ~2 % of output span, D will move the valve
     more than the process will

What to do instead

Most loops that people try to fix with derivative are actually suffering from an integral time that is too short, a valve with too much stiction, or a measurement lag introduced by a badly installed sensor. Slowing the integral term fixes the first. Only the third looks like a case for derivative, and the honest fix is to move the sensor.