## PID Controller Algorithms

Controller manufacturers arrange the Proportional, Integral and Derivative modes into three different controller algorithms or controller structures. These are called Interactive, Noninteractive, and Parallel algorithms. Some controller manufacturers allow you to choose between different controller algorithms as a configuration option in the controller software.

## Interactive Algorithm

The oldest controller algorithm is called the Series, Classical, Real or Interactive algorithm. The original pneumatic and electronic controllers had this algorithm and it is still found it in many controllers today. The Ziegler-Nichols PID tuning rules were developed for this controller algorithm.

## Noninteractive Algorithm

The Noninteractive algorithm is also called the Ideal, Standard or ISA algorithm. The Cohen-Coon and Lambda PID tuning rules were designed for this algorithm.

Note: If no derivative is used (i.e. T_{d} = 0), the interactive and noninteractive controller algorithms are identical.

## Parallel Algorithm

Some academic textbooks discuss the parallel form of PID controller, but it is also used in some DCSs and PLCs. This algorithm is simple to understand, but not intuitive to tune. The reason is that it has no controller gain (affecting all three control modes), it has a proportional gain instead (affecting only the proportional mode). Adjusting the proportional gain should be supplemented by adjusting the integral and derivative settings at the same time. Try to not use this controller algorithm if possible (in some DCSs it is an option, so select the alternative).

## Significance of Different Algorithms

The biggest difference between the controller algorithms is that the Parallel controller has a true Proportional Gain (Kp), while the other two algorithms have a Controller Gain (Kc). Controller Gain affects all three modes (Proportional, Integral and Derivative) of the Series and Ideal controllers, while Proportional Gain affects only the Proportional mode of a Parallel controller.

This difference has a major impact on the tuning of the controllers. All the popular tuning rules (Ziegler-Nichols, Cohen-Coon, Lambda, and others) assume the controller does not have a parallel structure and therefore has a Controller Gain. To tune a Parallel controller using any of these rules, the Integral time has to be divided and derivative time multiplied by the calculated Controller Gain.

The second difference between the controller algorithms is the interaction between the Integral and Derivative modes of the Series (Interactive) controller. This, of course, is only of significance if the Derivative mode is used. In most PID controller applications, Derivative mode is not used. Formulas have been developed for converting tuning settings between Ideal and Series controller algorithms.

## Units of Measure of Tuning Settings

Another very important difference between controllers lies in the units of measure of the tuning settings. There are three differences.

1. Most controller types (e.g. Honeywell Experion, Emerson DeltaV, ABB Bailey) use Controller Gain, while some (e.g. Foxboro I/A, Yokogawa CS3000) use Proportional Band (PB). The conversion between the two is easy once you know which one is being used: PB = 100% / Kc.

2. Many controllers (e.g. Siemens APACS) use minutes as the unit for Integral and Derivative modes, but some controllers (e.g. Emerson DeltaV) use seconds.

3. Some controllers (e.g. ABB Mod 300) use Time for their Integral unit, while others (e.g. Allen-Bradley SLC500) use Repeats/Time. These are reciprocals of each other.

The first controller I ever tried to tune used Proportional Band, but at the time, I had never heard of this concept. Needless to say, when I entered my calculated Kc of 1.2 into its PB setting, the loop became wildly unstable. It did not take me long to realize that I should read up on PID controllers before trying to tune one again.

## Other Differences

Beyond the differences mentioned above, controllers also differ in the way the changes on controller output is calculated (positional and velocity algorithms), in the way Proportional and Derivative modes act on set point changes, in the way the Derivative mode is limited/filtered, as well as a interesting array of other minor differences. These differences are normally subtle, and should not affect your tuning.

When tuning controllers, always find out what structure the controller has and what units it is using.

Stay tuned!

Jacques Smuts – Author of the book Process Control for Practitioners

Nice article, thank you Jacques!

Excellent

If I don’t know which algorithm is implemented and the manufacturer of the controller won’t tell me., is there a simple way to identify it?

Marco, start with a PI controller with PV = SP = CO = 0%, mode = manual. Use a PV range of 100%. Use a gain of 1 and an integral time of 1 minute. Change mode to auto and change the SP to 10% while keeping the PV at 0%. The controller output should jump by 10% and then ramp by another 10% in the 1 minute you have as integral time. If that worked, go to manual and reset SP and CO back to 0. Change the controller gain to 2. Change the mode to auto and the SP to 10%. The controller output will now jump to 20%, but then notice the ensuing ramp over 1 minute. If the CO ramps by 10% you have a parallel algorithm, and you don’t need to read any further. If the CO ramps by 20% you have either an interactive or a noninteractive algorithm. If you plan to use PI control, this is all you need to do because interacting and noninteracting algorithms behave the same under PI control.

If you plan on using PID control, to find out if the algorithm is interacting or noninteracting, go to manual and reset SP and CO to 0. Set the derivative time to 0.25 minutes (gain is still 2 and integral time is still 1 minute). Change the mode to auto and the SP to 10%. Ignore the CO bump, look at the CO value after 1 minute. If the CO is at 45% you have an interacting algorithm. If the CO is at 40% you have a noninteracting algorithm.

can you explain on online tuning method to me? which one better if i’m comparing between the manufacture PID value and online tuning method?

James, I assume with “online tuning method” you mean the auto tuner built into the controller.

An auto tuner makes small steps in the controller output to analyze the process’ dynamic response from which it calculates tuning settings. This works well on simple, linear processes with well-behaving control valves. However, if the process is nonlinear, has a poorly performing control valve, or if the process is noisy, volatile, or disturbance-ridden, auto tuners have a very difficult time analyzing the process dynamics. They may come up with vastly incorrect tuning settings.

A human tuner with the right skills and experience can work around valve problems, measurement noise, and process disturbances when doing step tests and analyzing process dynamics. He/she can compensate for process nonlinearities, and when needed, linearize valve characteristics and implement gain scheduling. A skilled and experienced human tuner should be far more successful in tuning controllers than an autonomous auto-tuning algorithm.

The answer to your question about which one is best depends on how the manufacturer came up with the PID values. If they are the default values in the controller, any tuning method should provide better values. If they were based on the manufacturer’s experience with similar processes, or based on trial-and-error tuning methods, the auto-tuner might still provide better settings. If the manufacturer’s tuning values were calculated by an experienced tuner, based on proven step-test tuning methods such as described in several articles on this site, the manufacturer’s values should be better than auto-tune.

First of all, thanks for your articles, they are totally useful. I didn´t understand when you wrote: “The controller output will now jump to 20%, but then notice the ensuing ramp over 1 minute. If the CO ramps by 10% you have a parallel algorithm, and you don’t need to read any further.”.——-> So, If the controller is a parallel algorithm and the proportional gain set as 2, shouldn´t the CO go to 20 % in 1 minute until gets the setpoint ? I don´t understand why would ramp by 10. Thanks!

Andre, the CO ramps by 10% per minute because, for a parallel algorithm, the gain of 2 acts only on the proportional mode.

Nice book and website. If controller has modes as Kp and Ki it is a paraller algorithm right? When controller has modes Kc and Ti it is interactive or noninteractive algorithm. Can controller has modes Kc and Ti and be paraller algorithm? Equation for parallel algorithm says nothing about Ti.

Dominik, some controllers use integral gain (Ki) and others use integral time (Ti). It is more common for parallel controller algorithms to use Ki, but not all of them. It is best to check your control system documentation.

Hello.

I have a question regarding tunning rules.

I’ve been following this application note (http://www.atmel.com/Images/Atmel-2558-Discrete-PID-Controller-on-tinyAVR-and-megaAVR_ApplicationNote_AVR221.pdf) and they use the Ziegler-Nichols rules to do the tunning of a Noninteractive PID Algorithm (see equation on page 7).

Can you explain why?

Thank you!

Also in the Wikipedia it is suggested to use Ziegler-Nichols rules to tunning a Noninteractive PID Algorithm.

https://en.wikipedia.org/wiki/Ziegler%E2%80%93Nichols_method

I’m a little confused by all this …

Explain to me please.

David:

The Ziegler-Nichols tuning rules, published in 1942, were developed on a Model 100 Fulscope PID controller that was manufactured during the late 1930’s to early 1940’s by the Taylor Instrument Company. The Fulscope controller was a pneumatic device and as such had an interactive (also called series) PID behavior. Some authors and teachers realize this and explain it, while others do not realize it and propagate a tuning error.