## Ziegler-Nichols Closed-Loop Tuning Method

J.G. Ziegler and N.B. Nichols published two tuning methods for PID controllers in 1942.

This article describes in detail how to apply one of the two methods, sometimes called the Ultimate Cycling method. (The other one is called the process reaction-curve method.) I have seen many cryptic versions of this procedure, but they leave a lot open for interpretation, and a practitioner may run into difficulties using one of these abbreviated procedures.

Before we get started, here are a few very important notes:

- Read the entire procedure before beginning.
- This tuning method does not work for inherently unstable processes like temperature control of exothermic reactions.
- This procedure cannot be used if the Process Variable oscillates when the controller is in Manual control mode. If the loop is already oscillating in Auto, make sure the cycling stops in Manual.
- If the controller drives a control valve or damper, and this device has dead band or stiction problems, this tuning method cannot be used and will lead to inaccurate results and poor tuning at best.
- Care should be taken to always keep the process in a safe operating region.
- An experienced operator should oversee the entire test and must have the authority to terminate the test at any time.
- Keep note of the original controller settings and leave them with the operator in case he/she needs to revert back to them later. Process conditions can change significantly, and your new tuning settings might only work for the conditions at which the process tests were done.

The steps below apply to a controller with a Controller Gain setting. If your controller uses Proportional Band instead, do the reciprocal of any Controller Gain changes. E.g. if the procedure calls for increasing the Controller Gain by 50%, the Proportional Band should be decreased by 50%, etc.

To apply the Ziegler-Nichols Closed-Loop method for tuning controllers, follow these steps:

- Stabilize the process. Make sure no process changes (e.g. product changes, grade changes, load changes) are scheduled.
- If the loop is currently oscillating, make sure that the Process Variable stops oscillating when the controller is placed in Manual mode.
- Remove Integral action from controller.
- If your controller uses Integral Time (Minutes or Seconds per Repeat), set the Integral parameter to a very large number (e.g. 9999) to effectively turn it off.
- If your controller uses Integral Gain (Repeats per Minute or Repeats per Second), set the Integral parameter to Zero.

- Remove Derivative action by setting the Derivative parameter to Zero.
- Place the controller in Automatic control mode if it is in Manual mode.
- Make a Set Point change and monitor the result.
- If the Process Variable does not oscillate at all, double the Controller Gain.
- If the Process Variable oscillates and the amplitude of the peaks decreases, increase the Controller Gain by 50% (or less if you are getting close to a constant amplitude).
- If the Process Variable oscillates and the amplitude of the peaks increases, decrease the controller gain by 50% (or less if you are getting close to a constant amplitude).
- If the Process Variable or Controller Output hits its upper or lower limits, decrease the controller gain by 50%. The Process Variable and Controller Output must oscillate freely for this method to work.
- If the oscillations have died out, go to Step 6.
- If the loop is oscillating, but not with a constant amplitude, repeat Steps 8, 9, and 10 until oscillations with a constant amplitude are obtained.
- If the Process Variable is oscillating with constant amplitude, and neither the Process Variable nor the Controller Output hits its limits, do the following:
- Take note of the “Ultimate” Controller Gain (
*K*). If your controller has Proportional Band, note down the “Ultimate Band” (_{u}*PB*)._{u} - Measure the period of the oscillation (
*t*). If your controller’s Integral and Derivative units are in minutes, measure tu in minutes. It the controller uses seconds, measure_{u}*t*in seconds._{u}

- Take note of the “Ultimate” Controller Gain (
- Cut the Controller Gain in half to let the control loop stabilize while you do the calculations.
- Calculate new controller settings using the equations below, enter them into the controller, and make a Set Point change to test them.

The Ziegler-Nichols tuning rules were designed for a ¼ amplitude decay response. This results in a loop that overshoots its set point after a disturbance or set point change. The response in general is somewhat oscillatory, the loop is only marginally robust and it can withstand only small changes process conditions. I recommend using slightly different settings (also shown below) to obtain a robust loop with increased stability.

**Rules for a PI Controller**

The PI tuning rule can be used on controllers with interactive or noninteractive algorithms.

**Controller Gain (Kc)**

- Ziegler-Nichols Rule: Kc = 0.45
*K*_{u} - For robust control use: Kc = 0.22
*K*_{u}

**Proportional Band (PB)**

- Ziegler-Nichols Rule: PB = 2.2
*PB*_{u} - For robust control use: PB = 4.4
*PB*_{u}

**Integral Time in Minutes per Repeat or Seconds per Repeat**

- Ziegler-Nichols Rule: Ti = 0.83
*t*_{u} - For level control (integrating processes) use: Ti = 1.6
*t*_{u}

**Integral Gain in Repeats per Minutes or Repeats per Seconds**

- Ziegler-Nichols Rule: Ki = 1.2 /
*t*_{u} - For level control (integrating processes) use: Ki = 0.6 /
*t*_{u}

**Rules for a PID Controller**

The PID tuning rule was designed for a controller with the Interactive algorithm. The tuning settings should be converted for use on controllers with Noninteractive and Parallel algorithms.

**Controller Gain (Kc)**

- Ziegler-Nichols Rule: Kc = 0.6
*K*_{u} - For robust control use: Kc = 0.3
*K*_{u}

**Proportional Band (PB)**

- Ziegler-Nichols Rule: PB = 1.7
*PB*_{u} - For robust control use: PB = 3.3
*PB*_{u}

**Integral Time in Minutes per Repeat or Seconds per Repeat**

- Ziegler-Nichols Rule: Ti = 0.5
*t*_{u} - For level control (integrating processes) use: Ti = 1.0
*t*_{u}

**Integral Gain in Repeats per Minutes or Repeats per Seconds**

- Ziegler-Nichols Rule: Ki = 2.0 /
*t*_{u} - For level control (integrating processes) use: Ki = 1.0 /
*t*_{u}

**Derivative Time or Derivative Gain**

- Td or Kd = 0.125 x
*t*_{u}

Stay tuned!

Jacques Smuts – Author of the book Process Control for Practitioners

What do you mean with tuning settings should be converted for noniteractive – ideal

algorithems. How to convert?

For PI control, no conversion is needed.

For PID control, to convert from interactive controller parameters to noninteractive:

Set the controller gain to Kc x (Ti + Td) / Ti

Set the integral time to Ti + Td

Set the derivative time to Ti x Td / (Ti + Td).

Can I use the same parameters for nointeractive and parallel pid controller.

To convert from noninteractive controller parameters to parallel:

Set proportional gain (Kp) to Kc.

Set integral gain (Ki) to Kc/Ti, or for integral time (Ti) use Ti/Kc.

Set derivative gain (Kd) to Kc x Td.

Hello Jacques,

Can you please help me understand how do you define the ultimate controller gain Ku?

Thanks in Advance

Dreni

Ku is the controller gain that gives you the ultimate cycle. You determine it experimentally through trial and error as described above. If the cycle amplitude increases, reduce the controller gain. If the amplitude decreases, increase the controller gain. If the amplitude remains constant, then controller gain = Ku.

If the manufacturer’s DCS is designed such that the derivative term acts on PV and not on error, will there be any change in the rules for PID parameter settings? If so, please provide the same for Zeigler Nichols and Cohen coon methods.

Thanks in advance,

Harini.

Harini, you can use the same rules without modification.

Hi Jacques,

I read from some source, using the Zeigler Nichols method, the gains are obtained from a combination of dead time and time constant instead of ultimate gain/period. I wonder if the “ultimate gain/period” also works for a system with time delay?

Thank you!

Alex, you can use the ultimate gain/period method fro tuning systems that also contain dead time (time delay), but my overwhelming preference is to do an open-loop step tests and measure the process gain, dead time, and time constant from the process-response curve. This is practically easier, quicker, and more accurate than the ultimate gain/period method.