PID 02 - Mavi Egitim

Download Report

Transcript PID 02 - Mavi Egitim

Slide 1

Serhat YILMAZ, [email protected]


Slide 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. (http://www.engin.umich.edu/group/ctm/)
R

+

e

Denetleyici

u

Model

Y

-

Ş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, [email protected]


Slide 3

9.1 Üç Terimli Denetim

 PID denetleyicinin transfer fonksiyonu aşağıdaki gibidir.

Kp 


s

Kd .s  Kp .s  K ı
2

 Kd .s 

s

 Kp: Oransal kazanç
 Kı: İntegral kazanç
 Kd: Türevsel kazanç
Serhat YILMAZ, [email protected]


Slide 4

 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.

u  Kp .e  K ı  edt  Kd .

de
dt

 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, [email protected]


Slide 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, [email protected]


Slide 6

Tablo.9.1. PID Denetleyicilerinin Karakteristikleri.
(http://www.engin.umich.edu/group/ctm/)

 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, [email protected]


Slide 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ç
belirlenmesi ile ilgili çok
yapılmıştır.

parametrelerinin
sayıda çalışma

 Bu çalışmada Ziegler–Nichols yöntemi ile öz–
uyarmalı PID parametreleri ayar yöntemi
kullanılmıştır.

Serhat YILMAZ, [email protected]


Slide 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, [email protected]


Slide 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, [email protected]


Slide 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.

G (s) 

Ke

 L .S

 .s  1

 Şekil 9.2’deki eğrideki K ve T değerlerinden faydalanılarak
denklemdeki R olarak ifade edilen değer elde edilir.

Serhat YILMAZ, [email protected]


Slide 11

R 

K
T

Ş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, [email protected]


Slide 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, [email protected]


Slide 13

Örnek.9.1: Basit bir kütle, yay ve sönümleyici problemi düşünelim; Sistem
modelleme denklemi;
..

.

M . x  b x  k .x  F

(9.1)

 Modelleme denklemi (9.1)’in Laplace dönüşümü alındığında;

M .s . X ( s )  b .s . X ( s )  k . X ( s )  F ( s )
2

 X(s) yer değiştirmesi ile F(s) girişi arasındaki transfer fonksiyonu;
X (s)

1



F (s)

Ms

2

 b .s  k

‘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;
X (s)
F (s)



1
s  10 .s  20
2

 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, [email protected]


Slide 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=[ 1 10 20 ];
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.
Serhat YILMAZ, [email protected]

Şekil.9.5. Açık Çevrim Basamak yanıtı


Slide 15

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
Kp
fonksiyonu; X ( s )


F (s)







s  10 .s  ( 20  Kp )
2

Kp 300 olsun;
Kp=300;
Contr=Kp;
Sys_cl=feedback(contr*plant,1);
t=0:0.01:2;
step(sys_cl,t)

Şekil.9.6. Kapalı Çevrim Basamak Yanı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, [email protected]


Slide 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;
X (s)
F (s)

Kp 300 olsun,Kd 10 olsun;

Kd .s  Kp


s

2

 (10  Kd ). s  ( 20  Kp )

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.
Şekil.9.7.
Serhat YILMAZ, [email protected]

Kapalı Ç. Basamak Yanıtı Kp=300,Kd=10


Slide 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 ;
X (s)
F (s)



Kp .s  Ki
s  10 .s  ( 20  Kp ). s  Ki
3

2

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)

Şekil.9.8. Basamak Yanıtı Kp=30,Kd=70

 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, [email protected]


Slide 18

Oransal-İntegral-Türev Denetimi

 Şimdi PID denetleyiciye bir göz atalım.Verilen sistemin PID
denetleyici ile kapalı çevrim transfer fonksiyonu;
X (s)
F (s)



Kd .s

2

 Kp .s  Ki

s  (10  Kd ). s
3

2

 ( 20  Kp ). s  Ki

 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)
Şekil.9.9. Kp=350,Kd=50,Ki=300

 Şimdi aşma olmadan,hızlı yükselme zamanı ve kalıcı durum hatasız
Serhat YILMAZ, [email protected]
bir kapalı çevrim sistemi
elde ettik.


Slide 19

9.6.PID Tasarımında Dikkat Edilmesi Gerekenler;

 PID tasarlarken istenen cevabı elde etmek için aşağıdaki adımları izleyin;
(http://www.engin.umich.edu/group/ctm/)
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, [email protected]


Slide 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;
Y (s)
U (s)









1
.ms  b

m=1000
Şe kil.9 .1 0 .A racın S erb est C isim Ş em a sı
http://w w w .eng in .u m ich.edu /gr ou p /ctm /)
b=50
U(s)=10
Y(s)=hız çıkışı
Birim geribildirimli bir sistemin
tipik blok diyagramı aşağıdaki
gibidir
Serhat YILMAZ, [email protected]


Slide 21

R
giriş

+

e

Denetleyici

u

Y
çıkış

Model

-

Şekil.9.11. 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ı
2

Kd .s  Kp .s  K ı
 PID denetleyicinin transfer fonksiyonu: Kp   Kd .s 
s
s
 Ö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;

Y (s)
U (s)

Serhat YILMAZ, [email protected]



Kp
ms  ( b  Kp )


Slide 22

 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([0 20 0 10]) ;

Şe kil.9 .1 2 . B a sa m a k Y a nıtı K p= 1 0 0

(http://www.engin.umich.edu/group/ctm/)

Serhat YILMAZ, [email protected]


Slide 23

 Çı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 10000 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ı 10.000
yapmak çok zordur.
Şe kil.9 .1 3 . B a sa m a k Y a nıtı K p= 1 0 0 0

 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, [email protected]


Slide 24

PI Denetim: PI denetleyicili bir cruise kontrol sisteminde

kapalı çevrim transfer fonksiyonu;


Y (s)
U (s)



Kp .s  Ki
m .s  ( b  Kp ). s  Ki
2

’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?

Step Response
10
9
8
7

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([0 20 0 10])

Amplitude

6
5
4
3
2
1
0

0

2

4

6

8

10
Time (sec)

12

14

16

18

Şekil.9.14. PI Kontrol Kp=600,Ki=1

Serhat YILMAZ, [email protected]

20


Slide 25

 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.

Şe kil.9 .1 5 . K p= 8 0 0 ,K i= 4 0

Serhat YILMAZ, [email protected]


Slide 26

 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;
Y (s)
U (s)

Kd .s  Kp .s  Ki
2



( m  Kd ). s  ( b  Kp ). s  Ki
2

’ 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([0 20 0
10])
 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
Serhat YILMAZ, [email protected]
değiştirip çıkışı gözlemleyerek
istenilen çıkış yanıtını elde edebiliriz.


Slide 27

 Örnek.9.3.:
Kontrolü

DC

Motor

Hız

 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, [email protected]


Slide 28

 DC motorun dinamik eşitlikleri ve açık çevrim transfer fonksiyonları
s ( Js  b )( s )  KI ( s )

,

( Ls  R ) I ( s )  V  Ks  ( s )

,

V

 Sistemin blok şeması;
R

+

e



Denetleyici

u

Model



K
( Js  b )( Ls  R )  K

2

θ

-

Şekil.9.17. 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, [email protected]


Slide 29

 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ı’)

Ş ekil.9.18. O ransal D enetleyicinin B asam ak Y anıtı

Serhat YILMAZ, [email protected]


Slide 30

 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’)

Ş ekil.9.19. Küçük Ki ve Kd Kaz ançlı P ID

Serhat YILMAZ, [email protected]


Slide 31

 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.

Ş ekil.9 .2 0 . B ü yü k Ki Kaz an çlı P ID D en etleyici

 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.
Ş ekil.9 .2 1 . P ID D en etle yici
Serhat YILMAZ, [email protected]


Slide 32

 Örnek.9.4: DC Motor Konum Kontrolü
* rotor eylemsizlik momenti (J) = 3.2284E-6 kg.m²/s²
* mekanik sistemin sönüm oranı (b) = 3.5077E-6 Nms
* elektromotor kuvvet sabiti (K=Ke=Kt) = 0.0274 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

Şekil.9.22.DC Motor (http://www.engin.umich.edu/group/ctm/)
Serhat YILMAZ, [email protected]


Slide 33

 Bu problemde, DC motorun dinamik eşitliği ve açık döngü transfer
fonksiyonu aşağıdaki gibidir:
R

+


V



K
s (( Js  b )( Ls  R )  K )
2

u

e
Denetleyici

θ
Model

-

Ş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, [email protected]


Slide 34

 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);

Ş e kil.9 .2 4 .K p= 1 .7 K a za n çlı B a sa m a k Y a nıtı

 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, [email protected]
Şekil.9 .25 .K p=1.7 K azançlı B asam ak B ozucu Y anıtı


Slide 35

 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;
Ş e kil.9 .2 6.K p=1 .7 ,Ki=20
Ki=20;
contr=tf([Kp Ki],[1 0]);
sys_cl=feedback(contr*motor,1);
t=0:0.001:0.4;
Serhat YILMAZ, [email protected]
step(sys_cl,t)

Kazançlı B asam ak Y anıtı


Slide 36

 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)

Ş e kil.9 .2 7.K p=1 .7 ,Ki=20 B asam ak B ozucu Y anıtı

Serhat YILMAZ, [email protected]


Slide 37

 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.

Ş ekil.9.28.Kp= 17,Ki= 200 Kazan çlı B asam ak Y anıtı

Ş ekil.9 .2 9 .Kp = 1 7 ,Ki= 2 0 0 , B asamak B o zu cu Y an ıtı

Serhat YILMAZ, [email protected]


Slide 38

 Çı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)

Ş ekil.9.30.Kp= 17,Ki= 200,Kd= 0.15 B asam ak Y anıtı

Ş ekil.9.31.Kp= 17,Ki= 200,Kd= 0.15 Kaz ançlı
B asa mak B ozucu Y anıtı

http://w w w .e ng in .u m ic h.e du /gr ou p /c tm /)

Serhat YILMAZ, [email protected]


Slide 39

 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.

Ş ekil.9.33.Kp= 17,Ki= 600,Kd= 0.15 B . B ozucu Y anıtı
Ş ekil.9.32.Kp= 17,Ki= 600,Kd= 0.15 B asam ak Y anıtı

http://w w w .eng in .u m ich.edu /gr ou p /ctm /)

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, [email protected]


Slide 40

Örnek.9.5: Otobüs Süspansiyon Sisteminin Denetimi

Şekil.9.34.Otobüs Süspansiyon Sistem Modeli
http://www.engin.umich.edu/group/ctm/)

Serhat YILMAZ, [email protected]


Slide 41

 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, [email protected]

Şe kil.9 .3 5 .Siste m in B lok Ş e m a sı


Slide 42

 Dinamik eşitlikler transfer fonksiyonu şeklinde aşağıda gösterilmiştir
G1 (s) 

X 1 (s)  X

21

(s)

U (s)

(M 1  M 2 )s  b2 s  K 2
2





,

G 2 (s) 

X 1 (s)  X

21

(s)

 M 1b 2 s  M 1 K 2 s
3



W (s)

2



  ( M 1 s  b1 s  K 1 ).( M 2 s  ( b1  b 2 ) s  ( K 1  K 2 ))  ( b1 s  K 1 ).( b1 s  K 1 )
2

2

 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, [email protected]


Slide 43

 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=832100 ve Kd=624075. 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, [email protected]


Slide 44

 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’)

Ş ekil.9.36.P ID D enetleyicili K apalı Ç e vri m B asa m ak Y anıtı

 W basamak bozucu girişinin
YILMAZ, [email protected]
cevabı(X1-X2) şekildekiSerhat
gibi
olmalı;


Slide 45

 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) ;
(http://www.engin.umich.edu/group/ctm/)
Ş ekil.9.37. P ID D enetleyicili S istemin Kök Y e r E ğrisi

 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,
[email protected]


Slide 46

 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.

Ş ekil.9.38.P ID B asam ak Y anıtı

Serhat YILMAZ, [email protected]


Slide 47

 Ekseni değiştirerek önceki
düşük kazançlı grafik ile
karşılaştıralım,
Axis([0 5 -.01 .01])
 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.

Ş ekil.9.39 . P ID B asam ak Y anıtı

Serhat YILMAZ, [email protected]


Slide 48

 Kaynaklar
1. http://www.engin.umich.edu/group/ctm/
2. Kandemir,V., 2008, PID Kontrol ve
Uygulamaları Lisans Tezi, KOÜ,Elektronik ve
Hab. Bölümü

Serhat YILMAZ, [email protected]