MATLAB/SIMULINK E BAŞLANGIÇ



Benzer belgeler
Bu uygulama saatinde, dinamik sistemlerin simülasyonu (benzetimi) için geliştirilmiş olan, oldukça kullanışlı bir arayüz, Simulink, tanıtılacaktır.

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

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

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

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

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

DENEY 1: Matlab de Temel Uygulamalar

AMASYA ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Elektrik Elektronik Mühendisliği Bölümü

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

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

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

MATLAB de GRAFİK İŞLEMLERİ

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

Matlab & Simulink MATLAB SIMULINK

MATLAB DE 2 BOYUTLU GRAFİK TÜRLERİ

Bilgisayar Programlama MATLAB

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

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

BİLGİSAYAR PROGRAMLAMA MATLAB

Bilgisayar Programlama MATLAB

Havuz Modelleme. Bina Tasarım Sistemi. Prota Yazılım Ltd. Şti.

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


CONTROL LAB1 MATLAB GİRİŞ

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).

FONKSİYONLAR. Giriş argümanlarına karşılık gelen çözümü çıkış argümanları olarak sonuçlandırır. Fonksiyondosyalarıkendiçalışmaalanındaki

CAEeda TM. NACA0012 KANADI ÜZERİNDE FAPeda ÇÖZÜMÜ UYGULAMASI EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

DENEME SINAVI. ECDL BAŞLANGIÇ Hesap Tablosu

2.3. MATRİSLER Matris Tanımlama

MENÜ AYARLAMA 1. MENÜ AYARLAMA. [X] [X] Standard. [X] [X] Yeni Fonksiyon

SAYISAL ANALİZ. Doç.Dr. Cüneyt BAYILMIŞ. Sayısal Analiz. Doç.Dr. Cüneyt BAYILMIŞ

BM202 SAYISAL ÇÖZÜMLEME

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

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

Başlarken. AutoCAD Arayüzü. AutoCAD Arabirimleri. AutoCAD Arabirimleri. Şablon (Template) Seçimi. Yeni çizim dosyası açmak. Ekran Formatı B Ö L Ü M 1

AST409 Astronomide Sayısal Çözümleme. II. Python da Matrisler

Bilgisayar Programlama MATLAB

PSPICE Đ NASIL KULLANIRIM

PSPICE AC SWEEP VE PARAMETRĐK ANALĐZ YÖNTEMLERĐ

Resim 7.20: Yeni bir ileti oluşturma

1- Temel MATLAB Fonksiyonları ve Programlama

AST415 Astronomide Sayısal Çözümleme - I. 7. Grafik Çizimi

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Ş (

MATLAB ve Simulink Kullanımına Giriş

MATLAB. Grafikler DOÇ. DR. ERSAN KABALCI

İleri Diferansiyel Denklemler

Cadence OrCAD Kurulum ve Simulasyon

T.C. KOCAELİ ÜNİVERSİTESİ MEKATRONİK MÜHENDİSLİĞİ OTOMATİK KONTROL SİSTEMLERİ DERSİ MATLAB UYGULAMA NOTLARI-1

KATES Yazılım Güncelleme Dokümanı

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

Uzaktan Algılama Teknolojileri

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

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

CAEeda TM OM6 KANADI MODELLEME. EDA Tasarım Analiz Mühendislik

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

Q-Biz İş Zekası 5.1. Versiyon Yenilikleri

KOCAELİ TEKNİK LİSESİ ELEKTRİK ELEKTRONİK BÖLÜMÜ OTOMASYON ATÖLYESİ EKTS (Elektrik Kumanda Teknikleri Simülatörü ) DERS NOTU. Kaynak :

SİMULİNK KULLANIMI: Simulink'i çalıştırmak için MATLAB komut satırında simulink yazıyoruz.karşımıza Simulink Kütüphanesi çıkacaktır:

H(s) B(s) V (s) Yer Kök Eğrileri. Şekil13. V s R s = K H s. B s =1için. 1 K H s

SATIŞ EKRANININ KULLANIMI:

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

TEMEL SPICE KULLANIMI. OrCAD programını çalıştırıp, File New Project e tıklayalım. Analog or Mixed A/D seçip proje ismi ve yerini girelim

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

IPACK LADDER. Arayüz Dökümantasyonu

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

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

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

Ders 5 : MATLAB ile Grafik Uygulamaları

SİMULİNK KULLANIMI: Model oluşturmak 2( Basit bir oransal denetleyici tasarımı)

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ DENETİM SİSTEMLERİ LABORATUVARI DENEY RAPORU. Deney No: 1 MATLAB ve SIMULINK E GİRİŞ

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Ana Sayfaya Git. Yukarıdaki adrese tıklayıp, sizlere e-posta ile iletilen, «Kullanıcı adı» ve «Şifre» bilgileriniz ile giriş yapınız.

Fen ve Mühendislik Uygulamalarında MATLAB

HSancak Nesne Tabanlı Programlama I Ders Notları

4.1. Grafik Sihirbazını kullanarak grafik oluşturma

SAYISAL KONTROL 2 PROJESİ

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

Kopyalama ve Taşıma konularıyla ilgili daha değişik uygulamalar yaparak bu konunun pekiştirilmesini sağlamanız yararınıza olacaktır.

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

MATLAB - GİRİŞ NEDEN MATLAB

Microsoft Word 2010 ara yüzündeki bölümler aşağıda gösterilmiştir.

MATLABA GİRİŞ 1. MATLAB. Komut penceresi. MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir.

Bu uygulama saatinde, ders kapsamında şu ana kadar bahsedilen konulara ilişkin MATLAB fonksiyonları tanıtılacaktır.

BÖLÜM 04. Çalışma Unsurları

A1FX MT4 İşlem Platformu Kullanma Kılavuzu

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

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

Animasyon Teknikleri, Ses ve Video İşlemleri 1 / 18

SIMMAG Kullanım Kılavuzu. Adem Ayhan Karmış. Ana Ekran

DENEY 2 Sistem Benzetimi

Kelime işlemcilerin işlevlerini öğrenmek. Başlıca kelime işlemcileri tanımak. Microsoft Word 2010 programı hakkında temel bilgileri öğrenmek.

NB Macro Kullanımı Hakkında Genel Bilgiler

OYAK YATIRIM FX Meta İşlem Platformu Kullanma Kılavuzu

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

ULUDAĞ ÜNİVERSİTESİ ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELN3052 OTOMATİK KONTROL

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

Transkript:

MATLAB/SIMULINK E BAŞLANGIÇ Hazırlayan: YUSUF ONUR KOÇBERBER Yokocbeber(at)etu edu tr TOBB EKONOMİ VE TEKNOLOJİ ÜNİVERSİTESİ ELEKTRİK VE ELEKTRONİK MÜHENDİSLİĞİ 01.01.2008 v1. 25.02.2009 v2.

İçindekiler Matlab a Başlangıç... 3 Vektörler... 4 Matrisler... 6 Çizgeler... 9 Polinomlar... 12 Transfer Fonksiyonu ve Durum Uzayı Gösterimi... 14 Analiz... 17 Simulink... 20 2

Matlab a Başlangıç Yeni M File Simulink Workspace Çalışma Klasörü Command Window Komut Geçmişi Kılavuz boyunca sık kullanılacak Matlab elemanları yukarıda işaretlenmiştir. Çalışma klasörü olarak belirtilen Current Directory aksi belirtilmedikçe yapılan tüm çalışmaların kaydedildiği klasördür. Birbirine bağlı m dosyaları çalıştırılacaksa tüm dosyaların bu klasörde olması gerekmektedir aksi takdirde m dosyası içinde dosyanın bilgisayardaki konumu tam olarak belirtilmelidir. Çalışmalar sırasında yararlı bir kaç komut: clc: Command window u temizlemektedir. whos: Workspace deki değişkenlerle ilgili bilgileri göstermektedir (özellikle iki değişkenin boyutu uyuşmadığında kontrol etmek amacıyla kullanılır) clear Değişkenİsmi: İlgili değişkeni workspace den siler. help Fonksiyonİsmi: İlgili fonksiyon hakkında özet bir yardım gösterir. syms Değişkenİsmi: ilgili değeri değişken yapar (türev, integral gibi sembollerin kullanıldığı işlemler için). 3

Vektörler Vektörler 1xn boyutlu matrislerdir. Bir vektör tanımlamak için: Command Window a >> a = [1 2 3 4 5 6 9 8 7] komutunu giriniz. Böylece aşağıdaki sonuç elde edilir. Görüldüğü üzere a değeri Workspace penceresinde yerini almıştır. Bu pencereden işlemler sırasında kullanılan tüm parametreler ve onlarla ilgili çeşitli bilgiler (boyutu, en büyük değeri, en küçük değeri, boyu vs.) görülebilir. Benzer şekilde 0 ile 100 arasında eşit dağılmış 5 elemanlı bir vektör yaratmak için >> a=0:20:100 Sonuç: a = 0 20 40 60 80 100 a=0:20:100 gösterimi 0 dan başlayarak 100 e kadar her adımda bir sonraki elemana 20 eklemektedir. a vektörünün ilk elemanına ulaşmak istenildiğinde a(1) komutu kullanılmaktadır. >> a(1) ans = 0 Not: Çoğu programlama dillerinin aksine MATLAB dizilerin ilk elemanını 0 değil 1 olarak indekslemektedir. Bu sebepten dolayı ilk elemana ulaşmak için a(1) komutu kullanılmıştır. 4

Çarpım A vektörünü ile birlikte ikinci bir b vektörü yaratalım. >> b= a - 5 b = -5 15 35 55 75 95 A ile b vektörünü çarpıp c adlı yeni bir matrise atamak istiyoruz. Bu durumda c= a * b komutunu kullanırsak; >> c= a * b??? Error using ==> mtimes Inner matrix dimensions must agree. Yukarıdaki hata ile karşılaşılır. Bunun nedeni * işleci matris çarpımı yapmaktadır yani iki tane 1xn boyutundaki matrisi çarpmak mümkün değildir. Burada vektör çarpımı yapılması gerekmektedir. Vektör Çarpımı işleci.* şeklindedir. >> c= a.* b c = 9500 0 300 1400 3300 6000 Görüldüğü üzere a ve b vektörlerinde konum itibariyle karşılıklı elemanlar birbirleriyle çarpılmıştır. Not: Benzer şekilde kuvvet işleçi de (^) vektör işlemleri için.^ şeklinde kullanılmalıdır. 5

Matrisler Matrisin tanımlanması: Matrisler tanımlanırken değişik yollar bulunmaktadır. En genel yol yeni bir satır için ; kullanılmasıdır. >> a=[1 2 ; 3 4] a = 1 2 3 4 Bir başka yol ise: >> b = [ 1 2 3 4 ] b = 1 2 3 4 Matris değerleri girilirken workspace deki değer isimleri veya sanal sayılar kullanılabilir. Sanal sayılar için i veya j kullanılabilir. Not: Eğer i veya j değişkenine daha önce başka değer atamışsanız bu değişkeni sqrt( 1) e eşitlemeniz yeterlidir. Matrisin Transpozu Daha önceden tanımlanan b matrisinin transpozunu almak için ; >> b' ans = 1 3 2 4 6

Matrisin Tersi Daha önceden tanımlanan b matrisinin tersini almak için ; >> inv(b) ans = -2.0000 1.0000 1.5000-0.5000 Matrisin Özdeğeri Daha önceden tanımlanan b matrisinin özdeğerlerini bulmak için ; >> eig(b) ans = -0.3723 5.3723 Vektör veya matris tanımlarken, kolaylık amacıyla tüm elemanları 0 tanımlamak için zeros, tüm elemanları 1 tanımlamak için ones, tüm elemanları rastgele sayılardan oluşturmak için rand fonkisyonu kullanılabilir. >> zeros (5,1) ans = 0 0 0 0 0 Dizilere uygulanan fonkisyonlar length(a): a dizisinin eleman sayısı yani uzunluğu size(a): a dizisinin boyutu sum(a): a matrisinin sütun başına eleman toplamı (eğer sadece sütün veya satır matrisiyse tüm elemanların toplamını verir) kd(n): kd dizisinin n. eleman değeri A(n,:): A matrisinin sadece n. satırı A(:,n): A matrisinin sadece n. sütunu 7

A : A matrisinin transpozu yani devriği det(a): A matrisinin determinantı inv(a) : A matrisinin tersi diag(a): A matrisinin ana diagonel (çapraz) elemanları [v,d]=eig(a): A matrisinin özvektörleri ve özdeğerleri Elemanter işlemler: Eleman eleman işlem demektir ve. (nokta) işleci kullanılır: Çarpma:.*, Bölme:./, Üs alma:.^ 8

Çizgeler Matlab daki en önemli fonksiyonlardan biri plot fonksiyonudur. Plot(x,y) şeklinde belirtilen bu komutta x değerleri çizgenin yatay eksenine, y değerleri çizgenin düşey eksenine çizilecektir. Örneğin; >> t=0:0.1:5 şeklinde zaman değerlerimizi belirleyelim, >> y=sin(2*pi*t) >>plot (t,y) Bu noktadan sonraki komutları m dosyasına yazmak daha yararlı olacaktır çünkü bir çok komutu arkaya tek satırlık komut penceresine yazmak zaman kaybettirmektedir. Yeni bir m dosyası açmak için File>New>M File Gelen editörün içine yeni değerleri tanımlayınız : t=0:0.1:10; y= 2.^(10-t); plot (t,y,'r:') title ('çizge 1') xlabel (' x ekseni') ylabel ('y ekseni') Dosyayı kaydedip Debug>Run dosyaismi veya kısayol olarak F5 tuşuna basınız. 9

Örnekte görüldüğü üzere plot fonksiyonuna eklenen r: terimi grafiği kırmızı ve noktalı yapmıştır. Başka renkler için g,b,c,m,y,k,w gibi belirteçleri, değişik şekiller için., o, x, ^, +, *., belirteçleri deneyebilirsiniz. Örneğin g grafiği yeşil ve çizgili b* mavi ve yıldızlı göstermektedir. Xlabel ve Ylabel fonksiyonları ile x ve y eksenine eksen ismi formatında istenilen isimler verilebilir. Aynı m dosyasının en sonuna axis tight komutunu ekleyip m dosyasını tekrar çalıştırınız. Görüldüğü üzere grafiğin eksenleri çizdirilen fonksiyonun minimum ve maksimum değerlerine göre ayarlanmıştır. Axis komutu grafiklerin daha anlaşılır olması için önemli bir araçtır ve her zaman plot tan sonra kullanılır. Bu komutun bir diğer kullanımı ise axis([xmin, xmax, ymin, ymax]) şeklindedir. Bu sayede görmek istediğimiz grafiğin eksenlerinin en küçük ve en büyük değerleri ayarlanabilir. Birden Çok Grafiği Yönetmek Birden fazla grafiği (aynı x ekseni baz olmak üzere) üst üste çizmek için; Örneğin: x,y1,y2,.yn için; 1.yol: plot(x,y1,x,y2,..x,yn) 2.yol: plot(x,y1), hold on, plot(x,y2,..x,yn) Çoklu grafiği etiketlemek için: 1.yol: Grafik üzerinde metin ekleme yapılır. 2.yol: legend( 1.grafikmetin, 2.grafikmetin.) fonksiyonu kullanılır. Birden fazla grafiği farklı pencerelerde (aynı veya farklı x ekseni baz olmak üzere) çizmek için subplot(m,n,p) fonksiyonu kullanılır. Bu fonksiyon matris düzeninde çizim alanı açar ve grafikler yine plot fonksiyonu ile çizilir. 10

Örnek: Hold on komutu ile grafiklerin üst üste çizilmesi t = 0:0.01:1 ; x= 0:0.1:10; y = x.^(t); plot(t,y,'b:') hold on z = sin(2*pi*t); plot(t,z,'r+') w = y.*z; plot(t,w,'g--') legend('x^{t}','sin(2*\pi*t)','x^{t}sin(2*\pi*t)') axis tight grid on Örnek: Aynı grafiklerin subplot komutu ile ayrı ayrı pencerelerde çizilmesi; subplot (3,1,1) t = 0:0.01:1; x= 0:0.1:10; y = x.^(t); plot(t,y,'b:') title ('x^{t}') legend('x^{t}') grid on subplot (3,1,2) z = sin(2*pi*t); plot(t,z,'r+') legend ('sin(2*\pi*t)') title ('sin(2*\pi*t)') grid on 11

subplot (3,1,3) w = y.*z; plot(t,w,'g--') legend('x^{t}sin(2*\pi*t)') title ('x^{t}sin(2*\pi*t)') grid on Polinomlar Matlab polinomları bir vektör ile tanımlar. Örnek olarak ; 3s 4 +6s 3 3s 2 +10s+1 Polinomu aşağıdaki vektör ile tanımlanır. >> A=[ 3 6-3 10 1] A = 3 6-3 10 1 Eğer arada eksik katsayılar varsa bu katsayılar 0 ile gösterilir. Örnek olarak; 7s 4 +10 >> A=[7 0 0 0 10] A = 7 0 0 0 10 12

Polinomun değerini bulmak için polyval fonksiyonu kullanılabilir. Örneğin a=[7 0 0 0 10] polinomunun s=3 teki değerini bulmak için ; >> polyval([7 0 0 0 10],3) ans = 577 Aynı yöntemi kullanarak polinom çizdirilebilir. Örnek: t=-5:0.1:3 A=[1 2-10 -7 4] plot(t,polyval(a,t)) 200 150 100 50 0-50 -5-4 -3-2 -1 0 1 2 3 Görüldüğü üzere grafik y=0 eksenini 4 kere kesmektedir. Köklerin tam yeri roots komutu ile tespit edilebilir. >> roots (A) ans = -4.0000 2.6180-1.0000 0.3820 13

Transfer Fonksiyonu ve Durum Uzayı Gösterimi Transfer fonksiyonunu belirtmek için öncelikle pay ve paydayı tanımlamak gerekmektedir. Bunun için >> num=[1] num = 1 >> den=[1 14 56 160] den = 1 14 56 160 >> tf(num,den) Transfer function: 1 ------------------------- s^3 + 14 s^2 + 56 s + 160 Aynı şekilde bu transfer fonksiyonun durum uzayı gösterimlerinden biri aşağıdaki gibidir. y= Bu gösterimi Matlab a aktarmak için ss(a,b,c,d) şeklinde bir gösterim kullanılmalıdır. >> a=[0 1 0 ; 0 0 1; -160-56 -14] a = 0 1 0 0 0 1-160 -56-14 >> b=[0 ;1 ; -14 ] >> c=[1 0 0 ] >> d=[0] a,b,c,d matrisleri tanımlandıktan sonra ss komutu ile gösterim tamamlanır. 14

>> ss(a,b,c,d) a = x1 x2 x3 x1 0 1 0 x2 0 0 1 x3-160 -56-14 b = u1 x1 0 x2 1 x3-14 c = x1 x2 x3 y1 1 0 0 d = u1 y1 0 Transfer fonksiyonundan durum uzayı gösterimi veya durum uzayı gösteriminden transfer fonksiyonu elde edilebilir. Daha önceki örnekte transfer fonksiyonu num ve den isimleri ile tanımlanmıştı. Durum uzayı gösterimini A,B,C,D matrislerine aktarmak için ; >> [A,B,C,D]=tf2ss(num,den) A = B = C = D = -14-56 -160 1 0 0 0 1 0 1 0 0 0 0 1 0 15

Aynı şekilde durum uzayı gösteriminden transfer fonksiyonu çıkarılabilir. Bunun için ss2tf komutu kullanılır. Yukarıdaki örneklerde kullandığımız a,b,c,d matrislerini kullanırsak; >> [pay,payda]=ss2tf(a,b,c,d) pay = 0 0.0000 1.0000 0.0000 payda = 1.0000 14.0000 56.0000 160.0000 16

Analiz Elde edilen gösterimleri analiz etmek için Bode çizgesi Adım cevabı Dürtü cevabı Kutuplar ve sıfırlar bulunabilir. Daha önceden elde ettiğimiz pay ve payda değişkenlerini sistemin_transfer_fonksiyonu isimli bir değişkene atayalım. >> sistemin_transfer_fonksiyonu=tf(num,den) Transfer function: 1 ------------------------- s^3 + 14 s^2 + 56 s + 160 Bode çizgesi için; >>bode(sistemin_transfer_fonksiyonu) -40 Bode Diagram Magnitude (db) -60-80 -100-120 0 Phase (deg) -90-180 -270 10-1 10 0 10 1 10 2 Frequency (rad/sec) Grafikte istenilen noktalara tıklanarak ilgili değerler alınabilir. 17

Adım cevabı için ; >>step(sistemin_transfer_fonksiyonu) 8 x 10-3 Step Response 7 6 5 Amplitude 4 3 2 1 0 0 0.5 1 1.5 2 2.5 3 Time (sec) Yüzde aşım, yükselme zamanı,tepe değeri gibi değerler grafikte ilgili yerlere tıklanarak ölçülebilir fakat 2007 ve sonrası sürümlerde stepinfo komutu bulunmaktadır. >> stepinfo(sistemin_transfer_fonksiyonu) ans = RiseTime: 0.4526 SettlingTime: 2.0948 SettlingMin: 0.0060 SettlingMax: 0.0072 Overshoot: 14.7300 Undershoot: 0 Peak: 0.0072 PeakTime: 1.0067 18

Dürtü cevabı için; >> impulse(sistemin_transfer_fonksiyonu) 14 x 10-3 Impulse Response 12 10 8 Amplitude 6 4 2 0-2 -4 0 0.5 1 1.5 2 2.5 3 3.5 Time (sec) Sistemin kutupları pole komutu ile bulunur. >> pole(sistemin_transfer_fonksiyonu) ans = -10.0000-2.0000 + 3.4641i -2.0000-3.4641i Sistemin sıfırları tzero komutu ile bulunur. >> tzero(sistemin_transfer_fonksiyonu) ans = Empty matrix: 0-by-1 Bu örnekte sistemin sıfırı olmadığından boş matris çıkmıştır. 19

Simulink Simulink modelleme ve benzetim için geliştirilmiş grafiksel ara yüze sahip bir Matlab uzantısıdır.simulinkte sistemler ekran üzerine blok diyagramlar halinde çizilmektedir.transfer fonksiyonu blokları, toplayıcılar gibi blokların dışında osiloskop, fonksiyon üreteci gibi sanal giriş/çıkış cihazları da bulunmaktadır. Simulink, Matlab içinde çalışan bir program olduğundan iki program arasında rahatlıkla veri transferi yapılabilir. Bu kılavuzda her bloğun tek tek tanıtılmasından ziyade örnekler üzerinden gidilecektir. Programın başlatılması; Matlab içerisinde command window a simulink yazılmalıdır. >>simulink Simulink Library Browser penceresi açıldıktan sonra ekleneceği boş ekran elde edilir. File>New>Model seçilerek blokların Simulink Library Browser penceresinden bloklar sürükle bırak şeklinde açılan boş model sayfasına eklenmelidir. 20

Örnek 1: Öncelikle Simulink>sources kütüphanesinden step bloğunu Simulink>continuous kütüphanesinden derivative bloğunu Simulink>math Operations kütüphanesinden add ve gain bloğunu Simulink>commonly used blocks kütüphanesinden scope bloğunu tasarım ekranına ekleyiniz. Blokların girişlerinden farenin tuşuna basılı tutarak sonraki bloğun girişine gittiğiniz takdirde bloklar bağlanır fakat kısa yol olarak ilk bloğu seçtikten sonra ctrl tuşuna basılı tutarak hedef blok üzerine tıklandığı takdirde bloklar kendiliğinden bağlanır. Scope bloğu üzerine iki tıklayarak, parameters sekmesinden, Scope Parametreleri 3 farklı veriyi aynı anda gözlemek amacıyla, number of axes alanını 3 yapınız. Bloklar bağlanıldığında aşağıdaki şekildeki gibi bir görüntü oluşması gerekmektedir. 21

Simülasyon ayarlarını yapmak için, Simulation > Configuration Parameters penceresini açınız. Sistemi sabit adım ile çözmek için gelen pencereden, Solver options Type seçeneğini Fixed Step olarak seçiniz. Fixed step size olarak sırasıyla 1, 0.01 ve auto değerleri kullanılacaktır. Şekilde görülen Simulation Stop Time alanına benzetimin kaç saniye süreceği girilmelidir. Simülasyon süresini 2 olarak girdikten sonra şekilde görülen start simulation tuşuna tıklayarak veya kısayol olarak ctrl+t ile benzetimi başlatınız. Adım aralığı : 1 Adım aralığı : 0.01 Adım aralığı : auto 22

Örnek 2: Öncelikle Simulink>sources kütüphanesinden step bloğunu Simulink>continuous kütüphanesinden transfer fcn bloğunu Simulink>commonly used blocks kütüphanesinden scope bloğunu tasarım ekranına ekleyiniz. Adım cevabı bulunacak transfer fonksiyonu aşağıdaki gibidir Transfer Fcn bloğunun değerlerini değiştirmek için üzerine iki tıklayınız, numerator coefficient ve denominator coefficient alanları ile sırasıyla pay ve paydanın değerleri vektör şeklinde tanımlanmaktadır. 23

Scope bloğuna iki kere tıklayarak sonucu görüntüleyiniz. Sonucun tam olarak görüntülenmesi için şekilde görülen autoscale butonuna tıklayınız. Örnek 3: PID ve Subsystem Oluşturma Öncelikle şekilde görülen blok şemayı kurunuz. Kazançların değerlerini P terimi için Kp, I terimi için Ki ve D terimi için Kd şeklinde değiştirildiğine dikkat ediniz. Daha sonra şema üzerindeki tüm elemanları seçtikten sonra sağ tıklayıp create subsystem seçeneğini seçiniz. 24

Subsystem haline dönüşen blok üzerine tekrar sağ tıklayarak mask subsystem seçeneğini seçiniz. Gelen pencerenin Parameters sekmesinden Add butonu ile yeni parametreler ekleyiniz. Variable alanına daha önce ismi değiştirilen blokların ismini girmeniz gerekmektedir. Aksi takdirde ilgili bloğun değerine dışarıdan erişilemeyecektir. Add Butonu Elde edilen subsystem adlı bloğun ismini PID olarak değiştiriniz ve aşağıdaki blok şemayı kurunuz. 25

PID bloğuna tıkladığınızda Kp, Kd ve Ki değerlerini girebildiğinizi göreceksiniz.farklı Kp, Kd, Ki değerleri ile bu terimlerin sisteme etkisini gözleyebilirsiniz. Scope bloğundan çıkan grafiğin yükselme zamanı, yüzde aşımı gibi değerleri zoom to y axis yakınlaştırma butonları ile ölçebileceğiniz gibi grafiğin değerlerini Matlab ın workspace bölümüne göndererek daha önce anlatılan stepinfo komutunu kullanabilirsiniz. Scope Parametreleri Yakınlaştırma butonları Grafik verisini workspace alanına aktarmak için şekilde gösterildiği gibi scope parameters butonuna tıklayıp data history sekmesini seçmek gerekmektedir. Save data to workspace seçeneği işaretlenerek gönderilecek olan verinin workspace de hangi değişken ismi ile tanımlanacağını belirtmek gerekir bu isim varsayılan şekilde ScopeData olarak belirlenmiştir. Format kısmından Array seçilerek değişkenin nx2 lik bir matris şeklinde belirtilmesi sağlanmalıdır. Bu değişkenin n uzunluğundaki satır kısmı benzetim uzunluğu ile doğru orantılıdır. 1.kolonu zaman değerleri yani x ekseni, 2.kolonu ise bu zaman karşılığında alınan değerleri belirtmektedir yani y eksenidir. Stepinfo(Y ekseni,x ekseni) şeklinde kullandığından doğru sonuç almak için aşağıdaki şekilde kullanılmalıdır. 26

>> stepinfo(scopedata(:,2),scopedata(:,1)) ans = RiseTime: 0.6484 SettlingTime: 3.1281 SettlingMin: 0.9185 SettlingMax: 1.0682 Overshoot: 6.8172 Undershoot: 0 Peak: 1.0682 PeakTime: 1.5505 Örnek 4: Aşağıdaki blok şemayı kurunuz. Daha önceki örnekte olduğu gibi scope parameters penceresine gidilerek axes alanı 3 yapılmalıdır. Bu sayede scope penceresi 3 e bölünecektir. Eğer grafikleri üst üste çizdirmek istiyorsanız mux elemanını kullanabilirsiniz. Tellerin üzerine çift tıklayarak isimlendirebilirsiniz, bu sayede scope ekranındaki grafikleri tespit etmek daha kolay olmaktadır. Simulation time alanını 20 yaparak benzetimi başlatınız. Görüldüğü üzere scope ekranı 3 farklı pencereye bölünmüş ve hepsinin başlığı bulunmaktadır. 27

28