Kontrol Teorisi ve MATLAB

Başlatan CoşkuN, 23 Ocak 2006, 20:55:25

CoşkuN

Bu başlık altında da MATLAB'le kontrol teorisi uygulamalarını tartışabiliriz.Açılışı yapıyorum:

Tipik durum denklemi gösteriminde
A,B,C,D denklemlerimiz mevcut.Bu sistemi MATLAB'e tanıtabilmek için
ss komutunu kullanıyoruz:
A,B,C,D matrisleri önceden MATLAB'e girilmiş olduğunu varsayarak:
sistem=ss(A,B,C,D) komutunu vererek MATLAB'de sistem adında bir continous time model oluşturmuş olduk.
sistem_tr=tf(sistem) komutunu verdiğimizde durum denklemi gösterimini transfer fonksiyonu gösterimine dönüştürdük.
Bunu sıfır-kutup-kazanç biçiminde göstermek için
sistem_zpk=zpk(sistem) komutunu kullanıyoruz.

MATLAB'in marifetleri saymakla biter mi,bitmez...

avignon

iki blok biribirine seri,paralel ve geribesleme şeklinde bağlı iken transfer fonksiyonunun bulunması
[num1]=[0 2 1];              %      s+1
[den1]=[1 1 2];               %      s^2 +s+2
[num2]=[1 2];                 %      s+2
[den2]=[2 1 5];               %      2s^2 +s+5
[num3,den3]=series(num1,den1,num2,den2)        % Birbirine seri 
[num3,den3]=parallel(num1,den1,num2,den2]       %Birbirine paralel
[num3,den3]=feedback(num1,den1,num2,den2]    %G2 bloğu geri besleme halindeyken

avignon

Transfer fonksiyonundan Durum denklemlerinin yazılması. Durum denklemlerini A,B,C,D  matrisleri şeklinde verir. Normalde kontrol sistemlerimde kullanımı bu şekildedir. Transfer Fonksiyonundan durum denklemlerine geçiş için bir çok çözüm var MATLAB'ta bunu çözdürürseniz bu çözümlerden bir tanesini alırsınız. fakat manuel olarak çözmeye kalkarsanızki bunu belli bir metodla yaparsınız mesela gözlenebilirlik formu veya kontroledilebilirlik formunu kullanarak farklı bir çözüm kümesi bulabilirsiniz. Biz şimdi transfer fonksiyonu belli olan bir sistemin durum denkleminin çömünü MATLAB ile yapacağız.

num=[0 1 2 0];
den=[1 4 7 32];
[A,B,C,D]=tf2ss(num,den)                 %Bu komuttan sonra Matris çözümlerini alt alta sıralar

avignon

Durum denklemlerini bildiğiniz sistemin transfer fonksiyonunu aşağıdaki şekilde bulabiliriz. Burda A,B,C,D matrislerini tek tek girerek o sisteme uygun transfer fonksiyonunu bize verir.

A=[0 1 0;0 0 1;-2 -6 -45];
B=[0;18;-56];
C=[1 2 0];
D=[0];
[num,den]=ss2tf(A,B,C,D)    %BU komuttan sonra transfer fonksiyonun pay (num) ve payda (den) değerleri ekrana yansır.

avignon

State(durum) denklemlerini bildiğimiz bir sistemin step response grafiğini çizdirmek.

A=[-1 -1;6.5 0];
B=[1 1;1 0];
C=[1 0;0 1];
D=[0 0;0 0];
step(A,B,C,D)

avignon

transfer fonksiyonu bilinen bir sistemin transient(geçici) state için birim basamak tepkisinin grafiğinin çizlmesi. Burda çizilen grafikte mouse grafiğin üzerinde gezdirirsek istediğimiz yerdeki damping ratio(sönüm oranı) ve nature frequency(doğal frekans) değerini bulabiliriz. Ayrıca grafiğe bakarakta sistemdeki transient state şekline karar verebiliriz. Mesela az sönümlü, sönümsüz... gibi durumlaru tespit ederiz. Ayrıca setting time(yerleşme zamanı), peak time(maksimum değer için geçmesi gereken süre), overshoot(aşınım) gibi değerler tespit edilir.

num=[0 0 16];
den=[1 4 16];
step(num,den)

avignon

State denklemleri bilinen sistemin Unit-impulse response(birim darbe tepkisi) grafiğinin çizilmesi

A=[0 2;-1 -2];
B=[0,1];
C=[1 1];
D=[0];
impulse(A,B,C,D);
grid;                             %isteğe bağlıdır grafiğe ızgara koymak için
title('Birim-Darbe Tepkisi')    %Grafiğin üstüne () içindeki yazıyı yazar Genellikle grafiği adlandırmak için.