The Fuzzy Logic Control (FLC) function block provides the control capability of the PID block with the added benefit of superior response for both setpoint changes and external load disturbances. By using fuzzy logic, the FLC function block minimizes overshoot and provides good load disturbance rejection. The scaling factors of the FLC function block can be automatically established using Tune with InSight.
The FLC function block operates by using predefined fuzzy rules, membership functions, and adjustable parameters known as scaling factors. The FLC function block translates the loop's absolute values into fuzzy values by calculating the scaled error (e) and scaled change in error (Δe) in addition to the degree of membership in each of the predefined membership functions. It then applies the fuzzy rules and, finally, retranslates the values into a control move.
This function block supports mode control, signal scaling and limiting, feedforward control, override tracking, alarm limit detection, and signal status propagation.
This block supports conditional alarming. Enabling conditional alarming makes additional parameters available for this block.
In Cascade (Cas) mode, the setpoint (SP) is adjusted by a master controller. In Remote Cascade mode (RCas), the setpoint is written by an application. In Automatic (Auto) mode, the SP can be adjusted by the operator. In RCas, Cas and Auto modes, the output is calculated to maintain setpoint. In Manual (Man) mode, the block's output is set by the operator. In Remote Output (ROut) mode, the block's output is written by an application.
The FLC function block can be connected directly to process I/O, can receive its input from another block at the input connection (IN), or can provide an output value to another block through the output connection (OUT).
You can connect BKCAL_OUT to a master controller and BKCAL_IN to a slave controller to compensate for downstream limits and to provide bumpless transfer to closed loop control.
You connect the tracking inputs (TRK_IN_D and TRK_VAL) for externally controlled output tracking.
BKCAL_IN is the analog input value and status from another block's BKCAL_OUT output that is used for backward output tracking for bumpless transfer and to pass limit status.
CAS_IN is the remote setpoint (SP) value from another block.
FF_VAL is the feedforward control input value and status.
IN is the connection for the process variable (PV) from another function block.
SIMULATE_IN is the input value and status used by the block instead of the analog measurement when simulation is enabled.
TRK_IN_D initiates the external tracking function.
TRK_VAL is the value after scaling applied to OUT in Local Override mode.
BKCAL_OUT is the value and status required by the BKCAL_IN input of another block to compensate for downstream limits and to provide bumpless transfer to closed loop control.
OUT is the block output value and status.
Other FLC function block features
Many of the following features of the FLC function block are identical to those provided for the PID function block.
alarm detection
status handling
I/O Selection
simulation
signal Conversion
filtering
feedforward Calculation
tracking
setpoint selection and limiting
output selection and limiting
bumpless transfer and setpoint tracking
reverse and direct action
block errors
The following diagram shows the internal components of the Fuzzy Logic Control function block: