GenericFeedbackControl

A feedback control implementation for processes unrelated to motion.

The GenericFeedbackControl processing block can be found in the ‘Templates’ feature in the PMP installer.

generic feedback control loop structure

Control loop structure where a feedback controller controls a process

The processing block is based on the feedback control structure shown above, where a reference controls the measured output of a process. This can be temperature, flow, pressure, level or another type of quantity.

Note

This processing block is not intended for position or velocity control.

Description

The implementation of the processing block is shown in Implementation of the processing block.

The block consists of multiple components, which are further explained in the following sections:

  • Tracking error calculation and loop control blue-rect

  • Feedback controller yellow-rect

  • Saturation and limits green-rect

Generic feedback control implementation

Implementation of the processing block

Tracking error calculation and loop control

The tracking error is calculated using the following equation:
TrackingError = (Demand - Sensor) * IsClosedLoop

The position controller can be in open loop or closed loop state. A request for a certain loop state is done via the CloseLoopRequest input. The IsClosedLoop signal is used to inform PMP about the active loop state.

Feedback controller

The tracking error is forwarded to a PID controller. The PID controller combines a proportional, a derivative and an integral control term with a second order low pass filter. The second order low pass filter is applied to the results of the proportional and derivative terms, but not to the result of the integral term.

The integrator output can be clipped to configurable limits. An IntegratorSaturated event is raised if the output exceeds the limits, i.e., IntegratorOutput < IntergratorLowerClip or IntegratorOutput > IntergratorUpperClip.

Note

The PID block is a PIDLowPass and discretized using Tustin’s method.

Saturation and limits

Limits are available to evaluate if the tracking error and control output stay within defined bounds. Event are raised if these bounds are exceeded.

Tracking error limit

The purpose of the control loop is to keep the tracking error small. If the tracking error becomes very large, then it’s likely that some part of the loop is not correctly functioning. For instance due to a failing actuator or a noisy sensor.

Tracking error limit implementation

Implementation of the tracking error limit

The limit can be configured using the TrackingErrorLimit signal. The TrackingErrorLimitExceeded event is active if the tracking error exceeds the configured limit:

  • |TrackingError| > TrackingErrorLimit

Saturation

The control output saturation limits make sure that the controller is aware of the physical limitations of the connected actuator. If the control output saturates, then the integrator of the PID controller is locked to prevent ‘integral windup’.

Attention

The control output saturation is not intended to protect the actuator against thermal overload. These protections should be configured on the actuator interface.

Saturation implementation

Implementation of the saturation

Note

The values of the saturation limits depend on the unit of the control output.

The saturation limits can be configured using the ControlOutputUpperSaturation and ControlOutputLowerSaturation signals. The CoutSaturationExceeded event is active if the control output exceeds these limits:

  • ControlOutput < ControlOutputLowerSaturation

  • ControlOutput > ControlOutputUpperSaturation

The saturation is disabled if ControlOutputUpperSaturation =< ControlOutputLowerSaturation.

Integration

The integration of this processing block in the software platform is shown in Integration of feedback control in the software platform.

generic feedback control integration

Integration of feedback control in the software platform

Interface

Inputs

Inputs

Name

Description

CloseLoopRequest

Input to request a ClosedLoop loop status.

Demand

Demand input used for tracking error calculation.

Sensor

Sensor value input used for tracking error calculation.

Read only signals

Read only signals

Name

Description

ControlOutput

Output of the position controller.

IsClosedLoop

Indicates if the feedback control loop is open or closed.

PidOutput

Output of the PID controller.

Reset

Rising-edge based trigger to clear the PID filter state.

TrackingError

Tracking error value.

Read-write signals

Read-write signals

Name

Description

ControlOutputLowerSaturation

Controller output lower saturation value.

ControlOutputUpperSaturation

Controller output upper saturation value.

InjectionPointCoutEnable

Enable injection at control output.

InjectionPointSensorEnable

Enable injection at sensor output.

TrackingErrorLimit

Tracking error limit for feedback tracking limit determination.

Events

Events

Name

Description

TrackingErrorLimitExceeded

Active if the configurable feedback tracking error limit is exceeded.

IntegratorSaturated

Active if the integrator output reaches the saturation limit.

CoutSaturationExceeded

Active if a configurable control output saturation limit is reached.

Filters

Filters

Name

Type

Discretization type

PID_LowPass

PidLp

Tustin