62
  H a z i rla ya nla r Ars.Gör.Tolga Ensari & Ögr.Gör.Koray Özpolat Istanbul Üniversitesi, Bilgisayar Mühendisligi Bölümü 2002- 2003 Güz Yariyili, Ekim 2002  

Matlab KULLANIM KLAVUZU

Embed Size (px)

DESCRIPTION

Matlab KULLANIM KLAVUZU

Citation preview

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    1/62

    Hazirlayanlar

    Ars.Gr.Tolga Ensari & gr.Gr.Koray zpolatIstanbul niversitesi, Bilgisayar Mhendisligi Blm

    2002-2003 Gz Yariyili, Ekim 2002

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    2/62

    1

    IINDEKILER

    BLM 1 : MATLAB Kullanimi ve Matris Islemleri

    BLM 2 : Grafik ve Egri izimleri

    BLM 3 : MATLAB ile Programlama

    BLM 4 : Kontrol Sistemlerinde Zaman-Frekans Analizi

    EK (Tablo) :MATLAB Komutlari ve Matris FonksiyonlariTablosu

    NOT: MATLAB Kullanim Kilavuzu nda ilk 3 blm genel kullanimlaalakali bilgiler iermektedir. Son blm ise Bilgisayar Destekli KontrolSistemleri dersi ierigine gre hazirlanmistir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    3/62

    2

    BLM 1 : MATLAB KULLANIMI ve MATRIS ISLEMLERI

    Matlab programi ( MATrix LABoratory 'nin ilk harfleri alinarak

    isimlendirilmistir.) mhendislik uygulamalarinin, hesaplamalarinin vesimlasyonlarinin ogunun gereklestirildigi matris ve matematik tabanli kompleks birprogramdir. Her trl grafiksel sonular istenilen tarzda alinabildigi iin kullanimalani ok genistir. Ayrica MATLAB versiyonlarindan en az 6.0 ve zeri olanlarininkullanilmasi gncellik aisindan daha yararli olacaktir.

    Bu blmde programi kullanmaya baslamak iin giris komutlari, matematikselfonksiyonlar ve matris operatrleri anlatilacaktir. Ayrica kilavuzun en son kisminda daen ok kullanilan matris komutlari ve fonksiyonlari tablo halinde verilmistir.

    help fonksiyon ismi

    komutu yazildiginda yardim istenilen fonksiyon hakkinda detayli bilgiyeulasilabilmektedir.

    help help

    yazildiginda ise on-line olarak yardim kilavuzunun nasil kullanilacagi hakkindabilgilere ulasilabilmektedir.

    -- Matris Operatrleri :

    Asagida verilen simgeler matris islemlerinde kullanilmaktadir:

    + Toplama- ikarma* arpma^ Kuvvet alma Konjge transpozunu alma

    -- Mantik ve Iliski Operatrleri :

    < Kk & Ve Byk ~ Degil~= Esit degil

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    4/62

    3

    -- Baslangi olarak komut satirina :

    date

    yazilirsa program tarafindan geerli olan tarih alinacaktir.Yani :

    ans=

    30-Oct-2002

    -- MATLAB bir islemin sonucunu ans= .... seklinde gsterir. ( ans = answer = cevap)

    -- MATLAB programindan ikmak iin ise exit veya quit yazmak yeterli olacaktir.

    -- En son yazilan komutlarin hepsine st ve alt yn tuslarina dokunarak kolay bir

    sekilde ulasilabilir.

    -- En son tanimlanan herhangi bir x degeri iin yapilan islemlerden sonra bu xdegeri komut satirina yazilip enter tusuna basilirsa daha nce neye karsilik olaraktanimlandigi ekrana yazilacaktir.

    -- nx1 veya 1xn boyutunda vektr tanimlamak iin :

    x=[1 2 3 -4 -5] veya

    X=[1,2,3,-4,-5] yazilmalidir.

    Yukaridaki iki yazim biiminden okuma kolayligi olmasi iin ilk yazilan tipkullanilacaktir.

    -- Tanimlanan bu satir vektrn stun vektrne dnstrmek iin :

    y=x yazilirsa ekranda grlen deger asagidaki gibi olacaktir:

    y=

    12

    3-4-5

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    5/62

    4

    -- Matris tanimlamak iin asagidaki A matrisi verilmis olsun :

    1.2 10 15A = 3 5.5 2

    4 6.8 7

    Bu matrisi MATLABe tanitmak iin su sekilde yazilmalidir :

    A = [1.2 10 15 ; 3 5.5 2 ; 4 6.8 7]

    Yani her satirin sonunun neresi oldugunu konulan noktali virgl isareti temsiletmektedir.

    -- rnek olarak asagidaki B matrisini tanitmak iin :

    1 e-0.02 B =

    v2 3

    B = [1 exp(-0.02); sqrt(2) 3] seklinde yazilmalidir.

    Ekranda ise su sekilde gzkecektir:

    B = 1.0000 0.98021.4142 3.0000

    -- Apostrofi isareti () matrisin konjge transpozesinin alinmasina yarar. Eger matrisreel bir matris ise basit olarak transpoze alim islemi olarak da tanimlanabilir..

    Yeni bir A matrisi tanimlayalim :

    A = [1 2 3 ; 4 5 6 ; 7 8 9]

    Ekranda grlecek matris su sekilde olacaktir :

    A =1 2 34 5 6

    7 8 9

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    6/62

    5

    Bu matrisin transpozesini almak iin :

    C = A yazilirsa ekranda grlecek transpoze degeri :

    C =

    1 4 72 5 83 6 9

    -- Kompleks sayilarin girilmesi iin ise i2=-1 denkleminin kk i veya j olaraktanimlanir.

    rnek olarak 1+jv3 degerini tanitmak iin :

    X = 1+sqrt(3)*i veya

    X = 1+sqrt(3)*j olarak yazilmalidir.

    Bu kompleks sayi stel formatta da yazilabilmektedir :

    1+jv3 = 2 exp[(? /3)*j]

    Bu durumda komut satirina asagidaki ifade yazilacaltir :

    x = 2 exp[pi/3)*j]

    i ve j daha nceden degisken olarak kullanilmissa tanimlama iin ii ve jjkullanilacaktir.Yani :

    ii = sqrt(-1)jj = sqrt(-1)

    Dolayisiyla asagidaki yazim da mmkn olmaktadir :

    X = 1+sqrt(3)*ii

    X = 1+sqrt(3)*jj

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    7/62

    6

    -- Kompleks matris tanimlamak iin asagidaki X matrisi verilmis olsun:

    1 jX =

    -j5 2

    Komut satirina ise su sekilde girilecektir :

    X = [1 j ; -j5 2]

    Bu durumda ekranda grlecek deger :

    X =

    1.0000+0 0+1.0000i

    0-5.0000i 2.0000+0

    Y = X komutu yazilirsa :

    Y =1.0000+0 0+5.0000i

    0-1.0000i 2.0000+0

    iletisi ekranda okunacaktir.

    Daha nce de belirtildigi gibi yukaridaki islem konjge transpoze olarakalgilanmaktadir. Eger sadece transpoze alinacaksa (konjgesiz) komut su sekildeyazilmalidir :

    Y. veya conj(Y)

    Bu durumda ekranda gzkecek degerler :

    ans =

    1.0000+0 0-1.0000i0+5.0000i 2.0000+0

    -- Toplama ve ikarma islemlerinin yapilmasi iin asagidaki M ve N matrisleriverilmis olsun :

    2 3 1 0M = 4 5 N = 2 3

    6 7 0 4

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    8/62

    7

    Bu degerleri ekrana girmek iin:

    M = [2 3 ; 4 5 ; 6 7]

    M = 2 34 5

    6 7

    N = [1 0 ; 2 3 ; 0 4]

    M =1 02 3

    0 4

    Toplama islemi iin:

    C = M+N

    C =3 36 8

    6 11

    Eger x vektr su asagidaki gibi verilirse :

    5X = 4

    6

    Bu vektr su sekilde tanitmak gerekir :

    X = [5 ; 4 ; 6]

    rnegin T = X-1 gibi islemi gereklestirmek iin :

    T = X-1T =

    43

    5

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    9/62

    8

    -- Matris arpimi daha nce de belirtildigi gibi * arpma operatryle yapilmaktadir.Asagidaki rnek incelenirse arpmanin da tanimi geregi arpilan matrislerinboyutlarinin uyusmasi gerekmektedir. Aksi takdirde arpma islemi yapilmayacak vehata mesaji verilecektir.

    x = [1 ; 2 ; 3]; y = [4 ; 5 ; 6]; A = [1 1 2 ; 3 4 0 ; 1 2 5]

    x*y

    ans = 32

    x*y

    ans = 4 5 6

    8 10 1212 15 18

    b = A*x

    b =9

    1120

    Bunlarin disinda matris bir skaler degerle de arpilabilir :

    5*A

    ans =

    5 5 1015 20 0

    5 10 25

    -- Matris ss ( expm(A) ) nxn matrise uygulanir.Matematiksel tanimi ise susekildedir:

    expm(A) = I + A + A2/2! + A3/3! + ...

    Eger A kompleks bir matris ise abs(A) degeri de kompleks modl degerler zerindenhesaplanacaktir.Yine matematiksel ifadesine bakacak olursak :

    abs(A) = sqrt(real(A).^2 + imag(A).^2)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    10/62

    9

    angle(A) ise faz ailarini radyan cinsinden A kompleks matrisi iinhesaplamaktadir. Burada tanim degerleri ? ve + ? arasinda kabul edilmektedir.

    Sonu olarak verilen bir K matrisi iin asagidaki uygulama incelenebilir :

    A = [2+2*i 1+3*i ; 4+5*i 6-i];

    abs(A)

    ans =2.8284 3.1623

    6.4031 6.0828

    angle(A)

    ans =0.7854 1.24900.8961 -0.1651

    -- Kompleks bir sayinin modl ve faz aisini bulmak iin :

    z = x + iy = reiT

    r = abs(z)

    theta = angle(z)z = r*exp(i*theta)

    -- Bir vektrn elemanlarinin teker teker karesinin alinmasi islemi su sekildeyapilmaktadir :

    x = [1 2 3];x. 2

    ans=

    1 4 9

    Eger kompleks sayilar mevcut ise :

    y = [2+5*i 3+4*i 1-i]y. 2

    ans =

    -21.0000+20.0000i -7.0000+24.0000i 0-2.0000i

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    11/62

    10

    2x2 bir kare matris olursa yine ayni sekilde :

    A = [1 2 ; 3 4];

    A. 2

    ans =1 4

    9 16

    -- Eleman elemana arpma islemi iin arpma operatrnn nne bir nokta isareti (.)konmaktadir :

    x = [1 2 3], y = [4 5 6]

    z = [x.y]z = [4 10 18]

    Bir rnek daha verilirse :

    1 2 3 4 5 6A = B =

    1 9 8 7 6 5

    C = A.*B

    C =4 10 187 54 40

    -- Bir matrisin tm elemanlarinin tek tek karesini almak iin :

    A=[ 1 2 3 4 ]A.^2

    ans =

    1 4 9 16

    -- Eleman elemana blme iin ise :

    u = x./y

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    12/62

    11

    u =

    0.2500 0.4000 0.40000.1429 1.5000 1.6000

    -- Bir matrisin tersini bulmak iin inv(A) komutu kullanilir :

    A = [0 1 0;0 0 1;-6 -11 -6];inv(A)

    ans =-1.8333 -1.0000 -0.16671.0000 0 00 1.0000 0

    -- esitli komutlar ve durumlar tek bir sirada virgl (,) veya noktali virgl ile (;)ayrilarak yazilabilir.

    -- ikis formatini istedigimiz uzunlukta elde edebiliriz. Eger matris elemanlari tamsayiise bu durum sonuta bir degisiklik yapmayacaktir. Bunun iin asagidaki komutlarikullanmak gerekmektedir :

    format shortformat long

    x = [1/3 0.00002];x

    x =0.3333 0.0000

    format short; x

    x =0.3333 0.0000

    format long; x

    x =0.3333333333333333 0.00002000000000000

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    13/62

    12

    -- 1den 5e kadar sayilari 0.5lik araliklarla yazdirmak istersek iki noktayi (:)kullanmak yeterli olacaktir :

    t =1 2 3 4 5

    t = 1:0.5:3

    t =1.0000 1.50000 2.0000 2.50000 3.0000

    Dzgn azalan biimde yazdirirsak :

    t = 5:-1:2

    t = 5 4 3 2

    -- Bir matrisin i. satirini veya j. stununu grntlemek iin asagida tanimlanan Amatrisini komutlariyla inceleyelim :

    Asagidaki A matrisinin 2. satiri grntlemek iin : A(i , :)

    A = [0 1 0;0 0 1;-6 -11 -6]

    A(2 , :)

    ans =0 0 1

    A matrisinin 3. stununu grntlemek iin :

    A(: , 3)

    ans =0

    1-6

    -- Bir matrisin (i,j) ninci elemanini bulmak iin :

    k = A(3,3)

    k = -6

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    14/62

    13

    -- Bir matrisin boyutlarini grenmek iin size(A) komutu, rankini bulmak iin rank(A)kullanilir.

    A=

    2 3 25 4 12 6 8

    size(A)

    ans =3 3

    rank(A)

    ans =3

    -- Bir matrisin determinantini bulmak iin det(A) komutu kullanilir.

    A=

    2 3 25 4 1

    2 6 8

    det(A)

    ans =-18

    -- Bir matrisin normunu bulmak iin ise norm(x) yazmak gerekmektedir. Matematikselnorm ifadesini verecek olursak :

    norm(x) = sum(abs(x).^2)^0.5

    x = [2 3 6]norm(x)

    ans =

    7

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    15/62

    14

    -- Bir matrisin zdegerlerini bulmak iin eig(A) komutu kullanilir :

    A = [0 1 ; -1 0]

    eig(A)

    ans =0+1.0000i

    0 -1.0000i

    -- z vektrleri bulmak da tek satirlik bir islem gerektirmektedir. Aslinda zvektrleribulmak iin verilen [X,D] = eig(A) komutu ayni zamanda z degerleri de buldugu iinher iki bilgiye ayni anda ulasma imkani olmaktadir :

    A = [0 1 0 ; 0 0 1 ; -6 -11 -6]

    [X,D] = eig(A)

    X =

    -0.5774 0.2182 -0.10480.5774 -0.4364 0.3145-0.5774 0.8729 -0.9435

    D =-1.0000 0 0

    0 -2.0000 00 0 -3.0000

    Burada X sonu matrisinin her bir stunu verilen A matrisinin bir z degerinigstermektedir.

    D sonu matrisinin diyagonalindeki (ksegenindeki) elemanlarin her biri de verilen Amatrisinin zdegerlerini gstermektedir.

    Verilen es boyutlu farkli iki A ve B gibi matrisin genellestirilmis z degerlerini ve zvektrlerini bulmak iin ise [X,D] = eig(A,B) komutu yazilmalidir.

    -- Karakteristik denklemi bulmak iin poly(A) komutu kullanilir.

    A = [0 1 0 ; 0 0 1 ; -6 -11 -6]

    p = poly(A)

    p =

    1.0000 6.0000 11.0000 6.0000

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    16/62

    15

    Burada grlen sonu katsayilari karakteristik denklemin katsayilaridir. Yani :

    s3 + 6s 2 + 11s + 6 = 0

    -- Bir polinomun kklerini bulmak iin roots(a) komutu yazilmalidir. Yukaridaki

    karakteristik denklemin kklerini bulmak istersek :

    r = roots(p)

    r =

    -3.0000-2.0000-1.0000

    -- Polinomlarin arpimi iin conv(a,b) komutu kullanilir.

    a(s) = s2 20.6b(s) = s2 + 19.6s + 151.2

    a(s) ve b(s) polinomlarini arpmak iin :

    a = [1 0 -0.26]; b = [1 1.96 151.2]c = conv(a,b)

    c =1.0e+0030.0010 0.0196 0.1306 -0.4038 -3.1147

    Dolayisiyla arpim sonucu su sekilde yazilabilir :

    c(s) = s4 + 19.6s 3 + 130.6s 2 403.8s 3114.7

    -- Bir polinomda herhangi bir tamsayi degerini hesaplatmak iin polyval(c) komutukullanilir :

    p(s) = 3s2+ 2s + 1

    p = [3 2 1];

    polyval(p,5)

    ans = 86

    -- 1 ve 0 sayilarinin istenilen matrisel boyutta abuk olarak retilebilmesi iinones(m,n) ve zeros(m,n) komutlari kullanilabilir :

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    17/62

    16

    ones(2,2)

    ans = 1 1

    1 1

    zeros(3,3)ans =

    0 0 00 0 0

    0 0 0

    -- Birim matris de eye(n) komutuyla istenilen boyutta olusturulabilir :

    eye(5)ans =

    1 0 0 0 00 1 0 0 0

    0 0 1 0 00 0 0 1 00 0 0 0 1

    -- Bir matrisin ksegenindeki elemanlari listelemek iin diag(A) komutu kullanilir :

    A = [1 2 3 ; 4 5 6 ; 7 8 9] ;diag(A)

    ans =15

    9

    Ksegenin elemanlari haricindeki matris bilesenleri 0 olarak gstermek istersek :

    diag(diag(A))

    ans =1 0 00 5 00 0 9

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    18/62

    17

    Ksegen matrisi olusturmayla alakali asagidaki diger rnekler de incelenebilir :

    diag(1:5)

    ans =

    1 0 0 0 00 2 0 0 00 0 3 0 00 0 0 4 00 0 0 0 5

    diag(0:4)

    ans =0 0 0 0 00 1 0 0 00 0 2 0 00 0 0 3 00 0 0 0 4

    [diag(1:5) diag(0:4)]

    ans =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1

    -- Bir matrisi rastgele olarak olusturmak iin rand(n) komutu kullanilir.0 ile 1arasindaki sayilari alir.

    rand(4)

    ans =

    0.3654 0.6739 0.3603 0.0493

    0.1400 0.9994 0.5485 0.57110.5668 0.9616 0.2618 0.70090.8230 0.0589 0.5973 0.9623

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    19/62

    18

    ALISTIRMALAR

    1-Sin(x) i ilk 10 terim kullanarak bulan bir Matlab programi yaziniz. X ai degerininderece olarak kullanicidan alip sin(x)i bulunuz ?

    Sin(x) = x x3/3! + x5/5! x7/7! + x9/9! ...

    2-Yerden V0 hiziyla ve T aisiyla firlatilan bir bir topun t = 0,1,2,...10 saniye boyuncahareket bilgilerini veren.Sema T, Vx, Vy bilgilerini her saniyedegrntleyebilmelidir.

    Not1: Gerekli formller asagida siralanmistir.(g =10 m/s2, Yer ekimi ivmesi)

    Vx = V 0cos(T) ; Vy = V 0sin(T) gt ; V = (Vx2 + V y

    2)1/2

    Not2: Topun tm harketi boyunca yerden yeterince yksekte oldugunu varsayiniz.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    20/62

    19

    BLM 2 : GRAFIK ve EGRI IZIMLERI

    -- x ve y vektrleri ayni boyutta ise bu vektrleri ekrana izdirmek iin plot(x,y)komutu kullanilir.

    A =[ 7 2 5];B =[ 5 4 8 ];plot(A,B);grid

    Bu durumda grafik ekrana asagida gsterildigi gibi otomatik olarak izilecektir :

    Ayrica plot(X,Y,x) komutu izilen egriyi x karakterini kullanarak izmektedir.

    -- Asagida grafik izimiyle ilgili bazi zellikler siralanmistir :

    x=3:0.5:10Seilen bir parametreye gre (burada x parametresi seilmis) izdirilmesi

    planlanan egrinin sinirlari yukaridaki gibi yazilir. 3 ve 10 degerleri izdirilmek istenenaraligi, ortadaki 0.5 degeri artis miktarini gstermektedir.

    gridGrafik arka yznn lekli olarak gsterilmesini saglar.

    title(...)izilen grafige baslik yazmak iin kullanilir.

    xlabel(...)

    izilen grafigin x-eksenine istenilen aiklamayi yazmak iin kullanilir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    21/62

    20

    ylabel(...)izilen grafigin y-eksenine istenilen aiklamayi yazmak iin kullanilir.

    text(X,Y,text)Grafik ekrani zerine istenilen koordinatlar dahilinde herhangi bir

    aiklama yazmak iin kullanilir.

    . + * o x

    Istenildigi takdirde izilen egrinin dz izgi olarak degil de farklikarakterlerle izdirilebilir. Bunlar iin ise yukarida gsterilen nokta, arti,yildiz, yuvarlak ve x karakterleri kullanilir. Bu karakterleri plot() komutuierisinde + seklinde yazmak yeterli olacaktir.

    r g b w i

    izilen egrinin rengi de yukarida gsterilen kisaltmalarla degistirilebilir.

    Burada r kirmizi renk (red), g yesil renk (green), b mavi renk (blue),w beyaz renk (white) ve i ise (invisible) olarak kisaltimistir.

    Not : Bu zellikler ve daha farkli grnt zellikleri grafik ekrani zerindeki Insertve Tools menleri araciligiyla komut satirini kullanmadan da yapilabilmektedir.

    -- Asagidaki rnekte ise y = x2 egrisini 0 ve 3 araliginda izdirelim :

    x = 0:0.1:3;y = x. 2;

    plot(x,y,r);title(y=x2egrisi);xlabel(x);grid;

    ylabel(y)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    22/62

    21

    -- Birden fazla egriyi tek bir grafik ekrani zerinde grmek iin izdirilmesi istenenegriler ayni plot(...) komutu iinde yazilmalidir.

    -- Birden fazla egriyi st ste izme uygulamasi olarak asagidaki rnekte sin(x) vecos(x) egrileri tek bir grafik ekrani zerinde izdirilmistir :

    t = 0:0.05:10;

    x = sin(t);y = cos(t);plot(t,x,x,t,y,o);grid;

    title(Sin ve Cos Egrileri);xlabel(Saniye);

    ylabel(x=sint ; y=cost);text(3,0.45,sint);

    text(0.8,-0.3,cost)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    23/62

    22

    -- Asagidaki rnekte ise 3 farkli egri izdirilmistir :

    t=0:0.5:10;

    x=t 2+5*t-3;

    y=t. 2+3;z=t;plot(x,t,'r',y,t,'g',z,t,'b');

    grid;title(3 Farkli Grafigin Cizimi);xlabel(Giris Degerleri);ylabel(Cikis Degerleri);

    text(x,t,x);text(y,t,'y');text(z,t,'z')

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    24/62

    23

    -- Kompleks vektrlerin iziminde plot(z) ifadesi kullanilir. izim isleminde ise reelve imajiner kisimlar ayri ayri ikili noktalar olarak kabul edilir :

    C=[2+6i 5-3i 4i 6-i ]

    plot(C)grid

    Not : loglog(X) komutu hem x eksenini hem de y eksenini logaritmik leklendirmeyikullanarak Xin grafigini izdirir

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    25/62

    24

    -- Bir A vektrn bar grafiklerini kullanarak izdirmek iin bar(A) komutukullanilir. Basamak fonksiyonu seklinde izilecek ise stairs(A) komutu kullanilir.Her iki izime ait rnek grafikler asagida ayri ayri verilmistir :

    A = [ 2 5 -5 6 1 ]bar(A);

    grid;xlabel(bar);stairs(A);xlabel(stairs)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    26/62

    25

    -- Ayrica grafik ekranindaki menlerden yararlanarak esitli grnt degisiklikleriyapilabilir. rnek olarak Tools mensnde Rotate-3D seenegi kullanilarakmouse yardimiyla iki stteki bar grafiginin grnts asagidaki gibi elde edilebilir.

    -- Grafik iziminde grafik izgi tipleri, isaretler ve renkler asagidaki tablodasiralanmistir :

    Sembol Renk(RGB) izgi stili Sembol Nokta stili

    Y sari(110) . nokta - izgi

    M magenta(101) O yuvarlak : Noktali

    C cyan(011) X arpi isareti -. izgili ve noktali

    R kirmizi(100) + arti isareti - - kesik izgili

    G yesil(010) * yildiz

    B mavi(001) S karekk

    W beyaz(111) D baklava

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    27/62

    26

    -- 3-D Line (3 Boyutlu dz izgi) izimi iin plot3(...) komutu kullanilir .Asagidaheliks izimi programi verilmistir :

    t=0.01:0.01:20*pi;

    x=cos(t);y=sin(t);z=t. 3;

    plot3(x,y,z);xlabel('Helix');grid

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    28/62

    27

    -- 3 boyutlu ag ve yzey izimlerinde kullanilan komutlardan biri mesh(...)komutudur. Bu komut verilen girisi z bileseni olarak algilar ve dikdrtgen x-y dzlemizerinde z ekseni boyunca izim yapar. surf(...) komutu ise ayni isi yzey olarakyapar.Asagidaki komut satirlarinin izim grntleri yine alt tarafinda verilmistir.

    mesh(eye(10));grid

    surf(eye(10));grid

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    29/62

    28

    -- z=exp(-x2-y2) fonksiyon yzeyini [-2,2]x[-2,2] tanim araliginda 3 boyutlu olarakizdirelim :

    x=-2:0.2:2;

    y=x;[x,y]=meshgrid(x,y);z=exp(-x. 2-y. 2);

    mesh(z)

    -- Ayrica view komutu yardimiyla da kresel ve kartezyen koordinatlar ekrandagrntlenebilir.

    view

    ans =

    0.7934 -0.6088 0 -0.09230.3044 0.3967 0.8660 -0.7835

    0.5272 0.6871 -0.5000 8.30310 0 0 1.0000

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    30/62

    29

    -- rnek olarak z=x2+y2+xy yzeyini -2

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    31/62

    30

    -- Herhangi bir yzey grafiginde tepe ve alt tepe (minimum ve maximum) degerlerinigstererek yapilan izimlerde peaks(...) komutu kullanilir :

    [X,Y]=meshgrid(-3:0.125:3);

    peaks(X,Y)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    32/62

    31

    ALISTIRMALAR

    1- x = t3-2t+9 , y = 6t5-t , z = t2+7 egrilerini tek bir grafik ekraninda izdiriniz.

    2-A = [ 5 8 -2 6 4 0 7 ] giris verilerini bar grafik ekraninda izdiriniz.

    3-z=2x2+y yzeyini, 0.2 artim degeriyle x = (-2,2) ve y = (-2,2) araligini kullanarakizdiriniz.

    4- z = e-2x +4x 3 grafigini (2,50) araliginda izdiriniz.

    5- x=9sin(t) , y = 2tan(3t) + cos(t) grafiklerini (0,10) araliginda 0.05 artimla izdiriniz.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    33/62

    32

    BLM 3 : MATLAB ile PROGRAMLAMA

    Bu blmde MATLAB yazilimini baslangita kolaylikla kullanabilmek iin

    gerekli olan komut ve fonksiyonlar verilecektir.

    Su ana kadar MATLAB ile yaptigimiz uygulamalarda, belirli bir islemigereklestirmek zere gerekli olan komut ya da fonksiyonlari komut satirindan, >>sembollerinden sonra tek tek girerek icra ediyorduk. Oysa, MATLAB komut ya dafonksiyonlarindan gereklestirmek istedigimiz bir isle ilgili zel bir grubu, bir dosyayakaydederek, bu dosya isminin agirilmasiyla icra ettirebiliriz.

    Bir deyimler ya da komutlar grubunu ieren bu tip bir dosyaya MATLABdeM-dosyasi (M-File) adi verilir. Bir komut grubu ierdigi iin tanim itibariyle bir

    program dosyasidir. Dolayisiyla programlama M-dosyalari olusturularak yapilir.

    -- Komut satirina helpwin komutu girilirse veya MATLABin Help mensndenHelp Window seenegi seilirse karsimiza gelecek yardim seeneklerinden istenilenkonu hakkinda bilgi alinabilmektedir.

    -- M-File Olusturma : Programlama islemi M-File (Program Dosyasi) dosyalarindayapilir. Bu nedenle program yazarken en ok kullanilacak olan islem M-File olusturmaislemidir. Bunun iin File mensnden New seilir ve daha sonra M-Fileseenegi seilir. Bylece yeni bir programlama ekrani elde edilir. Programlama islemi

    bittikten sonra M-File dosyasinin File mensnden Save As seenegi seilir.Yazilan program buradaki work alisma dosyasinin iine istenilen isimle kaydedilir.Kaydedilen dosyalarin uzantisi .m olarak kaydedilir. (rnek: sonuc.m) Istenendosyayi alistirmak iin ise komut satirinda dosya ismini yazip Enter tusuna basmakyeterlidir. Ayrica work mensne girilip oradan da alistirilabilir.

    Ilk etapta rnek olarak olusturulmus olan bos bir M-File dosyasi asagida gsterilmistir:

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    34/62

    33

    A) GENEL AMALI KOMUTLAR

    -- workspace komutu : alisma esnasinda alisma alaninda (bellegin kullaniciyaayrilan kismi) mevcut degiskenler hakkindaki ayrintili bilgi asagida gsterildigi gibibir pencere iinde verilir. Pencere iindeki degiskenlerin zerine ift tiklayarak o

    degiskenle ilgili bilgilere ulasilip degisiklikler yapilabilir.

    -- clear komutu : Bellekte o anda mevcut bulunan degiskenleri bellekten siler.

    -- save komutu : M-file dosyasinin kaydedilmesi yukarida da anlatildigi gibiFile mensnden yapilir. MATLAB komut satirinda ise save komutu kullanilirsao esnada bellekte bulunan degiskenleri, istenilen dosya ismiyle ve uzantisi .mat olacaksekilde kaydedilir.(rnek: sayilar.mat)

    >> a=1

    a =

    1>> b=2b =

    2>> save sayilar

    Yukarida a ve b sayilari sayilar.mat dosyasi olarak kaydedilmistir.

    -- load komutu : Diskte sakli bir dosya iindeki degiskenleri tekrar bellege ykler.

    >> load sayilar>> who

    Your variables are:a b

    Yukarida sayilar dosyasi load komutuyla bellege tekrar yklenmis ve whokomutuyla bu dosyanin degiskenleri grntlenmistir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    35/62

    34

    -- dir komutu : Bellekte kayitli olan dosyalari listeler.

    (Not: Bir programi dogru olarak alistirmak iin, icra ettirmeden nce clearkomutuyla mevcut degiskenler silinebilir.)

    >> dir. Oy.m sayilar.mat simple-report.sgml

    .. diary simple-report.html

    -- type komutu : Bir .m uzantili dosyanin ierigini komut satirinda grntler.

    -- edit komutu : Bir M-dosyasinin ieriginde degisiklik yapma imkani saglar.

    -- open komutu : Uzantisi ile belirtilen dosyayi aar.

    -- Her yazilim trnde oldugu gibi MATLABde de, isletim sistemi kontrolnegemeden isletim sisteminin grevi olan bazi islemleri gereklestirebilmekmmkndr. Bu tr islemler asagidaki tabloda zetlenmistir.

    Komutun Adi Komutun Islevicd Aktif dizini degistirir.dir Aktif dizinin iindekileri listeler.ls Aktif dizinin iindekileri listeler.delete Belirtilen dosyayi siler.

    type Belirtilen dosyanin ierigini listeler.

    -- clc komutu : Komut satirini tamamen siler.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    36/62

    35

    B) DEGISKEN ATAMA

    C ve PASCAL gibi programlama dillerinde, programin ana gvdesininolusturulmasina baslamadan hemen nce, programdaki tm degiskenlerin hangi tipdegisken olduklarini belirtmek ve programin bilgisayar belleginden uygun miktarda

    alani bu degiskenler iin tahsis etmesini saglamak gerekir. MATLABde degiskenler,kendilerine ait bir isim ve onlara atanacak degerler yardimiyla olusturulurlar. ncedendegisken tipini belirtmeksizin, degiskene verilen degere bagli olarak MATLAB, uygundegisken tipini belirler ve bilgisayar belleginden yeteri kadar yeri bu degiskene tahsiseder.

    Birinci blmde temel atamalarla ilgili bazi bilgiler (sabit, degisken, matris,dizi, vektr tanimlama...) verilmisti.

    -- Mantik ve Iliski Operatrleri :

    == Esittir & and Ve~= Esit degil & and Ve< Kk ~ not Degil Byk>= Byk esit

    -- global( ) komutu : Farkli M-dosyalari iin ayni degisken tanimlanacaksa o degiskenglobal(x) olarak tanimlanabilir.

    --disp() komutu : Istenen aiklamayi grntler.

    >> disp('Programlamaya Giris')Programlamaya Giris

    -- input() komutu : Kullanicidan klavye araciligiyla programci tarafindan girilmesiistenen degisken istenir ve ilgili degiskene atanir.

    >> Yas=input('Yasinizi giriniz :')

    Yasinizi giriniz :23Yas =

    23

    -- fprintf komutu :Bir aiklama ifadesiyle birlikte bir veya birden fazla degeringrntlenebilmesini saglar.

    >> a=231565465;>> fprintf('Hesap = %d ',a)Hesap = 231565465.000000

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    37/62

    36

    Not : fprintf fonksiyonu, kompleks sayilarin sadece reel kismini gsterir. Bunedenle kompleks sayi uygulamalarinda disp fonksiyonunu kullanilmalidir.

    fprintf fonksiyonunda kullanilan esitli biim tipleri asagida gsterilmistir :

    %d : Virgll sayilari 10un kuvvetleri seklinde gsterir.%f : Kayan noktali sekilde gsterir, aksi belirtilmedike virglden sonra 6 basamakgsterir.%e : Sayiyi stel sekilde gsterir.

    -- linspace ve logspace komutlari : Ilk degeri ve son degeri belirtilen bir diziyi lineerveya logaritmik olarak belirtilen sayidaki elemani kullanarak yapilandirir. Belirtilenaraligi otomatik olarak verilen eleman sayisina gre bler ve her bldg sayiyigrntler.

    fonksiyon(ilk_deger , son_deger , eleman_sayisi)

    >> B=linspace(0,10,6)

    B =0 2 4 6 8 10

    -- Baslangi, son deger ve artis miktari belli dizilerin atanmasi :

    >> dizi=10:5:30

    dizi = 10 15 20 25 30

    --Hazir fonksiyon zelliklerini kullanarak olusturulan diziler iin kullanilankomutlar :

    zeros(n,m) : nxm boyutunda 0lardan olusan matris retir.ones(n,m) : nxm boyutunda 1lerden olusan matris retir.eye(n,m) : nxm boyutunda birim matris retir.length(x) : x dizisinin satir sayisini verir.

    size(x) : x matrisinin boyutlarini (satir ve stun) verir.format short : Islem sonularini virglden sonra 4 basamakli olarak gsterir.format long : Islem sonularini virglden sonra 14 basamakli olarak gsterir.

    Not: MATLABin yapisinda nceden tanimlanmis bazi zel sabit veya aiklamadegerler :pi (Pi sayisi) ; i,j (Kompleks i sayisi) ; eps (Epsilon:Iki sayi arasindaki en kk fark) ;Inf (Sayi/Sifir belirsizligi ve diger belirsizlikler karsisinda retilen tanimsizlik cevabi :Infinite)

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    38/62

    37

    -- Vektr ve matrislerin tanimlanmasi :

    >> A=[ 2 3 5 9 -2 ]

    A =

    2 3 5 9 -2

    3x3 boyutunda bir matrisi tanimlamak iin :

    >> C=[3 6 9 ; 8 2 4 ; 0 8 3 ]C =

    3 6 9

    8 2 40 8 3

    -- who komutu : alisma alanindaki o esnada mevcut olan degiskenlerin isimlerinilisteler. Ayrica whos komutu degiskenler hakkinda daha ayrintili bilgi verir.

    >> whoYour variables are:

    A B C V

    -- length( ) komutu : Girilen bir vektrn uzunlugunu (eleman sayisini) grntler.

    >> A=[ 5 8 7 2 5 9 6 ]A =

    5 8 7 2 5 9 6>> length(A)

    ans = 7

    C) FONKSIYON OLUSTURMA VE DIGER KOMUTLAR:

    -- sum( ), min( ), max( ), mean( ) komutlari : Yandaki komutlar sirasiyla bir

    vektrn elemanlarinin toplamini, en kk elemanini, en byk elemanini veortalamasini bulur.

    -- function komutu : Fonksiyon tanimlamak iin kullanilir. Bu zellik asagidarnek zerinde aiklanmistir :

    rnek olarak kullanici tarafindan girilen n adet rakamin (Bu rakamlarin MATLABdevektr formunda girilmesi gerekmektedir) ortalamasini, en kk elemanini, en bykelemanini ve standart sapmasini bulacak bir fonksiyonu ist(a) adiyla olusturalim :

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    39/62

    38

    Not: Herhangi bir .m dosyasi penceresinde f butonuna mouse ile bir defa

    dokunuldugunda (yukaridaki sekilde de grlmektedir) work dizini altinda kayitliolan btn fonksiyonlar listelenir.

    Simdi de programi komut satirindan icra ettirelim :

    >> A=[5 3 6 9 73 6 5];

    >> ist(A)enk = 3

    enb = 73n = 7ort =

    15.2857stsapma = 23.6203ans =

    15.2857

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    40/62

    39

    -- type komutu : Bir .m uzantili dosyanin ierigini komut satirinda grntler.rnek olarak 2 sayinin toplamini yapan toplam isimli basit bir program yazalim.Asagida M-File grntsnde gsterilmistir :

    MATLAB komut satirina type toplam yazilirsa :

    >> type toplamclear

    disp('---------Iki sayinin toplamini bulan program--------------')a=input('Birinci sayiyi giriniz: ');b=input('Ikinci sayiyi giriniz: ');toplam=a+b;

    disp('Toplam = ');disp(toplam);end>>

    rnek Program: Iki noktasi bilinen dogrunun izimi

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    41/62

    40

    Bu program komut satirinda alistirilirsa asagida gsterildigi gibi icra edilir ve grafikde otomatik olarak yine asagida gsterildigi gibi izdirilir.

    >> dogru*********Iki Noktasi Bilinen Dogrunun C izimi*********

    1. Noktanin apsisini giriniz :31. Noktanin ordinatini giriniz :92. Noktanin apsisini giriniz :-52. Noktanin ordinatini giriniz :7

    >>

    rnek Program: 3 farkli partinin yapilan genel seimler sonucu aldiklari oyoranlarini pasta grafik dilimi zerinde gsteren grafigin izimi programi asagidagsterildigi gibi Oy.m dosyasi adi altinda yazilmistir. izilmesi istenen pasta dilimigrafigi iin kullanicidan bu partiye ait yzdelik oy orani rakam olarak istenmekte vegrafik otomatik olarak izdirilmektedir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    42/62

    41

    Bu program komut satirinda alistirilirsa asagida gsterildigi gibi icra edilir ve grafikde otomatik olarak yine asagida gsterildigi gibi izdirilir.

    >> Oy

    Partilerin Oy Oranlari Grafigi

    A Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 50B Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 20C Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 30

    -- keyboard komutu : Isletilen programlarin kodlarina ve ieriklerine disaridanmdahale edebilmek iin kullanilir. Bylece programin isletilmesi durdurulur,fonksiyonun kontrol edilebilmesini saglar, degiskenler zerinde inceleme ve degisiklikyapilabilir. Bu komutun aktif oldugu K>> seklindeki zel bir komut istem sembolile belirtilir. Bu zellikten ikip programin akisina devam edebilmek iin, return komutu girilir ve enter tusuna basilir. Bu zellik sayesinde alisma alanindaretilen sonulara aninda ulasabilmek mmkn olmaktadir. Asagidaki rnekte M-Fileve komut icra satirlari verilmistir

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    43/62

    42

    Bu program komut satirinda alistirilirsa asagida gsterildigi gibi icra edilir

    Birinc i sayiyi giriniz: 4

    Ikinci sayiyi giriniz: 2

    K>> c=10c = 10

    K>> returnd =

    80K>> return

    >>

    rnek Program: Iki nokta arasindaki uzakligi bulan basit bir programi, nce

    fonksiyon yapisini kullanarak sonra da ayni programi bu fonksiyon yapisini bellektenagirma islemini uygulayarak icra ettirelim :

    a) Fonksiyon yapisini kullanarak :

    Komut satirindan icra edilirse :

    >> f_uzaklik(2,6,3,0)x =

    6.0828

    ans = 6.0828

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    44/62

    43

    b) Fonksiyon yapisini bellekten agirarak :

    Komut satirindan icra edilirse :

    >> uzaklik

    ------- Iki nokta arasindaki uzaklik -------1.noktanin x degerini giriniz : 21.noktanin y degerini giriniz : 52.noktanin x degerini giriniz : 4

    2.noktanin y degerini giriniz : 3x = 2.8284Iki nokta arasindaki uzaklik:2.828427

    D) DNG ve SARTLI IFADE UYGULAMALARI :

    1.SARTLI IFADELER :

    -- if yapisi : if komutunun MATLABde 3 farkli sekli mevcuttur :

    a) if kosuldeyim1deyim 2deyim_n

    end

    Kosul dogru ise deyim1, deyim1, ... , deyim_n, ile belirtilen deyimler grubu icra edilirve programin kontrol endi izleyen deyime geer; kosul yanlis ise bu durumdadeyim1, deyim2, ..., deyim_n ile belirtilen deyimler grubu icra edilmeden kontrol endiizleyen deyime geecektir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    45/62

    44

    b) if kosuldeyim1deyim 2deyim_n

    else deyim_n+1

    deyim_n+2deyim_m

    end

    Kosul dogru ise deyim1, deyim1, ... , deyim_n, ile belirtilen deyimler grubu icra edilirve programin kontrol endi izleyen deyime geer; kosul yanlis ise bu durumda dasadece else i izleyen, deyim1_n+1, deyim_n+2, ... , deyim_m ile belirtilen deyimlergrubu icra edilecek ve kontrol end i izleyen deyime geecektir.

    c) if kosul1

    deyim1elseif kosul2deyim2

    elseif kosul3deyim3

    ...elseif kosul_n

    deyim_nelse

    deyim_n+1

    end

    Bu yapi ierisinde kontrol edilen kosullardan herhangi biri dogru ise onunla iliskilideyim icra edilir ve kontrol end i izleyen deyime geer. Kosullarin hepsi de yanlissa,kontrol else i izleyen deyim_n+1e geer ve bu deyim de icra edildikten sonra kontrolendi izleyen deyime geecektir.

    rnek Program: Kullanici tarafindan bir sayi istenip bu sayinin pozitif, negatif veya0 mi oldugunu sorgulayan ve ekrana yazdiran program asagida incelenebilir :

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    46/62

    45

    Komut satirindan icra edilirse :

    Bir sayi giriniz: 55Sayiniz pozitiftir...

    >> if_1Bir sayi giriniz: -9

    Sayiniz negatiftir...>> if_1Bir sayi giriniz: 0Sayiniz sifirdir...

    -- switch - case yapisi : Ikiden fazla durumu kontrol etmek iin, if elseif else end yapisina alternatif olarak kullanilan bir kontrol yapisidir.

    Ifadenin degeri kontrol edilir ve buna gre farkli bir deyim veya deyimler grubu icraedilir. rnegin, ifadenin degeri deger1 ise, deyim1 icra edilir ve kontrol endi izleyendeyime geer.

    Ifadenin degeri , deger2, deger3 ya da deger4 e esitse bu durumd deyim2 icra edilir vekontol endi izleyen deyime geer.

    Ifadenin degeri, caselerle kontrol edilen degerlerden hi birine esit degilse budurumda da otherwise szcgn izleyen deyim_n+1 icr edilecektir.

    switch(ifade)case deger1

    deyim1case deger2,deger3,deger4

    deyim2...

    case deger_ndeyim_n

    otherwise deyim_n+1

    end

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    47/62

    46

    rnek Program: Haftanin kainci gnnn ne oldugunu bulan basit bir programasagida incelenebilir :

    >> gunHaftanin kacinci gunu ? : 5

    gun = Cuma

    2.DNG IFADELERI :

    -- for dngs : Parametre degeri baslangi degerinden baslayarak ve herseferinde artim degeri kadar arttirilarak son degere erisene kadar degistirilir.Parametrenin her degeri iin, deyim1, deyim2, deyim_n seklinde belirtilen ve for-endszckleri arasinda yer alan deyimler grubu icra edilir. Parametrenin degeri son degeriasinca, programin kontrol endi izleyen deyime yani evrimin disina ikacaktir.

    for parametre=baslangi:artim:son_degerdeyim1deyim2

    ...deyim_nend

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    48/62

    47

    rnek Program: Arka arkaya blme islemlerinin yapildigi asagidaki for dngsprogramini incelenebilir :

    Komut satirindan icra edilirse :0/2 = 0

    0/4 = 0ic cevrim sonu20/2 = 1020/4 = 5

    ic cevrim sonu40/2 = 20

    40/4 = 10ic cevrim sonu

    60/2 = 3060/4 = 15ic cevrim sonu80/2 = 40

    80/4 = 20ic cevrim sonudis cevrim sonu

    -- while dngs : Belirli bir st sinira kadar istenilen islemleri tekrarlayarakyapar. Kosul dogru oldugu srece, deyim1, deyim2, ... , deyim_n seklinde belirtilendeyimler grubunu icra eder. Kosul yanlis oldugu anda, endi izleyen deyime yanievrim disina ikar.

    whilekosuldeyim1deyim2...

    deyim_nend

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    49/62

    48

    rnek Program: A=5 ilk degerinden baslayarak A

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    50/62

    49

    ALISTIRMALAR

    1- Kenarlari kullanici tarafindan istenen bir genin esitkenar, ikizkenar veya eskenargen mi oldugunu bulan MATLAB programini yaziniz.

    2- ax2+bx+c ikinci dereceden denkleminin kklerini bulduran MATLAB proraminiyaziniz.

    3- Bir otomobil, durgun halden harekete baslayarak 10 dakika boyunca hizlaniyor,hizi 60 km/saat oluyor. Sonra 15 dakika boyunca sabit hizla hareketine devam ediyorve 10 dakika boyunca yavaslayarak hizi 0 oluyor. Disaridan girilen herhangi bir taninda otomobilin hizini veren bir MATLAB programi yaziniz.

    4- Kullanicidan dogum gnn soran ve bu kullanicin ka yil, ka ay ve ka yil

    yasadigini bulan bir MATLAB programi yaziniz.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    51/62

    50

    BLM 4 : KONTROL SISTEMLERINDE ZAMAN-FREKANSANALIZI

    Matematiksel modeller lineer sistemlere veya baska sistemlere MATLAB

    komutlari vasitasiyla kolaylikla dnstrlebilir.

    Asagida kontrol sistemleri iin gerekli bazi dnsmler aiklanmistir :

    -- Transfer fonksiyonundan durum uzayina evirme :

    [A B C D] = tf2ss(num,den) komutu,

    )(

    )(

    sU

    sY=

    den

    num= C( s I-A) -1 B + D sistemini,

    dy

    dx= Ax + Bu

    y = Cx + Du durum uzayi formatina evirir.

    -- Durum uzayindan transfer fonksiyonuna evirme :

    [num,den] = ss2tf(A,B,C,D)

    Eger sistemin birden fazla girisi varsa asagidaki komut kullanilir :

    [num,den] = ss2tf(A,B,C,D,iu)

    rnek olarak asagida verilen iki girisli bir sistemin diferansiyel denklem takimininMATLAB komut satirindaki islemleri ve ikislari incelenebilir. Ayrica sistemin ikigirisi oldugu iin u1 girisi ele alindiginda u 2 sifir, u 2 girisi ele alindiginda da u1 girisisifir olarak kabul edilmektedir.

    dt

    d

    x2x1 =

    20

    31

    x2x1 +

    01

    10

    u2u1

    y = [1 0]

    x2

    x1 + [0 0]

    u2

    u1

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    52/62

    51

    Buradan elde edilen katsayilarla :

    U1(s)

    )( sY=

    23s

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    53/62

    52

    r,p,k degerleri sirasiyla rezid (n.inci basit kesrin payi), kutup (n.inci basitkesrin paydasi) ve sabit terimleri temsil etmektedir.

    )(

    )(

    sA

    sB=

    )1(

    1

    ps

    r

    +

    )2(

    2

    ps

    r

    + ................... +

    )(

    )(

    nps

    nr

    + k(s)

    rnek olarak asagidaki kesir ifadesini basit kesirlerine ayiralim.

    )(

    )(

    sA

    sB=

    6112^6^3

    63s5s^22s^3

    +++

    +++

    sss

    Bylece kesir ifadesi su sekilde basit kesirlerine ayrilmistir :

    )(

    )(

    sA

    sB=

    3

    6

    +

    s+

    2

    4

    +

    s+

    1

    3

    +s+ 2

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    54/62

    53

    -- Srekli zaman sistemleri iin geici cevap analizi :

    Geici tepki analizleri ( Basamak fonksiyonu, anlik darbe foksiyonu, birimbasamak fonksiyonu, rampa fonksiyonu,...) kontrol sistemlerinin zaman degiskenikarsisindaki karakteristiklerini belirlemek iin kullanilir.

    Basamak fonksiyonu ( Step function ):

    step(num,den) step(num,den,t)

    Durum uzayinda ifade edilen (A,B,C,D durum uzayinin matrislerini gstermekkosuluyla) bir kontrol sistemi iin :

    step(A,B,C,D)

    rnek:Transfer fonksiyonu)(

    )(

    sR

    sC=

    2542^

    25

    ++ ss olarak verilen bir sistemin birim

    basamak fonksiyonuna verecegi cevap analizi asagida gsterilmistir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    55/62

    54

    rnek: A =

    1

    0

    0

    0

    0

    0

    2

    1

    1

    ; B =

    5

    0

    0

    ; C = [ 1 0 0 ] ; D = 0

    Yukarida A,B,C,D durum uzayi matrisleri verilen bir sistemin birim basamakfonksiyonuna karsi verecegi cevabi izdiriniz.

    Bir sistemin anlik darbe fonksiyonu ( Impulse Function ) ve rampa fonksiyonuna(Ramp Function) verecegi cevabi bulmak iin de bu transfer fonksiyonlarinin nlerinesirasiyla 1/s ve 1/s2 arpani olusturulur ve normal basamak fonksiyonu gibi izilir.

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    56/62

    55

    rnek: Iki farkli transfer fonksiyonuna iliskin degerler asagida verilmistir. Busistemlerin 0 ve 10. saniyeler arasinda frekans cevabini 0.1 araliklarla, ayni grafikekrani zerinde izdiriniz.num1 = [0 0 1] ; den1 = [1 2 -1]num2 = [0 1 4] ; den2 = [1 1 1]

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    57/62

    56

    rnek:

    Yukaridaki mekanik sistemi Laplace Dnsm ile analiz ederek transfer

    fonksiyonunu bulunuz ve birim basamak fonksiyonu yardimiyla grafigini izerek xin(yol miktari) genlik degisimini inceleyiniz.

    (Baslangi kosullari : x(0)=0.1 m ve x(1)(0)=0.05 m/s )Not: (1) ve (2) ifadeleri birinci ve i kinci trevleri temsil etmektedir.

    zm iin nce asagidaki analitik yntem, sonra da grafik incelenebilir.

    Sistem denklemi :

    mx(2) + bx (1) + kx = 0

    m[ s2 X(s) sx(0) x(1) ] + b[ sX(s) x(0) ] + kX(s) = 0

    ( ms2 + bs + k )X(s) = mx(0)s + m x(1) (0) + bx(0)

    Gerekli matematiksel islemler yapilip X(s) ifadesi ekilirse :

    X(s) =kbsmsbxmxsmx

    ++++

    2^)0()0()0( =

    232^35.01.0++

    +ss

    s

    X(s) ifadesis

    1 arpaniyla yeniden dzenlenirse :

    X(s) =232^

    35.02^1.0

    ++

    +

    ss

    sss

    1

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    58/62

    57

    Bylece X(s) transfer fonksiyonu birim basamak fonksiyonu izimi iin G(s)fonksiyonuna dnstrlp asagidaki sonu elde edilir :

    G(s) = 232^

    35.02^1.0

    ++

    +

    ss

    ss

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    59/62

    58

    ALISTIRMALAR

    1- Iki farkli transfer fonksiyonuna iliskin degerler asagida verilmistir. Bu sistemlerin 0ve 15. saniyeler arasinda birim basamak frekans cevabini 0.2 araliklarla, ayni grafikekrani zerinde izdiriniz.

    num1 = [1 5 1] ; den1 = [3 2 4]num2 = [1 0 1] ; den2 = [1 0 2]

    2- Asagida A,B,C,D durum uzayi matrisleri verilen bir sistemin birim basamakfonksiyonuna karsi verecegi frekans cevabini izdiriniz.

    A =

    0

    1

    2

    3

    7

    93

    1

    1

    50

    1

    1

    3

    1

    1

    ; B =

    60

    5

    2

    0

    ; C = [1 0 0 0] ; D = 0

    3- Bir sisteme ait transfer fonksiyonuna iliskin matris degerleri asagida verilmistir. Busistemin 0 ve 40. saniyeler arasinda birim basamak frekans cevabini 0.1 araliklarla,izdirinip inceleyiniz.

    num1 = [4 8 9] ; den1 = [1 3 2]

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    60/62

    59

    EK(Tablo):MATLAB KOMUTLARI ve MATRISFONKSIYONLARI TABLOSU

    Komut Greviabsangleansatanaxis

    Mutlak Deger, kompleks byklkFaz AisiIslem sonucu aiklamasi olmadigi zamanki sonu ifadesi (cevap)ArktanjantEksen lekleme

    bode Bode diyagramini izdirirclearclc

    clgcomputerconjconvcorrcoefcoscoshcov

    nceden tanimlanmis degiskenleri bellekten silerKomut satirini temizler

    Grafik ekranini temizlerKullanilan bilgisayar hakkinda bilgi verirKompleks konjgeKonvolsyonKorelasyon katsayisiKosinsHiperbolik kosinsKovaryans

    datedeconvdet

    diag

    Tarihi grntlerDekonvolsyonDeterminant

    Ksegen matriseigexitexpeye

    zdeger ve zvektrlerProgrami kapatire tabanli sayisinin ssBirim matris

    format longformat shortfreqsfreqz

    Islem sonularini virglden sonraki haneleri kisa olarak gsterirIslem sonularini virglden sonraki haneleri uzun olarak gsterirLaplace dnsm frekans sevabiz-dnsm frekans cevabi

    grid Grafik ekranini lekli olarak gsterir

    hold Grafik ekranindaki son grafigi kaldiriri 1 j 1 lengthloglogloglogmlog10

    Vektr boyutuLogaritmaLogaritmik x-y izimiMatris logaritmasi10 tabaninda logaritma

    maxmeanmedianmin

    En byk degerOrtalamaOrta degerEn kk deger

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    61/62

    60

    Komut Grevinyquist Nyquist frekans cevabi izimiones Sabit 1 veya 1 matrisi retmepiplot

    polarpolypolyvalpolyvalm

    Pi sayisiLineer x-y izimi

    Kutupsal izimKarakteristik polinomPolinomda deger hesaplamaMatris polinomu hesabi

    quit Programi sonlandirirrandrankrealresidueroots

    Rastgele sayilar ve matrisler retirMatris rankiGerel kisimParali kesir pay kismi katsayilariPolinom kkleri

    signsinsinhsizesqrtsqrtmstdstepsum

    Signum FonksiyonuSinsHiperbolik sinsSatir ve stun boyutlariKarekkMatris kkStandart sapmaBirim basamak fonksiyonu izimiEleman toplami

    tantanh

    texttitletrace

    TanjantHiperbolik Tanjant

    Grafik zerine aiklama yazmaGrafik basligiMatris izi hesaplama

    who Bellekteki tm degiskenleri listelerxlabel x-ekseni aiklamasiylabel y-ekseni aiklamasizeros Sifir veya sifir matrisi retme

  • 5/19/2018 Matlab KULLANIM KLAVUZU

    62/62

    61

    KAYNAKLAR

    [1] MATLAB , Yrd.Do.Dr. Mehmet Uzunoglu, Trkmen Kitabevi, 2002

    [2] Solving Control Engineering Problems with MATLAB , Katsuhiko Ogata, 1994

    [3] MATLAB Primer Third Edition , Kermit Sigmon, University of Florida

    [4] Lineer Cebir ve MATLAB Uygulamalari , Prof.Dr. Mithat Uysal, Prof.Dr.Aysenur Uysal, Beta Yayinlari, 2000

    [5] www.mathworks.com

    [6] http://www.math.siu.edu/matlab/tutorial3.pdf