Effacer les filtres
Effacer les filtres

z domain to delay difference equations and applying pid controller

29 vues (au cours des 30 derniers jours)
kruthika u
kruthika u le 2 Mar 2023
i want to convert z domain transfer function to time delay equations and then apply a discrete PID controller for it?
how can i code this?

Réponse acceptée

Sarvesh Kale
Sarvesh Kale le 6 Mar 2023
Modifié(e) : Sarvesh Kale le 6 Mar 2023
1.) convert z domain transfer function to time delay equations
suppose you have the following Z transform
sys = tf([1 2],[1 5 10],0.1,'Variable','z^-1')
sys = 1 + 2 z^-1 -------------------- 1 + 5 z^-1 + 10 z^-2 Sample time: 0.1 seconds Discrete-time transfer function.
So the above transfer function converts to the following equation in time domain
y[n] + 5y[n-1] + 10y[n-2] = x[n] + 2x[n-1]
the numerator of transfer function corresponds to the delays in input and the denominator polynomial represents the delays in the output
2.) How to apply a discrete PID controller ?
you can use the following code snippet to generate the pid controller values
sys = tf(1,[1 1])
sys = 1 ----- s + 1 Continuous-time transfer function.
pidtune(c2d(sys,0.1),'pid') % c2d converts from continuous domain to discrete domain
ans = Ts z-1 Kp + Ki * ------ + Kd * ------ z-1 Ts with Kp = 1.69, Ki = 2.59, Kd = 0.0779, Ts = 0.1 Sample time: 0.1 seconds Discrete-time PID controller in parallel form.
get more information on pidtune, tf and c2d by clicking on them
Thank you

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by