Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
PID Denetleyici Tasarımı
Hazırlayan: Serhat YILMAZ BÖLÜM 9 Serhat YILMAZ,
2
9.PID DENETLEYİCİ TASARIMI
Bu kısımda, uygulamalarda yaygın olarak kullanılan üç terimli denetleyicinin (PID: Proportional+Integral+Derivative) yapısı ve PID ile denetim sisteminin nasıl tasarlanabileceği açıklanacaktır. Oransal(P),integral(I) ve türev(D) denetimlerinin her birinin karakteristikleri ve istenen cevabı elde etmek için nasıl kullanılacakları gösterilecektir. Aşağıdaki birim geribildirimli sistemi ele alalım. ( Şekil.9.1. Geribildirimli Sistem e; hata işareti, u; Etkiyen işaret, Model; Kontrol edilen bir sistem, Denetleyici; Modelin uyarılmasını sağlar,bütün sistem davranışını denetlemek için tasarlanmıştır Serhat YILMAZ,
3
Serhat YILMAZ, serhaty@kocaeli.edu.tr
9.1 Üç Terimli Denetim PID denetleyicinin transfer fonksiyonu aşağıdaki gibidir. Kp: Oransal kazanç Kı: İntegral kazanç Kd: Türevsel kazanç Serhat YILMAZ,
4
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Yukarıdaki şemaya göre PID denetleyici kapalı bir sistemde nasıl çalışır görelim.Değişken(e),izleme hatasını temsil eder,istenen değer(R) ile gerçek çıkış(Y) arasındaki farktır.Hata sinyali(e) PID denetleyiciye gönderilir PID denetleyici bu hatanın hem integralini hemde türevini hesaplar.Şimdi kontrolörden çıkan (u) etkiyen işareti,hatanın büyüklüğünün (Kp) oransal kazancı katı artı,hatanın türevinin (Kd) katı artı hatanın integralinin (Kı) katına eşittir. Bu (u) işareti modele gönderilir ve yeni çıkış (Y) işareti elde edilir. Bu yeni çıkış işareti(Y) algılayıcıya tekrar geri gönderilir, böylece yeni hata sinyali(e) bulunur. Denetleyici yeni hata işaretini alır, integral ve türev değerlerini hesaplar. Bu işlem böyle sürer gider. Serhat YILMAZ,
5
9.2 P,I ve D Denetleyicilerinin Karakteristikleri
Bir oransal denetleyici(Kp),yükselme zamanını azaltmada etkili olur ama,kalıcı durum hatasını hiçbir zaman ortadan kaldıramaz. Bir integral denetleyici(Ki),kalıcı dutum hatasını ortadan kaldırmada etkili olur ama geçici cevabı daha kötü yapabilir. Bir türevsel denetleyici(Kd),sistem kararlılığının artmasında,aşmanın azalmasında ve geçici cevabın düzelmesinde etkili olur. Her bir denetleyicinin (Kp,Kd,Ki) kapalı döngülü bir sisteme etkisi,aşağıdaki tabloda özetlenmiştir. Serhat YILMAZ,
6
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Tablo.9.1. PID Denetleyicilerinin Karakteristikleri. ( Kp,Ki,Kd birbirlerine bağımlı olduğu için bu bağıntılar tam kesin doğru olmayabilir. Birindeki değişme diğer ikisini etkileyebilir. Bu sebepten dolayı yukarıda verilen tablo sadece Ki,Kp,Kd değerlerini belirlerken bir tahmin referansı olarak kullanılmalıdır. Serhat YILMAZ,
7
9.3 PID Parametrelerinin Hesaplanması
PID kontrolörler, endüstride kullanılan kontrol türlerinin büyük bir kısmını oluşturur. Dolaysıyla PID kazanç parametrelerinin belirlenmesi ile ilgili çok sayıda çalışma yapılmıştır. Bu çalışmada Ziegler–Nichols yöntemi ile öz–uyarmalı PID parametreleri ayar yöntemi kullanılmıştır. Serhat YILMAZ,
8
9.4 PID Katsayılarının Öz-Uyarlamalı Ayarı
Katsayıların öz-uyarlamalı ayarı, kontrolörün kendi kendine sistem dinamiklerini algılaması ve bu değerlere göre kendi katsayılarını kendisinin belirlemesi demektir. Bunun pratikte şu avantajları vardır: Sistem için en uygun kontrol parametreleri belirlenebilir. Sistemde oluşacak değişmeleri algılayarak kendini adapte edebilir. Kontrolör değerlerini önceden hesaplama işlemine gerek kalmaz. Kontrolör sadece tek bir sisteme özel kalmaz, pek çok sistem için kullanılabilir olur. Serhat YILMAZ,
9
9.5 Ziegler–Nichols Metodu
Ziegler–Nichols metodu PID parametrelerinin hesaplanmasında en yaygın olarak kullanılan metot olup sistem modeli gerektirmez. Bu metot açık çevrim ve kapalı çevirim olmak üzere ikiye ayrılmaktadır. Serhat YILMAZ,
10
9.5.1 Açık Çevrim Ziegler–Nichols Metodu
Bu metot birçok sistem için kullanışlıdır. Açık çevrim Ziegler–Nichols metodunda sistemin ölü zamanı ve maksimum eğimi hesaplanır. Hesaplanan bu değerler gerekli formüller kullanılarak PID kontrolör için gereken katsayılar hesaplanır. Şekil9.2’de ölü zamana sahip birinci dereceden bir sistemin çıkış grafiği görülmektedir. Bu sisteme ait genel formül şu şekildedir. Şekil 9.2’deki eğrideki K ve T değerlerinden faydalanılarak denklemdeki R olarak ifade edilen değer elde edilir. Serhat YILMAZ,
11
Şekil.9.2. Birinci dereceden bir sistemin çıkış grafiği
Şekil 9.2’deki değerler kullanılarak Tablo 9.2’deki PID parametreleri hesaplanır. Tablo.9.2. Ziegler–Nichols Metodu için Parametrelerin Hesaplanması Serhat YILMAZ,
12
9.5.2 Kapalı Çevrim Ziegler–Nichols Metodu
Kapalı çevrim Ziegler–Nichols metodu ile sistemin cevap eğrisinin osilasyona girmesi sağlanır. Şekil 9.3’de sistem çıkışının a noktasına geldiği noktadaki kazanç değeri osilasyon kazancı(Ku) olarak ifade edilir ve osilasyon periyodu(Pu) ile kullanılarak gerekli PID katsayıları Tablo 9.3’deki formüller kullanılarak hesaplanabilir. Şekil.9.3. Kapalı Çevrim Ziegler – Nichols Metoduna ait Çıkış İşareti Tablo.9.3. Z.N Yöntemi ile Kapalı Çevrim Kontrol Parametrelerinin Hesabı Serhat YILMAZ,
13
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Örnek.9.1: Basit bir kütle, yay ve sönümleyici problemi düşünelim; Sistem modelleme denklemi; (9.1) Modelleme denklemi (9.1)’in Laplace dönüşümü alındığında; X(s) yer değiştirmesi ile F(s) girişi arasındaki transfer fonksiyonu; ‘dır. M=1kg, b=10 N.s/m, k=20 N/m, F(s)=1 N olsun Yukarıda verilen değerleri transfer fonksiyonunda yerine yazarsak; Problemin amacı Kp,Ki ve Kd’nin Daha hızlı yükselme zamanı En az aşma Sıfır kalıcı durum hatası , elde etmedeki katkılarını göstermektedir. Serhat YILMAZ,
14
Açık Çevrim Basamak Cevabı
Yeni bir m-file dosyası oluşturup aşağıdaki kodları bu dosyanın içine yazalım pay=1; payda=[ ]; sistem=tf(pay,payda); step(sistem) MATLAB daki m-file dosyası derlendiğinde size yandaki şekli vermelidir. Modelin DC kazancı 1/20’dir , birim basamak girişe uygulandığında çıkışın en son değeri 0,05 olabilir.Bu da %95’lik bir kalıcı durum hatası oluşturur,bu gerçektende büyük bir değerdir.Dahası ,yükselme zamanı yaklaşık 1sn,oturma zamanı da yaklaşık 1,5sn’dir. Kalıcı durum hatasını ortadan kaldıracak, yükselme zamanını kısaltacak, yatışma zamanını azaltacak şekilde denetleyiciyi yeniden tasarlayalım. Şekil.9.5. Açık Çevrim Basamak yanıtı Serhat YILMAZ,
15
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Oransal Kontrol Yukarıdaki tablodan görüldüğü gibi,oransal denetleyici(Kp) yükselme zamanını kısaltır,aşmayı arttırır ve kalıcı durum hatasını azaltır.Yukarıdaki sistemin oransal kontrollü kapalı çevrim transfer fonksiyonu; Kp 300 olsun; Kp=300; Contr=Kp; Sys_cl=feedback(contr*plant,1); t=0:0.01:2; step(sys_cl,t) Yukarıdaki çizim, oransal kontrolün, yükselme zamanını ve kalıcı durum hatasını azalttığını, aşmaları arttırdığını, oturma zamanını çok az da olsa düşürdüğünü göstermektedir. Serhat YILMAZ,
16
Oransal-Türev Denetimi
Şimdi PD denetimine göz atalım.Tabloya göre türevsel denetleyici(Kd) aşmayı ve oturma zamanını azaltır.Verilen sistemin PD denetleyici ile birlikte kapalı çevrim transfer fonksiyonu; Kp 300 olsun,Kd 10 olsun; Kp=300; Kd=10; contr=tf([Kd Kp],1); sys_cl=feedback(contr*plant,1); t=0:001:2; step(sys_cl,t) Şekilden, türevsel denetleyicinin hem yükselme zamanını hem de kalıcı durum hatasını azalttığını, aşmayı arttırdığını, oturma zamanını da küçük miktar azalttığını görüyoruz. Serhat YILMAZ,
17
Oransal – İntegral Denetim
PID denetime geçmeden önce, PI denetimine bakalım. Tablodan integral denetleyicinin (Ki), yükseltme zamanını kısalttığı, aşmayı ve oturma zamanını attırdığı, kalıcı durum hatasını ortadan kaldırdığı görülmektedir. Verilen sistemde, PI denetleyicili kapalı çevrim transfer fonksiyonu ; p’yi 30 düşünelim,Ki’de 70 olsun. Kp=30; Ki=70; contr=tf([Kp Ki],[1 0]); sys_cl=feedback(contr*plant,1); t=0:0.01:2; step(sys_cl,t) Oransal kazanç(Kp)’yi düşürmemizin nedeni, integral denetleyicinin de ayrıca oransal denetleyici gibi,yükselme zamanını kısaltmayı ve aşmayı arttırmasıdır(çifte etki). Yukarıda integral denetleyicinin kalıcı durum hatasını ortadan kaldırdığı görülmektedir. Serhat YILMAZ,
18
Oransal-İntegral-Türev Denetimi
Şimdi PID denetleyiciye bir göz atalım.Verilen sistemin PID denetleyici ile kapalı çevrim transfer fonksiyonu; Birkaç deneme yanılmadan sonra, kazançların Kp=350, Ki=300 ve Kd=50 olarak seçilmesi istenen cevabı elde etmemizi sağladı. Kp=350; Ki=300;Kd=50; contr=tf([Kd Kp Ki],[1 0]); sys_cl=feedback(contr*plant,1); t=0:0.01:2;step(sys_cl,t) Şimdi aşma olmadan,hızlı yükselme zamanı ve kalıcı durum hatasız bir kapalı çevrim sistemi elde ettik. Serhat YILMAZ,
19
9.6.PID Tasarımında Dikkat Edilmesi Gerekenler;
PID tasarlarken istenen cevabı elde etmek için aşağıdaki adımları izleyin; ( 1-) Önce sistemin açık çevrim cevabına bakın ve nelerin düzeltilmesi gerektiğini belirleyin. 2-) Yükselme zamanını iyileştirmek için bir oransal denetim ekleyin. 3-) Aşma(salınımlar)’yı azaltmak için bir türev denetim ekleyin. 4-) Kalıcı durum hatasını kaldırmak için bir integral denetleyici ekleyin. 5-) İyi bir sonuç elde etmek için Kp,Ki ve Kd’yi (tablodaki özelliklere bakarak) ayarlayın. Gerekmediği sürece denetleyiciyi mümkün olduğu kadar basit tutmaya çalışın.Üç denetleyiciyi de her zaman kullanmanız gerekmez.Sadece PI yeterli cevabı veriyorsa,ayrıca bir türev elemanı katmanıza hiç gerek yok. Serhat YILMAZ,
20
9.7 PID İle Tasarım Örnekleri
Örnek.9.2. Araç Hız (Cruise) Kontrol Sisteminde PID Cruise kontrol problemi için transfer fonksiyonu; m=1000 b=50 U(s)=10 Y(s)=hız çıkışı Birim geribildirimli bir sistemin tipik blok diyagramı aşağıdaki gibidir Serhat YILMAZ,
21
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Şekil Birim geribildirimli sistemin blok diyagramı Bu problem için tasarım şartları: Yükselme zamanı < 5sn, Aşma < %10 Kalıcı durum hatası < %2 olmalı PID denetleyicinin transfer fonksiyonu: Önce oransal denetime bir göz atalım; Oransal Denetim Öncelikle yapılacak olan Kp oransal kontrollü kapalı çevrim transfer fonksiyonunu bulmaktır. Blok diyagramı indirgediğimizde, Kp oransal kontrollü kapalı çevrim transfer fonksiyonu; Serhat YILMAZ,
22
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PID dersinden hatırlayacağımız gibi , Kp oransal denetleyicisi, yükselme zamanını kısaltıyordu. Bizim istediğimizde zaten buydu. Kp’yi 100 yapıp cevaba bakalım; Kp=100; m=1000; b=50; u=10; num=[1]; den=[m b]; cruise=tf(num,den); sys_cl=feedback(Kp*cruise,1); t=0:0.1:20; step(u*sys_cl,t) axis([ ]) ; ( Serhat YILMAZ,
23
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Çıkışta hızın 10m/s olması isteniyordu. Çizimden görüldüğü gibi , ne kalıcı durum hatası ne de yükselme zamanı istenen tasarım kriterlerini sağlamıyor. Sistem çıkışını iyileştirmek için Kp’yi arttırabiliriz. Kp’yi yapalım. Kalıcı durum hatası neredeyse sıfır oldu ve yükselme zamanı 0,5 sn’nin altına düştü. Ancak bu cevap gerçekçi değildir. Çünkü gerçekte hiçbir cruise denetim sistemi aracın hızını 0’dan 10m/s’ye 0.5 sn den daha az bir sürede çıkaramaz. Zaten gerçek sistemlerde kazancı yapmak çok zordur. Bu problemin çözümü için makul bir yükselme zamanı sağlayacak bir oransal kazanç (Kp) uygulanır ve kalıcı durum hatasını ortadan kaldırmak için de bir integral denetleyici eklenir. Serhat YILMAZ,
24
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PI Denetim: PI denetleyicili bir cruise kontrol sisteminde kapalı çevrim transfer fonksiyonu; ’idi Sisteme bir integral eklenmesi, kalıcı durum hatasını ortadan kaldırıyordu. Şimdi Kp=600 ve Ki=1 olsun.Sistemin cevabı ne olacak? m=1000; b=50; num=[1]; den=[m b]; cruise=tf(num,den); Kp=600; Ki=1; contr=tf([Kp Ki],[1 0]); sys_cl=feedback(contr*cruise,1); u=10; t=0:0.01:20; step(u*sys_cl,t); axis([ ]) Serhat YILMAZ,
25
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Oransal kazanç(Kp) ve integral kazanç(Ki) ile oynayarak istenen cevap elde edilmeye çalışılır. Büyük Ki değerleri kararlılığı bozabileceği için önce küçük Ki değerleriyle başlayalım. Kp=800 , Ki=40 alınınca,cevap aşağıdaki gibi olur. Görüldüğü gibi,bu basamak cevabı tüm tasarım kriterlerini karşılamaktadır. Serhat YILMAZ,
26
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PID Denetim: Bu örnek için, türevsel denetime gerek yoktur. Yeterli çıkış PI ile alınmaktadır. Yine de diğer çalışmalar için PID ile nasıl çalışıldığını görmek amacıyla bir deneme yapalım. Bu cruise denetim sistemi için PID denetleyicili kapalı çevrim transfer fonksiyonu; ’ idi. Kp=600,Ki=1,Kd=1 olsun; Kp=600; Ki=1; Kd=1; m=1000; b=50; u=10; cruise=tf(num,den); contr=tf([Kd Kp Ki],[1 0]); t=0:0.01:20; step(u*sys_cl,t); axis([ ]) Yukarıdaki kodlar çalıştırıldığında matlab bize PID denetleyicili sisteminin çıkış yanıtını verecektir. Kp, Kd ve Ki değerlerini ayarlayarak istediğimiz çıkış yanıtını elde edebiliriz. Öneri: Uygun kazanç değerlerini bulmak için deneme yanılma yolunu kullanmalıyız. Kp, Ki ve Kd değişkenlerini teker teker değiştirip çıkışı gözlemleyerek istenilen çıkış yanıtını elde edebiliriz. Serhat YILMAZ,
27
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Örnek.9.3.: DC Motor Hız Kontrolü rotor eylemsizlik momenti (J) = 0.01 kg.m²/s² mekanik sistemin sönüm oranı (b) = 0.1 Nms Emk sabiti (K=Ke=Kt) = 0.01 Nm/Amp rezistans (R) = 1 ohm indüktans (L) = 0.5 H giriş (V): kaynak voltajı çıkış(theta): mil durumu rotor ve milin sert olmadığı kabul edilir. Serhat YILMAZ,
28
DC motorun dinamik eşitlikleri ve açık çevrim transfer fonksiyonları
Sistemin blok şeması; Şekil Birim Geribildirimli Blok Diyagram 1 rad/sn’lik basamak girişi için tasarım koşulları; ● Yatışma zamanı 2 sn’den az ● Aşma %5’den az ● Kalıcı durum hatası %1’den az PID denetleyicimizi tasarlayarak sisteme ekleyelim; j=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(j*L) ((j*R) + (L*b)) ((b*R)+K^2)]; motor=tf(num,den); Serhat YILMAZ,
29
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Oransal Kontrol: Önce kazancı 100 olan oransal denetleyicimizi kullanmayı deneyelim. Feedback komutunu kullanarak kapalı çevrim transfer fonksiyonunu belirledik. Kp=100; contr=Kp; sys_cl=feedback(contr*motor,1); Basamak yanıtımız nasıl olacak onu görelim; t=0:0.01:5; step(sys_cl,t) title(‘Oransal denetleyicinin basamak yanıtı’) Serhat YILMAZ,
30
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PID Kontrol: Oransal denetleyicili sistemimizin aşma ve kalıcı durum hatası çok büyüktür.Sisteme integral denetimi ekleyerek kalıcı durum hatasını ve türevsel denetimi ekleyerek de aşmayı ortadan kaldırabiliriz.Küçük Ki ve Kd kazançlı PID denetleyicimizin çıkış yanıtını görelim. j=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(j*L) ((j*R) + (L*b)) ((b*R)+K^2)]; motor=tf(num,den); Kp=100;Ki=1; Kd=1; contr=tf([ Kd Kp Ki],[1 0]); sys_cl=feedback(contr*motor,1); step(sys_cl); title(‘Küçük Ki ve Kd kazançlı PID denetleyici’) Serhat YILMAZ,
31
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Kazançların Ayarlanması: Yatışma zamanı çok uzun olduğu için Ki kazancımızı arttırarak oturma zamanını azaltabiliriz. Ki=200 yaparsak sistemimizin çıkış yanıtı yandaki gibi olur; Bu sefer de çıkış yanıtımızın öncekinden çok daha hızlı olduğunu görüyoruz. Ki kazancının arttırılması geçici çıkış yanıtını (aşma) kötüleştirdi. Kd kazancımızı arttırarak aşmayı azaltabiliriz. Kd=10 yaparsak sistemimizin çıkış yanıtı yandaki gibi olur; Kp=100, Ki=200, Kd=10 değerlerini kullanarak istediğimiz çıkış yanıtını veren PID denetleyicimizi tasarlamış oluruz. Serhat YILMAZ,
32
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Örnek.9.4: DC Motor Konum Kontrolü * rotor eylemsizlik momenti (J) = E-6 kg.m²/s² * mekanik sistemin sönüm oranı (b) = E-6 Nms * elektromotor kuvvet sabiti (K=Ke=Kt) = Nm/Amp * rezistans (R) = 4 ohm * indüktans (L) = 2.75E-6 H * giriş (V): kaynak voltajı * çıkış(theta): mil durumu * rotor ve milin sert olmadığı kabul edilir Serhat YILMAZ,
33
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Bu problemde, DC motorun dinamik eşitliği ve açık döngü transfer fonksiyonu aşağıdaki gibidir: Şekil.9.23.DC Motorun blok şeması 1 rad/sn’lik basamak girişi için tasarım koşulları: ● Yatışma zamanı 0.04 sn’den az ● Aşma %16’dan az ● Kalıcı durum hatası yok ● Bozucu girişten kaynaklanan kalıcı durum hatası yok PID denetleyicimizi sisteme adım adım ekleyelim. Öncelikle motor parametrelerini girelim: j=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[ (j*L) ((j*R) + (L*b)) ((b*R)+K^2) 0 ]; motor=tf(num,den); Serhat YILMAZ,
34
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Oransal Kontrol: Önce kazancı 1.7 olan oransal denetleyicimizi kullanmayı deneyelim. Feedback komutunu kullanarak kapalı çevrim transfer fonksiyonunu belirledik. Kp=1.7;contr=Kp; sys_cl=feedback(contr*motor,1); Basamak yanıtımız ve basamak bozucu yanıtı; t=0:0.001:0.2; step(sys_cl,t); dist_cl=feedback(motor,contr); step(dist_cl,t); Serhat YILMAZ,
35
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PID Kontrol: Kalıcı durum hatası istediğimiz gibi olmasına rağmen oturma zamanı ve aşma çok büyüktür. Bozukluk büyük olduğu zaman kalıcı durum hatasının ortaya çıktığını görüyoruz. Sisteme integral denetimi ekleyerek kalıcı durum hatasını ve türevsel denetimi ekleyerek te aşmayı ortadan kaldırabiliriz. Öncelikle PI denetleyiciyi kullanarak bozucu durum hatasını ortadan kaldırabiliriz. j=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[ (j*L) ((j*R) + (L*b)) ((b*R)+K^2) 0 ]; motor=tf(num,den); Kp=1.7; Ki=20; contr=tf([Kp Ki],[1 0]); sys_cl=feedback(contr*motor,1); t=0:0.001:0.4; step(sys_cl,t) Serhat YILMAZ,
36
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Aşağıdaki komutları programımıza ekleyerek basamak bozucu yanıtının nasıl olduğunu görebiliriz. figure dist_cl=feedback(motor,contr); step(dist_cl,t); İntegral denetleyicinin kalıcı durum hatasını sıfıra düşürdüğünü görüyoruz (Şekil9.27) Serhat YILMAZ,
37
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Kazançların Ayarlanması Yatışma zamanının çok uzun olduğunu görüyoruz. Çıkış yanıtını hızlandırmak için kazançları arttıralım. Ki=200 ve Kp=17 olsun. Serhat YILMAZ,
38
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Çıkış yanıtımızın öncekinden daha hızlı olduğunu görüyoruz. Ki kazancının arttırılması geçici çıkış yanıtını (aşma) kötüleştirdi. Sistemimize türevsel denetleyici ekleyerek aşmayı azaltalım. Kp=17; Ki=200; Kd=0.15; contr=tf([Kp Kd Ki],[1 0]); sys_cl=feedback(contr*motor,1); t=0:0.001:0.1; step(sys_cl,t) Serhat YILMAZ,
39
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Basamak yanıtımızın öncekinden çok daha iyi olduğunu görüyoruz.Aşma %16’dan az,oturma zamanı aşağı yukarı 40ms ve kalıcı durum hatası sıfır.Ancak basamak bozucu yanıtımızın çok yavaş olduğunu görüyoruz.Ki kazancını arttırarak bozucu yanıtını hızlandıralım.Ki=600 olsun. Basamak bozucu yanıtımızın kalıcı durum hatası sıfır oldu. İstenilen PID denetleyicinin kazançları;Kp=17, Ki=600,Kd=15 ‘dir. Serhat YILMAZ,
40
Örnek.9.5: Otobüs Süspansiyon Sisteminin Denetimi
Şekil.9.34.Otobüs Süspansiyon Sistem Modeli Serhat YILMAZ,
41
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Yukarıda serbest cisim şeması verilen otobüs süspansiyonuna ait kontrol sisteminin blok şeması yanda gösterilmiştir. * Gövde kütlesi(m1)=2500kg * Süspansiyon kütlesi(m²)=320kg * Süspansiyon sisteminin yay sabiti(k1)=80,000N/m * Tekerlek ve lastiklerin yaylanma sabiti(k2)=500,000N/m * Süspansiyon sisteminin sürtünme katsayısı (b1)=350Ns/m * Tekerlek ve lastiklerin sürtünme katsayısı (b2)=15,020Ns/m *Kontrol kuvveti(u)= Denetleyiciden alınan kuvvet Serhat YILMAZ,
42
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Dinamik eşitlikler transfer fonksiyonu şeklinde aşağıda gösterilmiştir , Birim basamak girişiyle gösterilmiş bozucu yol etkilerinden dolayı geribildirimli bir denetleyici tasarlamak istiyoruz. Çıkış(X1-X2) oturma zamanı 5 sn’den ve aşma %5’den az olmalıdır. Örneğin otobüs 10 cm adım genliğinde çalışırsa, Otobüsün gövdesi +/-5 mm aralığında salınacak ve salınım 5 sn sonra duracak. Aşağıdaki kodları yazarak bu sistemi matlabta tanımlayalım: m1=2500; m2=320; k1=80000; k2=500000; b1=350; b2=15020; nump=[ (m1+m2) b2 k2 ]; denp=[ (m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; G1=tf(nump,denp); num1=[ -(m1*b2) -(m1*k2) 0 0 ]; den1=[ (m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2 ]; G2=tf(num1,den1); numf=num1; denf=nump; F=tf(numf,denf); Serhat YILMAZ,
43
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Sisteme PID Denetleyici Ekleme: Kp oransal, Ki integral ve Kd türevsel kazançtır.Denetleyicimizin bu kazançların üçünede ihtiyacı olduğunu farzedelim.Başlangıçta bu kazançaların herbirine tahmini değerler atıyoruz Kp=208025,Ki= ve Kd= Aşağıdaki matlab kodlarını m-file dosyasına yazarak PID denetleyicisini sisteme eklemiş oluruz. Kd=208025; Kp=832100; Ki=624075; contr=tf( [Kd Kp Ki],[1 0]); Yolun bozucu etkisine karşı sistemin çıkışta verdiği cevabı(X1-X2 mesafesi) görelim.Yukarıdaki şemaya bakarak bozucu yol etkisi(W) ile çıkış(X1-X2) arasındaki transfer fonksiyonunu bulabiliriz. sys_cl =F*feedback(F*G1,contr); Serhat YILMAZ,
44
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Kapalı Çevrim Cevabını Çizdirme: Matlabta modeli, bozucu etkiyi ve denetleyiciyi gösteren kapalı çevrim transfer fonksiyonunu oluşturduk. Kontrol işlemine başlamadan önce kapalı çevrim transfer fonksiyonunun basamak girişine verdiği cevabı görelim. Bozucu etki için 0.1m adım genliği kullanacağız. Benzetim için sys_cl kodunu 0.1 ile çarpmak yeterli olacaktır. Aşağıdaki kodları m-file dosyasına ekleyelim. t=0:0.05:5; step(0.1*sys_cl,t); title(‘PID denetleyicili kapalı cevrim yaniti’) W basamak bozucu girişinin cevabı(X1-X2) şekildeki gibi olmalı; Serhat YILMAZ,
45
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Grafikten görüldüğü gibi aşma %9’dur. Bu sonuç istediğimiz %5 aşma değerinde fazladır. Oturma zamanı istediğimiz gibi 5sn’den azdır. Oransal kazancı(Kp) seçmek başlangıçta bize makul bir çıkış sağlar. PID denetleyici için bir tane kutup ile iki tane sıfır seçerek işe başlayalım. Denetleyicinin kutbu sıfırda olmalı ve sıfırlardan bir tanesi de orijinde kutba çok yakın olmalıdır. Diğer sıfırı birinci sıfırdan daha uzağa koyacağız. İkinci sıfırın konumunu sistemin gereklerini yerine getirmek için istediğimiz gibi ayarlayabiliriz. Aşağıdaki kodları m-file dosyamıza yazarak ikinci sıfırın yerini ayarlayabilir ve Kp, Ki, Kd kazanç değerlerinden hangisini kullanmamız gerektiğini aşağı yukarı tahmin ederek seçim yapabiliriz. z1=1; z2=3; p1=0; numc=conv([ 1 z1],[ 1 z2]); denc=[ 1 p1 ]; contr=tf(numc,denc); rlocus(contr*G1) title(‘root locus with PID controller’) [K,p]=rlocfind(contr*G1) ; ( Kapalı çevrim kutup ve sıfırlarını aşağıdaki şekilde görebiliriz ve grafik üzerinden kazanç ile baskın kutupları kendimiz seçebiliriz Serhat YILMAZ,
46
Serhat YILMAZ, serhaty@kocaeli.edu.tr
PID Denetleyicinin Kazançlarını Belirleme: Kapalı çevrim transfer fonksiyonunu elde ettikten sonra Kp, Kd ve Ki kazançlarını değiştirerek bizden istenen denetleyici değerlerini elde etmeye çalışacağız. Şekilden görüldüğü gibi sistem istenilenden daha fazla sönümlemeye uğramış, yatışma zamanı ise istenilenden çok daha kısa olmuştur. Sistem cevabı hala istenilen %5 lik aşmayı sağlamıyor. Önceden de değinildiği gibi Kp,Ki ve Kd değişkenlerini ayarlayarak daha iyi çıkış yanıtı elde edebiliriz. m-file dosyasından Kp,Ki ve Kd değerlerini 2 ile çarparak ne olacağını görelim. Serhat YILMAZ,
47
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Ekseni değiştirerek önceki düşük kazançlı grafik ile karşılaştıralım, Axis([ ]) Görüldüğü gibi aşma, yatışma zamanı sistem gereklerine uygundur. Aşma yaklaşık giriş genliğinin %5’i yatışma zamanı ise 2sn’dir, istenildiği gibi 5 sn den azdır. PID denetleyicinin kazançlarını değiştirerek sistemi istediğimiz gibi kontrol edebiliriz. Kp, Ki ve Kd parametrelerini en uygun şekilde seçmeliyiz aksi takdirde çok büyük aşma ve çok uzun yatışma zamanı ile karşılaşmamız mümkündür. Serhat YILMAZ,
48
Serhat YILMAZ, serhaty@kocaeli.edu.tr
Kaynaklar 1. 2. Kandemir,V., 2008, PID Kontrol ve Uygulamaları Lisans Tezi, KOÜ,Elektronik ve Hab. Bölümü Serhat YILMAZ,
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.