Main Content

pidTuner

Open PID Tuner for PID tuning

Description

pidTuner(sys,type) launches the PID Tuner app and designs a controller of type type for plant sys.

example

pidTuner(sys,Cbase) launches PID Tuner with a baseline controller Cbase so that you can compare performance between the designed controller and the baseline controller. If Cbase is a pid, pidstd, pid2 or pidstd2 controller object, PID Tuner designs a controller of the same form, type, and discrete integrator formulas as Cbase.

example

pidTuner(sys) designs a parallel-form PI controller.

pidTuner launches PID Tuner with default plant of 1 and proportional (P) controller of 1.

Examples

collapse all

This example shows how to launch PID Tuner from the command line for tuning a parallel-form PIDF controller.

Define a discrete-time zero-pole-gain plant.

Gc = zpk([],[-1 -1 -1],1);
Gd = c2d(Gc,0.1);

Launch PID Tuner to design a parallel-form PIDF controller.

pidTuner(Gd,'pidf')

This example shows how to launch PID Tuner for designing a standard-form PIDF controller.

Define a discrete-time zero-pole-gain plant.

Gc = zpk([],[-1 -1 -1],1);
Gd = c2d(Gc,0.1);

Create a standard-form baseline controller using BackwardEuler discrete integrator formula.

Cbase = pidstd(1,2,3,4,'Ts',0.1,...
      'IFormula','BackwardEuler','DFormula','BackwardEuler')

Launch the PID Tuner app.

pidTuner(Gd,Cbase)

PID Tuner designs a controller for Gd with the same form, type, and discrete integrator formulas as Cbase. For comparison, you can display the response plots of Cbase with the response plots of the designed controller by clicking the Show baseline checkbox in PID Tuner.

Input Arguments

collapse all

Plant model for controller design, specified as one of these.

  • Any SISO LTI system (such as ss, tf, zpk, or frd).

  • Any System Identification Toolbox™ SISO linear model (idtf (System Identification Toolbox), idfrd (System Identification Toolbox), idgrey (System Identification Toolbox), idpoly (System Identification Toolbox), idproc (System Identification Toolbox), or idss (System Identification Toolbox)).

  • A continuous- or discrete-time model.

  • Stable, unstable, or integrating. However, you might not be able to stabilize a plant with unstable poles under PID control.

  • A model that includes any type of time delay. A plant with long time delays, however, might not achieve adequate performance under PID control.

If the plant has unstable poles, and sys is either:

  • A frd model

  • A ss model with internal time delays that cannot be converted to I/O delays

then you must specify the number of unstable poles in the plant. To do this, after opening PID Tuner, in the Plant menu, select Import. In the Import Linear System dialog box, reimport sys, specifying the number of unstable poles where prompted.

Controller type of the controller to design, specified as a character vector. The term controller type refers to which terms are present in the controller action. For example, a PI controller has only a proportional and an integral term, while a PIDF controller contains proportional, integrator, and filtered derivative terms. type can take the values summarized below. For more detailed information about these controller types, see PID Controller Types for Tuning.

1-DOF Controllers

  • 'P' — Proportional only

  • 'I' — Integral only

  • 'PI' — Proportional and integral

  • 'PD' — Proportional and derivative

  • 'PDF' — Proportional and derivative with first-order filter on derivative term

  • 'PID' — Proportional, integral, and derivative

  • 'PIDF' — Proportional, integral, and derivative with first-order filter on derivative term

2-DOF Controllers

  • 'PI2' — 2-DOF proportional and integral

  • 'PD2' — 2-DOF proportional and derivative

  • 'PDF2' — 2-DOF proportional and derivative with first-order filter on derivative term

  • 'PID2' — 2-DOF proportional, integral, and derivative

  • 'PIDF2' — 2-DOF proportional, integral, and derivative with first-order filter on derivative term

For more information about 2-DOF PID controllers generally, see Two-Degree-of-Freedom PID Controllers.

2-DOF Controllers with Fixed Setpoint Weights

  • 'I-PD' — 2-DOF PID with b = 0, c = 0

  • 'I-PDF' — 2-DOF PIDF with b = 0, c = 0

  • 'ID-P' — 2-DOF PID with b = 0, c = 1

  • 'IDF-P' — 2-DOF PIDF with b = 0, c = 1

  • 'PI-D' — 2-DOF PID with b = 1, c = 0

  • 'PI-DF' — 2-DOF PIDF with b = 1, c = 0

For more detailed information about fixed-setpoint-weight 2-DOF PID controllers, see PID Controller Types for Tuning.

Controller Form

When you use the type input, PID Tuner designs a controller in parallel form. If you want to design a controller in standard form, Use the input Cbase instead of type, or select Standard from the Form menu. For more information about parallel and standard forms, see the pid and pidstd reference pages.

If sys is a discrete-time model with sample time Ts, PID Tuner designs a discrete-time pid controller using the ForwardEuler discrete integrator formula. To design a controller having a different discrete integrator formula:

  • Use the input argument Cbase instead of type. PID Tuner reads controller type, form, and discrete integrator formulas from the baseline controller Cbase.

  • In PID Tuner, click Options to open the Controller Options dialog box. Select discrete integrator formulas from the Integral Formula and Derivative Formula menus.

For more information about discrete integrator formulas, see the pid and pidstd reference pages.

A dynamic system representing a baseline controller, permitting comparison of the performance of the designed controller to the performance of Cbase.

If Cbase is a pid or pidstd object, PID Tuner also uses it to configure the type, form, and discrete integrator formulas of the designed controller. The designed controller:

  • Is the type represented by Cbase.

  • Is a parallel-form controller, if Cbase is a pid controller object.

  • Is a standard-form controller, if Cbase is a pidstd controller object.

  • Is a parallel-form 2-DOF controller, if Cbase is a pid2 controller object.

  • Is a standard-form 2-DOF controller, if Cbase is a pidstd2 controller object.

  • Has the same Iformula and Dformula values as Cbase. For more information about Iformula and Dformula, see the pid and pidstd reference pages.

If Cbase is any other dynamic system, PID Tuner designs a parallel-form PI controller. You can change the controller form and type using the Form and Type menus after launching PID Tuner.

Tips

  • If type or Cbase specifies a one-degree-of-freedom (1-DOF) PID controller, then pidTuner designs a controller for the unit feedback loop as illustrated:

  • If type or Cbase specifies a two-degree-of-freedom (2-DOF) PID controller, then pidTuner designs a 2-DOF controller as in the feedback loop of this illustration:

  • PID Tuner has a default target phase margin of 60 degrees and automatically tunes the PID gains to balance performance (response time) and robustness (stability margins). Use the Response time or Bandwidth and Phase Margin sliders to tune the controller's performance to your requirements. Increasing performance typically decreases robustness, and vice versa.

  • Select response plots from the Response menu to analyze the controller's performance.

  • If you provide Cbase, check Show baseline to display the response of the baseline controller.

  • For more detailed information about using PID Tuner, see Designing PID Controllers with PID Tuner.

  • 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.

Algorithms

For information about the MathWorks® PID tuning algorithm, see PID Tuning Algorithm.

Alternatives

You can open PID Tuner from the MATLAB desktop, in the Apps tab. When you do so, use the Plant menu in PID Tuner to specify your plant model.

For PID tuning at the command line, use pidtune. The pidtune command 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.

Version History

Introduced in R2014b