PID Output Rate Limiter (DBL Array) VI
- Updated2025-07-30
- 3 minute(s) read
Limits the rate of change of the controller output. Place this VI immediately after the PID VI in your control application. Use the DBL instance of this VI to implement a single control loop. Use the DBL Array instance to implement parallel multi-loop control.

Inputs/Outputs
input (controller output)
—
input (controller output) specifies the current control output value from the PID VI.
initial output
—
initial output specifies the output value on the first call or reinitialization of this VI. This VI resizes the initial output input array to match the size of the input (controller output) input array.
output rate (EGU/min)
—
output rate (EGU/min) specifies the maximum rate of change of the controller output. This VI resizes the output rate (EGU/min) input array to match the size of the input (controller output) input array.
dt (s)
—
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. Use the same dt (s) value as you use for the PID or PID Advanced VI.
reinitialize? (F)
—
reinitialize? specifies whether to reinitialize the output to the initial output value.
output
—
output returns the current control output with a limited rate change. This VI determines the length of the output array from the size of the input (controller output) input array.
dt out (s)
—
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. |
Use the DBL Array instance of this polymorphic VI in multi-loop PID control applications. In this case, the length of the input (controller output) input determines the length of the output array. Other input arrays do not necessarily need to be the same length as the input (controller output) input. This VI resizes other input arrays to the same length as the input (controller output) input as follows:
- If the input array is longer than the input (controller output) input, the input array is truncated to the length of the input (controller output) input. Additional values in the array are not used.
- If the input array is shorter than the input (controller output) input, the last value of the input array is repeated until the size matches that of the input (controller output) input.
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.
Examples
Refer to the following example files included with LabVIEW.
- labview\examples\control\PID\PID with Noise Plant.vi
input (controller output)
—
dt (s)
—
reinitialize? (F)
—
output
—
dt out (s)
—