PID Autotuning VI
- Updated2025-01-28
- 6 minute(s) read
PID Autotuning VI
Includes the Autotuning Wizard in addition to the basic PID algorithm. You can use this VI instead of the PID VI, which implements a basic PID algorithm. Use the additional inputs and output of this VI to set autotuning parameters, invoke the Autotuning Wizard, and update the PID gains.
![icon](https://docs-be.ni.com/bundle/labview-api-ref/page/vi-lib/addons/control/pid/autopid-llb/pid-autotuning-vi.png?_LANG=enus)
Inputs/Outputs
![]() autotuning parameters specifies various parameters used for the autotuning process. You can select these values manually in the Autotuning Wizard.
![]() output range specifies the range to which to coerce the control output. The default range is –100 to 100, which corresponds to values specified in terms of percentage of full scale. You can change this range to something that is appropriate for your control system. For example, you can relate engineering units to engineering units instead of percentage to percentage. This VI implements integrator anti-windup when the controller output is saturated at the specified minimum or maximum values.
![]() setpoint specifies the setpoint value, or desired value, of the process variable being controlled. ![]() process variable specifies the measured value of the process variable being controlled. This value is equal to the feedback value of the feedback control loop. ![]() PID gains specifies the proportional gain, integral time, and derivative time parameters of the controller.
![]() dt (s) specifies the loop-cycle time, or interval in seconds, at which this VI is called. If dt (s) is less than or equal to zero, this VI calculates the time since it was last called using an internal timer with 1 ms resolution. If dt (s) must be less than 1 ms, specify the value explicitly. The default is -1. ![]() reinitialize? specifies whether to reinitialize the internal parameters, such as the integrated error, of the controller. Set reinitialize? to TRUE if your application must stop and restart the control loop without restarting the entire application. The default is FALSE. ![]() autotune? starts the autotuning procedure and invokes the Autotuning Wizard, when TRUE. Wire this input from a Boolean control with latched mechanical action and a default value of FALSE. ![]() output returns the control output of the PID algorithm that is applied to the controlled process. If this VI receives an invalid input, output returns NaN. ![]() tuning completed? indicates completion of the autotuning process. You can use this output to determine when to update the PID gains. ![]() PID gains out returns the updated PID gain parameters upon completion of the autotuning process. Normal output values are identical to the values in the PID gains input.
![]() 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. |
Examples
Refer to the following example files included with LabVIEW.
- labview\examples\control\PID\General Auto PID Simulator.vi