After search, use << and >> links at top of page to view other pages.

Get Updates on Facebook

PID Controller Algorithms

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

Interactive

Interactive Controller Algorithm

Interactive Form

Interacting Equation

The oldest arrangement of the P, I, and D control modes is called the Series, Classical, Real, or Interactive form.  The original pneumatic and electronic controllers had this form and it is still found it in some controllers today.  The Ziegler-Nichols PID tuning rules were developed for this form.

Noninteractive

Noninteractive Controller Algorithm

Noninteractive Form

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

Note: If no derivative is used (i.e. Td = 0), the interactive and noninteractive forms are identical.

Parallel

Parallel Controller Algorithm

Parallel Form

Many academic textbooks discuss only the parallel form of PID controller, and don’t mention the others. The parallel form 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 that would normally affect all three control modes. Instead, it has a proportional gain that affects only the proportional mode.  Adjusting the proportional gain should be supplemented by adjusting the integral and derivative settings at the same time.  I try not to use this controller algorithm if possible. In some DCSs it has an alternative option, but not always.

Significance of Different Forms

The biggest difference between the different forms is that the Parallel form has a Proportional-only Gain (Kp), while the two other forms have a Controller Gain (Kc). Controller Gain affects all three modes (Proportional, Integral and Derivative) of the Series and Ideal forms, 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 form, 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 forms is the interaction between the Integral and Derivative modes of the Interactive form. This, of course, is only of significance if the Derivative mode is used. In most PID controller applications, Derivative mode is not used. Equations 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. Honeywell Experion, Foxboro I/A) use minutes as the unit for Integral and Derivative modes, but some controllers (e.g. Emerson DeltaV, ABB Bailey) use seconds.

3. Most controllers use Time for their Integral unit, while some (e.g. ABB Bailey) 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 which PID form the controller has and which units it uses.

Stay tuned!
Jacques Smuts – Author of the book Process Control for Practitioners

18 Responses to “PID Controller Algorithms”

  • Nitin Mehta:

    Nice article, thank you Jacques!

  • Tejaswinee:

    Excellent

  • Marco:

    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.

  • James Stuart:

    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.

  • Andre V.:

    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.

  • Dominik:

    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.

  • David:

    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!

  • David:

    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.

  • Ajay Shriram:

    Two questions :

    1. In the interactive algorithm equation, its doing the d/dt of the proportional and integral output isn’t it ? Whereas in the non-interactive algorithm equation, its dE/dt isn’t it ?

    So in the non-interactive algorithm its the derivative of the error, but in the interactive algorithm equation its the derivative of the proportional and integral output ?

    2. How does one invert the output of the PID, for example in controlling a choking valve which closes from 100 to 0%. In such a case, I can’t just say the max range of my output is 0% and the min range of my output is a 100% , can I ?

  • Ajay:

    1. Yes, except where you say Error, it should be Kc x Error

    2. PID controllers normally have a “control direction” toggle which can be set to direct-acting or reverse-acting. If your PV increases and you want the controller output to decrease as a result, use reverse-acting. If your PV increases and you want the output also to increase, use direct-acting. This can be used to have the PID algorithm control opposite process responses, e.g., heating controls vs. cooling controls. It can also be used to compensate for control valve travel direction, but for that I prefer inverting the controller output downstream of the controller using a function generator [f(x)] or if the analog output card provides inversion, I’ll use that. It is best to align valve travel with controller output so that 0% output means valve closed. Mathematically there is no difference, but operationally (for humans) it makes more sense.

  • Xinwei Sun:

    “If your PV increases and you want the output also to increase, use reverse-acting.” here i think it should be “……, use direct-acting”.

  • Correct, thanks! I made the update.

  • Thanks. This matches exactly how it was taught in my graduate process control course (University of Laval).

Leave a Reply

The Book for Practitioners