MATLAB a GİRİŞ Doç. Dr. Mehmet İTİK Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü
İçerik: MATLAB nedir? MATLAB arayüzü ve Bileşenleri (Toolbox) Değişkenler, Matris ve Vektörler Aritmetik işlemler Grafik çizme M- file ile programla ve fonksiyon oluşturma Sembolik işlemler
MATLAB nedir? MATLAB = MATrix LABoratory Numerik ve Sembolik hesaplamalar yapılabilen gelişmiş bir programla yazılımıdır. Araştırma alanlarına yönelik özel alt bileşenler (Toolbox) içerir. Control systems toolbox Optimization toolbox Fuzzy-logic toolbox Neural networks toolbox, System identification, etc. Kütüphanesinde bulundurduğu hazır fonksiyonlar ile karmaşık işlemleri tek komutla çözümlemeye olanak sağlar. Veri analizi için farklı grafikler kolayca elde edilebilir.
Workspace (kullanılan değişkenler ve sabitler burada tutulur) Command Window (geçici hesaplamalar, komut çağırma gibi işlemler için kullanılır) Command History (Geçmişte command window da yapılan işlemler burada tutulur) Start menu (Toolboxlara kolay yoldan erişim sağlar)
MATLAB ı Hesap Makinesi olarak kullanmak
Sayılar ve Formatları Sayı Tipi Örnek Integer (Tam sayı) 5, 1200, 3688 Real (Reel sayı) 1.25, 1259.879 Complex (Kompleks sayı) -2+3i, 5-i Inf (Sonsuz) NaN (Not a number) Sıfıra bölümden ortaya çıkar 0/0 işleminin sonucudur 10 x (10 un katları olarak gösterim) 10 15 = 1e15, 2*10-3 = 2e-3
Değişkenler MATLAB ta değişkenleri özel durumlar dışında tanımlamaya gerek yoktur. int a; double b; float c; Düm değişkenler matris formatında saklanır. Örnek: a = 1; 1x1 matris olarak algılanır. Sözel (String) değişkenler atanabilir: a = ogrenci ;
Değişkenler Command window da yaptığınız işlemin sonunda noktalı virgül kullanmayı deneyin.
Vektör ve Matrisler Vektör (Vector) x = [4 2-3 7] x = 4 2-3 7 Matris (matrix) X = [1 5 3; 6 1 9; -4 2 6] X = 1 5 3 6 1 9-4 2 6
Matris İşlemleri Transpose
Uzun vektör ve Matris oluşturma
Matris indisleri
Matris indisleri
Hata Mesajları A matrisinin 5. elemanı yok! Matris indisleri 1 den başlar.
Matrislerin Birleştirilmesi Matris boyutlarına dikkat!!
Matris Operasyonları
Birer bir eleman işlemleri A(i,j) i: satır numarası j: sütün numarası A(2,:) 2. Satırdaki tüm elemanlar x.*y = X in i nci elemanı ile y nin i nci elemanının çarpımı için x ten sonra. kullanıldı.
Matlab Fonksiyonları (Built-in functions)
Grafik Çizimi 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
1 Graph of y = sin(3pi x) 0.8 0.6 0.4 0.2 y-axis 0-0.2-0.4-0.6-0.8-1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x axis
Grafik Menüleri Aktif hale getir ve grafik üzerinde çift tıkla
Çoklu Grafikler 1 0.8 x y 0.6 0.4 0.2 x ve y 0-0.2-0.4-0.6-0.8-1 0 1 2 3 4 5 6 7 Zaman, t
M Files M -file da esnek programlama yapabiliriz. M file açma simgesi
M-File Kullanımı M-file i çalıştırır
3D grafik örneğinin çıktısı 1 0.5 z 0-0.5 10 5 0 y -5-10 -10-5 x 0 5 10
M-File ile Fonksiyon (Function) yazımı Giriş değişkenleri Fonksiyonun ismi Fonksiyonun çıkış değişkeni(leri) tanımlanır Çıkışta hesaplanacak değişken Dosyanın foksiyon dosyası olduğunu gösterir
M-File ile yazılan fonksiyonu (Function) çağırmak Başka bir M-file dan çağırmak Command Window dan çağırmak Her iki dosyada aynı klasörde olmalıdır!! Çağrılan dosya çalışılan klasörde olmalıdır!!
M-File ile Adi diferansiyel denklem (Ordinary Diff. Eq.) Çözmek x x x 1 2 3 1 x 2 x 1 3 x x sin( 2x 3 0.5x x 2 x (0) 0, x 3 2 1 ) cos( x (0) 1, 1 ) x 3 (0) 1 Diferansiyel denklem takımını MATLAB ile nümerik olarak çözelim MATLAB kendi bünyesinde bir çok ODE çözücü fonksiyon barındırmaktadır ode1: Sabit adım Euler metodu ode4: Sabit adım 4. mertebeden Runge-Kutta metodu * ode5: Sabit adım 5. mertebe Runge kutta metodu * ode45: Değişken adımlı ODE çözücü Internet ten indirmeniz gerekebilir.
Örnek: Lorenz Denklemi Diferansiyel denklemin bir M-file da tanıtılması
Örnek: Lorenz Denklemi Ode çözümü için gerekli parametreler Ode çözücü fonksiyonun çağrılması Grafikler
MATLAB ile Programlama For Döngüsü Örnek 1: Örnek 2: x = -1:.05:1; for n = 1:2:8 subplot(4,2,n), plot(x,sin(n*pi*x)) subplot(4,2,n+1), plot(x,cos(n*pi*x)) end for n=1:20; f(n)= n+n/2 ; end plot(f)
MATLAB ile Programlama While Döngüsü Örnek: S 2 2 2 1 2 n S i 100 den küçük yapan en büyük n tam sayısını bulalım. S = 0; n= 0 ; while S+(n+1)^2 < 100 n = n+1; S = S + n^2; end [n, S]
MATLAB ile Programlama if elseif else.end Koşul döngüleri k = 23 ; % k ya rastgele bir sayı verelim if (k <= 0) && (rem(k,2)==0) disp('k negatif çift sayýdýr'); elseif (k >= 0) && (rem(k,2)==0) disp('k pozitif çift sayýdýr'); elseif (k <= 0) && (rem(k,2)==-1) disp('k negatif tek sayýdýr'); else disp('k pozitif tek sayýdýr'); end
MATLAB ile Sembolik İşlemler (Symbolic Math Toolbox)
MATLAB ile Sembolik İşlemler (Symbolic Math Toolbox)
MATLAB Control System Toolbox Transfer fonksiyonu G(s) ile verilen sisteme PID kontrolcü tasarlayalım G( s) s 2 s 1.24 1.32s 2.15 G c ( s) K p K s I K D s R(s) PID Kontrolcü Sistem Y(s) - G c (s) G( s) s 2 s 1.24 1.32s 2.15
MATLAB Control System Toolbox
MATLAB Control System Toolbox Sistemin basmak girişe açık çevrim cevabı R(t) = 1 R(s)=1/s G( s) s 2 s 1.24 1.32s 2.15 Y(s) 0.9 Step Response 0.8 0.7 0.6 Amplitude 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 4 5 6 7 8 9 10 Time (seconds)
MATLAB Control System Toolbox (SISOTOOL) Command window da sisotool komutunu giriniz
MATLAB Control System Toolbox (SISOTOOL)
MATLAB Control System Toolbox (SISOTOOL)
MATLAB Control System Toolbox (SISOTOOL) PID kontrol uygulanmış sistemin kapalı çevrim birim basamak girişe cevabı