AIA

The function block has the following input pins setPt, sensor, disable and an output pin OUTPUT. This function is an Adaptive Integral Action controller (AIA). It can be used in place of the PID. This control works better than PID when delays in the process being controlled cause integral windup resulting in undershoot or overshoot that leads to instability.

Err = Sensor - Set Point.

If Direct/Reverse is set to reverse, then Err term is set to -Err.

Tr (throttling range) is Error value that results in an Output change of the maximum value (MaxAOchange) from one step to the next. MaxAOchange is the maximum amount(%) that the Output changes for a single cycle of the control (1 sec). This is typically set to 100%/(actuator speed(sec/full stroke)). Deadband is the absolute value that Error must be greater than, before the output changes.

EffErr = Err - dead band

If Err > 0 , ErrSign = 1 else ErrSign = -1

If |Err| < dead band, then AbsErr = 0.

Otherwise( |Err |> dead band), AbsErr = |Err| - deadband

Output = output + ErrSign*[( maxAOchng - minAO)*(AbsErr/(ThrottlingRange-Deadband))**3 + MinAO)].

From iteration to iteration, the Function Block keeps track of the old proportional error. On power up/reset this is cleared.

Logic Inputs

Input Name Input Value Logic Value Description
disable unconnected 0 AIA function runs.
  VAL != 0.0 1 Disable AIA function.
Output set to 0.
  0 0 AIA function runs.
  invalid 0 AIA function runs.

Analog Inputs

Range
Input Name Low High Input Value Description
sensor >=- infinity <+ infinity unconnected AIA function disabled.
Output set to 0.
invalid Same as unconnected.
setPt >=- infinity <+ infinity unconnected AIA function disabled.
Output set to 0.
invalid Same as unconnected.
tr 0 <+ infinity unconnected AIA function disabled.
Output set to 0.
invalid Same as unconnected.
VAL <= 0 Same as unconnected.
maxAOChange 0< 100 unconnected MaxAOChange = 1.1 %/sec
invalid MaxAOChange = 1.1 %/sec
0 MaxAOChange = 1.1 %/sec
VAL < low MaxAOChange = 1.1 %/sec
VAL > high MaxAOChange = 1.1 %/sec
deadband 0 < tr unconnected disable Dead Band action
invalid disable Dead Band action
VAL < low OR VAL >+ tr DB = 0
0 disable Dead Band action
derivGain 0 <+ infinity unconnected val = 0
invalid val = 0
VAL < low val = low
minAOChange 0< <= maxAOchange unconnected MinAOchange = 0
invalid MinAOchange = 0
VAL < 0 MinAOchange = 0
VAL>=MaxAOchange MinAOchange = 0

Output

Output Name Range Description
OUTPUT 0 to +100 % Output = output + ErrSign*NonLin(AbsErr,ThrottlingRange,MaxAOchange,MinAOchange)

Setpoint

Name Range Description
revAct
  • 0 = Direct acting
  • 1 = reverse acting
User specified revAct value