On an FPGA target, implements an integer PID algorithm for PID applications with high-speed control and/or high channel count that require an efficient algorithm. You can use this Express VI with single-channel or multi-channel configurations. The PID algorithm features control action range and uses the integrator anti-windup calculation to limit the effect of the integral action during transients. The PID algorithm also features bumpless controller output for PID gain changes.
![]() | Note This Express VI is available only if you install both the LabVIEW PID Control Toolkit and LabVIEW FPGA Module. |
| Dialog Box Options |
| Block Diagram Inputs |
| Block Diagram Outputs |
| Parameter | Description |
|---|---|
| PID Parameters | Contains the following options:
|
| Initial Gains | Contains the following options: The values you enter in the Initial Gains section determine the values the Express VI returns in the Initial Quantized Gains section.
|
| Initial Output Range | Contains the following options:
|
| Initial Quantized Gains | Contains the following options:
|
| Parameter | Description |
|---|---|
| reset? | If TRUE, sets the derivative (D) action to zero and resets the integrated error to zero. The Express VI initializes automatically when it first runs. |
| setpoint | Specifies the value that you want the process variable to attain. The value you wire to this input overrides the value of Initial setpoint in the configuration dialog box. |
| process variable | Specifies the value of the variable that you are controlling. |
| PID gains (x 2^8) | Includes a cluster of three integers representing the scaled PID gain parameters. The upper 8 bits of each integer represent the integer portion of the gain, and the lower 8 bits of each integer represent the fractional portion of the gain.
|
| output range | Specifies the allowable range of the integer output. The values you wire to this input override the values in the Initial Output Range section of the configuration dialog box.
|
| configuration | Appears only for multi-channel configurations, which you specify if you enter a number greater than 1 in the Number of channels parameter in the configuration dialog box. Includes a cluster of two clusters and two numeric controls. The clusters are PID gains (x2^8) and output range, which are also available for single-channel configurations. The numeric controls are setpoint and channel index. setpoint is the value that you want the process variable to attain. channel index specifies to which PID channel you want to apply the PID gains, output range, and setpoint. |
| Parameter | Description |
|---|---|
| channel being processed | Returns which PID channel the Express VI currently is processing. The channel being processed output appears only if you enter a number greater than 1 in the Number of channels parameter in the configuration dialog box. |
| output | Returns the control action returned by the PID algorithm. The signal corresponds to the process variable channel.
PV(n) = value of process variable on the nth call after initialization ΔPV(n) = PV(n) – PV(n – 1) e(n) = setpoint(n) – PV(n) Ts = sampling interval P = Kc I = Ki * Ts D = Kd / Ts Ki = Kc / Ti Kd = Kc * Td Ti and Td are the integral and derivative times, respectively, in minutes, and Kc is the proportional gain constant. |
The Express VI represents the PID proportional, integral, and derivative gains as 16-bit integers, where the upper 8 bits represent the integer part and the lower 8 bits represent the fractional part. Given the Proportional gain (Kc), Integral time (Ti, min), and Derivative time (Td, min), respectively, the Express VI scales these gains according to the following formulas:


where Ts is the Sampling time Ts (s) at which the PID loop runs.