matlab _documan_zbilgin_ders sunumu.pdf

92
1 İÇİNDEKİLER ÖNSÖZ…………………………………………………………………………….…….4 BÖLÜM 1 1. MATLAB’A GİRİŞ……………………………..…………………………………..5 1.1 Matlab Nedir?..........................................................................................................5 1.2 MATLAB’daki İfadeler…………..……………………………………………….6 1.2.1 Sayılar………..………………………………………………………………6 1.2.2 Değişkenler……..……………………………………………………………6 1.2.3 İşleçler………………………………………………………………………..7 1.2.4 Fonksiyonlar……….………………………………………………………...9 1.2.4.1 Trigonemetrik Fonksiyonlar………..……………………………………9 1.2.4.2 Logaritmik (Üstel) Fonksiyonlar...……………………………………..11 1.2.4.3 Karmaşık (Kompleks) Sayı İşlemleri…………..………………………12 1.2.4.4 Yuvarlama İşlemleri……………………………………………………14 1.2.4.5 Kalan Bulma İşlemleri..………………………………………………...14 1.3 Temel İstatiksel İşlemler……....………………………………………………..14 1.4 Matlab’da Temel Yazım Notasyonu (Syntax)….…………………………...…15 1.5 Matlab'ta Kullanılan Özel Sabitler ve Değerler………..……..………………...16 1.6 Matlab’da Komut Satırından Girilen Kısa Yollar…………………..…………..16 1.7 Matlab’daki Format Komutları………..………………………………………..18 1.8.Matlab’da Eleman Elemana Hesaplama İşlemleri……………………………...19 1.8.1. Eleman elemana toplama işlemi…..……………………………………….19 1.8.2 Eleman elemana çıkarma işlemi…….……………………………………...20 1.8.3 Eleman Elemana Çarpma İşlemi………..………………………………….20 1.8.4 Eleman Elemana Bölme İşlemi….…………………………………………20 1.8.5 Eleman Elemana Üs Alma İşlemi.………………………………………….21 1.9 Programı Dallandıran İfadeler………………………………………………….21 1.10 Diziler.…...……………………………………………………………………23 1.10.1 Vektör İşlemleri……………….………………………………………….23 1.10.1.1 Temel Vektör İşlem Notasyonları……………………………………24 1.10.1.2 Eşit Ağırlıklı Eleman Kullanarak Vektör Oluşturma..………………..24 1.10.1.3 Vektör Bilgilerini Elde Etmek………………….…………………….25 1.10.2 Matris İşlemleri….………………………………………………………..25

Upload: kaytazelektrik

Post on 04-Jan-2016

32 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: matlab _documan_zbilgin_ders sunumu.pdf

1

İÇİNDEKİLER

ÖNSÖZ…………………………………………………………………………….…….4

BÖLÜM 1 1. MATLAB’A G İRİŞ……………………………..…………………………………..5

1.1 Matlab Nedir?..........................................................................................................5 1.2 MATLAB’daki İfadeler…………..……………………………………………….6

1.2.1 Sayılar………..………………………………………………………………6 1.2.2

Değişkenler……..……………………………………………………………6 1.2.3 İşleçler………………………………………………………………………..7 1.2.4 Fonksiyonlar……….………………………………………………………...9 1.2.4.1 Trigonemetrik Fonksiyonlar………..……………………………………9 1.2.4.2 Logaritmik (Üstel) Fonksiyonlar...……………………………………..11 1.2.4.3 Karmaşık (Kompleks) Sayı İşlemleri…………..………………………12 1.2.4.4 Yuvarlama İşlemleri……………………………………………………14

1.2.4.5 Kalan Bulma İşlemleri..………………………………………………...14

1.3 Temel İstatiksel İşlemler……....………………………………………………..14

1.4 Matlab’da Temel Yazım Notasyonu (Syntax)….…………………………...…15

1.5 Matlab'ta Kullanılan Özel Sabitler ve Değerler………..……..………………...16

1.6 Matlab’da Komut Satırından Girilen Kısa Yollar…………………..…………..16

1.7 Matlab’daki Format Komutları………..………………………………………..18

1.8.Matlab’da Eleman Elemana Hesaplama İşlemleri……………………………...19

1.8.1. Eleman elemana toplama işlemi…..……………………………………….19

1.8.2 Eleman elemana çıkarma işlemi…….……………………………………...20

1.8.3 Eleman Elemana Çarpma İşlemi………..………………………………….20 1.8.4 Eleman Elemana Bölme İşlemi….…………………………………………20 1.8.5 Eleman Elemana Üs Alma İşlemi.………………………………………….21

1.9 Programı Dallandıran İfadeler………………………………………………….21

1.10 Diziler.…...……………………………………………………………………23 1.10.1 Vektör

İşlemleri……………….………………………………………….23 1.10.1.1 Temel Vektör İşlem Notasyonları……………………………………24 1.10.1.2 Eşit Ağırlıklı Eleman Kullanarak Vektör Oluşturma..………………..24 1.10.1.3 Vektör Bilgilerini Elde Etmek………………….…………………….25 1.10.2 Matris İşlemleri….………………………………………………………..25

Page 2: matlab _documan_zbilgin_ders sunumu.pdf

2

1.10.2.1 Utility Fonksiyonlar Kullanarak Matris Elde Etmek….……………...26 1.10.2.2 Özel Matrisler Oluşturma .…………………………………………...27 1.10.2.3 Matris Bilgi Alma Fonksiyonları…………..…………………………27

1.10.2.4 Matris İndeksleme ve Kolon Rotasyonu………………..…………….29 1.10.2.5 Matris İşlemleri……………………………………………………….30

1.11 Matlab’da Denklem Çözümleri……………………………..………………...31

1.11.1 Polinomun Herhangi Bir Kök İçin Değerinin Bulunması ……………...32

1.11.2 Doğrusal Denklem Çözümleri..…………………………………………33

1.11.2.1 Doğrusal Denklem Takımlarının Çözümleri………………………...33 1.11.2.2 Doğrusal Olmayan Denklemlerin Çözümü…..………...……………34

1.11.2.3 Doğrusal Olmayan Denklem Takımlarının Çözümleri……….……...34

1.11.3 Türev

Uygulamaları……………………………………...……………...35 1.11.4 İntegral

Uygulamaları………...…………………………………………37 1.11.5 Eğri Uydurma…………………………………………………………...39

1.11.6 Matlab’da Diferansiyel Denklemlerin Çözümleri.………...……………39

1.11.6.1 Diferansiyel Denklemlerin Sayısal Çözümleri……...……….……...39 1.11.6.2 Diferansiyel Denklemlerin Sembolik Çözümü...................................41 1.11.6.3 Birinci Dereceden Lineer Diferansiyel Denklemler…………………41 1.11.6.4 Bernouilli Denklemi…..……………………………………………..41

1.12 Matlab’da Grafik Çizimeri……….……………………………………………41 1.12.1 Boyutlu Grafikler ……………………………..…………………………..41

1.13 Matlab’da Elektrik Mühendisliği İle İlgili Uygulamlar…………………...…..48

1.13.1 Matlab’da Seri RL Devresi Analizi…………………………………….…48 1.13.2 Frekans Alanı

Analizi……….……..……………………………………..53

BÖLÜM 2 2. MATLAB SİMULINK..… ………………………………………………………….54

2.1 Matlab Simulink Kullanımı……....……………………………………………..55

2.2 Simulink Araçları……………………………….…………………………....…56

2.2.1 Simulink…………………………………………..……..………………...56 2.2.2 SimPower

Systems……………………………...……………..…………..65

Page 3: matlab _documan_zbilgin_ders sunumu.pdf

3

2.3 Matlab Simülasyonuyla Akım,Gerilim ve Güç Ölçümü …..…………………..72

2.3.1.Doğru Akımda Akım,Gerilim ve Güç Ölçümü……………………………72

2.3.2 Alternatif Akımda Akım,Gerilim ve Güç Ölçümü….…………………….73

2.4 Simulink’te Uygulamalar……………….……………………………………...74

2.4.1 Seri RL Devresi Akım Analizi..………..………………………………….74 2.4.2 Tek Fazlı Tam Dalga Köprü Tipi Denetimli Doğrultucunun Matlab

Simulink İle Modellenmesi……...……………………………………………………77 2.4.2.1 Omik Yüklü Durum………..………………………………………….77

2.4.2.2 Omik İndüktif Yüklü Durum.……………………...………………….80 2.4.2.2.1 Omik İndüktif Yüklü Durum (Serbest Geçiş Diyotlu).…...………81 2.4.3 3 Fazlı 6 Darbeli Tam Dalga Doğrultucunun Modellenmesi…………….82

2.4.3.1 3 Fazlı 6 Darbeli Tam Dalga Doğrultucu Hakkında Bilgi…..……….82 2.4.3.2 Modelin Oluşturulması………………………………….…..……….84

2.4.4 Sonuçlar……………………...………..………………………………….90

KAYNAKLAR……………………...………..………………………………….91

Page 4: matlab _documan_zbilgin_ders sunumu.pdf

4

ÖNSÖZ

Günümüzde artık birçok sistem matematiğe, doğrudan veya dolaylı olarak bağlıdır. Kullanılan matematik de gün geçtikçe daha da karmaşıklaşmaya başlanmıştır. Fakat gelişen teknoloji ve tüketicilerden gelen taleple birlikte matematiksel tabanlı paket programlar oldukça yaygınlaşmıştır. Bu yüzden, projemde paket proglamların içinde en çok bilinen ve kullanılanı MATLAB programını inceledim. Diğer programların yaptığı işi Matlab sadece komutlarla kısa sürede yapmaktadır. Matlab, kullanım alanlarının çokluğu ve gerçeğe yakın sonuçlar vermesi nedeniyle oldukça kapsamlı bir programdır. Ben projemde en çok kullanılan komutlar üzerinde durarak Matlab’ı genel olarak anlatmaya çalıştım.Projem içerisinde ayrıca Matlab’ın kendi içinde barındırdığı simulasyon programı olan Simulunk’ten de bahsederek örnekler verdim.Örnekler çoğunlukla Elektrik Mühendisliğinin kullanım alanlarıyla alakalıdır. Projemin Matlab’ı merak edenler ve yeni başlıyanlar için güzel bir çalışma olduğu inancındayım. Bana Proje 1 çalışmamdan sonra, Proje 2 çalışmamda da danışman olan, Sayın Hocam; Yrd. Doç. Dr. Zeki BİLGİN’e yol göstericilğinden ve yardımlarından dolayı çok teşekkür ederim…

Page 5: matlab _documan_zbilgin_ders sunumu.pdf

5

BÖLÜM 1

MATLABA G İRİŞ 1.1 Matlab Nedir? MATLAB, temel olarak nümerik hesaplama, grafiksel veri gösterimi ve programlamayı içeren teknik ve bilimsel hesaplamalar için yazılmış yüksek performansa sahip bir yazılımdır. Matlab programının tipik kullanım alanları: Matematik ve hesaplama işlemleri, Algoritma geliştirme, Modelleme, simülasyon (benzetim) ve öntipleme, Veri analizi ve görsel efektlerle destekli gösterim, Bilimsel ve mühendislik grafikleri , Uygulama Geliştirme şeklinde özetlenebilir. MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir. MATLAB, ilk olarak Fortran Linpack ve Eispack projeleriyle geliştirilen ve bu programlara daha etkin ve kolay erişim sağlamak amacıyla 1970’lerin sonlarında yazılmıştır. İlk başlarda bilim adamlarına problemlerin çözümüne matris temelli teknikleri kullanarak yardımcı olmaktaydı. Bugün ise geliştirilen yerleşik kütüphanesi ve uygulama ve programlama özellikleri ile gerek üniversite ortamlarında (başta matematik ve mühendislik olmak üzere tüm bilim dallarında) gerekse sanayi çevresinde yüksek verimli araştırma, geliştirme ve analiz aracı olarak yaygın bir kullanım alanı bulmuştur. Ayrıca işaret işleme, kontrol, fuzzy, sinir ağları, wavelet analiz gibi bir çok alanda ortaya koyduğu Toolbox adı verilen yardımcı alt programlarla da özelleştirilmi ş ve kolaylaştırılmış imkanlar sağlamış ve sağlamaya da devam etmektedir. Matlab’ın en bilinen nitelikleri şunlardır: • MATLAB programı C / C++ diline dönüştürülebilir, • 20.dereceden bir denklemin kökleri bulunabilir, • 100*100 boyutlu bir matrisin tersi alınabilir, • Bir elektrik motoru gerçek zamanlı kontrol edilebilir, • Bir otobüsün süspansiyon simülasyonu yapılabilir. Matlab kullanıcı şirketler arasında; • Dünyada, Boeing, Daimler Chrysler, Motorola, NASA, Texas Instrumens, Toyota

ve Saab vb. • Ülkemizde ise; ASELSAN, Tofaş, Arçelik, Siemens, Alçatel, Garanti Bankası,

Deniz Kuvvetleri vb. verilebilir. Matlab, birçok üstünlüklerine ve yaygın kullanım alanlarına oranla iki dezavantajı vardır: • Yavaş çalışır. • Fiyatı eşdeğerlerine göre pahalıdır. Örneğin ana program 781 £’dur ve her bir modül

ve toolbox’ın da ayrıca bir fiyatı vardır.

Page 6: matlab _documan_zbilgin_ders sunumu.pdf

6

1.2 Matlab’daki İfadeler Matlab diğer programlama dillerinde olduğu gibi bir giriş (input) olarak çeşitli matematiksel ve metinsel ifadeler sağlar. İfadeleri 4 ana madde altında inceleyebiliriz:

• Sayılar (Numbers) • Değişkenler (Variables) • İşleçler (Operators) • Fonksiyonlar (Functions)

1.2.1 Sayılar (Numbers) Matlab’ta sayılar yaygın olarak kullanılan onluk tabanda ifade edilirler. Bunun yanı sıra onluk tabanda üstel olarak ve ya i ya da j olarak kompleks sayı biçimlerinde de ifade edilebilirler Sayıların duyarlılığını belirtmek için kullanılan “eps“ sayısı yaklaşık olarak

138-10 ’den 138

10 ’e kadar olan tüm sayıları kapsayabilmektedir. Kullanım Örnekleri >>3 ans = 3

>>1i ans = 0 + 1.0000i

>>-85 ans = -85

>>-3.1415i ans = 0 – 3.1415i

>>0.005 ans = 0.0050

>>2+4i ans = 2.0000 + 4.0000j

>>9.6397238 ans = 9.6397

>>1.60210e–2 ans = 0.0160

Tablo 1.2.1 1.2.2 Değişkenler (Variables) Matlab’ta herhangi bir tip tanımlaması ve ya boyut ifadesine gerek yoktur. Matlab, yeni bir değişken ismi ile karşılaştığında, otomatik olarak ‘ans’ isminde bir değişken oluşturur ve uygun bir bellek miktarı ayırır. Eğer değişken zaten varsa, Matlab gerekli bir bellek ayırdığından sadece içeriği değişir. Değişken isimleri, harfler, sayılar ve alt çizgiden ( _ ) oluşabilir. Değişken isminin ilk karakteri mutlaka harf olmalıdır. Matlab, değişken isminin sadece ilk 63 karakterini kullanır. Matlab, büyük ve küçük harfe duyarlıdır, büyük harf ile küçük harfi ayırt eder. “A” ve “a” değişkenleri aynı değildir. Matlab’ta eğer değişkene karakter atanacaksa mutlaka tırnak ( “ ” ) içerisinde yazılmalıdır.

Page 7: matlab _documan_zbilgin_ders sunumu.pdf

7

Tablo 1.2.2 Kullanımı Açıklama >>degisken1=8 degisken1 = 8

“degisken1” olarak isimlendirilen 1x1 boyutlu bir matris oluşturulur ve bu matrise 8 değeri atanır.

>> degisken1 degisken1= 8

“degisken1” değişkeninin içerisindeki değer ekrana yazdırılır.

>>degisken1=6 degisken1 = 6

“degisken1” değişkeninin içerisindeki değer 6 olarak değiştirilir.

>>degisken2=’okul’ degisken2 = okul

“degisken2” olarak isimlendirilen 1x1 boyutlu bir matris oluşturulur ve bu matrise “okul” kelimesi atanır.

1.2.3 İşleçler (Operators) Matematiksel ifadeleri oluşturmak için operatörler ve önceden tanımlanmış semboller kullanılabilir. 1.2.3.1 İşlemsel operatörler Tablo 1.2.3.1 İŞLEÇ AÇIKLAMA

İŞLEÇ AÇIKLAMA

+ Toplama ^ Üs alma - Çıkartma .* Dizi Çarpma(eleman-eleman) . Ondalık noktası ./ Dizi sağa bölme (eleman-

eleman) = Atama .\ Dizi sola bölme (eleman-eleman) * Çarpma .^ Dizi üs alma (eleman-eleman) / Sağa Bölme .' Dizi transpoze \ Sola Bölme 1.2.3.2 Mantıksal operatörler

Mantıksal Operatörler Açıklamalar Örnek

== veya eq İki değerin eşit olup olmadığını

gösterir. Eğer eşitse lojik 1 yanlışsa lojik 0 değerini verir.

>> 4==8 ans =

0

>> eq(4,8) ans =

0

Page 8: matlab _documan_zbilgin_ders sunumu.pdf

8

~= veya ne

Eğer ifade eşitse o değilse 1 değeri verir.

>> 4~=2^3 ans =

0

>> ne(4,2^3) ans =

1 > Veya gt (Büyüktür) < Veya ge (Küçüktür) <= Veya lt (Küçük eşit) >= Veya le (Büyük eşit)

Verilen değerler arasında kıyaslamalarda kullanılırlar. İfade doğru ise lojik 1 yanlışsa

lojik 2 değerini verir.

>> 4>=3’ ans =

1

& veya and (ve) İki ifadenin de lojik 1 olduğunda lojik 1 diğer durumlarda ise lojik

0 değeri verir.

>> 4==2^2 & 3==4-1 ans =

1

| veya or (veya)

Karşılaştırılan iki lojik ifadenin ikisinden herhangi birinin lojik 1

olması durumunda 1 değeri verir.

İkisinin de lojik 0 olması durumunda lojik o verir.

>> or(0,1) ans =

1

~ veya not (değil) Karşılaştırılan iki ifadenin

sonucu lojik 1 ise lojik 0, lojik 0 ise lojik 1 değerini verir.

>> not(0) ans =

1

xor

Karşılaştırılan iki ifadenin lojik değerlerinin bir birinden farklı

olduğu durumlarda lojik 1 diğer durumlarda ise lojik o değeri

verir.

>> xor(0,0) ans =

0

>> xor(0,1) ans =

1

>> xor(1,0) ans =

1

>> xor(1,1) ans =

0 Tablo 1.2.3.2

1.2.4 Fonksiyonlar

Page 9: matlab _documan_zbilgin_ders sunumu.pdf

9

Matlab’ın çok güçlü ve kapsamlı bir fonksiyon yapısı vardır. Matlab’ta bazı fonksiyonlar önceden yerleştirilmi ş, bazıları ise sonradan dışarıdan yerleştirilmi ş M-dosyalarından oluşan Matlab kütüphanelerinde tanımlanmışlardır. 1.2.4.1 Trigonemetrik Fonksiyonlar

Fonksiyon Açıklama Örnek

sin Radyan cinsinden sinüs

hesaplamak için kullanılır.

>>sin(0.95) ans =

0.8134

sind Derece cinsinden sinüs

hesaplamak için kullanılır.

>>sind(30) ans =

0.5000

asin Radyan cinsinden arcsinüs hesaplamak için kullanılır.

>>asin(0.8134) ans =

0.9500

asind Derece cinsinden arcsinüs hesaplamak için kullanılır.

>>asind(0.5) ans =

30.0000

cos Radyan cinsinden cosinüs hesaplamak için kullanılır.

>>cos(0.1) ans =

0.9950

cosd Derece cinsinden cosinüs hesaplamak için kullanılır.

>>cosd(60) ans =

0.5000

acos Radyan cinsinden arccossinüs

hesaplamak için kullanılır.

>>acos(0.995) ans =

0.1000

acosd Derece cinsinden arccossinüs

hesaplamak için kullanılır.

>>acosd(0.5) ans =

60.0000

tan Radyan cinsinden tanjant hesaplamak için kullanılır.

>>tan(0.85) ans =

1.1383

tand Derece cinsinden tanjant

hesaplamak için kullanılır.

>>tand(45) ans =

1.0000

atan Radyan cinsinden arctanjant hesaplamak için kullanılır.

>>atan(1.1383) ans =

0.8500

atand Radyan cinsinden arctanjant hesaplamak için kullanılır.

>>atand(1) ans =

45.0000

sec Radyan cinsinden secant

hesaplamak için kullanılır. >>sec(0.15) ans = 1.0114

secd Derece cinsinden secant >>secd(60)

Page 10: matlab _documan_zbilgin_ders sunumu.pdf

10

hesaplamak için kullanılır. ans = 2.0000

asec Radyan cinsinden arcsecant hesaplamak için kullanılır.

>>asec(1.0114) ans =

0.1503

asecd Derece cinsinden arcsecant hesaplamak için kullanılır.

>>asecd(2) ans =

60.0000

csc Radyan cinsinden cosecant hesaplamak için kullanılır.

>>csc(0.75) ans =

1.4671

cscd Derece cinsinden cosecant hesaplamak için kullanılır.

>>cscd(30) ans =

2.0000

acsc Radyan cinsinden arccosecant

hesaplamak için kullanılır.

>>acsc(1.4671) ans =

0.7500

acscd Derece cinsinden arccosecant

hesaplamak için kullanılır.

>>acscd(2) ans =

30.0000

cot Radyan cinsinden cotanjant hesaplamak için kullanılır.

>>cot(0.55) ans =

1.6310

cotd Derece cinsinden cotanjant hesaplamak için kullanılır.

>>acotd(45) ans =

1.0000

acot Radyan cinsinden arccotanjant

hesaplamak için kullanılır.

>>cotd(1.631) ans =

0.5500

acotd Derece cinsinden arccotanjant

hesaplamak için kullanılır.

>>acotd(1) ans =

45.0000 Tablo 1.2.4.1

Matlab’de trigonometrik fonksiyonlarda derece yerine radian kullanılır. Bu nokta çok onemlidir. Kısaca 2π=360o veya π=180o derecedir. Örneğin derece cinsinden sin(30)=0.5 tir. Oysa Matlab bu işlemin sonucunu : » sin(30) ans = -0.99 şeklinde verir. Genel kullanım derece cinsinden olduğundan ya radian (pi değişkenini kullanarak) cinsinden belirtmeniz ya da π/180 ile çarpanız gereklidir. Programlama bölümünde örneğin direkt girilen sayının derece olarak algılanıp değerini veren bir fonksiyonda yazılabilir. Örneğimize devam edersek; » sin(pi/6) ans = 0.50

Page 11: matlab _documan_zbilgin_ders sunumu.pdf

11

Ancak bu yöntemde π yani pi’ye çevirmek (örneğin 6.47 açısı gibi) her zaman bu kadar olmayacağından » sin(30*pi/180) ans = 0.50 komutu yani açıyı parentezler içinde kalmak şartıyla pi/180 ile çarpmak daha pratiktir. Ör: x=45o için (sin4x)-(2cosx)3 ifadesinin değerini bulunuz. 1. yol: » x = pi/3; » sin(4*x)-(2*cos(x))^3 ans = -2.83

2.yol: » x = 45; » sin(4*x*pi/180)-(2*cos(x*pi/180))^3 ans = -2.83

1.2.4.2 Logaritmik ve Üstel Fonksiyonlar Tablo 1.2.4.2

exp Ekponansiyel hesaplamak için kullanılır.

>>exp(2) ans =

7.3891

expm1 Eksponansiyelin 1 eksiğini hesaplamak için kullanılır.

>>expm1 ans =

6.3891

log Doğal logaritma hesaplamak için kullanılır.

>>log(3) ans =

1.0986

log1p Sayının 1 fazlasının doğal logaritmasını hesaplamak için

kullanılır.

>>log1p(2) ans =

1.0986

log10 Logaritma hesaplamak için kullanılır.

>>log10(2) ans =

0.3010

log2 İki tabında logaritma hesaplamak için kullanılır.

>>log2 ans =

0.5850

sqrt Karekök hesaplamak için kullanılır. >>sqrt(4)

ans = 2

Page 12: matlab _documan_zbilgin_ders sunumu.pdf

12

1- Matlab’de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak gösterilmektedir. Yine bildiğimiz gibi lnx=logex demektir. Genel yazım formatı bir x değeri için lnx, Matlab’de log(x) şeklindedir. ln1 » log(1) ans = 0

ln10 log(10) ans = 2.3026

ln2 » log(2) ans = 0.6931

Matlab’da “e” sabit sayısı yani e=2.71828 veya kısaca e=2.71 sayısı e olarak tanımlanmamıştır. Bunun yerine bir sonraki konuda göreceğimiz exp(1) fonksiyonu kullanılabilir. Biliyoruz ki lne=1 dir ve bunu Matlab de sağlayalım: » exp(1) ans = 2.7183 2- Matlab’de matematikten bildiğimiz normal logaritma 10 tabanındadır ve bir x değeri için genel yazım formatı log10(x) şeklindedir. Ayrıca Matlab, 2 tabanındaki logaritma içinde hazır bir fonksiyon sağlar. Bir x değeri için genel yazım formatı log2(x) şeklindedir. şeklindedir. Doğal logaritma da olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile 1 arasındaki (0 ve 1 dahil değil) değerleri negatiftir. Şimdi sırasıyla log1, log10, log100 ve log 1000, sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım. log1 » log10(1) ans = 0

log10 » log10(10) ans = 1

log5 » log10(5) ans = 0.6990

Not: Bilimsel notasyondan bildiğimiz gibi 1.0966e+003=1.0966.103 demektir. Şimdi de aşağıdaki üstel yazılımlı ifadelerin değerleri bulalım : 312, (1/2)-4, 201/5, 103/5, 5.62.10-5, » 3^12, (1/2)^(-4), 20^(1/5), 10^(3/5), 5.62*10^(-5) 3- Bu konu başlığı altında çok kullanılan bir diğer fonksiyonumuz karekök alma işlemini gerçekleştiren sqrt fonksiyonudur. Genel yazım formatı bir x değeri için sqrt(x) şeklindedir. sqrt fonksiyonunu kullanarak sırasıyla √2, √23 işlemlerini yapalım. » sqrt(2), sqrt(23) ans = 1.4142 ans = 4.7958

Page 13: matlab _documan_zbilgin_ders sunumu.pdf

13

1.2.4.3 Karmaşık (Kompleks) Sayı İşlemleri

complex Sayıları, reel ve imajiner olarak yazmak için kullanılır.

>>complex(2,3) ans = 2.0000 + 3.0000i

angle Kompleks sayının açısını radyan cinsinden verir.

>>angle(2+4i) ans = 1.1071

conj Kompleks sayının eşleniğini hesaplar.

>>conj(2+5i) ans = 2.0000 – 5.0000i

imag Kompleks sayının sanal kısmını verir.

>>imag(4+9i) ans = 9

real Kompleks sayının gerçek kısmını verir.

>>imag(4+9i) ans = 4

isreal Sayının, reel bir sayı olup olmadığını sorgula. Reel sayı ise 1, değil ise 0 verir.

>>isreal(2+3i) ans = 0 >>isreal(4) ans = 1

abs Mutlak değer hesaplamak için kullanılır.

>>abs(-4) ans = 4

Tablo 1.2.4.3 Bilindiği gibi kompleks sayıların tipik genel formatı a + bi , a+bj veya a + ib , a+jb şeklindedir. Matlab dilinde bu notasyon a + bi, a + bj veya a+i*b , a+j*b şeklinde ifade edilir. Bu gösterim şekli aynı zamanda kartezyen gösterim olarak da adlandırılır. Sayılarda i veya j kullanımı arasında fark yoktur her ikisi de aynı şeyi ifade ederler. Örnek olarak 2-3j karmaşık sayısını ele alalım : » 2-3j ans = 2.0000 - 3.0000i

» 2-i3 ??? Undefined function or variable 'i3'.

» 2-i*3 ans = 2.0000 - 3.0000i

! abs (absolute) komutu sadece karmaşık sayı işlemlerinde değil diğer tüm mutlak değer alma x işlemlerinde kullanılabilir. Fonksiyon adı abs olup genel formatı bir x değeri için abs(x) şeklindedir. Ör: » abs(sqrt(3)-1) ans = 0.7321 1) x=2(1+4j) » x=2*(1+4*i)

2) k=(1.2+2.5i)3 » k=(1.2 +

3) a=-2-j ve b=3+√2 olmak üzere s1) -5a+b s2)a/b » a=-2-j;

Page 14: matlab _documan_zbilgin_ders sunumu.pdf

14

x = 2.0000 + 8.0000i

2.5*i)^3 k = -20.7720 - 4.8250i

» b=3+sqrt(2); » s1=-5*a+b s1 = 8.4142 + 2.0000i » s2=a/b s2 = -0.4531 - 0.2265i

1.2.4.4 Yuvarlama İşlemleri

fix Sayıyı sıfıra doğru yuvarlar. fix(4.6) ans = 4

floor Sayının tam kısmını alır. >>floor(8.4687) ans = 8

ceil Sayıyı yukarıya doğru yuvarlar. >>ceil(4.4) ans = 5

round Sayıyı en yakın tam sayıya yuvarlar.

>>round(4.55) ans = 5

Tablo 1.2.4.4 1.2.4.5 Kalan Bulma İşlemleri

mod Mod hesaplar. >>mod(17,3) ans = 2

rem Tam bölümden kalanı hesaplar. >>rem(17,3) ans = 2

sign Sayının işaretini verir. >>sign(4) ans = 1 >>sign(-4) ans = -1

Tablo 1.2.4.5

rem(x,y), eğer y ~= 0 (y≠0) ise x - y.*fix(x./y) demektir. rem(x,0) değeri NaN’dır. mod(x,y), eğer y ~= 0 (y≠0) ise x - y.*floor(x./y) demektir. mod(x,0) değeri x’dir. 1.3 Temel İstatiksel İşlemler max : Verilerin en büyük değerini bulur min : Verilerin en küçük değerini bulur length : Veri sayısını bulur

Page 15: matlab _documan_zbilgin_ders sunumu.pdf

15

sum : Verilerin toplamını hesaplar prod : Verilerin çarpımını hesaplar median : Verilerin ortanca değeri hesaplar std : Verilerin standart sapmasını hesaplar mean : Verilerin ortalama değerini hesaplar yani aritmetik ortalama alır geomean : Verilerin geometrik ortasını hesaplar harmmean : Verilerin harmonik ortasını hesaplar sort : Verilerin azalan sırada sıralar » d=[0.5 1 0.34 2.5 2.5 1.14 3.0 3.4 5 6.5 4.31 5.5] ; » max(d) ans = 6.5000 (En büyük değeri bulur)

» min(d) ans = 0.3400 (En küçük değeri bulur)

» length(d) ans = 12 (Vektörün boyunu yani veri sayısını bulur)

» sum(d) ans = 35.6900 (0.5+1.0+0.34+2.5+ …+4.31+5.5 toplamını bulur)

İstatiksel işlemler matrislerde sütün sütun işlem yapar. A bir matris ise sum(A) A matrisinin sütularını ayrı ayrı toplar.

1.4 Matlab’da Temel Yazım Notasyonu (Syntax) Matlab’ta her şey bir dizi ( array ) olarak işleme konur. Bir dizi, skaler, vektör, matris veya metinsel dizge ( karakter dizisi ) olabilir. 1x1 dizisi, skaler ( scaler ) ve ya metin dizgesi ( string ) gösterir. a=3 b=-26.56 c=3e-4 d=2+5*i e=’Bir tamsayı giriniz:” gibi. Metin dizgeleri ( text string ), “…” arasında verilir. nx1 ve ya 1xn dizisi bir vektör ( vector ) gösterir. x=[0,2,4,6] ifadesinde x, 1x4 boyutunda bir vektördür. Köşeli parantezler ( [ ] ) içindeki sayıların arasında virgül (,) ve ya en az bir ve ya daha fazla boşluk olmalıdır. nxm ve ya mxn dizisi bir matris ( matrix ) gösterir. Köşeli parantez ( [ ] ) içindeki sayı grupları arasında noktalı virgül ( ; ) olmalıdır. Noktalı virgül ( ; ) işareti; matrisin sütunlarını ayırır. Sayı gruplarında virgül ( , ) ve ya en az bir ve ya daha fazla boşluk olabilir. Kullanım >>x=[0,2,4,6] x = 0 2 4 6 >>y=[1,3,5,7;9,11,13,15;17,19,21,23] y = 1 3 5 7

Page 16: matlab _documan_zbilgin_ders sunumu.pdf

16

9 11 13 15 17 19 21 23

Tablo 1.4 1.5 Matlab’da Kullanılan Özel Sabitler ve Değerler Sabitler Değeri ans Bir işlemin son değeri i ve ya j 0 + 1.0000i pi 3.1415926535897… eps 2.2204e-016 realmin 2.2251e-308 realmax 1.7977e+308 NaN Sayı değil. Inf Sonsuz değer. computer PC WIN ( Bilgisayarın tipi ) version 7.1.0.246 (R14) Sevice Pack ( Matlab’ın versiyonu )

Tablo 1.5

1.6 Matlab’da Komut Satırından Girilen Kısa Yollar ↑ Ctrl-P Bir önceki satırı çağırır (Recall previous line) ↓ Ctrl-N Bir sonraki satırı çağırır (Recall next line) ← Ctrl-B Imleç bir karakter sola hareket eder (Move back one

character) → Ctrl-F Imleç bir karakter sağa hareket eder (Move forward

one character) ctrl-→ Ctrl-R Bir kelime sağa hareket eder (Move right one word) ctrl-← Ctrl-L Bir kelime sola hareket eder (Move left one word) home Ctrl-A Satrın basına gider (Move to beginning of line) end Ctrl-E Satrın sonuna gider (Move to end of line) esc Ctrl-U Geçerli satırı iptal eder yani tamamen siler (Clear line) del Ctrl-D Bir karakter sola doğru siler (Delete character at

cursor) backspace Ctrl-H Imlecten satırın başına kadar olan kısmı siler (Delete

character before cursor) Ctrl-K Imlecten satırın sonuna kadar olan kısmı siler (Delete

to end of line)

Tablo 1.6

Page 17: matlab _documan_zbilgin_ders sunumu.pdf

17

MATLAB’DA KULLANILAN GENEL KOMUTAR:

demo

Eğer matlab ilk defa kullanılıyor ya da belli komutların çalışması merak ediliyorsa demo komutu ile demostrasyon listesini görebilirler.Listeden yapacağımız bir seçimle seçtiğimiz işlevlerin icraatlarını adım adım izleme imkanı bulabiliriz.

>>demo …

>>demo …

who

Kullanıcı tarafından tanımlanan değişkenlerin listesini görüntüler.

>>degisken1=… >>degisken2=… >>who >>degisken1 degisken 2

a =5 5 >> b=[1 2 3;4 5 6] b = 1 2 3 4 5 6 >> who Your variables are: a b

whos

Kullanıcı tarafından tanımlanan değişkenleri boyutları ile birlikte ve bu değişkenlerin sıfır olmayan sanal kısımları olup olmadığını da görüntüler.

>>degisken1=… >>degisken2=… >>whos >>name size bytes class ..

>> a=5 a = 5 >> b=[1 2 3;4 5 6] b = 1 2 3 4 5 6 >> whos Name Size Bytes Class Attribut a 1x1 8 double b 2x3 48 double

Page 18: matlab _documan_zbilgin_ders sunumu.pdf

18

clear

Workspace de bulunan değişkenlerin tümünün silinmesini sağlar.

>>clear (Çalışılan workspace deki değişkenleri siler.) >>clear degisken (Sadece belirtilen değişkeni siler.) >>clear all (Workspacelerde bulunan bütün değişkenleri siler.)

>> a=3 a = 3 >> clear a > > a ??? Undefined function or variable 'a'.

clc

Command Window’da bulunan bütün değişkenleri, işlemleri silmeye yarar.

>>degisken >>clc

>> a=3 a = 3 >> clear a >> a ??? Undefined function or variable 'a'. >> clc

save Bellekte bulunan değişkenleri kaydetmemizi sağlar.Kaydedilen dosya .mat uzantılı bir şekilde *\matlab\work klasörünün içinde bulunur.

>>save (Çalışılan worksapcedeki değişkenleri kaydeder.) >>save calısma degisken1 degisken2 (Sadece degisken1 ve desisken2 değişkenlerini kaydeder.)

>> a=4 a = 4 >> b=6 b = 6 >> save a b

load

Workspacede save komutu ile kaydettiğimiz değişkenleri geri yüklemek için kullanılan komuttur.

>>load(matlab.mat dosyasındaki değişkenleri yükler.) >>load calısma(çalışma olarak kaydedilen dosyadaki değişkenleri yükler)

>> load a b >> a a = 4 >> b b = 6

Tablo 1.7

Page 19: matlab _documan_zbilgin_ders sunumu.pdf

19

1.7 MATLAB’DAK İ “FORMAT” KOMUTLARI

Format Komutu: Matlab, değerlerin sayısal formatını format komutu ile kontrol eder. Bu komut sayıların kaç hane yani kaç ondalıkla veya diğer bir deyişle kaç digit gösterileceğini belirler. Matlab’de tüm hesaplamalar, double precision da yapılır. Komut Açıklama format Varsayılan format (format short ile aynıdır) format short 5 rakamlı sabit nokta skala formatı format long 15 rakamlı sabit nokta skala formatı format short e 5 rakamlı kayan nokta formatı format long e 15 rakamlı kayan nokta formatı format short g 5 rakamlı en uygun sabit veya kayan nokta formatı format long g 5 rakamlı en uygun sabit veya kayan nokta formatı format bank Dolar ve sent için sabit format (İki ondalıklı gösterimler için

kullanılabilir.) format rat En küçük tamsayı oranı yaklaşımıyla ondalıklı olarak gösterir. 1.8 Matlab’da Eleman Elemana Hesaplama İşlemleri Eleman elemana hesaplama işlemi; eleman eleman icra edilir. Örneğin X ve Y’nin beşer elemanlı birer satır vektörü olduğu varsayılırsa, bu değerler ile yeni bir Z satır vektörünü oluşturmanın yolu, X ve Y’deki karşılık gelen elemanların gerekli işlemini yapmaktır. Z(1) = X(1) + Y(1) Z(2) = X(2) + Y(2) Z(3) = X(3) + Y(3) Z(4) = X(4) + Y(4) Z(5) = X(5) + Y(5) Toplama ve çıkarma işleminde eleman elemana hesaplama ve matris işlemleri aynıdır. Fakat eleman elemana işlemlerinde çarpma, bölme, üs alma ile matris işlemlerindeki çarpma, bölme, üs alma arasında farklılık vardır. Buradaki fark,; çarpma, bölme ve üs alma işaretinin önüne “.” işareti gelmesidir. 1.8.1 Eleman Elemana Toplama İşlemi Kullanım >>X=[4 6 5 8 9 2] X = 4 6 5 8 9 2 >>Y=[7 8 3 2 5 9] Y = 7 8 3 2 5 9 >>X+Y ans =

Page 20: matlab _documan_zbilgin_ders sunumu.pdf

20

11 14 8 10 14 11 >>Z=X+Y Z = 11 14 8 10 14 11

Tablo 1.8.1

1.8.2 Eleman Elemana Çıkarma İşlemi Kullanım >>X=[5 3 6 9 0 1] X = 5 3 6 9 0 1 >>Y=[3 4 5 6 2 0] Y = 3 4 5 6 2 0 >>X-Y ans = 2 -1 1 3 -2 1 >>Z=X-Y Z = 2 -1 1 3 -2 1

Tablo 1.8.2 1.8.3 Eleman Elemana Çarpma İşlemi Kullanım >>X=[9 8 4 3 1 7] X = 9 8 4 3 1 7 >>Y=[6 4 5 8 3 2] Y = 6 4 5 8 3 2 >>X*Y ??? Error using = = > m times Inner matrix dimensions must agree. >>X.*Y ans = 54 32 20 24 3 14 >>Z=X.*Y Z = 54 32 20 24 3 14

Tablo 1.8.3

1.8.4 Eleman Elemana Bölme İşlemi Kullanım >>X=[5 8 6 3 1 9] X = 5 8 6 3 1 9

Page 21: matlab _documan_zbilgin_ders sunumu.pdf

21

>>Y=[2 4 3 1 2 6] Y = 2 4 3 1 2 6 >>X./Y ans = 2.5000 2.0000 2.0000 3.0000 0.5000 1.5000 >>X.\Y ans = 0.4000 0.5000 0.5000 0.3333 2.0000 0.6667

Tablo 1.8.4 1.8.5 Eleman Elemana Üs Alma İşlemi Kullanım >>X=[3 4 2 1 6 5] X = 3 4 2 1 6 5 >>Y=[5 6 1 2 4 3] Y = 5 6 1 2 4 3 >>X.^Y ans = 243 4096 2 1 1296 125 >>Y.^X ans = 125 1296 1 2 4096 243

Tablo 1.8.5

1.9 Program Dallandıran İfadeler Deyim ve Tanımı Kullanımı Örnek

If deyimi Eğer önerilen mantıksal ifade doğru ise deyim de olan işlemi gerçekleştirir. Eğer yanlışsa hiçbir şey yapmadan çıkar.

if Mantıksal ifade Deyim end.

a=5; b=2; if a>=b a='büyük olan a dır' end --------------Çıktısı-------------- büyük olan a dır

İç içe if yapısı Mantıksal ifade 1 doğru ise deyim bir gerçekleşir

if mantıksal ifade 1 Deyim 1 İf mantıksal ifade 2 Deyim2

ali=55; if ali>=50 if ali>=90 disp('Ali A aldı')

Page 22: matlab _documan_zbilgin_ders sunumu.pdf

22

deyim 2 doğruysa deyim 2 değilse deyim üç gerçekleşir Eğer birinci deyim doğru değilse sadece deyim 4 gerçekleşir. Kullanılması pek tercih edilmez.

End Deyim 3 End Deyim 4

end disp('Ali dersi geçti') end if ali<50 disp('ali dersi geçemedi') end --------------Çıktısı-------------- Ali dersi geçti

Else deyimi Mantıksal 1 ifadesi doğru ise deyim 1 gerçekleşir değilse deyim iki gerçekleşir.

if mantıksal ifade 1 deyim1 else deyim2 end

aysee=45; if aysee>=50 disp('sınıfı Ayşe geçti') else disp('sınıfı Ayşe geçemedi') end --------------Çıktısı-------------- sınıfı Ayşe geçemedi

Elseif deyimi Mantıksal 1 ifadesi doğru ise deyimler 1 deki işlemler yapılır. Eğer yanlışsa başka bir mantıksal ifade olan mantıksal 2 ifadesi işletilir. Eğer doğru ise deyimler 2 deki işlemler çalışır. Yanlış ise deyimler 3 ifadesi işletilir.

if mantıksal ifade 1 deyimler 1 elseif mantıksal ifade 2 deyimler 2 else deyimler 3 end

ali=95; if ali>=90 disp('Ali A aldı') elseif ali>=50 disp('Ali sınıfı geçti') else disp('Ali sınıfta kaldı') end --------------Çıktısı-------------- Ali A aldı

For deyimi İfadede döngü oluşturmak amacıyla kullanılır. Sayaç her döngü de artarak değerdeki ifadeye eşit oluncaya kadar sürer. Döngüdeki sayaç, a’dan başlayıp b adımla c’ye kadar değerler alır.

for sayac=deger1:deger2 deyimler end veya for sayac=a:b:c deyimler end

for i=2:2:8 i end --------------Çıktısı-------------- i = 2 i = 4 i = 6 i = 8

While deyimi Karşılaştırma ifadesinin doğru olduğu sürece döngüyü sürdürür.

while ifade deyimler end

a=1; while a<5 a a=a+1; end --------------Çıktısı------------- a = 1

Page 23: matlab _documan_zbilgin_ders sunumu.pdf

23

a = 2 a = 3 a = 4

Try catch deyimi İlk Try ile catch arasındaki değimde herhangi bir hata oluşursa bir sonraki try ile catch arasındaki ifade oynatılır. Catch ile end arasında herhangibir işlem yapmadan çıkılır. lasterr ile hata yakalanabilir.

try deyim 1 catch deyim 2 end

a=[4 8 15; 16 23 42]; b=[2 4 ; 6 8]; try c=a*b catch disp('hatalı matris boyutu') end --------------Çıktısı-------------- hatalı matris boyutu

Switch – case

Degişkende ki değer ifadeler ile kıyaslanır hangi ifadeye eşit ise o ifadeden sonra gelen deyim çalıştırılır. Hiçbir duruma uymayan bir değişken varsa o zaman otherwisetan sonra gelen deyimler çalıştırılır. İfadelerin arasına ‘,’ konulara ifadeler arttırılabilir.

switch degisken case ifade1 deyimler1 case ifade2 deyimler2 case ifade3,ifade4,.. deyimler3 . . otherwise deyimlerx end

a=8; switch a case 2 disp('a ikidir') case 3,4 disp('a üç veya dörttür') otherwise disp('a 2,3,4 değildir') end --------------Çıktısı-------------- a 2,3,4 değildir

Tablo 1.9

1.10 Diziler Matlab’in en temel işlem elemanı ve veri tipi dizilerdir (array). Dizi, en genel matematiksel tanımı ile nümerik ve metinsel değerler topluluğudur. Matlab’de herşey bir dizi olarak işleme konur. Matlab’de üç tip dizi ifadesi bulunmaktadır:

1. Reel ile kompleks sayıları ifade eden çiftkat veya nümerik diziler (double veya numeric array)

2. Nesneleri ve metinsel dizgeleri ifade eden hücre diziler (cell array) 3. Genelleştirme ve çeşitli tipleri ifade eden n-boyutlu diziler (n-dimensional array)

1.10.1 Vektör İşlemleri

Page 24: matlab _documan_zbilgin_ders sunumu.pdf

24

Vektörler, mx1 veya 1xn boyutlu dizilerdir. mx1 boyutlu diziye sütun vektörü denir ve eleman sayısı m tanedir; 1xn boyutlu diziye sütun vektörü denir ve eleman sayısı n tanedir. Matlab’de vektörleri oluşturmanın üç temel yolu vardır:

1. Direkt olarak (köşeli parantez […] kullanma) 2. Eşit aralıklı elemanlar kullanarak (: işaretini kullanarak veya linspace, logspace

komutlarıyla) 3. Utility fonksiyonlar kullanarak (rand, randn, ones, zeros komutlariyla)

1.10.1.1Temel Vektör İşlem Notasyonları İşlem Matlab formu Örnek Uygulama

a=[1 2 3] , b=[-1 2 6] Açıklama

Toplama

a + b 0 4 9 Dizilerin karşılıklı elemanları toplanır.

Çıkarma a – b 2 0 -3 Dizilerin karşılıklı elemanları çıkartılır.

Çarpma a .* b -1 4 18 Dizilerin karşılıklı elemanları çarpılır.

Sağa Bölme

a ./ b -1.0000 1.0000 0.5000 a dizisinin her bir elemanı,

sırasıyla b dizisinin her bir elemanına bölünür.

Sola Bölme a .\ b

-1 1 2 b dizisinin her bir elemanı, sırasıyla a dizisinin her bir elemanına bölünür.

Üs alma

a .^ b

1 4 729 a dizisindeki her bir elemanın, sırasıyla b dizisindeki elemanlarla üsleri alınır..

Transpoze a’ 1 2 3

Satır vektörünü sütun vektörüne çevirir veya tersini yapar.

Tablo 1.10.1.1 1.10.1.2 Eşit Aralıklı Eleman Kullanarak Vektör Olu şturma

Bu yöntem ile Matlab’de vektör oluşturma üç şekilde olur: 1- Vektör elemanları birbirlerini, sabit miktarda artan veya azalan bir değerle (step size) takip ederler. : işleci (colon operator) bu tür bir işlem için en temel bir yöntemdir. Genel sözdizimi formatı: f = İlkDeger : DeğişimMiktarı : SonDeger şeklindedir. Değişim miktarı belirtilmezse IlkDeger’den sonra 1’er er artım olacağını ifade eder. : işaretinden önce veya sonra görüntü netliği için boşluk verebilirsiniz. Örneğin, » n = 1:10

Page 25: matlab _documan_zbilgin_ders sunumu.pdf

25

n = 1 2 3 4 5 6 7 8 9 10 n değişkeni 1, 2, 3, 4 ... ve 10 tamsayılarını üretir diğer bir deyişle elemanları [1 2 3 4 5 6 7 8 9 10] olan bir n satır vektörü gösterir. Görüldüğü gibi artım miktarı belirtilmezse Matlab bunu 1 birim olarak kabul eder. » p = 0.2:0.25:1 p = 0.2000 0.4500 0.7000 0.9500 p değişkeni 0.2 ile 1 arasında 0.25 artımla [0.2 0.45 0.7 0.95] satır vektörünü üretir. 2- linspace ve logspace komutlarını kullanmak. Bu durumda başlangıc ve bitiş noktaları arasında kaç nokta olacağını siz belirtirsiniz. linspace komutunun genel sözdizimi formatı: linspace(x1, x2, n) şeklindedir. x1, aralığın IlkDeger ile x2, SonDeger değerleridir. n, IlkDeger ile SonDeger arasındaki nokta sayısıdır. Eğer n belirtilmezse iki nokta arası lineer olarak 100 eşit parçaya ayrılır. linspace, lineer aralıklı bir vektör üretir. linspace özellikle eğri çizimlerinde ve eğri uydurma ilerinde çok yararlıdır. logspace komutunun genel sözdizimi formatı: logspace(x1, x2, n) şeklindedir. n, IlkDeger (x1) ile SonDeger (x2) arasındaki nokta sayısıdır. Eğer n belirtilmezse 10x1 ile 10x2 arası logaritmik olarak eşita aralıklı 50 satır vektörü üretir. logspace, logaritmik aralıklı bir vektör üretir ve aslında logaritmik ölçekte linspace komutunun rolunu oynar. Bir vektörde logaritmik aralıklı elemanlar özellikle üstel fonksiyonlarla (log-log ve semilog grafikler gibi) ilgili iseniz çok yararlıdır. Sistem frekans cevabı, Bode diyagramları vb gibi logaritmik ölçek gerektiren grafik çizimlerinde kullanabilirsiniz. 1.10.1.3 Vektör Bilgilerini Elde Etmek size(f): komutu vektörün 1xn veya nx1 olarak kaç n boyutunda olduğunu verir. Size komutunun ilk değeri satır sayısını son değeri sutun sayısını verir. length(f): komutu vektörün uzunluğunu diğer bir deyişle boyunu yani vektörün kaç

elemanı olduğunu gösterir. Bu komut yerine max(size(A)) komutu da kullanılabilir. f(n): komutu vektörün n. elemanını (n=1,2,3,...) gösterir. f(5), f vektörünün 5. elemanını gösterir. f(1:5): komutu vektörün ilk beş elemanını gösterir. Bir vektörün ilk elemanı örneğimizdeki f vektörü için f(1) ile ve son terimi f(length(f)) ile bulunur. 1.10.2 Matris İşlemleri Matlab’de matrisleri oluşturmanın üç temel yolu vardır: 1. Direkt olarak (köşeli parantez […] kullanma) 2. Utility fonksiyonlar kullanarak (eye, ones, zeros, rand, randn komutlarıyla) 3. Özel matrisler (pascal, hilbert vb fonksiyonlarla)

Page 26: matlab _documan_zbilgin_ders sunumu.pdf

26

1.10.2.1 Utility fonksiyonlar kullanarak (rand, ones, zeros, eye komutlarıyla) matris oluşturma a) rand fonksiyonunu kullanmak. Bazen sadece bir özelliği veya bir şeyi denemek ve durumunu gözlemek için rastgele sayılardan oluşmus bir matris oluşturabilirsiniz. İşte rand uniform olarak dağılmış rastgele sayılı matrisler üretir. rand fonksiyonu için genel sözdizimi formatı: F = a + (b-a)*rand(m,n) şeklindedir. Burada F matrisi, a ile b sayıları arasında uniform olarak dağılmış rastgele sayılardan oluşur ve mxn, matris boyutunu belirler. Sadece rand(k) komutunun kullanımı ile kxk boyutunda 0 ile 1 arasında rastgele sayılı matris üretirsiniz. Diğer bir ifade ile rand(k) ile rand(k,k) aynı işleve sahiptir. Örneğin a=-5 ile b=5 arasında yani -5 ile +5 arasında rasgele sayılı 2x4 (iki satır 4 sütunlu) bir matris üretmek istiyorsanız » a = -5 + 10*rand(2,4) a = -0.5490 -0.3401 3.4622 -2.9735 4.3181 -0.8135 0.2515 1.7214 b) ones ve zeros fonksiyonlarını kullanmak. Bu fonksiyonlardan ones ile elemanları sadece 1’lerden oluşan, zeros ile elemanları sadece 0’lardan oluşan matrisler üretilir. ones fonksiyonu için genel sözdizimi formatı: F = k*ones(m,n) veya F = k*ones([m,n]) şeklindedir. Burada mxn matris boyutunu belirler. F matrisi, k=1 için elemanları sadece 1 olan vektör, k≠1 ve k≠0 için elemanları k olan mxn boyutunda bir matris gösterir. ones(t), tüm elemanları 1 olan boyutu txt olan kare matris üretir. zeros fonksiyonu için genel sözdizimi formatı: F = zeros(m,n) veya F = zeros([m,n]) şeklindedir. Burada mxn matris boyutunu belirler ve F, elemanları sadece 0 olan mxn boyutunda bir matris gösterir. ones(t), tüm elemanları 1 olan boyutu txt olan kare matris üretir. zeros(t), tüm elemanları 0 olan boyutu txt olan kare matris üretir. Genellikle ones, aynı değerli bir matris oluşturmak ve bazı işlemlerde yardımcı bir araç olarak ; zeros ise script ve fonksiyon işletimini hızlandırmak, mühendislik işlemlerinde sparce matris oluşturmak ve yine bazı işlemlerde yardımcı araç olarak kullanılır. » e = ones(3) e = 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 komutu 3x3 boyutunda her bir elemanı 1 olan kare matris üretir.

» g = zeros(3) g = 0 0 0 0 0 0 0 0 0 komutu 3x3 boyutunda her bir elemanı 0 olan kare matris üretir.

Page 27: matlab _documan_zbilgin_ders sunumu.pdf

27

» e = ones(2,3) e = 1.00 1.00 1.00 1.00 1.00 1.00 komutu 2x3 boyutunda her bir elemanı 1 olan bir matris üretir.

» g = zeros(2,3) g = 0 0 0 0 0 0 komutu 2x3 boyutunda her bir elemanı 0 olan bir matris üretir.

Tablo 1.10.2.1

c) eye fonksiyonunu kullanmak. Bu fonksiyon ile birim matris oluşturulur. Bilindiği gibi birim matris, birinci diyagoneli 1 olan diğer tüm elemanları 0 olan bir matristir. Genelde büyük I harfi ile temsil edilir. eye fonksiyonu için genel sözdizimi formatı: F = eye(m,n) veya F = eye([m,n]) şeklindedir. Burada mxn matris boyutunu belirler. eye(t), boyutu txt olan kare matris üretir. Birim matris genelde kare matris olarak kullanılır. » I = eye(3) I = 1.00 0 0 0 1.00 0 0 0 1.00 1.10.2.2 Özel matrisler (pascal, magic, hilbert, spiral, meshgrid vb fonksiyonlarla) oluşturma a) pascal(k) fonksiyonu: Pascal üçgeni elemanlarından oluşur. Ör. » pascal(4) b) magic(k) fonksiyonu: kxk boyutunda 1’den k2 ‘ye kadar sayılardan oluşan k=2 hariç eşit satır, sütun ve diagonal toplamına sahip bir kare matris oluşturur. Ör. » magic(3) c) hilb(k) fonksiyonu kxk boyutunda her bir elemanı 1/(i+j-1) ile belirlenen hilbert matrisi olarak adlandırılan bir kare matris oluşturur. Matrisin genel elemanı hilb(ij) olup i satır,j sütun numarasını gösterir. Ör. >>hilb(5) 1.10.2.3 Matris Bilgi Alma Fonksiyonları Matlab’de yerleşik bazı matrisler ilgili fonksiyonlar ile matrisler hakkında bilgi alabiliriz. Bu bilgiler arasında matrisin determinat’ı, rank’ı, matrisin boyutu, matrisin veri özellikleri, diagonel elemanları vb. sayılabilir. 1 4 7 A = -2 5 -8 3 6 1 matrisi üzerinde bazı işlemler yapalım. » A =[1 4 7 -2 5 -8 3 6 1]

Page 28: matlab _documan_zbilgin_ders sunumu.pdf

28

Matrisin transpozesi : Bir A matrisinin transpozesi A' ile bulunur. ' transpoze operatörü ile matrisin satır ve sütunları yer değiştirir. (A')'=A dır yani transpozenin transpozesi matrisin kendisidir. » TranspozeA = A' TranspozeA = 1 -2 3 4 5 6 7 -8 1 Matrisin determinantı: Bir A matrisinin determinantı det(A) fonksiyonu ile bulunur. Matris, kare matris olmalıdır. » A = [1 4 7; -2 5 -8; 3 6 1]; » detA=det(A) detA = -224 Matrisin tersi: Bir A matrisinin tersi inv(A) fonksiyonu ile bulunur. Matris, tekil (singular) ve kare (square) matris olmalıdır. Konu dışı olmakla beraber karesel olmayan matrislerin tersini alabilmek için pinv komutu kullanılır. » A = [1 4 7; -2 5 -8; 3 6 1]; » TersA=inv(A) TersA = -0.2366 -0.1696 0.2991 0.0982 0.0893 0.0268 0.1205 -0.0268 -0.0580 » B = [1 0 3; 4 0 6; 2 0 5]; » inv(B) Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf Görüldüğü gibi eğer matrisiniz singular yani tekil değilse kare matris de olsa tersini alamazsınız. B matrisinin determinantı da det(B)=0’dır zaten. Matrisin rankı: Bir A matrisinin rankı rank (A) fonksiyonu ile bulunur. » A = [1 4 7; -2 5 -8; 3 6 1]; » rankA=rank(A) rankA = 3 Matrisin boyutu: Bir A matrisinin boyutu yani kaça kaç olduğu size(A) fonksiyonu ile bulunur. Verilen cevapta yan yana iki sayıdan birincisi satır sayısını, ikincisi sütun sayısını gösterir. » A = [1 4 7; -2 5 -8; 3 6 1]; » boyutA=size(A) boyutA =

Page 29: matlab _documan_zbilgin_ders sunumu.pdf

29

3 3 yani A matrisi 3x3 boyutlu bir matristir. Daha açık bir şekilde görmek için aşağıdaki komutta kullanılır. Matrisin diagonel elemanları: Bir A matrisinin ana diagonel elemanları diag(A) fonksiyonu ile bulunur. » A = [1 4 7; -2 5 -8; 3 6 1]; » ana_diag=diag(A) ana_diag = 1 5 1 Matrisin özdeğerleri ve özvektörleri: Matrisin öz değerleri ve özvektörleri eig(A) fonksiyonu ile bulunur. » A = [1 4 7; -2 5 -8; 3 6 1]; » OzDegerler=eig(A) OzDegerler = -2.9650 4.9825 + 7.1219i 4.9825 - 7.1219i Hem ozvektörleri hem de özdeğerlerini bulmak için » [v,d]=eig(A) v = -0.8965 0.4700 - 0.2917i 0.4700 + 0.2917i 0.1810 0.1587 + 0.6635i 0.1587 - 0.6635i 0.4044 0.4735 - 0.0669i 0.4735 + 0.0669i d = -2.9650 0 0 0 4.9825 + 7.1219i 0 0 0 4.9825 - 7.1219i komutu kullanılır. v, sütunlar olarak özdeğer vektörlerini veya özvektörler matrisini ; d, ana diagonel boyunca özdeğerleri gösterir. 1.10.2.4 Matris İndeksleme Ve Kolon Rotasyonu Bir A matrisini düşünürsek ; A(k) gösterimi k=1,2 ... olmak üzere k. elemanını verir. Eleman sırası ilk sütun elemanlarından başlar ikinci sütun elemanları vb şeklinde devam eder. A(i,j) gösterimi i. satır j. sütun elemanını verir. A(i:j) gösterimi eleman sırası ilk sütun elemanlarından başlayarak i. eleman ile j. eleman arasındaki elemanları verir yani [A(i) A(i+1) ... A(j)] şeklinde bir vektör oluşturur. A(:,j) gösterimi A matrisinin j. sütununu verir. A(:,i:j) gösterimi [A(:,i);A(:,i+1);...;A(:,j)] şeklinde i. sütundan j. sütuna kadar sütunlardan oluşan bir alt matris verir. A(i,:) gösterimi A matrisinin i. satırını verir.

Page 30: matlab _documan_zbilgin_ders sunumu.pdf

30

A(i:j,:) gösterimi [A(i,:);A(i+1,:);...;A(j,:)] şeklinde i. satırdan j. satıra kadar satırlardan oluşan bir alt matris verir. Örnek olarak aşağıdaki 5x5 boyutlu yani 25 elemanlı Amatrisi üzerinde duralım: » A= [ 4 2 3 -1 2; -4 1 -2 2 7; 2 0 3 9 5; 1 -7 3 5 7; 5 -1 0 -2 8] A = 4 2 3 -1 2 -4 1 -2 2 7 2 0 3 9 5 1 -7 3 5 7 5 -1 0 -2 8 » A(3) ans = 2 A matrisinin 3. elemanı 2’dir.

» A(18) ans = 9 A matrisinin 18. elemanı 9’dur.

» A(1,4) ans = -1 A matrisinin 1. satır 4. sütun kesişimindeki eleman -1’dir.

» A(1:7) ans = 4 -4 2 1 5 2 1 A matrisinin 1. elemandan 7. elemana kadar olan elemanları verir.

» A(2,:) ans = -4 1 -2 2 7 A matrisinin 2. satırını verir.

» A(3:5,:) ans = 2 0 3 9 5 1 -7 3 5 7 5 -1 0 -2 8 A matrisinin 3. 4. ve 5. satırlarından oluşan alt matrisi verir

» A(:,4) A = -1 2 9 5 -2 Matrisin 4. sütünunu verir.

» A(:,1:3) ans = 4 2 3 -4 1 -2 2 0 3 1 -7 3 5 -1 0 A matrisinin 1., 2. ve 3. sütunlarından oluşan alt matrisi verir.

Tablo 1.10.2.4 1.10.2.5 Matris İşlemleri Kullanımı Açıklama Örnek

Toplama çıkarma çarpma bölme

C=A+B C=A-B C=A*B

Normal sayılarda olduğu gibi matrislerinde aynı şekildedir. Bazı dikkat edilmesi gereken hususlar ise matris işlemlerinde toplama işleminde değişme özelliği varken çarpma işleminde değişme özelliği yoktur. Toplanacak iki matrisin satır ve sütün sayıları eşit olmak zorundadır.

>> A=[2 3;4 3] A = 2 3 4 3 >> B=[5 9; 2 4] B = 5 9 2 4 >> C=A+B C =

Page 31: matlab _documan_zbilgin_ders sunumu.pdf

31

Çarpma işleminde ise ilk çarpılan matrisin sütun sayısı ile diğer matrisin satır sayısı eşit olmak zorundadır.

7 12 6 7

Üst alma

C=A.^k

A matrisinin k. kuvveti C matrisine atanır.

>> A.^2 ans = 4 9 16 9

Transpoze alma

C=A’

A matrisinin transpozesini (evriğini) C matrisine atar

>> A' ans = 2 4 3 3

Ters alma

C=inv(A)

A matrisinin tersini C matrisine atar.

>> C=inv(A) C = -0.5000 0.5000 0.6667 -0.3333

Determinant alma

C=det(A)

A matrisinin determinantını C matrisine atar.

>> C=det(A) C = -6

Matris Rankı

C=rank(A)

Determinantı sıfırdan farklı olan en yüksek boyutlu matrisin boyutunu C’ye atar.

>> c=rank(A) c = 2

Matris Boyutu C=size(A) Veya [m,n]=size(A)

Matrisin boyutunu c’ye atar. Matrisin boyutunu satır ve sutun sayıları olarak m ve n atar.

>> [m,n]=size(A) m = 2 n = 2

Tablo 1.10.2.5

1.11 Matlab’ta Denklem Çözümleri Matlab’ta polinomlar bir vektör ile temsil edilirler. Polinom oluşturmak için yüksek dereceliden düşük dereceliye doğru azalan sırada polinom katsayıları yazılır. Örneğin;

4-5x+4x+2x+x=F 234 polinomu, programa aşağıdaki şekilde yazılır: >>F=[1 2 4 5 -4] F = 1 2 4 5 -4

8+3x+x=F 35

Page 32: matlab _documan_zbilgin_ders sunumu.pdf

32

polinomu ise: >>F=[1 0 3 0 0 8] F = 1 0 3 0 0 8 şeklinde yazılarak ifade edilir. 1.11.1 Polinomun herhangi bir kök için değerinin bulunması Denklem Çözümü

6+x3-x2=)x(f 2 f(4)=?

>>polyval([2 -3 6],4) ans = 26

8-x+x3+x=)x(f 234 f(3)=?

>>f=[1 3 1 0 -8] f = 1 3 1 0 -8 polyval(f,3) ans = 163

5+x4+x2+x=)x(f 246 f(2)=?

>>f=[1 0 2 0 4 0 5] f = 1 0 2 0 4 0 5 F=polyval(f,2) 117

Tablo 1.11.1

Page 33: matlab _documan_zbilgin_ders sunumu.pdf

33

1.11.2 Doğrusal denklem çözümleri Denklem Kullanım

6+5x+x=)x(f 2 x=?

>>roots([1 5 6]) ans = -3.0000 -2.0000

72-36x-10x-x5-x2+x=)x(f 2345 x=?

>>F=[1 2 -5 -10 -36 -72] F = 1 2 -5 -10 -36 -72 >>roots([F]) ans = 3.0000 -0.0000 + 2.0000i -0.0000 - 2.0000i -3.0000 -2.0000

Tablo 1.11.2

1.11.2.1 Doğrusal denklem takımlarının çözümü Denklemler Çözümleri

7-=x3+x4-x 321

14=x3-x+x3 321

5=x+x+x2 321

=x1 ?

=x 2 ?

=x 3 ?

>>X=[1 -4 3;3 1 -2;2 1 1] X = 1 -4 3 3 1 -2 2 1 1 >>Y=[-7;14;5] Y = -7 14 5 >>X\Y ans = 3.0000 1.0000 -2.0000

1-=x+x3+x 321

13=x3+x-x2 321

-1=x-x2+x 321

=x1 ?

=x 2 ?

=x 3 ?

>>A=[1 2 1;3 -1 2;1 3 -1] A = 1 2 1 3 -1 2 3 3 -1 >>B=[-1 13 -1] B = -1 13 -1 >>B/A ans = 4.0000 -2.0000 1.0000

Tablo 1.11.2.1

Page 34: matlab _documan_zbilgin_ders sunumu.pdf

34

1.11.2.2 Doğrusal olmayan denklemlerin çözümü Doğrusal olmayan denklemlerin, doğrusal denklemlerde olduğu gibi tek bir standart biçimi yoktur. Doğrusal olmayan denklemlerin çözümü, doğrusal denklem çözümü kadar basit olmayıp bunların çözümü için ayrıca bir fonksiyon dosyası hazırlanması gerekir. fzero(‘fonksiyon_adı’,başlangıç_değeri) Fonksiyon dosyasının hazırlanması Fonksiyon dosyaları Matlab Editör’ünde “.m” uzantılı olarak M-file dosyasında oluşturulurlar. Function çıkış_argümanı = fonksiyon_adı(giriş_argümanı) çıkış_argümanı=fonksiyon Denklemler M-file Çözüm

6-x4+x-x3+x2-x=)x(f 2345 x=?

function y=fx(x) y=x^5-2*x^4+3*x^3-x^2+4*x-6 end

>>fzero(‘fx’,0) ans = 1.1142

4+2x-e=)x(f x3 x=?

Function f=gx(x) f=exp(3*x)-2*x-4

>>fzero(‘gx’,0) ans = 0.5420

Tablo 1.11.2.2

1.11.2.3 Doğrusal olmayan denklem takımlarının çözümü

Doğrusal olmayan denklem takımlarının çözümünde “fsolve” fonksiyon fonksiyonu kullanılır. Bu fonksiyonun da kullanılabilmesi için bir fonksiyon dosyasının hazırlanması gereklidir. fsolve(‘fonksiyon_adı’,[başlangıç_değerleri]) Denklemler M-file Çözümü

136=y2+x2 23

12=4y-x3 32 x=? y=?

Function z=fxy(x) z=[2*x(1)^3+2*x(2)^2-136; 3*x(1)^2-4*x(2)^3-12]

>>fsolve(‘fxy’,[1,1]) ans = 3.9934 2.0771

24=z-y3+x2 23

574=z+2y-x3 432

354=z+y4+x5 24 x=? y=?

Function f=fxyz(x) f=[2*x(1)^3+3*x(2)^2-x(3)-24; 3*x(1)^2-2*x(2)^3+x(3)^4-574; 5*x(1)+4*x(2)^4+x(3)^2-354];

>>fsolve(‘fxyz’,[1,2,3]) ans = 1.0000 3.0000 5.0000

Page 35: matlab _documan_zbilgin_ders sunumu.pdf

35

z=? Tablo 1.11.2.3

1.11.3 Türev Uygulamaları Bir ifadenin türevini hesaplamak için kullanılır. “diff” komutu ile hesaplanır. Denklemler Çözümü

3x=)x(f ?=)x('f

>> diff(‘x^3’) ans = 3*x^2

8+2x-x3+x=)x(f 35 ?=)x('f

>> diff(‘x^5+3*x^3-2*x+8’) ans = 5*x^4+9*x^2-2

)5+x2)(x4+x3(=)x(f 23 ?=)x('f

>> diff(‘(3*x^3+4*x)*(2*x^2+5)’) ans = (9*x^2+4)*(2*x^2+5)+4*(3*x^3+4*x)*x

8+3x

x5-x2=)x(f 2

3

?=)x('f

>> diff(‘(2*x^3-5*x)/(3*x^2+8)’) ans = (6*x^2-5)/(3*x^2+8)-6*(2*x^3-5*x)/(3*x^2+8)^2*x

Tablo 1.11.3.1

Denklemleri daha anlaşılır bir biçimde görmek için “pretty” komutu kullanılır.

Denklemler Çözümü

)x5+x2)(x5+x4(=)x(f 323 ?=)x('f

>> pretty(diff('(4*x^3+5*x^2)*(3*x^3+5*x)')) 2 3 3 2 2 (12 x + 10 x) (3 x + 5 x) + (4 x + 5 x ) (9 x + 5)

x4+x2

x2+x3=)x(f 2

34

>> pretty(diff('(3*x^4+2*x^3)/(2*x^2+4*x)')) 3 2 4 3 12 x + 6 x (3 x + 2 x ) (4 x + 4) ------------ - ------------------------- 2 2 2 2 x + 4 x (2 x + 4 x)

Tablo 1.11.3.2

Bir fonksiyonun n. dereceden türevini bulmak için denklemden sonra “,” konularak türev derecesi yazılır. Denklemler Çözümü

34 x2+x=)x(f >> diff('x^4+2*x^3',2) ans =

Page 36: matlab _documan_zbilgin_ders sunumu.pdf

36

?=dx

fd2

2

12*x^2+12*x

789 x+x+x=)x(f

?=dx

fd6

6

>> diff('x^9+x^8+x^7',6) ans = 60480*x^3+20160*x^2+5040*x

Tablo 1.11.3.3

SYMS KOMUTU Trigonometrik ve logaritmik fonksiyonların türevlerini hesaplamak için, önce “syms” komutu ile değişkenler tanımlanır. Daha sonra fonksiyon bir değişkene atanarak tanımlanır. En son olarak da “diff” komutu ile türev hesaplanır. Denklemeler Çözümü f(x)=sin(x)

?=)x('f >> syms x >> f=sin(x) f = sin(x) >> diff(f) ans = cos(x)

)x(sin=)x(f 2 ?=)x('f

>> syms x >> f=sin(x)^2 f = sin(x)^2 >> diff(f) ans = 2*sin(x)*cos(x)

)x(n2=)x(f l ?=)x('f

>> syms x >> f=2*log(x) f = 2*log(x) >> diff(f) ans = 2/x

)x2(Sine=)x(f ?=)x('f

>> syms x >> f=exp(sin(2*x)) f = exp(sin(2*x)) >> diff(f) ans = 2*cos(2*x)*exp(sin(2*x))

Tablo 1.11.3.4

Page 37: matlab _documan_zbilgin_ders sunumu.pdf

37

Kısmi türevlerin hesaplanmasında da “syms” komutu kullanılır. Önce “syms” komutu ile fonksiyonun bağlı olduğu değişkenler tanımlanır. Fonksiyon bir değere atanır. Daha sonra “diff” komutu; fonksiyon ve kısmi türevi alınacak olan değişken ile kullanılır.

Denklemler Çözümü xy4+y3+x2=)y,x(f 23

?=dx

df

?=dy

df

>> syms x y >> f=2*x^3+3*y^2+4*x*y f = 2*x^3+3*y^2+4*x*y >> diff(f,x) ans = 6*x^2+4*y >> diff(f,y) ans = 6*y+4*x

xyz-)z2cos(+e=)z,y,x(f xy2

?=dx

df

?=dy

df

?=dz

df

>> syms x y z >> f=exp(2*x*y)+cos(2*z)-x*y*z f = exp(2*x*y)+cos(2*z)-x*y*z >> diff(f,x) ans = 2*y*exp(2*x*y)-y*z >> diff(f,y) ans = 2*x*exp(2*x*y)-x*z >> diff(f,z) ans = -2*sin(2*z)-x*y

Tablo 1.11.3.5

1.11.4 İntegral Uygulamaları Bir fonksiyonun belirsiz integralini hesaplamak “int” komutu kullanılır. Değişkenler sembolik tanımlanmalı. Denklemler Çözümü

∫ ?=dxx5 3 >> int(5*x^3) ans = 5/4*x^4

∫ ?=dx)5x3+x4( 2 >> int(4*x^2+3*x-5) ans = 4/3*x^3+3/2*x^2-5*x

∫ ?=dx)x3+x2)(x2x3( 323 >> int((3*x^3-2*x^2)*(2*x^3+3*x)) ans = 6/7*x^7-2/3*x^6+9/5*x^5-3/2*x^4

Page 38: matlab _documan_zbilgin_ders sunumu.pdf

38

∫ ?=dx1+x2

x4+x3 2

>> int((3*x^2+4*x)/(2*x+1)) ans = 3/4*x^2+5/4*x-5/8*log(2*x+1)

∫ ?=dx)xsin( >> int(sin(x)) ans = -cos(x)

∫ ?=dx)x(cos2 >> int(cos(x)^2) ans = 1/2*sin(x)*cos(x)+1/2*x

∫ ?=dxe x.2 >> int(exp(2*x)) ans = 1/2*exp(2*x)

Tablo 1.11.4.1

Bir fonksiyonun bir değişkene göre integralini almak için fonksiyondan sonra “,” konulup değişken yazılır. Syms ile degiskenler tanımlanmalı. Denklemler Çözümü

∫ ?=dxx y

∫ ?=dyx y

>> int(x^y,x) ans = x^(y+1)/(y+1) >> int(x^y,y) ans = 1/log(x)*x^y

∫ ?=dx)3+xy2-y+x( 22

∫ ?=dy)3+xy2-y+x( 22

>> int(x^2+y^2-2*x*y+3,x) ans = 1/3*x^3+y^2*x-y*x^2+3*x >> int(x^2+y^2-2*x*y+3,y) ans = y*x^2+1/3*y^3-y^2*x+3*y

Tablo 1.11.4.2

Bir fonksiyonun belirli integralini hesaplamak için “int” komutu kullanılır. Fonksiyondan sonra integralin sınırları yazılır.

Denklemler Çözümü

∫4

1

23 ?=dx)4-x3-x2+x( >> int(x^3+2^2-3*x-4,1,4) ans = 165/4

∫4

2

22 ?=dx)xy3+yx2( >> int(2*x^2*y+3*x*y^2,2,4) ans = 112/3*y+18*y^2

Tablo 1.11.4.3

Page 39: matlab _documan_zbilgin_ders sunumu.pdf

39

Bir fonksiyonun bir değişkene göre belirli integralini hesaplamak için fonksiyondan sonra değişken ve integral sınırları yazılır.

Denklemler Çözümü

∫3

1

23 ?=dx)y4+x2-xy2+yx(

∫3

1

23 ?=dy)y4+x2-xy2+yx(

>> int(x^3*y^2+2*x*y-2*x+4*y,x,1,3) ans = 20*y^2+16*y-8 >> int(x^3*y^2+2*x*y-2*x+4*y,y,1,3) ans = 26/3*x^3+4*x+16

Tablo 1.11.4.4

1.11.5 Eğri Uydurma (Enterpolasyon) Bu yöntem ile bir eğri ve ya vektöre ait polinomun katsayıları elde edilir. Bu yöntemde “polyfit” komutu kullanılır. Polyfit(x,y,polinomun_derecesi) Eğri – Vektör Çözümü

x y 0 -5 2 9 3 22

5-x3+x2=)x(f 2

>> x=[0 2 3] x = 0 2 3 >> y=[-5 9 22] y = -5 9 22 >> polyfit(x,y,2) ans = 2.0000 3.0000 -5.0000

x y 0 3 1 8 3 18 5 28 10 53

3+x5=)x(f

>> x=[0 1 3 5 10] x = 0 1 3 5 10 >> y=[3 8 18 28 53] y = 3 8 18 28 53 >> polyfit(x,y,4) ans = 0.0000 -0.0000 0.0000 5.0000 3.0000

Tablo 1.11.5

1.11.6 Matlab’ta Diferansiyel Denklem Çözümleri 1.11.6.1 Diferansiyel Denklemlerin Sayısal Çözümü

Page 40: matlab _documan_zbilgin_ders sunumu.pdf

40

Matlab’ta diferansiyel denklemlerin çözümünde kullanılan “ode23” ve “ode45” adında iki adet Runge-Kutta fonksiyonu mevcuttur. Bunlardan “ode23” fonksiyonu ikinci ve üçüncü dereceden Runge-Kutta integrasyon denklemlerini, “ode45” fonksiyonu ise dördüncü ve beşinci dereceden Runge-Kutta integrasyon denklemlerini kullanır. Bu denklemlerin çözümü için de m-file dosyasının oluşturulması gerekir. [x y]=ode23(‘fonksiyon_adı’,x_başlangıç,x_bitiş,y_başlangıç) [x y]=ode45(‘fonksiyon_adı’,x_başlangıç,x_bitiş,y_başlangıç) Diferansiyel Denklem M-file Çözümü

2+x

y='y

y(0)=0.5 y[0,2]=?

Function dy=fxy(x,y) dy=-y/(x+2); end

>> [x y]=ode23('fxy',0,2,0.5) x = 0 0.1600 0.3600 0.5600 ……… 1.7600 1.9600 2.0000 y = 0.5000 0.4630 0.4237 ……… 0.2659 0.2525 0.2500

xy2-2 e+y3-x='y y(0)=1 y[2,5]=?

Function dy=fxy(x,y) dy=x^2-3*y+exp(-2*x*y);

>> [x y]=ode45('fxy',2,5,1) x = 2.0000 2.0493 2.0987 ……… 4.9487 4.9743 5.0000 y = 1.0000 1.0512 1.1045 ..……. 7.1375 7.2167

Page 41: matlab _documan_zbilgin_ders sunumu.pdf

41

7.2963 Tablo 1.11.6.1

1.11.6.2 Diferansiyel Denklemlerin Sembolik Çözümü Matlab’ta diferansiyel denklemlerin sembolik çözümleri “dsolve” komutu ile bulunur. Diferansiyel Denklem Çözümü

0=dy)x+y6x5(+dx)y2-yx3( 4655

>> f=dsolve('(3*x^5*y^5-2*y)*Dx+(5*x^6*y^4+x)*Dy=0') f = x^3*y(t)^5+1/x^2*y(t)+C1 = 0 >> pretty(f) 3 5 y(t) x y(t) + ---- + C1 = 0 2 X

Tablo 1.11.6.2 1.11.6.3 Birinci Dereceden Lineer Diferansiyel Denklemler Diferansiyel Denklem Çözümü

xsin-e=y+dx

dyx x2

>> f=dsolve('x*Dy+y=exp(2*x)-sin(x)') f = exp(2*x)-sin(x)+exp(-1/x*t)*C1 >> pretty(f) exp(2 x) - sin(x) + exp(- t/x) C1

Tablo 1.11.6.3

1.11.6.4 Bernoulli Denklemi Diferansiyel Denklem Çözümü

3

2

x

y-=

x2

y-'y

>> f=dsolve('Dy-y/(2*x)=-y^2/x^3','x') f = 3*x^(5/2)/(-2*x^(1/2)+3*C1*x^2) >> pretty(f) 5/2 x 3 --------------------- 1/2 2 -2 x + 3 C1 x Tablo 1.11.6.4

Page 42: matlab _documan_zbilgin_ders sunumu.pdf

42

1.12 Matlab’da Grafik Çizimleri 1.12.1 Boyutlu Grafikler x-y koordinat düzleminde grafik çizmek için “plot(x,y)” komutu kullanılır. Bu komut x vektörüne karşı y vektörünün grafiğini verir. “Plot” komutundaki x ve y değerleri bir fonksiyon ve ya bir vektör ile önceden tanımlanır. Daha sonra komut ile çizdirilir. Örnek: >> x=[0 1 3 6] x = 0 1 3 6 >> y=[0 3 5 6] y = 0 3 5 6 >> plot(x,y)

Şekil 1.12.1

Örnek: >> x=0:0.5:5 x = Columns 1 through 8 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 Columns 9 through 11 4.0000 4.5000 5.0000 >> y=x.^2 y =

Page 43: matlab _documan_zbilgin_ders sunumu.pdf

43

Columns 1 through 8 0 0.2500 1.0000 2.2500 4.0000 6.2500 9.0000 12.2500 Columns 9 through 11 16.0000 20.2500 25.0000 >> plot(x,y)

Şekil 1.12.2

Grafik çizimleriyle ilgili özellikler

Grafik çizgilerinin görünümünü değiştirmek için “plot(x,y,‘ ’)” komutu kullanılır. Bu komut ile çizimin rengi, işaretleyici sembolü ve çizgi tipi belirlenir.

Komut Renk Komut Sembol b Mavi . Nokta g Yeşil + Artı r Kırmızı * Yıldız c Turkuaz o Daire m Mor x x y Sarı s Kare k Siyah d Elmas w Beyaz v Aşağı bakan üçgen

Komut Çizgi tipi ^ Yukarı bakan üçgen - Düz çizgi < Sola bakan üçgen

Page 44: matlab _documan_zbilgin_ders sunumu.pdf

44

- - Kesikli çizgi > Sağa bakan üçgen : Noktalı çizgi p Beşgen

- . Kesikli – noktalı çizgi h Altıgen

Tablo 1.12.1 Komut Açıklaması grid Grafik arka yüzünün ölçekli olarak gösterilmesini sağlar. title(‘ ’) Çizilen grafiğe başlık yazmak için kullanılır. xlabel(‘ ’) Çizilen grafiğin x-eksenine açıklama yazmak için kullanılır. ylabel(‘ ’) Çizilen grafiğin y-eksenine açıklama yazmak için kullanılır. text(x,y,’ ’) Grafik ekranı üzerine istenilen koordinatlar dâhilinde herhangi

bir açıklama yazmak için kullanılır. Tablo 1.12.2

Örnek: >> t=0:1:360 t = Columns 1 through 13 0 1 2 3 4 5 6 7 8 9 10 11 12 Columns 14 through 26 13 14 15 16 17 18 19 20 21 22 23 24 25 …..... Columns 339 through 351 338 339 340 341 342 343 344 345 346 347 348 349 350 Columns 352 through 361 351 352 353 354 355 356 357 358 359 360 >> x=cosd(t) x = Columns 1 through 8 1.0000 0.9998 0.9994 0.9986 0.9976 0.9962 0.9945 0.9925 Columns 9 through 16 0.9903 0.9877 0.9848 0.9816 0.9781 0.9744 0.9703 0.9659 ……… Columns 353 through 360 0.9903 0.9925 0.9945 0.9962 0.9976 0.9986 0.9994 0.9998 Column 361 1.0000 >> y=sind(t) y = Columns 1 through 8 0 0.0175 0.0349 0.0523 0.0698 0.0872 0.1045 0.1219 Columns 9 through 16 0.1392 0.1564 0.1736 0.1908 0.2079 0.2250 0.2419 0.2588 ………... Columns 353 through 360

Page 45: matlab _documan_zbilgin_ders sunumu.pdf

45

-0.1392 -0.1219 -0.1045 -0.0872 -0.0698 -0.0523 -0.0349 -0.0175 Column 361 0 >> plot(t,x,'r*',t,y,'gs') >> grid >> title('sin ve cos egrileri') >> xlabel('t') >> ylabel('x=cos(t) y=sin(t)') >> text(60,-0.2,'cos(t)') >> text(175,0.6,'sin(t)')

Şekil 1.12.3

Bir vektörü bar grafiklerini kullanarak çizdirmek için “bar(x)” ve ya “bar(x,y)” komutu kullanılır. Basamak fonksiyonu şeklinde çizdirmek için ise “stairs(x)” ve ya “stairs(x,y)” komutu kullanılır. >> x=[0 2 5 -3 4]

Page 46: matlab _documan_zbilgin_ders sunumu.pdf

46

x = 0 2 5 -3 4 >> bar(x)

Şekil 1.12.4

>> stairs(x)

Şekil 1.12.5

Page 47: matlab _documan_zbilgin_ders sunumu.pdf

47

>> a=[0 1 3 6] a = 0 1 3 6 >> b=[ 2 3 5 7] b = 2 3 5 7 >> bar(a,b)

Şekil 1.12.6

>> stairs(a,b)

Şekil 1.12.7

Page 48: matlab _documan_zbilgin_ders sunumu.pdf

48

Bir vektörü yüzdelik dilimler şeklinde göstermek için “pie(x)” komutu kullanılır. >> x=[2 5 8 4] x = 2 5 8 4 >> pie(x)

Şekil 1.12.8

1.13 Matlab’da Elektrik Mühendisli ği İle İlgili Uygulamalar 1.13.1 Matlab’da Seri RL Devresi Analizi a-Alternatif Akımda: R

L

Page 49: matlab _documan_zbilgin_ders sunumu.pdf

49

Şekil 1.13.1.a Seri RL Devresi

=100sinwt , R=0.4Ω , L=10 mH , f=50 Hz =?

dt

diLiRV ts +×=

L

RiV

dt

di ts ×−= (1)

Denklem (1) eşleniği grafikten elde edilir. Matlab’da bu diferansiyel denklemi çözmek için “ode23” ve “ode45” komutlarını kullanılacağını; “1.11.6.1 Diferansiyel Denklemlerin Sayısal Çözümü” isimli başlık altında belirtilmişti. İlk olarak M-file dosyası oluşturulur ve M-file dosyasına aşağıdaki komutlar girilerek Denklem(1)’deki ifade matlaba girilmiş olur.Ve daha sonra M-file dosyası daha sonra çağırılmak üzere kaydedilir. function dy=akim(t,i) dy=(100*sin(314*t)-i*0.4)/0.01 Daha sonra Command Window’a şu komutlar girilir: >> [a b]=ode23('akim',0,0.130,0) >> plot(a,b) >> grid >> xlabel('zaman t(ms)') >> ylabel('akim I (A)') >> title('Alternatif Akım RL Devresi Akım Grafiği') Sonuçlar şu şekilde oluşur: dy =

0

dy =

8.9148e+003

dy =

-2.6767e+003

………

dy =

874.9465

dy =

-60.0780

dy =

-1.0564e+003

Page 50: matlab _documan_zbilgin_ders sunumu.pdf

50

a =

0

0.0002

0.0004

0.0007

……

0.1277

0.1287

0.1300

b =

0

0.0646

0.2574

0.7867

…..

26.2284

30.4657

31.5870

Ve elde edilen akım grafiği şu şekilde olur:

0 0.05 0.1 0.15 0.2-40

-30

-20

-10

0

10

20

30

40

50

60Alternatif Akım RL Devresi Akım Grafiği

zaman t(ms)

akim

I(A

)

Şekil 1.13.2

Page 51: matlab _documan_zbilgin_ders sunumu.pdf

51

Sonuç: RL devreleri elektrik mühendisliğinde kullanılan en önemli devrelerdendir. Elektrik motorlarının yapısını oluşturur. Şekilde de görüldüğü gibi ilk olarak geçici hal meydana gelir ve akım değeri nominal değerinin üzerine çıkar. b- Doğru Akımda:

=100 V , R=0.4Ω , L=10 mH , f=50 Hz =?

dt

diLiRV ts +×=

L

RiV

dt

di ts ×−= (1)

İlk olarak M-File dosyasına: function dy=akim2(t,i) dy=(100-i*0.4)/0.01 komutları girilir. Workspace’e girilecek komutlar alternatif akımla aynıdır. >> [a b]=ode23('akim',0,0.130,0) >> plot(a,b) >> grid >> xlabel('zaman t(ms)') >> ylabel('akim I (A)') >> title('Alternatif Akım RL Devresi Akım Grafiği' Sonuçlar: dy =

10000

dy =

1.0000e+004

dy =

1.0000e+004

dy =

0.8918

dy=

0.9176

Page 52: matlab _documan_zbilgin_ders sunumu.pdf

52

dy =

0.6616

a =

0

0.0000

0.0000

0.0000

……

0.1887

0.2117

0.2300

b =

249.9057

249.9648

249.9835

Sonuçlar grafikte aşağıdaki gibi gözükür:

0 0.02 0.04 0.06 0.08 0.1 0.12 0.140

50

100

150

200

250

300

zaman t(ms)

akim

I(A

)

Doğru Akım RL Devresi Akım Grafiği

Şekil 1.13.3

Page 53: matlab _documan_zbilgin_ders sunumu.pdf

53

1.13.2 Frekans Alanı Analizi 1.13.2.1 Bode ve Nyquist Logaritmik Eğrileri Bode ve Nyquist eğrileri Elektrik Mühendisliği Otomatik Kontrol bölümünde; sistemlerin frekans eğrilerini bulmada ve bu şekilde sistem fonksiyonların oluşturulmasında kullanılırlar. Bode eğrileri frekans değişimine karşı çizilen genlik oranı ve faz açısı eğrilerinden oluşur. Genel kullanım şekilleri aşağıdaki gibidir. Bode(sys):sys sistemine ait bode grafiği oluşturur. Bode(sys,w) Bode(sys1,sys2….sysN,w) :Birinci formülümüz w frekans aralığında bir sistemin ikincisi birden fazla sistemin w frekans aralığında tek şekil üzerinde oluşturulması için kullanılır. ÖRNEK: Aşağıdaki denkleme ait bode eğrisini oluşturalım.

Çözüm: M-file dosyasına fonksiyon tanımlandıktan sonra; Aşağıdaki matlab komutları yazılar ve bode eğrisi elde edilir. ali=tf(10,[1 1 3] ); bode(ali); grid on title (‘Ali nin Frekans Cevabı Eğrisi’) ; Aynı şekilde bode yerine nyquist yazılırsa aşağıdaki grafik elde edilir .

Page 54: matlab _documan_zbilgin_ders sunumu.pdf

54

Şekil 1.13.2.1 Bode Eğrisi

Şekil 1.13.2.2 Nyquist Eğrisi

Page 55: matlab _documan_zbilgin_ders sunumu.pdf

55

BÖLÜM 2

MATLAB’DA SIMULUNK

Matlab programı, içinde bulundurduğu simulink aracı ile bir fiziksel çalışmanın matematiksel modeli yapılabilir. Böylelikle sistemi fiziksel bir şekilde kurmadan simule ederek denenebilir ve sonuçları görülebilir. Matlab simulink altında kullanılan çok çeşitli araçlar mevcuttur. 2.1 Matlab Simulink Kullanımı Matlab’ın simulink aracının açılabilmesi için komut satırına >>simulink yazıp girmek veya Matlab’ın araç barından şekildeki gibi seçilerek de açılabilir.

Şekil 2.1.1 Simulink aracının açılması

Açılan yeni pencerede kullanacak araçlar bulunmaktadır. Bu araçları belli bir alana koyup simülasyonu oluşturabilmek için bir pencereye ihtiyaç vardır. Bu pencere şekildeki gibi ve ya Ctrl+N tuş kombinasyonu ile de açılabilir. Açılan pencere Şekil 2.1.3 ’teki gibidir.

Page 56: matlab _documan_zbilgin_ders sunumu.pdf

56

Şekil 2.1.2: Simulink araçları. Şekil 2.1.3: Modelin oluşturulduğu

pencere 2.2 Simülasyon Araçları Simülasyon araçları sürüklenerek açılan model penceresine yerleştirilir. 2.2.1 Simulink Commonly Used Blocks Constant

Sabit değerde bir sinyal oluşturur. Data Type Conversion

Girişleri data tipine dönüştüren ve çıkışa göre ayarlayan araçtır. Demux

Mux ile birleştirilen sinyalleri tekrar ayırmaya yarayan araçtır. Discrete – Time Integrator

Page 57: matlab _documan_zbilgin_ders sunumu.pdf

57

Ayrık zamanlı giriş sinyallerini birleştirir ve toplar. Gain

Modele girilen sinyali belli bir kazançla çıkışa veren araçtır. Ground

Yapılan modelde ortak uç ve ya topraklama amaçlı kullanılır. In1

Oluşturulan Subsystem’e girişlerin alınacağı uçların belirlenmesinde kullanılır. Integrator

Giriş sinyalinin integralini çıkışa aktaran araçtır. Logical Operator

Giren iki sinyali kıyaslar ve çıkışa verir. Mux

Üzerine tıklanarak girilen değere göre sinyal girişi bulunan ve bu sinyalleri bir uçtan çıkışa veren araçtır. Bu araç ile bir çok sinyal birbirine karışmadan tek hat üzerinden taşınabilir. Out1

Oluşturulan Subsystem’e çıkışların alınacağı uçların belirlenmesinde kullanılır. Product

Page 58: matlab _documan_zbilgin_ders sunumu.pdf

58

Girilen iki sinyali birbiriyle çarpıp çıkışa veren araçtır. Relational Operator

Girilen sinyalleri özelliklerinden seçilen operatöre göre kıyaslayıp doğruluk durumunda çıkışa lojik 1 değeri veren operatördür. Kıyaslamanın yanlış olması durumunda çıkışa lojik 0 değeri verir. Saturation

Girilen sinyali belli bir üst ve alt değerde sınırlayarak çıkışa verir. Scope

Girilen sinyalleri görsel olarak izlemeye yarayan araçtır. Subsystem

Birçok araç ile oluşturulan sistemi toplam bir kutucuk olarak gösteren araçtır. Sum

Girilen sinyalleri toplayıp çıkışa veren araçtır. Switch

Anahtar olarak kullanılır. Terminator

Page 59: matlab _documan_zbilgin_ders sunumu.pdf

59

Çıkış sinyallerini sonlandırmak için kullanılır. Unit Delay

Girilen sinyali geciktirmek için kullanılır. Sinyal belli bir süre bir değerde kalır. Daha sonra giriş değerini alır. Continuous Derivative

Girilen sinyalin diferansiyelini çıkışa veren araçtır. State – Space

Giriş değerini A-B-C-D parametrelerine göre çıkışa veren araçtır. Transfer Fcn

Bir transfer fonksiyonunun modellenmesi amacıyla kullanılır. Modelini yapılacak fonksiyonun katsayıları bu aracın içine girilerek, modelin o fonksiyon işlemini yerine getirmesini sağlanır. Transport Delay

Girilen sinyali, özelliğine girilen zaman miktarı kadar geciktiren araçtır. Variable Time Delay

Page 60: matlab _documan_zbilgin_ders sunumu.pdf

60

Girilen sinyali, girilen başka bir sinyal kadar geciktirmek için kullanılır. Math Operations Abs

Girilen ifadenin mutlak değerini çıkışa veren araçtır. Add

Girilen değerleri toplayıp çıkışa veren araçtır. Complex to Magnitude – Angle

Girilen kompleks işaretin büyüklüğünü ve ya açısını ya da her ikisini de çıkışa veren araçtır. Complex to Real – Imag

Girilen kompleks işaretin büyüklüğünü ve ya açısını ya da her ikisini de çıkışa veren

araçtır. Divide

Girişleri çarpıp ya da bölüp çıkışa veren araçtır. Dot Product

Page 61: matlab _documan_zbilgin_ders sunumu.pdf

61

Girilen iki vektörü çarparak çıkışa veren araçtır. Magnitude – Angle to Complex

Girilen büyüklüğü ve açıyı kompleks bir işaret haline getiren araçtır. Math Function

exp, log10^u, log10, magnitude^2, square, pow, conj, reciprocal, hypot, rem, mod, transpose fonksiyonlarını gerçekleyen araçtır. Matrix Concatenation

Girilen işaretleri yatay ve ya düşey olarak birbirine bağlayan araçtır. MinMax

Girilen işaretlerden isteğe göre en büyük ve ya en küçük olanı çıkışa veren araçtır. Real – Imag to Complex

Girilen reel ve imajiner büyüklükleri kompleks bir büyüklük haline getiren araçtır. Rounding Function

Page 62: matlab _documan_zbilgin_ders sunumu.pdf

62

Floor, ceil, round, fix gibi fonksiyonları gerçekleyen araçtır. Sign

Giriş işareti pozitif olduğunda çıkışı 1, negatif olduğunda -1, 0 olduğunda da 0 veren araçtır. Sine Wave Function

İstenilen özelliklerde sinüs fonksiyonu üretmek için kullanılan araçtır. Subtract

Girişleri toplar ve ya çıkarır ve işaretini belirleyen araçtır. Trigonometric Function

Trigonometrik ve hiberpolik fonksiyonlar yaratmak için kullanılır. Unary Minus

Giriş işaretini “-” ile çarpıp çıkışa veren araçtır. Signal Routing

Page 63: matlab _documan_zbilgin_ders sunumu.pdf

63

Data Store Memory – Read – Write

Modeldeki bazı bilgilerin okunması, kaydedilmesi ve yazdırılması için kullanılan araçtır. From – Goto

Modeldeki bazı bağlantıların çizgisel bir bağlantı kurmadan taşınmasını sağlar. Goto ile bağlantısı olan değer, From çıkışına aynen yansıtılır. Manuel Switch

Manuel olarak anahtarlama yapmak için kullanılır. Display

Girilen değerleri sayısal olarak gösteren araçtır. Stop Simulation

Sinyal geldiğinde simülasyonu durduran araçtır. XY Graph

Girilen iki sinyali birbirine göre gösterime yansıtan göstergedir. Sources Band – Limited White Noise

Page 64: matlab _documan_zbilgin_ders sunumu.pdf

64

Sürekli ve hibrit sistemler için rasgele dağıtılmış sinyaller üretir. Chirp Signal

Lineer olmayan sistemler için sinüs dalgası üretir. Clock

Simülasyonun başlatılmasıyla çıkışı ekranda gösteren araçtır. Counter Free – Running

nbit2 -1 tepe değerine kadar çıkıp inen üçgen kare dalga üretir.

Digital Clock

Simülasyonun başlamasıyla zamanı çıkışında gösteren dijital araçtır. Pulse Generatör

Özelliklerinden girilen frekans ve doluluk oranına göre kare dalga üreten araçtır. Ramp

Page 65: matlab _documan_zbilgin_ders sunumu.pdf

65

Girilen eğime göre rampa fonksiyonu üreten araçtır. Random Number

Rasgele dağıtılmış sinyal üreten araçtır. Repeating Sequence

Girilen koordinatlara göre peş peşe sinyaller üreten araçtır. Repeating Sequence Interpolated

Girilen vektör koordinatlarına göre peş peşe sinyaller üreten araçtır. Repeating Sequence Stair

Girilen vektör koordinatlarına göre peş peşe basamak fonksiyonu şeklinde sinyaller üreten araçtır. Signal Builder

Çizilen grafiğe göre sinyal üreten araçtır. Signal Generator

Sinyal üreten araçtır.

Page 66: matlab _documan_zbilgin_ders sunumu.pdf

66

Sine Wave

Özelliklerine girilen frekans ve tepe değerine göre sinyal üreten araçtır. Step

Basamak fonksiyonu üreten araçtır. 2.2.2 SimPowerSystems Electrical Sources AC Current Source

İdeal sinüsoidal akım kaynağıdır. AC Voltage Source

İdeal sinüsoidal gerilim kaynağıdır. DC Voltage Source

İdeal doğru gerilim kaynağıdır. Three – Phase Source

3 fazlı sinüsoidal gerilim kaynağıdır. Elements

Page 67: matlab _documan_zbilgin_ders sunumu.pdf

67

Ground

Toprak bağlantısıdır Linear Transformer

3 sargılı lineer bir transformatördür. Mutual Inductance

Karşılıklı indüktans etkisi yaratmak için kullanılan araçtır. Neutral

Nötr noktası oluşturmak için kullanılan araçtır. Parallel RLC Branch

Paralel RLC elemanlarını içeren araçtır. Series RLC Branch

Seri RLC elemanlarını içeren araçtır. Three – Phase Mutual Inductance

Page 68: matlab _documan_zbilgin_ders sunumu.pdf

68

3 fazla karşılıklı indüktans yaratmak için kullanılan araçtır. Three – Phase Parallel RLC Branch

3 faz için paralel RLC elemanlarını içeren araçtır. Three – Phase Series RLC Branch

3 faz için seri RLC elemanlarını içeren araçtır. Three – Phase Transformer (Three Windings)

3 fazlı 3 sargılı lineer transformatördür. Three – Phase Transformer (Two Windings)

Page 69: matlab _documan_zbilgin_ders sunumu.pdf

69

3 fazlı 2 sargılı lineer transformatördür. Three – Phase Transformer 12 Terminals

3 fazlı 2 sargılı 12 terminalli lineer transformatördür. Machines Asynchronous Machine pu Units

3 fazlı asenkron makinadır. DC Machine

Doğru akım makinasıdır. Excitation System

Page 70: matlab _documan_zbilgin_ders sunumu.pdf

70

Motorların sargılarını uyarmak için kullanılan araçtır. Permanent Magnet Synchronous Machine

Daimi mıknatıslı senkron makinadır. Simplified Synchronous Machine pu Units

Basit senkron makinadır. Single Phase Asynchronous Machine

Tek fazlı asenkron makinadır. Measurement

Page 71: matlab _documan_zbilgin_ders sunumu.pdf

71

Current Measurement

İdeal ampermetredir. Impedance Measurement

Empedans ölçen araçtır. Multimeter

İdeal multimetredir. Three – Phase V-I Mesaurement

3 fazlı devrelerde akım ve gerilim ölçmek için kullanılan araçtır. Voltage Measurement

İdeal voltmetredir. Power Electronics Detailed Thyristor

Tristör Diode

Page 72: matlab _documan_zbilgin_ders sunumu.pdf

72

Diyot GTO

GTO (Gate off thyristor) Ideal Switch

İdeal anahtar IGBT

IGBT (Insulatad Gate Bipolar Transistors) – (Paralel dirençli) IGBT / Diode

IGBT (Paralel diyotlu) Mosfet

MOSFET (Metal Okside Field Effect Transistors) MultiPlot Graph

Similasyondaki sinyalleri görsel olarak görmeye yarayan araçtır. 2.3 Matlab Simulasyonuyla Akım,Gerilim ve Güç Ölçümü 2.3.1 Doğru Akımda Akım, Gerilim ve Güç Ölçümü

Page 73: matlab _documan_zbilgin_ders sunumu.pdf

73

Bölüm 2.1 ve 2.2’ de anlattılan simulunk araçlarından aşağıdaki elemanlar seçilir ve birbirlerine bağlanır.Bu çalışmada R=25Ω ve U=100V seçilmiştir.Bu değerler elemanlar üzerine çift tıklanarak açılan özellikler kısmına girilmiştir.MultiPort Graph aracı yerine Scope’da kullanılabilirdi.Fakat çıkış sinyalini daha iyi görmek ve üzerinde daha iyi düzenleme yapmak için MultiPort Graph kullanılmıştır.

Şekil 2.3.1

0 0.02 0.04 0.06 0.08 0.10

1

2

3

4

5

Akı

m

Zaman0 0.05 0.1 0.15 0.2 0.25 0.3

0

50

100

150

Ger

ilim

Zaman

Şekil 2.3.2 Akım Grafiği Şekil 2.3.3 Gerilim Grafiği

Şimdi ise güç değerini hesaplamak için Ampermetre ve Voltmetre çıkışlarını çarparsak:

Page 74: matlab _documan_zbilgin_ders sunumu.pdf

74

Şekil 2.3.4

0 0.05 0.1 0.15 0.2 0.25 0.30

100

200

300

400

500

Güç

Zaman

Şekil 2.3.5: Güç Grafiği

2.3.2 Alternatif Akımda Akım, Gerilim ve Güç Ölçümü

Şekil 2.3.6

Page 75: matlab _documan_zbilgin_ders sunumu.pdf

75

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04-10

-5

0

5

10

Akı

m

Zaman

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04

-100

-50

0

50

100

Ger

ilim

Zaman Şekil 2.3.7: Akım Grafiği Şekil 2.3.8 Gerilim Grafiği

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.040

50

100

150

200

250

300

350

400

Güç

Zaman Şekil 2.3.9 Güç Grafiği

2.4 Simulunkte Uygulamalar 2.4.1 Seri RL Devresi Akım Analizi “Bölüm 1.12.1” de yapılan uygulamayı simulunkte çözersek: a-Doğru Akım İçin: U=100V R=0.4Ω L=10mH değerleri için:

Şekil 2.4.1

Page 76: matlab _documan_zbilgin_ders sunumu.pdf

76

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.040

50

100

150

200

250

Akı

m

Zaman

Şekil 2.4.2: DC Gerilim RL Devresi Akım Grafiği b-Alternatif Akım İçin:

Şekil 2.4.3

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04-30

-20

-10

0

10

20

30

Akı

m

Zaman

Şekil 2.4.4: Alternatif Akım RL Devresi Akım Grafiği

Page 77: matlab _documan_zbilgin_ders sunumu.pdf

77

Şimdi ise matlab simulinkte blok devreler kullanarak aynı değerler için RL devresini analiz edelim.

dt

diLiRV ts +×=

L

RiV

dt

di ts ×−= (1)

Denklem (1)’de belirtilen eşitliklerin; matlab programında blok devresi eşdeğerleri aşağıda gösterildiği gibidir:

Şekil 2.4.5

0 0.05 0.1 0.15 0.2

-60

-40

-20

0

20

40

60

Akı

m

Zaman

Şekil 2.4.6: Seri RL Devresi Akım Grafiği

Sonuç Olarak: İlk olarak belirtilen blok yapıları kullanmadan, direk elemanlar seçilerek oluşturulan devrelerde elde edilen scope görüntüleri ve çözümler devrenin sürekli hal için geçerli olan değerlerini gösterir. Fakat blok yapıları kullanarak yapılan çözümlemeler ise dinamik bir eleman olan L’den (endüktans) kaynaklanan geçici hal çözümlerini de içererek tam çözüm elde edilmiştir. Burdan çıkarılan sonuç RL devresini bir elektrik motoru eşdeğeri olarak kabul edersek motorlar ilk kalkış anında sürekli hale ulaşıncaya kadar nominal akım değerlerinin üzerinde akım çekerler.

Page 78: matlab _documan_zbilgin_ders sunumu.pdf

78

2.4.2 Tek Fazlı Tam Dalga Köprü Tipi Denetimli Doğrultucunun Matlab Simulink ile Modellenmesi 2.4.2.1 Omik Yüklü Durum İlk olarak tristörler modele alınır ve şekildeki bağlantı yapılır:

Şekil 2.4.2.1

Gerilim kaynağı ve direnç modele alınıp, özelliklerinden aşağıdaki değerler girilir:

Şekil 2.4.2.2

Page 79: matlab _documan_zbilgin_ders sunumu.pdf

79

Tristörleri tetiklemek için bir tetikleme devresi oluşturulur. Bunun içinde modele Repeating Sequence alınır ve özelliklerinden şu değerler girilir:

Şekil 2.4.2.3

Üretilen kare dalgaları belli bir açı değeriyle tristörlere vermek için Transport Delay kullanılır. Modele alınarak özelliklerine şu değerler girilir:

Şekil 2.4.2.4

Burada Time Delay kısmına açı değeri, zaman cinsinden girilir: α=30° için 0.001667 α=60° için 0.003334 α=90° için 0.005 α=120° için 0.006667 α=150° için 0.008334 değerleri girilir.

Üretilen kare dalgalar sinyal geciktirici ile ötelenerek tristörlerin gate ucuna uygulanır:

Şekil 2.4.2.5

Page 80: matlab _documan_zbilgin_ders sunumu.pdf

80

Devredeki akım ve gerilim değişimlerini gözlemlemek için modele ampermetre, voltmetre ve MultiPlot Graph alınarak şekildeki gibi yerleştirilir:

Şekil 2.4.2.6

Simülasyon süresi bir peryotluk zaman süresi yapılır. Simülasyon başlatıldığında MultiPlot Graph’larda şu değerler gözlenir:

0 0.005 0.01 0.015 0.02 0.025 0.03

0

50

100

150

200

250

Ger

ilim

Zaman 0 0.005 0.01 0.015 0.02 0.025 0.03

-2

-1

0

1

2

3

Akı

m

Zaman

Şekil 2.4.2.7: α=30° için gerilim ve akım değerleri

Page 81: matlab _documan_zbilgin_ders sunumu.pdf

81

0 0.005 0.01 0.015 0.02 0.025 0.03

0

50

100

150

200

250

Ger

ilim

Zaman0 0.005 0.01 0.015 0.02 0.025 0.03

-2

-1

0

1

2

3

Akı

m

Zaman

Şekil 2.4.2.8: α=60°’de tetikleme için akım ve gerilim değişimleri

2.4.2.2 Omik İndüktif Yüklü Durum

Şekil 2.4.2.9

0 0.005 0.01 0.015 0.02 0.025 0.03

-200

-100

0

100

200

Ger

ilim

Zaman 0 0.005 0.01 0.015 0.02 0.025 0.03

-1

-0.5

0

0.5

1

1.5

2

Akı

m

Zaman

Şekil 2.4.2.10: α=30° için gerilim ve akım değerleri

Page 82: matlab _documan_zbilgin_ders sunumu.pdf

82

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035

-150

-100

-50

0

50

100

150

200

250G

erili

m

Zaman0 0.005 0.01 0.015 0.02 0.025 0.03 0.035

-0.5

0

0.5

1

1.5

Akı

m

Zaman

Şekil 2.4.2.11: : α=60°’de tetikleme için akım ve gerilim değişimleri

2.4.2.2.1 Omik İndüktif Yüklü Durum (Serbest Geçiş Diyotlu)

Şekil 2.4.2.12

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035

-150

-100

-50

0

50

100

150

200

250

Ger

ilim

Zaman 0 0.005 0.01 0.015 0.02 0.025 0.03

-1

-0.5

0

0.5

1

1.5

2

Akı

m

Zaman

Şekil 2.4.2.13: α=30° için gerilim ve akım değerleri

Page 83: matlab _documan_zbilgin_ders sunumu.pdf

83

0 0.005 0.01 0.015 0.02 0.025 0.03 0.035

-150

-100

-50

0

50

100

150

200

250

Ger

ilim

Zaman0 0.005 0.01 0.015 0.02 0.025 0.03 0.035

-0.5

0

0.5

1

1.5

Akı

m

Zaman

Şekil2.4.2.14: α=60°’de tetikleme için akım ve gerilim değişimleri 2.4.3 3 Fazlı 6 Darbeli Tam Dalga Doğrultucunun Matlab Simulink ile

Modellenmesi 2.4.3.1 3 Fazlı 6 Darbeli Tam Dalga Doğrultucu Hakkında Genel Bilgi 3 fazlı tam dalga doğrultucular 6 tane scr den oluşan en ideal doğrultuculardır. Devre çalışırken en fazla iki scr iletimde olup, kesime girmeleri için fazladan bir ek bir devreye ihtiyaç duymamaktadırlar. Bu doğrultucu sayesinde yük üzerinde doğruya yakın bir gerilim oluşmaktadır.

Şekil 2.4.3 Denetimsiz Doğrultucu Şekil 2.4.4 Denetimli Doğrultucu Denetimsiz doğrultucu denetimli doğrultucuda tetikleme açısının sıfır olması durumundaki haliyle aynı şeydir. Alfa açısı büyüdükçe ortalama gerilimin değeri küçülür ve böylelikle istediğimiz gerilimi elde edebiliriz.

Page 84: matlab _documan_zbilgin_ders sunumu.pdf

84

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

50

100

150

200

250

300

350

400

Şekil 2.4.5: α=0º olması durumunda çıkışta izlenecek gerilim

Ortalama gerilimi hesaplamak için her bir periyodun ortalama gerilimini alıp periyoda bölünmesiyle elde edilebilir. Çıkış gerilimi 60 – 120 derece arasında sinüs fonksiyonu integrali alınarak bulunabilir. Alfa açılarını elde edebilmek için SCR’lerin belli noktalarda tetiklenmeleri gerekmektedir. Böylelikle tetikleme açılarını ayarlanarak çıkışın ortalama gerilimi değiştirilebilir. Tetikleme tablosu aşağıdaki gibidir. Görülen tetiklemeler α=0º için çizilmiştir. Tetikleme açıları alfa değeri kadar ötelenerek istenilen tetikleme açıları elde edilebilir.

Şekil 2.4.6: Tetikleme Darbeleri

Page 85: matlab _documan_zbilgin_ders sunumu.pdf

85

2.4.3.2 Modelin Oluşturulması İlk olarak Tyristor modele alınır ve üzerine çift tıklayarak özelliklerine aşağıdaki değerleri girilir:

Şekil 2.4.7

Bu tristör kopyalanarak 6 adet yapılır ve böylelikle her biri için teker teker değer girilmesine gerek kalmaz. Bu 6 tristör birbirine şekildeki gibi bağlanır:

Şekil 2.4.8

Page 86: matlab _documan_zbilgin_ders sunumu.pdf

86

Daha sonra gerilim kaynakları modele alınır ve özelliklerine şu değerler girilir:

Va Vb Vc

Şekil 2.4.9

Kaynaklar ve tristörler aşağıdaki şekilde bağlanır:

Şekil 2.4.10

Sıradaki eleman olarak direnç elemanını devreye yerleştirilir. Araç kutusunda sadece direnç elemanı olmadığından seri RLC modele sürüklenir. Üzerine çift tıklanarak özelliklerine aşağıdaki değerler girilir:

Şekil 2.4.11

Page 87: matlab _documan_zbilgin_ders sunumu.pdf

87

Böylelikle modelde sadece direnç görünecektir. Gerilim ölçücü ve Scope şekildeki gibi bağlanır:

Şekil 2.4.12

Tetikleme devresini oluşturmak için bir tane Repeating Sequence modele alınır. Özelliklerine tıklanarak aşağıdaki değerler modele girilir:

Şekil 2.4.13

ve böylelikle aşağıdaki sinyali elde edilir:

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

2

4

6

8

10

12

14

16

18

20

Şekil 2.4.14: Repeating Sequence’dan elde edilen sinyal

Page 88: matlab _documan_zbilgin_ders sunumu.pdf

88

Şimdi bu sinyal SCR’ler için ötelenerek istenilen sinyaller oluşturulabilir. Bunun için Transport Delay kullanılır. Transport Delay sinyalleri girilen değere göre öteler ve istenilen sinyaller oluşturulabilir. Modele Transport Delay alınır ve üzerine çift tıklanarak özelliklerine aşağıdaki değerler girilir:

Şekil 2.4.15

Buradaki Time Delay değeri sinyalin kaç saniye öteleneceğinin girileceği bölümdür. Girilen değer saniye olarak girilmelidir.60 derecenin saniyelik karşıtı olarak 0.00333 değerini girilir. Böylelikle tetikleme sinyali 60 derece ötelenecektir. Bu değeri girdikten sonra kopyalayarak bundan 5 adet oluşturulur ve aşağıdaki şekilde birleştirilir:

Şekil 2.4.16

Bundan sonra Mux ile sinyaller bir hatta birleştirilerek toplanır. Bunu amacı, yapılan Başka bir Transport Delay yardımıyla bütün sinyalleri tek hamlede istenilen alfa açısı kadar ötelenilebilecek olmasıdır. Modele bir Mux ve bir Transport Delay alınıp aşağıdaki değerler Transport Delay kısmına girilir:

Şekil 2.4.17

Page 89: matlab _documan_zbilgin_ders sunumu.pdf

89

Burada girilen alfa değeri Matlab komut satırından derece cinsinden atanacaktır.

Şekil 2.4.18

Fazla karışıklık olmaması için buradaki tetikleme modeli seçilerek sağ tıkladıktan sonra Create Subsystem ile tek bir kutucuk haline getirilebilir.

Şekil 2.4.19

Çıkan sinyal Demux aracılığı ile tekrar sinyallere ayırıp SCR’lere uygun şekilde bağlanabilir. İstenirse Goto – From araçları kullanılarak karmaşıklıktan kurtulunabilir. Demux ile çıkan sinyaller 6 girişli Scope kullanılarak izlenilebilir.

Page 90: matlab _documan_zbilgin_ders sunumu.pdf

90

Modelin son hali aşağıdaki gibi olmaktadır.

Şekil 2.4.20

Model çalıştırılmadan önce Matlab komut satırından olarak alfa=75 girilir. Pencerenin üst bölümünde bulunan play butonuna basılır. Değerleri görmek için Scope’lar tıklanır.

Şekil 2.4.21: SCR’lere uygulanan kare sinyaller ve çıkış gerilimi

Page 91: matlab _documan_zbilgin_ders sunumu.pdf

91

Uyarı: Kurulan model çalıştırıldığı zaman eğer lineer elemanlar ile alakalı bir uyarı çıkar ve çalışmaz ise Model penceresinden Simulation sekmesinden configuration seçeneğine tıklanarak aşağıdaki pencerede olduğu gibi Solver seçeneği değiştirilmelidir. Max Step Size küçük bir değere atanmalıdır.

Şekil 2.4.22

2.4.4 SONUÇLAR Yapılan bu çalışmalarda fiziksel modeller Matlab Simülasyon’da simule edilip çalıştırıldı. Doğru ve alternatif akımda akım, gerilim ve gücün nasıl ölçüldüğü ve çıkış gerilimlerinin nasıl olduğu ayrı ayrı incelendi. Tek fazlı ve 3 fazlı denetimli doğrultma devreleri simule edilip, girilen alfa değerlerine göre çıkış akımlarının ve gerilimlerinin değişimi gözlenmiş oldu. Gerçek bir devrede olduğu gibi çıkış sinyalleri burada da aynı şekilde elde edildi. Bu şekilde olması çok büyük kolaylıklar sağlamaktadır. Çünkü istenilen şekilde modelden birşey çıkarılıp eklenebilir ve alfa tetikleme açısı değiştirilebilir. Her ayrı giriş ve devre şekli için sonuçları Scope izlenebilir.

Kısacası Matlab Simulink ile bir çok fiziksel devre kurularak simule edilebilir ve devre gerçek olarak kurulmadan, devreden nasıl sonuçlar alınabileceği incelenebilir. Bu şekilde devrede oluşabilecek hatalar, Matlab Simulink ortamında düzeltilerek oluşturulacak olan devrelerin hatasız yapılmasına ve çalıştırılmasına yardımcı olur.

Page 92: matlab _documan_zbilgin_ders sunumu.pdf

92

KAYNAKLAR • http://www.mathworks.com • Matlab Help • http://www.elektrotekno.com • İ. YILDIZ, “Matlab Programlama ve Simülasyon” Proje I, 2007, Kocaeli

Üniversitesi, Elektrik Mühendisliği Bölümü • Ü. KILIÇARSLAN “Matlab Programlama ve Simülasyon” Proje I, 2008,

Kocaeli Üniversitesi, Elektrik Mühendisliği Bölümü • Abut, N. “Güç Elektroniği” Birsen Yayınevi, 2004, İstanbul