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§ion=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.
© Copyright 2024 Paperzz