Owning Palette: PID VIs
Installed With: PID Control Toolkit
Implements a PID controller with a lead/lag function, which is generally used as a dynamic compensator in feedforward control schemes. This VI uses a positional algorithm and is an approximation of a true exponential lead/lag. Use the DBL instance of this VI to implement a single control loop. Use the DBL Array instance to implement parallel multi-loop control.
Use the pull-down menu to select an instance of this VI.

![]() |
input specifies the input value. | ||||||
![]() |
tuning parameters specifies the tuning parameters.
| ||||||
![]() |
output range specifies the range to which to coerce the control output. The default range is –100 to 100.
| ||||||
![]() |
dt (s) specifies the interval, in seconds, at which this VI is called. If dt (s) is less than or equal to zero, this VI uses an internal timer with a one millisecond resolution. The default is –1. | ||||||
![]() |
reinitialize? specifies whether to reinitialize the output to the current input value. | ||||||
![]() |
output returns the control output of the PID algorithm that is applied to the controlled process. | ||||||
![]() |
dt out (s) returns the actual time interval in seconds. dt out (s) returns either the value of dt (s) or the computed interval if you set dt (s) to –1. |

![]() |
input specifies the input value. | ||||||
![]() |
tuning parameters specifies the tuning parameters.
| ||||||
![]() |
output range specifies the range to which to coerce the control output. The default range is –100 to 100.
| ||||||
![]() |
dt (s) specifies the interval, in seconds, at which this VI is called. If dt (s) is less than or equal to zero, this VI uses an internal timer with a one millisecond resolution. The default is –1. | ||||||
![]() |
reinitialize? specifies whether to reinitialize the output to the current input value. | ||||||
![]() |
output returns the control output of the PID algorithm that is applied to the controlled process. This VI determines the length of the output from the size of the input array. | ||||||
![]() |
dt out (s) returns the actual time interval in seconds. dt out (s) returns either the value of dt (s) or the computed interval if you set dt (s) to –1. |
You can use the DBL Array instance of this polymorphic VI in multi-loop PID control applications. In this case, the length of the primary input array determines the length of the output array. Other input arrays do not necessarily need to be the same length as the primary input array. This VI resizes other input arrays to the same length as the primary input array as follows:
In this manner, an input value that must be used for each output calculation does not need to be specified repeatedly in the array passed into this VI. Instead, the array can consist of a single value that is used for each output calculation.
Refer to the Simulation - Cascade and Feedforward Surge Tank Level VI in the labview\examples\control\pid\prctrlex.llb for an example of using the PID Lead-Lag VI.