• Sonuç bulunamadı

MATLAB A GİRİŞ: MATrix LABoratory 1. Deneyin Amacı

N/A
N/A
Protected

Academic year: 2022

Share "MATLAB A GİRİŞ: MATrix LABoratory 1. Deneyin Amacı"

Copied!
8
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

GAZİANTEP İSLAM BİLİM ve TEKNOLOJİ ÜNİVERSİTESİ MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EEM507-KONTROL SİSTEMLERİ LABORATUVARI

MATLAB’ A GİRİŞ: MATrix LABoratory 1. Deneyin Amacı

a) MATLAB’a giriş yapmak.

b) Öğrencilerin “MATLAB Getting Started Guide.pdf” olarak adlandırılan dosyayı okumalarını ve alıştırma yapabilmelerini sağlamak.

c) Sayısal hesaplama, görselleştirme ve programlama için MATLAB ortamına aşina olmak.

2. Giriş

MATLAB, matris analizi, kontrol sistemi tasarımı ve analizi, dijital sinyal işleme, sistem tanımlama, sağlam kontrol, optimizasyon vb. için komutlarla entegre bir yazılım ortamı sağlar.

MATLAB, "MATrix LABoratory"nin kısaltmasıdır. Diğer programlama dilleri çoğunlukla sayılarla birer birer çalışırken, MATLAB öncelikle tam matrisler ve diziler üzerinde çalışacak şekilde tasarlanmıştır.

Öğrencilerin MATLAB'ı kurmaları ve aşağıdaki metinde belirtilen adımları ve komutları yazmaları şiddetle tavsiye edilir. MATLAB başlatıldığında, varsayılan masaüstü düzeni Şekil 1’

de görünmektedir.

(2)

Şekil 1: MATLAB başlangıç masaüstünün varsayılan düzeni

MATLAB'ın kullanımı son derece kolaydır. Komut satırına demo komutu yazılarak MATLAB’ ın nasıl kullanılacağına dair bilgiler elde edilebilir.

»demo

Demo yazmak karşımıza bir menü çıkmasını sağlar. Ayrıca MATLAB konularının çoğu hakkında çevrim içi yardım da mevcuttur. Yardım listesine erişmek için ise şu komut yazılmalıdır.

»help

Komut yazıldıktan sonra karşımıza şöyle bir liste çıkacaktır:

matlab\general - Genel kullanım komutları matlab\ops - İşaretler ve özel karakterler matlab\lang - Programlama dili

etc.

»help inv

Yukarıdaki komut yazıldığında ters matrislerin kullanımı hakkında bilgi sunulacaktır.

MATLAB genellikle komuta dayalı modda kullanılır; tek satırlık komutlar girildiğinde MATLAB bunları hemen işler ve sonuçları görüntüler. MATLAB ayrıca dosyalarda saklanan komut dizilerini yürütme yeteneğine de sahiptir.

(3)

3. MATLAB’ da Değişkenler, İşaretler ve Nümerik Veri Tipleri

MATLAB harfe duyarlıdır. Bu yüzden MATLAB için “a” ve “A” karakterleri birbirinden farklıdır.

» a=2

» b=5, c=1.3;

ans varsayılan çıkış değişkenidir. Tüm MATLAB değişkenleri, hangi veri türü olduğu fark etmeksizin, çok boyutlu dizidir. Örneğin b(1,1)=5 olarak saklanır. Aşağıdaki kodları yazın ve aldığınız sonuca bakın.

» a(1,1)

» a(1,2)

» a(1,0)

Bir ifade noktalı virgül (;) ile bitiyorsa, MATLAB hesaplamayı gerçekleştirir, ancak komut penceresindeki çıktıyı gizli tutar.

clear komutu değişkenleri kaldırır. who komutu ise değişkenleri listeler.

% işareti yorum satırı eklemek için kullanılır. Örneğin;

»T=0,2; % T zaman sabitimiz olsun.

Diğer programlama dillerine benzer şekilde Matlab’ da da aritmetik operatörler (+ - / \ ^ .\ . / .* .^), karşılaştırma operatörleri (< > <= >= == ~=) ve mantıksal operatörler (| & || && true false) kullanılmaktadır.

Değişken atarken özel karakterler ve mantıksal operatörler kullanılmaz.

Notasyonlar da değişkenlere benzer bir şekilde yazılır.

» x=3; y=4.5; z= 0.5e+3;

Kompleks sayılar gösterilirken i veya j harfi kullanılır.

» x=5+6i, % or » x=5+6j

4. MATLAB’ da Diziler ve Çizimler

Kosinüs fonksiyonunun bir yarım periyodu boyunca değerini hesaplayan bir örneği ele alalım. Bunu matematiksel olarak şekilde gösteririz: y =cos(x) x  [0, π ]

Bu aralıkta sonsuz sayıda nokta olacağından tümünü hesaplamak imkansızdır. Bu yüzden sonlu sayıda nokta seçmeliyiz. Yani fonksiyonumuzu örneklemeliyiz. Örneğin aynı aralıktaki her 0.1 π değeri için hesaplama yapalım. Sonuç olarak seçtiğimiz x değerlerini şu şekilde gösterebiliriz: x={0, 0.1π, 0.2π, 0.3π, 0.4π, 0.5π, 0.6π, 0.7π, 0.8π, 0.9π, π}.

(4)

MATLAB'da dizi oluşturmak için sol parantez ile başlamak, istediğiniz değerleri virgül veya boşluklarla ayırarak girmek ve ardından diziyi sağ parantez ile kapatmak yeterlidir.

MATLAB'da bu vektörü oluşturmak kolaydır:

» x=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi];

or

» x=0:0.1*pi:pi;

Bu noktalarda y fonsiyonunu hesaplamak için şu kod yazılır:

» y=cos(x)

MATLAB’ ın en kabiliyetli olduğu alanlardan biri de elimizdeki verinin grafiğini kolayca çizmesidir. Plot fonksiyonu giriş argümentlerine bağlı olarak farklı şekillerde kullanılabilmektedir.

Y bir vektör olarak ele alınırsa , plot(y) komutu; y’ nin elemanlarının dizinine karşı y dizinin yer aldığı parçalı doğrusal bir grafik üretir.

Eğer iki argument için düşünecek olursak plot(x,y) komutu ile x-y grafiğini elde ederiz.

Örnek 4.1: y= cos(x) for x  [0, 2π ] fonksiyonunu 0.1π adım aralıklarıyla ele alalım. Bu fonksiyona ait grafiği çizmek için aşağıdaki gibi bir komut yazarız:

» x=0:0.1*pi:2*pi; y=cos(x); plot(x,y);

Daha sonra Şekil 2 (a)’ daki grafiği elde ederiz.

Şekil 2: y=cos(x) fonksiyonu

Komuta aşağıdaki gibi ufak eklemeler yaparak Şekil 2(b)’ de görülen eksen etiketi ve başlık eklenebilir.

» xlabel('x'), ylabel('y=cos(x)'), » title('Plot of the Cosine Function') Mevcut resme grafik eklemek içinse şu komutu kullanırız.

» hold % or » hold on

(5)

5. MATLAB’ da Vektör ve Matris

MATLAB ortamında iki boyutlu bir dizide, reel ya imajiner sayılardan oluşan bir değişkeni belirtmek için matris terimi kullanılır. Bir dizi genellikle bir vektör, matris ya da daha yüksek boyutlu sayılar örüntüsüdür. MATLAB'daki tüm diziler, herhangi bir boyut boyunca bileşen vektörlerinin hepsinin aynı uzunlukta olması bakımından dikdörtgendir.

Vektör, tek boyutlu bir dizidir. Tek bir satırda dört elemanlı bir dizi oluşturmak için elemanları virgül (,) veya boşluk ile ayırabilirsiniz.

» a = [1 2 3 4]

Bu dizi türü bir satır vektörüdür. Bu dizinin transpozu alınırsa bir sütun vektörüne dönüştürülebilir.

» a = [1 2 3 4]’ % or » b=a'

Matris, lineer cebir için sıklıkla kullanılan iki boyutlu bir dizidir. Birden fazla satıra sahip olan bir matris oluşturmak için satırlar noktalı virgül ile ayrılır.

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

MATLAB’ da sayısız matris fonksiyonu bulunmaktadır. Örneğin bir matrisin determinantını bulmak için det() komutu, tersini bulmak için ise inv() komutu kullanılır.

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

» A=[1 5 3;4 5 10;7 8 50]; » b=inv(A)

Tablo 1: MATLAB’ daki matris fonksiyonları

6. MATLAB’ da Polinomların Oluşturulması ve Hesaplanması

Birçok alanda polinom köklerinin bulunması büyük önem arz etmektedir. MATLAB bu problemin üstesinden geldiği gibi diğer polinom işlemleri içinde bazı araçları kullanımımıza sunar. MATLAB’ da bir polinom, katsayıları azalan bir satır vektörü ile temsil edilir.

Örneğin P(x)= x3-x polinomunu elde etmek için MATLAB’ a şu komut yazılmalıdır:

» Px=[1 0 -1 0]

(6)

Burada katsayısı sıfır olan terimlerin de belirtildiğine dikkat edilmelidir.

Bir polinomun köklerini bulmak için ise “roots” komutu kullanılır:

» q=roots(Px)

Köklerimiz varsa, polinomu “poly” fonksiyonunu kullanarak bulabiliriz:

Px1=poly(q)

İki polinomu; P1(x)=x4-2x3+5x+10 ve P2(x)=x+1, çarpmak için “conv” fonksiyonunu kullanırız.

» p1=[1 -2 0 5 10];

» p2=[1 1];

» p=conv(p1,p2)

İki polinomu; P1(x)=2x3+1 ve P2(x)=x2+x+2, bölmek için “deconv” fonksiyonu kullanılır.

» p1=[2 0 0 1];

» p2=[1 1 2];

» [q,r]=deconv(p1,p2)

Bir polinomun türevini almak içinse “polyder” fonksiyonu kullanılır.

» pd=polyder(p)

Örnek6.1: P(x)=x3-x polinomun x=-2’ den x=2’ ye kadar 0.1’ lik adımlarla matematiksel olarak hesaplanacağını farz edelim. Bunun için şu komutu yazmalıyız:

» Px=[1 0 -1 0] % The polynomial

» x=-2:0.1:2 % x variable starts at x=-2 and ends at 2 with 0.1 step size.

» y=polyval(Px,x)

7. MATLAB’ da M Dosyaları ve Programlama

MATLAB ifadeleri içeren M dosyaları “.m” olarak kaydedildiklerinden bu şekilde adlandırılırlar. Örneğin, inv.m adlı bir dosya, Matrix tersini hesaplayan MATLAB ifadelerini içerir.

Script M Dosyaları;

a) Bir dizi adımı otomatikleştirebilir,

b) Çalışma alanını diğer komut dosyaları ve komut satırı arayüzü ile paylaşabilir.

(7)

Script M Dosyaları, muhtemelen diğer M Dosyalarına referans olabilecek normal MATLAB ifadeleri dizisinden oluşur. Script M Dosyası kendini yinelemeli olarak çağırabilir. İkinci M Dosyası türleri, fonksiyon M Dosyaları olarak adlandırılır.

Fonksiyon M Dosyaları;

a) MATLAB dilini genişletebilir,

b) Parantez ( ) ile girdi argümanlarını kabul edebilir ve parantez [] ile çıktı argümanları döndürebilir,

c) Değişkenleri dahili çalışma alanında saklar.

function [out1, out2, ...] = funname(in1, in2, ...) bu komut in1, in2 … ‘ yi giriş olarak ele alan funname adında bir fonksiyon tanımlar ve out1, out2…’ yi çıktı olarak döndürür.

Fonksiyon M Dosyaları, kullanıcıya özel sorunları çözen yeni fonksiyonlar oluşturmak için mevcut fonksiyona yeni işlevlerin eklenmesine izin verir.

Oluşturulan M dosyası <filename>.m şeklinde kaydedilir ve geri çağırılırken <filename>

yazılır.

Not: C:\ ...\Documents \MATLAB dizinine değil, kendi dizininize kaydedilmesi gerekir.

Dizininizi aşağıdaki gibi değiştirmek ve etkinleştirmek için;

Aksi halde oluşturduğunuz dosyalar ile hali hazırdaki MATLAB dosyaları karışabilir.

Örnek 7.1: Örnek 6.1 için M File ve grafiği elde ediniz.

clear all % clear all is used to clear variables and functions from memory.

Px=[1 0 -1 0];

x=-2:0.3:2;

y=polyval(Px,x);

plot(x,y)

xlabel('x'),ylabel('y'),grid

(8)

Şekil 3: Fonksiyona ait grafik

Örnek 7.2: Aşağıdaki lineer olmayan fonksiyonu 0≤x≤1 aralığında 0.002’ lik adımlarla hesaplayınız.

Yukarıdaki lineer olmayan fonksiyonu temsil edecek bir M Dosyası oluşturalım.

function y = nonfunc1(x)

y = 1./((x-.3).^2 + 0.1) + 1./((x-.9).^2 + .04) - 6;

M Dosyasını fonksiyon adı ile birebir aynı olacak biçimde oluşturmalıyız. Burada nonfunc1.m olarak adlandıracağız. Oluşturduğunuz dosyayı aynı dizine kaydettiğinizden emin olun.

Şimdi fonksiyonumuzu yeniden yazmak zorunda kalmadan m dosyamızı çağırarak yeniden hesaplama yaptıralım.

clear all % clear all is used to clear variables and functions from memory.

x = 0:0.02:1;

y = nonfunc1(x);

plot(x,y), xlabel('x'), ylabel('y'), grid

Referanslar

Benzer Belgeler

Workspace penceresinde hafızadaki değişkenler hakkında bilgi edinme ve işlem yapmaya ek olarak yeni değişkenler oluşturmak veya hafızadaki değişkenleri de

konumunu belirleyen 1x4 boyutlu bir diziyi düzenleyen özelliktir. Resize: Şekil penceresinin boyutlarını değiştirmeye yarayan özelliktir.Değeri on olursa şekil penceresi

Kuvveti en büyük olan x’in derecesi, polinomun derecesidir ve der[P(x)] ile gösterilir.. Bu x’in katsayısı da

[r]

[r]

 Reduce the number of blocks display on the main window (i.e. simplify the model).  Group related blocks together (i.e. More

Bir x i nodlar kümesi için, birinin, örne¼ gin deneysel verilerden elde etti¼ gi, bu nodlara kar¸s¬l¬k gelen bir çok farkl¬y i de¼ gerlerine sahip olmas¬durumu için

Matlab ile hazır olarak kullanılan conv,conv2,convn hazır fonksiyonları bulunmakla birlikte konvolüsyon sonucunun ‘0’ sıfır indisli değerinin de bulunması için