The PID algorithmn in basic code suitable for implementation in Visual Basic or convertable to any programming language.
Buy and download my eBook: The
PID Control Algorithm: How It Works, How To Tune It, and How to Use It. 2nd ed.
| Most major credit cards accepted.
Get more details, buy, and download
|ControlSim The PID controller and process simulator based on MS Excel spread sheets. $45.00||Click here to get more details, buy, and download|
|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
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 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.
Input Process input
The PID emulation code:
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
10. InputLast=Input While loop in manual, stay ready for bumpless switch to Auto.
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.
February 11, 2006 02:49:32 PM.
Provided by John Shaw.
Process Control Solutions