Ziegler-Nichols Open-Loop Tuning Rules
J.G. Ziegler and N.B. Nichols published two tuning methods for PID controllers in 1942*.
- The Ultimate Cycling method, and
- The Process Reaction-Curve method, often called the Ziegler-Nichols Open-Loop tuning method.
This article describes the second method. But before we jump right into the tuning method, here are a few important things you should know first.
Quarter-Amplitude Damping
The Ziegler-Nichols tuning methods aim for a quarter-amplitude damping response. Although the quarter-amplitude damping type of tuning provides very fast rejection of disturbances, it makes the loop very oscillatory, often causing interactions with similarly-tuned loops. Quarter-amplitude damping-type tuning also leaves the loop vulnerable to going unstable if the process gain or dead time increases.
The easy fix for both problems is to reduce the controller gain by half. However, if the control objective for the loop you are tuning is to have a very stable, robust control loop that absorbs disturbances, rather use the Lambda tuning rules.
Designed for the Interactive Controller Algorithm
There are three types of PID controller algorithms: Interactive, Noninteractive, and Parallel. The Ziegler-Nichols tuning rules were designed for controllers with the interactive controller algorithm. If you are not using the derivative control mode (i.e. using P or PI control), the rules will also work for the nonteractive algorithm. However, if you plan to use derivative (i.e. PID control) and have a noninteractive controller, or if your controller has a parallel algorithm, you should convert the calculated tuning settings to work on your controller.
Use of Integral Time
The original Ziegler-Nichols tuning rules were designed for controllers using reset rate (integral gain in repeats per minute) and not integral time (in minutes or seconds). However, virtually all the modern texts on process control use integral time. This article follows that trend and uses integral time. If your controller uses integral gain or reset rate, you’ll have to invert the calculated integral time (use 1/Ti).
Limited Range of Process Dynamics
The Ziegler-Nichols tuning rules work well on processes of which the time constant is at least two times as long as the dead time. For example temperature and gas pressure. They work moderately poorly on flow loops and liquid pressure loops where the dead time and time constant are about equal in length. And they work very poorly on dead-time dominant processes. The Cohen-Coon tuning rules work better on a wider range of processes.
Slight Modification for Self-Regulating Processes
The tuning method described below is actually a widely-used modification of the published Ziegler-Nichols Process Reaction Curve method. The reaction-curve method was designed for use on integrating and self-regulating processes. The modified method works only on self-regulating processes, but then more accurately so. The modified method is so popular that few people know about the original reaction-curve method. I will describe the reaction-curve method in a future post, because it works very well for integrating processes.
Tuning Procedure
Assuming the control loop is linear and the final control element is in good working order, you can continue with tuning the controller. The Ziegler-Nichols open-loop tuning rules use three process characteristics: process gain, dead time, and time constant. These are determined by doing a step test and analyzing the results.
- Place the controller in manual and wait for the process to settle out.
- Make a step change of a few percent in the controller output (CO) and wait for the process variable (PV) to settle out at a new value. The size of this step should be large enough that the process variable moves well clear of the process noise/disturbance level. A total movement of five times the noise/disturbances on the process variable should be sufficient.
- Convert the total change obtained in PV to a percentage of the span of the measuring device.
- Calculate the process gain (gp) as follows:
- gp = change in PV [in %] / change in CO [in %]
- Find the maximum slope on the PV response curve. This will be at the inflection point (where the PV stops curving upward and begins curving downward). Draw a line tangential to the PV response curve through the point of inflection. Extend this line to intersect with the original level of the PV (before the step-change in CO). Take note of the time value at this intersection.
- Measure the dead time (td) as follows:
- td = time difference between the step-change in CO and the intersection described above.
- Calculate the value of the PV at 63% (0.63) of its total change. On the PV reaction curve, find the time value at which the PV reaches this level.
- Measure the time constant (Greek symbol tau) as follows:
- tau = time difference between intersection at the end of dead time, and the PV reaching 63% of its total change.
- Convert your measurements of dead time and time constant to the same time-units your controller’s integral mode uses. E.g. if your controller’s integral time is in minutes, use minutes for these measurements.
- Do two or three more step tests and calculate process gain, dead time, and time constant for each test to obtain a good average of the process characteristics. If you get vastly different numbers every time, do even more step tests until you have a few step tests that produce similar values. Use the average of those values.
- Calculate settings for Controller Gain (Kc), Integral Time (Ti), and Derivative Time (Td), using the Ziegler-Nichols tuning rules below. Note that these rules produce a quarter-amplitude damping response and the calculated controller gain values should be divided by two.
- For P control: Kc = tau / (gp * td)
- For PI control: Kc = 0.9 * tau / (gp * td); Ti = 3.33 * td
- For PID control: Kc = 1.2 * tau / (gp * td); Ti = 2 * td; Td = 0.5 * td
- IMPORTANT: If you have not already done so, divide the calculated controller gain (Kc) by two to reduce overshoot and improve stability.
- Compare the newly calculated controller settings with the ones in the controller, and ensure that any large differences in numbers are expected and justifiable.
- Make note of the previous controller settings, the new settings, and the date and time of change.
- Implement and test the new controller settings. Ensure the response is in line with the overall control objective of the loop.
- Leave the previous controller settings with the operator in case he/she wants to revert back to them and cannot find you to do it. If the new settings don’t work, you have probably missed something in one or more of the previous steps.
- Monitor the controller’s performance periodically for a few days after tuning to verify improved operation under different process conditions.
Stay tuned!
Jacques Smuts – Author of the book Process Control for Practitioners
*J.G. Ziegler and N.B. Nichols, Optimum settings for automatic controllers. Transactions of the ASME, 64, pp. 759–768, 1942.
Could you please clarify in reference to what are those percentages calculated for PV and CO?
I am simulating a FOPTD process with a PID as a controller. I apply a step change in CO and obtain a change in the response PV. Any choice of ranges of the controller or response seems arbitrary to me. Can I just use absolute values? Thanks.
Daniele – Historically, industrial controllers were pneumatic devices. Their inputs (PV) and outputs (CO) used 3 to 15 psi as the ranges. It did not matter if the actual PV was ranged 0 to 14 pH or -100 to 2000 Deg C, all the controller saw was 3 to 15 psi. That “normalization” of signals was carried over into the digital world. All industrial instrumentation have calibration ranges and the controllers normalize these ranges to use signals ranged 0 to 100%. If you are simulating your own controller, you can use the raw engineering values. However, your controller gains may look very strange versus those on industrial controllers using normalized signals. If done correctly, the controller tuning will still work.
I’ve been asked to code up Z-N autotune for an embedded PID implementation and coding up the extraction of gp, td and tau is challenging! Anyway, the PID implementation is non-interactive, and despite some searching I’ve not found a trustworthy conversion between interactive and non-interactive coefficients. Can you comment?
Hi Oliver,
You can find a trustworthy conversion between interactive and non-interactive coefficients as well as a wealth of other useful information about control loop tuning in my book Process Control for Practitioners.
https://www.amazon.com/gp/product/0983843813