S to Z dönüşümünde çelişkiye düştüm

Başlatan Emre005, 13 Kasım 2014, 14:52:44

Emre005


Kullandığım tablo resimde ve transfer fonksiyonum en son kısımdaki şekle uyuyor. (siyah çerçeve içerisinde) Aslında bir K sabiti ile bu şekle benzetiyorum.
Matlab ile b1 b2 a1 a2 hesaplatıp G(z) yi elde ediyorum. Ancak matlab ta c2d(sys,h,'zoh') fonksiyonu ile sağlama yapmak istediğimde payda kısımları aynı pay kısımları farklı çıkıyor. Doğru transfer fonksiyonunu nasıl bulabilirim?
Matlab kodlarım
Ke=0.5;
Kw=0.5;
J=0.04;
Kf=0.001;
Ra=0.5;
La=8e-3;


sys=tf(Ke ,[La*J (La*Kf+Ra*J) (Ra*Kf+Ke*Kw)]);

num = Ke;
den=[La*J (La*Kf+Ra*J) (Ra*Kf+Ke*Kw)];
root=roots(den);
a=-root(1);
b=-root(2);
h=1e-3;

b1=(b*(1-exp(-a*h))-a*(1-exp(-b*h)))/(b-a);
b2=(a*(1-exp(-b*h))*exp(-a*h)-b*(1-exp(-a*h))*exp(-b*h))/(b-a);
a1=-(exp(-a*h)+exp(-b*h));
a2=exp(-(a+b)*h);

K=0.5/(a*b);

z=tf('z',h);
Gz=(b1*z+b2)*K/(z^2+a1*z+a2)

c2d(sys,h,'zoh')


Emre005

Bugün itibariyle sorunumu çözdüm.Burada c2d() fonksiyonuna verdiğim sistemin kutup-sıfır şeklinde verince her iki her iki hesapta da aynı sonucu elde debildim.
Ke=0.5;
Kw=0.5;
J=0.04;
Kf=0.001;
Ra=0.5;
La=8e-3;


%sys=tf(Ke ,[La*J (La*Kf+Ra*J) (Ra*Kf+Ke*Kw)])

Gs=zpk([],[-45.21 -17.315],0.5)

num = Ke;
den=[La*J (La*Kf+Ra*J) (Ra*Kf+Ke*Kw)];
root=roots(den)
a=-root(1);
b=-root(2);
h=1e-3;

b1=(b*(1-exp(-a*h))-a*(1-exp(-b*h)))/(b-a);
b2=(a*(1-exp(-b*h))*exp(-a*h)-b*(1-exp(-a*h))*exp(-b*h))/(b-a);
a1=-(exp(-a*h)+exp(-b*h));
a2=exp(-(a+b)*h);

K=0.5/(a*b);

z=tf('z',h);
Gz=((b1*z+b2)*K)/(z^2+a1*z+a2)


e=c2d(Gs,h,'zoh')


Bundan sonra elde ettiğim ayrık zaman transfer fonksiyonuna yani G(z) ye PID kontrolör tasarlamam gerekiyor.Sürekli zaman transfer fonksiyonu yani G(s) için PID parametrelerini hesaplamıştım. Ayrık zamanda tasarım nasıl yapılıyor. Bunu nasıl öğrenebilirim ne önerirsiniz?