Tune PID controllers
The PID Tuner app automatically tunes the gains of a PID controller for a SISO plant to achieve a balance between performance and robustness. You can specify the controller type, such as PI, PID with derivative filter, or two-degree-of-freedom (2-DOF) PID controllers. Analysis plots let you examine controller performance in time and frequency domains. You can interactively refine the performance of the controller to adjust loop bandwidth and phase margin, or to favor setpoint tracking or disturbance rejection.
You can use PID Tuner with a plant represented by a numeric LTI model such
as a transfer function (
tf) or state-space
ss) model. If you have Simulink®
Control Design™ software, you can use PID Tuner to tune a PID
Controller or PID Controller (2DOF) block in a Simulink model. If you have System Identification Toolbox™ software, you can use the app to estimate a plant from measured or
simulated data and design a controller for the estimated plant.
Interactive Tuning in the Live Editor
For interactive PID tuning in the Live Editor, see the Tune PID Controller Live Editor task. This task lets you interactively design a PID controller and automatically generates MATLAB® code for your live script.
Open the PID Tuner App
MATLAB Toolstrip: On the Apps tab, under Control System Design and Analysis, click the app icon.
MATLAB command prompt: Enter
Simulink model: In the PID Controller or PID Controller (2DOF) block dialog box, click Tune.
- Tune PID Controller to Favor Reference Tracking or Disturbance Rejection (PID Tuner)
- PID Controller Tuning in Simulink (Simulink Control Design)
- Designing PID Controllers with PID Tuner
- Introduction to Model-Based PID Tuning in Simulink (Simulink Control Design)
Plant — Current plant
LTI model in Data Browser |
Import | ...
The Plant menu displays the name of the current plant that PID Tuner is using for controller design.
Change the current plant using the following menu options:
A list of the LTI models present in the PID Tuner Data Browser.
Import— Import a new LTI model from the MATLAB workspace.
Re-Linearize Closed Loop— Linearize the plant at a different snapshot time. See Tune at a Different Operating Point (Simulink Control Design). This option is available only when tuning a PID Controller or PID Controller (2DOF) block in a Simulink model.
Identify New Plant— Use system identification to obtain a plant from measured or simulated system response data (requires System Identification Toolbox software). See:
Interactively Estimate Plant Parameters from Response Data, when tuning a PID controller for an LTI model.
Interactively Estimate Plant from Measured or Simulated Response Data (Simulink Control Design), when tuning a PID Controller block in a Simulink model.
If you are tuning a PID controller for a plant represented by an LTI model, the default plant is:
Plant= 1, if you opened PID Tuner from the Apps tab in the MATLAB Toolstrip, or if you used the
pidTunercommand without an input argument.
The plant you specified as an input argument to
If you are tuning a PID Controller or PID Controller (2DOF) block in a Simulink model, then the default plant is linearized at the operating point specified by the model initial conditions. See What Plant Does PID Tuner See? (Simulink Control Design)
Type — Controller type
'PID2' | ...
The controller type specifies which terms are present in the PID controller. For instance, a PI controller has a proportional and an integral term. A PDF controller has a proportional term and a filtered derivative term.
If you are tuning a controller for a plant represented by an LTI model, use the Type menu to specify controller type. When you change controller type, PID Tuner automatically designs a new controller. Available controller types include 2-DOF PID controllers for more flexibility in the trade-off between disturbance rejection and reference tracking. For details on available controller types, see PID Controller Types for Tuning.
If you are tuning a PID Controller or PID Controller (2DOF) block in a Simulink model, the Type field displays the controller type specified in the block dialog box.
Form — Controller form
This field displays the controller form.
If you are tuning a controller for a plant represented by an LTI model, use the Form menu to specify controller form. For information about parallel and standard forms, see the
If you are tuning a PID Controller or PID Controller (2DOF) block in a Simulink model, the Form field displays the controller form specified in the block dialog box.
Domain — Domain for specifying performance targets
The Domain menu enables you to switch the domain in which PID Tuner displays the target performance parameters.
Time— Sliders set the Response Time and Transient Behavior.
Frequency— Sliders set the Bandwidth and Phase Margin.
To refine the controller design, you adjust the target performance parameters using the sliders or the corresponding numeric values.
For more information, see:
Add Plot — Create analysis plots
Reference Tracking |
Input Disturbance Rejection |
Controller Effort | ...
Create time-domain and frequency-domain analysis plots to help analyze the performance of the PID controller. For detailed information about the available response plots, see:
For PID tuning at the command line, use
pidtunecommand can design a controller for multiple plants at once.
For interactive PID tuning in the Live Editor, see the Tune PID Controller Live Editor task. This task lets you interactively design a PID controller and automatically generates MATLAB code for your live script.