s - Dumlupınar Üniversitesi

Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Kontrol Sistemleri
2013 Güz Dönemi
Kısaca elde edilmek istenen veriyi yada verileri düzenlemek ve kumanda etmek amacıyla bir araya
gelmiş elemanlar topluluğuna kontrol sistemi denilir. Kontrol sistemleri günümüzde yaygın olarak
birçok alanda kullanılmaktadır. İlgili olduğumuz kontrol sistemi elektriksel, mekanik, biyolojik, vb.
olabilir. Sıcaklık kontrolü, geçiş kontrolü, arabada bulunan birçok sistem (şekil3`e bakınız), ve
otomatik pilot kontrolü bunlara örnek verilebilir. Günümüzde elektriksel kontrol sistemlerinin
merkezinde bulunan kontrolörler mikroişlemci, mikrodenetleyici, ve PLC`lerden oluşmaktadır.
Girişler
Çıkışlar
Sistem
Kontrolör
Şekil1
Donanımsal olarak kontrol sisteminde bulunan elemanlar:
1. Kontrolör: mikroişlemci, mikrodenetleyici, yada PLC
2. Sensörler: takometre, ısıl çift, ışık duyarlılıklı direnç (LDR), fiber optik sensör, vb.
3. Analog devre elemanları: amplifikatör, osilatör, potansiyometre, seramik rezonatör,
4. Görüntü modülü: LCD, yedi parçalı ekran, bilgisayar
5. Çıkış elemanları: akuatör, DC motor, vb.
Kontrolör'ün elemanları:
1. Analog dijital dönüştürücü: X bit ADC
2. Zamanlayıcı: gerçek zaman saati (RTC), Y bit zamanlayıcı, bekçi köpeği zamanlayıcısı,
3. Giriş çıkış portları: Genel amaçlı giriş çıkış pinleri
4. Seri ve paralel ve kablosuz iletişim modülleri: seri iletişim modülleri UART, SPI, I 2C, CAN,
LIN, USB, Capture Compare PWM, JTAG, RS232, ethernet, vb.; kablosuz RF
IEEE802.11a,b,g, ve n
5. Hafıza modülü: Flash, SRAM, DRAM, DMA
Kontrol sistemleri giriş çıkış sinyalleri türlerine göre açık ve kapalı çevrim kontrol sistemleri olarak
ikiye ayrılır. Açık çevrim kontrol sistemlerinde giriş işareti çıkıştan bağımsızdır. Buna trafik
sinyalizasyon sistemi (eğer trafik yoğunluğunu dikkate almıyorsa) örnek verilebilir. Kapalı çevrim
kontrol sistemlerinde ise giriş işareti, bir referans işaretin çıkış işaretiyle toplamından yada
farkından oluşmaktadır (fark hatayı e(t) göstermektedir) ve bu sistemler geri beslemeli sistemler
olarak adlandırılır (şekil2). Alternatif akım motor hız kontrolü buna örnek verilebilir. Şekil4'e
bakıldığında, motorun hızı, triak iletim açısı kontrol edilerek P1 üzerinden ayarlanmaktadır. Bu
devrede R2 P1 ve C3 üzerinden bir geri besleme mevcut olup, motor yüke bindiği zaman zıt
elektromotor kuvvet (EMK Lenz Yasası) azalıp gerilim düşeceğinden R2, P1, ve C3 üzerindeki
gerilim artıp triak iletim açısı artırılmaktadır ve bu nedenle motor hızı arttırılmaktadır.
1/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
r (t )
R(s) +
2013 Güz Dönemi
e (t)
E (s)
K
G(s)
±
V (s)
K⋅G(s )
=
R( s) 1∓K⋅G (s)⋅H ( s)
H(s)
Şekil2
Şekil3
Şekil4
2/41.
v (t)
V (s)
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
En basit anlamda eğer iki olay birbirini etkiliyorsa, geri besleme mevcuttur ve bir süreç içerisinde
olaylar birbirlerini neden-sonuç ilişkisi içerisinde etkilemesine geri besleme denir. Isıtma sistemi,
osilatör, ve biyolojik döngüler geri beslemeye örnek verilebilir. Geri besleme negatif veya pozitif
formdadır. Negatif besleme kendini dengeleyen (örneğin negatif direnç devresi OPAMP), pozitif
beslemeyse kendini arttıran bir etkiye sahiptir. Bundan dolayı geribeslemeli sistemlerin kararlılığı
ayrı bir öneme sahiptir (Nyquist kararlılık testi) [2]. Şekil5 deki tristörlü doğru akım motoru, negatif
beslemeye bir örnek olarak verilmiştir.
Matematikte başlangıç yada sınır değerleri bilinen lineer diferansiyel denklemleri çözmede Laplace
dönüşümünü kullanırız. Benzer şekilde, diferansiyel denklemlerle ortaya konan kontrol
sistemlerinin çözümlenmesinde Laplace dönüşümü kullanılmaktadır. Kompleks zaman domeni
işlemleri, Laplace domeninde (s=G+jw) kolaylıkla yapılabilir. Bu kontrol sistemlerinin
modellenmesinde transfer fonksiyonu ve durum denklemleri en yaygın yöntemlerdendir. Transfer
fonksiyonu yöntemi sadece doğrusal sistemler için kullanılmaktadır (zamanla değişen yada
değişmeyen), yani LTI sistemler için de geçerlidir. PID (partial integrator and derivative) kontrolör
ve DC motorun modellenmesi buna örnek olarak verilebilir. Kontrol sistemlerinde, sistem cevabı
göz önünde bulundurulduğunda, (tanımlamaları değişmekle beraber) bazı sınırlamalar mevcuttur;
1. Sıfır yada minimum durğan hal hatası (zero or minimum steady-state response)
2. En büyük aşım (overshoot): Birim basamak tepkisine ait çıkışın en yüksek değerinin en son
değerinden çıkarıldıktan sonra elde edilir, yada en son çıkış değerine göre yüzde olarak
belirtilir.
3. Maksimum yükselme zamanı (Maximum rise time): Birim basamak tepkisine ait çıkışın son
değerinin %10 dan %90 a ulaşana kadar geçen süre.
4. Maksimum yerleşme zamanı (Maximum settling time): Birim basamak tepkisine ait çıkışın
izin verilen tolerans aralığına ulaşması için geçen süredir.
5. Kazanç ve faz marjinleri (Gain and phase margins): Sistem kazancının 0db olduğu nokta
kazanç geçiş frekansı (gain crossover frequency) ve fazın -180 olduğu nokta faz geçiş
frekansı (phase crossover frequency) olarak adlandırılmaktadır. Kazanç marjini, faz geçiş
frekansında sistemi kararsız olması için ne kadar kazanç değişikliği gerekli olduğunu
göstermektedir. (yada kapalı çevrim sistemin kararlılığını bozmadan, açık çevrim sistemin
kazancının ne kadar arttırılabileceğini göstermektedir) Benzer şekilde faz marjini, kazanç
geçiş frekansında sistemin kararsız olması için ne kadar faz değişikliği gerekli olduğunu
göstermektedir. (yada kapalı çevrim sistemin kararlılığını bozmadan, açık çevrim sistemin
fazının ne kadar arttırılabileceğini göstermektedir) Tüm bu işlemler için bode grafikleri
kullanılmaktadır. Konuyu daha iyi anlayabilmek için Matlab komut satırında margin_gui
komutu yazarak kapalı çevrim bir sisteme ait kazanç ve faz marjinleri analizi yapılabilir.
Bu sınırlamalar birim basamak tepkisine ait, geçiş durumu (transient) ve kalıcı durum (steady-state)
3/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
süreçlerine aittir. Dizayn esnasında tüm bu limitasyonlar dikkate alınır. Buna ek olarak kontrol
sistemlerinin kararlı olması gereklidir ve bunun için Routh-Hurwitz testini uygularız (ileride bu
konu işlenecekdir [2]).
Şekil5
Lineer Zamanla Değişmeyen Sistemler (Linear Time Invariant Systems (LTI) )
Bir sistemin LTI olabilmesi için lineerlik ve zamanla değişmeme gibi özelliklere sahip olması
gereklidir. Lineerlik ve zamanla değişmeme özelliği aşağıdaki gibidir.
a1⋅x 1 ( t )→a1⋅y 1 ( t ) a2⋅x 2 (t )→a2⋅y 2 (t ) a1⋅x 1(t )+a2⋅x 2 (t )→ a1⋅y 1 (t )+a2⋅y 2 ( t );(lineerlik )
x 1(t−T )→ y 1 (t−T );(zamanla değişmeme)
LTI sistemleri zaman ve frekans domeninde iki şekilde gösterebiliriz. Aşağıdaki zaman ve frekans
domeni ilişkisini göstermektedir. Yukarıdaki işlemler her iki taraftaki ifadelerin Laplace transformu
alınarak, frekans domenindede yapılabilir. h(t) sistemin darbe tepkisidir, H(s) sistemin transfer
fonksiyonudur.
x 1 (t )* h(t )= y 1(t ) y a d a X 1 ( s )⋅H ( s )=Y 1 ( s ) . * k o n v ol u syo n g ö s t e r m e k t e d i r .
Örnek olarak türev operatörü, integral operatörü, ve RLC devresinin oluşturduğu lineer homojen
diferansiyel denklem birer LTI sistemdir.
Sürekli ve ayrık zaman LTI sistemleri benzer özelliklere sahiptir. Ayrık zamanlı sistemler için
gösterim () yerine [] şeklinde yapılmaktadır.
Sürekli Zaman Tek Giriş Tek Çıkış Sistemleri (Continuous Time Single Input Single Output
Systems (CT-SISO))
Matlab Polinom Formu;
4/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
N ( s)
G( s)=
s Laplacedeğişkeni , N ( s)ve D( s) pay ve payda polinomu
D( s)
s
G( s)= 2
G=tf ( pay , payda) sisteme ait transfer fonksiyonu
s +2⋅s+1
s
G( s)= 2
için G=tf ([ 1 0],[12 1]); yada s=tf (' s ') ; G=s(s ^ 2+2* s +1) ;
s +2⋅s+1
Sıfır, Kutup, ve Kazanç Formu;
( s−z 1)⋅(s−z 2) …( s−z n)
G( s)=k⋅
s Laplace değişkeni , k reel yada sanal değerli kazanç
( s− p1)⋅(s− p 2)…(s− pn )
z 1 … z n G(s) transfer fonksiyonuna ait reel yada sanal konjuge çifti olan sıfırlar , N (s) kökleri
p1 … pn G (s) transfer fonksiyonuna ait reel yada sanal konjuge çifti olankutuplar , D( s)kökleri
G= zpk ( sıfır , kutup , kazanç )sisteme ait transfer fonksiyonu sıfır kutup kazanç formunda
G( s)=
s
için G=zpk ([0],[−1 −1],[1]); yada s=zpk (' s ' ); G=s /( s+1)2 ;
2
(s +1)
Ayrık Zaman Tek Giriş Tek Çıkış Sistemi (Discreate Time Single Input Single Output System
(DT-SISO))
Matlab Polinom Formu;
G( z)=
N ( z)
z ayrık zaman değişkeni , N ( z) ve D ( z) pay ve payda polinomu
D( z)
G( z)=
z
G=tf ( pay , payda , örnekleme periyodu)sisteme ait transfer fonksiyonu
z −2⋅z−6
G( z)=
z
için G=tf ([1 0],[1 −2 −6], 0.1); yada z=tf (' z ' ,0.1); G=z /(z ^ 2−2∗z−6);
z −2⋅z−6
2
2
Sıfır, Kutup, ve Kazanç Formu örneği;
z
G(z)=
için G=zpk ([0], [−2 3],[1], 0.1); yada z=zpk (' z ' , 0.1); G=z /(z 2−z−6);
( z +2)⋅( z −3)
Bunlara benzer şekilde MIMO (Multiple Input Multiple Output) sistemlere ait transfer fonksiyonları
oluşturulabilir. Detaylı bilgi için Matlab Help kısmına bakabilirisiniz.
Transfer Fonksiyonlarına Gecikme Ekleme (Transfer Functions with Time Delay)
Matlab'da bir transfer fonksiyonunu herbir giriş çıkış kanalı üzerinde gecikme belirleyerek
gösterebilirsiniz.
SISO sisteme ait saniye cinsinden gecikme: tf yada zpk objelerine ait ioDelay özelliği değiştirilir.
G=tf ([1 1],[1 5 3]); G.ioDelay=2 ;
MIMO sisteme ait saniye cinsinden gecikme: tf yada zpk objelerine ait ioDelay özelliği değiştirilir.
s=tf (' s ') ; sys=[2/s (s+1)/(s+10) ; 10 ( s−1)/(s +5)]; tau=[0.1 0.3 ; 0 0.2]; sys.ioDelay =tau ;
Sonuç Transfer Fonksiyonu...
5/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Birinci giriş için
2013 Güz Dönemi
#1: exp(-0.1*s) * 2/s
#2: 10
İkinci giriş için
#1: exp(-0.3*s) * (s+1)/(s+10)
#2: exp(-0.2*s) * (s-1)/(s+5)
Kontrol Sistemlerinde Durum Eşitliklerinin Analizi
Herbir kontrol sistemi transfer fonksiyonu yada durum eşitlikleri şeklinde gösterilebilir. Tekrar
hatırlamak gerekirse transfer fonksiyonu yöntemi sadece lineer sistemler için geçerlidir, LTI
sistemler gibi. Durum eşitlikleriyse doğrusal yada doğrusal olmayan sistemlerin tümüne
uygulanabilir. Sistem bu duruma indirgendiğinde işlem MATLAB aracılığıyla kolaylıkla yapılabilir.
x durum matrisi, u giriş matrisi ve y çıkış matrisidir.
x˙ = A⋅x +B⋅u ; y=C⋅x +D⋅u ;
Aşağıda bu matrislerin büyüklükleri gösterilmiştir. Ayrıca Simulink den aşağıda gösterilen blok
seçilerek aynı işlemler yapılabilir.
Transfer fonksiyonuna ait pay ve paydadan durum eşitliklerine ait bilgiler elde edilebilir, ve bunun
terside Matlab da yapılabilir.
[ ] [ ][ ] [ ] [ ]
x˙1
x
u
= 5 1⋅ 1 + 1 0⋅ 1
2 3 x2
2 3 u2
x˙2
[]
y=[ 2 0 ]⋅
[]
x1
u
+[ 0 0 ]⋅ 1
x2
u2
A=[5 1;2 3];
B=[1 0;10 1];
C=[2 0];
D=[0 0];
[num1,den1]=ss2tf(A,B,C,D,1)
[num2,den2]=ss2tf(A,B,C,D,2)
num1 =
0 2.0000 14.0000
den1 =
1 -8 13
num2 =
0 0 2
den2 =
1 -8 13
6/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Y ( s)
Y ( s)
2⋅s+14
2
G1 (s)=
= 2
G 2 (s)=
= 2
U 1 (s) s −8⋅s+13
U 2 ( s) s −8⋅s+13
2013 Güz Dönemi
Verilen transfer fonksiyonuna ait, basamak fonksiyonun tepkisi aşağıdaki şekilde Matlab da
bulunur. Step fonksiyonu sisteme birim basamak fonksiyonunu uygulamaktadır. Zaman domeninde
konvolüsyon yerine, frekans domeninde bu işlemin yapıldığını ve bulunan sonucun zaman
domenine dönüştürülerek fonksiyonun bulunduğunu ve grafiğinin çizildiğini düşünebilirsiniz.
Darbe tepkisi için impulse(G(s)) fonksiyonu kullanılmaktadır.
5⋅s
G( s)= 2
s +2⋅s+5
clc
num=[0 0 5];
den=[1 2 5];
step(num,den)
grid
title('Basamak Fonksiyonu Tepkisi')
Şekil6
Benzer şekilde impulse(tf) fonksiyonu darbe tepkisine ait grafiği çizer, parametresi transfer
fonksiyonu, tf yada ss objesidir.
clc
num=[0 0 5];
den=[1 2 5];
figure;
grid
7/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
title('Darbe Fonksiyonu Tepkisi')
impulse(num,den)
2013 Güz Dönemi
Sistemin darbe tepkisi şekil7 deki gibi olur.
Şekil7
Ayrıca bir MIMO sistemin state-space modeline ait bilgiler aşağıdaki şekilde elde edilebilir.
Y (s)
Y ( s)
G1 (s)= 1
G 2 ( s)= 2
İki çıkış bir girişli sistem için verilmiş ise,
U (s )
U ( s)
s+1
3
s +3⋅s 2+3⋅s +2
H (s)=
s 2 +3
s 2 +s +1
[
]
H = [tf([1 1],[1 3 3 2]) ; tf([1 0 3],[1 1 1])];
sys = ss(H) % Noktalı virgül olmadığına dikkat ediniz.
size(sys)
Çıktı aşağıdaki gibidir. Ara işlemleri görmek için noktalı virgülü kaldırmak gerektiğine dikkat
ediniz.
a=
x1
x2
x3
x4
x1 x2
-3 -1.5
2 0
0 1
0 0
x3
-1
0
0
0
x4 x5
0 0
0 0
0 0
-1 -1
8/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
x5 0 0 0 1 0
2013 Güz Dönemi
b=
u1
x1 1
x2 0
x3 0
x4 2
x5 0
c=
y1
y2
x1 x2 x3 x4
0 0.5 0.5 0
0 0 0 -0.5
x5
0
1
d=
u1
y1 0
y2 1
Continuous-time model.
State-space model with 2 outputs, 1 inputs, and 5 states.
Laplace ve ters Laplace dönüşümü aşağıdaki şekilde yapılmıştır. lsimplot
syms t s
laplace(dirac(t - 3), t, s)
laplace(heaviside(t - pi), t, s)
ilaplace(1/s,s,t)
>> laplace
ans =
exp(-3*s)
ans =
exp(-pi*s)/s
ans =
1
Matlab LTI Objeleri
Bir LTI model objesine ait özelliği değiştirmek için kullanılan fonksiyon parametresi olarak
yazıldıksan sonra değeri atanır. Format aşağıdaki gibidir. 'PropertyName',PropertyValue
sys = ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN)
ss objesinin bazı özellikleri aşağıda verilmiştir.
• a,b,c,d,e: Durum denklemlerine ait matrisler. e (implicit descriptor) default olarak [] dır.
Daha önceden belirtildiği gibi A Nx Nx, B Nx e Nu, C Ny Nx, D Ny Nu, ve E Nx Nx
ölçülerde matrislerdir.
• Scaled: Nümerik doğruluğu sağlamak için sistemin ölçeklenip ölçeklenmediğini yazar, 1
yada 0 dır.
9/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
• StateName: Durumların isimleri atanır, string dizisidir.
• StateUnit: Durumların birimleri atanır, string dizisidir.
• InternalDelay: Sistemin iç kısımlarına ait gecikmelerin tutulduğu vektördür. Örneğin,
sistemleri paralel, seri, yada kapalı döngüde bağlarken gecikme eklenmek istendiğinde
kulanılır.
• InputDelay: Herbir giriş kanalına ait gecikmelerin tutulduğu vektördür (Nx by 1).
• OutputDelay: Herbir çıkış kanalına ait gecikmelerin tutulduğu vektördür (Ny by 1).
• Ts: Ayrık zamanlı sisemler için örnekleme periyodu, nümerik bir değerdir. Sürekli zaman
için sıfırdır.
• TimeUnit: Zaman değişkeninin birimini göstermektedir, stringdir. 'nanoseconds', 'hours',
'weeks', 'years' vb.
• InputName: Girişlere isim ataması yapılabilir, stringdir. Örnek kullanım; sys.InputName =
'controls';
• InputUnit: Girişlere birim ataması yapılabilir, stringdir.
• InputGroup: MIMO sistemlerde girişler guruplandırılarak işlemler yapılabilir, struct dır.
Örnek kıllanım;
sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];
1 ve 2 girişler control olarak, 3 ve 5 girişler noise olarak adlandırılmıştır. sys(:,'controls')
sistemin controls girişlerinden tüm çıkışlarına ait alt sistemin çıkarılması.
• OutputName: Çıkışlara isim ataması yapılabilir, string dir.
• OutputUnit: Çıkışlara birim ataması yapılabilir, string dir.
• OutputGroup: MIMO sistemlerde Çıkışlar guruplandırılarak işlemler yapılabilir, struct dır.
Örnek kıllanım;
sys.OutputGroup.temperature=[1];
sys.OutputGroup.measurement = [3 5];
sys('measurement',:) tüm girişlerden measurement çıkışlarına ait alt sistem çıkarılması
• Name: Sisteme isim ataması, string dir.
• Notes: Sistemle ilgili her türlü notlardır.
• UserData: Sistemle alakalı Matlab veri yapısıdır.
Şekil8'de dcm adlı ss objesine ait örnek verilmiştir. Yine LTI sistemleri göstermek için kullanılan tf
ve zpk objesi aynı özelliklere sahipdir (den ve num haricinde). Matlab workspaceden objelere ait
tüm veri yapılarına değerleriyle ulaşabilirsiniz. Ayrıca dcm(1,1) <1x1 ss> ss üzerine tıkladığınızda
ss objesine ait tüm açıklama Matlab Help ekranından görülebilir.
Asimptotik Bode Grafikleri
Bir LTI sisteme ait transfer fonksiyonunun frekansla değişimi (frequency sweep) nasıldır sorusunun
cevabını bu grafikler vermektedir. Düşey eksende genlik dB cinsinden ve faz açısını derece olarak
-180 +180 (yada 0 360) arasında gösteren, ve yatay eksende frekansı temsil eden belirli bir
değerden itibaren logaritmik olarak arttırılan iki grafik vardır. Daha yüksek ve düşük genliğin elde
edildiği frekans bölgesinin yanında, bu grafiklerde asimptotlar ve genlik yada fazın iki katı arttığı
yada yarı yarıya azaldığı kırılma frekansı olarak adlandırılan +yada-3 dB noktaları önemlidir.
H ( s) , s= j⋅w →∣H ( j⋅w)∣⋅ang (H ( j⋅w)) ∣H ( j⋅w)∣dB=20⋅log 10 (∣H ( j⋅w)∣)
s=jw için genlik ve faz değişimi elde edildiğinden bode grafiklerinde durağan hal tepkisi elde edilir.
(Sönümleme sabiti 0 alınmıştır.)
Aşağıda iki sistemin bode grafikleri aracığıyla aynı olduğu gösterilmiştir. ex'= ax+bu ve y=cx+du
10/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Şekil8
a = [2 -4; 4 2];
b = [-1; 0.5];
c = [-0.5, -2];
d = [-1];
e = [1 0; -3 0.5];
% Create a descriptor state-space model.
sys1 = dss(a,b,c,d,e);
% Compute an explicit realization.
sys2 = ss(sys1,'explicit')
bode(sys1,sys2)
>> bode_plot
sys2 =
a=
x1 x2
x1 2 -4
x2 20 -20
b=
u1
x1 -1
x2 -5
c=
x1 x2
y1 -0.5 -2
d=
u1
y1 -1
Continuous-time state-space model.
Y ( s)
G( s)=
=C⋅(s⋅I − A)−1⋅B+ D x( 0)=0 için
X ( s)
11/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil9
Bir MIMO sistem'e, istenilen herhangi bir giriş sinyali uygulamak için lsimplot fonksiyonu
kullanılır. Belirlenen zaman aralığında ve adımlarla giriş sinyali uygulanır. u matrisi, sistemin giriş
sayısı x t matrisi sütun sayısı ölçülerindedir. ssobjesi herhangi bir ss objesidir. t matrisi istediğimiz
zaman aralığını belirlenen adımlarla göstermektedir.
lsimplot(ssobjesi, u, t);
Bilindiği gibi transfer fonksiyonuna ait frekans cevabı belirli bir frekans aralığındaki, genlik (dB) ve
faz (derece) olarak elde edilir. Giriş sinyaline ait Laplace dönüşümü kolaylıkla yapılabiliyorsa, ilgili
frekansda transfer fonksiyonuna ve giriş sinyaline ait Laplace dönüşümleri çarpıldıktan sonra çıkışa
ait genlik dB cinsinden ve faz da derece cinsinden bulunabilir. Giriş ve transfer fonksiyonuna ait dB
cinsinden genlikler ve derece cinsinden fazlar mevcutsa, çıkışa ait değerleri bulmak için toplamları
alınarak durağan hal tepkisine ait bilgiler elde edilir.
Bir sinyal için 4 önemli parametre vardır. Sinyalin türü (kare, testere, yada üçgen dalga gibi),
genliği, frekansı, ve faz farkı. Eğer giriş sinyalini Laplace dönüşümüyle ortaya koymak zor ise, bu
noktada Fourier dönüşümünü hatırlamak gereklidir. Bu teoreme göre, herhangi bir sinyal değişik
frekanslarda sinüs sinyallerinin toplamı olarak ifade edilebilir. Sinyali oluşturan bileşenler
bilindiğinde, yani herbir bileşene ait frekans ve genlik bilgileri bilindiğinde, bode grafiğine bakarak
durağan haldeki çıkış sinyalini elde edebiliriz. Aslında bir sinyali oluşturmak için bir kaç tane sinüs
bileşeni kullanmak yeterlidir. Şekil10'da kare dalga için bu durum ortaya konulmuş ve 5 sinüs
sinyali kullanılmıştır.
sin (n⋅w c )
4
y= π⋅∑
n
MATLAB'da geçici hal ve durağan hal tepkisi arasındaki farkı kolayca görebiliriz.(şekil11 bakınız)
clc;
num=[1 5];
den=[1 2 3];
s=tf(num,den);
t=[0:0.05:20];
u=5*cos(2*t+pi/6);
y=lsim(num,den,u,t);
12/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
[mag,phase]=bode(num,den,2)
yss=5*mag*cos(2*t+(30+phase)*pi/180);
plot(t,u,t,y,'--',t,yss,'.');
% t>1.8 civarinda duragan hal cevabina ulasir
% ayni sonuc elde edilebilir
figure();
lsimplot(s,u,t);
Şekil10
Şekil11
Birden fazla frekansa sahip giriş sinyali uygulandığında yukarıda anlatıldığı gibi herbir sinyal için
sistem çıkışındaki sinyaller hesaplandıktan sonra net çıkış tüm sinyallerin toplamı olarak bulunur.
% Alcak geciren filtre
clc;
num=[0.5 20];
den=[1 1];
s=tf(num,den);
13/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
bode(num,den)
fıgure();
t=[0:0.05:20];
u=sin(0.1*t)+cos(0.5*t+pi/4)-sin(13*t-pi/6);
y=lsim(num,den,u,t);
frekans=[0.1 0.5 13];
[mag,phase]=bode(num,den,frekans)
yss=mag(1,1)*sin(0.1*t+phase(1,1)*pi/180)+mag(2,1)*cos(0.5*t+pi/4+phase(2,1)*pi/
180)-mag(3,1)*sin(13*t-pi/6+phase(3,1)*pi/180);
figure();
plot(t,u,t,y,'--',t,yss,'.');
Şekil12
Ayrıca bode grafiklerinden sistemin kararlılığı hakkında fikir edinebiliriz. Konuyu daha iyi
anlayabilmek için Matlab komut satırında margin_gui komutu yazarak kapalı çevrim bir sisteme ait
kazanç ve faz marjinleri analizi yapılabilir. Bir sisteme ait kazanç ve faz marjinleri [Gm, Pm, Wgm,
Wpm]=Margin(sys) fonksiyonuyla elde edilebilir.
Sorular:
1- Şekil13'de bulunan mekanik kütle yay sisteme ait modelin (a) seçeneğini Matlab'da ve (b)
seçeneğini Simulink'de simülasyonunu yapınız.
a) m=1, b=0.3, k= 0.2, x(0)=0.1, x'(0)=0.05, F=0 (sönümlemede)
b) m=1, b=0.7, k=1, x(0)=0, x'(0)=0, F=1
Şekil13
14/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
2- Basit bir osilatör (wien köprü, ring yada kristal osilatör gibi) devresini teorik olarak ortaya
koyup, blok diyagramını çiziniz.
3- Paralel RLC devresini teorik olarak ortaya koyup, Matlab ve Simulink'de aşağıdaki değerler için
simülasyonunu yapınız. R=800 ohm, C=50 uF, L=50 mH, i(t)= 50*exp(-200*t)*sin(120*pi*t),
sin(1.1*t), sin(0.9*t).
4- Şekil14'deki PID geribesleme kontrolörünü doğru akım motorunun hızını kontrol etmek amacıyla
dizayn ediniz ve Matlab ve Simulink'de simülasyonunu yapınız.
Şekil14
5- Herhangi bir ikinci dereceden aktif geribeslemli lowpass filtrenin devresini çiziniz, transfer
fonksiyonunu bulunuz, ve simülasyonunu yapınız.
Yararlanılan ve faydalı olabilecek linkler:
[1] http://web.itu.edu.tr/~kents/matlab.pdf
[2] http://web.sakarya.edu.tr/~afboz/control/bolum1.html
[3] http://www.dcsc.tudelft.nl/~sc4070/transp/refresher.pdf
[4] http://www.inf.fu-berlin.de/lehre/SS05/Robotik/motors.pdf
[5] MATLAB ve SIMULINK'le Modelleme Kontrol II, Zafer Birgül ISBN; 975-511-445-9
15/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
Doğru Akım Motor Kontrolü, Modelleme ve Matlab Simülasyonu
Doğrusal yada doğrusal olmayan dinamik sistemlerin tümü Matlab ve Simulink aracılığıyla
modellenip simülasyonu yapılabilir. Bu ksımda bir doğru akım motoruna ait bir lineer model
geliştirilip Matlab'da ve Simulink'de simülasyonu yapılacaktır. Uygulamanın sonunda transfer
fonksiyonları, bunlara ait sıfır, kutup, ve kazanç değerlerinin bulunması, geçici zaman tepkisi
(transient response), durağan hal tepkisi (steady-state response), kapalı çevrim ve açık çevrim
sistemler, yer kök eğrileri öğrenilecektir, ve sistem üzerindeki sınırlamalar hakkında bilgi
edinilecektir.
Grafiklerdeki verilerin üzerine tıklayarak değerlerini okuyabilirsiniz. Ara işlemleri Matlab da
Command Window kısmında görebilmek için komutların sonundaki ";" kaldırabilirsiniz. Genel
Matlab çalışma ortamı şekil15'de gözükmektedir. Sağ tarafda bulunan Workspace kısmından
oluşturduğunuz değişkenlere ait datalara, objelere, ve bunlara ait maksimum minimum değerlerine
ve boyutlarına ulaşabilirsiniz. Sol tarafda, bulunduğunuz konumda ihtiva edilen dosyalar, ve sağ alt
kısımda Command History kullandığınız komutlara ait liste bulunmaktadır. Kodlarınızı bir script
dosyasına yazarak (*.m file) komut satırında tekrar yazmak zorunda kalmazsınız ve sekmeler
kısmında bulunan kısa yollar aracılığıyla istediğiniz şekilde debug edebilirsiniz, ve
çalıştırabilirsiniz.
Şekil15
Komutlarınızı bir script dosyasına kaydetmek için NewScript icon'na tıklayın yada File -> new ->
script tıkladığınızda şekil16'deki editör karşınıza çıkacaktır, burada komutları yazdıktan sonra save
icon'a tıklayarak dosyayı kaydedebilirsiniz. Kodlarınızı yazdıktan sonra kırmızı kutu içinde bulunan
16/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
kısayollar aracılığıyla çalıştırabilir (run) ve satırlara durdurma noktaları koyabilirsiniz
(breakpoints). Ayrıca ihtiyaç duyacağınız fonksiyonları bulabilmek için, yada fonksiyonların
kullanım bilgilerine ulaşmak için (syntax) mavi kutu içindeki fx kısayoluna tıklayınız; ek olarak bu
kısımdan kodu anlaşılabilir kılmak için işaretler ekleyebilirsiniz.
Şekil16
T = K m⋅i V emf =K b⋅w
J⋅w+K
˙
f ⋅w=T =K m⋅i ( mekanik kısma ait denklem) ;
˙
L⋅i +R⋅i=V −K b⋅w (elektriksel kısma ait denklem);
L⋅i˙ +R⋅i=V −K b⋅w ;
(J⋅s+K f )⋅w( s)=K m⋅I ( s )=T (s) ; (L⋅s+ R)⋅I (s)=V (s)− K b⋅w(s );
Km
w (s)
rad / sec
G( s)=
=
[
]
V (s) ( J⋅s+K f )⋅( L⋅s+R)+K m⋅K b
V
[ ][ ] [ ]
−K f K M
0
w˙ = J
J ⋅w +
w
1 ⋅V y =[1 0]⋅
˙i
−K b −R i
i
L
L
L
Km
T ( s)
w( s)
1
=
=
V ( s)−K b⋅w( s) ( L⋅s+R) T ( s) ( J⋅s+K b)
[]
[]
17/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil17
Şekil18
Yukarıda bir doğru akım motoruna ait elektriksel ve mekanik denklemler, sisteme ait transfer
fonksiyonu, elektriksel ve mekanik kısımlara ait transfer fonksiyonları, ve sisteme ait durum
denklemleri verilmiştir. Şekil17 ve şekil18'e bakıldığında modelleme daha iyi anlaşılacaktır. Matlab
kodu aşağıdadır. Simülasyon grafikleri sırasıyla verilmiştir. Veriler hakkında daha detaylı bilgi için
grafikler üzerine tıklayınız.
18/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Matlab Kodu:
%
%
%
%
%
%
%
%
%
%
%
%
%
2013 Güz Dönemi
Tüm dosyalar ayni klasörde olmalidir. ÖNEMLi NOKTALAR: ***Tork akimla
dogru ve gerilimle ters orantilidir.*** ***Açisal hiz gerilimle dogru
orantilidir.*** ***Bundan dolayida tork açisal hizla ters orantilidir.***
***Güç (akim x gerilim) tork x açisal hizla dogru orantilidir. Transfer
fonksiyonlariyla ilgili ayrintili bilgi için dokumanlara bak. Matlab Help
kismindan ilgili fonksiyonun nasil kullanildigina ait bilgilere
erisebilirsiniz. Sisteme ait sinirlamalar:
***sifir yada minimum durgan hal hatasi*** zero or minimum steady-state
response error
***En buyuk asim*** outrise
***maximum yukselme zamani*** maximum rise t.
***maximum yerlesme zamani*** maximum settling time
***kazanc ve faz marjinleri*** Gain and phase margins
% Yeni bir pencere açar
figure;
imshow('dcdemofigures_01.png');
figure;
imshow('dcdemofigures_02.png');
R = 2.0; % Direnç Ohm cinsinden
L = 0.5; % Bobin Henry cinsinden
Km = 0.1; Kb = 0.1; % Tork ve ters EMK sabitleri ayni degerdedir.
Kf = 0.2; % Nms
J = 0.02; % Eylemsizlik momenti kg.m^2/s^2
h1 = tf(Km,[L R]); % Armatür kismi transfer fonksiyonu
h2 = tf(1,[J Kf]); % Yük kismi transfer fonksiyonu
% size(ss(h2))
% ss(h2)
% ss() fonksiyon state-space matrislerini oluuturur ve size(ss(h2))
% boyutlarini gösterir.
% ss(h2) state space matrislerini ve boyutlarini görebilirisiniz.
% x'=Ax+Bu y=Cx+Du; A Nx e Nx boyutlarinda, B Nx e Nu boyutlarinda,
% C Ny e Nx boyutlarinda, D Ny e Nu boyutlarinda matrislerdir.
% [h1 , 1] iki giris tek cikis sistem olur MIMO. Birinci giristen cikisa
% transfer fonksiyonu h1, ikincisi 1 dir. [h1 , 1] yazdiginizda
% gorebilirsiniz.
dcm = ss(h2) * [h1 , 1];
% Td torkdaki degisimi gostermektedir. dcm (bu adimda) = w = h2*(h1*Va +
% Td) Td tork degisikligi girisi eklendi, [h1 , 1] bundan dolayi dcm adli
% obje 1x2 ss objesidir.
dcm = feedback(dcm,Kb,1,1);
% size(ss(dcm)) iki giris bir cikis iki durum elemani vardir. Kapali döngü
% ters EMK, geri besleme olarak Matlab default olarak negatif geribesleme
% kabul eder. eger iki 1 den sonra +1 yazilirsa pozitif geribeslemenin
% isareti pozitif olur. Yukarida iki transfer fonksiyonu oldugunu
% soylemistik. Bunlari Td kismindan sonra paralel olan iki blok ve sonra
% cikista toplam olarak dusune bilirsiniz yada iki girisli bir sistem.
% Bundan dolayi dcm 2x1 giris gerektiriir. Yani bir girisi Va olan diger
% girisi Td olan cikisysa w olan bir blok diyagram olusturduk. kapali dongu
% fonksiyonunda paremetre olarak index degerlerini yazdik, ilk 1 iki tane
% olan giristen sadece 1 si yani Va, mesela 2 yazsaydik geribesleme Td
% girisine baglanirdi; ikinci 1 cikisimizi gostermektedir zaten 1 tane onun
% indexini yazdik oda w dir. bu olusturlan dcm ss objesi ileride
% kullanilacaktir.
figure;
stepplot(dcm(1));
% sistemin birim basamak tepkisiyle (step response) açisal hizin degisimi
% görülür. cikisin ilk girise olan degisimi gosterilmistir
% stepplot(dcm(1,1)); ile aynidir. Td icin yani 2. girise uygulanan birim
19/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
% basamak fonksiyonunun tepkisi gorulmek isteniyorsa stepplot(dcm(1,2));
% kullanilir. stepplot(dcm(1,:)); her iki cikisida gostermektedir.
% unutmayin Td torkdaki degisimi gosermektedir. Yani motor yuke
% bineceginden negatif degerler almasi gereklidir.
ylabel('\fontsize{16} Acisal Hiz (rad/s)');
xlabel('\fontsize{16} Zaman (s)');
title('\fontsize{16} Acisal hizin birim basamak tepkisiyle olan degisimi');
% ileri besleme dizaynina ait simülasyon
figure;
imshow('dcdemofigures_03.png');
% kazanç degerinin belirlenmesi icin 1/birim basamak tepkisinin sonsuzdaki
% degeri alindi. bunu acik cevrim sistemin cikisinin w duragan halde 1
% olmasi icin. yaptik
Kff = 1/dcgain(dcm(1));
% Kff=4.1 dcgain(dcm(1))~0.24 yani w(s)/v(s) dc gain transfer fonksiyonun
% s=0 iken degeridir. eger dcgain(dcm(1,2)) bulunmak istenseydi W(s)/T(s)
% s=0 iken degerini bulurduk oda 4.878
t = 0:0.1:15;
% 0-15 s arasinda 0.1 adimla simülasyon icin noktalar belirledik.
% Yükdeki degisiklik (tork) 5s ile 10s arasinda, -0.1 Nm tork degisikligi
Td = -0.1 * (t>5 & t<10);
% u giris matrisi 2x150 matrisdir. Cunku dcm 2x1 giris gerktiriyordu. Simdi
% 150 tane deger icin
u = [ones(size(t)) ; Td]; % w_ref=1 ve Td ne oldugunu yukarida belirttik
% diag([Kff,1]) diagonal matris olusturur Kff 1x1, ve 1 2x2 elamanlaridir.
cl_ff = dcm * diag([Kff,1]);
% ileri beslemeli sistemin duragan halde (steady state) de degerinin 1
% olmasi icin Kff ile carpildi. Sistemin Td ile olan girisi eskisiyle ayni
% ss objesine sahip, ve tum degerleri eskisiyle ayni. Fakat Va ile olan
% girisi cl_ff ss objesine ait yeni ozellikler atandi, yeni obje eskisinin
% Kff katidir (yani amplifikator uygulanmistir).
set(cl_ff,'InputName',{'w_ref','Td'},'OutputName','w');
% burada cl_ff ss objesine ait ozellikler atanmistir.
% o ile 15 saniye arasinda 5s ile 10s arasinda -0.1Nm tork degisikligi için
% sistemin tepksi gösterilir.
figure;
h = lsimplot(cl_ff,u,t);
% cl_ff ileri besleme sistemine ait transfer fonksiyonu
% lsimplot u giris matrisine ait t zaman araliginda sistemin cevabidir.
% wref 1 olarak atanmistir.
title('\fontsize{16} Acisal hizin acik cevrim sistemde basamak tepkisiyle olan
degisimi');
legend('cl\_ff');
ylabel('\fontsize{16} Acisal Hiz (rad/s)');
% Grafikte belirtilen -0.1 Nm tork degisikliginin grafikde gösterilmesi
line([5,5],[.2,.3]); line([10,10],[.2,.3]);
text(7.5,.25,{'tork degisikligi','T_d = -0.1Nm'},...
'vertic','middle','horiz','center','color','r');
% Geri beslemeli sistemin sifir duragan hal hatasi icin, root locus yer kok
% yontemi kullanarak K kazanç degerini bulma
figure;
h = rlocusplot(tf(1,[1 0]) * dcm(1));
setoptions(h,'FreqUnits','rad/s');
set(gca,'Xlim',[-15 5],'Ylim',[-15 15]);
% eksen limitleri
%
K
C
%
%
%
Geri beslemeli sistemle ileri beslemeli sistemin karsilastirilmasi
= 5;
= tf(K,[1 0]); % K/s kismina ait transfer fonksiyonu
append(C,1) 5/s, Sistemin Td ile olan girisi eskisiyle ayni ss objesine
sahip, ve tum degerleri eskisiyle ayni. Fakat Va ile olan girisi cl_rloc
ss objesine ait yeni ozellikler atandi, yeni obje eskisinin 5/s katidir
20/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
% (yani amplifikator uygulanmistir). Bu islemler dcm * append(C,1) sonucuda
% olusmustur.
cl_rloc = feedback(dcm * append(C,1),1,1,1);
% sisteme geribesleme için gerekli olan kisimlar eklendi. ilk bir
% geribeslemenin degerinin 1 oldugunu gosterir. Birinci giris yani wref'e
% geribesleme yapilmistir, ikinci 1 bunu gosterir. ucuncu 1 geribeslemein
% alindigi cikis yani w gostermektedir. default olarak Matlab'da
% geribesleme katsayisi negatif kabul edildiginden sistem girisi wref-w dir
figure;
h = lsimplot(cl_ff,cl_rloc,u,t);
set(cl_rloc,'InputName',{'w_ref','Td'},'OutputName','w');
title('Ileri besleme ve geri beslemeli sistemlerin acisal hizinin tork
degisimine olan tepkisi')
legend('Ileribesleme','Geribesleme (rlocus)','Location','NorthWest')
% daha iyi geribesleme performansi elde etmek için Lineer Quadratic
% Regulator Modeli (LQR) Va = K1 * w + K2 * w/s + K3 * i kullanildi. Bu
% modelde Va girisine uygulanacak sinyal w cikis ve i akim dan elde edilir.
% bunlarin sisteme ait durum vektorunun elemanlari olduguna dikkat edin.
% x=(w,i) boylece sistemdeki degisim hakkinda daha fazla veri elde edilmis
% olunur. i(s)=w(s)/s dir.
figure;
imshow('dcdemofigures_05.png');
% [1 ; tf(1,[1 0])] birinci transfer fonksiyonu 1 ikinci transfer
% fonksiyonu 1/s dir.
dc_aug = [1 ; tf(1,[1 0])] * dcm(1);
% size(ss(dc_aug)) dc_aug iki cikisli bir girisli uc durum elemani olan bir
% ss objesidir. w/s olan bir cikis daha modele, birinci girise uygulanacak
% sekilde DC motor modeline eklendi. daha once bahsettigimiz gibi
% i(s)=w(s)/s cikisni kullanacagimizdan bu cikisa ihtiyac duyduk. lqry
% lineer quadratik durum geribesleme regülatörü dizayn eder. kullanim
% [K,S,e] = lqry(ss,Q,R,N) seklindedir. Daha iyi tork degisikligini yok
% etmek icin (disturbance rejection) cost fonksiyonu su sekilde
% hesaplanmistir. cost J= integral 0->sonsuz
% (20i^2(t)+w^2(t)+0.01Va^2(t))dt
K_lqr = lqry(dc_aug,[1 0;0 20],0.01);
% K_lqr geribeslemeye ait K, S, ve e (F geribesleme ve W bizim
% notasyonumuzda) degerlerini verir. e burada kapali cevrim eigenvalue
% lardir e=eign(A-B*K). K yeni bloklardaki katsayilara sahip.
P = augstate(dcm);
% durum vektörünü çikis vektörüne ekler x'=Ax+Bu y=Cx+Du;
% | y |=|C|x+|D|u tek bir esitlik haline gelir.
% | x |=|I| +|0|
% sistem 3 cikisli 2 durumlu 2 girisli oldu
% girisler:Va,Td çikislar:w,x(w,i); x burada i ve w gostermektedir
C = K_lqr * append(tf(1,[1 0]),1,1);
% 44.72, 36.97, 15.18 K_lqr katsayilarla 1/s 1 1 carpildi C = 44.72/s,
% 36.97, 15.18 oldu.
OL = P * append(C,1);
% Açik çevrim dizayn Va=44.72*w/s+36.97*w+15.18*i su anda geribesleme
% eklenmedi OL 3 cikis 4 giris 3 durumlu bir objedir. 3 giris Va icin
% yukaridaki denklemde verilmistir. diger giris Td icindir
CL = feedback(OL,eye(3),1:3,1:3);
% kapali çevrim dizayn. eye(3) 3x3 birim matrisdir. ilk 1:3 1 den 3 kadar
% tum girisler ve ikinci 1:3 1 den 3 kadar tum cikislari temsil eder.
% bunlar sirasiyla birbirine baglanir. default olarak negatif geribesleme
% var.
cl_lqr = CL(1,[1 4]);
% Elimizde sistem 4 giris 3 cikisli, bizim ihtiyacimiz olan LQR sisteme
% ait sistem (w_ref,Td)->w iki giris 1 cikisli olmali 1 cikis w ve 1 ve 4
% giris wref ve Td secildi.
figure;
h=bodeplot(cl_ff,cl_rloc,cl_lqr);
21/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
% Grafikle ilgili eksenleri isimlendirmede problem oldugu icin yeniden
% isimlendirme yaptik. Frekans birimini Hz degistirdik, karisiklik
% olmamasi acisindan. Bu LTI objeleri anlamak acisindan iyi bir uygulamadir
P=getoptions(h);
P.FreqUnits = 'Hz';
P.Title.String='Transfer Fonksiyonlarina Ait Bode Grafigi';
P.XLabel.String='Frekans (acisal frekans degil)';
P.YLabel.String={'Faz Farki (derece)','Genlik (dB)'};
setoptions(h,P);
legend('Ileribesleme','Geribesleme (rlocus)','Geribesleme
(LQR)','Location','NorthEastOutside')
% üç sisteme ait asimptotik bode grafigi burada frekansa (not açisal
% frekans degil) göre üç sistemin degisimi gozlenmektedir. Bundan dolayi x
% ekseninin birimini Hz olarak kullanacagiz ust satir genligi alt satir faz
% farkini göstermektedir. Sol tarafdaki grafiklerde I/O wref to w, sag
% tarafdaki grafiklerde I/O Td to w transfer fonksiyonlari bunlara gore
% ayarlandi.
figure;
h = lsimplot(cl_ff,cl_rloc,cl_lqr,u,t);
title('Ileri besleme ve geri beslemeli sistemlerin acisal hizinin tork
degisimine olan tepkisi')
legend('Ileribesleme','Geribesleme (rlocus)','Geribesleme
(LQR)','Location','NorthWest')
Şekil19
22/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Şekil20
Şekil21
23/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Şekil22
Şekil23
24/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Şekil24
Şekil25
25/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil26
Yer Kök Eğrileri
R ( s)
K
H(s)
V ( s)
B(s)
Şekil27
V (s)
K⋅H ( s)
=
B (s)=1 için
R(s ) 1+K⋅H (s)
Kapalı çevrim sistemin kutupları 1+KH(s)=0 özyapısal denkleminden elde edilir.
b ( s)
a(s )
H (s)=
a ( s)+ K⋅b (s)=0
+b(s)=0
a ( s)
K
n a(s) polinomunun en büyük derecesi ve m b(s) polinomunun en büyük derecesidir. K sıfıra doğru
yaklaştıkca a(s)=0'dır kapalı çevrim sistemin kutupları H(s)'in kutuplarıdır, benzer şekilde K
sonsuza doğru yaklaştıkca b(s)=0'dır kapalı çevrim sistemin kutupları H(s)'in sıfırlarıdır. Kapalı
çevrim sistem n kutba sahiptir. Bundan dolayı köklerin yer eğrisi yada yer kök eğrisi n kola sahiptir.
Her kol üzerinde kazanç 0'dan büyükdür, kollar dışında kazanç 0'dan küçükdür (bu kısımla
ilgilenmeyiz). Her kol, gerçel eksene göre bir açıyla (çıkış açısı), H(s)'in kutuplarıyla başlar ve,
gerçel eksene göre bir açıyla (varış açısı), H(s) sıfırlarına doğru gider. Eğer H(s)'in kutup sayısı
sıfır sayısından fazla ise H(s) sonsuzda n-m sıfıra sahipdir, bundan dolayı H(s)'in limiti sıfırdır. Bu
durumda yer kök eğrisinin asimptotlarının (sonsuza giden kol) sayısı kutup sayısından sıfır sayısı
26/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
çıkarılarak bulunur. Rlocus() fonksiyonuyla yer kök eğrisi MATLAB'da çizilebilir. Parametre
olarak transfer fonksonuna ait pay ve payda katsayıları yada durum eşitliklerine ait A,B,C,D
matrisleri girilebilir.
Yer kök eğrisi gerçel eksene göre simetrikdir. Yer kök yer eğrilerinin gerçel eksene göre simetrik
olmalarından dolayı varış ve çıkış noktaları ya gerçel eksen üzerinde yada sanal çift halinde s
(konjuge) düzlemi üzerinde bulunurlar. Eğer kök yer eğrisi gerçel eksen üzerinde yer alan iki kutup
arasında yer alıyorsa bu iki kutup arasında en azından 1 çıkış noktası vardır. Benzer şekilde kök yer
eğrisi gerçel eksen üzerinde yer alan iki sıfır arasında yer alıyorsa bu iki kutup arasında en azından
1 varış noktası vardır.
Sanal eksene yakın olan kutuplar (yada kollar) kapalı çevrim dinamik sistemin kararlılığı ve
dinamik davranışı üzerinde, en büyük aşım artacağından ve sönümleme azalacağından dolayı, daha
büyük etkiye sahipdir ve baskın kol olarak adlandırılırlar. Bundan dolayı kutupların konumuna göre
sistem 1. veya 2. dereceden sistem gibi davranabilir.
Bu noktada n. dereceden sistemlere ait tepkileri hatırlamak gereklidir. Birinci dereceden sistemin
basamak tepkisinde birinci terim zorlanmış tepki (kararlı halde) ve ikinci terim doğal tepki (geçici
halde) olarak iki kısımdan oluşmaktadır. Sistem sınırlamaları c(t) üzerinde belirtilir.
K
C (s)
K
−t / τ
τ
G( s)=
=
R ( s)=u (t) için C ( s)=
→ c (t )= K⋅(1−e )⋅u( t)
R( s) 1+ τ⋅s
s⋅( s+1/ τ)
İkinci dereceden sistemin transfer fonksiyonu doğal frekans ve sönümleme parametrelerini
içermektedir. Sistem üzerinde olan tasarım ölçütleri dikkate alındığında aşağıdaki denklemler elde
edilir. Şekil28'de verilen S düzlemi en büyük aşım, yerleşme ve yükselme zamanı sınırlamalarını
karşılamaktadır.
2
C ( s) w n
= 2
s=−ζ⋅w n± j⋅wn⋅√1−ζ 2 kutuplar
R( s) s +2⋅ζ⋅w n⋅s+w 2n
ζ>1, aşırı sönümleme , iki reel ayrık kutup
ζ<1, sönümlenmemiş durum , konjuge kutuplar
ζ=1, kritik sönümleme , aynı yerde iki kutup
1
Basamak tepkisi R( s)= ve 0 başlangıç koşulları
s
ζ
( s+ζ⋅w n)+
⋅wn⋅√ 1−ζ 2
2
2
wn
1
√1−ζ
C ( s)=
C (s )= +
2
2
s
s⋅( s +2⋅ζ⋅w n⋅s+w n )
( s+ζ⋅wn )2+w 2n⋅(1−ζ 2)
1
L−1 → c (t)=1−
⋅e−ζ⋅w ⋅t⋅cos (w n⋅√ 1−ζ 2⋅t−α) , α=arctan (ζ / √ 1−ζ 2)=arccos( ζ)
2
√ 1−ζ
2
wn
wn
2
˙
s⋅C (s)=
L−1 → c˙ (t)=
⋅e−ζ⋅w ⋅t sin(w
n⋅√ 1−ζ ⋅t)
2
2
2
2
( s+ζ⋅w n ) +w n⋅(1−ζ )
√1−ζ
π
T p=
en büyük aşım zamanı ,c (t )' nin zamana göre türevi sıfıra eşitlenerek bulunur
w n⋅√ 1−ζ2
G( s)=
n
n
M p =1+e−ζ⋅π /√ 1−ζ =1+e−π/ tan (α) M p en büyük aşım α=arctan (ζ / √1−ζ 2)=arccos(ζ )
en büyük aşım zamanı , c (t)' de yerine koyulduğunda bulunur. yani c(T p )
−ln(0.02⋅√1−ζ 2)
k
−ζ⋅π/ √1−ζ
%±2 hata için yerleşme zamanı 1.02=1+e
T s=
T s=
k =4
ζ⋅w n
ζ⋅w n
1−0.4167⋅ζ+2.917⋅ζ 2
Yükselme zamanı T r =
0<ζ<1
wn
c (t) ' nin son değerinin 10 değerinden 90 değerine ulaşdığı zamandır
2
2
27/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil28
Örneğin verilen sistem için %5 den az aşım ve 1 s yükselme zamanı, kutuplar taralı bölgede olacak
şekilde K orantısal kazanç değerini değiştirerek elde edilebilir. Zeta sönümleme oranı ve wn doğal
frekansdır.
clc;
num=[1 5];
denum=[1 40 500 1500 0];
[z,p,k]=tf2zpk(num,denum)
rlocus(num,denum);
axis('equal');
axis([-22 3 -18 18])
zeta=0.7;
wn=1.8;
sgrid(zeta,wn)
[kd,poles]=rlocfind(num,denum)
title('Kok Yer Egrisi')
[num2, den2]=cloop((kd)*num,denum)
figure();
step(num2,den2)
>>
z=
0
0
-5
p=
-17.8260 + 5.2171i
-17.8260 - 5.2171i
-4.3480 + 0.0000i
k=
1
Select a point in the graphics window
selected_point =
-3.2500 + 0.9503i
28/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
kd =
593.5379
poles =
-19.3048 + 0.0000i
-14.4944 + 0.0000i
-3.1004 + 0.9967i
-3.1004 - 0.9967i
Şekil29
Şekil30 (1 dereceden sisteme benzer cevap)
29/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil31 (2 dereceden sisteme benzer cevap)
W n⩾
1.8
Tr
ζ⩾
√
ln(M p ) 2
π2
ln(M p ) 2
1+
π2
T r yükselme zamanı , M p % olarak en büyük aşım
Yukarıdaki denklemden, %5 den az aşım ve 1 s yükselme zamanı için, sönümleme oranının 0.7'den
daha büyük olması ve doğal frekansın 1.8 den büyük olması gereklidir. Şekil29'daki 45 derecelik
zeta=0.7 karşılık gelen kesikli iki çizginin arasında zeta>0.7 ve kesikli yarım çember wn=1.8
dışında wn>1.8. Bu iki bölgenin kesişimi dizaynla ilgili sınırlamaları karşılayan kutup değerlerini
vermektedir ve MATLAB'da sgrid(zeta,wn) şeklinde bulunmaktadır. Bu bölgeden istediğiniz değeri
tıklayarak seçebilirsiniz. Şekil30'da birim basamak tepkisine olan cevabın sınırlamaları karşıladığı
gösterilmiştir.
Verilen yer kök eğrisi için -17.8260 + 5.2171i, -17.8260 – 5.2171i, 0 ve -4.3480 açık çevrim
kutuplarından başlayan 4 adet kol vardır. Kollardan biri -5'de olan açık çevrim sıfırında son bulur.
Diğer üç kol K sonsuza giderken (3 adet sıfır burada bulunmaktadır) sonsuza gider.
K=0 iken Açık çevrim kutuplarının toplamı -40 dır. Kutup sayısı sıfır sayısından daha fazla
olduğundan K değişirken kutupların toplamı sabit kalır. (rlocfind() ile seçilen noktaya göre tüm
kutupların toplamının -40 olarak sabit kaldığı görülmektedir). Yine aynı şekilde kutıpların sağ yarı
düzleme geçdiği değerler rlocfind() komutu ile istenilen noktanın üzerine tıklanarak MATLAB'da
bulunabilir. Kolların yönleri
∑ z i =∑ r i z i açık çevrim kutupları r i öz yapısal denklemin kökleri kutupların toplamının sabit
kalmasını
sağlayacak
şekildedir.
Gerçek eksen üzerindeki kolları bulmak için açık çevrim kutup ve sıfırlarına bakılır. Gerçel eksen
30/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
üzerindeki en solda yer alan sıfır yada kutup'un sağında yer alan kutup ve sıfır sayısı tek ise o
bölgeden yer kök eğrisi geçmektedir, eğer çiftse o bölgeden yer kök eğrisi geçmemektedir. Bu
işlem en sağdaki sıfır yada kutup'a kadar devam eder ve bu işleme sanal kutup yada sıfırlar dahil
edilmez. Örneğe baktığımızda -5 deki sıfırın sağında 3 tane kutup bulunmaktadır, bundan dolayı
gerçel eksen üzerindeki -5'in solundaki bu bölgeden yer kök eğrisi geçmektedir. Diğer durumlar
benzer şekilde bulunabilir.
180⋅(2⋅k +1)
α=
yer kök eğrisine ait asimptot açıları k =0,1,2 ,… , n−m−1
n−m
∑ kutupi −∑ sıfır i asimptotların gerçel eksenden geçdiği noktalar
σ=
n−m
G=[(-17.8260-17.8260-4.3480-0)-(-5)]/(4-1)=-35/3=-11.7 noktasında yer kök eğrisine ait
asimptotlar kesişirler. Asimptot açıları 60(2k+1)=60,180,300(-60) derecedir.
Yer kök eğrisinin gerçel eksenden ayrılma noktası 1+KH(s)=0 özyapısal denklem eşitliğinden K
elde edildikten sonra, türevi sıfıra eşitlenerek s değerleri bulunur.
∂ K (σ) ∂ H (σ)/∂ σ
∂ H (σ)
−1
1+K⋅H (s)=0 K (σ)=(
)
=
=0 →
=0 σ ' lar bulunur
2
∂σ
∂σ
H (σ)
H (σ)
[(s+5)/(s^4+40*s^3+500*s^2+1500*s)]'=0
-6.67+2.36i
→
-2.93,
-17.1,
-6.67-2.36i,
Gerçel ekseni ayrılma noktaları -2.93 ve -17.1 dir.
Kutupların yada sıfırların (varış) çıkış açıları, yer kök eğrisi üzerinde bulunan herhangi bir s
noktasına açı koşulu uygulanarak bulunabilir. Test edilen nokta için sıfırların açılarından kutupların
ang (s+5)−ang ( s+17.82−5.21i)−ang ( s+17.82+5.21i)−ang (s)−ang (s+4.34)=180, k =0
s=0 yakınındaki bir nokta test edildiğinde θ0=180 yada−180
s=−4.34 yakınındaki bir nokta test edildiğinde θ−4.34=180−180=0
s=−5 yakınındaki bir nokta test edildiğinde θ−5=180−360=−180 yada 180
s=−17.82+5.21i yakınındaki bir nokta test edildiğinde θ−17.82+5.21i =−74.69
s=−17.82−5.21i yakınındaki bir nokta test edildiğinde θ−17.82−5.21i =74.69
açıları çıkarılarak istenilen kutup'a yada sıfıra ait ayrılama açısı bulunabilir. Eşlenik kutupların
açıları ters işaretlidir.
∑ θ z −∑ θ p =(2⋅k+1)⋅180
i
i
0 kutup'undan sol tarafa doğru K değeri artmaktadır ve çıkış açısı gerçel eksene göre 180 derecedir.
-4.34 kutup'undan sağ tarafa doğru K değeri artmaktadır ve çıkış açısı gerçel eksene göre 0
derecedir. -5 sıfır'ından sol tarafa doğru K değeri artmaktadır ve çıkış açısı gerçel eksene göre 180
derecedir. -17.82+5.21i kutup'undan güneydoğu yönünde K değeri artmaktadır ve çıkış açısı gerçel
eksene göre -74.69 derecedir. -17.82-5.21i kutup'undan kuzeydoğu yönünde K değeri artmaktadır
ve çıkış açısı gerçel eksene göre -74.69 derecedir. Gene bu durumları MATLAB'da yer kök eğrisi
üzerine tıklayarak ve ilgili renkli yer kök eğrisini takip ederek teyid edebilirsiniz.
Kök yer eğrisinin sanal ekseni kesdiği noktaları bulmak için Routh-Hourwitz kararlılık koşulu
uygulanır. 1+KH(s)=0 den kararlılık sınırındaki k değeri ve buradan s'in sanal ekseni kesdiği
noktalar bulunur.
4
3
2
s +40⋅s +500⋅s +(1500+k )⋅s+5⋅K =0
s4
s3
s2
s
1
1
500
5⋅k
40
(1500+K ) 0
18500−K
5⋅K
0
40
8000⋅K
−(1500+K )
0
0
18500−K
5⋅K
0
0
31/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
8000⋅K
2
−(1500+ K ))⋅s=0 0=−K +9000⋅K +27750000 → K=11428,−2428 K>0 olmalı
18500−K
Örneğin tabloya ait üçüncü satır (40x500-(1500+K)x1)/40 şeklinde yazılır.
(
18500−K 2
2
)⋅s +5⋅K =0 K =11428için 0=7072⋅s +2285600 → s=17.9775i ,−17.9775i
40
s satırına ait denklem çözüldüğünde, yer kök eğrisi sanal ekseni K=11428 iken keser, ve s^2 satırına
ait denklem çözüldüğünde, yer kök eğrisi sanal ekseni +17.98i, -17.98i noktalarında keser.
Farklı sayıda gerçel yada sanal kutup ve sıfır olması durumunda, benzer şekilde yer kök eğrisi
bulunabilir. Sisteme bir kutup ilavesi baskın kutup'u sağ yarı düzleme doğru ve sıfır ilavesi baskın
kutup'u sol yarı düzleme doğru hareket ettirir.
Grafiklerden de anlaşılacağı gibi yer kök eğrileri geçici ve durağan hal tepkilerine ait bilgileri
ortaya koyar. Diğer tarafda bode grafikleri sadece durağan tepkisiyle ilgilenmektedir. Bundan dolayı
yer kök eğrileri daha iyi analiz imkanı sağladığını söyleyebiliriz.
(
Routh Hourwitz Kararlılık Testi
Bu test karakteristik denkleme ait köklerin sağ yarı düzlemde yer alıp almadığını belirler ve sanal
eksen üzerinde bulunan ve sağ yarı düzlemde bulunan köklerin sayısını verir. H(s) polinomuna ait
köklerin sol yarı düzlemde bulunabilmesi için polinomdaki tüm katsayılar aynı işaretli olmalıdır ve
hiçbir katsayı sıfır olmamalıdır. Bu yeterli koşul değildir ve kararlılık testi için Routh-Hourwitz testi
uygulanmaktadır.
4
3
2
H (s)=a 4⋅s +a 3⋅s +a 2⋅s +a 1⋅s+a 0
s4
s3
s2
s
1
a4
a3
a ⋅a −a ⋅a
A= 3 2 4 1
a3
A⋅a1 −a 3⋅B
C=
A
C⋅B−a 4⋅0
D=
=B
C
a2
a0
a1
0
a ⋅a −a ⋅0
B= 3 0 4 =a 0 0
a3
0
0
0
0
Eğer ilk sütundaki elemanların tümü aynı işaretiyse köklerin tümü sol yarı düzlemdedir. Eğer ilk
sütundaki elemanların işaretleri değişiyorsa, işaret değişimi kadar sağ yarı düzlemde kök vardır.
Herhangi bir satırın ilk elemanı 0 olması durumunda diğer elemanların sonsuz olaması durumu
ortaya çıkmaktadır. Bu sorunu aşmak için 0 yerine e gibi sembolik bir sayı yazılır ve diğer işlemlere
devam edilir.
Tüm satır sıfır ise sanal eksen üzerinde kök vardır. Bu durumda teste devam edebilmek için ilgili
satırın bir üst satırındaki katsayılarla yardımcı denklem oluşturulur A(s) ve A'(s)=0 işlemlerinden
sonra katsayılar ilgili satıra yazılarak işleme devam edilir.
P ( s)=s 5+4⋅s 4+8⋅s 3+8⋅s 2+7⋅s+4
İşaret değişimi yok, sistem kararlı ve sanal eksen üzerinde iki katlı kök var.
4⋅s2 +4=0 s=± j
32/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
s5
4
s
3
s
s2
s1
s0
1
4
6
4
0
4
2013 Güz Dönemi
8
7
8
4
6
0
4 → 4⋅s 2+4
0
0
4
4
Nyquist Kararlılık Testi ve Grafikleri
Nyquist grafiği, pozitif yada negatif herhangi bir frekansa karşılık G(jw) değeri gerçel ve sanal
olarak x-y düzleminde gösterilerek oluşturulur (polar grafik olarakda düşünülebilir). Bu grafikde w
0 ve sonsuz iken G(jw) değeri ve grafiğin gerçel (Im(G(jw))=0, Re(G(jw))) ve sanal (Re(G(jw))=0,
Im(G(jw))) eksenle kesişimleri önemlidir.
clc;
tau1=1;
tau2=1/10;
num=[1];
denum=conv([tau1*1 1],[tau2*1 1]);
tf(num,denum)
nyquist(num,denum)
Şekil32
Matlab'da sağ tıklayarak grafiğin (-1,0) noktasına zoom yapabilirsiniz yada grid opsiyonunu aktif
hale getirebilirsiniz.
Nyquist kararlılık testi, kapalı çevrim bir sistemin kararlılığını grafiksel olarak gerçel ve sanal eksen
üzerinde, w 0 dan sonsuza artarken (yada -sonsuza) açık çevrim transfer fonksiyonunu G(jw)H(jw)
(-1,0) noktasına karşı inceleyerek ortaya koymaktadır, şekil33 sağdaki grafik bu durumu
33/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
özetlemektedir. (Benzer şekilde açık çevrim transfer fonksiyonunun kararlılığını, G(jw)H(jw) (0,0)
noktasına karşı inceleyerek ortaya koymaktadır, şekil33 soldaki grafik durumu özetlemektedir).
Kararlılık testinde oluşturulan grafiklerde Nyquist kapalı çevresi sağ yarı s düzlemi G(jw)H(jw)
kutuplarının üzerinden geçmeden çevresini dolaşacak şekilde kapsar.
Şekil33
Basitleştirilmiş Nyquist kararlılık testi ω 0’dan ∞’a giderken, açık-döngü frekans tepkisi
G(jω)H(jω) yer eğrisi, -1 noktasını kapasamayan kapalı-döngü sistemler, kararlıdır, -1 noktasını
kapsayan sistemler kararsızdır ve -1 noktasından geçen sistemler marjinal kararlıdır.(Şekil34)
Noktayı kapsamak, noktanın soluna geçmek olarak alınabilir. Bu durum açık döngüsü kararlı
sistemler için geçerlidir. (s düzleminin sağ tarafında kutup'u olmayan açık döngü sistemler için
geçerlidir)
Şekil34
34/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
Açık çevrim G(s)⋅H ( s )için kararlılık N 0 =Z 0− P0 P 0=0 ile
N 0 ; G(s )⋅H ( s) Nyquist grafiğinin(0,0) etrafındaki çevrim sayısı , saat yönünün tersiise pozitif
Z 0 ; Nyquist çevrimiyle çevrelenen G(s )⋅H ( s) sıfırlarının sayısı
P 0 ; Nyquist çevrimiyle çevrelenen G (s)⋅H ( s) kutuplarının sayısı
Kapalı çevrim G ( s)/1+G(s )⋅H ( s)için kararlılık N −1=Z −1−P −1 Z −1=0 ile
N −1 ; G(s)⋅H ( s) Nyquist grafiğinin (−1,0) etrafındaki çevrim sayısı , saat yönünün tersiise pozitif
Z −1 ; Nyquist çevrimiyle çevrelenen 1+G(s )⋅H ( s) sıfırların sayısı
P−1 ; Nyquist çevrimiyle çevrelenen 1+G ( s)⋅H ( s) kutupların sayısı
Açık ve kapalı çevrim kutupları aynıdır P−1= P0
Açık çevrim sistemin G(s)H(s) kararlı olması için, G(s)H(s) Nyquist grafiğinin (0,0) noktasını
çevrim sayısı ile sağ yarı düzlemdeki G(s)H(s) sıfırların sayısına eşit olmalıdır.
N 0=Z 0 olmalıdır.
Kapalı çevrim sistemin G(s)H(s) kararlı olması için, G(s)H(s) Nyquist grafiğinin (-1,0) noktasını
saat yönünde çevrim sayısı ile sağ yarı düzlemdeki kapsanan G(s)H(s) kutuplarının sayısına eşit
olmalıdır.
N −1=−P−1 =−P 0
Kazanç geçiş frekansı |G(jWgm)H(jWgm)|=1 koşulundaki Wgm frekansıdır, ve faz geçiş frekansı
ang(G(jWpm)H(jWpm))=180 dereceye eşit olduğu durumdaki Wpm frekansıdır. Kazanç marjini
Gm=20log(1/|G(jWgm)H(jWgm)|) dB, faz marjini Pm=180+ang(G(jWpm)H(jWpm)).
clc;
num=[1];
denum=conv(conv([1 1],[1 1]),[1 1]);
isstable(tf(num,denum))
nyquist(num,denum)
[Gm,Pm,Wgm,Wpm]=margin(num,denum)
Şekil35
35/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
Doğrusal İkinci Dereceden Düzenleyici Kontrolör (Linear Quadratic Regulator (LQR))
LQR bir dinamik sistemin optimum kontrolü konusunda karşımıza çıkan bir problemdir. Bir
sistemin optimum kontrol için ikinci dereceden bir maliyet fonksiyonuyla tanımlanması ve lineer
diferansiyel denklemlerle ortaya konması, LQ problem olarak adlandırılmıştır. Kontrol teorisinde
temel problemlerden biri olan LQ, geribeslemeli bir sistemi durum değişkenlerini kullanarak ve
sistem sınırlamalarını göz önünde bulundurarak en efektif şekilde ortaya koyan düzenleyici bir
kontrol sistemidir. Maliyet fonksiyonu, durum değişkenleriyle oluşturulan fonksiyonlardan ve
bunların toplamlardan oluşur. İşlem karmaşıklığını önlemek için dizaynı yapan kişi maliyeti azaltan
algoritmaya ihtiyaç duyulan verileri, yani ağırlık katsayılarını atayarak sistemi oluşturmaya
çalışmaktadır. Bu maliyet fonksiyonu sistemde istenilen değerlerin değişimini en aza indirmektedir
(bizim örneğimizde açısal hız). Bunun yanında, dizaynı yapan kişiye düşen ağırlık katsayılarını
değiştirip, bir kaç iterasyon yaparak, sisteme ait tüm sınırlamalar açısından en efektif çözümü
bulmakdır. Bulduğumuz F (geribesleme) için, J maliyet fonksiyonunun minimum olması istenir. Q
ve R ağırlık katsayılarını göstermektedir. Q nxn simetrik pozitif yarıtanımlı (symmetric positive
semidefinite), R mxm simetrik pozitif tanımlı (symmetric positive definite) birer matrisdir.

x˙ = A⋅x+B⋅u ; u=F⋅x ; F geribesleme ; J =∫ [ x T (t)⋅Q⋅x (t)+uT (t)⋅R⋅u( t)]⋅dt ve Q=M T⋅M.
0
Q yukarıda belirtildiği gibi yazılabilir. M pxn p<=n matisdir. Doğal olarak LQR kontrolörün kararlı
(Stabilizable) olması istenir, bunun için (A,B) çiftinin kararlı olması gereklidir. (A,M) çifti de tespit
edilebilir (detectable) olmalıdır. ARE (Algebric Ricatti Equation) çözümü W simetrik pozitif
yarıtanımlı (symmetric positive definite) bir matrisdir. W bulunduğunda F de bulunmuş olur. (Daha
fazla ayrıntılı matmatiksel bilgi ve altyapı için başka kaynaklara bakınız.)
−1
T
T
−1
T
F =−R ⋅B ⋅W ; W⋅A+ A ⋅W +Q−W⋅B⋅R ⋅R ⋅W =0( ARE ) ;
DC motor kontrolünde kullanılan maliyet fonksiyonunu incelemek burada yararlı olacakdır. Bu
fonksiyon uygulanan torka karşı açısal hızdaki değişimi (disturbance rejection)minimuma
indirmektedir (integral hatası olarak da düşünülebilir). Dikkat edileceği üzere akım i(t) ve açısal hız
w(t) katsayıları Va(t) ait olanlardan dan daha büyükdür. Daha büyük katsayılar daha iyi sonuç
verecekdir. Lqry() fonksiyonu bize optimum geribesleme kazanç değerlerini vermektedir. Sizde
değişik maliyet fonksiyonlarıyla sistemler elde etmek için değişik katsayı matrisleri uygulayınız.

w( t)
2
2
2
J =∫ [20⋅i (t)+w (t)+0.01⋅V A (t)]⋅dt V A (t )=K 1⋅w( t)+K 2⋅
+K 3⋅i( t)
s
0
[
]
[]
Q= 1 0 ; R=[ 0.01 ] x= w ; u=[ V A ] ;
0 20
i
Simulink Aracılığıyla Doğru Akım Motor Modelleme ve Simülasyon
Doğru akım motorunu ait Matlab'da yapılan modelleme ve simülasyon aynı şekilde Simulink
aracılığıyla da yapılabilir. Simulink Library Browser'ı açmak için Şekil15'de görünen Matlab
ekranında, Simulink Library kısayoluna tıklayınız. Aynı şekilde, Matlab Command Line kısmında
>>simulink komutunu yazılınca Simulink açılır. Açılan pencerede File -> New seçerek kendi
modelinizi oluşturmak için boş bir çalışma sayfası açabilirsiniz. Şekil36'de görünen Simulink
Library Browser aracılığıyla istediğiniz model bloğunu seçerek çalışma sayfanıza sürükleyiniz.
Daha sonra seçilen modellere ait giriş çıkış pinleri birbirine bağlayınız ve bloklara ait parametreleri
atayınız. Bağlantıları yaparken dikkat edilmesi gereken bir husus modellerin bazıları giriş , bazıları
çıkış, ve diğer kısmıda hem giriş hem çıkış özelliğine sahip olmasıdır. Bundan sonra
oluşturduğunuz çalışmanın simülasyonunu yapabilirsiniz. Oluşturduğunuz modelin üzerine
36/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
tıklayarak alt modelleri görebilirsiniz.
2013 Güz Dönemi
Şekil36'da bir doğru akım motoruna ait oluşturulan dizayn ve Library browser gösterilmiştir.
Simülasyonu çalıştırmak için modellere atanan değişkenlere ait değerler View-> Model Explorer ->
Base Workspace den ayarlanabilir, şekil37'de değişkenlere atanan değerler gösterilmiştir.
Simulation-> Configuration Parameters kısmından uzun süre beklememek için simülasyon süresi
stop time 0.2s ve solver ode15 ayarlanabilir (şekil38). Simulink modeline ait denklemler aşağıda
verilmiştir. Simülasyonu yapmadan önce blok diyagramın girişine step, çıkışına scope, şekil39'daki
gibi bağlanır ve step için step time 0, initial value 0 ve final value 1'e ayarlanır. Run tuşuna
basılarak simülasyon çalıştırılır ve scope üzerinde tıklanarak sistemin tepkisi görülebilir, daha net
görüntü için autoscale tuşuna basınız. Şekil40'da sistemin tepkisi görülmektedir, bununla birlikte
Simulink Profile Summary Report'da gözükmektedir. Ayrıca bağlantıların üzerine çift tıklayarak
çalışmanızı anlaşılabilir kılmak açısından isimlendirme yapabilirsiniz.
Şekil36
37/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
Şekil37
Şekil38
38/41.
2013 Güz Dönemi
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
2013 Güz Dönemi
Şekil39
Şekil40
Tüm bunlara ek olarak Matlab'da kodladığınız bir fonksiyonu Simulink'e aktarıp bir model halinde
ihtiyaç duyduğunuz yerlerde kullanabilirsiniz. Bunun için yazdığınız kodu embedded function
olarak Matlab'da compile etmeniz gerekmektedir (#eml başlangıcında olmalıdır). Bu kodu Simulink
ortamında kullanabilmek için Embedded Matlab Function modelini çalışmanıza eklemeniz
39/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
Hazırlayan: Kazım EVECAN
gerekmektedir.
2013 Güz Dönemi
Sorular
1- Matlab'da simülasyonu yapılan doğru akım motoruna ait modellemeleri ve simülasyonu, transfer
fonksiyonunu ve toplayıcıyı kullanarak Simulink'de yapınız.
2- İki eksenli hareket edebilen bir robot kola ait kontrol sistemini teorik olarak ortaya koyunuz,
blok diyagramında gösteriniz ve Simulink'de simülasyonunu yapınız.
3- Girişi 0-5V arasında 8 bit analogdan dijitale çeviren dönüştürücü olan ve çıkışında istenilen
periyotta ve görev saykılıyla PWM (Pulse Width Modulation) sinyali üreten sistemi modelleyiniz ve
Simulink'de rampa ve testere fonksiyonları için simülasyonunu yapınız.
4- Tek fazlı asenkron motora ait açısal hız ve giriş gerilimi arasındaki transfer fonksiyonunu
bulunuz. Doğru akım motoru için yapılan modellemenin ve simülasyonun benzerini tek fazlı bir
asenkron motor için yapınız. Modelin Bode grafiğini oluşturup, bu grafiği yorumlayarak motor hız
kontrolüne ait alternatif yöntemler öneriniz.
Filtre Devreleri ve Özel Kontrolörler
Aktif eleman Opamp ile ve pasif elemanlarla P, I, PD, PI, PID, faz ilerlemeli, faz gerilemeli
kontrolör tasarlayınız. Pasif elemanlarla ve aktif eleman Opamp ile alçak geçiren, yüksek geçiren,
band geçiren, ve çentik filtreleri tasarlayınız. Devre şekli, birinci veya ikinci dereceden denklemler
ve niçin kullanıldıkları bu kontrolörleri ortaya koyabilmek açısından yeterlidir. (güncellenecekdir)
Ek Okuma Çalışmaları
Genel olarak konuların daha iyi anlaşılabilmesi açısından, aşağıda verilen akademik yayınlardan
birini yada benzerini okuyunuz.
1- SERVO SİSTEMLERİN MATLAB ÜZERİNDEN GÖMÜLÜ SİSTEMLER ile PID
KONTROLÜ. Aydın GÜLLÜ*, Mustafa ARDA*, Hilmi KUŞÇU***Trakya Üniversitesi, İpsala
MYO, Elektronik ve Otomasyon Bölümü, Edirne**Trakya Üniversitesi, Mühendislik-Mimarlık
Fakültesi, Makina Mühendisliği Bölümü, Edirne
2- Güneş Pili Modülünün Matlab/Simulink ile Modellenmesi ve Simülasyonu Modeling and
Simulation of Solar Cell Module in Matlab/Simulink.Mustafa Ergin Şahin, Halil İbrahim Okumuş
Fizik Bölümü, Fen Edebiyat Fakültesi RTE Üniversitesi, RİZE [email protected]
Elektrik Elektronik Mühendisliği Bölümü, KTÜ Mühendislik Mimarlık Fakültesi, TRABZON
MATLAB'a alternatif olarak free-share Octave ve Scilab programları kullanılabilir.
Yararlanılan ve faydalı olabilecek linkler:
[1] http://www.mathworks.com/help/control/examples/dc-motor-control.html
[2]
http://ctms.engin.umich.edu/CTMS/index.php?
example=MotorSpeed&section=SimulinkModeling
40/41.
Dumlupınar Üniversitesi Kontrol Sistemlerinin Temelleri
2013 Güz Dönemi
Hazırlayan: Kazım EVECAN
[3]
http://home.hit.no/~hansha/documents/matlab/training/Introduction%20to
%20Simulink/Introduction%20to%20Simulink.pdf
[4] http://www.inf.fu-berlin.de/lehre/SS05/Robotik/motors.pdf
[5] http://www.yildiz.edu.tr/~omurlu/CF/OKI/6.pdf
[6] http://www.emo.org.tr/ekler/a8f19b3900fcc6c_ek.pdf
41/41.