24 Ağustos 2008 Pazar

Matlab Control System Toolbox ve Komutları

Matlab, mühendislik alanında karşılaşılan matematik problemlerinin çözümünde, analizinde ve bu hesapalamalara yönelik uygulamaların hazırlanmasında kullanılmak üzere geliştirilmiş bir bilgisayar programıdır.Açılımı Matrix Laboratory olan Matlab, her alan için özel olarak geliştirilmiş toolbox adı verilen paket kütüphaneleri sayesinde çeşitli mühendislik dalları için vazgeçilmez bir program haline gelmiştir. Bu toolboxlar sayısal işaret işleme, test ve ölçüm, finansal modelleme ve analiz, haberleşme gibi çeşitli alanlarda kullanılmaktadır.

Matlab toolboxlarından biri olan Control System Toolbox ise geniş kütüphanesi ve kullanışları fonksiyonları ile daha çok kontrol mühendisleri ve otomatik kontrol ile ilgilenenler tarafından kullanılmaktadır. Control System Toolbox ile transfer fonksiyonu, durum-uzay modeli gibi model gösterim biçimleri arasında geçişler yapılabilir ve istenilen model gösterim biçimi üzerinde sistem ile ilgili çeşitli analizler yapılabilmektedir. Aşağıda sizler için kontrol mühendisliği bölüm derslerimde sıklıkla kullandığım bazı komutların açıklamalarını yazdım. Umarım ilgilenen arkadaşlar için faydalı bir kaynak olur.

Control System Toolbox Komutları

bode: Bode eğrisinin çiziminde kullanılır. Kullanış biçimi

[genlik, faz,w]=bode(pay,payda,w); ya da [genlik,faz,w]=bode (a,b,c,d,w);

şeklindedir.

connect: Blog diyagram bağlantıları için durum uzay modeli oluşturur. Kullanış biçimi

sysc=connect(sys,q,inputs,outputs) ;

şeklindedir. Burada

sys=Giriş argümanları

q =Bloklar arasındaki karşılıklı bağlantıyı sağlayan matristir.

conv: Aslında bu fonksiyon control system toolbox içinde yer almamaktadır ama matlabta transfer fonksiyonları tanımlarken çok sık kullandığım için buraya yazmak istedim. İki polinomun çarpımını bulmaya yarar. Eğer elimizde ikiden fazla polinom varsa ikili gruplar halinde çarpıp istediğimiz sonuca ulaşabiliriz. Kullanış biçimi

C=conv(a,b);

feedback: Geri beslemeli bir sistemin transfer fonkiyonunu bulmak için kullanılır. Kullanış biçimi

sys=feedback(sistem1,sistem2,işaret)

şeklindedir. Buradaki sistem1 ve sistem2 matlabta tf, ss ya da zpk gibi fonksiyonlardan biri kullanıralarak oluştururmuş LTI modellerdir. İşaret, +1 olduğunda pozitif geri besleme, -1 olduğunda ise negatif geri besleme olarak hesaplanır. Eğer işaret belirtilmezse varsayılan olarak fonksiyon -1 alır ve negatif geri beslemeyi hesaplar.

impulse: Matlabta tanımlı olan bir sistemin birim darbe (impulse) cevabını bulmada kullanılır. Fonksiyonun kullanımı sonucu yeni bir pencerede sistemin darbe cevabı çizilir.

margin: Kazanç payı ve faz payının bulunmasında kullanılır. Kullanış biçimi;

[Gm, Pm, Wcp, Wcg]=margin (genlik, faz, w), [Gm, Pm, Wcp, Wcg]=margin (pay,payda) ve [Gm Pm Wcp Wcg ]=margin (a,b,c,d)

şeklindedir. Burada

Gm=Kazanç payı

Pm=Faz payı

Wcp=Faz geçiş frekansı

Wcg=Kazanç geçiş frekansıdır.

nyquist: Matlab komut satırında nyquist fonksiyonunun çalıştırılması ile frekans değişimlerine karşılık gelen modül ve faz açısı değişimlerinin eğrisini veren Nyquist diyagramı elde edilir. Nyquist eğrisi açık çevrim transfer fonksiyonu için çizilir ve genellikle kararlılık çözümlemesi için kullanılır. Kullanış biçimi;

nyquist(pay,payda);

pzmap: Transfer fonksiyonu verilen bir sistemin kutup ve sıfırlarının s düzleminde gösterilmesini sağlar. Kullanış biçimi;

[p,z]=pzmap(pay,payda)

residue: Bu fonksiyon da “conv” fonksiyonu gibi Control System Toolbox içerisinde yer alan bir fonksiyon değil ama transfer fonksiyonu ile yaptığım işlemlerde ara sıra kullandığım için buraya yazmayı düşündüm. Asıl kullanımı kesirli polinomları kısmi kesirlere ayırmak olmakla beraber transfer fonksiyonlarının kısmi kesirlere ayrılmasında da kullanılabilir. Kullanış biçimi;

[r,p,k]=residue(pay,payda)

rlocus: Kök-yer eğrisini çizmek için kullanılır. Kullanış biçimi;

[r,k]=rlocus(pay,payda) ya da [r,k]=rlocus(a,b,c,d)

şeklindedir. Burada r, k matrisinde tanımlı K kazançlarına karşılık gelen karmaşık kökleri içeren matristir.

rlocfind: Kök-yer eğrisi çizildikten sonra ekranda seçilen herhangi bir noktadaki kutup ve kazanç değerlerinin elde edilmesini sağlar. Fonksiyonun kullanımı sonucu kök yer eğrisi üzerinde imleç “+” şeklini alır. Bu “+” işareti ile kök yer eğrisi üzerinde herhangi bir noktaya tıklanması ile o noktadaki kazanç değeri ile o noktaya karşılık gelen tüm kutup değerlerini hesaplar. Kullanış biçimi;

[k,kutup]=rlocfind(pay,payda); ya da [r,kutup]=rlocfind(a,b,c,d);

sisotool: SISO Design Tool, tek giriş çıkışlı sistemlerde kazanç değerinin daha kolay bir şekilde kök-yer eğrisi, bode diyagramı ya da niyquist eğrisi üzerinden ayarlamaya yarayan bir Control System Toolbox aracıdır. Fonksiyon Matlab komut satırında parametresiz olarak çalıştırıldığında sadece SISO Design Tool açılır ve sistem katsayıları sonradan ayarlanır. Eğer “sisotool” fonksiyonuna sistem değerleri parametre olarak girilirse SISO Design Tool açıldığında sistem katsayılarıda ayarlanmış olur. Kullanış biçimi;

sisotool(pay, payda);

ss2zp: Durum uzayı denklemlerinden sıfır kutup biçimi transfer fonksiyonuna geçişi sağlar. Kullanış biçimi;

[z,p,k]=ss2zp(a,b,c,d);

step: Control System Toolbox fonksiyonları arasından en sık kullandığım fonksiyonlardan biridir. Fonksiyonun çalıştırılması ile girişe uygulanan birim basamak sonucu sistem yanıtını çizdirir. Ayrıca açılan pencerede sağ tıklama ile açılacak olan menünün “characteristics” sekmesi ile çizilen sistem cevabı üzerinden “yükselme zamanı”, “yerleşme cevabı” gibi sistemin zaman kriteri bilgileri elde edilebilir. Kullanış biçimi;

step(pay, payda); ya da step(a,b,c,d);

tf2ss: Polinom türü transfer fonksiyonu denkleminden durum uzayı denklem biçimine geçişi sağlar. Kullanış biçimi;

[a,b,c,d]=tf2ss(pay, payda);

tf2zp: Polinom türü transfer fonksiyonu denkleminden sıfır-kutup kazanç biçimine geçişi sağlar. Kullanış biçimi;

[z,p,k]=tf2zp(pay, payda);

zp2tf: Sıfır kutup kazanç biçiminden polinom biçimi transfer fonksiyonuna geçişi sağlar. Kullanış biçimi;

[pay, payda]=zp2tf(z,p,k);

zp2ss fonksiyonu: Sıfır kutup kazanç biçiminden durum uzayı denklemlerine dönüşümü sağlar. Kullanış biçimi;

[a,b,c,d]= zp2ss(z,p,k);

Tabii ki tüm Control System Toolbox fonksiyonları bu kadar değil ama başlangıç aşamasında kontrol sistemleri ile ilgilenen biri için bu kadarının yeterli olacağını düşünüyorum. Control System Toolbox’ta yer alan tüm fonksiyonlara Matlab komut satırına “help control” yazarak ulaşabilirsiniz. Ayrıca fonksiyonların kullanışlarını temel biçimde yazdım. Fonksiyonlar hakkında daha ayrıntılı bilgiye ve eğer varsa diğer kullanış biçimlerine “help fonksiyon adı” ile ulaşabilirsiniz. unk