Documentation |
Access PID data
[Kp,Ki,Kd,Tf]
= piddata(sys)
[Kp,Ki,Kd,Tf,Ts]
= piddata(sys)
[Kp,Ki,Kd,Tf,Ts]
= piddata(sys, J1,...,JN)
[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.
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. |
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. |
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);