PID-Controller

Symbol:

Description:

This function block represents a PID controller containing the following elements:

- proportional term

- integral term

- differential term

- integral wind-up avoidance logic

- setup of controller output; with auto/manual selection

The controller implements the following continuous transfer function:

Internally, a velocity algorithm is used. The internally generated differential term is added at the last stage; This allows a smooth auto/manual transition and a transient-free parameter setting.

By connecting the D-Term to the X input, the controller will react only to changes in the controlled variable, but not to changes in the setpoint value.

Operating modes in "Manual" mode:

a) The controller works with a manual differential signal input.

b) The manual signal input Yh is interpreted as an absolute value and is channeled directly to the controller output Y as well as to the internal integral sum.

Operations:

Overall controller implementation:

P-term:

I-term (trapezoid rule):

When the controller output is being limited, the I-term is switched off until the limit condition is over, this condition being recognized as a sign-reversal in the error signal.

D-term:

Signals: | Name |  | I/O | Type(s) |  | Function
 | X |  | I | FLOAT |  | Controlled variable (sensor input)
 | d |  | I | FLOAT |  | Control deviation
 | Kr |  | I | FLOAT |  | Proportional gain input
 | Tn |  | I | FLOAT |  | Integral term time constant in [s]
 | Tv |  | I | FLOAT |  | Differential term time constant in [s]
 | Yh |  | I | FLOAT |  | Manual set input / manual differential input
 | HA |  | I | BYTE |  | Manual mode parameter
 | Yo |  | I | FLOAT |  | Upper limit input
 | Yu |  | I | FLOAT |  | Lower limit input
 | St |  | O | BYTE |  | Status byte
 | Y |  | O | FLOAT |  | Controller output
Parameter-ization: | Tn | = 0 |  |  | I-term is off
 | Tv | = 0 |  |  | D-term is off
 | HA[0] | = 1 |  |  | Manual operation
 | HA[1] | = 1 |  |  | Y+ adds the manual input Yh to Yi (manual mode a)
 | HA[2] | = 1 |  |  | Y- subtracts the manual input Yh from Yi (manual mode a)
 | HA[3] | = 1 |  |  | Mode select input: Yh is channeled directly to Y (manual mode b)
Status byte: | St[0] | = 1 |  |  | Limit Yu reached
 | St[1] | = 1 |  |  | Limit Yo reached
Visualization: | The symbol indicates, whether the controller runs in manual or in automatic mode: