Accelerating the pace of engineering and science

piddata

Access PID data

Syntax

[Kp,Ki,Kd,Tf] = piddata(sys)
[Kp,Ki,Kd,Tf,Ts] = piddata(sys)
[Kp,Ki,Kd,Tf,Ts] = piddata(sys, J1,...,JN)

Description

[Kp,Ki,Kd,Tf] = piddata(sys) returns the PID gains Kp,Ki, Kd and the filter time constant Tf of the parallel-form controller represented by the dynamic system sys.

[Kp,Ki,Kd,Tf,Ts] = piddata(sys) also returns the sample time Ts.

[Kp,Ki,Kd,Tf,Ts] = piddata(sys, J1,...,JN) extracts the data for a subset of entries in the array of sys dynamic systems. The indices J specify the array entries to extract.

Input Arguments

 sys SISO dynamic system or array of SISO dynamic systems. If sys is not a pid object, it must represent a valid PID controller that can be written in parallel PID form. J Integer indices of N entries in the array sys of dynamic systems.

Output Arguments

 Kp Proportional gain of the parallel-form PID controller represented by dynamic system sys. If sys is a pid controller object, the output Kp is equal to the Kp value of sys. If sys is not a pid object, Kp is the proportional gain of a parallel PID controller equivalent to sys. If sys is an array of dynamic systems, Kp is an array of the same dimensions as sys. Ki Integral gain of the parallel-form PID controller represented by dynamic system sys. If sys is a pid controller object, the output Ki is equal to the Ki value of sys. If sys is not a pid object, Ki is the integral gain of a parallel PID controller equivalent to sys. If sys is an array of dynamic systems, Ki is an array of the same dimensions as sys. Kd Derivative gain of the parallel-form PID controller represented by dynamic system sys. If sys is a pid controller object, the output Kd is equal to the Kd value of sys. If sys is not a pid object, Kd is the derivative gain of a parallel PID controller equivalent to sys. If sys is an array of dynamic systems, Kd is an array of the same dimensions as sys. Tf Filter time constant of the parallel-form PID controller represented by dynamic system sys. If sys is a pid controller object, the output Tf is equal to the Tf value of sys. If sys is not a pid object, Tf is the filter time constant of a parallel PID controller equivalent to sys. If sys is an array of dynamic systems, Tf is an array of the same dimensions as sys. Ts Sampling time of the dynamic system sys. Ts is always a scalar value.

Examples

Extract the proportional, integral, and derivative gains and the filter time constant from a parallel-form pid controller.

For the following pid object:

`sys = pid(1,4,0.3,10);`

you can extract the parameter values from sys by entering:

`[Kp Ki Kd Tf] = piddata(sys);`

Extract the parallel form proportional and integral gains from an equivalent standard-form PI controller.

For a standard-form PI controller, such as:

`sys = pidstd(2,3);`

you can extract the gains of an equivalent parallel-form PI controller by entering:

`[Kp Ki] = piddata(sys)`

These commands return the result:

```Kp =

2

Ki =

0.6667```

Extract parameters from a dynamic system that represents a PID controller.

The dynamic system

$H\left(z\right)=\frac{\left(z-0.5\right)\left(z-0.6\right)}{\left(z-1\right)\left(z+0.8\right)}$

represents a discrete-time PID controller with a derivative filter. Use piddata to extract the parallel-form PID parameters.

```H = zpk([0.5 0.6],[1,-0.8],1,0.1);  % sampling time Ts = 0.1s
[Kp Ki Kd Tf Ts] = piddata(H);```

the piddata function uses the default ForwardEuler discrete integrator formula for Iformula and Dformula to compute the parameter values.

Extract the gains from an array of PI controllers.

```sys = pid(rand(2,3),rand(2,3)); % 2-by-3 array of PI controllers
[Kp Ki Kd Tf] = piddata(sys);```

The parameters Kp, Ki, Kd, and Tf are also 2-by-3 arrays.

Use the index input J to extract the parameters of a subset of sys.

`[Kp Ki Kd Tf] = piddata(sys,5);`

More About

expand all

Tips

If sys is not a pid controller object, piddata returns the PID gains Kp, Ki, Kd and the filter time constant Tf of a parallel-form controller equivalent to sys.

For discrete-time sys, piddata returns the parameters of an equivalent parallel-form controller. This controller has discrete integrator formulas Iformula and Dformula set to ForwardEuler. See the pid reference page for more information about discrete integrator formulas.

See Also

Was this topic helpful?