14 Şubat 2011 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim.

Benzer belgeler
MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi,

DENEY 1: Matlab de Temel Uygulamalar

STEM komutu ayrık zamanlı sinyalleri veya fonksiyonları çizmek amacı ile kullanılır. Bu komutun en basit kullanım şekli şöyledir: stem(x,y).

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN

Matlab da 2-boyutlu Grafik Çizimi. Arş. Gör. Mehmet Ali ÜSTÜNER

Matlab da Dizi ve Matrisler. Mustafa Coşar

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

Matris Cebiriyle Çoklu Regresyon Modeli

BİLGİSAYAR PROGRAMLAMA MATLAB

ELN3052 OTOMATİK KONTROL MATLAB ÖRNEKLERİ - 2 TRANSFER FONKSİYONU, BLOK ŞEMA VE SİSTEM BENZETİMİ UYGULAMALARI:

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri

BİLGİSAYAR PROGRAMLAMA DERSİ

MATLAB DE 2 BOYUTLU GRAFİK TÜRLERİ

KUADRATİK FORM. Tanım: Kuadratik Form. Bir q(x 1,x 2,,x n ) fonksiyonu

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

ÖRNEK: Ax+B=0 şeklinde 1. derece denklemin çözümünü veren programa ait akış diyagramını çiziniz.

ELE 301L KONTROL SİSTEMLERİ I LABORATUVARI DENEY 4B: DC MOTOR TRANSFER FONKSİYONU VE PARAMETRELERİNİN ELDE EDİLMESİ

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

HSancak Nesne Tabanlı Programlama I Ders Notları

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES

Ayrık Fourier Dönüşümü

Uzaktan Algılama Teknolojileri

2.3. MATRİSLER Matris Tanımlama

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi

KONTROL SİSTEMLERİ-1 LABORATUVARI DENEY -1. Öğr. Gör. Güzin ÖZMEN Arş. Gör. Fehmi SEVİLMİŞ

MIT OpenCourseWare Ekonomide İstatistiksel Yöntemlere Giriş Bahar 2009

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ

İleri Diferansiyel Denklemler

BÖLÜM 24 PAULI SPİN MATRİSLERİ

Bilgisayar Programlama MATLAB

BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

MATLAB ve Simulink Kullanımına Giriş

Kodumuzu yazmaya zaman eksenini, açısal frekans ekseni ve örnekte verilen M değerlerini bir vektör içinde tanımlayarak başlayalım.

Bilgisayar Programlama MATLAB

Regular Expressions Version 0.1

MATLAB de GRAFİK İŞLEMLERİ

Luca Fatura Aktarım İşlemi

MATRİKS VERİ TERMİNALİ GELİŞMİŞ ALARM

İleri Diferansiyel Denklemler

Özdeğer ve Özvektörler

Nokta uzayda bir konumu belirtir. Noktanın 0 boyutlu olduğu kabul edilir. Herhangi bir büyüklüğü yoktur.

Ege Üniversitesi Elektrik Elektronik Mühendisliği Bölümü Kontrol Sistemleri II Dersi

Fen ve Mühendislik Uygulamalarında MATLAB

Elektromanyetik Dalga Teorisi

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Android Ders Notları

Bir özvektörün sıfırdan farklı herhangi bri sabitle çarpımı yine bir özvektördür.

MATLAB'A GİRİŞ. Contents

Genel Graf Üzerinde Mutlak 1-merkez

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

PROGRAMINIZI ANĠ SONLANDIRMAK ĠSTEDĠĞĠNĠZ YER BĠR DÖNGÜNÜN ĠÇĠ ĠSE NE OLUR?????????

var Deneme = Sistem.Parametreler[0];

ÖZDEĞERLER- ÖZVEKTÖRLER

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

>> 5*3-4+6/2^0 ans = 17 ( Matlab da sayılar arası işlemler [ +, -, /, *, ^ ] bu şekilde ifade edilmektedir.)

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

GrafEq Grafik Çizim Programı (Ocak 2009)

FireBug eklentisini eklentiyi yazan sitesinden veya FireFox un eklentiler indirebilirsiniz.

FİZ217 TİTREŞİMLER VE DALGALAR DERSİNİN 2. ARA SINAV SORU CEVAPLARI

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN

MAK 210 SAYISAL ANALİZ

Sistem Dinamiği. Bölüm 5-Blok Diyagramlar, Durum-Değişken Modelleri ve Simülasyon Metodları. Doç.Dr. Erhan AKDOĞAN

Kırım Filtresi ve Alt Örnekleme

BİLGİSAYAR PROGRAMLAMA DERSİ

Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz.

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

İleri Diferansiyel Denklemler

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

BM202 SAYISAL ÇÖZÜMLEME

MATLAB DA SAYISAL ANALİZ DOÇ. DR. ERSAN KABALCI

DENİZ HARP OKULU TEMEL BİLİMLER BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

MatLab. Mustafa Coşar

Bilgisayar Programlama MATLAB

Bölüm: Matlab e Giriş.

Yine benzer şekilde hücreler içine yazılan yazıların renklerini değiştirebiliriz. Bunun için tüm satırı veya sütunu yine fareyle seçmek durumundayız.

a. Giriş sekmesi: 1. Paragraf bölümünde Madde İşaretleri veya Numaralandırma seçeneklerinden istediğinize tıklayın.

Ecza Depolarına Ait E-Fatura Aktarım Modülü

MAK1010 MAKİNE MÜHENDİSLİĞİ BİLGİSAYAR UYGULAMALARI

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Doğrusal Denklem Sistemlerini Cebirsel Yöntemlerle Çözme. 2 tişört + 1 çift çorap = 16 lira 1 tişört + 2 çift çorap = 14 lira

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

1. ÇALIŞMA ALANI hücre çalışma sayfası kitap Başlık çubuğu Formül çubuğu Aktif hücre Sekmeler Adres çubuğu Kaydırma çubukları Kılavuz çizgileri

NĐĞDE ÜNĐVERSĐTESĐ Elektrik Elektronik Mühendisliği Bölümü. Devre Tasarımı Ders Notları MATLAB. Arş. Gör. Salim ÇINAR. salim çınar

CONTROL LAB1 MATLAB GİRİŞ

VEGAWIN BELGE CONVERTER

Akış Kontrol Mekanizmaları

Yrd. Doç. Dr. A. Burak İNNER

Dijital Kontrol Sistemleri Prof.Dr. Ayhan Özdemir. Dengede bulunan kütle-yay sistemine uygulanan kuvvetin zamana göre değişimi aşağıda verilmiştir.

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

KOLAY SİPARİŞ TAKİBİ v4

T I M U R K A R A Ç AY, H AY D A R E Ş, O R H A N Ö Z E R K A L K U L Ü S N O B E L

ideal Sistem Tester Kullanım Klavuzu

ÜNİTE. MATEMATİK-1 Doç.Dr.Murat SUBAŞI İÇİNDEKİLER HEDEFLER TÜREV UYGULAMALARI-I

Transkript:

4 Şubat 2 Pazartesi günü uygulamada çözdüğümüz 2. Soruyu, aynı sıra ile bu defa MATLAB kullanarak çözelim. MATLAB programı sembolik çözümler yapabilmekle birlikte, problemleri numerik olarak çözmeye yarar. Lisansı ücretli olan fakat İTÜ içinden erişebileceğiniz bu programa benzeyen ücretsiz programlar da bulunmaktadır. (Octave, Numpy, Scipy, Scilab gibi) Bunların kullanımı da MATLAB a benzemektedir. MATLAB programını açtığınızda karşınızda kutlarınızı çağırabileceğiniz bir command window göreceksiniz. Biz komutlarımızı bir dosyaya saklamak istediğimizden, bir editör yardımıyla kodumuzu yazıp, daha sonra çalıştıracağız. Herhangi bir editör kullanabilirsiniz, ancak renklendirmeleri size yardımcı olacağından ben MATLAB editörünü tavsiye ederim. Şekil : MATLAB Görünüm Şekil de görüldüğü gibi command window ve editöre ek olarak çalışmanızda kullandığınız değişkenleri, matrisleri, vektörleri görebileceğiniz workspace, çalıştığınız klasörün içreriğini gösteren current directory ve son kullandığınız komutları listeleyen command history pencereleri vardır. Kodunuzu teslim edeceğiniz için, komutlarınızı editor yardımıyla bir dosyaya yazıp.m uzantılı olarak kaydedebilirsiniz. Böylece daha sonra aynı kodu, yazdığınız dosyayı çağırarak tekrar kullanabilirsiniz.

İlk önce soruda verilen matrisleri tanımlayalım. A Şeklinde verilen A matrisini A = [- ;- -]; İle yazabiliriz. Bir matris, [] ile tanımlanır. Matrisin sütunlarını ayırmak için sayılar arasında boşluk bırakmak yeterlidir. Matrisin satırları ise ; ile ayrılır. Satır sonuna koyulan ; işareti ise command windowda sonuçların yazdırılmamasını sağlar. Kısaca ikiye ikilik bir matris Matris = [a a2; a2 a22]; Şeklinde yazılabilir. Benzer şekilde B matrisi de B=[ ; ]; olarak tanımlanabilir. Henüz yazdığınız koddan tam olarak emin olamadığınız için, kodunuzu satır satır çalıştırmayı deneyeceksiniz. Bunun için çalıştıracağınız komutu/komutları seçili hale getirip, sağ tık ile Evaluate Selection (kısayol:f9) diyebilirsiniz. A ve B matrislerini tanımladığınız satırları çalıştırdığınızda workspace te bu matrisleri göreceksiniz. Şimdi devrenin kararlı olup olmadığını görmek için A matrisinin özdeğer ve özvektörlerini hesaplayalım: [ov od]= eig(a) eig(a) komutu A matrisinin özdeğer ve özvektörlerini hesaplamak için kullanılır. Herhangi bir işlem için bir MATLAB komutu olup olmadığını MATLAB yardımı kullanarak bulabilirsiniz. Örneğin Help penceresini açıp eigenvalue kelimesini aradığınızda, bu komutu bulacaksınız. Bu komutun ne iş yaptığını ve nasıl kullanıldığını kısaca öğrenmek isterseniz command window a help eig yazın. Yukarıdaki komutu seçip çalıştırdığımızda, komutun sonuna ; koymadığımız için command window da aşağıdakileri göreceğiz: ov =.77.77 +.77i -.77i od = -. +.i -. -.i Özdeğerler od matrisinin diagonalında verilmiş. Birinci özvektör, ov matrisinin birinci sütunu, ikinci özvektör ise ov sütununun ikinci sütunu. (Özvektörler bizim derste hesapladıklarımızla aynı değil, ama farklı özvektör çiftleri bulabileceğinizi biliyordunuz.)

Birinci özdeğeri od değişkenine atayalım: od=od(,); Benzer şekilde od vektörünün 2,2 elemanı olan ikinci özdeğeri de od2=od(2,2); olarak yazabiliriz. Değişken sayısını arttırmak bize bir şey kazandırmayacağından, bu iki komutu çalıştırmaktansa, birinci özvektörü kullanmak istediğimiz yerde od(,) yazabiliriz. Ancak kodun anlaşılırlığı açısından da yeni değişken tanımlamak faydalı olabilir. Özdeğerleri command window da görüntüleyerek özdeğerlerin jw eksenine göre yerini tayin edebilir, dolayısıyla devrenin kararlı olup olmadığını anlayabiliriz. Şimdi durum geçiş matrisini bulmak için M matrisini bulalım. M=[ov(:,)*exp(od(,)*t) ov(:,2)*exp(od(2,)*t)]; * İşareti çarpma yapmak için kullanılır, e d ise exp(d) komutu ile hesaplanabilir. M matrisinin birinci sütunu birinci özvektör ile e λ.t nin çarpımı olduğuna göre, matrisin birinci sütun ov(:,)*exp(od(,)*t) ile hesaplanabilir. Gördüğünüz gibi, bir matrisin. sütununu ov(:,) yazarak seçebiliyoruz. Benzer şekilde. satırını da ov(,:) şeklinde seçebilirdik. Dikkat ederseniz, biz şimdiye kadar t değeri tanımlamadık. MATLAB ile şu anda numerik işlem yaptığımıza göre, t için de bir değere ihtiyacımız var. Bu sebeple öncelikle t= için M() değerini hesaplayalım: t=; M_=[ov(:,)*exp(od()*t) ov(:,2)*exp(od(2)*t)]; Bize bu matris değil, bunun tersi gerekiyor. Yardımda inverse ararsanız matris tersini alan komutu kolayca bulabilirsiniz: M ters=inv(m_); Şimdi düşünelim, bizim her t değeri için M(t) matrisini kaydetmeye ihtiyacımız var mı? Yok, ama grafik olarak çizdirmek istediğimiz özçözüm = Φ(t).x(). Doğrudan Φ(t).x() değerlerini de kaydedebiliriz. adet t değeri için özçözümü hesaplayıp bir matrise nasıl yazabiliriz? Aradığımız x oz (t) iki satırlı bir vektör. Her bir t değeri için bulduğumuz değeri matrisin ilgili sütununa yazabiliriz. MATLAB satır ve sütun indisleri için sadece pozitif tam sayıları kabul eder. Oysaki bizim ilgilendiğimiz t değerleri pozitif reel sayılar. Bu sebeple ben matris işlemlerinde kullanabileceğim bir T değişkeni tanımlıyorum. Aşağıda t nin değeri için özçözümü hesaplayan bir for döngüsü var. Her for döngüsü end komutu ile bitmek zorunda. Döngünün tamamını çalıştırmak için de for ve end satırlarının seçili olduğuna emin olun. x_=[;]; for T=:; t=t/; x_oz(:,t)=[ov(:,)*exp(od(,)*t) ov(:,2)*exp(od(2,2)*t)]*m ters*x_; end Yukarıdaki döngüye göre, matrisin değeridir. birinci sütunu (T= iken), t=. için hesaplanan özçözüm

İki adet durum değişkenimizin zaman içinde aldığı özçözüm değeri x_oz matrisinin satırlarında verilmiş oldu böylece. Başka bir değişle, x_oz(,:) x için özçözümü verir. İki çözümü de üst üste çizdirelim: figure; plot(x_oz(,:));hold all; plot(x_oz(2,:)); Figure komutu bir resim penceresi açar. plot(vektor) komutu bir vektörün elemanlarını sıra ile çizer. Aynı figür üzerine başka eğriler de çizmek istiyorsak hold on deriz, aksi takdirde ikinci defa plot komutunu çalıştırdığımızda ilk çizdiğimiz eğri siliniz. Önceki eğrileri kaybetmemenin bir yolu da her bir plot komutundan önce figure komutu ile yeni bir pencere açmaktır. Şekil 2: Özçözüm Ben yukarıdaki gibi bir resim elde ettim. Çizgilerin rengiyle, şekliyle, eksen isimleri ile oynayıp, eğrilerin ismini komutlarla da değiştirebilirsiniz ya da sağ taraftaki show plot tools and dock figure butonuna basabilirsiniz.

Şekil 3: Şekil özelliklerini değiştirme Şekil 3 teki gibi elde ettiğiniz grafiğin görsel özellikleri ile oynayabilir, daha sonra istediğiniz formatta kaydedebilirsiniz save as diyerek..fig uzantılı dosyalar, tekrar bu pencere ile açmaya dolayısıyla daha fazla değişiklik yapmaya ve değerleri okumaya izin verir. Özel çözüm önerip, A, A2,B,B2 değerlerini bulalım. A A2 B B2 Denklem takımını MATLAB kullanarak çözelim. Ax=[- - ; - ; - - -; - - ]; b=[-; ; ; -]; AB = inv(ax)*b

command window da karşımıza çıkan sonuç: AB =.4.2.2 -.4 Özçözümü bulduğumuz gibi özel çözümü de bulabiliriz: x_ozel_=[ab(2); AB(4)]; for T=:; t=t/; x_tam(:,t)=[ov(:,)*exp(od()*t) ov(:,2)*exp(od(2)*t)]*m ters*x_ + [AB()*sin(t)+ AB(2)*cos(t); AB(3)*sin(t)+AB(4)*cos(t)] -[ov(:,)*exp(od()*t) ov(:,2)*exp(od(2)*t)]*m ters*x_ozel_; end figure; plot(x_tam(,:));hold all; plot(x_tam(2,:)) Fazör kavramından yararlanarak Öncelikle kaynakları ve açısal frekansı tanımlayalım: w=;u=[/sqrt(2); -i/sqrt(2)]; i ve j eğer kod içinde başka şekilde atanmadılarsa olarak tanımlıdırlar. Bir sayının karekökünü almak için sqrt(sayı) ya da sayı^(/2) komutları kullanılabilir. Çözümü bulabilmek için, U ikiye ikilik birim matris olmak üzere, x = (jwu-a) - Bu işlemini aşağıdaki şekilde yapabiliriz: x=inv(i*w*eye(2)-a)*b*u; Burada birim matris eye(2) komutu ile tanımlanmıştır. (ara: identity matrix) İşlemin sonucunda 2 elemanlı bir sütun vektör elde edilir. Birinci eleman x, ikinci eleman ise x2 olur: x=x(); x2=x(2); Bu iki karmaşık sayının genliği ve açısı kullanılarak işaretin efektif değeri ve fazı elde edilebilir: X=abs(x);faz=angle(x); X2=abs(x2);faz2=angle(x2); Şimdi tek yapmamız gereken yukarıdaki değerler ile bir kosinüs eğrisini zamanın fonksiyonu olarak çizdirmek. Bunun için bu defa bir for döngüsü kullanmak yerine, öncelikle bir t vektörü tanımlayabiliriz. t=:.:; figure; plot(sqrt(2)*x*cos(w*t+faz));hold all; plot(sqrt(2)*x2*cos(w*t+faz2));