28.5.23 MAK MAKİNE MÜHENDİSLİĞİ BİLGİSAYAR UYGULAMALARI Grafik çiziminde kullanılacak verilerin hazırlanması: Bunu için veriler ya MATLAB ortamında vektörleştirme kuralına göre ya da el ile tek tek girilerek hazırlanır. Özellikle bir deneyden veya başka bir hesaplamadan gelen mevcut verileri elle girmek için izlenecek en kolay yol Array Editor'ü (dizim düzenleyicisi) kullanmaktır. Diğer bir yoldan da veriler, bağımsız değişkeni (yatay eksen verileri) vektörleştirme ile oluşturduktan sonra bağımlı değişkenler (düşey eksen) verileri de sin, cos ve exp gibi basit MATLAB yerleşik fonksiyonları ile oluşturulabilir. Bunun için aşağıdaki komut satırları kullanılabilir. x = :pi/:2*pi; y=sin(x); y2=cos(x); y3=exp(-x); Şekil penceresi seçimi ve grafik alanın bu pencereye yerleştirilmesi: Bu durum özellikle M-dosya programı hazırlanmasında önemlidir. Eğer amaç sadece bir basit bir grafik oluşturmak ise verilerle beraber plot komutu doğrudan kullanılabilir. Aşağıda verilen birinci komut sözdizimi oluşturulacak şekil penceresini numaralandırırken ikinci komut çizilecek grafiğin bu şekil penceresinde nereye yerleştirileceğini belirlemektedir. Temel çizim fonksiyonunun çağırılması: Bu komutla veriler ve çizim bölgesi hazırlanmış grafiğin çizimi gerçeklenebilir. Burada plot komutu h çıkış argümanı olmaksızın doğrudan da kullanılabilirdi. Bu şekilde kullanılmasındaki amaç bir şekil nesnesi oluşturarak bu nesneyi daha sonra grafik üzerinde düzenlemeler amacı ile kullanmak içindir. Bu da M-fonksiyon programcılığında önemlidir. figure(); subplot(2,2,); h=plot(x,y,x,y2,x,y3);
Genlik 28.5.23 Grafikte ortaya çıkan çizgi ve işaretleme karakteristiklerinin belirlenmesi: Burada set komutu ile h grafik nesnesinin çizgi ve işaretleme karakteristiklerini düzenleyen komutlar yer alır. set(h,'linewidth',2,{'linestyle'},{'--';':';'-.'}) set(h,{'color'},{'r';'g';'b'}).5 -.5-2 4 6 8 Eksenlerin sınırlarının ve eksen takımının bölümlenmesi: Eksenler uygun bir şekilde ölçeklendirilerek gerektiğinde yatay ve düşey yönde çizgilerle (grid) bölünür. Burada yatay eksen bağımsız değişkenin başlangıç değeri ile nihai değeri olarak ve düşey eksen de bağımlı değişkenin minimum ve maksimum değerleri olarak ölçeklendirilmiştir..8.6.4.2.8.6.4.2 axis([ 2*pi - ]) grid on.5 -.5 -.2 -.2-2 4 6 -.4 -.4 -.6 -.6 -.8 -.8-2 3 4 5 6 7-2 3 4 5 6 7 Grafiğin ve eksenlerin etiketlendirilerek grafik üzerine ek açıklayıcı bilgiler yerleştirilmesi: Burada uygun grafik komutları kullanılarak oluşturulan grafik üzerine gerekli açıklayıcı bilgiler yerleştirilmiş olur..8.6 Basit fonksiyonlar Birinci İkinci Üçüncü Oluşturulan grafiğin basılması veya başka bir ortama aktarılarak saklanması: MATLAB ortamında oluşturulan grafikler çeşitli yollardan saklanabilir. Burada sadece oluşturulan bir grafiğin doğrudan bir yazıcıya yönlendirilerek basılı bir kopyasının hazırlanması ele alınmıştır. Grafiklerin grafik ortamında saklanması ile ilgili ayrıntılı bilgiler daha sonraki bölümde ele alınacaktır. Burada bir yazıcıda daha sonra çıkış olarak elde etmek için gerekli komut sözdizimi verilmiştir..4.2 print -depsc -tiff -r2 myplot -.2 -.4 -.6 -.8 - Birinci Min 2 3 4 5 6 Zaman 2
28.5.23 Etkileşimli Grafik Düzenleme Herhangi bir şekilde MATLAB ortamında bir grafik komutu (örneğin plot komutu) ile bir şekil penceresi ve şekil penceresi içinde bir grafik oluşturulduktan sonra yandaki şekilde gösterildiği gibi toolbr ikonları veya etkileşimli menü(context menu) kullanılarak düzenleme yapılabilir. Grafik biçim düzenleme düğmesi Nesne ekleme veya bir grafikteki mevcut nesneleri düzenlemek için Edit (düzenleme), Insert (ekle) ve Tools (araçlar) menüsü kullanılır. Çift tıklama ile nesne seçimi Tıkla ve sürükle yoluyla etiketler, açıklama metinlerin ve diğer nesnelerin konumlandır Tıklamaya duyarlı nesneler üzerinde açılan menülerden nesne nitelikleri düzenlenir. Grafik üzerine,metin, ok ve çizgi ekleme düğmeleri ETKİLEŞİMLİ GRAFİK DÜZENLEME Bir grafik üzerinde nesnelerin tıklama yoluyla düzenlenmesine geçmeden önce grafik düzenleme biçiminin (plot editing mode) etkin hale getirilmesi gerekir. Grafik düzenleme biçimi ise çeşitli yollardan etkin hale getirilebilir. Şekil penceresi üzerindeki Tools (araçlar) menüsünden Edit Plot (grafik düzenleme) seçeneğinin etkin hale getirilmesiyle, Aşağıdaki şekilde verildiği gibi, şekil penceresi araç çubuğu üzerindeki Edit Plot simgesinin fare tuşu ile tıklanmasıyla, Şekil penceresi üzerindeki Edit (düzenleme) veya Insert (ekle) menüsünden bir tercih yapılmasıyla. Örneğin eğer Edit (düzenleme) menüsünden Axes Properties (eksen nitelikleri) tercihi gibi MATLAB komut penceresinde plotedit komutu ile boş bir Şekil Penceresi açılmasıyla. Grafik Fonksiyonlarını Kullanarak Grafik Düzenleme ve Grafik vasıtaları (handle) Düzenlenmek istenen grafik nesnelerini ileri-geri hareket ettirme düğmesi İstenen nesneyi seçmek için gezinti çubuğu kullanılır. Bir tablo çubuğu tıklanarak nitelikler grubunu görüntülenebilir. Bu alanın değerler listesini görüntülemek için buraya tıklanır. Property Editor gözden kaçırmadan uygulama (Apply) düğmesi tıklanır. Yapılan değişikliklerin iptali. Değişikliklerin onaylanması. Değişiklerin etkisinin anında görüntülenmesi için seçim kutusu Özel bir nitelik hakkında yardım alma. plot fonksiyonu: Bu fonksiyon en temel çizgisel grafik oluşturma fonksiyonu olup ilgili örnekler daha öncede verilmiştir. Burada değişik çağırma komutları ve basit bir grafik çizim örneği verilecektir. plot fonksiyonunun çeşitli komut sözdizimleri plot(y) plot(x,y,...) plot(x,y,linespec,...) plot(...,'propertyname',propertyvalue,...) h = plot(...) biçimindedir. Diğer temel grafik fonksiyonlarının komut sözdizimleri bunlardan farklı değildir. Sadece fonksiyon adı değişir. 3
28.5.23 Tablo Çizgi grafik fonksiyonları Fonksiyon plot plot3 loglog semilogx semilogy plotyy Kullanım Amacı Her iki ekseni doğrusal ölçekli verilerin 2-boyutlu grafiğini Tüm eksenleri doğrusal ölçekli verilerin 3-boyutlu grafiğini oluşturur Tüm eksenlere logaritmatik ölçekli çizgisel grafik x-ekseni logaritmatik ölçekli ve y-ekseni doğrusal ölçekli bir grafik y-ekseni logaritmik ölçekli ve x-ekseni doğrusal ölçekli bir grafik oluşturur Sol ve sağ tarafında y-eksenleri olan bir grafik Aşağıdaki örnekte 3 farklı şekilde ölçeklenmiş sinüs fonksiyonunun tek bir plot komutu ile çizimi ele alınmıştır. Burada önce yatay eksene yerleştirilecek t değişkeni için vektörleştirme yolu ile veri oluşturulmuş ve daha sonra da bu verileri giriş kabul eden 3 farklı sinüs fonksiyonu ile yatar eksene yerleştirilecek veriler oluşturulmuştur. Bu verilerin grafiği ise tek plot komutu ile oluşturulmuş ve burada veriler plot komutuna tek bir satırda giriş argümanı olarak tanımlanmıştır. t = :pi/:2*pi; y = sin(t); y2 = sin(t-.25); y3 = sin(t-.5); plot(t,y,t,y2,t,y3) Elde edilen eğriler Şekil de verilmiştir..8.6.4.2 -.2 -.4 -.6 -.8-2 3 4 5 6 7 plot3 fonksiyonu uygulaması: Uygulama örneği olarak 3-boyutlu helis grafik çizim komutları aşağıda olduğu gibidir. t = :pi/5:*pi; plot3(sin(t),cos(t),t) grid on axis square Bu komutlarla oluşturulan grafik Şekil de verilmiştir. 4 3 2.5 -.5 - - -.5.5 4
28.5.23 loglog fonksiyonu uygulaması: Uygulama örneği olarak kare biçimi işaretlerle basit bir loglog eğrisi çizim komutları aşağıda olduğu gibi verilebilir. Bu komutlara ait grafik ise Şekil 4.5 de verilmiştir. x = logspace(-,2); loglog(x,exp(x),'-s') grid on semilogx veya semilogy fonksiyonu uygulaması: Uygulama örneği olarak basit bir semilogy eğrisi çizim komutları aşağıda olduğu gibi verilebilir: semilogy(...) h = semilogy(...) plotyy fonksiyonu uygulaması: Burada ele alınan uygulama örneğinde plot fonksiyonunu, plotyy fonksiyonunda eğri çizim fonksiyonu olarak iki matematiksel fonksiyonun grafiğini oluşturmakta kullanılmıştır. plotyy fonksiyonu ile oluşturulan iki adet y-ekseni bağıl değerleri farklı olan her iki veri takımı tek bir grafik üzerinde görüntüleme olanağı sağlar x = :.:2; y = 2*exp(-.5*x).*sin(x); y2 =.8*exp(-.5*x).*sin(*x); [AX,H,H2] = plotyy(x,y,x,y2,'plot') 2 5 5-5 - -5-2 2 4 6 8 2 4 6 8 2 -.8.8.6.4.2 -.2 -.4 -.6 Grafiklerin İsteğe Bağlı Düzenlenmesi ve Biçimlendirilmesi Grafiklerin İsteğe Bağlı Düzenlenmesi ve Biçimlendirilmesi axis([xmin xmax ymin ymax]):satır vektörü içinde verilen değerleri kullanarak eksenlerin minimum ve maksimum değerlerini belirler V=axis: V, ([xmin xmax ymin ymax]) biçiminde bir satır vektörü olup mevcut grafik için ölçek değerlerini içerir. axis, auto axis ( auto ): Eksen ölçek değerlerini varsayılan otomatik değerlerine döndürür. axis manual: Ölçek değerlerini mevcut sınırlarda dondurur ve böylece eğer tutma komutu (hold on) etkin hale getirilmişse, bir sonraki grafik çiziminde aynı eksen değerlerini kullanma imkanı sağlar. axis xy: Sistem orijinin en düşük (en küçük koordinat çifti) sol köşede olduğu, buna karşılık düşey eksenin alttan üste doğru arttığı yerdeki kartezyen koordinat (varsayılan) kullanır. axis ij: Sistem orijinin üst sol köşede olduğu yerdeki matris koordinat biçimini kullanır. Yatay eksen soldan sağa doğru, buna karşılık düşey eksen üsten alta doğru artış gösterir. axis square: Mevcut grafik eksenlerini (varsayılan dikdörtgen biçimi yerine) kare biçimine dönüştürür. axis equal: Ölçek değerlerini (çarpanlarını) her iki eksen için eşit kılar. axis equal, axis tight: axis equal ile aynı olmakla beraber, ayrıca grafik kutusunu verilere sıkı bir biçimde uydurur. axis vis3d: Eğer bakış açısı değişmiş ise MATLAB ı eksen oranını değiştirmekten alıkoyar. axis normal: axis square, equal, tight ve vis3d komutlarını devreden çıkarır ve eksenleri normal (varsayılan) biçime dönüştürür. axis off: Eksenleri, eksen üzerinde yer alan işaretleri ve yazıları siler, kaldırır. Başlık ve herhangi etiketleri text ve gtext komutları ile yerleştirilecek duruma geçirir. axis on: Silinen eksenleri tekrar geri çağırır. 5
28.5.23 Grafiklerin İsteğe Bağlı Düzenlenmesi ve Biçimlendirilmesi axis ij: Sistem orijinin üst sol köşede olduğu yerdeki matris koordinat biçimini kullanır. Yatay eksen soldan sağa doğru, buna karşılık düşey eksen üsten alta doğru artış gösterir. axis square: Mevcut grafik eksenlerini (varsayılan dikdörtgen biçimi yerine) kare biçimine dönüştürür. axis equal: Ölçek değerlerini (çarpanlarını) her iki eksen için eşit kılar. axis equal, axis tight: axis equal ile aynı olmakla beraber, ayrıca grafik kutusunu verilere sıkı bir biçimde uydurur. axis vis3d: Eğer bakış açısı değişmiş ise MATLAB ı eksen oranını değiştirmekten alıkoyar. axis normal: axis square, equal, tight ve vis3d komutlarını devreden çıkarır ve eksenleri normal (varsayılan) biçime dönüştürür. axis off: Eksenleri, eksen üzerinde yer alan işaretleri ve yazıları siler, kaldırır. Başlık ve herhangi etiketleri text ve gtext komutları ile yerleştirilecek duruma geçirir. axis on: Silinen eksenleri tekrar geri çağırır. Grafik Üzerine Açıklayıcı Bilgiler İlave Edilmesi Grafik üzerinde keyfi bir konuma bir metin yazma ve eksenlerin altına etiket metni yazdırmak mümkündür. Bu komut fonksiyonlarının belli başlıları: title fonksiyonu, grafik üzerine başlık yazdırır. xlabel, ylabel ve zlabel fonksiyonları, sırasıyla, x-ekseni, y- ekseni ve z-ekseni üzerine etiket yazdırır. legend fonksiyonu, mevcut bir grafik üzerine açıklayıcı ifadeler ekler. text fonksiyonu, grafik üzerinde koordinatları belirtilen bir konuma bir metin yazdırır.. gtext fonksiyonu, fareyi kullanarak grafik üzerine metin yerleştirir. Yukarıda verilen fonksiyonları komut penceresinde kullanarak grafik üzerinde gerekli düzenlemeler yapılabilir. Bunlara ilaveten şekil penceresinde grafik editörü (Pilot Editor) ile de benzer işlemleri yapmak mümkündür. ÖZEL GRAFİKLER 3-BOYUTLU GRAFİK VE GÖRÜNTÜLEME İŞLEMLERİ MATLAB temel çizgisel grafik işlemleri yanında diğer türden çeşitli grafik işlemlerini de desteklemektedir. Kullanıcı verilerin yapısına bağlı olarak uygun bir grafik işlem türü seçilebilir. Özel grafikler üç ana gruba ayrılmış olup bunlar; Çubuk ve alan grafikleri (bar and area graphs) Pasta şemalar (pie charts) Histogramlar (histogram) Kesikli (süreksiz) veri grafikleri (discrete data graphs) Yön ve hız vektör grafikleri Dış hat (contour) eğrileri Etkileşimli eğri çizim Canlandırma (animation) 3-Boyutlu Çizgi Grafikleri plot3 fonksiyonu; plot fonksiyonun 3-boyutlu benzeridir. Buna göre; plot3(x,y,z) komutu ile aynı boyuttaki x, y, ve z vektörlerinin 3-boyutlu çizgisel grafiği oluşturulur. Örneğin aşağıda verilen komut satırları ile üç boyutlu bir helis oluşturulur. t = :pi/5:*pi; plot3(sin(t),cos(t),t) title('helis'), xlabel('sin(t)'), ylabel('cos(t)'), zlabel('zaman, t') axis square; grid on 6
28.5.23 3-BOYUTLU GRAFİK VE GÖRÜNTÜLEME İŞLEMLERİ 3-Boyutlu Çizgi Grafikleri plot3 fonksiyonu; plot fonksiyonun 3-boyutlu benzeridir. Buna göre; plot3(x,y,z) komutu ile aynı boyuttaki x, y, ve z vektörlerinin 3-boyutlu çizgisel grafiği oluşturulur. Örneğin aşağıda verilen komut satırları ile üç boyutlu bir helis oluşturulur. t = :pi/5:*pi; plot3(sin(t),cos(t),t) title('helis'), xlabel('sin(t)'), ylabel('cos(t)'), zlabel('zaman, t') axis square; grid on 3-BOYUTLU GRAFİK VE GÖRÜNTÜLEME İŞLEMLERİ 3-boyutlu yüzey grafiği biçimleri Fonksiyon mesh, surf meshc, surfc meshz pcolor Tanımı Yüzey grafiği oluşturur Altında dış hatlar eğrisi (contour) ile yüzey grafiği Perde eğrisi (başvuru düzlemi) ile yüzey grafiği Düz yüzey eğrisi (değeri yalnızca renkle orantılı) surfl Belirlenmiş yönden ışıklandırılmış yüze eğrisi surface Yüzey grafik nesnesi oluşturmak için düşük-seviye fonksiyonu (yüksek-seviye fonksiyonunun temel kabul ettiği) SİSTEM, DİNAMİK SİSTEM, MATEMATİK MODEL SİSTEM, DİNAMİK SİSTEM, MATEMATİK MODEL Simulink, dinamik sistemlerin modellenmesi, benzetimi ve çözümlemesinde kullanılmak üzere tasarlanmış, MATLAB ın eklentisi bir paket programdır. Simulink de modelleme bir grafik kullanıcı arayüzü (GUI) üzerinde tıkla-vesürükle işlemleri ile kolayca gerçeklenebilir. Simulink üzerinde kurulan modellere Simulink modeli denir ve bu modeller için gerekli elemanlar da Simulink blok kütüphanesinden sağlanır. Bu şekilde GUI yardımıyla yapılan Simulink işlemleri kağıt üzerinde kalemle yapılan işlemler kadar kolay gerçeklenir. Simulink ortamında bir dinamik sistemin analizi ve çözümünde sistemin bir grafik modeli kurulur.bundan sonra da modeli kurulan sistemin zamana bağlı davranışını ortaya koyan benzetimi (simulation) gerçeklenir Simulink blok şeması bir dinamik sistemin resmedilmiş modelidir. Blok şemanın temel elemanı olan bloklar birbirine çizgilerle bağlı bir takım imgelerden ibarettir. Her bir blok ya sürekli ya da zamanın belli noktalarında bir çıkış veren elemansal bir dinamik sistemi temsil eder. Blok şemada yer alan her bir blok belli tür bir bloğun bir örneğidir. Blok türü bloğun çıkışları, girişleri, durumları ve zaman arasındaki bağlantıyı belirler. Blok şema bir sistemi modellemek için gerekli olan herhangi türden ve örnekten herhangi bir sayıdan bloktan oluşur. Simulink; blok kütüphane tarayıcısı, blok kütüphane, model ve grafik (scope) benzetim sonuçları (cıkışı) olmak üzere her biri için ayrı bir pencere kullanır. Bu pencereler MATLAB ın şekil pencereleri farklıdır ve grafik yönetim (Handle Graphics) komutları ile denetlenemez. u GİRİŞ x (Durumlar) y ÇIKIŞ 7
28.5.23 Simulink i ÇALIŞTIRMAK ve MODEL KURMAK Simulink Modelinin Kurulması Şekil de verilen kütüphane tarayıcısı açıldıktan sonra bunun üzerinden model oluşturmak üzere yeni bir pencere (model düzenleme sayfası) açılır. Bunu için; ya Kütüphane tarayıcısı (Simulink Libary Browser) simge çubuğu üzerindeki boş sayfa simgesi tıklanır, ya da Tarayıcı çubuğundaki File üzerine tıklatılarak bu menü üzerinde yer alan New tıklatılarak untitled (etiketsiz) başlığı altında yeni bir sayfa açılır (Şekil 9.3). Bu pencere model düzenleme (Model Editor) veya model oluşturma penceresi olarak bilinir. Simulink Modelinin Kurulması Denklemlerden Model Kurma Simulink modeli kurulan denklemlerin mutlaka zamana bağlı diferansiyel denklem veya benzeri yapıda olması gerekmez. Herhangi bir matematiksel ifade veya formülün ve hatta herhangi bir mantık işleminin Simulink modelini kurmak mümkündür. Örnek problem 7.2: MATLAB da yer alan Celsius (santigrat) sıcaklık derecesini Fahrenheit sıcaklık derecesine dönüştüren, aşağıdaki matematiksel formülün Simulink modelini ele alalım. T 9 / 5(T ) 32 F c 8