ControlSim  The PID controller and process simulator based on MS Excel spread sheets.    $45.00 Click here to get more details, buy, and download

Buy and download my eBook: The PID Control Algorithm: How It Works, How To Tune It, and How to Use It. 2nd ed. 62pp
Adobe .pdf file                      only $15

visa-mclogo.gif (2156 bytes) Most major credit cards accepted.
Get more details, buy, and download

PID Algorithm Code

 

 

 

 

There are many ways to implement the PID algorithm digitally. Two will be discussed here. In each case, there will be a section of code (in structured Basic, easily convertible to any other language) that will be executed by the processor every second. (some other scan rate may be used, change the constant 60 to the number of times per minute it is executed.) In each code sample there is an IF statement to execute most of the code if the loop is in the auto mode. If the loop is in manual mode only a few lines are executed in order to allow for bumpless transfer to auto. Also, while the control loop is in manual, the output (variable OutP) will be operator adjustable using the operator interface software.

The code shown here and on the next page can be translated into any computer language. For information about process control programming in Visual Basic and C#, some very good information can be found at HT Services site   HERE >>>

Simple PID code

One method of handling the integration and bumpless transfer to automatic mode is an algorithm that calculates the change in output from one pass to the next using the derivative of the PID algorithm, or:

dOut/dt  = gain  x  (dError/dt + ResetRate x Error + Derivative x d2Error/dt2

derivative of output = gain x (derivative of error +  reset rate  x error + second derivative of error)

This program is run every second. If the control loop is in manual, the output is adjusted by the operator through the operator interface software. If the control loop is in Automatic, the output is computed by the PID algorithm.

Each pass the output is changed by adding the change in output to the previous pass output. That change is the sum of:

  • the change in error (Err-ErrLast)
  • the error multiplied by the reset rate, and
  • the second derivative of the error (Err-2*ErrLast+ErrLastLast) times the derivative.

The total is then multiplied by the gain.

This simple version of the PID controller work well in most cases, and can be tuned by the standard PID tuning methods (some of which are discussed later). It has “Parallel” rather than “Series” reset and derivative, and derivative is applied to the error rather than the input only.

Variables:

Input         Process input
InputLast    
Process input from last pass, used in deriv. calc.
Err           
Error, Difference between input and set point
ErrLast      
Error from last pass                
ErrLastLast  
Error from next to last pass
OutP         
Output of PID algorithm
Mode         
value is ‘AUTO’ if loop is in automatic
Action       
value is ‘DIRECT’ if loop is direct acting

Derivative        Derivative value in minutes
Reset           reset rate in repeats per minute
SetP                     Set Point, set by operator
Mode                   String, set to "AUTO" or "Manual" by operator
Action                  String, set to "REVERSE" or "DIRECT" during configuration

The PID emulation code:

 1.           IF Mode = ‘AUTO’ THEN

2.             Err=SetP- Input           Error based on reverse action

3.             IF Action = ‘DIRECT’ THEN

4.                   Err=0 – Err           Change sign of error for direct action

5.             ENDIF

6.            OutP=OutP+Gain*(Err-ErrLast+Reset*Err+Deriv*(Err-ErrLast*2+ErrLastLast))
Calculate the change in output using the derivative of the PID algorithm, then add to the previous output.

7.             ErrLastLast=ErrLast

8.         ErrLast=Err

9.       ELSE

11.         ErrLastLast=Err

12.         ErrLast=Err

13.       ENDIF

14.       IF OutP > 100 THEN OutP=100  Limit output to between

15.       IF OutP < 0 THEN OutP=0      0 and 100 percent

 

The only serious problem with this form of the algorithm occurs when the output has reached an upper or lower limit. When it does, a change in the measurement can unexpectantly pull the output away from the limit.

Next: A Better Implementation


ControlSim  The PID controller and process simulator based on MS Excel spread sheets.    $45.00 Click here to get more details, buy, and download

Buy and download my eBook: The PID Control Algorithm: How It Works, How To Tune It, and How to Use It. 2nd ed. 62pp
Adobe .pdf file                      only $15

visa-mclogo.gif (2156 bytes) Most major credit cards accepted.
Get more details, buy, and download

Apartments in Ballantyne in South Charlotte, NC.

Buy and download e-books on other subjects,
such as relationships and making money online Click Here

Don't have an opinion but need one,
you can have my opinion, mostly about North Carolina and environmental issues Click Here And for my opinion about environmental issues facing NCClick Here
Mens Divorce Secrets -- Download book for men who may go through a divorce.
The Survey Zone -- Get paid for surveys - $10 to $85 per survey.