Cohen-Coon Tuning Rules
Based on the number of Google searches in 2010, the Cohen-Coon tuning rules are second in popularity only to the Ziegler-Nichols tuning rules. Cohen and Coon published their tuning method in 1953, eleven years after Ziegler and Nichols published theirs.
More Flexible than Ziegler-Nichols
The Cohen-Coon tuning rules are suited to a wider variety of processes than the Ziegler-Nichols tuning rules. The Ziegler-Nichols rules work well only on processes where the dead time is less than half the length of the time constant.
The Cohen-Coon tuning rules work well on processes where the dead time is less than two times the length of the time constant (and you can stretch this even further if required).
Cohen-Coon provides one of the few sets of tuning rules that has rules for PD controllers – should you ever need this.
Quarter-Amplitude Damping
Like the Ziegler-Nichols tuning rules, the Cohen-Coon rules aim for a quarter-amplitude damping response. Although quarter-amplitude damping-type of tuning provides very fast disturbance rejection, it tends to be very oscillatory and frequently interacts with similarly-tuned loops. Quarter-amplitude damping-type tuning also leaves the loop vulnerable to going unstable if the process gain or dead time doubles in value. However, the easy fix for both problems is to reduce the controller gain by half. E.g. if the rule recommends using a controller gain of 1.8, use only 0.9. This will prevent the loop from oscillating around its set point as described above, and will provide an acceptable stability margin.
Target PID Controller Algorithm
There are three types of PID controller algorithms: Interactive, Noninteractive, and Parallel. The Cohen-Coon tuning rules were designed for controllers with the noninteractive controller algorithm. If you are not using the derivative control mode (i.e. using P, PI, of PD control), the rules will also work for the interactive algorithm. However, if you are using derivative (i.e. PID control) on an interactive controller, or if your controller has a parallel algorithm, you should convert the calculated tuning settings to work on your controller.
A Note on Integral Time
The original Cohen-Coon paper expressed the tuning constant for the integral control mode in terms of reset rate (or integral gain) in repeats per minute. Virtually all the modern texts on process control use integral time, and so do most control systems (DCS & PLC). Also, this blog generically uses integral time and not integral gain. Therefore, the tuning rules below use integral time (the reciprocal of what Cohen-Coon used). If your controller uses integral gain or reset rate, you’ll have to invert the calculated integral time (use 1/Ti).
Also, if your controller’s integral time unit is in minutes, you must make your measurements of dead time and time constant in minutes. Likewise if your controller uses seconds, make your measurements in seconds.
When to use the Cohen-Coon Tuning Rules
The Cohen-Coon tuning rules are suitable for use on self-regulating processes if the control objective is having a fast response, but I recommend you divide the calculated controller gain by two, as described above.
If the control objective is to have a very stable, robust control loop that absorbs disturbances, rather use the Lambda tuning rules.
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 Cohen-Coon 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 change in CO and the intersection of the tangential line and the original PV level.
- Calculate the value of the PV at 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 this measurement.
- 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 new tuning settings using the Cohen-Coon tuning rules below. Note that these rules produce a quarter-amplitude damping response. See the next step.
- Divide the calculated controller gain by two to reduce oscillations and improve loop 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
*G.H. Cohen and G.A. Coon, Theoretical Consideration of Retarded Control, Trans. ASME, 75, pp. 827-834, 1953
why level of water cannot use Cohen-Coon’s to calculate the gain and intergral time? instead use Zieglar-Nichols’s method to calculate gain and intgral time.
Ija,
The Cohen-Coon tuning method requires a measurement of the process time constant, while the way we normally model integrating processes (like liquid level) this measurement is not available.
The original Ziegler-Nichols method does not require a measurement of the process time constant and therefore lends itself very well to tuning level controllers for a fast response. See this poset for details: https://blog.opticontrols.com/archives/697
– Jacques
i have a question, i’m still new in this field, the question is cohen coon tune method is suitable for pH neutralization unit,a little bit confused when your notes state that “The Cohen-Coon tuning rules are suitable for use on self-regulating processes if the control objective is having a fast response” and “Assuming the control loop is linear”? as far as i concern ph neutralization is a nonlinear process and has slow response..
Adnan,
Nonlinearity: You are correct – pH processes are nonlinear and you will likely have to linearize the pH loop before tuning it. See this article on improving pH control.
Slow Response: A control loop’s speed of response is relative to the process dynamics. A fast sprinter is fast compared to other sprinters, but slow compared to a Ferrari. Cohen-Coon will give you fast response relative to the process dynamics, so the “fast” pH-control loop will be fast compared to the same loop tuned using the Lambda tuning method, but many times slower than a flow-control loop.
Thanks for this helpful article. But what about Cohen-Coon Tuning method for discrete time PID controller? and how the controller output (CO) equation will be?
Sarah: The vast majority of controllers execute their control algorithms much faster than their processes’ dynamic responses, hence the discrete-time PID controller approximates a continuous time controller. The delay created by the controller adds dead time to the control loop (which is equal to 1/2 the controller’s execution interval). If a process responds fast in comparison to the controller’s execution interval, this delay must be added to the measured process dead time when calculating controller tuning settings. In practice, I have never had to consider z-transforms or discrete-time control theory when analyzing or optimizing industrial process-control loops. (Note: Discrete-time control theory may be relevant in the fields of aerospace and robotics – I do not have experience in those fields.)
Thank you for this nice blog. I have one doubt. In the calculation of process gain how to calculate change in PV in %. I am trying to make a temperature controller whose temperature can vary from 77K to 500K. If I change the heater power from 15% to 20% temperature changes from 130K to 160K. Is the change in PV in % = [[(160-130)/130]X100]% ?
I have another question, if I want to have a fixed ramp (i am doing it by having a running SP), how my PI values will change?
Sayak:
A1: If you are making your own PID controller it depends on how you normalize the error before sending it to the PID algorithm. Most industrial controllers normalize the input based on the measurement range of the PV, which would be 77 to 500 in your case. If your controller does that too, you should normalize your change in PV in the same way, i.e. (160-130)/(500-700).
A2: I normally tune the controller for good disturbance rejection, and ramp the setpoint at the desired rate. If overshoot is a problem, I use a setpoint filter instead of, or in addition to, the ramp.
thanks for this nice blog. I am tuning my controller to control gas emissions for a range of concentrations between 4000-6000 ppmv for example, the values i get they are going to be useful for example if concentration gas concentration raises until 10,000 ppmv, or should i tune the controller again in those conditions? thanks in advance
Luis, that will depend if the process characteristics change significantly between 5,000 ppmv and 10,000 ppmv. This, in turn depends on process design and the control valve’s characteristic curve. The modified Cohen Coon tuning method is tolerant to process gain changes of up to 2.0, but for larger changes than that you will have to use controller gain scheduling to keep your loop performance optimal throughout the control range. I suggest you see how the loop performs at 10,000 ppmv and then decide if you need to retune the loop and implement gain scheduling.
Thanks for this helpful article, i have a question regarding to Cohen-Coon tuning rules. If we have a second order system like PDT2. how we can tun the pid controller by this rule. the time delay can be driven from system transfer function, but in TF we have 2 different timeconstant for second order system, which one should we use?
Amin: You cannot directly use the Cohen-Coon tuning rules on a second-order model of a system. However, if the model has two real and positive time constants, and one is much larger than the other, you can use the small time constant as dead time and the other as the system’s time constant and apply the Cohen-Coon tuning rules.
Hi, Thanks for your replay. Actually ithe system TF is:
0.48028 (1+0.04995s)
exp(-14*s) * —————————————
(1+22.98s) (1+88.45s)
and when i plot the step response, it is an overdamped system. My question is, it is possible that from step response, i can driven out the k and tau and calculate the PID parameter with Cohen-Coon tuning rules?
Yes, use the technique explained in the article on this blog page.
Hi, thank you very much for this blog, all pages have been very helpful. Is there a way to use the Cohen-Coon tuning method as your deadtime approaches 0? I’ve had a few very fast loops where the PV appears to begin changing at the same time as the CO during a bump test (or at least the changes are picked up in the same scan of our data historian). The math seems to break down a bit where tau is much greater that the deadtime or the deadtime approaches 0. During these few cases I’ve been able to use Lambda tuning fine however I’m curious; is there a way to modify the equations in this type of situation?
Michael: Yes you can the Lambda Tuning method because the equations still work with zero dead time. You should be able to use a small closed-loop time constant, e.g. 1/3rd of the open-loop time constant, provided that the time constant is not also near zero. I have also had success in the past with Cohen Coon by setting the dead time = data acquisition scan time.
Thanks for the awesome resource! One question regarding PV normalization: is it better to normalize PV by span of the measurement device or by expected operating range? Ex: for a temperature controller, say we can expect 70 F when inactive and 200 F when commanded to max allowable command. And say the temperature sensor has a range of 0 F to 500 F. Is it better to normalize PV by (200-70) or by (500-0)?
Chris: In my opinion, it is better to normalize the PV to the expected operating range if the controller allows it. I do a lot of tuning in power plants where typically the steam temperature transmitter ranges can be calibrated as wide as 0 to 2000 F or even more. With that broad range, the process gain calculates to be a very small number, which requires an abnormally high controller gain. Mathematically, everything still works, but the controller gain just looks suspiciously high. However, most important is that you use the same PV range in your calculations as the controller uses for its normalization.