Last Modified: August 28, 2017

Implements a PID controller in the Academic form.

Value of the feedforward control.

This input accepts an array of double-precision, floating-point numbers if **setpoint** is an array.

Settings for the manual control mode.

This input accepts an array of clusters if **setpoint** is an array.

Value of the control output when you use the manual control mode.

**Default: **0

A Boolean that specifies whether to reset the internal parameters, such as the integrated error, of the controller.

True | Resets the internal parameters. |

False | Does not reset the internal parameters. |

Set **reset** to True if your application must stop and restart the control loop without restarting the entire application.

This input accepts an array of Booleans if **setpoint** is an array.

**Default: **False

Setpoint value, or desired value, of the process variable.

This input accepts a double-precision, floating-point number or an array of double-precision, floating-point numbers.

Measured value of the process variable.

This input accepts an array of double-precision, floating-point numbers if **setpoint** is an array.

Proportional gain, integral gain, derivative gain, and filter coefficient parameters of the controller.

This input accepts a cluster or an array of clusters.

Proportional gain of the controller.

Integral time constant of the controller, in seconds.

Derivative time constant of the controller, in seconds.

Derivative lowpass filter coefficient of the controller.

Range for the control output value.

If the control output value is outside **output range**, this node coerces the value to fall within the range and returns the coerced value as the control output value. This node implements integrator anti-windup when the control output is saturated at the specified minimum or maximum value.

This input accepts an array of clusters if **setpoint** is an array.

Maximum control output value.

**Default: **Infinity

Minimum control output value.

**Default: **-Infinity

Loop-cycle time, or interval in seconds, at which this node is called. **dt** must be greater than 0.

Corrections to apply to the error values of the controller. **setpoint weighting** tunes the proportional action and the derivative action.

This input accepts an array of clusters if **setpoint** is an array.

Relative emphasis of setpoint tracking to disturbance rejection.

The valid value range is [0, 1]. Use the default value for most applications.

**Default: **1

An amount by which to weight the error applied to the derivative action.

The valid value range is [0, 1]. Use the default value to avoid the derivative kick.

**Default: **0

Control output of the PID algorithm that is applied to the controlled process.

Difference between the setpoint and the process variable.

Values of the proportional action, the integral action, and the derivative action in the PID algorithm.

Value of the proportional action.

Value of the integral action.

Value of the derivative action.

The following transfer function represents a PID controller in the Academic form:

${C}_{i}\left(s\right)={K}_{c}(1+\frac{1}{{T}_{i}s}+\frac{{T}_{d}s}{{\alpha}_{i}{T}_{d}s+1})$

where

*K*_{c}is the proportional gain*T*_{i}is the integral time constant*T*_{d}is the derivative time constant- ${\alpha}_{i}$ is the derivative filter coefficient

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: DAQExpress does not support FPGA devices

Web Server: Not supported in VIs that run in a web application