Troubleshooting guide

Why Does My PID Loop Keep Oscillating?

Tuning, process delay, valve behavior, noise and disturbances make a PID loop cycle. How the trends tell the causes apart.

Controls & Instrumentation · Last reviewed

A loop oscillates when the controller keeps overcorrecting or the process keeps being disturbed. The trends of the process variable (PV), the setpoint and the controller output (CO) are the best evidence. The shape of the cycle, and how the three signals relate, points to the cause.

Putting a loop in manual or changing tuning can disturb the process. Make changes only with the approval of the operations team, in small steps, with a safe limit on the output, and with a way to go back to the original settings.

What the trend showsLikely causeWhat to check
Smooth sine-like cycle in PV and CO that stays the same sizeController gain too high, or integral action too strong, for the process delayReduce the gain, or increase the integral time, in small steps
Cycle grows with timeThe loop is unstable: far too much gainPut in manual, then retune with lower gain
PV is a sawtooth and CO is a square-ish wave (limit cycle)Valve stiction or backlash: the valve sticks, then jumpsCompare commanded and actual valve position (see the valve guide)
Slow, long cycle, gain is lowIntegral time too short for a slow processLengthen the integral time
Fast, noisy jitter in COMeasurement noise amplified by the derivative action or a high gainFilter the PV, reduce or turn off derivative
Cycle with a period matching another loop or machineA disturbance or an interacting loopLook at other loops and equipment trends at the same period
Cycles only at certain loadsProcess gain or delay changes with load or valve positionRetune at the worst-case operating point, or use gain scheduling

How the trends help

  • Put PV and CO on the same time axis. In a loop that is just tuned too hard, they move together smoothly, with CO leading PV.
  • In a valve limit cycle, the CO changes smoothly while the PV moves in jumps. Plotting PV against CO makes a clear loop (a parallelogram) when there is stiction or backlash.
  • A change in the cycle period when you change the gain suggests that the tuning is the cause. A period that does not move points to something outside the loop.

Process delay sets the limit

The dead time between a change in the output and the first response of the PV limits how aggressive a controller can be. As a rough rule, a loop that oscillates at its limit of stability has a period of about four times the dead time. With a 10 s delay, a period near 40 s is consistent with too much gain. A period much longer than that, such as 300 s, points more to the integral action or to something slow in the process. This is a rule of thumb, so confirm it with a step test.

Write a useful problem statement

  • Loop type (flow, level, pressure, temperature), controller settings (P, I, D, direction) and mode.
  • A trend of PV, setpoint and CO over several cycles, with the period and amplitude.
  • Valve or actuator type and any known sticking, and the sensor type and filtering.
  • What changed before the oscillation started, and what happens if the loop is put in manual.

Related tools and labs

Calculators, labs and simulators are part of the All-Access Pass.

More troubleshooting

Questions

How do I tell tuning from a sticking valve?

Put the loop in manual and make a small output change. If the PV does not respond until the output has moved by a noticeable amount, the valve is sticking, and tuning will not fix it.

Should I turn off derivative?

On noisy measurements such as flow, derivative often does more harm than good. Many loops use PI only.

Does it help to tune slower?

Often yes. A less aggressive loop that does not oscillate is usually better than a fast one that does.

Educational material. Examples use simplified, hypothetical inputs and are not a design, a construction document or professional engineering advice. Confirm requirements with the codes and standards adopted where the work is built and with a licensed engineer.

← All troubleshooting