From 7:00 PM CST Friday, January 24th - 7:00 PM CST Sunday, January 26th, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

From 7:00 PM CST Friday, January 24th - 7:00 PM CST Sunday, January 26th, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Last Modified: January 12, 2018

Implements a PID controller in the Parallel 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 gain of the controller, in Hz.

Derivative gain 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 Parallel form:

${C}_{p}\left(s\right)={K}_{p}^{\prime}+\frac{{K}_{i}^{\prime}}{s}+\frac{{K}_{d}^{\prime}s}{{\alpha}_{p}{K}_{d}^{\prime}s+1}$

where

- ${K}_{p}^{\prime}$ is the proportional gain
- ${K}_{i}^{\prime}$ is the integral gain
- ${K}_{d}^{\prime}$ is the derivative gain
- ${\alpha}_{p}$ is the derivative filter coefficient

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

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