You are on page 1of 228

T.C.

MARMARA NVERSTES TEKNK ETM FAKLTES ELEKTRONK-BLGSAYAR BLM

KONTROL SSTEMLER N MATLABTE GUI UYGULAMALARI TASARIMI

( LSANS BTRME TEZ, 2006-2007 RETM YILI)

HAZIRLAYAN

: 2306826 Kenan SAVA 4BK

TEZ DANIMANI

: Yrd. Do. Dr. Hasan ERDAL

stanbul, 2007

T.C. MARMARA NVERSTES TEKNK ETM FAKLTES ELEKTRONK-BLGSAYAR BLM

KONTROL SSTEMLER N MATLABTE GUI UYGULAMALARI TASARIMI

( LSANS BTRME TEZ, 2006-2007 RETM YILI)

HAZIRLAYAN

: 2306826 Kenan SAVA 4BK

TEZ DANIMANI
KONTROL MZASI JR YELER

: Yrd. Do. Dr. Hasan ERDAL


: ... : Yrd. Do. Dr. Hasan ERDAL Yrd. Do. Dr. Mustafa ONAT Yrd. Do. Dr. zgl VAYVAY

NSZ
Bu almada MatLab program deiik ynleri ile incelenmitir. Konu ile ilgili literatrde ok az Trke kaynak olmas ve konuya zellikle bilimsel aratrma yapan akademisyenlerin ounun bu bakmdan eksiklik yaamas dnldnde byle bir proje zerinde alma gerei duydum. Bu amala konu ile ilgili literatr ok ayrntl bir ekilde taramaya ve elimden geldiince ieriin kolay anlalr bir ekilde sunulmasna zen gsterdim. Ayrca, bu almada Otomatik Kontrol alan ile ilgili eitli amalara hizmet etmek zere Matlab program kullanlarak tasarlanan pek ok sayda GUI uygulamalarna yer verilmitir. Bu tasarmda rencilerin grsel uygulamalar sayesinde zellikle Kontrol alan ile ilgili dersleri daha hzl ve daha iyi kavramalar amalanmtr. Hazrlanan GUI uygulamalar, grafiksel kolaylk ve basit bir arabirim sunmas ile dersin renmesinde rencileri komut ezberleme ya da komut ile i yapma ikencesinden kurtararak dersi kolay anlalr, elenceli ve pratik bir zeminde renme frsat sunacaktr. Uygulama konular Introduction to Control Systems, Professional Mathematics, Automatic Control I ve Automatic Control II dersleri programnda yer alan konular baz alnarak seilmitir. Bunlarn yannda bu alsmann sonunda hazrlanan GUI uygulamalarna ait algoritmalarn eklenmi, bunlarn benzer uygulamalarn gelitirilmesi iin bir kaynak olaca dnlmtr. Byle deerli bir proje almasnda kendisi ile almama frsat verdii ve bandan sonuna kadar desteini srdrd iin deerli hocam Yrd. Do. Dr. Hasan ERDAL Beye, deerli bilgileri ve yardmlarn esirgemeyen hocam Yrd. Do Dr. Mustafa ONAT Beye, zellikle o deerli zamanlarn ayran ve ilgisini bir an olsun esirgemeyen Muhammed NAL Beye ve alm olduu doktora dersleri ile ilgili bilgilerini paylat iin nder DEMR Beye teekkr ederim. Routh kriteri iin hazrlam olduu tez almas ile bana projemde yardmc olan Hakan AYDIN Beye ve bu almay gerekletirmemde bana yardmc olan ve almalarndan yararlandm ve burada adn anmadm btn ahslara da ayrca teekkr ederim u an iinde bulunduum frsatlarn olumasnda en byk pay olan ve hayatm boyunca emeklerini ve yreklerini unutamayacam ve daima hatrlayacam deerli annem ve babama kranlarm sunarm. renim hayatmda bu ana gelmemde emei olan tm hocalarma da can gnlden teekkr ederim.

Haziran 2007

Kenan SAVA

NDEKLER
Konu Sayfa No
nsz ...........................................................................................................I indekiler ...................................................................................................II Sembol Listesi .............................................................................................XII zet ..............................................................................................................XVI Abstract .......................................................................................................XVII BLM-I MATLABE GR ....................................................................................1
1.1 Temel Bilgiler........................................................................................................ 1 1.2 Matlab Ortam ve Pencereler.............................................................................. 1 1.2.1 Array Editor Penceresi .................................................................................. 2 1.2.2 Command History Penceresi: ....................................................................... 3 1.2.3 Command Window Penceresi:...................................................................... 3 1.2.4 Current Directory Penceresi: ........................................................................ 3 1.2.5 Demos Penceresi:............................................................................................ 3 1.2.6 Help Penceresi: ............................................................................................... 4 1.2.7 Workspace Penceresi: .................................................................................... 5 1.3 Aritmetik lemler ve Operatrler...................................................................... 5 1.4 Karlatrma lemleri ve Operatrleri ............................................................ 6 1.5 Mantksal lemler ve Operatrler ..................................................................... 6 1.6 Aklama Operatr ............................................................................................ 7 1.7 Komutlarn Ekran ktsn Gizleme Operatr.............................................. 7 1.8 Deikenler............................................................................................................ 7 1.9 Deikenlere Deer Atama lemi ve Atama Operatr .................................. 8 1.10 Rakamlar ............................................................................................................ 8 1.11 Hazr Matematiksel Fonksiyonlar .................................................................... 8 1.12 Hazr Rakamlar.................................................................................................. 9 1.13 Vektrler (Matrisler) ......................................................................................... 9 1.14 Polinomlar........................................................................................................... 11 1.15 Grafik izim Komutlar .................................................................................... 11 1.16 Zamana Bal Tekrarl lem Yaptrma Komutlar ....................................... 13

II

1.16.1 Timer Nesnesi ile Herhangi Bir Matlab Komutunun altrlmas ....... 13 1.16.2 Timer Nesnesi ile Herhangi M Fonksiyonunun altrlmas................. 13 1.16.3 Timer Nesnesinin zelliklerinin Okunmas .............................................. 14 1.16.4 Timer Nesnesinin zelliklerinin Set Edilmesi ........................................... 14 1.16.5 Timer Nesnesinin Belirli Bir Zamanda almasnn Salanmas .......... 15 1.16.6 Timer Nesnesinin Fonksiyonlar ................................................................. 15 1.16.7 Timer ile izim Yaplmas iin Yaplmas Gerekenler............................. 15 1.16.8 Timer Nesnesinin Balatlmas ve Durdurulmas...................................... 15 1.16.9 Timer Nesnesinin Yok Edilmesi.................................................................. 15 1.17 Fonksiyon Dosyalar (M Dosyalar, M Files) ................................................... 17

BLM-II MATLABTE KONTROL SSTEMLERNN KOMUT KULLANIMI LE ANALZ .....................................................................................................18


2.1 Modellerin Oluturulmas ................................................................................... 18 2.2 Model Verilerinin Elde Edilmesi ........................................................................ 19 2.3 Modellerin Birbirine Dntrlmesi................................................................ 19 2.4 Modellerin Birbirine Balanmas ....................................................................... 20 2.4.1 Seri Balant....................................................................................................... 20 2.4.2 Paralel Balant ................................................................................................. 20 2.4.3 Geri Beslemeli Balant .................................................................................... 21 2.4.4 klarn Toplanmas....................................................................................... 21 2.4.5 Girilerin Datlmas........................................................................................ 22 2.4.6 Girilerin ve klarn Birletirilmesi ............................................................ 22 2.5 Modellerin Cevaplarnn Elde Edilmesi............................................................. 23 2.5.1 Adm Cevab (Step Response) .......................................................................... 23 2.5.2 Ani Darbe Cevab (Impulse Response)............................................................ 24 2.5.3 Rampa Cevab (Ramp Response) .................................................................... 25 2.6 Kontrol ile lgili Dier Komutlar........................................................................ 26 2.6.1 rss Komutu : .................................................................................................. 26 2.6.2 ord2 Komutu : ............................................................................................... 27 2.6.3 gensig Komutu : ............................................................................................. 27 2.6.4 lsim Komutu : ................................................................................................ 28

BLM-III
III

MATLABTE KONTROL SSTEMLERNN SMULNK ORTAMINDA ANALZ .....................................................................................................29


3.1 Simulinke Giri.................................................................................................... 29 3.2 Kontrol Alan ile lgili Bloklar ............................................................................ 29 3.3 Simulink Ortamnda Model Oluturma............................................................. 35 3.4 Simulink Ortamnda Gerek Zamanl (Real Time) alma : ........................ 39 3.5 Simulink Modellerinin Matlab Komutlar ile Ynetilmesi .............................. 46 3.5.1 Bir Simulink Modelinin Almas Ve Kapatlmas...................................... 46 3.5.2 Bir Simulink Modelinin altrlmas ......................................................... 47 3.5.3 Bir Simulink Modeline Ait Parametrelerinin Deitirilmesi ..................... 47 3.5.4 Bir Simulink Modeline Ait Bloklarn zelliklerinin Deitirilmesi ve Okunmas 47 3.5.5 Bir Simulink Modeline Ait Verilerin Matlab Komut Satrndan Eriilmesi 48

BLM-IV MATLABTE DI DNYADAN DATALARIN ALINMASI (IMPORT EDLMES).................................................................................................49


4.1 Giri ....................................................................................................................... 49 4.2 Datalarn Import Edilmesi .................................................................................. 49 4.2.1 Datalarn Import Edilmesi iin 1. Yntem................................................... 49 4.2.2 Datalarn Import Edilmesi iin 2. Yntem................................................... 51

BLM-V MATLABTE GRAFKSEL KULLANICI ARABRM (GUI) TABANLI UYGULAMA TASARIMI ........................................................................55
5.1 Giri ....................................................................................................................... 55 5.2 Grafiksel Kullanc Arabirimi (GUI) Nasl alr? ......................................... 55 5.3 Matlabte GUI Oluturma Yntemleri ............................................................. 56 5.4 MATLAB GUIDE Arac ile GUI Tasarm Oluturma.................................... 56 5.4.1 Komponentleri alma Alanna Ekleme .................................................... 57 5.4.2 alma Alannn Boyutlarn Deitirmek.................................................. 58 5.4.3 Nesneleri Hizalamak ..................................................................................... 59 5.4.4 Nesnelere Yaz Ekleme ve zelliklerini Deitirme ................................... 60 5.4.5 GUI Tasarmn Kaydetme ve altrma ................................................... 60 5.5 GUI Arayznn Programlanmas .................................................................... 61 5.6 M-File Programlama Yntemi Kullanlarak GUI Tasarm Oluturma ....... 65

IV

5.6.1 Programlama Yoluyla Nesnelerin Eklenmesi ............................................. 67 5.6.2 Programlama Yntemi ile GUI Tasarmnda Callback Kullanm ........... 70 5.7 GUIDE Aracnn ncelenmesi ............................................................................. 72 5.7.1 Layout Editor ................................................................................................. 72 5.7.2 Figure Resize Tab .......................................................................................... 73 5.7.3 Menu Editor ................................................................................................... 73 5.7.4 Align Objects ................................................................................................. 73 5.7.5 Tab Order Editor .......................................................................................... 73 5.7.6 Property Inspector ........................................................................................ 73 5.7.7 Object Browser .............................................................................................. 73 5.7.8 Run .................................................................................................................. 73 5.7.9 M-File Editor ................................................................................................. 73 5.7.10 GUIDE Tercihleri ........................................................................................ 73 5.7.10.1 Dorulama Seenekleri ......................................................................... 74 5.7.10.2 Geriye Uyumluluk Seenei ................................................................. 75 5.7.10.3 Dier Tercihler ...................................................................................... 75 5.7.10.3.1 Show Toolbar ................................................................................... 76 5.7.10.3.2 Show Names in Component Palette: .............................................. 77 5.7.10.3.3 Show File Extension in Window Title: .......................................... 77 5.7.10.3.4 Show File Path in Window Title: ................................................... 77 5.7.10.3.5 Add Comments for Newly Generated Callback Functions: ........ 77 5.7.11 GUIDE Seenekleri ..................................................................................... 78 5.7.11.1 Resize Behavior ..................................................................................... 78 5.7.11.2 Command-Line Accessibility ................................................................ 79 5.7.11.3 Generate FIG-File and M-File .............................................................. 79 5.7.11.3.1 Generate Callback Function Prototypes ........................................ 79 5.7.11.3.2 GUI Allows Only One Instance to Run (Singleton) ...................... 79 5.7.11.3.3 Use System Color Scheme for Background ................................... 79 5.7.11.3.4 Generate FIG-File Only................................................................... 80 5.7.12 GUIDE Aracnda ablon (Template) Uygulamalar ile alma ............. 80 5.7.12.1 GUI with Uicontrols Uygulamas ..................................................... 81 5.7.12.2 GUI with Axes and Menu Uygulamas............................................. 82 5.7.12.3 Modal Question Dialog Uygulamas ................................................. 83 5.7.13 GUI Nesnelerinin Aklanmas .................................................................. 85 5.7.13.1 Push Button: ...................................................................................... 85

5.7.13.2 Toggle Buton: 5.7.13.3 Radio Buton: 5.7.13.4 Check Box: 5.7.13.5 Edit Text: 5.7.13.6 Static Text: 5.7.13.7 Slider: 5.7.13.8 List Box: 5.7.13.10 Axes: 5.7.13.11 Panel:

.................................................................................... 85 ...................................................................................... 85 ........................................................................................ 85

........................................................................................... 86 ........................................................................................ 86 ............................................................................................ 86 ................................................................................... 86

................................................................................................. 86

5.7.13.9 Pop-Up Menu:

................................................................................................. 86 ............................................................................................... 86 ................................................................................. 86 ...................................................................... 86

5.7.13.12 Button Group:

5.7.13.13 ActiveX Component:

5.7.14 Nesnelerin GUI Yzeyine Yerletirilmesi .................................................. 87 5.7.14.1 Bir Nesnenin GUI Yzeyinde Bulunan Bir Panele ya da Buton Grubuna Yerletirilmesi ........................................................................................ 87 5.7.14.1.1 ActiveX Control Nesnesinin GUI Yzeyine Yerletirilmesi .............. 87 5.7.15 GUI Yzeyine Eklenen Nesnelerin Boyutlandrlmas ............................ 88 5.7.16 Her Nesneye Tantc Bir sim Atamak ..................................................... 88 5.7.17 Nesnelere Yaz Eklemek ............................................................................. 89 5.7.17.1 Push Button, Toggle Button, Radio Button, Check Box, Text Nesnelerine Yaz Eklenmesi .................................................................................... 89 5.7.17.2 List Box ve Popup Menu Nesnelerine Yaz Eklenmesi ......................... 90 5.7.17.3 Panel ve Buton Group Nesnelerine Balk Eklenmesi .......................... 90 5.7.18 GUI alma Alannda Nesneler ile alma............................................. 91 5.7.18.1 Nesnelerin Seilmesi .............................................................................. 91 5.7.18.2 Nesneler zerinde Kopyalama, Silme, Tama, oullama lemlerinin Yaplmas ............................................................................................................ 91 5.7.18.3 Bir Nesneyi Dier Nesneler Arasnda ne veya Arkaya Getirme .... 92 5.7.18.4 Nesnelerin GUI alma Alannda Tanmas .................................... 92 5.7.18.5 Nesnelerin Boyutunu Deitirmek ....................................................... 94 5.7.18.6 Nesnelerin Hizalanmas ........................................................................ 94 5.7.18.6.1 Alignment Tool (Hizalama Arac) .................................................... 94 5.7.18.7 Property Inspector (zellikler Penceresi) ........................................... 95 5.7.18.8 Grid and Rulers (Izgara ve Cetvel) .................................................... 95 5.7.18.9 Guide Lines (Klavuz izgileri) ............................................................. 96 VI

5.7.18.10 Tab Tuu ile Gei Srasnn Ayarlanmas ........................................ 97 5.7.18.11 GUI Uygulamasna Men Eklemek ................................................... 98 5.7.18.11.1 GUI Uygulamasna Program Mens Eklemek ......................... 98 5.7.18.11.2 GUI Uygulamasna Context (erik) menleri Eklemek ........... 101 5.7.18.11.2.1 Context (erik) mensnn Bir Nesne ile likilendirilmesi 103 5.7.18.12 GUI Uygulamasna Ara ubuu Eklemek ...................................... 104 5.7.18.13 Nesne Hiyerarisinin Gsterilmesi ..................................................... 105 5.7.19 GUI Nesnelerinin Programlanmas ........................................................... 105 5.7.19.1 Push Button: 5.7.19.2 Toggle Buton: 5.7.19.3 Radio Buton: 5.7.19.4 Check Box: 5.7.19.5 Edit Text: 5.7.19.6 Static Text: 5.7.19.7 Slider: 5.7.19.8 List Box: 5.7.19.10 Axes: 5.7.19.11 Panel: ...................................................................................... 105 .................................................................................... 106 ...................................................................................... 107 ........................................................................................ 107 ........................................................................................... 107 ........................................................................................ 108 ............................................................................................ 108 ................................................................................... 108 ................................................................................................. 109 ............................................................................................... 111 ................................................................................. 112 ...................................................................... 112

................................................................................................. 108

5.7.19.9 Pop-Up Menu:

5.7.19.12 Button Group:

5.7.19.13 ActiveX Component:

5.7.19.13.1 GUI Yzeyine Eklenen Bir Activex Nesnesinin Tm Metotlar .. 114 5.7.19.13.2 Activex Nesnesi eren Bir GUI Uygulamasnn Compile Edilmesi115 5.7.19.14 Men eleri ....................................................................................... 116 5.8 GUI Uygulamalarnda Callback Trleri: ......................................................... 116 5.9 GUI Uygulamalarnda Callbackler Arasnda Ortak Veri Geiini Salayan Yollar118 5.9.1 Handles Yap Deikeni Kullanlarak Global Kullanm ........................... 118 5.9.2 Global Deiken Tanmlama Deyimi............................................................ 119 5.9.3 GUI Alannda Visible Ve Enable zellikleri Off Yaplm Nesne Kullanlmas. 119 5.9.4 Load Ve Save Deyimlerinin Kullanlmas.................................................... 119 5.9.5 Nesnelerin Userdata zelliini Kullanmak ................................................. 120 5.9.6 Uygulama Datas Yntemi............................................................................. 120 5.10 GUI Uygulamalarnda Temizleme Komutlar................................................. 121 5.11 GUI Uygulamalarnda Kullanlan Standart Handle Deikenleri ................ 121 5.12 Herhangi Bir GUI Uygulamasnn Sonlandrlmas........................................ 122 VII

5.13 Yeni Bir Figure Oluturma Komutu ................................................................ 122 5.14 MATLAB GUI Uygulamalarnda Etkileim Kutular Ynetimi................... 122 5.14.1 Hata Penceresi (Error Dialog) ................................................................... 123 5.14.2 Yardm Penceresi (Help Dialog) ................................................................ 123 5.14.3 Veri Giri Penceresi (Input Dialog) ........................................................... 124 5.14.4 Liste Grnm Penceresi (List Dialog) ..................................................... 125 5.14.5 Yazdrma Penceresi (Print Dialog) ............................................................ 126 5.14.6 Sorgu Penceresi (Question Dialog) ............................................................ 127 5.14.7 Renk Seim Penceresi (Color Dialog) ........................................................ 128 5.14.8 Font Seim Penceresi (Font Dialog) ........................................................... 128 5.14.9 Uyar Penceresi (Warn Dialog) .................................................................. 129 5.14.10 Ykleme ubuu (waitbar) ...................................................................... 130 5.14.11 Klasr Yolu Penceresi (UIGetDir Dialog) ............................................... 130 5.14.12 Dosya Ama Penceresi (UIGetFile Dialog) ............................................ 131 5.14.13 Dosya Kaydetme Penceresi (UIPutFile Dialog) ..................................... 133 5.14.14 Sayfa Yaps Penceresi (Page Dialog) ...................................................... 135 5.14.15 Mesaj Kutusu (MessageBox Dialog) ........................................................ 136 5.14.16 Sayfa nizleme Penceresi (PrintPreview Dialog) .................................. 138

BLM-VI MATLABTE KONTROL ALANI LE LGL TASARLANAN GUI UYGULAMALARI ....................................................................................140


6.1 Uygulama-1in Tantlmas ................................................................................. 140 6.1.1 Uygulamann Ad : Kk-Yer Erisinin izimi ve Hesaplamalarnn Yaplmas 140 6.1.2 Uygulamann Hazrlanma Amac ................................................................ 140 6.1.3 Uygulamann Arayz .................................................................................. 140 6.1.4 Uygulamann Kullanl ............................................................................... 141 6.1.4.1 Kk-Yer Erisi le lgili Hesaplamalarn Yaplmas ve Erinin Yorumlanmas 141 6.1.4.2 Kk-Yer Erisinin izdirilmesi .............................................................. 142 6.1.4.3 Kk-Yer Erisinde Seilen Bir K Deerine Ait Kklerin Kullancya Gsterilmesi ................................................................................................................... 143 6.1.4.4 Kk-Yer Erisi in Verilen Bir K Deerine Ait Kklerin Bulunmas 145 6.1.5 Uygulamann Algoritmas.............................................................................. 146 6.2 Uygulama-2nin Tantlmas ............................................................................... 149 6.2.1 Uygulamann Ad : Bode Erisinin izimi ve Hesaplamalarnn Yaplmas....... 149

VIII

6.2.2 Uygulamann Hazrlanma Amac : .............................................................. 149 6.2.3 Uygulamann Arayz .................................................................................. 149 6.2.4 Uygulamann Kullanl ............................................................................... 149 6.2.4.1 Bode Erisi izi ile lgili Deerlerin Bulunmas ve Erinin Yorumlanmas. 150 6.2.4.2 Bode Erisinin izdirilmesi..................................................................... 151 6.2.5 Uygulamann Algoritmas.............................................................................. 151 6.3 Uygulama-3n Tantlmas ................................................................................ 152 6.3.1 Uygulamann Ad : Ziegler-Nichols Yntemi Uygulamas ......................... 152 6.3.2 Uygulamann Hazrlanma Amac ................................................................ 153 6.3.3 Uygulamann Arayz .................................................................................. 153 6.3.4 Uygulamann Kullanl ............................................................................... 154 6.3.5 Uygulamann Algoritmas.............................................................................. 155 6.4 Uygulama-4n Tantlmas ................................................................................ 157 6.4.1 Uygulamann Ad : Routh Kriteri Uygulamas ........................................... 157 6.4.2 Uygulamann Hazrlanma Amac ................................................................ 157 6.4.3 Uygulamann Arayz .................................................................................. 157 6.4.4 Uygulamann Kullanl ............................................................................... 157 6.4.4.1 Sistemin Mutlak Kararllnn Yorumlanmas ................................... 158 6.4.4.2 Karakteristik Denklemde Yer Alan K Deeri iin Araln Tespit Edilmesi158 6.4.5 Uygulamann Algoritmas.............................................................................. 159 6.5 Uygulama-5in Tantlmas ................................................................................. 161 6.5.1 Uygulamann Ad : Kontrol Sistemleri iin Geici ve Kalc Hata Analizi Program ........................................................................................................................ 161 6.5.2 Uygulamann Hazrlanma Amac ................................................................ 161 6.5.3 Uygulamann Arayz .................................................................................. 161 6.5.4 Uygulamann Kullanl ............................................................................... 162 6.5.4.1 Geici Hata Analizi Yaplmas ................................................................... 162 6.5.4.2 Kalc Hata Analizi Yaplmas.................................................................... 163 6.5.5 Uygulamann Algoritmas.............................................................................. 164 6.6 Uygulama-6nn Tantlmas................................................................................ 166 6.6.1 Uygulamann Ad : On / Off Kontrolr Uygulamas .................................. 166 6.6.2 Uygulamann Hazrlanma Amac ................................................................ 166 6.6.3 Uygulamann Arayz................................................................................... 166 6.6.4 Uygulamann Kullanl ................................................................................ 167 6.6.4.1 On/Off Elektronik Devre ile Analiz........................................................ 168

IX

6.6.4.2 On/Off Kontrolrn Simlasyon Ortamnda Analizi........................... 169 6.6.4.3 On/Off Kontrolrn Transfer Erisinin izilmesi ............................... 171 6.6.5 Uygulamann Algoritmas.............................................................................. 172 6.7 Uygulama-7nin Tantlmas................................................................................ 173 6.7.1 Uygulamann Ad : Oransal Kontrolr Uygulamas................................... 173 6.7.2 Uygulamann Hazrlanma Amac ................................................................ 173 6.7.3 Uygulamann Arayz................................................................................... 174 6.7.4 Uygulamann Kullanl ................................................................................ 175 6.7.4.1 Oransal Elektronik Devre ile Analiz ...................................................... 175 6.7.4.2 Oransal Kontrolrn Simlasyon Ortamnda Analizi ......................... 176 6.7.4.3 Oransal Kontrolrn Transfer Erisinin izilmesi.............................. 178 6.7.5 Uygulamann Algoritmas.............................................................................. 179 6.8 Uygulama-8nin Tantlmas................................................................................ 180 6.8.1 Uygulamann Ad : PID Kontrolr Uygulamas.......................................... 180 6.8.2 Uygulamann Hazrlanma Amac ................................................................ 180 6.8.3 Uygulamann Arayz................................................................................... 180 6.8.4 Uygulamann Kullanl ................................................................................ 181 6.8.4.1 PID Kontrolr in Anlk Deerleri Hesapla......................................... 182 6.8.4.2 PID Kontrolrn Cevabnn izdirilmesi.............................................. 183 6.8.5 Uygulamann Algoritmas.............................................................................. 185 6.9 Uygulama-9un Tantlmas................................................................................. 187 6.9.1 Uygulamann Ad : Kontrol Sistemleri iin Analiz Program.................... 187 6.9.2 Uygulamann Hazrlanma Amac ................................................................ 187 6.9.3 Uygulamann Arayz................................................................................... 187 6.9.4 Uygulamann Kullanl ................................................................................ 188 6.9.5 Uygulamann Algoritmas.............................................................................. 189 6.10 Uygulama-10nun Tantlmas .......................................................................... 190 6.10.1 Uygulamann Ad : X ve Y Eksenli WebCam Cihaznn Paralel Port ile Kontrol ......................................................................................................................... 190 6.10.2 Uygulamann Hazrlanma Amac .............................................................. 190 6.10.3 Uygulamann Arayz................................................................................. 191 6.10.4 Uygulamann Kulland Donanm Arabirimi .......................................... 191 6.10.4.1 Besleme Devresi ...................................................................................... 191 6.10.4.2 Src Devresi ....................................................................................... 191 6.10.4.3 Platform .................................................................................................. 192

6.10.4.4 Paralel Port ............................................................................................ 192 6.10.4.5 Adm Motorlar ..................................................................................... 193 6.10.4.6 Proje Donanm Paralarnn Tmnn Birletirilmi Grnts .... 194 6.10.5 Uygulamann Kullanl .............................................................................. 195 6.10.6 Uygulamann Algoritmas............................................................................ 197

BLM-VII
MATLAB LE PORT KULLANIMININ GEREKLETRLMES......... 199
7.1 Komut Tabanl Olarak Portlarn Ynetilmesi ................................................. 199 7.1.1 Paralel Portun Komutlar Kullanlarak Ynetilmesi................................... 199 7.1.2 Seri Portun Komutlar Kullanlarak Ynetilmesi........................................ 203 7.2 Simulink Ortam Kullanlarak Portlarn Ynetilmesi...................................... 203

BLM-VIII ..............................................................................................205 A. TARTIMA VE SONU......................................................................205 B. EKLER ...................................................................................................206 C. KAYNAKLAR.......................................................................................207 D. ZGEM ...........................................................................................209

XI

SEMBOL LSTES
ekil 1.1 Matlab Ana Penceresi ...................................................................................... 2 ekil 1.2 Array Editor Penceresi..................................................................................... 3 ekil 1.3 Demos Penceresi.............................................................................................. 4 ekil 1.3 Matlab Help Penceresi ..................................................................................... 4 Tablo 1.1 Matlab iin Aritmetik lemler ve Operatrler............................................... 5 Tablo 1.2 Matlab iin Karlatrma lemleri ve Operatrleri ...................................... 6 Tablo 1.3.1 Matlab iin Mantksal lemler ve Operatrler ........................................... 6 Tablo 1.3.2 Matlab iin Hazr Matematiksel Fonksiyonlar............................................ 9 Tablo 1.4 Matlab iin Hazr Rakamlar ........................................................................... 9 Tablo 1.5 Matlabte Grafik izim Komutlar................................................................. 11 ekil 1.4 plot (a,b) Komutu ile izilen Grafik rnei.................................................... 12 ekil 1.5 Matlab Editor Uygulamas Ekran Grnts .................................................. 17 Tablo 2.1 Matlabte Kontrol Modellerinin Oluturulmas ............................................. 18 Tablo 2.2 Matlabte Model Verilerinin Elde Edilmesi................................................... 19 Tablo 2.3 Matlabte Modellerin Birbirine Dntrlmesi............................................ 19 ekil 2.1 Seri Bal Modellerden Tek Bir Modelin Elde Edilmesi ................................ 20 ekil 2.2 Paralel Bal Modellerden Tek Bir Modelin Elde Edilmesi............................ 21 ekil 2.3 Geri Beslemeli Modelin Tek Bir Modele ndirgenmesi .................................. 21 ekil 2.4 ki Model klarnn Toplanmas ile Oluan kn Elde Edilmesi ............ 22 ekil 2.5 ki Modele Ait klarn Datlmas ............................................................. 22 ekil 2.6 ki Modele Ait Girilerin ve klarn Birletirilmesi .................................... 23 ekil 2.7 rnek Verilen Bir Sistemin Adm Cevab Grafii .......................................... 24 ekil 2.8 rnek Verilen Bir Sistemin Ani Darbe Cevab Grafii................................... 25 ekil 2.9 rnek Verilen Bir Sistemin Rampa Cevab Grafii ........................................ 26 ekil 3.1 Simulink Balang Ekran Grnts ............................................................ 29 ekil 3.2 Simulink Ortamnda Bo alma Alan ......................................................... 35 ekil 3.3 rnek Bir Kontrol Sisteminin Simulink Ortamnda Oluturulmas ............... 36 ekil 3.4 Sum Blounun zellikler Penceresi ................................................................ 36 ekil 3.5 Transfer Fcn Blounun zellikler Penceresi................................................... 37 ekil 3.6 Simlasyon Sresinin Ayarlanmas ve Simlasyonu altrma Dmesi ..... 38 ekil 3.7 rnek Verilen Bir Sistemin Simulink Ortamnda Adm Cevab ..................... 38 ekil 3.8 Simulink Ortamnda Real Time alma iin rnek Blok Diyagram Tasarm........ 39 ekil 3.9 Digital Input Blounun zellikler penceresi ................................................... 40

XII

ekil 3.10 Real Time iin Kullanlacak DAQ Kartnn Seilmesi.................................. 41 ekil 3.11 Digital Input Ortam in Kullanlacak DAQ Kartnn Ayarlarnn Yaplmas ........ 42 ekil 3.12 Digital Output Ortam in Kullanlacak DAQ Kartnn Ayarlarnn Yaplmas ..... 43 ekil 3.13 Real Time alma in External Seeneinin Aktif Edilmesi...................... 43 ekil 3.15 Real Time alma iin Gerekli Ayarlamalar-1 ............................................ 44 ekil 3.16 Real Time alma iin System Target File Ayarnn Deitirilmesi ........... 45 ekil 3.17 Real Time alma iin DAQ Kartna Ait Makine Kodu Dosyalarnn nas......... 46 ekil 4.1 Matlab Ortamna Verilerin File Mens Yardmyla Import Edilmesi ........... 49 ekil 4.2 Import Wizard Penceresi ile Bir Dosyadan Verilerin Import Edilmesi........... 50 ekil 4.3 Workspace Alanna Import Edilen Verilerin Listelenmesi.............................. 51 ekil 4.4 Verilerin Import Edilecei Dosyann Workspace Alanna Srklenmesi ....... 52 ekil 4.5 Csv Uzantl Bir Dosyadaki Verilerin Matlab Ortamna Import Edilmesi ...... 53 ekil 4.6 Csv Dosya erisinden Import Edilecek Alanlarn (Veri Kmelerinin) Seilmesi..... 53 ekil 5.1 rnek Bir GUI Arayz .................................................................................. 55 ekil 5.2 .......................................................................................................................... 56 ekil 5.82 ........................................................................................................................ 116 Tablo 5.1 GUI Uygulamalarnda Callback Trleri......................................................... 117 Tablo 5.2 Matlab ile Tasarlanan GUI Uygulamalarnda Kullanlabilecek Etkileim Kutusu Trleri................................................................................................. 122 ekil 5.83 ........................................................................................................................ 123 ekil 5.105 ...................................................................................................................... 139 ekil 6.1 Uygulama 1 Arayz ....................................................................................... 141 ekil 6.2 Uygulama 1 Kullanm Ekran 1 ....................................................................... 142 ekil 6.3 Uygulama 1 Kullanm Ekran 2 ....................................................................... 143 ekil 6.4 Uygulama 1 Kullanm Ekran 3 ....................................................................... 144 ekil 6.5 Uygulama 1 Kullanm Ekran 4 ....................................................................... 145 ekil 6.6 Uygulama 1 Kullanm Ekran 5 ....................................................................... 146 Algoritma 6.1 Uygulama 1 Algoritmas 1...................................................................... 147 Algoritma 6.2 Uygulama16 Algoritmas 2..................................................................... 148 ekil 6.7 Uygulama 2 Arayz ....................................................................................... 149 ekil 6.8 Uygulama 2 Kullanm Ekran 1 ....................................................................... 150 ekil 6.9 Uygulama 2 Kullanm Ekran 2 ....................................................................... 151 Algoritma 6.3 Uygulama 2 Algoritmas......................................................................... 152

XIII

ekil 6.10 Uygulama 3 Arayz ..................................................................................... 153 ekil 6.11 Uygulama 3 Kullanm Ekran ........................................................................ 155 Algoritma 6.4 Uygulama 3 Algoritmas......................................................................... 156 ekil 6.12 Uygulama 4 Arayz ..................................................................................... 157 ekil 6.13 Uygulama 4 Kullanm Ekran 1 ..................................................................... 158 ekil 6.14 Uygulama 4 Kullanm Ekran 2 ..................................................................... 159 Algoritma 6.5 Uygulama 4 Algoritmas......................................................................... 160 ekil 6.15 Uygulama 5 Arayz ..................................................................................... 162 ekil 6.16 Uygulama 5 Kullanm Ekran 1 ..................................................................... 163 ekil 6.17 Uygulama 5 Kullanm Ekran 2 ..................................................................... 164 Algoritma 6.6 Uygulama 5 Algoritmas 1...................................................................... 165 Algoritma 6.7 Uygulama 5 Algoritmas 2...................................................................... 166 ekil 6.18 Uygulama 6 Arayz ..................................................................................... 167 ekil 6.19 Uygulama 6 Kullanm Ekran 1 ..................................................................... 168 ekil 6.20 Uygulama 6 Kullanm Ekran 2 ..................................................................... 170 ekil 6.21 Uygulama 6 Kullanm Ekran 3 ..................................................................... 171 ekil 6.22 Uygulama 6 Kullanm Ekran 4 ..................................................................... 172 Algoritma 6.8 Uygulama 6 Algoritmas......................................................................... 173 ekil 6.23 Uygulama 7 Arayz ..................................................................................... 174 ekil 6.24 Uygulama 7 Kullanm Ekran 1 ..................................................................... 176 ekil 6.25 Uygulama 7 Kullanm Ekran 2 ..................................................................... 177 ekil 6.26 Uygulama 7 Kullanm Ekran 3 ..................................................................... 178 ekil 6.27 Uygulama 7 Kullanm Ekran 4 ..................................................................... 179 Algoritma 6.9 Uygulama 7 Algoritmas......................................................................... 180 ekil 6.28 Uygulama 8 Arayz ..................................................................................... 181 ekil 6.29 Uygulama 8 Kullanm Ekran 1 ..................................................................... 183 ekil 6.30 Uygulama 8 Kullanm Ekran 2 ..................................................................... 184 ekil 6.31 Uygulama 8 Kullanm Ekran 3 ..................................................................... 185 Algoritma 6.10 Uygulama 8 Algoritmas....................................................................... 186 ekil 6.32 Uygulama 9 Arayz ..................................................................................... 187 ekil 6.33 Uygulama 9 Kullanm Ekran ........................................................................ 189 Algoritma 6.11 Uygulama 9 Algoritmas....................................................................... 190 ekil 6.34 Uygulama 10 Arayz ................................................................................... 191 Resim 6.1 Step Motor Src Devresi ........................................................................... 192 ekil 6.35 Paralel Portlarda Kullanlan DB-25 Konnektr........................................... 193

XIV

ekil 6.36 Paralel Port Pinleri ......................................................................................... 193 ekil 6.37 Bir Step Motor ............................................................................................... 194 Resim 6.2 X ve Y Eksenli WebCam Cihaz (Paralel Port Kontroll) Grnts .......... 194 ekil 6.38 TimerShot Programnn Ayarlarnn Yaplmas ............................................ 195 ekil 6.39 Uygulama 10 Kullanm Ekran 1 ................................................................... 196 ekil 6.40 Uygulama 10 Kullanm Ekran 2 ................................................................... 197 Algoritma 6.12 Uygulama 10 Algoritmas .................................................................... 198 ekil 7.1 Windowsta Sistem zellikleri Penceresinden Aygt Yneticisinin altrlmas .. 200 ekil 7.2 Aygt Yneticisi Penceresinde Gizli Aygtlarn Gsterilmesi......................... 201 ekil 7.3 WINIO Aygt Srcsne Ait zellikler Penceresinin Almas ................... 201 ekil 7.4 WINIO Aygtna Ait Ayarlarn Yaplmas ...................................................... 202

XV

ZET

Gelien teknoloji sayesinde gnmzde bilgisayar eitimin ok nemli bir arac haline gelmeye balamtr. zellikle uygulamal derslerin bilgisayarlar eliinde simlatrlerle ilenmesi, hem zaman ksaltmakta, hem de retimin daha iyi kavranmasn salamaktadr. Bu amala hazrlanan bu almada akademik evreler tarafndan yaygn bir biimde kullanlan Matlab program eitli ynleriyle aklanmaya allmtr. Hazrlanan alma toplam yedi blm iermektedir. Blmlerin ierikleri u ekilde dzenlenmitir: lk olarak Blm-Ide ncelikle Matlab programnn kullanm anlatlm ve daha sonra Matlab ile ilgili temel bilgiler verilmitir. Blm-IIde Matlab program kullanlarak Kontrol alan ile ilgili komutlar hakknda bilgiler verilmi ve rnekler yaplmtr. Blm IIIte Matlab programnn bir arac olan Simulink kullanlarak Kontrol problemlerinin nasl zlecei hakknda bilgiler verilmitir. Blm-IVte Matlab programna dardan herhangi bir dosyann ierdii verilerin import edilmesi iin yaplacak ilemler anlatlmtr. Blm-Vte Matlab program kullanlarak GUI tabanl uygulamalarn nasl hazrlanaca hakknda bilgiler verilmitie. Ayrca, GUIDE arac detal olarak aklanmtr. Blm-VIda kontrol alan ile ilgili olmak zere Matlab program ile hazrlanan 10 adet GUI uygulamas tantlmtr. Ayrca, bu alana her bir uygulaman algoritmas eklenmitir. Son olarak Blm-VIIde Matlab program kullanlrak bilgisayar portlarnn nasl ynetilecei ile ilgili bilgiler verilmitir.

Haziran 2007

Kenan SAVA

XVI

ABSTRACT

Because of developments of the technology, the computer has been having a key role in education. The fact that subjects with applications that has been instructed by using such a technology leads to saving of time and increase in the quality of the education. As a result of this, this study has been done to describe the computer program of MatLab in detail in a variety of ways. This study has totally seven captures. Tha data about these is given below. In the first capture, Capture 1 , Using of MatLab from beginner level and some some basic tips are given. Capture 2 has explanation to show how the problems related to Control Sciense can be solved by using Matlab commands. In Capture 3 is given the information of Simulink that is a tool of Matlab in the perspective of Control Science. In Capture 4, there can be found information to solve problems and find how systems is response related to Control Science. In Capture 5, How GUI applications can be designed using Matlab is described in detail. In Capture 6, ten GUI applications designed using Matlab for the problems related to Control Science is explained. And the last chapter, Chapter 7, some information can be given about how the ports of computers can be manged using Matlab.

June 2007

Kenan SAVA

XVII

BLM-I MATLABE GR
1.1 Temel Bilgiler MATLAB kelime itibari ile MATrix LABoratory kelimelerinin ksaltlmas ile olumutur. Bu program ilk gelitirildiinde ama matris ilemlerinin kullanclar tarafndan kolaylkla yaplmasn salamaktr. Matlab, gelitirilmesi sonucu gnmzde basit matematiksel hesaplamalardan karmak analizlere varan ok eitli alanlarda kullanlabilir hale gelmitir. Bu nedenle son zamanlarda Matlab zellikle bilimsel aratrmalar iin tercih edilen ve popler olarak kullanlan bir ortam haline gelmitir. Matlabin bu denli popler oluunun altnda sunduu ok eitli komutlarn yansra, grafiksel arabirime sahip oluu, kolay allabilir ve kullanl bir ortam etkileimi sunmas, ok eitli alanlara (rnein Kontrol Bilimi, naat Mhendisliigibi) hizmet eden farkl ve zengin ktphanesinin olmas yatmaktadr. Bu proje almasnda MatLabin 7.0.4 versiyonu kullanlmtr. Ayrca, anlatmlarda kullanclarn Windows ayarlarnn farenin sol tuunu tek ve ift tklama amal kullandklar varsaylm, yani sa elini kullananlar baz alnmtr. 1.2 Matlab Ortam ve Pencereler Windows ortamnda Matlab yazlmn balatmak iin Balat Mensnde veya Masastnde yer alan MatLab ikonunu tklamak yeterlidir. Matlab alnca karmza ekil 1.1deki gibi bir pencere gelecektir.

1 / 209

ekil 1.1 Matlab Ana Penceresi Alan bu pencere kendi iinde ok deiik ilevleri bulunan ve kullancnn Matlabi rahat kullanmasn salayan u pencerelerden oluur. Array Editor Command History Command Window Current Directory Demos Help Workspace

Bu pencereleri grevleri u ekildedir: 1.2.1 Array Editor Penceresi Kullanc workspace penceresindeki herhangi bir deikenin zerinde ift tkladnda ekil 1.2de grlen Array Editor penceresi ile karlar. Bu pecere yardmyla seilen herhangi bir

2 / 209

ekil 1.2 Array Editor Penceresi deikenin ierii grlebilecei gibi yine ayn deikenin ierii bu pencere yardmyla deitirilebilir. Ancak, baz farkl tipteki deikenlerin ieriini deitirmek mmkn deildir. Bu durum komut kullanlarak gerekletirilebilir. 1.2.2 Command History Penceresi: Bu pencere kullanlan tm komutlarn gemiini tutmak iin kullanlr. Komut ekranndan girilen her komut Matlab aldnda geerli zaman bal altndaki listeye eklenerek bu pencerede grntlenir. Kullancnn gemi komutlar grmesine ve tekrar kullanmasna imkn verir. 1.2.3 Command Window Penceresi: Bu pencere yardmyla kullanc Matlab komutlar girer. Girilen her komutun kts da yine bu pencerede ve komutun girilmesinin hemen ardndan grntlenir. 1.2.4 Current Directory Penceresi: Matlabin herhangi bir anda aktif olarak kulland geerli dizin yolunu deitirmek, iinde bulunulan klasrt ierisinde tama, kopyalama ve dosya silme gibi ilemleri gerekletirmek ve ya dosyalar hakknda bilgi edinmek iin bu pencere kullanlr. Matlab daima geerli bir yol zerinden alr. Varsaylan olarak bu yol Matlabin kurulu olduu dizin iinde yer alan Work klasrdr. Geerli klasr ieriisnde yer alan kullancnn tanmlad fonksiyon dosyalar da bu alandan arlr. Eer kullanlacak fonksiyonlar farkl ise bu pencere yardmyla geerli yol tanm deitiirlmelidir. Ayrca, Matlabin geerli klasr yolu ana penceredekiara ubuunda yer alan Current Directoryu blmnden de grlebilir veya bu yol tanm deitirilebilir. 1.2.5 Demos Penceresi:

3 / 209

Help mensnden Demos veya Matlab ana penceresi sol alt kede yer alan Start butonu kullanlarak Demos komutunun verilmesi ile Karmza ekil 1.3de grlen demos penceresi gelir. Kullanc bu pencere yardmyla Matlabin kendi iinde yer alan hazr uygulamalar grebilir, kodlara bakabilir veya konu ile ilgili bilgiler edinebilir.

ekil 1.3 Demos Penceresi 1.2.6 Help Penceresi: Bu pencereye ulamak iin ara ubuundan soru iareti simgesi tklanabilir ya da Help mens kullanlarak Matlab Help komutu verilebilir. Kullanc ekil 1.4deki gibi bir ekran ile karlaacaktr.

4 / 209

ekil 1.4 Matlab Help Penceresi Matlab yardm penceresi ile kullanc sunulan ok geni ve aklayc anlatm ile herhangi bir kaynaa gerek kalmadan Matlab kullanm, Matlab komutlar ve pek ok farkl konularda bilgiler edinebilir. Ayrca, bu pencerenin sol tarafnda yer alan Index tab ile tm konu balklarn srasyla grebilir ve herhangi bir konu hakknda bilgi edinebilir. Yine benzer ekilde Search tabn kullanarak hakknda bilgi edinmek istedii bir konuyu Matlabin hkendi yardm dosyalar ierisinde aratabilir. 1.2.7 Workspace Penceresi: Kullancnn ilettii bir komuta ait deiikenler veya kt parametreleri daima Workspace alanna atlr. Bylece kullanc herhangi bir anda bu pencere yardmyla mevcut deikenlerin listesini grebilir. Ayrca, kullanc bu pencereyi kullarak ieriini grmek istedii her hangi bir deikenin zerinde ift tklayarak Array Editor pencereni aabilir. 1.3 Aritmetik lemler ve Operatrler Matlab ierisinde kullanlan komutlar ile gerekletirilebilecek mantksal ilemler ve her ileme ait operatr Tablo 1.1de gsterilmitir. Tablo 1.1 Matlab iin Aritmetik lemler ve Operatrler lem Toplama, a+b Sembol + rnek 2+3 Sonu 5

5 / 209

karma, a-b arpma, a*b arpma (matris elemanlarn birebir), a*b Blme (sadan), a/b Blme (soldan), a\b s alma, ab s alma (matris elemanlarn birebir), ab 1.4 Karlatrma lemleri ve Operatrleri

* .* / \ ^ .^

5-2 3*4 14/7 [1 2] ./ [3 4] 14\7 [1 2] .\ [3 4] 2^3

3 12 2 [0.33 0.50] 0.5 [3 2] 8

[1 2] .* [3 4] [3 8]

Blme (sadan) (matris elemanlarn birebir), a/b ./ Blme (soldan) (matris elemanlarn birebir), a\b .\

[1 2] .^ [3 4] [1 16]

Matlab ierisinde kullanlan komutlar ile gerekletirilebilecek karlatrma ilemleri ve her ileme ait operatr Tablo 1.2de gsterilmitir. Tablo 1.2 Matlab iin Karlatrma lemleri ve Operatrleri lemci < > <= >= == ~= Anlam ...den kk ...den byk ...den kk veya ...e eit ...den byk veya ...e eit Eit eit deil rnek 3<5 7>2 44 51 5=5 3 8

zellikle mantksal operatrlerden eittir durumuna dikkat edilmelidir. Karlatrma durumlarndaki eitlik anlamnda = = operatr kullnlrken, bir deikene deer atamak iin = operatr kullanlr. 1.5 Mantksal lemler ve Operatrler Matlab ierisinde kullanlan komutlar ile gerekletirilebilecek mantksal ilemler ve her ileme ait operatr Tablo 1.3.1de gsterilmitir. Tablo 1.3.1 Matlab iin Mantksal lemler ve Operatrler lemci & && | Anlam AND (VE) AND (VE, Ksa Devre) OR (VEYA) rnek A&B A && B A|B

6 / 209

|| ~

OR (VEYA, Ksa devre) NOT (DEL)

A || B ~A

Matlab ierisinde bu koulun mantksal doru (true) olmas iin bir deikenin ieriinin 0dan farkl olmas yeterlidir. Yani bu ynyle Matlab, C diline ok benzemektedir. Benzer ekilde bir deikenin ierii 0 (sfr) ise bu takdirde bu deiken mantksal olarak yanl (false) anlamna gelecektir. Mantksal operarlerden ksa devre zelliine sahip iki operatr C dilinde kullanlan operatrlere ok benzemektedir. Bu operarler eer ki karlatrma srasnda hem deer atamas, hem de sonucun karlatrmaya etkisinin olduu durumlarda sonuca etkisi aka grlebilir. Bu operatrlerin deer atamas olmayan ilemler iin kullanmlar ksa devre zellikli olmayan (normal) operatrler gibi alr. Matlabte karlatma operatrlerinin ncelii soldan saa dorudur. 1.6 Aklama Operatr Matlab ile hazrlanacak fonksiyon dosyalarnda herhangi bir satrda aklama yapmak iin aklama yaplacak cmlenin bana % iareti koyulmaldr. rnek bir kullanm aada gsterilmitir. % Bu satr bir aklama satrdr. 1.7 Komutlarn Ekran ktsn Gizleme Operatr Yazlan bir komutun ktsn Command Windowda grmek istemiyorsak o komutun sonuna ; iareti koyulmaldr. zellikle bu operatr fonksiyon dosyalarnda arka planda yaplan ilmelerin Command Windowda grntlenmesinin istenmedii durumlarda kullanlr. rnek bir kullanm aada sunulmutur. a=-3; b=17; c=a-b; Bu kullanm sonucu ekranda herhangi bir kt grlmez. Ancak, workspace alanna baklrsa girilen ve hesaplanan deikenlerin varl anlalabilir. 1.8 Deikenler Dier bilgisayar dillerinde olduu gibi MATLAB' in deiken isimleri konusunda baz kurallar vardr. En basit deiken ismi tek bir harften (karakterden) ibarettir. Belli bal kurallar unlardr. Deiken isimleri kk/byk harf kullanmna duyarldr. Buna gre ayn anlama gelen fakat farkl yazlan saYi, Sayi, sAyi ve SAYI kelimeleri MATLAB iin farkl deikendirler. Deikenlerde Trke karakter kullanm mmkn olmamaktadr. Deiken isimleri en ok 31 karakter ierebilir. Bir deiken isminde 31 karakterden daha fazla karakter varsa hesaba katlmaz.

7 / 209

Deiken isimleri daima bir harf ile balamal ve bunu herhangi bir sayda harfler, rakamlar veya alt izgi _ izleyebilir. Noktalama iaretleri deiken ismi olarak kullanlamaz. nk, bunlarn pek ounun MATLAB iin zel bir anlam vardr. Workspacede yer alan deikenlerin listesini Command Windowda grntlemek iin who veya whos komutlarndan biri kullanlabilir.

1.9 Deikenlere Deer Atama lemi ve Atama Operatr Herhangi bir deikene deer atamak iin = atama operatr kullanlr. rnek olarak aadaki kullanmlara baklabilir. A=5 B=4 C=A*B Yukardaki rnekte A ve B deikenlere sabitdeerler atanmakta ve yine C deikenine atama operatr kullanlarak A ve B deikenlerine ait deerlerin arplarak sonucun C deikenine atlmas gerekletirilmektedir. 1.10 Rakamlar

Matlabte rakamlar yazlrken ve kullanlrken u hususlara dikkat edilmelidir. MATLAB rakamlar iin nnde art veya eksi iareti ve tercihli ondalk noktas ile birlikte allagelmi ondalk (decimal) iaretler sistemi kullanr. Ondalk ayrac iin daima nokta . karakteri kullanlmaldr. (Trkede ve Windows blgesel ayarlarnda ondalk ayrac olarak virgl , ve basamak gruplandrma ayrac olarak nokta . Sembollerinin kullanldna dikkat edilmelidir.) Bilimsel iaretler sistemi 10 tabanna gre kuvvet belirlemek iin e harfi kullanr. Tm rakamlar IEEE hareketli nokta (floating-point) standart ile belirlenmi uzun format kullanarak dahili olarak saklanr. Hareketli nokta rakamlar kabaca virglden nce 16 hanelik ondalk sayl sonlu bir kesinlie sahip olup bunun sonlu alan 10 308 ile 10 +380 arasndadr. Sanal rakamlar son tak olarak i veya j harfi kullanr.

Kurala uygun olarak yazlan rakamlar ile ilgili baz rnekler aada sunulmutur: 6 2.6397238 6.02252e23 3e5i 1.11 -15 1.60210e-20 0.0003 -3.14159J

Hazr Matematiksel Fonksiyonlar

8 / 209

Matlab ierisinde kullanlan hazr matematiksel fonksyionlar Tablo 1.3.2te gsterilmitir. Tablo 1.3.2 Matlab iin Hazr Matematiksel Fonksiyonlar Fonksiyon Sins, sin() Kosins, cos() Tanjant, tan() Arksins, arcsin() Arkkosins, arccos() Arktanjant, arctan() Eksponensiyal, ex Tabii logaritma 10 tabanl logaritma Kare kk, x Mutlak deer, |x| 1.12 Hazr Rakamlar Sembol sin cos tan asin acos atan exp lo Logl0 sqrt Abs rnek sin(pi) cos(pi) tan(pi) asin(0) acos(0) atan(l) exp(2) log(10) Log10(l0) sqrt(25) abs(3)

Matlab ierisinde kullanlan hazr matematiksel fonksyionlar Tablo 1.4te gsterilmitir. Tablo 1.4 Matlab iin Hazr Rakamlar Rakam Pozitif Sonsuz Negatif Sonsuz Pozitif Epsilon Pozitif Epsilon Sembol inf -inf eps -eps Aklama Pozitif sonsuz Negatif sonsuz Pozitif sfra ok yakn say (epsilon) Negatif sfra ok yakn say (epsilon) Not A Number (belirsizlik durumu, rnein 0/0, inf/inf gibi) Euler sabiti Pi sabiti

Tanmlanmam (Belirsizlik) NaN

Euler Sabiti (e Says) Pi Says 1.13 Vektrler (Matrisler)

exp(1) pi

9 / 209

Matlab ierisinde bir deikene vektr ya da matris atamas yaplrken unlara dikkat edilmelidir: Matrisleri belirtmek zere rakamlar keli parantezler iinde yazlmaldr. Ancak, otomatik artlar belirtilmise keli parantezleri yazmaya gerek yoktur. Matris rakamlar iin stnlar arasnda , iareti kullanlmal veya boluk space konulmaldr. Matrisin bir satrna geildiinde ; iareti kullanlmaldr. Bir matrisin ieriini grntlemek iin matrisin deiken isminin yazlmas yeterlidir. Bir matrisin transpozesini almak iin matris deiken isminin en sana ' operaratr koyulmaldr. Matrislerle ilgili aritmetiksel ilemler yaplrken dikkatli olunmaldr. Eer * kullnlacaksa matrislerde arpma kural gerei ilk matrisin stn says son matrisin satr saysna eit olmaldr. Eer toplama ve karma ilemleri yaplacaksa her iki matrisin boyutu da ayn olmaldr. Matris elemalarnn birebir arpmak veya blmek iin .* ve ./ operarleri kullanlmaldr. Bu konuda daha detayl bilgi iin 1.3 aritmetik lemler ve operatrler konusuna baklabilir. Matrisler iin otomatik aralk tanmlama ve art iin : operatr kullanlmaldr. Kullanm ilk_deger:artis_miktari:son_deger eklindedir. Eer art miktari parametresi belirtilmeden iki parametreli biimde yazlrsa otomatik art miktar olarak Matlab tarafndan 1 deeri atanr. Linear artlar iin linspace ve logaritmaik artlar iin logspace komutlar kullanlarak matris dizileri tanmlanabilir. Birim matris oluturmak iin eye komutu, birler matrisi oluturmak iin ones komutu, sfrlar matrisi oluturmak iin zeros komutu, rastgele pozitif elemanlardan oluan matris oluturmak iin rand komutu, rastgele hem pozitif hem negatif elemanlardan oluan bir matris oluturmak iin randn komutu kullanlmaldr. Bir matrisin determinatn bulmak iin det komutu, tersini bulmak iin inv komutu, zdeerlerini bulmak iin eig komutu, normunu bulmak iin norm komutu, rankn bulmak iin rank komutu kullanlmaldr.

Aada matrislerle ilgili rnekler yaplmtr. A=[1 2 3 4 5] B=[1;2;3;4;5] C=[8,9,0;6,7,-1] D=A*B E=B' F=D+E G=2.*C % satr vektr (matrisi) % stun vektr (matrisi) % 2 satr ve 3 stundan oluan bir matris % arpma ilemi iin her iki matrisin uygun boyutlardadr. % matrisin transpozesi alnmakta % C matrisinin tm elemanlar 2 says ile arplmakta 10 / 209

H=0:0.1:1000 K=25:75 L=eye(3) M=rand(2,4) N=rank(M) 1.14 Polinomlar

% 0.1 artmla 0 ile 1000 aras saylardan oluan bir dizi tanmlanmakta % 25 ile 75 arasnda varsaylan artmla 1er artan bir dizi belirlenmekte % 3 x 3 boyutlarnda bir birim matris tanmlanmakta % 2 satr ve 4 stun boyutlarnda rastgele pozitif deerlerle matris tan. % M matrisinin rank hesaplanmaktadr.

Matlab ierisinde polinomlarla ilemler yaplrken u hususlara dikkat edilmelidir: Matlabte herhangi bir polinom ile ilgili ilem yaplacaksa polinom katsaylar stun vektr eklinde dnlr. Polinom arpmalar iin conv ve polinom blmeleri iin deconv komutlar kullanlmaldr. Bir polinomun kklerini bulmak iin roots komutu kullanlmaldr. Kkleri bilinen bir polinomu retmek iin poly komutu kullanlmaldr. Bir polinom iinde x deikeninin herhangi bir deeri iin polinomun sonucu hesaplanmak isteniyorsa polyval komutu kullanlmaldr.

Aada polinomlarla ilgili rnekler yaplmtr. a=[1 4 7];b=[ 8 -5 3]; c=conv(a,b) [katsayilar,kalanlar]=deconv(c,b) d=roots(b) e=poly(d) polyval (a,5) 1.15 Grafik izim Komutlar % a ve b polinomlarnn tanmlanmas % polinom blme ileminin yaplams (a / b) % polinom blme ileminin yaplams (c / b) % bylelikle katsayilar deikeni iinde tekrar a % polinomu elde edilmekte % b polinomunun kkleri hesaplanmakta % d deikenindeki kklerden polinom % bulunmakta (b polinomu tekrar elde edilmekte) % a polinomundaki bilinmeyen deikenin 5 % deeri iin polinom sonucu bulunmakta

MATLAB'da grafik iziminde kullanlan komutlarn ksa aklamalar Tablo 1.5te gsterilmitir. Tablo 1.5 Matlabte Grafik izim Komutlar Fonksiyon Aklamas plot polar iki boyutlu izim iin temel komut Kutupsal (polar) rnek plot(xdata,ydata) koordinatlardaki polar(teta,ro)

11 / 209

plot3 title xlabel ylabel grid subplot

izimler U boyutlu (3-D) izimler Grafiin stne balk yazmak iin x eksenine ait etiket y eksenine ait etiket Grafii blnt alaryla rer. Grafik penceresini blmelere ayrr. Grafikte istenen yere bir metin yerletirir. Grafikte istenen noktaya bir metin yerletirir. Grafik zerinde istenilen noktann koordinatlarn belirtmede kullanlr x ve y eksenlerini yeniden leklendirir

plot3(x,y,z) title(ilk grafik') xlabel('xdata') ylabel('ydata') grid subplot(mnk) mxn tane ekil, ve k aktif olan ekil text(x,y,'bir grafik') x ve y noktalarna "..."metnini yerletirir. gtext(ilk grafik) ginput axis([Xmin , Xmax, Ymin ,Ymax])

text gtext ginput axis legend hold Figre

Birka grafik birden izildiinde farkl Legend ('isim1', 'isim2') grafikleri etiketler Mevcut izimi alkor. hold /hold on/ hold off Birden fazla grafik penceresi aar figure(1), figure(2), vs

A = -100:5:100; b=a.^2; plot(a,b) grid rnek olarak komut penceresine yukardaki komutlar yazldnda ekil 1.4teki grafik elde edilir.

ekil 1.4 plot (a,b) Komutu ile izilen Grafik rnei 12 / 209

1.16

Zamana Bal Tekrarl lem Yaptrma Komutlar

Matlab iinde bir komutu belirli zaman aralklaryla otomatik olarak yapmak istenilebilir. Bu ilem iin Matlab kullanclara timer nesnesi sunmaktadr. Bu nesne oluturularak ve zelliklerini deitirmek suretiyle bir komut otomatik olarak icra edilebilir. Matlab iinde bir timer nesnesi oluturmak iin timer komutu kullanlr. Ancak, timer nesnesi ile basit bir Matlab komutu ile bir fonksiyonun icra edilmesi farkllk arz etmektedir. Bu nedenle konu iki ayr alt balk altnda aada ayrntl olarak ele alnmtr. 1.16.1 Timer Nesnesi ile Herhangi Bir Matlab Komutunun altrlmas Bu ilem iin rnek olarak ekrana 5 saniye aralklarla Timer tetiklendi. Mesajn yazalm. Aada verilen komut satrlar ile konu aklanmaya allsn. T = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' , ' StartDelay ' , 5 , ' Period ' , 3 ); set ( T , 'ExecutionMode' , 'fixedrate' ); BuradaStartDelay zellii 5 deeri atanlarak timern almaya balatldktan 5 saniye sonra teiklenmeye balamas salanmtr. Ayrca, bu timer 3 saniye aralklarla tetiklenecektir. ExecutionMode zellii fixedrate deerine atanarak srekli olarak timern almas salanmtr. Artk, programc timer balatmak iin start ve durdurmak iin stop komutlarn kullanabilir. Ayrca, oluturulan bir timer nesnesi mutlaka ii bittinde veya kullanlmayacaksa silinmlei ve programdan kaldrlmaldr. Bunun iin de delete komutu kullanlmaldr. Bu komutlarn rnek kullanmlar aada verilmitir. start ( T ) ; stop ( T ) ; delete ( T ) ; 1.16.2 Timer Nesnesi ile Herhangi M Fonksiyonunun altrlmas Bu ilem iin rnek olarak ekrana 3 saniye aralklarla WebCam_Timer_Fcn isimli bir Matlab M fonksiyonunun altrlmas gerektii dnlsn. Aada verilen komut satrlar ile konu aklanmaya allsn. T = timer ('Period', 3, 'StartDelay', 0); % StartDelay zellii sfr yaplarak timern T.TimerFcn = {@WebCam_TimerFcn, handles} ; % balangta hi gecikme olmadan Set ( T , 'ExecutionMode' , 'fixedrate' ); % almas salanmaktadr. Burada ncelikle timer komutu kullanlarak timer kullanlmak zere T deikenine timer snfndan bir class atanmaktatr. Daha sonra ise bu snf bir yap deikeni gibi ilem grecei iin bu class ile ilgili alt zelliklere . operatr ile eriilebilir. Dolaysyla oluturulan timer snfn tutan T deikeninin TimerFcn callback fonksiyonuna parametresine WebCam_Timer_Fcn M fonksiyonu ismi atnmaktadr. Burada atamann hcre yaps eklinde olduu iin ssl parantezler kullanlarak yapldna dikkat edilmelidir.

13 / 209

Burada ok nemli bir durum udur ki icra edilecek fonksiyon eer lokal ise ya da timer komutu bir M fonksiyon dosyas iinde altrlmak isteniyor ve bu fonksiyon dosyas iinde yer alan fonksiyonlardan bviri kullanlmak isteniyorsa bju udurmda komut u ekilde kullanlmaldr: T.TimerFcn = {@WebCam_Timer_Fcn} ; Burada @ operatr lokalde ilem yaplacan gsterir. Daha sonra set komutu kullanlarak olututulan timern srekli almas ayarlanmaktadr. Kullanc bu admdan sonra start komutu ile olultutulan timer nesnesini balatabilir ve stop komutunu kullanarak durdurabilir. Ayrca, oluturulan bir timer nesnesi mutlaka ii bittinde veya kullanlmayacaksa silinmlei ve programdan kaldrlmaldr. Bunun iin de delete kopmutu kullanlmaldr. start, stop ve delete komutlar iin rnek kullnm ekli aada verilmitir. start ( T ) ; stop ( T ) ; delete ( T ) ; 1.16.3 Timer Nesnesinin zelliklerinin Okunmas Bir timer nesnesinin zelliklerini okumak iin get komutu kullanlmaldr. rnek kullanm iin aadaki komutlara baklabilir. zamanlayici = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' ); get ( zamanlayici); Bu komut ile oluturulan ve zamanlayici deikenine atlan timer nesnesine ait tm zellikler Matlab komut ekrannda listelenecektir. 1.16.4 Timer Nesnesinin zelliklerinin Set Edilmesi Bir timer nesnesinin hjerhangi bir zelliini deitirmek iin set komutu kullanlr. rmek kullanm ekli aada verilmitir. zamanlayici = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' ); set ( zamanlayici , ' ExecutionMode ' , ' fixedRate ', ' BusyMode ' , ' drop ' , ' Period ' ,1); set komutu ile bir timer nesnesi iin atanabilecek tm zellikler listesi de aada sunulmutur. BusyMode: [ {drop} | queue | error ] ErrorFcn: string -or- function handle -or- cell array ExecutionMode: [{singleShot} | fixedSpacing | fixedDelay | fixedRate] Name ObjectVisibility: [ {on} | off ] Period StartDelay 14 / 209

StartFcn: string -or- function handle -or- cell array StopFcn: string -or- function handle -or- cell array Tag TasksToExecute TimerFcn: string -or- function handle -or- cell array UserData

1.16.5 Timer Nesnesinin Belirli Bir Zamanda almasnn Salanmas Timer nesnesini belirli bir zamanda altrmak iin startat komutuna ihtiya vardr. rnek kullanm ekli iin aadaki komutlara baklabilir. zamanlayici = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' ); startat ( zamanlayici , now+1/24 ); rnek kullanm ekli ile now komutu ile alnan anlk zaman bilgine gre o andaki zamandan bir saat sonrasnda timer devreye girecektir. 1.16.6 Timer Nesnesinin Fonksiyonlar Timer nesnesinin farkl altrlacak fonksiyonu ya da komutu tutatn callback tr vardr. Bunlar aada listelenmitir. TimerFcn callback fonksiyonu her admda altrlacak fonksiyon ya da komutlar iin StartFcn callback fonksiyonu timer nesnesi ilk almaya baladnda altrlacak fonksiyon ya da komutlar iin StopFcn callback fonksiyonu timer nesnesi sonlandrldnda altrlacak fonksiyon ya da komutlar iindir.

1.16.7 Timer ile izim Yaplmas iin Yaplmas Gerekenler Eer timer nesnesi ile bir plot benzeri izim komut kullanlacaksa Timer nesnesi iinde drawnow fonksiyonu kullnlmaldr. Bu ekilde grafik izim alan srekli olarak gncel tutulacaktr. 1.16.8 Timer Nesnesinin Balatlmas ve Durdurulmas Olutulan bir timer nesnesini balatmak iin start ve durudurmak iin stop komutlar kullanlr. Aada bu komutlarn nasl kullnlaca gsterilmitir. zamanlayici = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' ); start ( zamanlayici ) ; stop ( zamanlayici ) ; 1.16.9 Timer Nesnesinin Yok Edilmesi

15 / 209

Olutulan bir timer nesnesi mutlaka eer artk altrlmayacaksa bellekten kaldrlmaldr. Bu ilem iin delete komutu kullanlmaldr. rnek kullanm ekli aapda gsterilmitir. zamanlayici = timer( ' TimerFcn ', ' disp( '' Timer tetiklendi. '' ) ' ); start ( zamanlayici ) ; stop ( zamanlayici ) ; delete ( zamanlayici ) ;

16 / 209

1.17 Fonksiyon Dosyalar (M Dosyalar, M Files) Kullanclar Matlab iinde kendilerine ait fonksiyonlar yazabilir ve kullanabilirler. Bir fonksiyon yazmak iin Windowsun Notepad program kullanlabilecei gibi Matlabin kendisine ait Editor uygulamas da kullanlabilir. Bu uygulamay aamak iin komut satrndan edit komutu verilir. Kullanc ekil 1.5teki gibi bir ekran ile karlaacaktr.

ekil 1.5 Matlab Editor Uygulamas Ekran Grnts rnein kare_al isminde bir fonksiyon yazlm olsun ve bu fonksiyon kendisine parametere olarak gnderilen saylarn karesini hesaplasn. Bunun iin Editor uygulamasnda aadaki komutlar yazlr. function sonuc=kare_al(sayi) sonuc=sayi.^2; end Daha sonra bu dosya Matlabin kurulu olduu dizin altnda yer alan work klasrne kaydedilir. Dosyann kaydeilme esnasnda isminin fonksiyon ismi ile ayn olmasna dikkat edilmelidir. Yani kare_al ismi ile kaydedilir. Bylelikle work dizini altnda kare_al.m isminde bir m dosyas oluacaktr. Daha sonra komut satrndan aadaki komutlar girdiimizde hazrladmz fonksiyon kullanlarak girilen saynn karesi hesaplanacaktr. x=5; kare_al(x) veya kare_al(5)

17 / 209

BLM-II MATLABTE KONTROL SSTEMLERNN KOMUT KULLANIMI LE ANALZ


Matlab kullanlarak kontrol sistemlerinin eitli modelleri bulunabilir. Ayrca, varolan sistemler birbirleri ile seri veya paralel balanabilir veya geri beslemeli hale getirilebilir. Matlab ile bulunabilecek model trleri unlardr: Transfer Fonksiyonu Modeli Sfr-Kutup-Kazan Modeli Durum Denklemi Modeli Tanmlayc Durum Denklemi Modeli Frekans Cevab Verileri Modeli Ayrk Zaman Modeli

2.1 Modellerin Oluturulmas Her bir kontrol modelinin oluturulmas iin gerekli komutlar Tablo 2.1de verilmitir. Tablo 2.1 Matlabte Kontrol Modellerinin Oluturulmas Model smi Transfer Fonksiyonu Modeli Sfr-KutupKazan Modeli Durum Denklemi Modeli Tanmlayc Durum Denklemi Modeli Frekans Cevab Verileri Modeli Ayrk Zaman Modeli lgili Komut Tf Zpk Giri Parametreleri pay matrisi payda matrisi sfrlar matrisi kutuplar matrisi kazan katsays a matrisi b matrisi c matrisi d matrisi a matrisi b matrisi c matrisi d matrisi e matrisi frekans matrisi cevap matrisi rnek Kullanm pay=[1]; payda=[1 6 5 0]; sys=tf(pay,payda) sys = ss([-2 -1 1],[1 3 -5],1) sys = ss([-2 -1;1 -2],[1 1;2 -1],[1 0],[0 1])

Ss

dss

sys = dss[0 1;-5 -2], [0;3], [0 1],0, [1 2;3 4]) freq=[1000;2000;3000]; resp=[-0.81126-0.0003i;-0.17510.0016i;-0.0926-0.4630i]; H=frd(resp,freq,'Units','Hz')

frd

tf, zpk, ss, dss, frd seilen modele pay=[1];payda=[1 6 5 0]; (rnekleme gre giri sampling_time=0.1;%saniye zaman eklenmeli, parametreleri sys=tf(pay,payda,sampling_time) son parametre)

18 / 209

2.2 Model Verilerinin Elde Edilmesi Her bir kontrol modeline ait verilerin elde edilmesi iin gerekli komutlar Tablo 2.2de verilmitir. Tablo 2.2 Matlabte Model Verilerinin Elde Edilmesi Model smi Transfer Fonksiyonu Modeli lgili Komut tfdata Giri Parametreleri tf sistem k rnek Parametreleri Kullanm pay matrisi payda matrisi [num,den] = tfdata(sys,v)

Sfr-KutupKazan zpkdata Modeli Durum Denklemi Modeli

zpk sistem

ssdata

ss sistem

Tanmlayc Durum dssdata Denklemi Modeli Frekans Cevab Verileri Modeli Ayrk Zaman Modeli frdata tfdata, zpkdata, ssdata, dssdata, frddata

dss sistem

sfrlar matrisi kuutplar [z,p,k] = zpkdata(sys,v) matrisi kazan katsays a matrisi b matrisi [a,b,c,d] = ssdata(sys,v) c matrisi d matrisi a matrisi b matrisi [a,b,c,d,e]= dssdata(sys,v) c matrisi d matrisi e matrisi [response,frequency]= frekans matrisi frdata(sysfr,v) cevap matrisi [num,den,Ts] = tfdata(sys,v) [z,p,k,Ts] = zpkdata(sys,v) [a,b,c,d,Ts] = ssdata(sys,v) [a,b,c,d,e,Ts]= dssdata(sys,v) [response,frequency,Ts]= frdata(sysfr,v)

fr sistem

seilen modele gre k seilen modele parametreleri gre sistem ve rnekleme zaman

2.3 Modellerin Birbirine Dntrlmesi Kontrol modellerinin birbirlerine dntrlmesi iin gerekli komutlar Tablo 2.3te verilmitir. Tablo 2.3 Matlabte Modellerin Birbirine Dntrlmesi Giri Modeli Transfer Fonksiyonu k Modeli Sfr-KutupKazan Modeli lgili Komut tf2zp rnek Kullanm [z,p,k] = tf2zp(a,b)

19 / 209

Modeli Transfer Fonksiyonu Modeli Sfr-KutupKazan Modeli Sfr-KutupKazan Modeli Durum Denklemi Modeli Durum Denklemi Modeli

Durum Denklemi tf2ss Modeli Transfer Fonksiyonu Modeli zp2tf

[A,B,C,D] = tf2ss(a,b)

[a,b] = zp2tf(z,p,k) [A,B,C,D] = zp2ss(z,p,k) ss2tf(A,B,C,D,iu) iu : sistemin giri says [z,p,k] = ss2zp(A,B,C,D,i) iu : sistemin giri says

Durum Denklemi zp2ss Modeli Transfer Fonksiyonu Modeli Sfr-KutupKazan Modeli ss2tf ss2zp

2.4 Modellerin Birbirine Balanmas 2.4.1 Seri Balant rnek olarak ekil 2.1de grlen sistemi ele alalm.

ekil 2.1 Seri Bal Modellerden Tek Bir Modelin Elde Edilmesi Bu sistemi seri balantl hale getirmek iin yazlmas gereken komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H=series(H1,H2) % veya arpma ilemi ile zm; 2.4.2 Paralel Balant rnek olarak ekil 2.2de grlen sistemi ele alalm.

H=H1*H2;

20 / 209

ekil 2.2 Paralel Bal Modellerden Tek Bir Modelin Elde Edilmesi Bu sistemi pararlel balantl hale getirmek iin yazlmas gereken komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H=parallel(H1,H2) % veya toplama ilemi ile zm; 2.4.3 Geri Beslemeli Balant rnek olarak ekil 2.3te grlen sistemi ele alalm.

H=H1+H2;

ekil 2.3 Geri Beslemeli Modelin Tek Bir Modele ndirgenmesi Bu sistemin geri beslemeli toplam sistem modelini bulmak iin yazlmas gereken komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H=feedback(H1,H2,-1) Burada negatif geri beslemeli bir sistem iin zm istenirse feedback komutunun 3. parametresi -1 olur. Ancak, bu parametre yazlmazsa da feedback komutu iin varsaylan deer -1dir, yani negatif geri besleme seeneidir. ndirgenen sistem pozitif geri beslemeli olursa bu parametre 1 deerini alr. 2.4.4 klarn Toplanmas

21 / 209

rnek olarak ekil 2.4te grlen sistemi ele alalm.

ekil 2.4 ki Model klarnn Toplanmas ile Oluan kn Elde Edilmesi ki modele ait klarn toplanmas ile oluacak toplam kn yazlmas iin gerekli komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H=[H1,H2] 2.4.5 Girilerin Datlmas rnek olarak ekil 2.5te grlen sistemi ele alalm.

ekil 2.5 ki Modele Ait klarn Datlmas ki modele ait klarn datlmas sonucu oluacak klarn yazlmas iin gerekli komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H=[H1;H2] 2.4.6 Girilerin ve klarn Birletirilmesi rnek olarak ekil 2.6da grlen sistemi ele alalm.

22 / 209

ekil 2.6 ki Modele Ait Girilerin ve klarn Birletirilmesi ki modele ait girilerin ve klarn birletirilmesi sonucu elde edilecek klarn yazlmas iin gerekli komut satrlar aadaki gibi olacaktr: H1=tf(pay1,payda1); H2=tf(pay2,payda2); H= append(H1,H2) 2.5 Modellerin Cevaplarnn Elde Edilmesi Kontrol sistemi modellerinin cevaplar Matlabin kullancya sunduu hazr fonksiyonlarla elde edilebilir ve grafii izilebilir. 2.5.1 Adm Cevab (Step Response) Bir kontrol sisteminin adm cevabnn gzlenmesi ve grafiinin izilebilmesi amacyla step komutu kullanlr. Bu komuta gnderilen parametre bilgisi oluturulan bir modelin sistem deikenidir. (Model oluturma ile ilgili ayrntl bilgi iin 2.2 konu balna baknz.) C ( s) s+4 = 2 sisteminin adm cevab grafii bulunsun. Bu ilem iin R( s ) s + 3s + 7 yazlacak komut satrlar aada gsterilmitir: rnek olarak pay = [1 4]; payda = [1 3 7]; sistem = tf(pay,payda); step(sistem) rnek oalnan sistemin adm cevab grafii ekil 2.7de gsterilmitir.

23 / 209

Step Response 0.7 0.6 0.5

Amplitude

0.4 0.3

0.2 0.1

0.5

1.5

2 Time (sec)

2.5

3.5

ekil 2.7 rnek Verilen Bir Sistemin Adm Cevab Grafii Ayrca, bir sistemin adm cevab grafii istenilen zaman aralnda izilebilir. Bunun iin step komutuna verilecek 2. parametreye bir zaman aral matrisi deikeninin atanmas yeterlidir. Bu durum iin rnek bir kullanm aada gerekletirilmitir. pay = [1 4]; payda = [1 3 7]; sistem = tf(pay,payda); zaman_araligi = 0:0.1:25; step(sistem,zaman_araligi)

% 0.1 artmla 0-25 sn arasnda zaman aralnn tanmlanmas

2.5.2 Ani Darbe Cevab (Impulse Response) Bir kontrol sisteminin ani darbe cevabnn gzlenmesi ve grafiinin izilebilmesi amacyla impulse komutu kullanlr. Bu komuta gnderilen parametre bilgisi oluturulan bir modelin sistem deikenidir. (Model oluturma ile ilgili ayrntl bilgi iin 2.2 konu balna baknz.) C ( s) s+4 = 2 sisteminin ani darbe cevab grafii bulunsun. Bu ilem R( s ) s + 3s + 7 iin yazlacak komut satrlar aada gsterilmitir: rnek olarak pay = [1 4]; payda = [1 3 7]; sistem = tf(pay,payda); impulse(sistem) rnek olarak verilen sistemin ani darbe cevab grafii ekil 2.8de gsterilmitir.

24 / 209

Impulse Response 1.2 1 0.8

Amplitude

0.6 0.4

0.2 0

-0.2

0.5

1.5

2 Time (sec)

2.5

3.5

ekil 2.8 rnek Verilen Bir Sistemin Ani Darbe Cevab Grafii Ayrca, bir sistemin adm cevab grafii istenilen zaman aralnda izilebilir. Bunun iin impulse komutuna verilecek 2. parametreye bir zaman aral matrisi deikeninin atanmas yeterlidir. Bu durum iin rnek bir kullanm aada gerekletirilmitir. pay = [1 4]; payda = [1 3 7]; sistem = tf(pay,payda); zaman_araligi = 0:0.1:25; % 0.1 artmla 0-25 sn arasnda zaman aralnn tanmlanmas impulse(sistem,zaman_araligi) 2.5.3 Rampa Cevab (Ramp Response) Bir kontrol sisteminin rampa cevabnn gzlenmesi ve grafiinin izilebilmesi amacyla Matlabin sahip olduu hazr bir komut yoktur. Ancak, sisteme uygulanan rampa giriine karlk elde edilen kn adm cevabnn izdirilmesi suretiyle bir sistemin rampa cevab grafii izdirilebilir. C ( s) s+4 = 2 sisteminin rampa cevab grafii bulunsun. Bu ilem iin R( s ) s + 3s + 7 yazlacak komut satrlar aada gsterilmitir: rnek olarak pay = [1 4]; payda = [1 3 7]; sistem = tf(pay,payda); giris_pay = [1]; giris_payda = [1 0 0]; giris_sistem = tf(giris_pay,giris_payda); toplam_sistem_cikisi=series(giris_sistem,sistem);

25 / 209

step(toplam_sistem_cikisi) rnek olarak verilen sistemin rampa cevab grafii ekil 2.9da gsterilmitir.
Step Response 14 12 10

Amplitude

8 6

4 2

Time (sec)

ekil 2.9 rnek Verilen Bir Sistemin Rampa Cevab Grafii Bu cevab istenilen zaman aralnda izmek iin 2.5.1 konu balna baknz. 2.6 Kontrol ile lgili Dier Komutlar 2.6.1 rss Komutu : Bu komut kullanlarak giri ve k says verilmek suretiyle rasgele durum uzay modelleri oluturulabilir. Komutun kullanm aada gsterilmitir. sistem = rss (mertebe) sistem = rss (mertebe , cikis_sayisi) sistem = rss (mertebe , cikis_sayisi , giris_sayisi) Bu ifadelerde, mertebe deikeni rasgele retilecek modelin mertebesini, cikis_sayisi rasgele retilecek modelde bulunmas istenilen k says deerini, giris_sayisi rasgele retilecek modelde bulunmas istenilen giri says deerini

ifade eder. Eer, ilk kullanm seilirse tek giri ve tek kl bir sistem retilir. Bir sonraki kullanm iin isetek giri ve birden fazla ka sabip rasglee durum uzay modeli bulunur. Son kullanm iinse hem giri, hem olmas istenilen k says deerlerinde rasgele bir durum uzay modeli oluturulabilir. Bu komutun iletilmesi sonucu retilen model sistem

26 / 209

deikenine atanr. Eer, bu sistemin durum uzay matrisleri elde edilmek istenirse ssdata komutu kullnlabilir. 2.6.2 ord2 Komutu : Bu komut kullanlarak Matlabte doal frekans (Wn parametresi) ve snm oran (zeta veya ksi parametresi) bilinen ikinci dereceden bir kontrol sistemine ait durum uzay modeli veya transfer fonksiyonu bulunabilir. Komutun kullanm aada gsterilmitir. [A,B,C,D] = ord2(wn,z) [num,den] = ord2(wn,z) Bu ifadelerde, wn deikeni modeli bulunacak sistemin doal frekansn z deikeni snm orann ( , ksi) ifade eder. 2.6.3 gensig Komutu : Bu komut kulanlarak tanmlanan bir zaman aralnda istenilen bir fonksiyon k elde edilebilir, yani bir sinyal jeneratr ilevi salar. ki deiik kullanm ekli yledir: [genlik,zaman] = gensig(sinyal_cesidi,sinyal_periyodu) [genlik,zaman] = gensig(sinyal_cesidi,sinyal_periyodu,sinyal_toplam_suresi,sampling_time) Bu ifadelerde, sinyal_cesidi degikeni ile retilecek sinyalin tipi belirlenir. rnek olarak sins sinyali iin sin kare dalga sinyali iin square darbe sinyali iin pulse verilebilir. sinyal_periyodu degikeni ile retilecek sinyalin periyodu belirlenir. sinyal_periyodu degikeni ile retilecek sinyalin periyodu belirlenir. sinyal_toplam_suresi degikeni ile retilecek sinyalin toplam zaman belirlenir. sampling_time degiskeni ile sinyal retiken kullnlacak rnekleme zaman belirlenir. genlik degikeni ile retilen sinyalin zaman vektr karlk genlik deerleri elde edilir. zaman degikeni ile retilen sinyalin zaman vektr elde edilir. % durum uzay modelinin elde edilmesi % transfer fonksiyonunun elde edilmesi

27 / 209

Genellikle gensig komutu lsim komutu ile birlikte kullanlr. . (Ayrntl bilgi iin 2.6.3 konu balna baknz.) 2.6.4 lsim Komutu : Bir kontrol sistemine daima adm, ani darve v.b. gibi standart iaretlerin dnda da bir giri uygulanabilir ve cevab grlmek istenilebilir. Bu komut kullanlarak herhangi bir kontrol sisteminin rasgele belirlenmi giri deerlerine karlk retilen cevab iin grafik izilebilir. Bu komutun kullanm u ekilde olmaktadr: lsim(sistem,genlik,zaman) Bu ifadede, sistem giriine sinyal uygulanacak sistemin modelidir.

(Model oluturma ile ilgili ayrntl bilgi iin 2.2 konu balna baknz.) genlik degikeni sistemin giriine uygulanan sinyalin genlik vektrdr. zaman degikeni sistemin giriine uygulanan sinyalin zaman vektrdr.

Genellikle lsim komutu gensig komutu ile birlikte kullanlr. (Ayrntl bilgi iin 2.6.2 konu balna baknz.)

28 / 209

BLM-III

MATLABTE KONTROL SSTEMLERNN SMULNK ORTAMINDA ANALZ


3.1 Simulinke Giri Matlab ile pek ok ilemi komut kullanarak yapabiliriz. Ancak, bazen bu durum gerekletirilen iin amacna bal olarak uzun zaman alabilir. Bu nedenle Matlab kullnclara Simulink ad verilen bir ara sunmutur. Bu ara yardm ile komut ezberlemeksizin ve komut yazmak iin harcanan uzun zamanlar yerine ok ksa srede sadece gerekli bloklar Simulink alma alanna ekleyerek ok deiik alanlara ynelik ilemleri gerekletirebiliriz. Simulink ekrann amak iin simulink komutu kullanlabilir. Kullanc bu ara altnda ekil 3.1deki ekran grnts ile karlar.

ekil 3.1 Simulink Balang Ekran Grnts 3.2 Kontrol Alan ile lgili Bloklar

29 / 209

Simulink deiik bilim dallar ve farkl alanlar ile ilgili eitli ara ubuklar (toolboxes) ierir. Kontrol alan ile ilgili farkl ilevlere sahip pek ok blok farkl ara kutular altnda yer almaktadr. Kontrol ile ilgili sklkla kullanlan bloklar ayrntl olarak aada incelenmitir. 3.2.1 Add Blou : : Girilerin toplamn veren bir blok. Girilerin says ve her bir girie uygulanacak iaret, blok diyalog kutusunda ayarlanabilir. 3.2.2 Analog Input Blou : : Paralel porttan veya bilgisayara bal bir DAQ kartnn giri kanalndan analog veriyi okuma blou. 3.2.3 Analog Output Blou : : Paralel porta veya bilgisayara bal bir DAQ kartnn k kanalna analog veriyi yazma blou. 3.2.4 Constant Blou : : Sabit bir saysal deer reten blok. Sabit, bir skaler veya vektr olabilir. 3.2.5 Counter Input Blou : : Paralel porttan veya bilgisayara bal bir DAQ kartnn giri kanalndan gelen darbe sinyallerini sayma blou. 3.2.6 Demux Blou : : Bir giri sinyal vektrn sonlu sayda skaler k sinyallerine ayran blok (De-Multiplex iin) 3.2.7 Derivative Blou : : Giri sinyalinin zamana gre trevini alr. 3.2.8 Digital Input Blou :

30 / 209

: Paralel porttan veya bilgisayara bal bir DAQ kartnn giri kanalndan dijital veriyi okuma blou. 3.2.9 Digital Output Blou : : Paralel porta veya bilgisayara bal bir DAQ kartnn k kanalna dijital veriyi yazma blou. 3.2.10 Display Blou : : Giri sinyalinin o anki deerini gsterir. 3.2.11 Fcn Blou : : Bu blok, matematik ifadeler iin fonksiyon oluturmaya yarar, u harfi giri sinyali iin kullanlmaktadr. rnek bir ifade tan(u[l] )*exp(u[2] } olabilir; burada u[l] and u [ 2 ] srasyla birinci ve ikinci giri verileri kmelerini temsil etmektedir. 3.2.12 Gain Blou : : Kazan sabiti. stenilen bir deer atanabilir. 3.2.13 In1 Blou : : Bir alt-sistem iin giri portu salar 3.2.14 Integrator Blou : : Giri sinyalinin zamana gre integralini alr. 3.2.15 Manual Switch Blou : : alma esnasnda zerine fareyle ift tklanarak konum deitiren anahtar. 3.2.16 MATLAB Fcn Blou : : Bir MATLAB fonksiyonuna giri deerlerini aktarr. Bu fonksiyon MATLAB'n hazr bir fonksiyonu veya kullanc tarafndan yazlm bir M-fonksiyonu olabilir.

31 / 209

3.2.17 Mux Blou : : Sonlu sayda skaler giri sinyallerini bir k sinyali matrisi retecek tarzda birletiren blok (Multiplex iin). 3.2.18 Out1 Blou : : Bir alt-sistem iin k portu salar. 3.2.19 PID Controller (with Approximate Derivative) Blou : : Hazr PID denetleyici blou (Trevin alnmaca birim aralk belirlemeli). 3.2.20 PID Controller Blou : : Hazr PID denetleyici blou. 3.2.21 Query Instrument Blou : : Seri porttan bilgi okumak amacyla kullanlan blok. 3.2.22 Relay Blou : : Gir sinyalinin belli seviyeden byk olmas durumunda belirlenen bir k ve belli bir deerin altnda olmasnda farkl bir k veren ve bu iki deer arasnda kn nceki durumunu koruyan blok (on/off denetleyici tasarlama amacyla kullanlr). 3.2.23 Saturation Blou : : Sinyalin alt ve st deerlerini snrlanm haliyle ka verir. 3.2.24 Scope Blou : : Skaler veya vektr sinyallerini osiloskoptakine benzer tarzda grafik olarak gsteren bir blok. 3.2.25 Signal Generator Blou : : Sinyal jeneratr. eitli dalga ekillerini reten blok.

32 / 209

3.2.26 Sin Wave Blou : : Sinyal retici. Dalga ekillerini reten blok. 3.2.27 State Space Blou : : ok girili ve ok kl bir sistemin durum uzay modeli 3.2.28 State-Space (with initial outputs) Blou : : ok girili ve ok kl bir sistemin durum uzay modeli (balang k deerleri belirlemeli). 3.2.29 Step Blou : : Basamak sinyali retir 3.2.30 Stop Simulation : Giri sinyali sfrdan farkl olduunda simlasyonu u durduran blok 3.2.31 Subsystem Blou : : Birden fazla bloun tek bir blok iinde toplanmasn salar 3.2.32 Subtract Blou : : Girilerin farkn veren bir blok. Girilerin says ve her bir girie uygulanacak iaret, blok diyalog kutusunda ayarlanabilir. 3.2.33 Sum Blou : : Girilerin toplamn veya farkn veren bir blok. Girilerin says ve her bir girie uygulanacak iaret, blok diyalog kutusunda ayarlanabilir. 3.2.34 Switch Blou : : 2 nolu giri eikten byk yada eitse 1 nolu giriteki sinyal ka verilir. Dier koullarda 3 nolu giri ka verilir.

33 / 209

3.2.35 To Instrument Blou : : Seri porta bilgi gndermek iin kullanlan blok. 3.2.36 To Workspace Blou : : Bir giri sinyalini, MATLAB alma alannda, simlasyon bittikten sonra, eriilebilir bir MATLAB matrisinde depolayan blok. 3.2.37 Transfer Fcn (with initial outputs) Blou : : Dorusal bir sistemin transfer fonksiyonu modeli (balang k deerleri belirlemeli). 3.2.38 Transfer Fcn (with initial states) Blou : : Dorusal bir sistemin transfer fonksiyonu modeli (balang giri deerleri belirlemeli). 3.2.39 Transfer Fcn Blou : : Dorusal bir sistemin transfer fonksiyonu modeli 3.2.40 XY Graph Blou : : ki skaler girii kullanarak bir grafik izdiren blok. stteki giri kapsna balanan sinyal bamsz deiken (x ekseni) ve alttakine balanan ise baml deikendir (y ekseni). 3.2.41 Zero Pole Blou : : Dorusal bir sistemin sfr-kutup-kazan modeli 3.2.42 Zero-Pole (with initial outputs) Blou : : Dorusal bir sistemin sfr-kutup-kazan modeli (balang k deerleri belirlemeli). 3.2.43 Zero-Pole (with initial states) Blou :

34 / 209

: Dorusal bir sistemin sfr-kutup-kazan modeli (balang giri deerleri belirlemeli). 3.3 Simulink Ortamnda Model Oluturma Simulink arac ile model oluturmak iin ncelikle Simulink Library Browser penceresinden ara ubuunda yer alan New simgesi tklanr. ekil 3.2de grlen bo bir alma alan karmza gelir.

ekil 3.2 Simulink Ortamnda Bo alma Alan


1 olan bir sistemin adm s + 6 s 2 + 5s cevabna Simulink ortamnda baklsn. Bunun iin Simulink Library Browser penceresinden ilgili aa dallarnn altnda yer alan ve ekil 3.3te gsterilen bir blok diyagram kurulacak ekilde bloklar seilerek farenin sol tuu basl halde Library penceresinden bo alma alanna srklenir. alma alan zerinde istenilen noktaya gelince farenin sol tuu braklr. alma alanna yanl bir blok konulmu ise o blok zerinde farenin sol tuu ile bir kere tklanlarak seilir. Daha sonra klavyeden Del tuuna baslr. Bloklar arasndaki hatlar eklemek iin hatt eklenecek bir uta fare sol tuu tklanr ve basl tutulur. Daha sonra fare iaretisi hattn eklenecei uca gtrlr ve braklr. Bu ekilde hattn eklenmesi tamamlanm olur. Ayrca, giriten ka olmak zere nce giri bloklar fare sol tuu ile seilir. Sonra Ctrl klavye tuu basl tutulur. k hangi bloa balanacak zere o blok farenin sol tuu ile tklanr. Bylelikle otomatik olarak giri bloklarnn k ucu bir sonraki bloun giri ucu ile balanm olur.

rnek olarak bir ak evrim transfer fonksiyonu

35 / 209

ekil 3.3 rnek Bir Kontrol Sisteminin Simulink Ortamnda Oluturulmas ekil 3.3teki blok diyagram tasarm srasnda Sum blounun zerinde farenin sol tuu ile ift tklanalarak zellikler pencere alr. Gelen pencerede List of Sign ksmnn iaretleri ekil 3.4teki gibi deitirilir.

ekil 3.4 Sum Blounun zellikler Penceresi

36 / 209

Ayrca, alma alanna eklenen Transfer Fcn blounun da benzer ekilde zellikler penceresi alr ve buradaki ayarlar ekil 3.5teki gibi deitirilir.

ekil 3.5 Transfer Fcn Blounun zellikler Penceresi Yukarda anlatlan tm ilemler tamamlandktan sonra ekil-3.6da gsterilen simlasyon biti sresi 25 olarak deitirilir ve yine ayn pencerede gsterilmi olan start Simulation butonuna baslarak oluturulmu olan sistem altrlr (Blok diyagrm hazrlanan sistem hzl bir ekilde alacak, bu esnada nce Start butonunun ekli Stop halini alacak, ancak tekrar eski haline (Start durumuna) dnecektir. Yani simlasyon ok ksa srede alp duracaktr. Burada 25 sn denilmesine ramen Simulink kendi iinde ksada olsa bu sreyi sisteme uygular ve sistemin cevabn bulur.).

37 / 209

ekil 3.6 Simlasyon Sresinin Ayarlanmas ve Simlasyonu altrma Dmesi Sistemin cevabna bakmak iin alma alanndaki Scope blou zerinde farenin sol tuu ile ift tklanr. Karmza ekil 3.7deki gibi bir pencere gelecektir. Bu pencerenin st tarfnda yer alan ikonlardan drbn zerine tklanr. Bu ekilde garfik izimi otomatik olarak leklenmi ve mevcut ekrana sar bir hale getirilmi olunur.

ekil 3.7 rnek Verilen Bir Sistemin Simulink Ortamnda Adm Cevab 38 / 209

stenirse alma alan penceresinde yer alan ara ubuu kullanlarak Save ikonu tklanmak suretiyle hazrlanan bu Simulink modeli (blok diyagram) bilgisayara *.mdl uzants ile kaydedilebilir. zetle rnek olarak verilen sistemin adm cevab blok diyagramlar ve Simulink ortamnda bulunmu olmaktadr. 3.4 Simulink Ortamnda Gerek Zamanl (Real Time) alma : Simulink kullanlarak simlasyon amacyla sistemler analiz edilebilecei gibi gerek zamanl (yani bir DAQ kart ya da seri veya paralel port gibi bir aygttan verilerin alnmas ve ayn anda simulink ortamna alnan verilerin aktarlmas ve ilenmesi salanmak zere) olarak analizler yaplabilir ve sistemler kontrol edilebilir. rnek olarak elimizde Advantech firmasna ait PCI-1713 model DAQ kart olsun. Bu DAQ kartnn 2 nolu dijital giri kanalndan 0.1 sn rnekleme sresi ile alnan verilerin yine ayn kartn 5 numaral dijital k kanalndan 0.1 sn nekleme sresiyle km olsun. Byle bir tasarm iin ncelikle bo bir alma alanna Simulink Library Browser penceresi kullanlarak Real-Time Windows Target aac altndan alma alanna ekil 3.8 de gsterilen blok diyagram tasarmn gerekletirmek zere gerekli bloklar eklenmi olsun.

ekil 3.8 Simulink Ortamnda Real Time alma iin rnek Blok Diyagram Tasarm ekil 3.8deki gibi bir tasarma ulamak iin nce yaplmas gereken Digital Input blou zerinde farenin sol tuu ile ift tklayarak bu bloun zellikler penceresini amak ve bu

39 / 209

pencereden Install New Board butonu tklanmaldr. Bu duurm ekil 3.9da da gsterilmitir.

ekil 3.9 Digital Input Blounun zellikler penceresi ekil 3.9da gsterilen buton tklandktan sonra ekil 3.10da gsterildii gibi gelen ekranda bu rnekte kullanlacak DAQ kart seilir.

40 / 209

ekil 3.10 Real Time iin Kullanlacak DAQ Kartnn Seilmesi Not : Eer paralel port kullanlmak istenirse alan listeden Standard Devices listesi altnda yer alan Paralel Port aygt seilmelidir. Daha sonra Digital Input blouna ait zellikler penceresinin Data Acqusition Board blmne gelen listeden bu rnekte kullanlmak zere az nce Simulink ortamnda yklediimiz kart seilir. Bu pencereye ait kullanlacak giri kanal ve rneklem sresinin belirlenmesi ile ilgili ayarlar ekil-11de gsterilmitir.

41 / 209

ekil 3.11 Digital Input Ortam in Kullanlacak DAQ Kartnn Ayarlarnn Yaplmas Daha sonra OK butonu tklanarak Digital Input blouna ait zellikler penceresi kapatlr. Benzer ilemler Digital Output blou iin de yaplr. Bu bloa ait ayrlar ekil 3.12de gsterilmitir.

42 / 209

ekil 3.12 Digital Output Ortam in Kullanlacak DAQ Kartnn Ayarlarnn Yaplmas Tm bu admlar tamamlandktan sonra gerekli blok diyagram tasarm sona ermiitr. Bu admdan sonra Simulink alma alannda External seenei seilmelidir. Bu durum iin ekil 3.13e baklabilir.

ekil 3.13 Real Time alma in External Seeneinin Aktif Edilmesi Daha sonra Simulation mensnden Configuration Parameters komutu kullanlarak gerekli iki ayar yaplmaldr. Gelen pencerede sol tarafta yer alan Solver dal seilerek yandaki alann Solver options blmnden Type liste kutusundan Fixed-Step seilir ve hemen sonra altaki giri kutularndan Fixed-step size alanna 0.1 deeri girilir. Bu ayarlama ekil 3.14ten de takip edilebilir.

43 / 209

ekil 3.15 Real Time alma iin Gerekli Ayarlamalar-1 Bir dier ayar ise yine ayn pencerenin sol tarafnda yer alan dallarndan Real-Time Workshop seilerek ayn pencerenin sa tarafnda gzken arayzde Target selection blm kullanlarak Browse dmesi araclyla System target file seeneinin rtwin.tlc olarak deitirilmesidir. Bu ayar iin ekil 3.16ya baklabilir. Daha sonra Configuration Parameters penceresi OK butonu tklanlarak kapatlr.

44 / 209

ekil 3.16 Real Time alma iin System Target File Ayarnn Deitirilmesi Bu ilemden sonra hazrlanan Real Time simulink modeli alma alan penceresinin ara ubuunda yer alana Save ikonu tklanlarak ve bir isim verilerek Matlabin kurulu olduu dizin iinde yer alan work klasrne kaydedilmelidir. Daha sonra ekil 3.17de gsterildii zere Incremental build butonu kullanlarak bu simulink modelinde kullanlacak DAQ kart ile ilgili ktphaneler kullanlmas ve bu karta ait gerekli makine kodu dosyalarnn retilmesi salanmaldr.

45 / 209

ekil 3.17 Real Time alma iin DAQ Kartna Ait Makine Kodu Dosyalarnn nas Bu admdan sonra arka planda eitli ilemler yaplacaktr. Bu ilemler Command Windowdan takip edilebilir. Command Window penceresinde succesfully builded mesaj alndktan kart ile bilgisayar arasnda iletiimin kurulduunu test etmek zere ekil 3.17de gsterildii zere Connect To Target dmesi kullanlabilir. Eer iletiim kuruldu ve herhangi bir hata mesaj alnmam ise kart ile bilgisayar arasnda balant doru olarak kurulmutur. En son olarak da Real Time uygulams Simulink alma alanndan Start simulation dmesi kullanlarak altrlr. 3.5 Simulink Modellerinin Matlab Komutlar ile Ynetilmesi Matlab komut saturndan simulink modelleri amak, parametrelerini deitirmek ya da altrmak, durdurmak gibi ilemler yaplabilir. Bu ilemlerin nasl yaplaca ile ilgili detayl bilgiler aadaki alt balklarda anlatlmtr. 3.5.1 Bir Simulink Modelinin Almas Ve Kapatlmas Bir simulink model penceresini amak iin open_system ve kapatmak iin close_system komutlar kullanlr. Bu komutlarn nasl kullanlaca aada verilmitir. open_system('deneme_model.mdl'); close_system('deneme_model.mdl',0); close_system('deneme_model.mdl',1); % 0 parametresi pencereyi deiiklikleri modele % kaydetmeden kapatr, 1 ise kaydeder ve kapatr

Ayrca, herhangi bir dizin altnda bulunan model dosyas iin kullanm ekli de yledir:

46 / 209

open_system('c:\models\deneme_model.mdl'); close_system('deneme_model.mdl',0); 3.5.2 Bir Simulink Modelinin altrlmas Bir simulink modelinin altrlmas iin sim komutu kullanlr. Bu komutun rnek kullanm aada verilmitir. sim('deneme_model'); 3.5.3 Bir Simulink Modeline Ait Parametrelerinin Deitirilmesi Bir simulink modeline ait pek ok farkl zelik vardr. Bu zellikler ve nasl kullanlaca ile ilgili rnek kullanm ekilleri aada listelenmitir. set_param(deneme_model','SimulationCommand','Start'); set_param('deneme_model','StartTime','5','StopTime','100'); set_param('deneme_model','Solver','ode15s','MaxOrder','3'); set_param('deneme_model','SaveFcn','my_save_cb') set_param('deneme_model','SimulationCommand','start'); set_param('deneme_model','SimulationCommand','stop'); set_param('deneme_model','SimulationCommand','pause'); set_param('deneme_model','SimulationCommand','continue'); set_param('deneme_model','SimulationCommand','step'); set_param('deneme_model','SimulationCommand','update'); set_param('deneme_model','Solver','VariableStepDiscrete',{'ode45'}); set_param('deneme_model','Solver','VariableStepDiscrete','ode45'); set_param('deneme_model','Solver','VariableStepDiscrete','ode23'); set_param('deneme_model','Solver','VariableStepDiscrete','ode113'); set_param('deneme_model','Solver','VariableStepDiscrete','ode15s'); set_param('deneme_model','Solver','VariableStepDiscrete','ode23s'); set_param('deneme_model','Solver','VariableStepDiscrete','ode23t'); set_param('deneme_model','Solver','VariableStepDiscrete','ode23tb'); set_param('deneme_model','Solver','FixedStepDiscrete',{'ode5'}); set_param('deneme_model','Solver','FixedStepDiscrete','ode5'); set_param('deneme_model','Solver','FixedStepDiscrete','ode4'); set_param('deneme_model','Solver','FixedStepDiscrete','ode3'); set_param('deneme_model','Solver','FixedStepDiscrete','ode2'); set_param('deneme_model','Solver','FixedStepDiscrete','ode1'); set_param('deneme_model','Solver','FixedStepDiscrete','ode14x'); 3.5.4 Bir Simulink Modeline Ait Bloklarn zelliklerinin Deitirilmesi ve Okunmas Bir simulink modelinde ok farkl bloklar olabilir. Bu bloklaron zellikleri de komut satrndan deitirilebilir. Bloktan bloa deiik ve ok farkl zellikler bulunmaktadr. Ancak, burada temel zelliklerin nasl deitirilecei ile ilgili kullanm ekli verilmitir. Bir simulink model blou zelliinin deitirilemsi iin set_param ve zelliklerinin okunmas

47 / 209

iinde benzere ekilde kullanma sahip olan get_param komutlar kullnlr. rnek kullanm ekli aada verilmitir. set_param('deneme_model/transfer_function_block','Numerator',[ 1 ]); set_param('deneme_model/transfer_function_block','Denominator', [ 1 6 5 0 ]); set_param('deneme_model/constant_blok','Value', 5); set_param('deneme_model/relay_blok','OnSwitchValue',0.4); set_param('deneme_model/relay_blok','OffSwitchValue',0.2); Ancak, eer zellii deitirilecek blok bir subsystem blou ise bu takdirde zellikler deitiilmesi iin nce bilgiler stun vektr halnde bir hcre matris deikenine atanr ve daha sonra bu deiken MaskValues zelliine atanmaldr. Bu deerlerin atanabilmesi iin subsystem iin SubSystem Parameters tanmnn yaplm olmas gerekir. pid_values_cell = { Kp , Ki , Kd } ; set_param ( 'pid_by_kenan_return_mdl / PID_Controller','MaskValues',pid_values_cell); 3.5.5 Bir Simulink Modeline Ait Verilerin Matlab Komut Satrndan Eriilmesi Simulink modelinden verilerin alnmas iin simulink bloklarndan To Workspace kullanlmaldr. Eer, zaman bilgisi atanacaksa blok zelliklerin Structure with Time seenei seilmelidir. ok nemli bir nokta udur ki simulink penceresi kapatlmadan nce mutlaka deerler save komutu kullanlarak bir .mat tr dosyay kaydedilmelidir. Bu deerler daha sonra load komutu kullanlarak nceden kaydedilen .mat dosyasndan geri Workspace alanna yklenebilir. rnek kullanm ekli iin aadaki komut yapsna baklmaldr. Simulink model k bilgilerini kaydetmek iin komut satrlar unlardr: sim('pid_controller_model') % mutlaka modelin iinde To Workspace blou olmaldr. save('pid_results'); % To Workspace zelliklerinden deiken ismi pid_output close_system('pid_controller_model ',0); %yazld kabul edilmi olsun. Kaydedilen bilgileri kullanmak ve bir grafik izdirmek iin komut satrlar unlardr: load('pid_results'); zaman_araligi = pid_output.time; kontrolor_cikis_degerleri = pid_output.signals.values; plot (zaman_araligi, kontrolor_cikis_degerleri); Eer k deerleri birden fazla ise bu takdirde satr vektr yapsnda bilgiler elde edilmelidir. rnek komut satrlar aada verilmitir. zaman_araligi = pid_output.time; kontrolor1_cikisi = pid_output.signals.values( : , 1 ); kontrolor2_cikisi = pid_output.signals.values( : , 2 ); plot (zaman_araligi, kontrolor1_cikisi, zaman_araligi, kontrolor2_cikisi);

48 / 209

BLM-IV MATLABTE DI DNYADAN DATALARIN ALINMASI (IMPORT EDLMES)


4.1 Giri Matlab kullanlarak ok eitli sayda formatlara sahip dosyalar ierisndeki veriler Workspacee import edilebilir (dardan yklenebilir). Bylelikle herhangi bir ortamda yer alan verilerin Matlab ile kullanlmas ve ilenebilmesine olanak salanm olunur. 4.2 Datalarn Import Edilmesi Herhangi bir dosyann ierdii verilerin Workspacee import edilmesi iki farkl yolla olur. Bu yollar aada ayrntl olarak anlatlmtr. 4.2.1 Datalarn Import Edilmesi iin 1. Yntem Matlab komut satr ekrannda iken File mensnden Import Data komutu verilir. Bu durum ekil 4.1de gsterilmitir.

ekil 4.1 Matlab Ortamna Verilerin File Mens Yardmyla Import Edilmesi

49 / 209

Daha sonra ekrana gelecek Dosya A penceresinden ierisinden data import edilecek dosya seilir ve Tamam butonuna tklanr. Buradaki rnekte bir Excel dosyas ierisinden veriler import edilme istenmektedir. Bu admdan sonra kullanc ekil 4.2deki ekran grntsne benzer bir grnt ile karlaacaktr. (Import Wizard penceresi dosyann formatna gre farkl arayzlerde olabilir.) Gelen pencerede gzken alanlar ile sizin semi olduunuz dosya iindeki veri alanlar farkl olacaktr. Import Wizard penceresinin sol tarafndan ierisinden veri eklenmek istenilen dosyada bulunan tm alanlara ait veri kmelerinden biri seilir. Sa tarafta o alann verileri gzkecektir. Seilen veriler rnekteki gibi data kmesinden alnm olsun. Daha sonra bu pencere Finish butonu tklanlarak kapatlr.

ekil 4.2 Import Wizard Penceresi ile Bir Dosyadan Verilerin Import Edilmesi Import Wizard penceresi kapandnda Matlab ana penceresinden Workspace alann kontrol ettiimizde tm verilerin geldii grlr. Bu durum ekil 4.3te de gsterilmitir. Komut satrndan data deikeninin ismi yazldnda import edilen verilerin listelendii grlr.

50 / 209

ekil 4.3 Workspace Alanna Import Edilen Verilerin Listelenmesi 4.2.2 Datalarn Import Edilmesi iin 2. Yntem Dosyalarn iindeki verileri Workspace alanna import etmenin bir dier yolu da Windows Explorer penceresinden dosyay farenin sol tuu ile tklamak ve farenin tuunu brakmadan basl hale Matlab ana penceresinde Workspace alannn zerinde iken farenin sol tuunu

51 / 209

ekil 4.4 Verilerin Import Edilecei Dosyann Workspace Alanna Srklenmesi brakmaktr. Yani, dosyalar Workspace alanna srklemektir. Bu durum ekil 4.4te gsterilmitir. rnein csv uzantl bir dosya srklenmi olsun. Karmza ekil 4.5teki gibi bir Import Wizard penceresi gelecektir. Bu pencerede ekilde de gsterildii zerinde ierisinde verilerin yer ald data kmeleri tablar halinde listelenmitir. Daha sonra Next

52 / 209

ekil 4.5 Csv Uzantl Bir Dosyadaki Verilerin Matlab Ortamna Import Edilmesi butonuna tklanlarak ekil 4.6daki ekran ile karlalr. Bu ekrann sol tarafnda yer alan

ekil 4.6 Csv Dosya erisinden Import Edilecek Alanlarn (Veri Kmelerinin) Seilmesi

53 / 209

listeden bir nceki ekranda gsterilen data kmelerinden hangisi import edilmesi gerektiyorsa o veri kmesi ismine listeden tik konulur. En son olarak Finish butonu tklanlarak datalarn Workspace alanna import edilmesi ilemi tamamlanm olur. Not : Import edilecek bir dosya ierisinde saysal veriler var ise ve bu veriler iin ondalk ayra virgl ise (Bu duruma rnek olarak Trke blgesel ayarlar verilebilir.) mutlak surette o dosya ieriisndeki , karakterlerini . ile deitirin. nk, Matlab ondalk ayra olarak sadece . karakterini kabul etmektedir. Not : ok eitli programlama dilleri kullanlarak kontrol edilen sistemlere ait bilgilerin bir dosyaya kaydedilmesinde csv formatnn seilmesi programcnn verileri baaka ortamlara aktarmasnda byk kolaylklar salar. Csv dosya format ierii itibari ile aslnda txt bir dosyadr. Ancak, uzants .csv olarak kaydedilmelidir. Dosya ierii ise aralarnda ; karakteri bulunan verilerdir. Veriler say veya karakter olabilir. rnein aada bir motorun hznn zamana gre deimesini gsteren verilerin dosya iindeki format grlmektedir. _______________________________________________________ Zaman;Motor Hz 0;7 1;14.25 2;21.41 3;28.12 4;35 5;42.85 6;49.96 7;56 8;63.47 9;70.56 10;77 _______________________________________________________ Ayrca, csv dosyalar MS Excel program kullanlarak alabilir ve ierisinde yer alan veriler listelenen hcreler eklinde ynetilebilir.

54 / 209

BLM-V MATLABTE GRAFKSEL KULLANICI ARABRM (GUI) TABANLI UYGULAMA TASARIMI


5.1 Giri eriinde yer alan nesnelerin kullanlmas ile kullancya etkileim salayan ve bir iin veya bir programn koturulmasn salayan grafiksel bir program arayzdr. Alm Graphical User Interface (GUI) dir. GUI nesneleri menler, ara ubuklar, radio butonlar, liste kutular veya kaydrclar olabilir. Bunlarn yannda MATLAB GUI ile MATLABin sunduu hesaplama imknlar kullanlarak da data alm ve grafik izimi gibi pek ok ilem gerekletirilebilir. ekil 5.1de basite bir GUI arayz grlmektedir.

ekil 5.1 rnek Bir GUI Arayz 5.2 Grafiksel Kullanc Arabirimi (GUI) Nasl alr? Her bir nesne (veya komponent) GUI iin tanmlanan programlama dosyasnda callback diye adlandrlan ayr alt rutin programlama paralarna sahiptir. Bu ekilde her bir nesnede oluan olaylara (rnek olarak bir buton nesnesinin tklanmas ile click event olumas gibi) GUI o olaya ait callback rutinlerini icra ettirir. Yani, GUI hem bir arayz hem de bir program arlarn icra ettirme mekanizmas olarak alr. Yukarda bahsedilen programlama olay tabanl programlama diye adlandrlr. Bu tr programlamada her bir olaylara ait alt program paralar birbirinden bamsz olarak MATLAB GUI tarafndan altrlr. 55 / 209

5.3 Matlabte GUI Oluturma Yntemleri MATLAB GUI tasarmlar iki ayr yntem kullanlarak yaplabilir. Bunlar, MATLAB GUIDE arac kullanlarak, M-File programlama yntemi kullanlarak

zellikle GUI tasarmnda hzl arayzler dizayn etmek ve bu ie ilk balayan programclar iin MATLAB GUIDE aracnn kullanlmas byk bir kolaylk salar. Bu aracn kullanlmas ile GUI arabirimi kolaylkla ve yorulmadan srkle brak ve alan pencerelerde zelliklerin deitirilmesine dayanan bir yntem kullanlr. Ayrca, bu yntemi kullanmann ileride var olan bir GUI nin dzenlenmesi ve deiiklik yaplmas bakmndan da ok yararldr. M-File programlama ynteminde tm GUI tasarmlar ve callback program paralarnn yazlmas tamami ile programlama kodlar kullanlarak yaplr. Burada tasarmc her eye hakimdir ve bu teknik uzman bir programlama bilgisi gerektirir. Bu yntem ile tasarm zaman uzamasna ramen programc her trl maniplasyonu yapabildii iin programc asndan ok yararldr. 5.4 MATLAB GUIDE Arac ile GUI Tasarm Oluturma GUIDE matlabin GUI tasarmclarna sunduu ierisinde eitli aralar ieren ve kolaylk salayan bir grafiksel GUI gelitirme ortamdr. GUIDE kullanlarak tkla ve srkle-burak teknii ile GUI arayzne nesneler (rnein butonlar, text kutular, liste kutular, grafikler v.s.) kolaylkla eklenebilir. Ayrca, eklenen nesnelerin hizalanmas, tab srasnn deitirilmesi, grsel ayarlar zerinde maniplasyonlar yaplmas da bu ortamn tasarmclara sunduu imknlardan bazlardr. MATLAB GUIDE aracn tanyalm. Bu aracn altrmak iin ya MATLAB komut satrndan GUIDE komutu verilir ya da Start dmesi tklanarak MATLAB/GUIDE komutu verilir. Bu admdan sonra karmza ekil 5.2deki gibi bir pencere gelir.

ekil 5.2

56 / 209

Bu pencereden eer yeni bir GUI tasarm yapacak isek Blank GUI seeneini seeriz. ayet nceden yaplm bir tasarm amak istiyor isek Open Existing GU sekmesinden sonra istenilen dosyayi seeriz. Burada yeni bir tasram oluturulacan kabul edelim. Bundan sonra OK dmesi tklanlarak ekil 5.3teki GUIDE LAYOUT Editor (GUIDE alma Alan) penceresine ularz.

ekil 5.3 Bu admdan sonra File/Prefences/Guide yolunu kullanlarak gelen pencereden Show names in component palette seeneini tiklayip OK dmesine basalm. Karmza ekil 5.4teki gibi bir pencere gelecektir.

ekil 5.4 5.4.1 Komponentleri alma Alanna Ekleme 57 / 209

Bunun iin sol tarafta bulunan nesne butonlarndan istenilen nesneye ait buton tklanr ve daha sonra alma alannda uygun grlen bir noktaya tklandnda o noktaya ilgili nesne eklenmi olacaktr. stenirse alma alanndaki bir nesne farenin sol tuu ile tklanp braklmadan alma alannn herhangi bir yerine srklenebilir. Bu durum ekil 5.5te de grlmektedir.

ekil 5.5 5.4.2 alma Alannn Boyutlarn Deitirmek Burada da alma alannn sa alt tarafnda bulunan siyah karenin zerine fare iaretisi getirilir ve fare iaretisi konum deitirdiinde farenin sol tuu basl tutularak alma alan istenilen boyutlarda olacak ekilde dzenleme yaplabilir.

Bu siyah kare noktasndan alma alan boyutlar deitirilebilir.

ekil 5.6

58 / 209

5.4.3 Nesneleri Hizalamak Bu ilemi yapmak iin ncelikle hizalanacak nesneler seilir. Topluca semek iin alma alannda fare iaretisini herhangi bir yere tklayp srkleyerek alan kesik kenarl pencerenin iinde nesneler kalacak ekilde hareket ettirip, hizalanacak nesneler bu ereve iinde kalnca farenin sol tuunu brakn. Bu ekilde sadece o ereve iinde kalan nesneler seilmi olacaktr. Ayrca, nesneleri Ctrl tuunu basl tutarak farenin sol tuu ile teker teker de seme imkn bulunmaktadr. Hizalanacak nesneler seildikten sonra Tools/Align Objects yolunu kullanarak Aligment Tool (Hizalama Arac) penceresini anz. ekil 5.7deki gibi bir ekran ile karlarz. Burada yatay ve dikey hizalamalar kendimize gre butonlardan seip OK butonuna bastmz zaman nesnelerimiz hizalanm olacaktr. Eer ki hizalama istenilen gibi olmad ise Ctrl + Z ksayolu ile yaplan ilemler geri alnabilir.

ekil 5.7 Burada ekil 5.8deki gibi bir GUI hazrlanm olsun. pushbutton nesneleri

static text nesnesi

popupmenu nesnesi axes (grafik izim) nesnesi 59 / 209

ekil 5.8 Burada GUI arayznde Bir adet grafik izim (axes) nesnesi, Bir adet peak, membrane, sinc data setlerini gsteren popup men, Bir adet popup men bal sunan static text nesnesi, adet surf, mesh ve contour yazl buton nesneleri yer almaktadr. 5.4.4 Nesnelere Yaz Ekleme ve zelliklerini Deitirme Nesnelerin zelliklerini deitirmek istersek ya ilgili nesne farenin sol tuu ile ift tklanr ya da ilgili nce seilip daha sonra View/Property Inspector komutu ile zellikler penceresi

ekil 5.9 alr. Buradan rneimizde eklenen popup menu ieriine Peaks, Membrane ve Sinc ieriklerini alt alta popup menu nesnesini setikten sonra String zelliine ekleyiniz. Ayrca, adet butonun her birine srayla Surf, Mesh ve Contour yazlar String zelliklerine eklenmelidir. GUI arayz penceresi ekil 5.10daki gibi gzkecektir.

ekil 5.10 5.4.5 GUI Tasarmn Kaydetme ve altrma Bundan sonra bitmi olan bu GUI arayz altrarak grmek iin ncelikle Tools/Run yolundan Run (altr) komutu verilir. Daha sonra gelen pencereden almamnn Run edilebilmesi iin kaydedilmesi gerektiini bildiren bir pencere kar Burada Yes butonuna basarz. Bu admdan sonra MATLAB GUIDE bize tasarmn kaydedilecei dosya ismini 60 / 209

ekil 5.11 soran bir pencere getirir. Bu pencereden almamza bir isim vererek tasarmz kaydetmi oluruz. Ardndan karmza Change the MATLAB Directory gibi bir ekran gelirse burada bu ekran OK tuuna basarak kapatabilirsiniz. Bu ekran kaydedilen dosya MATLAN tanmlo dizinler dnda bir yere kaydedilme szkonusu olduunda bizi uyarmaktadr. Sonra da GUI tasarmmzn almas sonucu gzkecek uygulama penceresi ekran karmza ekil 5.12deki gibi bir pencere gelecektir.

ekil 5.12 5.5 GUI Arayznn Programlanmas Bir GUI arayznn programlanmas demek o almann kaydedildii isimle ayn zamanla oluturulan .m uzantl dosya ierisine kodlama satrlarnn eklenmesi demektir. Bu dosyann iine grebilmek, deiiklik yapabilmek iin GUIDE alma ekran penceresinden View/MFile Editor komutu iletilebilir. Ardndan karmza ekil 5.13deki gibi bir pencere gelecektir.

61 / 209

ekil 5.13 ekil 5.13deki pencerede hazrlam olduumuz GUI tasarmna ait kodlar gzkmektedir. Burada pek ok kodun hazr eklenmi olduu grlecektir. Bu kodlar otomatik olarak MATLAB GUIDE tarafndan eklenmitir. Biz burada ilgili butonlara ve liste kutularna ya da istenilen bir nesneye ait callback isimli alt program paralarna ilgili kodlar yazacaz. Bir nesneye ait callback in bulunduu satra gitmek iin ara ubuunda yer alan f simgeli butona tklanr ve alan listeden ilgili nesneye ait callback in ismi seilir. Bu durum yukardaki pencerede de grlmektedir. Ayrca, GUIDE alma ekranndan da direk istenilen bir callback satrna gidilebilir. Bunun iin ilgili nesne zerinde sa tklanr ve alan pencereden View Callbacks mensnden ilgili callback tklanmas ya da ilgili nesne seilip View/View Callbacks yolu zerinden alan listeden gidilmek istenilen callback tklanmas yeterlidir.

ekil 5.14

62 / 209

imdi GUI arayznde yer alan tm nesneler iin View/M-File Editor yolundan kodlama penceresi alp, aada yer alan tm kodlar yazlsn. function varargout = untitled_ilk(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @untitled_ilk_OpeningFcn, ... 'gui_OutputFcn', @untitled_ilk_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function untitled_ilk_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); handles.peaks=peaks(35); handles.membrane=membrane; [x,y] = meshgrid(-8:.5:8); r = sqrt(x.^2+y.^2) + eps; sinc = sin(r)./r; handles.sinc = sinc; handles.current_data = handles.peaks; guidata(hObject, handles); surf(handles.current_data) function varargout = untitled_ilk_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) surf(handles.current_data); function pushbutton2_Callback(hObject, eventdata, handles) mesh(handles.current_data); function pushbutton3_Callback(hObject, eventdata, handles) contour(handles.current_data); function popupmenu1_Callback(hObject, eventdata, handles)

63 / 209

str = get(hObject, 'String'); val = get(hObject,'Value'); switch str{val}; case 'Peaks' % User selects peaks. handles.current_data = handles.peaks; case 'Membrane' % User selects membrane. handles.current_data = handles.membrane; case 'Sinc' % User selects sinc. handles.current_data = handles.sinc; end guidata(hObject,handles) function popupmenu1_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end Burada teker teker nesnelerin zerinde sa tklayp View Callback ve ilgili Callback satrna gidilip ayr ayr da yazlabilirdi. Burada gstermek amal olduu iin kodlar bu ekilde direk verilmitir. Kodlama satrlarnda % iareti ile balayan satrlar aklama satrlar olup, bu satrlar herhangi bir komut olarak grlmezler sadece aklama amac tarlar. Tm ilemler tamamladna gre Tools/Run komutu ile GUI uygulamamz altrdmzda ekil 5.15teki gibi bir ekran ile karlalr.

ekil 5.15 Burada yazlan kod paralarn (callback rutinlerini) ksaca aklayalm. function varargout = untitled_ilk(varargin) Yukardaki function blou GUIDE tarafndan otomatik olarak oluturulur. Burada GUI uygulamasna komut satrndan gnderilen parametrelerin alnmas ve GUI uygulamas altktan sonra bir fonksiyon olarak darya gnderilecek parametrelerin tanmlanmas ile ilgili kod satrlar mevcuttur.

64 / 209

function untitled_ilk_OpeningFcn(hObject, eventdata, handles, varargin) Bu fonsiyon GUI arayz ekrana gelmeden (visible olmadan) hemen nce altrlacak kodlar ierir. rnein byle bir callback bir GUI uygulamas almadan nce initialization ilemlerinin yaplmas ya da baz GUI nesne zelliklerinin deitirilmesi istendiinde kullanlabilir. Ayrca, varargin giri parametresi kullanlarak da MATLAB komut satrndan girilen parametre deerleri GUI uygulamas iinde kullanlmak zere bu blokta alnr. function varargout = untitled_ilk_OutputFcn(hObject, eventdata, handles) Bu fonksiyon blou bir GUI uygulamas hafzadan silinip program sonlandrlmadan hemen nce (destroy edilmeden nce) altrlacak komutlar ieriri. Ayrca, komut satrna gnderilecek k parametre deerleri de bu blok tarafndan varargout deikeni kullanlarak ileme konulur. function pushbutton1_Callback(hObject, eventdata, handles) Bu callback blou pushbutton1 isimli buton (istenilse bu buton ismi butonun Tag zelliine zellikler penceresinden yeni bir isim verilerek de deitirilebilir.) ki burada Surf stringine sahip olan buton tkland zaman altrlacak komutlar ierir. function pushbutton2_Callback(hObject, eventdata, handles) Bu callback blou da benzer ekilde pushbutton2 isimli buton ki burada Mesh stringine sahip olan buton tkland zaman altrlacak komutlar ierir. function pushbutton3_Callback(hObject, eventdata, handles) Bu callback blou da benzer ekilde pushbutton3 isimli buton ki burada Contour stringine sahip olan buton tkland zaman altrlacak komutlar ierir. function popupmenu1_Callback(hObject, eventdata, handles) GUI arayze eklenmi olan popup_menu nesnesininden herhangi bir eleman tklanp seildii zaman almas istenilen kod paralar bu callback altnda yazlr. function popupmenu1_CreateFcn(hObject, eventdata, handles) Bu callback GUIDE tarafndan otomatik olarak oluturulmu olup, popup_menu nesnesi uygulama ekranna gelmeden (visible olmadan) ve de oluturulmadan nce koturulacak program satrlarn ierir. 5.6 M-File Programlama Yntemi Kullanlarak GUI Tasarm Oluturma Burada GUIDE gibi bir tasarm arac kullanlmaz. Sadece kod satrlar yazlarak hem GUI arayz hem de bu arayzn koturduu komut satrlar ayn dosya ierisinde yazlr. Bu dosyalar .m uzantsna sahiptirler. Bir GUI arayzn bu yntemle oluturabilmek iin ncelikle tasarm ncesi arayzn bir plan taslak halinde bir kt zerine izilmelidir. nk burada tm ilemlerin yaplmas

65 / 209

muazzam bir alma ve lmlendirme ile belirlenen nesnelerin uygun yerlere kullanl bir GUI arayz karmak zere bir araya gelmesi tamam ile GUI tasarm ve programcsnn yazd kodlar ile gerekletirilecektir.

ekil 5.16 Yukardaki pencerede grld zere bir nceki sayfalarda anlatlan rnek GUI tasarmnn taslak grnts grlmektedir. Bu ekilde nesnelerin yerleri tespit edildikten sonra bir GUI uygulamas oluturulmak zere programlama yntemi ile tasarma geilebilir. imdi MATLAB komut satrndan edit komutunu verelim. Karmza bo bir m file dosya gelecektir. Genel olarak programlama yolu ile tasarlanlacak GUI uygulamas komut satrlar aada belirtilen yapda olmaldr. Burada rnein GUI uygulamamzn ad MYGUI olsun. function varargout = mygui(varargin) MYGUI uygulamas iin mygui.m dosyasi ilk satr % MYGUI Ksa bir GUI uyugulamas ile ilgili aklayc bilgi % Bir adet bo aklama satrna kadar bu satir ve sonra gelen % satrlar MATLAB komut satrnda GUI uygulamasn % aklayc ve help komutu ile kullancya sunulan % yardm satrlarn ierir. % Burada help satrlarn kod satrlarndan ayrmak iin bir adet bo aklama satr konulur. % GUI uygulamasnn giri parametre alnmas ve ilk nhazrlk ilemleri blou % GUI nesnelerinin oluturulmas ile ilgili satrlar blou % Callback ler ncesi nhazrlk ilemleri blou % MYGUI iin gerekli callback fonksiyonlar % MYGUI iin kullanlacak fonksiyonlar blou

66 / 209

end

Bu komut fonksiyon blounun sonunu belirtmek iin konulmutur.

Yukardaki yapy oluturacak ekilde komutlar MYGUI isimli GUI uygulamas iin mygui.m isimli dosyaya kaydedilir. Bu GUI uygulamasn altrmak iin de MATLAB komut satrndan sadece mygui komutunun verilmesi yeterlidir. Bu ekilde uygulama penceresi karmza gelecektir. u aamada herhangi bir kod yazlmad herhangi bir ey olmayacaktr. Ancak, yazlm olsayd ilgili GUI penceresi grlecekti. 5.6.1 Programlama Yoluyla Nesnelerin Eklenmesi Yukarda bahsedilen mygui.m dosyasnn ieriine aada belirtilen kodlar eklediimizde GUI arayzmz u ekilde grlecektir.

ekil 5.17 function varargout = mygui(varargin) fh = figure('Visible','on','Name','My GUI',... 'Position',[360,550,550,300]); cbh = uicontrol(fh,'Style','checkbox',... 'String','Display file extension',... 'Value',1,'Position',[30 15 130 20]); eth = uicontrol(fh,'Style','edit',... 'String','Enter your name here.',... 'Position',[30 45 130 20]); eth = uicontrol(fh,'Style','edit',... 'String','Enter your name and address here.',... 'Max',2,'Min',0,... 'Position',[30 75 130 105]); mygui icin fonksiyon tanm bu satrlar ekrana belirtilen boyut ve konumda figure (GUI yzeyi) getirme GUI yzeyine checkbox nesnesi ekleme GUI yzeyine edit kutusu ekleme

GUI yzeyine ok satrl edit kutusu ekleme (nk max-min>1 durumu)

67 / 209

lbh = uicontrol(fh,'Style','listbox',... 'String',{'one','two','three','four'},... 'Value',1,'Position',[200 150 50 50]); pmh = uicontrol(fh,'Style','popupmenu',... 'String',{'one','two','three','four'},... 'Value',1,'Position',[200 110 130 20]);

GUI yzeyine liste kutusu ekleme (elemanlari 'one','two','three','four' ) GUI yzeyine popup men ekleme (elemanlari 'one','two','three','four' ) GUI yzeyine push buton ekleme

pbh1 = uicontrol(fh,'Style','pushbutton','String','Button 1',... 'Position',[10 205 60 40]); img(:,:,1) = rand(16,64); img(:,:,2) = rand(16,64); img(:,:,3) = rand(16,64); pbh2 = uicontrol(fh,'Style','pushbutton',... 'Position',[15 180 50 25],... 'CData',img); rbh = uicontrol(fh,'Style','radiobutton',... 'String','Indent nested functions.',... 'Value',1,'Position',[175 220 150 20]); sh = uicontrol(fh,'Style','slider',... 'Max',100,'Min',0,'Value',25,... 'SliderStep',[0.05 0.2],... 'Position',[185 60 150 30]); sth = uicontrol(fh,'Style','text',... 'String','Select a data set.',... 'Position',[185 30 130 20]); tbh = uicontrol(fh,'Style','togglebutton',... 'String','Left/Right Tile',... 'Value',0,'Position',[185 260 100 30]); ph = uipanel('Parent',fh,'Title','My Panel',... 'Position',[.60 .75 .2 .2]);

rasgele saylardan oluan dizi tanm

GUI yzeyine push buton ekleme

GUI yzeyine radio buton ekleme

GUI yzeyine kaydrc ekleme

GUI yzeyine static text kutusu ekleme GUI yzeyine toggle (ift durumlu) buton ekleme GUI yzeyine panel ekleme ph paneline push buton ekleme ph paneline 2. push buton ekleme GUI yzeyine buton grubu ekleme bgh grubuna radio buton

pbh3 = uicontrol(ph,'Style','pushbutton','String','Button 1',... 'Units','normalized',... 'Position',[.1 .55 .8 .3]); pbh4 = uicontrol(ph,'Style','pushbutton','String','Button 2',... 'Units','normalized',... 'Position',[.1 .15 .8 .3]); bgh = uibuttongroup('Parent',fh,'Title','My Button Group',... 'Position',[.125 .75 .2 .2]); rbh1 = uicontrol(bgh,'Style','radiobutton','String','Red',...

68 / 209

'Units','normalized',... 'Position',[.1 .6 .3 .2]); rbh2 = uicontrol(bgh,'Style','radiobutton','String','Blue',... 'Units','normalized',... 'Position',[.1 .2 .3 .2]); ah = axes('Parent',fh,'Position',[.60 .50 .2 .2]); b1 = uicontrol(fh,'Posit',[330 80 60 30],'String','Button 1'); b2 = uicontrol(fh,'Posit',[350 50 60 30],'String','Button 2'); b3 = uicontrol(fh,'Posit',[310 10 60 30],'String','Button 3'); align([b1 b2 b3],'Right','None'); %align([b1 b2 b3],'Left','Distribute'); align([b1 b2 b3],'Center','Fixed',7); align([b1 b2 b3],'Fixed',5,'Bottom'); set(fh,'MenuBar','figure'); set(fh,'MenuBar','none'); mh = uimenu(fh,'Label','My menu'); eh1 = uimenu(mh,'Label','Item 1'); eh2 = uimenu(mh,'Label','Item 2','Checked','on'); set(eh2,'Separator','on');

ekleme bgh grubuna 2. radio buton ekleme GUI yzeyine grafik izim alan ekleme GUI yzeyine buton 1 koy GUI yzeyine buton 2 koy GUI yzeyine buton 3 koy

b1, b2 ve b3 nesnelerini saa hizala b1, b2 ve b3 nesnelerini sola dank hizal. b1, b2 ve b3 nesnelerini ortala b1, b2 ve b3 nesnelerini aay doru hiz. standart ara ubuunun gsterilmesi standart ara ubuunun gizlenmesi GUI yzeyi mensne My menu eklenm. mh mensne alt men tanmlanmas mh mensne alt men tanmlanmas mh2 menu seceneinin zerine ayra kon. eh1e kisayol (Ctrl+C) tanm ve pasif yaplmas eh2ye kisayol (Ctrl+H) tanm

seh1 = uimenu(eh1,'Label','Choice 1','Accelerator','C',... 'Enable','off'); seh2 = uimenu(eh1,'Label','Choice 2','Accelerator','H'); th = uitoolbar(fh); a = [.20:.05:0.95]; img1(:,:,1) = repmat(a,16,1); img1(:,:,2) = repmat(a,16,1); img1(:,:,3) = repmat(flipdim(a,2),16,1); pth = uipushtool(th,'CData',img1,... 'TooltipString','My push tool',... 'HandleVisibility','off');

GUI yzeyine ara ubuu ekleme bu ve alt satrlarla rasgele renkleri temsil etmek zere dizilerin tanmlanmas

th ara ubuuna push buton ekleme handlevisibility komut satrndan eriimi ayarlar rastgele renk dizisi tanmlama ara ubuuna ayrc ekleme

img2 = rand(16,16,3); tth = uitoggletool(th,'CData',img2,'Separator','on',... 'TooltipString','Your toggle tool',... 'HandleVisibility','off'); oldOrder = allchild(th); newOrder = flipud(oldOrder); set(th,'Children',newOrder);

bu ve aadaki satrlar ile nesnelerin tab tuu ile gei sras ayarlanmakta

69 / 209

delete(tth); end

tth handleini tutan nesnenin (burada ara ubuu) silinmesi fonksiyon sonu

5.6.2 Programlama Yntemi ile GUI Tasarmnda Callback Kullanm ekil 5.18de grlen penceredeki GUI arayz tasarlanm olsun. Burada amalanan kaydrcnn her hareketini text kutusunda gstermek, ayn zamanda text kutusuna 0-100 aralnda deerler girilip enter tuuna basnca kaydrcnn deerini de o deere set etmektir. ayet kullanc bu araln dnda ya da hatal giri yaparsa hata saysn text kutusuna yazdrmaktr.

ekil 5.18 Byle bir GUI tasarm iin aadaki kodlar (komut satrndan edit komutu ile Editor penceresini aarak) slider_gui.m isimli dosyaya yazlsn ve kaydedilsin. function slider_gui fh = figure('Position',[250 250 350 350]); sh = uicontrol(fh,'Style','slider',... 'Max',100,'Min',0,'Value',25,... 'SliderStep',[0.05 0.2],... 'Position',[300 25 20 300],... 'Callback',@slider_callback); eth = uicontrol(fh,'Style','edit',... 'String',num2str(get(sh,'Value')),... 'Position',[30 175 240 20],... 'Callback',@edittext_callback); sth = uicontrol(fh,'Style','text',... 70 / 209

'String',Bir deer girin veya kaydrcy kullann.',... 'Position',[30 215 240 20]); number_errors = 0; function slider_callback(hObject,eventdata) set(eth,'String',... num2str(get(hObject,'Value'))); end function edittext_callback(hObject,eventdata) val = str2double(get(hObject,'String')); % text kutusuna girilen deer kaydrcnn min ve max % deerleri arasnda ise kaydrcnn yeni deerini set et. if isnumeric(val) && length(val) == 1 && ... val >= get(sh,'Min') && ... val <= get(sh,'Max') set(sh,'Value',val); else % Hatal giri sz konusu ise hata sayacn bir arttr number_errors = number_errors+1; set(hObject,'String',... ['Toplam hatal giri says = ',... num2str(number_errors)]); end end Buradaki GUI reimizde toplam iki adet callback fonksiyonu kullanlmtr. slider_gui isimli fonksiyon bizim GUI ana uygulamamz iin tanmlanmtr. Burada slider_callback(hObject,eventdata) ve edittext_callback(hObject,eventdata) isimli callbackler uicontrol komutu ile komut satralrnn en banda nesneler GUI yzeyine eklenirken Callback zelliklerine parametre olarak aktarlmtr. Dolaysyla hangi nesne ile ilgili bir olay (event) olumu ise ona ait ve o olayla ilgili callcak ler GUI tarafndan altrlacaktr. Burada function slider_callback(hObject,eventdata) isimli callback fonksiyonu kaydrc nesnemizin deeri deitirilince icra edilecek komut satrlarn ierir. function edittext_callback(hObject,eventdata) isimli callback fonksiyonu ise texy kutusu ierisine herhangi bir deer girilince (bu say da olabilir veya string tipi deerler de olabilir.) ve enter tuuna baslnca koturulacak olan komutlar iermektedir. Bu programda zetle text kutusuna girilen deer val = str2double(get(hObject,'String'));

71 / 209

komutu ile nce double tipinde saysal deere evrilmektedir. Ardndan gelen if sorgusu ile girilen deer saysal ve herhangi bir hata yoksa kaydrcnn yeni deeri set edilmektedir. Fakat girilen deer hatal ise if sorgusunda bu durum renilmekte ve de else ifadesinden sonra gelen komutlar icra edilmekte olup, burada da number_errors isimli genel bir deiken oluan toplam hata says iin saya grevi grmekte ve hata durumunda deeri bir arttrlmaktadr. Daha sonra da oluan hata durumu text kutusunun string zelliinden faydalanlarak kullncya gsterilmektedir. 5.7 GUIDE Aracnn ncelenmesi Bir nceki konularmzda da bu arac ksaca incelemye altk. Burada GUIDE arac detayl olarak incelenecektir. MATLAB komut satrndan guide komutunu yazdmzda ve gelen pencereden bo (blank) bir GUI tasarmn setiimizde ekil 5.19daki pencere ile karlalr.

ekil 5.19 Bu ekrandaki aralar ile ilgili aklama aada verilmitir. 5.7.1 Layout Editor GUIDE alma alan ve penceresidir. Bu ekran ile GUI yzeyine component paletten seilen ilgili nesneler eklenebilir ya da dier aralar ile program kodlarnn yazlmas,

72 / 209

nesnelerin GUI yzeyi zerinde hizalanmas, tab tuu gei srasnn deitiirlmesi gibi pek ok ilem gerekletirilebilir. 5.7.2 Figure Resize Tab Bu ara GUI alma alannn boyutlandrlmasn salar. Fare iaretisi bu alan zerine getirildiinde konum deitirecektir. Bu anda farenin sol tuu tklanp ileri geri hareket ettirilerek GUI yzey alannn boyutlar deitirilebilir. 5.7.3 Menu Editor GUI uygulamasna istenilirse File, Edit v.b. gibi men ieren programlarda olduu gibi bir man eklenmesi ve eklenen men ile ilgili ilmelerin yaplmas bu ara vastasyla salanr. 5.7.4 Align Objects Bu ara sayesinde GUI alma alanna eklenilen nesnelerin yatay ya da dikey olarak hizalanmas ilemleri gerekletirilir. 5.7.5 Tab Order Editor Tab Order Editor kullanlarak GUI yzeyindeki nesnelerin birinden dierine tab tuu ile gei sras (rnein bir buton seili ve aktif iken bir baka butona ya da bir liste kutusuna tab tuu kullanlarak geilmesi gibi.) deitirilebilir. 5.7.6 Property Inspector Bu pencere sayesinde de GUI uygulamasna eklenen nesnelerin zellikleri deitirilebilir ya da var olan zelliklerinin ve deerlerinin neler olduu gzlenilebilir. 5.7.7 Object Browser Bu ara ile tasarmc GUI uygulamasna eklemi olduu nesnelerin ve isimlerinin neler olduu genel hali ile bakabilir. 5.7.8 Run Bu buton yardm ile de hazrlanm olan bir GUI uygulamas altrlabilir. Bu ekilde tasarmc hazrlam olduu GUIyi test etme imknna sahiptir. 5.7.9 M-File Editor Hazrlanm olan GUI uygulamas ile ilgili komutlar grebilmek ve zerinde deiiklik yapabilmek iin bu ara kullanlr. 5.7.10 GUIDE Tercihleri Bu tercihleri grebilmek iin GUIDE ekrannda File mensnden Preferences komutu altrlr.

73 / 209

5.7.10.1 Dorulama Seenekleri Bu seeneklere ulamak iin General/Confirmatin yolu izlenmelidir. Karmza ekil 5.20deki gibi bir pencere gelecektir.

ekil 5.20 Bu penceredeki seeneklerden iki tanesi GUIDE ile ilgilidir. Bu seeneklerin grevleri u ekildedir: Promp to Save on Activate

Bu seenek seili ise GUIDE bir GUI uygulamas altrlmadan nce onun kaydedilmesi gerektiini bildiren ekil 5.21deki gibi bir pencere ile kullanc uyarlr.

ekil 5.21 Bu gelen ekranda evet denilerek uygulamann kaydedilmesi ve altrlmas salanlabilir. Eer ki bu pencerenin her seferinde zerinde deiiklik yaplan, fakat kaydedilmeyen bir GUI uygulamas olduunda kullancy uyarmamas isteniyor ise Do not show this dialog again. seenei iaretlenmelidir.

74 / 209

Promp to Save on Export

Bu seenek GUIDE alma ekrannda iken File mensnden Export komutu verilirse ve tasarlanan GUI uygulamas kaydedilmemi deiiklikler ieriyor ise kullancya Export ilemi ncesinde var olan deiikliklerin kaydedilecei konusunda ekil 5.22deki pencere ile uyarr.

ekil 5.22 Bu pencerede evet butonuna tklanlarak ileme devam edilebilir. Eer ki bu pencerenin srekli kmas istenmiyor ise kullanc evet demeden nce Do not show this dialog again. seeneini iaretlemelidir. 5.7.10.2 Geriye Uyumluluk Seenei Seenekler penceresinde General>Mat-Files yolu izlenilerek gelen ekil 5.23teki pencereden nceki MATLAB versiyonlar ile uyumlu olacak ekilde dosyalarn kaydedilme format ayar deitirilebilir.

ekil 5.23 Bu almada kullanlan MATLAB versiyonu 7.0.4tr. Bu pencere yardmyla Ensure backward compatilibility (-v6) seenei seilirse GUIDE kullanlarak hazrlanan GUI 75 / 209

uygulamalar versiyon 6 nolu MATLAB GUIDE uygulamalar ile uyumlu olacaktr. Bunun anlam hazrlanan her GUI uygulamasnn iki adet dosya halinde kaydedilmesi demektir. Bu dosya trleri .m ve .fig uzantlarna sahiptir. Uyumluu korumak iin .m dosyalar GUI tasarmlarnn komutlarn iermek zere kaydedilir. Ayrca, yine uyumluluk salamak iin .fig uzantl dosya format kullanlarak hazrlanan dosyada da GUI arayznn grsel ayarlar ve nesnelerin grnm ile ilgili bilgileri saklanr. 5.7.10.3 Dier Tercihler Preferences ekrannda ayrca GUIDE yolu altnda dier tm GUIDE seenekleri yer almaktadr. Karmza ekil 5.24teki gibi bir pencere gelecektir.

ekil 5.24 Bu penceredeki seeneklerin ilevleri u ekildedir: 5.7.10.3.1 Show Toolbar: GUIDE ekrannda ekil 5.25te grlen ara ubuunu gstermek iin bu seenek seili iretli olmaldr.

76 / 209

ekil 5.25 5.7.10.3.2 Show Names in Component Palette GUIDE ekrannda aada da grld gibi component paletinde yer alan butonlarda nesnelerin isimlerini gstermek iin bu seenek iaretlenmelidir.

ekil 5.26 5.7.10.3.3 Show File Extension in Window Title GUIDE ekrannn balk ubuunda zerinde allan GUI uygulamasnn dosya isminin yannda .fig uzatsnn da gsterilmesi istenirse bu seenek iaretlenmelidir. 5.7.10.3.4 Show File Path in Window Title GUIDE ekrannn balk ubuunda zerinde allan GUI uygulamasnn tm dosya yolu ile birlikte dosya isminin gsterilmesi istenirse bu seenek iaretlenmelidir. 5.7.10.3.5 Add Comments for Newly Generated Callback Functions Bo bir GUI uygulamas (untitled bir dkman) ile GUI tasarma balandnda .m uzantl komut satrlarnn olduu dosyaya her bir callback ve bu dosyada yer alan fonksiyonlarla ilgili 77 / 209

otomatik olarak aklama satrlarnn eklenmesi istenirse bu seenek iaretli olmaldr. GUI kodlamasnda aklama satrlarnn banda % iareti yer alr ve varsaylan olarak M-File Editorde aklama satrlar yeil renkte gzkr. rnek aklama satrlar aada gzkmektedir. % --- Executes during object deletion, before destroying properties. function figure1_DeleteFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 5.7.11 GUIDE Seenekleri Bu seeneklere GUIDE alma penceresinde iken Tools mensnden GUI Options komutu ile eriilebilir. Karmza ekil 5.27deki gibi bir pencere gelecektir.

ekil 5.27 Bu penceredeki seeneklerin grevleri u ekildedir. 5.7.11.1 Resize Behavior Bu seenek farkl durum ierir. Non-resizable

Kullanclar GUI uygulamas penceresinin boyutunu deitiremezler. Proportional

Bu seenek seildiinde hem kullanc hem tasarmc GUI yzeyi ve tm nesneleri birbiri ile orantl olarak bytp kltebilirler. Other (Use ResizeFcn)

78 / 209

Kullanclar GUI pencere boyutlarn deitirseler bile nesnelerin boyutlar ayn kalr. stenirse tasarmc ResizeFcn callbackini kullanarak pencere boyutlarnn deitirilmesi ile alan bu callback i programlayabilir. 5.7.11.2 Command-Line Accessibility Bu seenek ile MATLAB komut satrndan kullanclarn GUI figure penceresine eriimi ve kullanmalar engellebilir. Normalde MATLAB gcf komutu ile o an aktif olan figure gsterilebilir. Ancak, bu seenek sadece GUI figure ekrannn callbacklerden eriimine imkn verirse o takdirde aktif gure olarak komut satrndan GUI uygulamasnn figure ekranna eriilemeyecektir. 5.7.11.3 Generate FIG-File and M-File Bu seenek kullanlrsa GUI uygulamas iki dosya halinde kaydedilir ve de bu seenein altndaki grevlere de eriim hakk kazanm olur. Alt seeneklerin ilevleri u ekildedir. 5.7.11.3.1 Generate Callback Function Prototypes Bu seenek ile GUI uygulamas ilk oluturulduunda (untitled dkman durumu) GUIDE .m uzantl dosya ieriine ilk bilinen ablon (template) callbacklere ait fonksiyon tanmlarn ieren komut satrlarn otomatik olarak ekler. 5.7.11.3.2 GUI Allows Only One Instance to Run (Singleton) Bu seenek seilirse GUIDE ekrannda tasarlanan GUI uygulamas her run ediinde sadece bir tane GUI penceresi zerinde alacaktr. Ancak, bu seenek iaretlenmezse her altrmada birden fazla GUI uygulama ekrannn almasna izin verilecektir. 5.7.11.3.3 Use System Color Scheme for Background Bu seenek seilirse GUI uygulamas yzeyi alannn rengi sistemin genel form rengi ile uyumlu olacaktr. Ancak, bu seenek seilmezse aada grld zere GUI arayznde nesne renkleri ile uygulama pencere rengi arasnda farkllklar oluacaktr.

79 / 209

ekil 5.28 5.7.11.3.4 Generate FIG-File Only Bu seenek iaretlenirse GUI tasarmlar sadece .fig uzantl dosya ierisinde hem grnm ayarlarnn, hem de programlama komut satrlarnn bulunmas salanm olur. Ancak, bu seenein iaretlenmesi ile versiyon 6 GUIDE uygulamalar ile uyumluluk ortadan kalkacak ve de GUI tasarmnda programc ilemlerini yukarda belirtilen seenekler olmadan kstl olarak srdrecektir. 5.7.12 GUIDE Aracnda ablon (Template) Uygulamalar ile alma MATLAB GUIDE arac GUI tasarmclarna ilk balayanlar iin kendi iinde hazr rnek uygulamalar (templates) sunmaktadr. Bu uygulamalarn arayz ve nesnelerin callbacklerini kullanan komut satrlarn yazma hususunda programc ve tasarmcya nbilgi vermesi bakmndan ok yararldr. MATLAB komut satrndan guide yazldnda ya dara ubuundan GUIDE simgesi tklandnda karmza ekil 5.29daki gibi bir pencere gelecektir.

80 / 209

ekil 5.29 Bu pencereden template olarak karmza seenek kmaktadr. Bunlar: GUI with Uicontrols GUI with Axes and Menu Modal Question Dialog

Aada bu uygulamalr hakknda ayrntl bilgiler verilmitir. 5.7.12.1 GUI with Uicontrols Uygulamas Bu uygulama seildiinde ekil 5.30da gzken GUI tasarm gzkecektir.

ekil 5.30 81 / 209

Bu uygulamay ara ubuundan Run butonuna basarak altrdmzda da ekil 5.31deki gibi bir uygulama arayz ekrana gelecektir.

ekil 5.31 Bu uygulamada ama seilen birim sistemine gre younluk ve hacim deerleri girilen bir cismin ktle deerini Younluk*Hacim (D*V) formlnden yola karak hesaplanmasn salanmak ve kullancya hesaplanan deeri sunmaktr. Burada push butonlarn ve text kutularn program kodlar ve callback paralarnn kullanmna ynelik olarak programcya bilgiler verilmektedir. 5.7.12.2 GUI with Axes and Menu Uygulamas Bu seenek seilerek bir GUI template uygulamas aldnda karmza ekil 5.32deki gibi bir tasarm ablonu gelecektir.

ekil 5.32 Burada da bu GUI uygulamasnn altrlmas durumunda programc ekil 5.33teki gibi bir arayz ile karlaacaktr.

82 / 209

ekil 5.33 Bu almada amalanan liste kutusundaki seilen elemanlara gre farkl formlasyonlar kullanlarak update butonuna tklandnda grafik nesnesi zerinde bulunan sonulara gre izimin yaplmasn salamaktr. Bu uygulamada ile programcya axes (grafik izimi) nesnesinin nasl kullanld ve de liste kutular ile ilgili callback satrlarnn nasl iletildii hususunda bilgiler verilmektedir. Ayrca, bu uygulamada rand(5) komutunun kullanm ve rasgele deerler ieren dizilerin nasl retildii de gsterilmitir. Bu uygulamann bir baka faydal yn de uygulamann men iermesi ve menlerin programlanmas konusunda tasarmcya nbilgi verilmektedir. Menlerin kullanm ile ilgili olarak file = uigetfile('*.fig') komutu ile bir baka .fig dosyann bir grafik izim nesnesinde nasl aktarlaca, printdlg(handles.figure1) komutu ile de varolan bir izimin yazcdan nasl kt alnaca close komutu ile aktif bir GUI figure ekrannn nasl kapatlaca

konularnda programcya programlama teknikleri sunulmaktadr. 5.7.12.3 Modal Question Dialog Uygulamas Bu seenek seildiinde karmza ekil 5.34teki gibi bir template GUI uygulamas kacaktr.

83 / 209

ekil 5.34 Bu uygulamay altrdmzda da ekil 5.35teki gibi bir GUI arayz ile karlalr.

ekil 5.35 Bu GUI uygulamasnda amalanan kendisine komut satrndan verilen d parametreleri alarak kendi ierisinde yorumlamak ve buna gre oluturulacak GUI uygulama ekrannn ieriini (burada pencere bal ile text kutusunun string deerini) deitirerek kullancya sunmaktr. Ayrca, bu uygulama ile programc u konularda bilgilendirilmektedir: varargin ve varargout komutlarn kullanarak darya bilgi gnderme ve dardan verilen parametreleri yorumlamak uiwait(handles.figure1) komutu ile bir uygulama penceresinin aktif konumunun nasl blokland ve ne i yapt, uiresume(handles.figure1) komutu ile bloklanan bir GUI penceresinin nasl eski haline getirildii, modal programlama teknii ile tasarlanan bir GUI uygulamasnda alan bir pencerenin arka taraftaki bir baka pencerenin aktif kontroln ele geirmesi iin gerekli programlamann nasl yaplddr.

84 / 209

Ayrca, bu uygulama MATLAB GUI tasarmlarnda birden fazla form ile nasl allabilecei konusunda bir ipucu nitelii tamaktadr. Bu uygulama ile giri ve k parametreleri kullanan GUI uygulama pencereleri vastasyla kendi iinde birden fazla GUI arayz ieren GUI uygulamalarnn programlanma teknii tantlmaktadr. 5.7.13 GUI Nesnelerinin Aklanmas MATLAB GUIDE arac kullanarak bo (blank) bir GUI alma ekrann atmzda sol tarafta grlen component panel pek ok nesnenin kullanlabilecei grlmektedir.

ekil 5.36 imdi bu nesnelerin srasyla zellikleri ile ilgili bilgiler verilecek ve nasl programlanaca gsterilecektir. 5.7.13.1 Push Button: Normal bir buton zellii tamaktadr. Bir buton zerine tklanmas ile yaplacak komutlar bu buton ile ilgili callback lerin altna yazlr. 5.7.13.2 Toggle Buton: ift durumlu bir buton zellii tayan bu nesne ile iki farkl seenek ieren durumlarda rnein bu buton basl ise bir ilemin, bu buton baslmam ise baka ilemlerin yaplmas gerektii yerlerde tercih edilen bir nesnedir. Buton grubu nesnesi ile beraber kullanm tavsiye edilir. 5.7.13.3 Radio Buton: Birden fazla seenein olduu, ancak seeneklerden sadece herhangi birinin seilebilecei hallerde bu nesne kullanlr. Buton gruplar ile kullanlmas genellikle tercih edilir. 5.7.13.4 Check Box:

85 / 209

Kullancya seim yapabilecei ve birden fazla kk iaretleyebilecei durumlarda bu nesne kullanlr. 5.7.13.5 Edit Text: Bir kullancdan bilgi girii ya da bir deerin alnmas sz konusu olduunda giri eleman olarak sklkla kullanlan bir nesnedir. 5.7.13.6 Static Text: Kullancya herhangi bir bilgi verme ya da bulunan bir sonu veya deeri gsterme amacyla sklkla kullanlan bir nesnedir. 5.7.13.7 Slider: Kullancdan bir giri deerini kaydrlmak suretiyle kolaylkla alnmasna imkn veren bir nesnedir. 5.7.13.8 List Box: Kullancya bilgi verme amacyla kullanlabilecei gibi bir deeri listeden semek amacyla da kullanlan sabit bir liste kutusu niteliinde kullanlan bir nesnedir. 5.7.13.9 Pop-Up Menu: Kullancdan alnmak istenilen bilgileri alan bir listeden seme zellii tayan bir nesnedir. 5.7.13.10 Axes: Yaplan i ile ilgili grafik izimlerinin kullancya gsterilmesini salayan bir nesnedir. 5.7.13.11 Panel: GUI yzeyi nesnelerinin kullancya daha anlaml ve gzel gzkmesini salayan, ayrca tasarmcya GUI dizaynnda kolaylk sunan bir nense olup, GUI yzeyi nesnelerinin gruplanmas ve bir arada gsterilmesi amacyla kullanlr. 5.7.13.12 Button Group: Radio veya toggle tipteki buton nesnelerinin bir arada kullanlarak kullancnn birden fazla seenekten sadece bir tanesini semesini salamak amacyla kullanlan bir nesnedir 5.7.13.13 ActiveX Component: MATLAB GUI tasarmlar sadece yukarda belirtilen nesneler ile snrl deildir. Tasarc ve programc ayrca, ActiveX ad verilen ve deiik alternatifi olan nesnelerin kullanlmasna da imkn verir. Bylece hem tasarmc hem tasarlanlacak GUI arayznn kullanm bakmndan kullancya esneklik salanm olunur. 86 / 209

5.7.14 Nesnelerin GUI Yzeyine Yerletirilmesi Bir nesneyi alma alanna eklemek iin yaplmas gereken sol tarafta yer alan component panelden yerletirilmek istenilen nesnenin butonunu tklamak ve GUI yzeyinde yerletirilmek istenilen yere tklamak ya da yerletirilmek istenilen blgeyi farenin sol tuu ile basl tutarak beliren erevenin nesne boyutlar olacan dnerek yerletirme ilemi yaplabilir. 5.7.14.1 Bir Nesnenin GUI Yzeyinde Bulunan Bir Panele ya da Buton Grubuna Yerletirilmesi Bir nesne GUI gzeyinde daha nceden yerletirilmi olan bir panele ya da buton grubuna yerletirmek iin ncelikle yerletirilecek nesne component panelden seilir ve daha sonra fare iaretisi yerletirilecek panel ya da buton grubu zerine gtrlr. Bu durumda fare imlecinin zerinde olduu bu grup nesnesi bir anda seili hale gelecektir. ayet bu ilem ana GUI figure zerine getirilirse bu sefer grup nesnesinin aktiflii kaybolacak ve figure yzeyi seili duruma dnecektir. (Bir nesnenin aktif veya seili olduu durumu nensnenin kenarnda beliren erevelerin varl ile anlalabilir.) Bu durumu GUI yzeyine yerletirilmi olan bir panel nesnesine bir push buton nesnesinin yerletirilmesi rnei zerinde ekil 5.37de grld zere zetlenebilir.

ekil 5.37 5.7.14.1.1 ActiveX Control Nesnesinin GUI Yzeyine Yerletirilmesi Bir ActiveX nesnesini GUI yzeyine eklemek iin ncelikle component panelden seilir. Daha sonra GUI alannda yerletirilmesi dnlen bir yere farenin sol tuu ile tklanr. Bu admdan sonra karmza ekil 5.38deki gibi bir pencere gelecektir. Bu pencerede GUI yzeyine

87 / 209

ekil 5.38 yerletirilmek istenmek istenilen ActiveX componenti sol taraftaki listeden seilmeli ve ardndan Create butonuna baslmaldr. 5.7.15 GUI Yzeyine Eklenen Nesnelerin Boyutlandrlmas GUI alanna eklenen bir nesnenin boyutlarn deitirilmek iin ilgili nesne ncelikle farenin sol tuu yardm ile seilir. Daha sonra da etrafnda beliren ke noktalar kullanlarak boyutlar deitirilebilir. Bu durum ekil 5.39da gsterilmitir.

ekil 5.39 5.7.16 Her Nesneye Tantc Bir sim Atamak

88 / 209

Bir nesneye tantc ve o nesneye zel bir isim vermek iin ncelikle o nesne farenin sol tuu ile GUI tasarm yzeyinde seilir. Daha sonra View mensnden Property Inspector komutu verilir. Karmza gelen zellikler penceresinden nesnemizin Tag zelliine istenilen bir isim verilebilir. Ayrca, Property Inspector penceresini amak iin nesne zerinde farenin sol tuu ile ift tklanlarak da alabilir. ekil 5.40da rnek olarak bir buton nesnesi iin bu durum grlmektedir.

ekil 5.40 5.7.17 Nesnelere Yaz Eklemek Baz nesneler zellikleri gerei kullancya bilgi vermek veya bir seenek sunmak amacyla string bilgiler ierirler. Bu nesneler Push Button, Toggle Button, Radio Button, Check Box, Text, List Box, Popup Menu, Panel ve Button Group nesneleridir. Bu nesneler de yaplar gerei deiik zellikler iermektedir ve bu zellikleri zerinden string deerler atamak mmkn olmaktadr. Bu nesnelere yaz bilgilerinin nasl verildii aada srasyla aklanmtr. 5.7.17.1 Push Button, Toggle Button, Radio Button, Check Box, Text Nesnelerine Yaz Eklenmesi Bu nesnelere yaz eklemek iin ilgili nesne seilerek zellikler penceresinden String zelliklerine istenilen bir metin bilgisi girilebilir. Ayrca, bu zellik programlama komut satrlaryla da deitirilebilir. rnek olarak ekil 5.41de grlen rnekte bir push butonun zerindeki yaznn deitirilmesi gzkmektedir. Eer ki bu nesnelere alt alta olacak ekilde birden fazla satr ieren bilgiler girilmek istenirse bir sonraki balk altnda anlatlan teknik kullanlmaldr.

ekil 5.41 Gerekli deiiklik yapldnda butonumuzun grnts ekil 5.42deki gibi olacaktr.

89 / 209

ekil 5.42 5.7.17.2 List Box ve Popup Menu Nesnelerine Yaz Eklenmesi Bu nesneler oklu string bilgiler ieren liste kutusu tarz yaplardr. Bu nesnelere string bilgiler eklemek istenirse ncelikle nesne seilir. Ardndan String zelliinin yannda yer alan butona tklanr. Karmza aadaki gibi bir pencere gelecektir. Bu pencereye gerekli bilgiler girildikten sonra OK butonuna baslr. Bylece string verilerin girilmesi ilemi tamamlanm olur. stenirse bu zellik programlama yoluyla da deitirilebilir. Bu yntem eer ki bir nceki balkta belirtilen nesnelere birden fazla bilgi girilmesi istendiinde de bu nesneler iin de kullanlabilir.

ekil 5.43 ekil 5.43te grlen bilgiler girildiinde rneimizdeki popup men nesnemizin grnts ekil 5.44te grld gibi olacak ve kenarndaki buton tklandnda da tm seenekler kullancya sunulacaktr.

ekil 5.44 5.7.17.3 Panel ve Buton Group Nesnelerine Balk Eklenmesi Bu nesneler iinde yer alan pek ok nesne gruplandrma imknna sahip olup bu nesnelere bal eklemek iin farkl bir zellik kullanlmaktadr. Bu nesnelere balk ekmek iin nesne seili iken Property Inspector penceresinden Title zelliine gerekli bilgi girilmelidir. Bu durumu ekil 5.45ten de takip edilebilir.

90 / 209

ekil 5.45 rneimizde bir panel nesnesi kullanlm olup bal My Title olarak deitirilmitir. Bu deiiklik yapldktan sonra panelimizin GUI alma alanndaki grnts ekil 5.46daki gibi olacaktr.

ekil 5.46 5.7.18 GUI alma Alannda Nesneler ile alma GUI yzeyindeki nesnelere tasarm ortamnda istenildii ekilde mdahale edilebilir. GUI alma alanndaki nesneler zerinde kopyalama, silme, tama, ne getirme, en arkaya gnderme, hizalama, tab tuu ile seim srasnn deitirilmesi, baka bir noktaya tanmas veya boyutlarnn deitirilmesi, cetvel ve zgara kullanlarak ilemlerin yaplmas, GUI uygulamasnda ana men oluturmak ya da istenilen bir nesne zerinde context men oluturmak, GUI uygulamasna ara ubuu eklemek, GUI tasarmnda kullanlan nesnelerin grlmesi gibi pek ok ilem iin GUIDE tasarmcya pek ok kolaylk salamaktadr. 5.7.18.1 Nesnelerin Seilmesi GUI yzeyindeki nesneleri teker teker semek iin fare iaretisi ilgili nesne zerine gtrp farenin sol tuuna basmak yeterlidir. Ancak, tasarmc birden fazla nesneyi semek istiyor ise o zaman Ctrl ya da Shift tuu basl halde iken ilgili nesneleri birer birer tklamaldr. Ayrca, oklu seim ilemi iin fare iaretisi GUI yzeyinin bo bir yerinde farenin sol tuu basl tutularak bu halde hareket ettirilir. Bu esnada oluan pencere ierisinde seilmesi istenilen nesneler var olduunda farenin sol tuu braklr. Bu ekilde de topluca seim ilemi yaplm olacaktr. 5.7.18.2 Nesneler zerinde Kopyalama, Silme, Tama, oullama lemlerinin Yaplmas GUI yzeyine eklenene bir nesneden ksa yoldan yeni bir kopya almak istenirse nesne zerinde farenin sa tuu ile tklanr ve alan menden Duplicate (oalt) komutu verilir. Bu ekilde kopya alnan nesnenin tm grnm zellikleri ayn yeni bir kopyas oluturulmu olacaktr. Ayrca, bir nesne kopyalama ve yaptrma teknii ile de oaltlabilir. Bunun iin nesne zerinde farenin sa tuu tklanr alan menden de Copy (Kopyala) komutu verilir ya da bu ilem yerine ksaca Ctrl + C tu kombinasyonu kullanlabilir. Daha sonra GUI yzeyinin istenilen bir noktasna fare iaretisi gtrlr ve ardndan farenin sa tuu tklanr. Alan menden Paste (Yaptr) komutu verilir. Bu ilem ksaca Ctrl + V tu kombinasyonu ile de yaplabilir.

91 / 209

Bir nesnenin bir noktadan baka bir noktaya tanmas istenirse nesne ya farenin sol tuu basl halde istenilen noktaya srklenebilir ya da nesne zerinde farenin sa tuu tklanp alan menden Cut (Kes) komutu verilir. Bu ilem ksaca Ctrl + X tu kombinasyonu ile de gerekletirilebilir. Ardndan istenilen noktaya fare iaretisi gtrlr ve sa tuu tklanp alan menden Paste (Yaptr) komutu verilir. 5.7.18.3 Bir Nesneyi Dier Nesneler Arasnda ne veya Arkaya Getirme Bir nesnenin dier nesnelere gre pozisyonunu deitirmek iin nce nesne seilir. Daha sonra Layout mensnden ilgili komut verilir. Bu durum ekil 5.47de de gzkmektedir. Buradaki komutlarn ilevleri yledir:

ekil 5.47 Bring to Front komutu seili nesneyi en ne getirir. Send to Back komutu seili nesneyi en arkaya gnderir. Bring Forward komutu seili nesneyi bir adm ne getirir. Send Backward komutu seili nesneyi bir adm arkaya gnderir.

5.7.18.4 Nesnelerin GUI alma Alannda Tanmas Bir nesneyi GUI yzeyinde farkl bir noktaya gtrmek iin farkl yntem vardr. Bunlar aklayalm. lk ynteme gre bir nesne fare iaretisi zerinde iken farenin sol tuu ile tklanr ve braklmadan farkl bir noktaya srklenir. Bu ekilde nesnenin konumu kolaylkla deitirilmi olacaktr. kinci ynteme gre bir nesne nce farenin sol tuu ile seilir. Ardndan klavyedeki yer-yn tular vastasyla istenilen ynlerde hareket ettirilebilir. Bu yntem zellikle bir nesne daha hassas olarak baka bir konuma yerletirilmek istendiinde kullanlr. Son olarak da bir nesnenin konumu nesne seili iken Property Inspector penceresinden Posiiton zellikleri deitirilir. Bu ekilde de bir nesnenin konumu deitirilmi olacaktr. Ancak, standart l birimi olarak GUIDE normalized veya characters l biirmlerini kullanmaktadr. Bunlar yerine ncelikle l birimini inches olarak deitirilirse bir nesnenin konumlandrmasnda tasarmcya ok byk kolaylk salayacaktr. Bu durum ekil 5.48de grlmektedir.

92 / 209

ekil 5.48 Bu admdan sonra da Position zellii kullanlarak ilgili nesnenin konumu deitirilebilir. Bu zellik hiyerarik yapl deiken zellii gstermekte olup alt parametrelerinin deitirilmesi iin zellikler penceresinde Position zelliinin yanndaki + iareti tklanr. Bylece alt parametreler grlebilir. rnek pencere grnts ekil 5.49da verilmitir. Buradaki bilgiler u zelliktedirler:

ekil 5.49 x bilgisi, bir nesnenin sol kenardan itibaren uzakln gsterir. y bilgisi, bir nesnenin alt kenardan itibaren uzakln gsterir. width bilgisi, bir nesnenin yatay uzunluunu gsterir. height bilgisi, bir nesnenin dikey uzunluunu gsterir.

Bu yntemin kullanlmas x ve y parametreleri dnda width ve height zellikleri kullanlarak bir nesnenin boyutlarnn da deitirilmesi bakmndan tasarmcya yarar salar. 5.7.18.5 Nesnelerin Boyutunu Deitirmek Bir nesnenin boyutlarn deitirmek iin nesne nce farenin sol tuu ile seilir. Daha sonra nesnenin her bir kesinde beliren siyah boyutlandrma kutucuklarndan istenilen biri zerine fare iaretisi gtrlr ve zerinde iken farenin sol tuu basl tutulur. Daha sonra bu tu basl halde iken iareti ileri ve geri hareket ettirilir. Bu ekilde ilgili nesnenin konumu deitirilmi olacaktr. Bu durum ekil 5.50de de grlmektedir.

ekil 5.50

93 / 209

Ayrca, bir nesnenin konumunu deitirmek iin zellikler penceresi de kullanlabilir. Bir nesnenin width ve height zelliklerinin deitirmek suretiyle nesnemizin boyutlar deitirilmi olacaktr. Bu durum iin bir nceki balk altnda bulunan bilgilere baklabilir. 5.7.18.6 Nesnelerin Hizalanmas GUIDE bu konuda sunduu eitli ve yararl aralar sayesinde tasarmcnn iini kolaylatrmaktadr. Bu aralar unlardr: Alignment Tool (Hizalama Arac) Property Inspector (zellikler Penceresi) Grid and Rulers (Izgara ve Cetvel) Guide Lines (Klavuz izgileri)

Aada bu aralar srayla aklanmtr. 5.7.18.6.1 Alignment Tool (Hizalama Arac) Birden ok nesneyi yatay ve dikey olarak belirlenen referans hattna gre hizlama iin bu ara kullanlr. Hizalanacak olan nesneler nce oklu olarak seilirler. Ardndan Tools mensnden Align Objects komutu verilir. Karmza ekil 5.51deki gibi bir pencere gelir.

ekil 5.51 Bu pencerede Vertical (Dikey) ve Horizontal (Yatay) olmak zere nesneler hizalanabilir. Eer ki sadece dikey hizalama yapmak isteniyorsa yatay hizalama seenei Off (Kapal) durumda tutulmaldr. Ancak istee gre hem dikey, hem yatay hizalama ayn anda da yaplabilir. Align seenei nesneleri hizalamak iin kullanlrken Distribute nesneler arasnda referans noktasna gre boluk brakmak iin kullanlr. Eer ki Distribute seeneklerinden herhangi biri seilirse set spacing seenei etkin olacaktr ve bu seenek iaretlenirse yannda belirtilen kutu ierisindeki piksel says kadar nesneler arasnda referans noktasna gre boluk brakacaktr. Bu durum ekil 5.52de rneklendirilmitir. ncelikle hizalandrlacak nesneler toplu olarak seilir.

94 / 209

ekil 5.52 Daha sonra Tools mensnden hizalama arac alr ve gerekli seimler yapld zaman OK butonuna tklanr. Bylece nesneler hizalanm olacaktr. Hizalama isteiniz gibi olmad ise herhangi bir anda Ctrl+Z tu kombinasyonu ile yaplan ilemleri geri alabilirsiniz. 5.7.18.7 Property Inspector (zellikler Penceresi): zellikler penceresi yardm ile de hizalama yaplabilir. Bunun iin nce hizalanacak nesneler toplu olarak seilir. Daha sonra da View mensnden Property Inspector penceresi alr. Gelen pencerede Position zellii altndaki x ya da y deeri yeni bir deere set edilir. rnein, eer ki nesneler sol kenardan ayn uzaklkta olacaksa yani dikey olarak hizalanmak isteniyorsa x zellii ayn (rnein 2 inches gibi) deere atanr. Benzer ekilde nesneler yatay olarak hizalanmak isteniyorsa y deeri ayn deere ayarlanr. Bu ekilde de nesnelerimiz hizalandrlm olacaktr. Bu zellikler ekil 5.53te de gsterilmitir.

ekil 5.53 5.7.18.8 Grid and Rulers (Izgara ve Cetvel) GUI tasarmnda GUIDE aracnn tasarmcnn nesnelerin hizalanmasnda zgara ve cetvel kullanmasna izin vermesi de tasarmc iin byk bir kolaylk salamaktadr. Bir GUI tasarmnda zgara ve cetvel kullanmak iin Tools mensnden Grid and Rulers komutu verilir. Karmza ekil 5.54teki gibi bir pencere gelecektir. Buradaki seenekler yledir:

95 / 209

ekil 5.54 Show rulers seenei iaretlenirse cetvelleri gsterir. Show guides seenei iaretlenirse klavuz izgileri gzkecektir. Show grid seenei iaretlenirse GUI yzeyinde zagara belirecektir. Snap to grid seenei iaretlenirse nesneler GUI yzeyinde zgara hatlarna tutturulacaktr. stenirse bu pencerede zgara aralarnn bykl deiitirlebilir. Bu ilem iin Grid Size seenei kullanlabilir. 5.7.18.9 Guide Lines (Klavuz izgileri) GUI yzeyi tasarlanrken klavuz izgileri kullanlarak nesnelerin hizalanmas rahatlkla yaplabilir. Klavuz izgilerini karmak iin tasarmc nce dikey veya yatay istedii bir cetvel zerinde ve istedii hizadan balayarak farenin sol tuunu basl tutulur. Bu durumda fare iaretisi hareket ettirilir. stenilen hizaya gelindiinde farenin sol tuu braklr. Bylece GUI alma alannda mavi renkte klavuz izgilerini kt grlecektir. Bu durum ekil 5.55de gsterilmitir.

ekil 5.55 96 / 209

5.7.18.10 Tab Tuu ile Gei Srasnn Ayarlanmas GUI yzeyinde birden fazla buton veya liste kutular gibi nesnelerin olduunu dnelim. Kullanc GUI uygulmasn rahat bir ekilde kullanabilmek iin tab tuu yardm ile bir nesneden dierine gemek isteyebilir. Bu durum iin tab srasnn uygun bir srada deitirilmesi GUI uygulamamzn kullanm kolayln artracaktr.

ekil 5.56 ekil 5.56da grld gibi bir GUI arayzne sahip olduu dnlrse bu arayzde nesnelerin tab srasn deitirmek iin ncelikle Tools mensnden Tab Order editor komutu altrlr.

ekil 5.57 Daha sonra ekil 5.57deki gibi bir pencere ile karlalr. Bu pencereden st blmnde yer alan yukar ve aa ok butonlar yardmyla listede grlen nesneler seilerek tab sralar deitirilebilir. Listenin en stndeki nesneler daha ncelikli tab tuu gei srasna sahiptirler. 97 / 209

Burada dikkat edilmesi gereken bir husus da Panel, Buton Group ve Axes nesnelerinin tab tuu srasnda bir etkisi olmaz. nk bu nesneler tab tuu ile kontrol edilebilecek bir yapya sahip deillerdir. Ancak, bir panel ya da buton grubu ierisindeki bir nensnenin tab sras sadece ait olduu o grup iinde geerlidir. Bunun iin de bu grup nesnelerinden herhangi biri tklanrsa Tab Order Editor ierisinde o grubun nesneleri gzkecektir. 5.7.18.11 GUI Uygulamasna Men Eklemek GUI uygulamarnda iki farkl men eklenebilir. Bunlar dan biri uygulamann ana ekrannda yer alan ve ou programlarda yer alan program mensdr. Bir dier men ekli ise herhangi bir nesne zerinde farenin sa tuu ile tkladmzda alan ierik (context) menleridir. Aada her iki men uygulamalarnn nasl yapld ile ilgili ayrntl bilgi verilmektedir. 5.7.18.11.1 GUI Uygulamasna Program Mens Eklemek GUI uygulamasna men eklemek iin GUIDE iinde bulunan Menu Editor arac kullanlr. Bu arac altrmak iin Tools mensnden Menu Editor komutu verilir. Karmza ekil 5.58deki gibi bir pencere gelecektir.

ekil 5.58 Menu Editor penceresi ile men ekleme, meny yeni bir e eklme, varolan bir eyi silme, alt men oluturma ve pek ok ilem yaplabilir. rnein ekil 5.59daki gibi bir GUI arayz tasarlayacamz dnelim.

98 / 209

ekil 5.59 Byle bir tasarm iin ncelikle New Menu tuu ile yeni bir men eklenir. Bu durum ekil 5.60da gsterilmitir.

ekil 5.60 Daha sonra bu men listeden seilip Properties (zellikler) panelinden bu menye File etiketi verilir. Bu bilgi Label zelliine verilir. Tag zelliine de GUIyi programlarken kullanlacak tantc bir isim verilmelidir. Ancak, Tag bilgisinin Label deeri ile ayn olma zorunluluu yoktur.

99 / 209

ekil 5.61 Hazrlanan File mensne alt bir e eklemek iin New Menu Item butonu tklanr. Bylece yeni e File mensne eklenmi olacaktr.

ekil 5.62 Benzer ekilde bu eye de yeni bir etiket (label) verilir. Tm bu ilemler tamamland zaman Menu Editor penceremiz aadaki gibi gzkecektir.

100 / 209

ekil 5.63 stenilirse bir men esine Accelerator zellii kullanlarak bir ksayol tu kombinasyonu atanabilir. Buradaki herhangi bir men esine tklandnda altrlacak callbacke gitmek iin View butonuna tklanlabilir. Gelen callback altnda girilen komut satrlar GUI uygulamasnn almas durumunda o men esi tklandnda MATLAB tarafndan koturulacaktr. 5.7.18.11.2 GUI Uygulamasna Context (erik) menleri Eklemek Bir GUI uygulamasnda kullancya salanlacak kolaylklardan bir de bir nesne zerinde farenin sa tuu ile tklandnda gzken context (ierik) menleridir. Context men oluturma ilemleri bir nceki konu bal altnda incelenen menl ugyulamalar tasarlama admlarna ok benzerlik gsterir.

101 / 209

ekil 5.64 Bir GUI uygulamasna ierik mens eklemek iin ncelikle yaplmas gereken Tools mensnden Menu Editor komutu vermek ve karmza gelen ekrandan Context Menus sekmesine gemektir. Daha sonra bu pencerenin st tarafnda bulunan New Context Menu butonunu kullanarak yeni bir ierik mens oluturulur. Ardndan eklenen men listeden seilen sa tarafta yer alan zellikler ksmndan yeni bir Tag ismi verilir. Bu isim kullancya gzkmeyip sadece programlama amacyla kullanlr.

ekil 5.65 Daha sonra bu ierik mensne yeni eler eklemek iin New Menu Item butonuna baslr.

102 / 209

ekil 5.66 Eklenen bu men esi nce listeden seilir ve daha sonra da sa tarafta bulunan zellikler panelinden hem Label hem de Tag bilgileri girilir.

ekil 5.67 5.7.18.11.2.1 Context (erik) mensnn Bir Nesne ile likilendirilmesi Yukarda oluturulan axes_context_menu isimli ierik mensnn GUI uygulamasnn altrlmas esnasnda zerinde farenin sol tuu ile tklandnda kacak nesne ile ilikilendirilmesi gerekir. Bunun iin ilgili nesne GUI tasarm alannda iken seilir ve Property Inspector penceresinden UIContextMenu zellii bu uygulamada oluturulmu olan ierik mens ile deitirilir. Bu durum ekil 5.68de de grlmektedir.

103 / 209

ekil 5.68 5.7.18.12 GUI Uygulamasna Ara ubuu Eklemek Bir GUI uygulamasna ara ubuu eklemek kullancnn o uygulamay kullanm kolayln arttrr. MATLAB GUIde ara ubuu ekleme ilemleri grsel olarak deil, komut satrlar ile salanr. Bunun iin GUI uygulamasnn OpeningFcn callback blou kullnlr. Bu callbck GUI uygulamalarnda hazrlk ilemlerinin yaplmasna imkn salar. GUI uygulamas daha almadan nce koturulacak komut satrlarn bu blok iermektedir. Bir GUI uygulamasna ara ubuu eklemek iin o uygulamann OpeningFcn callback blouna u komut satrlar eklenmelidir. ht = uitoolbar(hObject) a(:,:,1) = rand(20); a(:,:,2) = rand(20); a(:,:,3) = rand(20); htt = uitoggletool(ht,'CData',a,'TooltipString','Hello') Yukardaki satrlar eklendikten sonra bu uygulama altrldnda ekil 5.69daki gibi bir GUI arayz ile karlarz. Bu komut satrnda uittolbar komutu ile yeni bir ara ubuunun geerli GUI figure alanna eklenmesi salanmaktadr. Daha sonra a isimli diziye eklenilecek bir buton zerindeki renkleri gstermek zere rasgele deerler atanmakta olup, uitoggletool komutu ile de bu ara ubuuna ve rasgele renklerden oluan bir grnt ile yeni bir buton eklenmektedir. ToolTipString zellii fare imleci bu buton zerine geldiinde gzkecek aklama bilgisi iin konulmutur. Ancak, byle bir aklam koyma zorunluluu da yoktur.

104 / 209

ekil 5.69 5.7.18.13 Nesne Hiyerarisinin Gsterilmesi Tasarm esnasnda programc hangi nesneleri ve hangi isimlerle kulland genel hatalar ile grmek isteyebilir. Bu gibi durumlar iin GUIDE tasarmcya Object Browser aracn sunar. Bu ara View mensnden altrlabilir. Bu ara ekil 5.70te de grlmektedir.

ekil 5.70 Object Browser arac ile tasarmc hangi nesneyi hangi Panel iinde veya hangi isim ile kullandn kolaylkla takip edebilir. rnein buradaki rnekte GUI figure iinde popup menu (alr liste kutusu), axes (grafik izimi), panel ile men nesnelerinin eklendii gzkmekte olup, panel iinde de radio olmak zere toplam drt adet buton kullanld sylenilebilir. 5.7.19 GUI Nesnelerinin Programlanmas Burada her bir GUI nesnesinin programlama esnasnda sklkla hangi zelliklerinin ve nasl bir teknik ile kullanld anlatlacaktr. 5.7.19.1 Push Button:

105 / 209

ekil 5.71deki gibi bir arayz iin butona tklandnda GUI uygulamasn kapatacak bir rnekle bir push buton kullanmn aklayalm.

ekil 5.71 Byle bir GUI alma alannda fare iaretisi push buton zerinde iken View Callbacks/Callback komutunu verelim ve alan callback blouna aadaki komutlar ekleyelim. function pushbutton1_Callback(hObject, eventdata, handles) display Goodbye close(handles.figure1); Bylece Close butonu tklandnda GUI uygulamas sonlandrlm olacaktr. Baka bir rnekte de bir push butonun zerine nasl resim eklendiini inceleyelim. Yukardaki rnekte Callback blouna nceki program satrlar yerine aadaki kodlar yazalm. a(:,:,1) = rand(16,64); a(:,:,2) = rand(16,64); a(:,:,3) = rand(16,64); set(hObject,'CData',a) Bu GUI uygulamasn Tools mensnden Run komutunu kullanarak altralm ya da ara ubuundan Run dmesine basalm. Gelen GUI uygulamasnda butona tkladmzda zerine rasgele renklerden oluan bir resimin atand grlecektir. Bu durum ekil 5.72de de grlmektedir.

ekil 5.72 5.7.19.2 Toggle Buton: Bir toggle buton ift durumlu alr. Bir kere tklandnda basl kalr. Bir daha tklanrsa basl kalmayp eski konumuna geri dner. Byle bir nesnede geerli buton konumunu renmek ve kullanabilmek iin aadaki komut satrlar kullanlmaldr. function togglebutton1_Callback(hObject, eventdata, handles) button_state = get(hObject,'Value'); 106 / 209

if button_state == get(hObject,'Max') % Toggle buton basldnda yaplacak ilemler ... elseif button_state == get(hObject,'Min') % Toggle buton baslmad durumda yaplacak ilemler ... end 5.7.19.3 Radio Buton: Radio buton Buton Group nesnesi ile birlikte kullanldnda daha etkili sonular alnr. Ancak, kodlama yolu ile de radio butonlarn konumu kontrol edilebilir. Bir radio butonun baslp baslmadnn kontrol iin u kodlar kullanlabilir: if (get(hObject,'Value') == get(hObject,'Max')) % Radio buton basldnda yaplacak ilemler else % Radio buton baslmad durumda yaplacak ilemler end 5.7.19.4 Check Box: Check Box nesnesinin konum kontrol de radio butonlarnkine benzer ekildedir. function checkbox1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) % Checkbox nesnesi iaretlendiinde yaplacak ilemler else % Checkbox nesnesi iaretlenmedii durumda yaplacak ilemler end 5.7.19.5 Edit Text: Bilgi girii amacyla sklkla kullanlan edit text nesnesinin string ierik bilgisini alamak iin ilgili komut satrlar yledir: function edittext1_Callback(hObject, eventdata, handles) user_string = get(hObject,'String'); % Callback blounun devam ve dier komutlar Ancak, burada alnan bilgiler string tiptedir ve saysal olarak kullanlamazlar. Saysal olarak kullanabilmek iin ncelikle edit box ierikleri saysala dntrlmelidir. Daha sonra eer ki hatal bir giri sz konusu ise hata kontrol deyimlerinin kullanlmas ile bu durum giderilmelidir. Byle bir durum iin kullanlabilecek komut satrlar aada gsterilmitir. function edittext1_Callback(hObject, eventdata, handles) user_entry = str2double(get(hObject,'string')); if isnan(user_entry)

107 / 209

errordlg('Saysal bir deer girilmelidir!..','Hatali Giris','modal') return end % Callback blounun devam ve dier komutlar Bu komut satrlarnda ayrca bir hata durumu olutuunda errordlg komutu ile kullancya hatal bir giri yapt uyar diyalog penceresi gsterilmektedir. Edit Text nesnesinin callback satrlar ancak kullanc baksa bir nesneye ya da gUI yzeyine tklad veya edit nesnesi iinde iken Enter tuuna bast (oklu giri kutusu ise Ctrl + Enter tu kombinasyonu kullanld) zaman icra edilecektir. Aksi takdirde kullanc bir deer edit veya text nesnesine girerken bu callback satrlar almayacaktr. 5.7.19.6 Static Text: Edit Text nesnesi ile benzer zelliklere sahiptir. Bu nesnenin edit text ten tek fark kullancdan bilgi girii alnamamasdr, sadece bilgi gstermek amal kullanlr. Kodlama mant edit text nesnesi ile ayndr. 5.7.19.7 Slider: Bir kaydrc (slider) nesnesinin geerli deerini program yoluyla okumak iin gerekli komut satrlar yle olmaldr. function slider1_Callback(hObject, eventdata, handles) slider_value = get(hObject,'Value'); % Callback blounun devam ve dier komutlar Bir kaydrc nesnesinin en kk ve en byk deerlerinin de ayarlanmas bir programc iin gereklidir. Bunun iin bu nesnenin Max ve Min zellikleri kullanlmaldr. 5.7.19.8 List Box: List Box nesnelerinin liste tipindeki string ieriinin kullanlabilmesi iin bu nesnelerin Value ve String zellikleri birlikte kullanlr. Kodlama mant u ekilde olacaktr: function listbox1_Callback(hObject, eventdata, handles) index_selected = get(hObject,'Value'); list = get(hObject,'String'); item_selected = list{index_selected}; % Hcre dizisinden evirme ilemi % to string 5.7.19.9 Pop-Up Menu: Popup men nesnelerinde seilen bir enin hangisi olduu anlamak iin bu nesnelerin Value zelliinden yararlanlr. Kodlama rnei aada gsterilmitir. function popupmenu1_Callback(hObject, eventdata, handles) val = get(hObject,'Value');

108 / 209

switch val case 1 % Birinci e seili iken yaplacak ilemler case 2 % kinci e seili iken yaplacak ilemler % Callback blounun devam ve dier komutlar Eer ki programc seilen enin stringini renmek isterse u komut satrlar kullanlabilir: function popupmenu1_Callback(hObject, eventdata, handles) val = get(hObject,'Value'); string_list = get(hObject,'String'); selected_string = string_list{val}; % Hcre dizisinden evirme ilemi % to string % Callback blounun devam ve dier komutlar 5.7.19.10 Axes: Grafik izimlerinin kullancya sunulmasnda sklkla kullanlan bir nesne olan axes iin ekil 5.73teki gibi bir GUI arayzne sahip olunduu dnlm olsun.

ekil 5.73 Burada Plot butonunun callback blouna u komut eklensin ve ardndan Run komutu ile bu GUI uygulamasn altrlsn. surf(peaks(35)); Ekrana gelen GUI uygulama penceresinde Plot dmesini tkladmzda ekil 5.74teki gibi bir ekran grnts ile karlalr.

109 / 209

ekil 5.74 Grld zere tek axes nesnesi ieren GUI tasarmlarn programlamak kolay gzkmektedir. Ancak, eer ki bir GUI arayz birden fazla axes nesnesine sahip ise bu takdirde hangi axes nesnesi o an aktif ise o nesne zerinde izimimiz gzkecektir. Aktif axes nesnesinin hangisi olaca u komutla belirtilir: axes(handles.axes1) Bir sonraki axes nesnesi ile ilgili rneimizde oklu axes nesnelerinin programlanmasna ait bilgilere yer verilmitir. Bu rnek iin GUI arayznn ekil 5.75teki gibi olduu kabul edilsin. .

ekil 5.75 Bu uygulamada Plot 1 butonuna ait callback satrlarna surf(handles.axes1, peaks(35)); Plot 2 butonuna ait callback satrlarna da

110 / 209

contour(handles.axes2, peaks(35)); komutlar eklensin. Daha sonra da bu GUI uygulams altrlsn. Gelen uygulama penceresinde ayr ayr Plot1 ve Plot 2 butonlarn tklansn. ekil 5.76daki gibi bir grnt ile karlalr:

ekil 5.76 Bu uygulama bize istenilen sonucu vermektedir. Ancak, ayn ilev farkl yntem kullanlarak da gerekletirilebilir. Plot 1 butonuna ait callback satrlarna nceden yazlan komut satrlar yerine axes(handles.axes1); surf(peaks(35)); Plot 2 butonuna ait callback satrlarna nceden yazlan komut satrlar yerine axes(handles.axes2); contour(peaks(35)); satrlar yazlsn ve bu uygulama tekrar altrlsn. Butonlar tklandnda sonu deimeyecektir. Ancak, axes() komutunun kullanlmas bir programc olarak daha kolay ve sade bir kodlama anlam tamas bakmndan genellikle tercih edilir. 5.7.19.11 Panel: Bu nesneler programlama amac tamayan yapdadrlar. Panellerin kullanm amac grsel olarak GUI uygulamasn zengin klmak ve kullancya yapaca ilemler ile ilgili kullanmn kolaylatrmaktr. Ancak, bir GUI uygulamasnn koturulmas annda GUI figure alannn 111 / 209

boyutlarnn deitirilmesi sz konusu ise, bu takdirde panel nesnelerinin ResizeFcn metodu kullanlabilir. 5.7.19.12 Button Group: rnek olarak ekil 5.77de grlen bir GUI arayzne sahip olunduu dnlsn. Byle

ekil 5.77 bir durumda Buton Group nesnesi zelliinden tr bu drt nesne toggle durumlu olarak (yani herhangi bir anda yalnizca biri seili olabilir ekilde) alacaktr. Byle bir uygulamada hangi buton seili ise yaptrlmak istenilen programlama ilemleri yle olacaktr: function uibuttongroup1_SelectionChangeFcn(hObject,... eventdata,handles) switch get(hObject,'Tag') % Seili nesnenin Tag bilgisini alma case 'radiobutton1' % radiobutton1 seili ise yaplacak ilemler case 'radiobutton2' % radiobutton2 seili ise yaplacak ilemler case 'togglebutton1' % togglebutton1 seili ise yaplacak ilemler case 'togglebutton2' % togglebutton2 seili ise yaplacak ilemler % Daha fazla sayda buton varsa koullarn kontrol bylece devam eder. otherwise % Hibir buton seili deilse yaplacak ilemler end 5.7.19.13 ActiveX Component: Active X nesneleri ile MATLAB GUI uygulamalarnn esneklii arttrlmtr. Bylece sadece GUInin kendi nesneleri ile tasarmc snrl kalmam olup, pek ok farkl nesneyi de alp kullanabilir. GUI yzeyine nce bir ActiveX nesnesi ekleyelim ve karmza gelen component listesinden Mwsamp Control tklayp Create butonuna basalm. Ekelenen bu ActiveX

112 / 209

nesnesinin kesinde boyutlarn deitirmek ve bytmek mmkndr. GUI alma alanndaki grnt ekil 5.78deki gibi olacaktr:

ekil 5.78 Bu GUI uygulamasn altrldnda karlalan arayz ekran ekil 5.79da gsterilmitir.

ekil 5.79 Tekrar tasarm ortamna geilsin, Activex nesnesi seilip Property Inspector penceresinden zelliklerine baklsn.

113 / 209

ekil 5.80 Bu ActiveX nesnesinin iki zellii vardr (Bir ActiveX nesnesi ile ilgili daha kapsaml bilgilere reticinin hazrlanm olduu Kullanc Klavuzundan ulalabilir.). Bunlarn ilevi u ekildedir: Label zellii, kullancya ekranda sunulacak bilgidir. Radius zellii, ekranda gzkecek dairenin yarap uzunluudur.

imdi de bu ActiveX nesnesi ile ilgili programlama teknikleri aklayalm. ncelikle ActiveX nesnemizin Click Callback satrlarna aadaki komutlar ekleyelim. hObject.radius = .9*hObject.radius; hObject.label = ['Yaricap = ' num2str(hObject.radius)]; refresh(handles.figure1); Bylece fare iaretisi ile her ActiveX nesnesi zerinde tkladmzda bu callbackteki komutlar icra edilecektir. Burada yaplan her tklanmada daire yarapnn artrlyor olmasdr. Ayrca, nesnemizin Label zelliinden faydalanlarak dairemizin yarap deeri ekrana yazdrlmaktadr. Burada unutulmamas gereken nokta bir ActiveX nesnesi ile ilgili zellikler deitirildii zaman mutlaka bunlarn o nesneye uygulanabilmesi ve uygulama arayznde yaplan deiikliklerin gzlenebilmesi iin geerli GUI figure yzeyinin refresh edilmesi gerekliliidir. Bunbun yannda burada Label zellii string tipi verileri tuttuu iin yarap saysal deerden num2str( komutu kullanlara string tipi bilgiye dntrlmekte ve ardndan Label zelliine atanmaktadr. Aksi takdirde programmzn altrlmas srasnda hata ile karlalacaktr. ActiveX nesnelerinin program yoluyla zelliklerinin deitirilmesi gerektiinde direk olarak ActiveX nesnelerinin zellikleri get metodu kullanlarak alnabilir. Bu durumla ilgili olarak u komut satrlar incelenebilir: handles.activex1.radius = ... get(hObject,'Value')*handles.default_radius; handles.activex1.label = ... ['Radius = ' num2str(handles.activex1.radius)]; refresh(handles.figure1); 5.7.19.13.1 GUI Yzeyine Eklenen Bir Activex Nesnesinin Tm Metotlar GUI yzeyine eklenen bir activex nesnesinin tm metotlar 114 / 209

methodsview(hObject) komutu ile renilebilir. rnein bu komutu GUI alma alanna eklenen bir ActiveX nesnesinin Click Callback satrlarna eklenmi olsun. Karmza aadakine benzer bir ekran gelecektir. Ayrca, methods(hObject) komutu ile bir nesnenin metotlar MATLAB komut satrnda da gsterilebilir. Komut altrldnda gzken ekran grnts ekil 5.81de verilmitir.

ekil 5.81 5.7.19.13.2 Activex Nesnesi eren Bir GUI Uygulamasnn Compile Edilmesi ActiveX ieren bir GUI uygulamas compile edilecei (derlenecei ve bamsz bir altrlabilir .exe uzantl dosya edilecei) zaman aadaki gibi bir yazm ekli kullanlmaldr. mcc -m mygui -a mygui_activex1 Her bir ActiveX nesnesi iin -a mygui_activex1 yazm artrlmaldr. Burada mygui ad ile kaydedilen bir GUI uygulamasnn olduu varsaylm olup, GUI uygulamalarn derlemek zere bu komutun uygulanaca sistem de MATLAB Compiler aracnn ykl olduu kabul edilmitir.

115 / 209

5.7.19.14 Men eleri: Tasarlanan bir GUI uygulamasna eklenen mennn herhangi bir esi tklandnda istenilen komutlarn icra edilmesi istenebilir. Bunun iin Menu Editor aracnda ilgili e seilir ve zellikler panelinden callback satrlarna gitmek iin View butonu tklanr. Bu durum ekil 5.82de de grlmektedir.

ekil 5.82 5.8 GUI Uygulamalarnda Callback Trleri Callbackler nceki konularda da bahsedildii zere oluan herhangi bir olaya bal olarak her nesne iin ayr ve olayn trne gre icra edilen alt program paralardr. Aada sunulan tabloda kullnlan callbacklerin ilevi ve hangi nesneler ile birlikte kullanld beliritilmitir. Bir m file dosya yaps gerei bir GUI uygulamas tasarmnda da ayn dosya ismini tayan fonksiyon ismi ile balayan bir m function yapsna sahiptir. Ancak, giri ve k function varargout = DeneGui (varargin) M function ilk satrnda yer alan (yukarda da ifade edilen deyimde de grld zere) parametrelerinin dinamik olmasna dikkat edilmelidir. Yani, varargin deyimi ile giri parametreleri hcre dizisi formatnda birden fazla olabilir. Ayn, ekilde GUI uygulamasnn kapatlaca zaman ayn bir fonksiyon mant ile varargout darya aktarlacak parametreler bu deikene aktarlabilir. Dardan fonksiyon ierisine gnderilen giri parametreleri ile ilgili bilinmesi gereken iki deiken vardr. Bunlar nargin ve varargin deikenleridir. nargin deikeni : Fonksiyona (ya da GUI uygulamasna) dardan gnderilen toplam parametre saysn tutar.

116 / 209

vargin deikeni: Fonksiyona gnderilen parametrelerin alnmasn salar. Hcre dizisi yapsnda olduundan parametrelerin alnmas iin dizi indislerinin { ve } iaretleri arasnda yazlmas gerekir.

Fonksiyonunun iinden darya GUI uygulamas sonlandrlrken gnderilen k parametreleri ile ilgili bilinmesi gereken iki deikeni vardr. Bunlar nargout ve varargout deikenleridir. nargout deikeni: Fonksiyona (ya da GUI uygulamasna) dardan gnderilen toplam parametre saysn tutar. vargout deikeni: Fonksiyondan darya parametrelerin gnderilmesini salar. Hcre dizisi yapsnda olduundan parametrelerin bu deikene atanmas srasnda dizi indislerinin { ve } iaretleri arasnda yazlmas gerekir. Tablo 5.1 GUI Uygulamalarnda Callback Trleri Callback Tr Tetiklendii Olay Kullanld Nesneler Fare gstergeci Figure veya bir axes figure nesnenin kenarlarndan 5 piksel button group panel ierde olduunda fare butonu user interface controls tklandnda oluur. UI control iin Enable zelliinin true olmas gerekmektedir. context menu menu Nesnenin temel olay. rnein bir user interface controls push button tklandnda ya da bir men esi seildiinde oluur. figure CloseRequestFcn Figure kapanmadan nce altrlr. Bir nesnenin create edilmesi annda oluur. Nesne oluturulduunda initializing iin kullnlabilir. Bu olay nesne create edilince ancak nesne GUI alannda gzkmeden nce icra edilir. Bir nesnenin kaldrlmas annda oluur. Herhangi bir nesne veya figure yok edilmeden nce temizlemeye dayal operasyonlarda kullanlabilir. Fgure veya bir nesne focus (aktif) olduunda veya klavyeden herhangi bir tua basldnda oluur. axes button group menu user interface controls axes button group menu user interface controls figure user interface controls figure context menu panel

ButtonDownFcn

Callback

CreateFcn

DeleteFcn KeyPressFcn

figure context menu panel

117 / 209

ResizeFcn

SelectionChangeFcn

Panel, button group veya figure button group nesnenelerinin boyutlar kullanc tarafndan deitiirldiinde oluur. panel Ayrca, bu duurmun gereklemesi iin figure'e ait "Resize" zellii "on" olmaldr. button group Button grouop nesnesi iinde kullanc farkl bir radio veya toggle butonu setiinde bu olay tetiklenir. figure

figure

WindowButtonDownFcn

Fare iaretisi figure penceresi zerinde iken farenin tuuna basldnda oluur. figure

WindowButtonMotionFcn

Fare iaretisi figure penceresi zerinde ihareket ettirilirken oluur. figure

WindowButtonUpFcn

Fare tuu brakld zaman oluur.

Not : User interface controls push button, slider, radio button, check box, editable textbox, static text , listbox ve toggle butonlar ieren genel bir tanmlama ismidir. Bazen uicontrols olarak da isimlendirlebilirler. 5.9 GUI Uygulamalarnda Callbackler Arasnda Ortak Veri Geiini Salayan Yollar GUI uygulamalarnda bir deiken ierii birden fazla callback ieriisnde kullanlmak istenebilir. Ya bir GUI callback functionun rettii deer baka bir function iin giri verisi olabilir. Konuyu daha geni anlamyla anlatlmak istenirse GUI uygulamalrnda global deiken kullanm yollar retilmeye allmaktadr. Bu durma benzer rnekler oaltlabilir. Bu durumu gerekletirmek zere GUI uygulamalrnda 6 farkl yntem vardr. 5.9.1 Handles Yap Deikeni Kullanlarak Global Kullanm GUI uygulamalrnda en sk kullanlan yntemdir. Bu yintemde her callback functiona giri parametre olarak gnderilen ve GUI uygulamalarnda kullanc verilerinden ziyade GUI nesneleri ile ilgili handle deerlerini tutmaya yarayan handles yap deikeninden yararlanlr. Bu yapy ok kolaydr. rnek olarak sistem_cikis_sayisi isminde bir deikeni her callback ierisinden ortak olarak kullanmak isteimiz varsaylsn ve ierii 4 yaplsn. Daha sonra da bu deikeni, handles yaps ierisine koymak istediimizi dnelim. Bu ilem iin aadaki komut satrlar yazlmaldr.

118 / 209

sistem_cikis_sayisi = 4; Handles . sistem_cikis_sayisi = sistem_cikis_sayisi; guidata (hObject, handles); burada 1. satr ile bu deyimlerin kullanld callback iinde lokal bir sistem_cikis_sayisi isminde deiken oluturlmu ve ierii 4 olarak atanmtr. Ancak, loakl bu deikenin deeri ve kendisinini varl callback fonksiyonunun icras tamamlandkrtan sonra kaybolacaktr. Tekrar ayn callbacke gelindiinde de nceki deer silinmi olacaktr. Burada dikkat edilmesi gereken standart bir kalp eklinde kullanlan guidata ( hObject, handles); komut satrnn varldr. Bu satr ile handles yap deikeni yeni deerlerle birlikte callback dna kmadan gncellenmekte ve callback dna kldnda da veya baak acalback arldnda bu yap ierisinden kullanlmasna imkn verilmektedir. rnein baka bir callback ieirisinde kurulacak bir for dngsnn toplam sayma adedi bu deiken kadar olmak zere aada yer alan komut satrlar yazlabilir. For i=1:1:handles. sistem_cikis_sayisi % dng iieirinde icra edilmesi dnlen kom ut satrlar End 5.9.2 Global Deiken Tanmlama Deyimi Herhangi bir callback banda global deyimi ile bir deiken ismi girildii takdirde eer daha nce byle bir deiken yok ise oluturulur ve balang deeri otomatik olarak 0 (sfr) deeri atanr. Ancak, eer daha nceden bu callback icra edilmi ve global deyimi ile tranmlanan deiken bellekte bir yere sahip ve deeri var ise bu deerininh bir sonraki callback arsnda da devam ettirecektir. Bu durumun kullanma rnek komut satrlar aada gsterilmitir. Function edit1_callback( ) global sayac; sayac=sayac+1; % dier icra edilecek komutlar if isequal(sayac,5) sayac=0; end Yukardaki rnekte sayac deikeni 0 dahil toplam 6 farkl deer almakta ve 5 olduunda deeri tekrar sfrlanmaktadr. 5.9.3 GUI Alannda Visible Ve Enable zellikleri Off Yaplm Nesne Kullanlmas Tasarmc isterse kullanm kolayl salamas bakmndan GUI alannda tasarm aamasnda grnen, fakat GUI icras srasnda kullanclar tarafndan grlemeyen ve kontrol edilemeyen ekstra bir nesne kullanabilir. Bunu yapmak iin tek yapmas gereken bu nesnenin Enable ve Visible zelliklerinin off yaplmasdr. Bu nesneye ait Value veya String deerleri kullanlarak global deer kullanmna ynelik programlama yaplabilir. 5.9.4 Load Ve Save Deyimlerinin Kullanlmas

119 / 209

Programc herhangi bir callback iinde kulland deikenleri o hali ile bir mat dosyasna kaydedebilir ve ileride ya da gerekli grld takdirde tekrar kullanmak zere arabilir. rnek olarak aadaki komut satrlar ele alnabilir. a=5; b=40; save sayilar_a_ve_b; Bu komutlar sonucunda a ve b deikenleri sayilar_a_ve_b.mat isimli bir Matlab veri saklama dosyasna kaydedilir. leride kullanlaca zaman yaplmas gereken ok kolaydr. load sayilar_a_ve_b; c=a*b; Yukardaki komutlarn icras ile a ve b deerleri herhangi bir an veya o an iin workspace alanna veya callbackin geici bellek alanna yklenir. Ancak, deerleri (5 ve 40 saylar) aynen korunur. Bylece c deikeninin deeri 200 olacaktr. 5.9.5 Nesnelerin Userdata zelliini Kullanmak Global deiken kullanmann bir baka ve kolay yolu da her bir GUI nesnesine ait UserData zelliinin kullanlmasdr. Bu deikenin ierii string tipi verileri tutatbildii gib saysal tip verileri de direk olarak gnderme ve kullanma imkn programcya sunulur. Yani, aralrda num2str veya str2num komutlarnn kullanlmasna gerek kalmaz. rnein edit1 nesnesinin Userdata alanna Checkbox1 isimli nesnenin Value deerini koyan komut satrlar yazlm olsun. durum = get ( handles.checkbox1 , Value ) ; set ( handles.edit1 , UserData , durum ) ; rnein Edit1in UserData alannda bulunan bu deeri kendisinin String zelliine atanm olsun. Normalde bir string deer saysal bir deikene atandnda hata oluur ve burada da hata olumas beklenir nk, bilindii gibi checkbox nesnelerinin Value zellikleri saysal tiptedir. Ancak, edit nesnelerinin String zelikleri saysal deil, string tipindedirler. userdata_icerigi = get ( handles.edit1,UserData ); set ( handles.edit1 , String , userdata_icerigi ); Grld gibi bu komutlarn icras sonucu herhangi bir hata olumamtr (saysal ve string deer dnmleri arasnda). Yani, UserData zellii deikenler arasnda uyumluluk salamakta ve kendisi otomatik olarak tip dnmlerini gerekletirmektedir. 5.9.6 Uygulama Datas Yntemi En gelimi, ancak kullanm biraz zahmetli olan yntemdir. Bu yntem ile herhangi bir GUI nesnesinin varolan zelliklerine sanki handles yapsna yeni bir deiken ekler gibi yeni bir deiken eklenebilir Eklelnen nesne genellikle figure olduu iin yntem ismini buradan almaktadr. rnek olarak toplam_boyut alannn bir herhangi bir nesne callbackinde icras

120 / 209

sonucu bahsedilen deiken bu callbacke ait nesnenin boyut isminde yeni bir zellii olarak tanmlanm olsun. Kullanlacak komut satrlar aada verilmitir. toplam_boyut = 15 ; setappdata ( hObject, boyut , toplam_boyut ) ; Herhangi bir anda bir nesnenin uygulama datasnn alnmas gerektiinde de aadaki komut satrlar icra edilmelidir. rnek olarak yukarda ieriisnde application data saklanlan nesne edit4 isimli bir nesne olsun. Buna gre ilgili komutlar u ekilde yazlmaldr: boyut_degiskeni = getappdata(handles.edit4, boyut); 5.10 GUI Uygulamalarnda Temizleme Komutlar Herhangi bir GUI uygulamsnda figure penceresi veya, komut satr alan ya da axes (grafik zim) nesnesinin ieriinin temizlenmesi gerekebilir. Ayrca herhangi bir deikenin workspace den atlarak bellketen temizlenmesi de gerekebilir. Bu durumlar iin u komutlar kullanlmaldr. Figure alann temizlemek iin clf komutu Axes nesnesindeki izimin temizlenmesi iin cla komutu, Komut satr ekrannn temizlenmesi iin clc komutu, Worspace alanndaki tm deiikenleri silmek ve bellekten temizlemek iin clear all veya ksaca clear komutu Workspace alanndan rnein adet_no isimli deiken kaldrlmak istenirse clear adet_no komutu

kullanlmaldr. 5.11 GUI Uygulamalarnda Kullanlan Standart Handle Deikenleri GUI uyugulamalrnda birden fazla nesne veyua figure alan ile alld dnlrse bazen yanl veya istenmeyen nesnelkere kontrollerin kayd grlebilier. Bu gibi durumlardan saknmak iin aktif axes veya grafik nesnesi gibi baz belirli nesnenelr iin zel olarak handle numarasn tutmak amacyla tanmlanm deikenler Mtalab tarafndan GUI tasarmclarna sunulmutur. Ayrca ince bir bilgi olmasna karlk bilmekte yarar var. Bir GUI uygulamasna ait figure nesnesinin handle numaras varsaylan olarak GUI handles yapsnn iinde yer alan output isimli deikende de tutulmaktadr. GUI uygulamalarnda handle numaralarn renmek amacyla sklkla kullanlan standart deikenler unlardr: gcf gca gco : Geerli figure nesnesinin handle numarasn verir. : Geerli axes (grafik izim) nesnesinin handle numrasn verir. : nesne_handle=gco(fig_handle) kullanm ile GUI alannda en sok tklanm ya da en son aktif olan nesnenin handle numarasn verir. gcbf : figure_bo = gcbf; kullanm ile hangi figure nesnesine ait bir callback (veya figurein icerdii bir nesne callback in alyor olabilir) bu figure nesnesine ait handle numaras dner. gcbo : Aktif olarak hangi nesnenin callback i alyor ise o nesneye ait handle numaras 121 / 209

dner. Nesne_handle = gcbo olarak kullanlabilecei gibi [nesne_handle, figure_handle] = gcbo eklinde kullanm ile aktif nesnenin bulunduu figure handle numras da elde edilebilir. 5.12 Herhangi Bir GUI Uygulamasnn Sonlandrlmas Bir GUI uygulamasn sonladrmak iin kullanlacak komut close dur. stenirse close(gcf) ile aktif GUI uygulams sonlandrlmak yerine baka ak bir fifure de sonlandrlabilir. Bunun iin rnein figure no su fig_no isimli bir deikende tutulan figure nesnesinin kapatlmas iin close(fig_no) komutu icra edilmelidir. 5.13 Yeni Bir Figure Oluturma Komutu Bu amala figure komutu kullanlr. Bu komut eer bir deikene atanrsa bu takdirde alan yeni figure ekrannn handle numaras da saklanm ve korunmu olacaktr. rnek olarak fig_handle_no = figure; eklinde komut yazm verilebilir. 5.14 MATLAB GUI Uygulamalarnda Etkileim Kutular Ynetimi MATLAB GUI ile grsel tasarm hem programcnn tasarm kolay klmakta, hem de kullanc yapaca ileri grerek ve kolaylkla birka tklama ile dahi gerekletirebilmektedir. GUI uygulamalarnn kullanclara sunduu kolaylklardan biri de kullnclarn yaplan veya yaplacak iler ilgili uyarlmas veya bilgilendirilmesi amacyla kullanlan etkileim kutularnn kullanlmasdr. rnein bir hata olutuunda bu durumu en temel anlam ile GUI arayznde bir nesne kullanarak ve bu nesneye ait bir zellii (rnein renk gibi) deitirerek kullanc bilgilendirilebeilir. Ancak, bu yntem etkin bir uyarma arac olarak dnlemez. Bunun yerine az nce bahsedildii gibi rnein bir hata penceresi ile hem kullancnn baka ilem yapmas engellenebilir (yani, uygulamann arka plandaki arayz uyar annda kilitlenebilir), hem de daha gereki ve sade bir diyalog pencere grnts kullancnn Windows benzeri GUI tabanl ortamlarda alkanlklarn dnda tasarm ekranlar ile karlamam olur. Ayrca, etkileim kutularnn kullanm ile programcnn da GUI arayznde herhangi bir tasarm deiikliine gitmesine frsat verilmez, dolaysyla daha etkin GUI tabanl uygulama gelitirme imkn salanm olmaktadr. Matlab ile hazrlanan GUI uygulamalrnda kullanlabilecek etkileim kutular Tablo 5.2de gsterilmitir. Tablo 5.2 Matlab ile Tasarlanan GUI Uygulamalarnda Kullanlabilecek Etkileim Kutusu Trleri
Etkileim Tr errordlg helpdlg inputdlg listdlg printdlg questdlg uigetdir uigetfile uiputfile Kutusu Aklama Hata Penceresi Yardm Penceresi Veri Giri Penceresi Liste Grnm Penceresi Yazdrma Penceresi Sorgu Penceresi Klasr Yolu Seme Penceresi Dosya Ama Penceresi Dosya Kaydetme Penceresi

122 / 209

uisetcolor uisetfont warndlg waitbar pagesetupdlg msgbox printpreview

Renk Seim Penceresi Font Seim Penceresi Uyar Penceresi Ykleme ubuu Sayfa Yaps Penceresi Mesaj Kutusu Sayfa nizleme Penceresi

Aada GUI uygulamalarnda eitli etkileim kutularnn ne amala ve nasl kullanlaca ayrntl olarak anlatlmtr. 5.14.1 Hata Penceresi (Error Dialog) : Bu diyalog penceresi, kullanclarn uygulama srasnda oluan bir hata hakknda bilgilendirilmesi amacyla kullanlr. Kullanm u ekildedir: errordlg(Yanl deer girildi.,Hata Penceresi,modal) Hata diyalog penceresinin ekran grnts ekil 5.83te gsterilmitir.

ekil 5.83 Yukardaki kullanmda modal seeneinin kullanlmas seimliktir, yani kullanlmasa da olur. Ancak, bu seenek ile hata penceresine cevap verilmeden uygulamaya ait ilmelerin yaplmas engellenmi olmaktadr. modal seenei yerine non-modal kullanlarak bu zelliin iptal edilmesi salanlabilir. 5.14.2 Yardm Penceresi (Help Dialog) : Bu diyalog penceresi, kullanclarn uygulama srasnda eksik veya yanl bilgi girme ya da herhangi bir konuda bilgilendirilme amacyla kullanlr. Kullanm u ekildedir: helpdlg(Alanlar bo braklmamaldr. Aksi halde devam edilemez.,Yardm Penceresi,modal) Yardm diyalog penceresinin ekran grnts ekil 5.84de gsterilmitir.

123 / 209

ekil 5.84 5.14.3 Veri Giri Penceresi (Input Dialog) : Bu diyalog penceresi, kullanclardan bir veya birden fazla deerin ayn anda alnmas amacyla kullanlr. Kullanm u ekildedir: yazi_ifadeleri = { 'X Ekseni Baslangic Degeri', 'X Ekseni Bitis Degeri', ... 'Y Ekseni Baslangic Degeri', 'Y Ekseni Bitis Degeri' ,'X Ekseni Etiketi', 'Y Ekseni Etiketi' }; baslik = 'Eksen Snrlar'; satir_adedi = [1 1 1 1 2 2]; varsayilan_degerler = { '-inf', 'inf', '-inf', 'inf' , 'Zaman', 'Genlik'}; diyalog_donus_degeri = inputdlg (yazi_ifadeleri, baslik, satir_adedi, varsayilan_degerler) bu parametrelerden satir_adedi parametresi alacak diyalog penceresinde yer alan her bir text kutusunun sahip olaca toplam satr adedini gosterir. rnek kullanmda ekran grntsnde X ve Y eksenlerine ait etiket deer alanlarnn 2 satrdan olutuu grlmektedir. Bu parametre her bir text kutusu iin tanmalandndan matris eklinde bir yapya sahiptir. Dier bir parametre olan varsayilan_degerler diyalog penceresi ilk grntlendiin text kutularnn iinde olmas gereken balang deerlerini gsterir. baslik parametresi diyalog pencerensin caption deeri iin ve yazi_iafadeleri her bir text kutusu ile ilgili bilgileri ekranda gstermek iin kullanlmtr. yazi_ifadeleri ve varsayilan_degerler isimli parametrelerin hcre dizisi eklinde tanmlanamas gerektiine dikkat edilmelidir ( { ve } simgeleri hcre dizisi tanmlamalarnda kullanlr.). Yukarda verilen rnek kullanma ait veri giri diyalog penceresi iin ekran grnts ekil 5.85te gsterilmitir.

ekil 5.85

124 / 209

Bu diyalog penceresinden geri dn deeri ka tane bilgi giri kutusu varsa, bu uzunlukta dizi eklinde dner. rnek olarak y_ekseni_bitis_degeri nin elde etmek iin y_ekseni_bitis_degeri = diyalog_donus_degeri (4) eklinde kullanm sz konusudur. Ancak, kullanc bu diyalog kutusunu Kapat (X simgesi) ya da Cancel butonlarndan biri ile gnderirse bo bir hcre dizisi dner. . Eer byle bir durum kontrol edilecekse isempty fonksiyonu kullanlabilir. Bu fonksiyon bir deiken ierii bo ise true, dolu ise false retir. isempty(degisken_ismi) eklinde kullanma sahiptir. 5.14.4 Liste Grnm Penceresi (List Dialog) : Bu diyalog penceresi ile kullanclarn karsna gelen bir listeden bir veya birden fazla liste eleman semesi salanlabilir. Uygulamada genellikle dosya veya dizinlerin listelenmesi ve seilmesi amacyla kullanlr. rnek bir kullanm u ekildedir: dosyalar = dir; % aktif dizin yolu zer. yer alan dosyal. list. alma dosya_isimleri = {dosyalar.name}; % dosya_isimleri matrisine dosya isiml. atanmas [s,v] = listdlg('PromptString',Bir dosya seiniz : ',... % liste diyalog pencerensin grnt. 'SelectionMode','single',... 'ListString',dosya_isimleri) Dosyalar deikenine dir fonksiyonu vatas ile her bir eleman yap dizisi olan bir dosya listesi gelir. Her bir yap dizisinde name : her bir dosyann ismini tutmak iin, date : her bir dosyann geerli tarihini tutmak iin, bytes : her bir dosyann boyut bilgisini tutmak iin, isdir : her bir dosyann bir klasr olup olamd tutulur. Deer true ise bu e bir dizindir.

alanlar bulunmaktadr. rnein 5. enin tarih bilgisi renilmek istenirse dosyalar(5).date komut yaps kullanlmaldr. rnek kullanmda seim modu olarak single seenei kullanlmtr. Yani, liste elemanlarndan sadece bir tanesi seilebilir. Eer, oklu seim isteniliyorsa multiple seenei kullanlabilir. oklu seimde kullanc birden fazla eyi seebilmek iin relrin seimi srasnda klavyenin Ctrl tuunu basl tutmaldr. Liste grnm diyalog penceresinden geri dn deeri olarak sadece seilen liste elemanlarnn numara bilgisi stun vektor seklinde (burada rnek kullanm iin) s deikenine atanr. Bu atama srasnda v deikenine daima 1 deeri atanr. rnein 15, 25 ve 36 numaral liste releri seildii dnlrse s deikeninin ierii [ 15 25 36 ] v deikeninin ierii 1

125 / 209

olacaktr. Eer kullanc bu diyalog penceresini Cancel veya Kapat dmelerini kullanarak kapatrsa geri dn deerleri s deikeninin ierii [] (yani bo matris) v deikeninin ierii 0

(X simgesi)

eklinde olacaktr. S deikeninin bo olup olmama durumu isempty fonksiyonu ile kontrol edilebilir. rnek olarak isempty(s) komutu sonucu true (veya 1 deerinde) ise s deikeninin ierii bo demektir. Liste grnm diyalog penceresine ait single ve multiple modlar iin ekran grntleri ekil 5.86da gsterilmitir.

ekil 5.86 5.14.5 Yazdrma Penceresi (Print Dialog) : Bu diyalog penceresi, aktif olan figure alannn veya bir grafik iziminin yazcdan direk kt alnmasn salar. Sayfa konumu diyalog penceresinden fark dkman yazdrmadan nce herhangi bir ayar yaplmamasdr. Ayrca, sayfa konumu diyalog penceresinin nceden yapm olduu ayarlar kullanarak kt alnmas salar. Kullanm u ekildedir: printdlg Yazdrma diyalog penceresinin ekran grnts ekil 5.87de gsterilmitir.

126 / 209

ekil 5.87 ekil 5.87deki ekranda kullanc Tamam butonunu tkladnda yazdrlmak zere dkman yazcya gnderilir ve yazdrlr. 5.14.6 Sorgu Penceresi (Question Dialog) : Bu diyalog penceresi ile uygulama srasnda kullanlacak verilerin eitli seenekler ierisinden birinin seilerek kullanclardan alnmas salanr. Kullanm u ekildedir: sorgu_sonucu = questdlg (Kaynak kodunun retilecei programlam dilini seiniz?, Kaynak Kodu Seimi Penceresi C, Pascal, Fortran, Fortran) Yukarda gsterilen kullanmda son parametre varsaylan olarak seili olacak seenei gsterir. Son parametre bu parametreden bir nceki parametreden biri olmal veya eklinde bo braklmaldr. Eer kullanc diyalog penceresi herhangi bir butona basmadan ve X butonu kullanarak kapatlrsa geri dn deeri bo bir dizi eklindedir, yani eklinde olacaktr. Eer byle bir durum kontrol edilecekse isem pty fonksiyonu kullanlabilir. Bu fonksiyon bir deiken ierii bo ise true, dolu ise false retir. isempty(degisken_ismi) eklinde kullanma sahiptir. Sorgu diyalog penceresinin ekran grnts ekil 5.88de gsterilmitir.

127 / 209

ekil 5.88 Sorgu penceresinden dnen deer basite aada gsterilen switch case yaps ile kontrol edilebilir. switch sorgu_sonucu case C case Pascal case Fortran end 5.14.7 Renk Seim Penceresi (Color Dialog) : Bu diyalog penceresi, kullanclarn uygulama srasnda herhangi bir rengi semelerine imkn vermek amacyla kullanlr. Kullanm u ekildedir: donus_rengi = uisetcolor Kullanc eer Cancel butonu ile bu diyalog penceresi kapatrsa, yani bu diyalog penceresinden herhangi bir renk seilmez ise donus_rengi deikenine 0 (sfr) deeri atanr. rnein kullanc krmz rengi seerse donus_rengi deikeninin ierii [1 0 0] kelinde olacaktr. Burada 3 boyutlu stun vektr yapl bir matris deikeni eklinde deerler dner. Bu matrisin srasyla elemanlar krmz (red, R), yeil (green, Y) ve mavi (blue, B) renklerinin deerlerini verir. Ancak, bu RGB deerlerinin her biri 0-255 yerine 0-1 aras deerler alr. Uygualamda 1 ile 255 aras oranlama eklinde gerek desimal formatta RGB deeri elde edilebilir. Renk seim diyalog penceresinin ekran grnts ekil 5.89da gsterilmitir.

ekil 5.89 5.14.8 Font Seim Penceresi (Font Dialog) :

128 / 209

Bu diyalog penceresi, kullanclarn uygulama srasnda herhangi bir fontu (yaz tipini) semelerine imkn vermek amacyla kullanlr. Kullanm u ekildedir: secilen _font_bilgisi = uisetfont Kullanc eer diyalog penceresi ptal butonunu kullanarak kapatmsa geri dn deeri 0 (sfr) olur. Eer kullanc bir fontu seip Tamam butonuna tklayarak font seim penceresini kapatm ise secilen_font_bilgisi deikenine Fontname : font ismi string bilgisi (rnein Arial) FontUnits : font birimi string bilgisi (rnein points) FontSize : font boyutu saysal bilgisi (rnein 10) FontWeight : font arl string bilgisi (normal veya bold olabilir.) FontAngle : font as string bilgisi (normal veya italic olabilir.)

alanlar olan bir yap deikeni dner. rnein seilen fontun boyutunu kullanmak iin u ekilde bir komut yaps kullanlmaldr: font_boyutu = secilen_font_bilgisi. FontSize % FontSize ismindeki byk ve kk % harflere dikkat edilmelidir. Font seim diyalog penceresinin seilmi bir font ile birlikte ekran grnts ekil 5.90da gsterilmitir.

ekil 5.90 5.14.9 Uyar Penceresi (Warn Dialog) : Bu diyalog penceresi, kullanclarn uygulama srasnda eksik veya yanl bilgi girme ya da herhangi bir konuda bilgilendirilme amacyla kullanlr. Kullanm u ekildedir:

129 / 209

warndlg(Sistem kaynaklar kritik seviyededir., Tehlike, modal) Uyar diyalog penceresinin ekran grnts ekil 5.91de gsterilmitir.

ekil 5.91 Modal parametresi ile kullancnn bu pencereye cevap vermeden ilemlerine devam etmesi engellenmi olmaktadr. Bu seenek belirtilmez veya non-modal seenei kullanlrsa modal zellii devre d braklm olur. 5.14.10 Ykleme ubuu (waitbar) : Ykleme ubuunu programc bir uygulamann banda kullanarak kullancya uygulamann yklenmekte olduunu ve ne kadarnn yklendii grsel bir ekilde sunabilir. Kullanm u ekildedir: yukleme_cubugu = waitbar ( 0 , Uygulama ykleniyor. Ltfen, bekleyiniz ) ; for i=1:1:100 % bir stteki satr ile waitbar nesnesi oluturuluyor. % uygulamann yklenmesi srasnda yer alan ilemler waitbar ( i / 100 , yukleme_cubugu ) ; % oluturulmu waitbar nesnesinin gnc. end close (yukleme_cubugu) % olutur. olan waitbar nesnesin. silinmesi Ykleme ubuunun ekran grnts ekil 5.92de gsterilmitir.

ekil 5.92 5.14.11 Klasr Yolu Penceresi (UIGetDir Dialog) : Bu diyalog penceresi, kullanclarn uygulama srasnda bir dizin yolunu semeleri amacyla kullanlr. Kullanm ekilleri eitlidir. Bunlar aada gsterilmitir. klasor_ismi = uigetdir klasor_ismi = uigetdir (baslangic_dizin_yolu) klasor_ismi = uigetdir (baslangic_dizin_yolu,goruntulenecek_mesaj_stringi)

130 / 209

Kullanmlarda baslangic_dizin_yolu parameresi diyalog penceresi aldnda ilk grntlenecek klasrn seilmesini ve son parametre de bu pencere ekstra grntlenmesi istenilen mesajn kmasn salar. rnek olarak aadaki kullanm ile bir diyalog kutusu ekrana gsterilsin. klasor_ismi = uigetdir (C:\Windows , Sisteminizde Windowsun kurulu olduu dizini belirtiniz.) rnek kullanma ait klasr yolu diyalog penceresinin ekran grnts ekil 5.93te gsterilmitir.

ekil 5.93 Bu diyalog kutusu iptal dmesi tklanarak kapatlrsa 0 says (false cevab) retir. Eer tamam butonu tklanrsa seilmi olan klasre ait tam yolu (directory pathi) geri dn deeri olarak gnderilir. 5.14.12 Dosya Ama Penceresi (UIGetFile Dialog) : Bu diyalog penceresi ile kullancdan bilgisayarda yer alan ve belirlenmi trde dosyalarn seilerek almas ve seilen dosyaya ait path tanmnn GUI uygulamasna aktarlmas amacyla kullanlr. Kullanm u ekildedir: [dosya_ismi, dosya_yolu] = uigetfile ( veriler.mat , Mat Dosyasn Ykleme ) Bu komut yapsnda ekrana gelecek dosya ama diyalog penceresinin bal Mat Dosyasn Ykleme ve varsaylan dosya uzants olarak .mat olan dosyalarn seilmesi salanlacaktr. Bu rnee ilikin ekran grntsnde de grld zere kullanc isterse *.* formatl olmak zere bu diyalog penceresinde dosya trn Tm Dosyalar olarak seebilir. rnek olarak verilen komut yapsnn iletilmesi sonucu dosya ama diyalog penceresinin ekran grnts ekil 5.94teki gibi olacaktr.

131 / 209

ekil 5.94 Kullanc rnek olarak verilen komutun sonucunda alan diyalog penceresini ptal butonuan basarak ya da herhangi bir dosya semeden kapatrsa dosya_ismi ve dosya_yolu deikenlerine 0 (sfr) (yani mantksal false) deeri atanr. Ancak, kullanc bu pencere yardmyla bir dosyay seer ve A butonunu tklayarak pencereyi kapatrsa dosya_ismi deikenine seilen dosyann ismi ve dosya_yolu deikenine bu dosyaya ait path tanm (dizin yolu) string tipte olarak atanacaktr. rnek olarak ekran grntsnde verilen on_off_by_kenan_mat.mat dosyas seilmi olduu dnlrse dosya_ismi deikeninin ierii on_off_by_kenan_mat.mat string bilgisi dosya_yolu deikeninin ierii C:\MATLAB\work\ string bilgisi

olacaktr. Bu rnekte dosya ama ve Workspacea deerlerin yklenmesi ile desteklenirse aadaki deyimler kullanlabilir. [dosya_ismi, dosya_yolu] = uigetfile ( veriler.mat , Mat Dosyasn Ykleme ) ; if isequal ( dosya_ismi , 0) load ( [ dosya_yolu dosya_adi ] ); end Ayrca, kullancnn semesi istenilen dosya trleri ok eitli ise (rnein resim dosyalar gibi) bu durumda birden fazla dosya format olacak ekilde dosya ama diyalog penceresi iin filtre formatlar tanmlanabilir. oklu dosya format tanmlamakla ilgili aadaki rnek incelenebilir. Ayrca, bu rnekte oklu dosya seimi ve ynetilmesi de gsterilmitir. [dosya_ismi, dosya_yolu, secilen_filtre_no] = uigetfile( ... {'*.m;*.fig;*.mat;*.mdl', 'Tm MATLAB Dosyalar (*.m, *.fig, *.mat, *.mdl)'; '*.m', 'M Dosyalar (*.m)'; ... '*.fig','Figure Dosyalar (*.fig)'; ... '*.mat','MAT Dosyalar (*.mat)'; ... '*.mdl','Models (*.mdl)'; ... '*.*', 'Tm Dosyalar (*.*)'}, ... 'Dosya Seme Penceresi', ... 132 / 209

'MultiSelect', 'on') Yukarda verilen komut satrnda secilen_filtre_no geri dn parametre deikenine kullanc dosya ama diyalog penceresinin Dosya tr listesinden hangi filtreyi semi ise bu liste esinin deeri numaras atanr. Seilen e listenin ilk eleman ise bu deikenin ierii 1 olacaktr. Yukardaki komut satrlarnn iletilmesi ile ekil 5.95te yer alan ekran grnts elde edilir.

ekil 5.95 Bir dosya ama penceresi varsaylan olarak tek dosya semek zere alr. Birden fazla dosyann seildii durumlar iin ise uigetfile komutunun son iki parametresi MultiSelect,on string bilgileri olmaldr. Bu zellik aktif edildii takdirde kullanc klavyenin Ctrl tuu basl halde birden fazla dosyay seebilir. rnein ekran grntsnde yer alan Bode.fig ve KokYer.fig dosyalr seilmi ve A butonuna baslm olur. Bu durumda geri dn parametrelerin ierikleri yle olacaktr: dosya_ismi deikeninin ierii [ Bode.fig KokYer.fig ] dosya_yolu deikeninin ierii C:\MATLAB\work\

Burada rnein 2. dosya ismi u komut satryla elde edilir: secilen_ikinci_dosya_ismi = dosya_ismi(2) Eer herhangi bir dosya seilmezse her iki geri dn parametresine 0 (sfr) deeri atanr. 5.14.13 Dosya Kaydetme Penceresi (UIPutFile Dialog) : Bu diyalog penceresi ile kullancdan bilgisayara kaydedilecek bir dosyann yeri ve isminin belirlenmesi amacyla kullanlr. Dosya a iletiim kutusu ile ayn zelliklere sahiptir. ( Dosya ama iletiim kutusu hakknda daha ayrntl bilgi iin bir nceki konu balnda baklabilir.) Ancak, bu diyalog penceresi ile dosya ama diyalog penceresi arasndaki fark 133 / 209

uigetfile komutu yerine uiputfile komutunun kullanlmas ve dosya kaydetme kavramlar ierisinde multiselect (yani oklu seim) gibi bir seenein olmamasdr. Kullanm u ekildedir: [dosya_ismi, dosya_yolu] = uiputfile ( *.mat , Mat Dosyasn Kaydetme ) Bu komut yapsnda ekrana gelecek dosya ama diyalog penceresinin bal Mat Dosyasn Ykleme ve varsaylan dosya uzants olarak .mat olacak ekilde dosyann kaydedilmesi salanr. stenirse *.mat parametresi bo braklabilir, yani bu parametre eklinde tanmlanabilir. Varsaylan olarak buraya girilen bir dosya ismi dosya kaydetme penceresi aldnda grlecektir. rnein aadaki komut altrlm olsun. Bu komuta ait ekran grnts de aada sunulmutur. [dosya_ismi, dosya_yolu] = uiputfile ( deneme.mat , Mat Dosyasn Kaydetme ) rnek olarak verilen komut yapsnn iletilmesi sonucu dosya ama diyalog penceresinin ekran grnts ekil 5.96daki gibi olacaktr.

ekil 5.96 Yukardaki pencerede deneme ve MAT-Files filtresi ile kaydet butonu tklandnda geri dn parametreleri dosya_ismi deikeni iinde deneme.mat string bilgisi, dosya_yolu deikeni iinde C:\MATLAB\work\ string bilgisi

eklinde olacaktr. Aadaki rnek birden fazla dosya formatnn nasl tanmland, yani filtrelemenin nasl yapld konusunda bilgi vermektedir. [dosya_ismi, dosya_yolu, secilen_filtre_no] = uiputfile( ... {'*.m;*.fig;*.mat;*.mdl', 'Tm MATLAB Dosyalar (*.m, *.fig, *.mat, *.mdl)'; '*.m', 'M Dosyalar (*.m)'; ... '*.fig','Figure Dosyalar (*.fig)'; ... '*.mat','MAT Dosyalar (*.mat)'; ... 134 / 209

'*.mdl','Model Dosyalar (*.mdl)'; ... '*.*', 'Tm Dosyalar (*.*)'}, ... 'Dosya Kaydetme Penceresi') Yukarda verilen komutun altrlmas sonucu ekil 5.97deki ekran grnts gelecektir.

ekil 5.97 ekil 5.97deki ekranda CS113.fig dosya ismi verilmi ve filtre tipi olarak listenin 3. srasnda yer alan Figure Dosyalar iaretlenmitir. Kullanc Kaydet butonunu tkladnda geri dn parametreleri yle olacaktr: dosya_ismi deikeni iinde CS113.fig string bilgisi, dosya_yolu deikeni iinde C:\MATLAB\work\ string bilgisi secilen_filtre_no deikeni iinde 3 saysal bilgisi

Burada seilen filtre trlerinden 3. sradaki filtre seildii iin secilen_filtre_no deikenine 3 saysal deeri atanmtr. 5.14.14 Sayfa Yaps Penceresi (Page Dialog) : Bu diyalog penceresi, yazcdan kt alnacak dkman ile ilgili ayarlarn yaplmas n ve ayrca aktif olan figure alannn veya bir grafik iziminin yazcdan kt alnmasn salar. Kullanm u ekildedir: pagedlg Sayfa yaps diyalog penceresinin ekran grnts ekil 5.98de gsterilmitir.

135 / 209

ekil 5.98 Kullanc bu diyalog penceresinde sayfa ile ilgili gerekli ayarlamalar yaptktan sonra Print butonunu kullanarak aktif figure alan veya grafik iziminin yazcdan kt alabilir. 5.14.15 Mesaj Kutusu (MessageBox Dialog) : Bu diyalog penceresi kullanlarak kullanclara herhangi bir mesaj istenilen bir resim ya da ikon dosyas ile birlikte gsterilebilir. ok eitli kullanmlara sahip bir diyalog penceresi olup, aada bu kullanm eitleri gsterilmitir. msgbox (mesaj) % ekil ...ya baknz. msgbox (mesaj, baslik) % ekil ...ya baknz. msgbox (mesaj, baslik, ikon) % ekil ...ya baknz. msgbox (mesaj, baslik, custom, resim_data_degiskeni, resim_colormap_degiskeni) msgbox (mesaj, .., olusturulma_modu) Bu kullanmlardaki parametrelerin tipi ve grevleri u ekildedir: mesaj : Mesaj kutusunda gzkecek string bilgi baslik : Mesaj kutusunun pencere balnda gzkmesi istenilen string bilgi ikon : 'none', 'error', 'help', 'warn' veya 'custom' deerlerinden biri olabilir. Varsaylan deeri o none olup, Matlabin kendi iinde kulland hazr standart ikonlkarn gsterilmesi o bu parametre ile saplanr. Bu paramerenin kullanm ile ilgili rnek ekran o grntlerine aadan baklabilir. resim_data_degiskeni : import edilen bir resim dosyasnn veri (data) dizis. tutan dei. resim_colormap_degiskeni : import edilen bir resim dosyasnn colormap dizis. tutan dei. olusturulma_modu : Bu parametre msgbox komutuna gnderilecek son 136 / 209

parametre bilgisi olmaldr. modal veya non-modal string bilgilerinden biri olabilir. Varsaylan deer nonmodal seeneidir. Eer modal seilirse kullanc mesaj kutusuna cevap vermeden arka plandaki uygulamaya dnemz, yani arkapalnn kilitlenmesi salanr. nonmodal seenei ise bu durumun tam tersidir. msgbox (mesaj, baslik, custom, resim_data_degiskeni, resim_colormap_degiskeni) Yukardaki kullnm ekli iin iin ncelikle bir resmin imread komutu ile Matlabin Workspace alanna yklenmesi ve bu fonksiyonun geri dn parametrelerinin daha sonra kullanlmas gereklidir. rnek kullanm iin aadaki komut satrlar incelenebilir. [resim_data_degiskeni, resim_colormap_degiskeni] = imread (C:\Windows\winnt256.bmp); mesaj = lem tamamland.; baslik = Durum Penceresi ; msgbox (mesaj, baslik, custom, resim_data_degiskeni, resim_colormap_degiskeni) Yukarda verilen komut satraltrldnda ekil 5.99daki gibi bir ekran grnts oluacaktr.

ekil 5.99 eitli mesaj kutularna ait ekran grntleri ekil 5.100, ekil 5.101, ekil 5.102, ekil 5.103 ve ekil 5.104te verilmitir.

ekil 5.100

ekil 5.101

137 / 209

ekil 5.102

ekil 5.103

ekil 5.104 5.14.16 Sayfa nizleme Penceresi (PrintPreview Dialog) : Bu diyalog penceresi ile kullanclar yazcya aktif figure alann veya aktif axes (grafik izim nesnesi) ieriini gndermeden nce sayfann nizlemesini grebilirler. Ayrca, sayfa ile ilgili ayarlamalar yapabilir ve sayfann yazcdan ktsn alabilir. Kullanm u ekildedir: printpreview Sayfa nizleme diyalog penceresinin rnek bir uygulama iin ekran grnts ekil 5.105te gsterilmitir.

138 / 209

ekil 5.105 Kullanc bu ekranda Print butonu ile sayfay yazdrabilir. Header butonunu kullanarak isterse kullanc sayfaya istedii bir fontta balk ekleyebilir. Page Setup butonu kullanlarak gelen pencereden (bu pencere ile ilgili bilgi almak iin nceki konu balklarndan Sayfa Yaps Penceresi blm kullanlarak detayl bilgiler alnabilir.) sayfa ile ilgili ayarlamalar yaplabilir. Kullanc bu sayfay Close butonunu kullanarak kapatabilir.

139 / 209

BLM-VI MATLABTE KONTROL ALANI LE LGL TASARLANAN GUI UYGULAMALARI


Bu blmde Matlab kullanlarak hazrlanm olan ve Otomatik Kontrol derslerinde kullanlabilme amacyla hazrlanan ok eitli GUI uygulamalarnn kullanm, tasatm ve progranmas hakknda bilgi verilecektir. Burada anlatlan GUI uygulamalar tez kitabnn arka kabann i yzne eklenmitir. 6.1 Uygulama-1in Tantlmas 6.1.1 Uygulamann Ad : Kk-Yer Erisinin izimi ve Hesaplamalarnn Yaplmas 6.1.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerine uygulanan kazan deerine bal olarak sistemin kararlnn nasl olaca hakknda bilgi edinilmesini salayan yntemlerden biri olan KkYer erisi ile ilgili bilinmeyen parametrelerin kendi ierisinde yer alan formlasyon kullanlarak hesaplanmas ve bu erinin izilerek kullancya gsterilmesini salamaktr. Ayrca, Kk-Yer erisi ile ilgili hesaplamalarn programlanarak nasl elde edilebilecei konusunda kullanclar bilgilendirmek amalanmtr. 6.1.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.1de grlmektedir.

140 / 209

ekil 6.1 Uygulama 1 Arayz 6.1.4 Uygulamann Kullanl Uygulamann kullnlabilmesi iin ncelikle kullancnn ileri yol ve geri besleme bloklarna ait parametreelri girmesi gerekmektedir. Bunun iin uygulama arayznde yer alan leri Yol Sistem Parametreleri ile Geri Yol Sistem Parametreleri ksmndan bloa ait pay ve payda katsaylar girilmelidir. Kullanc isterse pay ve payda katsaylar yerine her bir bloun sfr ve kutup deerleri girerek de ilem yapabilir. Bunun iin Deerler sfr ve kutup eklinde olsun. Seeneinin iaretlenmesi gerekmektedir. Bu durumda kullanc ileri ve geri yol sitsem parametrelerinin pay ve payda ksmlarna kullanlacak sfr ve kutup deerlerini girebilir. Bunun yannda Geri Besleme Tr blm kullanlarak kullanc setii sistemin geri besleme tipini belirleyebilir. sterse Geri Besleme Dikkate Alnsn. Seenei iaretlemeyerek sistemin ak evrim transfer fonsktiyonu ile ilgili ilem yapabilir. Programda rnek olarak varsaylan deerler ileri sistem blou iin pay [1] ve payda [1 6 5 0] ile geri isistem iin pay [ 1 ] ve payda [ 1 ] olarak seilmitir. Sistemde geri blok ileri bloa negatif geri besleme ile bal olarak belirlenmitir. Programn anlatlmasnda rnek olmas amacyla bu deerler kullanlacaktr. Uygulama temel olarak 4 farkl ileve sahiptir. Bu ilevlerin programn kullanlarak nasl gerekletirilecei ile ilgili ayrntl bilgiler aada verilmitir. 6.1.4.1 Kk-Yer Erisi le lgili Hesaplamalarn Yaplmas ve Erinin Yorumlanmas Bu ilem iin kullanc Sistemin Yandaki Deerlerini Hesapla butonuna basmaldr. Bu ilem gerekletirildiinde hesaplanan deerler rnek sistem iin ekil 6.2de gsterilmitir.

141 / 209

ekil 6.2 Uygulama 1 Kullanm Ekran 1 Program kendi iinde sistemin hangi K aral iin kakrl olup olmad hakknda yorum da yapabilmektedir. rnek olarak az nce hesaplanan deerlere gre ele alnan sistem K>30 deerleri iin KARARSIZ ve K<30 deeri iin KARARLI ve son olarak K=30 deeri iin KRTK KARARLIdr. 6.1.4.2 Kk-Yer Erisinin izdirilmesi Bu ilem iin Sistemin Kk-Yer Erisini iz butonuna baslmaldr. Bu ilem yapldnda ikinci bir pencere alacak ve bu pencerede Kk-Yer erisi izilecektir. rnek kabul edilen sistem Kk-Yer erisi izimi ekil 6.3te gsterilmitir.

142 / 209

ekil 6.3 Uygulama 1 Kullanm Ekran 2 6.1.4.3 Kk-Yer Erisinde Seilen Bir K Deerine Ait Kklerin Kullancya Gsterilmesi Bu ilemi gerekletirmek iin RL Erisinden K Deerini Se ve O Noktaki Kkleri Bul butonu kullnlmladr. Bu ilem yapldnda kullanc ekil 6.4deki gibi fare ile seebilecei yeri gsteren biri yatay, dieri dikey iki izgi hatt belirmektedir. Kullanc istedii bir noktay

143 / 209

ekil 6.4 Uygulama 1 Kullanm Ekran 3 seerek bu nokta farenin sol tuuna bastnda o noktaya ait K deerini ve bu noktaki sistemin kkleri programda gsterilir. Bu durum ekil 6.5te de grlmektedir.

144 / 209

ekil 6.5 Uygulama 1 Kullanm Ekran 4 6.1.4.4 Kk-Yer Erisi in Verilen Bir K Deerine Ait Kklerin Bulunmas Kullanc Aada Verilen K Deeri iin Kkleri Bul butonunu kullanarak K Deeri yazl alana girilen bir K katsaysna karlk sistemin kklerini hemen bu alann sanda yer alan Kkler ksmndan renebilir. Bu durum ekil 6.6da gsterilmitir.

145 / 209

ekil 6.6 Uygulama 1 Kullanm Ekran 5 6.1.5 Uygulamann Algoritmas Bu uygulamada ak evrim sistem deerlerinin hesaplanmas ile ilgili algoritma Algoritma 6.1.de gsterilmitir. Ayrca, bir sistemin kk-yer erisi izilirken dikkate alnan kapal evrim yapsnn kullanrak bulunmas gerekli deerlerin bulunmas iin de Algritma 6.2.ye baklabilir.

146 / 209

Algoritma 6.1 Uygulama 1 Algoritmas 1

147 / 209

Algoritma 6.2 Uygulama16 Algoritmas 2

148 / 209

6.2 Uygulama-2nin Tantlmas 6.2.1 Uygulamann Ad : Bode Erisinin izimi ve Hesaplamalarnn Yaplmas 6.2.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerine uygulanan frekans deerine bal olarak sistemin kararlnn nasl olaca hakknda bilgi edinilmesini salayan yntemlerden biri olan Bode erisi ile ilgili bilinmeyen parametrelerin kendi ierisinde yer alan formlasyon kullanlarak hesaplanmas ve bu erinin izilerek kullancya gsterilmesini salamaktr. Ayrca, Bode erisi ile ilgili hesaplamalarn programlanarak nasl elde edilebilecei konusunda kullanclar bilgilendirmek amalanmtr. 6.2.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.1de grlmektedir.

ekil 6.7 Uygulama 2 Arayz 6.2.4 Uygulamann Kullanl

149 / 209

Uygulamann kullnlabilmesi iin ncelikle kullancnn iBode erisi analizi yapaca sisteme ait ak evrim transfer fonksiyonunu girmelidir. Bunun iin uygulamann Sistem Ak evrim Parametreleri blm kullanlarak tranfer fonksiyonunun pay ve pay katsaylar girilebilir. stenirse Deerler Kutup ve Sfr eklinde Olsun seenei iaretlenerek pay ve payda katsaylar yerine sitemin sfr ve kutup deerleri girilebilir. Kullanc izdirilecek Bode erisinin izilecei frekans logaritmak aralna ait snrlar ve hangi artm miktaryla izileceini belirleyebilir. Bu ilem iin kullanc Bode Erisi Beliritilen Logaritma Aralnda izilsin seeneini semelidir. Eer bu seenei semezse eri varsaylan aralk deerleriyle izdirilecektir. Aralk deerlerini girmek iin Bode Erisi izimi Parametreleri blmnden araln ilk ve son frekans deeri LOG10 taban baz alnarak tamsay deerleri eklinde girilmelidir. Ayrca, bu aralkta ka tane deer olaca da Frekans Adedi kutucuuna yazlmaldr. Bu deer arttka eri daha hassa ve doru olarak izilecektir. Programda rnek olarak varsaylan deerler transfer fonskyonu iin pay [1] ve payda [0.04 0.08 1] olarak seilmitir. Programn anlatlmasnda rnek olmas amacyla bu deerler kullanlacaktr. Uygulama temel olarak 2 farkl ileve sahiptir. Bu ilevlerin programn kullanlarak nasl gerekletirilecei ile ilgili ayrntl bilgiler aada verilmitir. 6.2.4.1 Bode Erisi izi ile lgili Deerlerin Bulunmas ve Erinin Yorumlanmas Bu ilem iin kullanc Sistemin u deerlerini Bul ve Yorumla butonuna kullanmaldr. Bu ilem gerekletirildiinde hesaplanan deerler rnek sistem iin ekil 6.8de gsterilmitir.

ekil 6.8 Uygulama 2 Kullanm Ekran 1

150 / 209

Ayrca, programda burada antlan ilevin gereklertirilmesi ile bulunan FAZ PAYI ve KAZAN PAYI deerleri yorumlanarak sistemin KARARLI ya da KARARSIZ olup olmad yorumunu program yapmaktadr. 6.2.4.2 Bode Erisinin izdirilmesi Bu ilem iin Sistemin Bode Erisini iz butonuna baslmaldr. Daha sonra ikinci ayr bir pencere alacak ve bu pencerede nceden beliritilen sistemin Bode erisi izdirilecektir. Bu pencere ekil 6.9da gsterilmitir.

ekil 6.9 Uygulama 2 Kullanm Ekran 2 6.2.5 Uygulamann Algoritmas Bu uygulamada Bode erisi kullanlarak hesaplanan faz pay, kazan pay ve sistemin dnm noktas gibi deerlerin hesaplanmas ile ilgili algoritma Algoritma 6.3te gsterilmitir.

151 / 209

Algoritma 6.3 Uygulama 2 Algoritmas 6.3 Uygulama-3n Tantlmas 6.3.1 Uygulamann Ad : Ziegler-Nichols Yntemi Uygulamas

152 / 209

6.3.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerini kontrol etmek zere tasarlanacak oransal, oransal ve integral veya PID denetleyicilere ait Kp, Ki, ve Kd gibi kontrolr katsaylarnn bulunmas amacyla Ziegler-Niichols ynteminin kullanlarak hesaplanmas ve bu ekilde kullanclarn zaman harcamalarn engellemektir. Ayrca, yntemin nasl programlanaca konusunda da kullnclara bilgi vermek amalanmtr. 6.3.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.10da grlmektedir.

ekil 6.10 Uygulama 3 Arayz 153 / 209

6.3.4 Uygulamann Kullanl Kullanc ncelikle Ziegeler Nichols yntemini uygulayaca sistemi Sistem Tipinin Seilmesi blmnden belirlenemelidir. Burada eer sistem 2. dereceden ise 2. Derece Sistem veya zaman sabiti tipinde ise Zaman Sabiti Tipinde seenei seilmelidir. Bu seenekler seildiinde programda kullanlacak sistem ile Ziegler-Nichols ynteminin uygulanmas srasnda kullanlacak katsay ve katsaylarn nasl hesaplanaca konusunda fikir vermesi bakmndan program arayz dinamik olarak ekillerle desteklenmi ve bu ekilde kullnclar bilgilendirilmektedir. Sistem tr seildikten sonra Ziegler-Nichols ynteminde kullanlacak metod trnn seilmesi gerekmektedir. lgili metod seildiinde hemen aasnda yer alan ekilde bu yntemin hangi formlasyonu kulland dinamik olarak kullncya sunulmatadr. Daha sonra kullancya setii sistem ile ilgili ve Ziegler-Nichols ynteminin kullanaca katsaylar girmelidir. Bunun iin programn Sistem T.F. Deerleri blm kullanlmaldr. En son olarak kullanc tasarlanacak denetleyici tipini belirlemelidir. Kontrolr tipi olarak oransal, oransal ve integral veya PID seeneklerin birini programn Kontrolr Tipinin Seilmesi blmnde yer alan listeden semelidir. Daha sonra Kontrolr iin Gerekli Katsaylar Hesapla butonu kullanlarak Ziegler-Nichols yntemine gre seilen denetleyici tr iin gereki, katsaylar hesaplanmaktadr. ekil 6.10daki arayzde verilen deerler kullanlarak PID bir kontrolr tasarm iin hesaplanan deerler rnek olmas amacyla ekil 6.11de gsterilmitir.

154 / 209

ekil 6.11 Uygulama 3 Kullanm Ekran 6.3.5 Uygulamann Algoritmas Bu uygulamada Ziegler-Nichols yntemi kullanlarak gerekli kontrolr katsaylarnn nasl hesaplanmadn gsteren algoritma iin Algoritma 6.4e baklabilir.

155 / 209

Algoritma 6.4 Uygulama 3 Algoritmas

156 / 209

6.4 Uygulama-4n Tantlmas 6.4.1 Uygulamann Ad : Routh Kriteri Uygulamas 6.4.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerinin mutlak kararll hakknda bilgi vermekte kullanlan yntemlerden biri olan Routh krtiterinin kullanlarak kullanclarn ekstra ilem yapmadan ve zaman harcamadan girilen bir sistemin kararl hakknda bilgi sahibi olmalarn ve girilen sistme ait Routh tablosunun renilmesi salanmak istenmitir. Ayrca, yntemin nasl programlanaca konusunda da kullanclara bilgi vermek amalanmtr. 6.4.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.12de grlmektedir.

ekil 6.12 Uygulama 4 Arayz 6.4.4 Uygulamann Kullanl Uygulamay kullanabilmek iin ncelikle kullnclarn Routh kriteri uygulanacak sistemin karakteristik denkleminea ait katsaylarn programa girilmesi gereklidir. Burada dikkat edilmesi gereken yaplacak ileme gre katsaylarn programa girilmesinin farkl yazma sahip olduudur. rnein kullnclar uygulama ile kararll yorumlamak isterlerse [ 1 4 5 6] formatnda karakteristik denkleme ait katsaylar programa girebilirler. Ancak, programn kullanlmasndaki ama Routh kriteri ile kritik bir K deerinin bulunmas ise bu takdirde [1 2 1 4 2 K] , [1 2 1 4 2 K+2], [1 2 1 4 2 K-5], [1 2 1 4 2 5+K] veya [1 2 1 4 2 8*K] gibi rnek yazmlardan birini kullanmaldrlar. Program temel olarak 2 farkl ilevi yerine getirmektedir. Bu ilevlerin program kullanlarak nasl yerine getirilecei ile ilgili gerekli bilgiler aada verilmitir. 157 / 209

6.4.4.1 Sistemin Mutlak Kararllnn Yorumlanmas Bu ilem iin kullanclar ncelikle programn Routh kriterini uygularken programn kullanaca algoritmalardan birini programn Sistem Kararlln Yorumlama ksmnda yer alan Algoritma Seimi ksm kullanlarak alan listeden semeleri gerekmektedir. Bu programda iki farkl algoritma kullanlmtr. Dk mertebeli sistemler (5. ve 6. mertebeye kadar) iin Algoritma By Kenan seenei kullanlabilirken yksek mertebeler ve dk mertebeler iin (10. mertebeye kadar) Algoritma By Hakan seenei kullanlabilir. Daha sonra kullanclar programda yer alan Sistem Kararllnk Yorumla butonunu kullanarak girilen sistemin Routh tablosunu Rout Tablosu blmnden ve bu tablo ile ilgili yorum iin ise programn Yorum blmnden gerekli bilgileri renebilirler. rnek verilen sistem iin sistem kararll ile ilgili bilgi edinildiinde ekil 6.13te programn sahip olduu ekran grnts gsterilmitir.

ekil 6.13 Uygulama 4 Kullanm Ekran 1 rnek sistem iin Routh tablosunda da grld zere tablonun ilk stununda iaret deiimi olduu iin bu sistem KARARSIZ olarak yorumlanmtr. 6.4.4.2 Karakteristik Denklemde Yer Alan K Deeri iin Araln Tespit Edilmesi Bu ilem iin kullanclarn sistemin kullanaca K deerini de ieren katsaylar programa girmi olmas gerekir. Bu durum ile ilgili ayrntl bilgiye 6.4.4 konu balndan ulalabilir. Kritik K deerinin bulunmas iin kullanclar programda Karakteristik Denkleme Gre K Araln Bul butonunu kullanmaldrlar. rnek olarak [1 2 1 4 K+5] katsaylarn ieren bir karakteristik denklem iin bulunan K aralnn hesapland program ekran grnt ekil 6.14te gsterilmitir.

158 / 209

ekil 6.14 Uygulama 4 Kullanm Ekran 2 Programda rnek girilen karakteristik denklem katsaylar iin K<-7 ve K>0 kriterleri bulunmutur. Ayrca, program arayznde hesaplanan kritik K deeri -7 olarak gsterilmektedir. 6.4.5 Uygulamann Algoritmas Bu uygulamada kullnlan algoritmalardan Algoritma By Kenan bu projeyi hazrlayan kii tarafndan tasarlanmtr. Dier seenek olan Algoritma By Hakan seeneine ait algoritma Hakan AYDIN tarafndan tasarlanm olup sadece Algoritma By Kenan ynteminin nasl uyguland ile ilgili algoritma, Algoritma 6.5ten renilebilir.

159 / 209

Algoritma 6.5 Uygulama 4 Algoritmas 160 / 209

6.5 Uygulama-5in Tantlmas 6.5.1 Uygulamann Ad : Kontrol Sistemleri iin Geici ve Kalc Hata Analizi Program 6.5.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerinde geici ve kalc rejime ait hatalarn genel sistem mant gz nnde bulundurularak kullanclar tarafndan ok ksa srede ve karmak ilemleri yapma gerei brakmadan hesaplanmas, konum, hz, ivme gibi hata deerleri hakknda bilgilendirilmesi ve bu programda gerekli hesaplamann nasl programland konusunda kullanclara bilgi vermek amacn tamaktadr. 6.5.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.15te grlmektedir.

161 / 209

ekil 6.15 Uygulama 5 Arayz 6.5.4 Uygulamann Kullanl Bu programda ekil 6.15te de arayzde de grld zere G1(s) ve G2(s) olmak zere 2 adet ileri isistem ve bu iki sistem arasna konulmu 1 adet bozucu giri etkisi ile toplam ileri sistem iin 1 adet H(s) adnda geri besleme blou olmas gz nnde bulunduurlmutur. Dolaysyla kullanclarn program ile gerekli hata analiz sonularn hesaplamas iin bu bloklara ait deerlerin girilmesi gerekir. Deerler pay ve payda eklinde ve matris yaps formatnda (rnein [10 80 0] gibi.) girilmelidir. Ayrca, kullanclar geri beslemenin pozitif veya negatif olmas programda seebilirler. Bozucu giri iin eer tek bir katsay deeri girilecek ise payda iin katsay olarak [ 1 ] girlmesi yeterlidir. Eer, bozucu iin 2 veya daha fazla terim girilirse bu durum s deiikeni iin bir katsay olarak ilem grecektir. Bu program temel olarak iki farkl ilevi yerine getirmektedir. Bu ilevler ile ilgili olarak programn nasl kullanlaca hakknda ayrntl bilgiler aada verilmitir. 6.5.4.1 Geici Hata Analizi Yaplmas

162 / 209

Program iin gerekli tm deerler girildikten sonra sistemin geici rejimi hakknda bilgi sahibi olmak iin programda yer alan Geici Hata Analizi Yap butonunun tklanmas gerekmektedir. Bunun ardndan hesaplanan deerler programn Geici Hata Analizi Sonular blmnde kullancya gsterilir. rnek olarak varsaylan program deerleri ile geici hata analizi yaptmzda program ekran grnts ekil 6.16da gsterilmitir.

ekil 6.16 Uygulama 5 Kullanm Ekran 1 6.5.4.2 Kalc Hata Analizi Yaplmas Program iin gerekli tm deerler girildikten sonra sistemin kalc rejimi hakknda bilgi sahibi olmak iin programda yer alan Kalc Hata Analizi Yap butonunun tklanmas gerekmektedir. Bunun ardndan hesaplanan deerler programn Kalc Hata Analizi Sonular blmnde kullancya gsterilir. rnek olarak varsaylan program deerleri ile geici hata analizi yaptmzda program ekran grnts ekil 6.17de gsterilmitir.

163 / 209

ekil 6.17 Uygulama 5 Kullanm Ekran 2 6.5.5 Uygulamann Algoritmas Bu uygulamada bir kontrol sistemin geici hata analizi ile ilgili partametrelerin nasl yapldn gsteren algoritma ile ilgili bilgiye Algoritma 6.6dan eriilebilir. Ayrca, programn kontrol sistemlerin kalc rejimi ile ilgili deerlerin elde edilmesi iin kullanlan yntem Algoritma 6.7de gsterilmitir.

164 / 209

Algoritma 6.6 Uygulama 5 Algoritmas 1

165 / 209

Algoritma 6.7 Uygulama 5 Algoritmas 2 6.6 Uygulama-6nn Tantlmas 6.6.1 Uygulamann Ad : On / Off Kontrolr Uygulamas 6.6.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerinde sklkla kullanlan on/off denetleyici ile ilgili hesaplamalarn gerek elektronik devrelerle tasarm, grekse simlasyon ortamnda on/off denetleyicinin almas sonucu bir sistemin cevabnn nasl olaca konusunda kullanclar bilgilendirme amacn tamaktadr. Ayrca, 6.6 blmnn sonunda kullanclar on/off kontrolr iin gerekli algoritma konusunda da bilgilendirilmektedir. 6.6.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.18de grlmektedir.

166 / 209

ekil 6.18 Uygulama 6 Arayz 6.6.4 Uygulamann Kullanl Bu uygulama temel olarak farkl ilevi yerine getirmektedir. Bunlardan biri elektronik devre olarak tasarlanan bir on/off denetleyici ile ilgili analiz, dier analiz olarak bir on/off denetleyicinin simlasyon ortamnda altrlarak sistem cevabnn grlmesi ve en son olarak da bir on/off denetleyiciye ait on/off transfer erisinin kullancya sunulmasdr. Program arka planda bir simulink modelini kullanarak ilem yapmakta ve simulink modelinin almas sonucu retilen deerleri kullanmaktadr. Bir kullanc isterse simulink modelini Modeli A butonunu kullanarak aabilir. Ayrca, Simlasyondan sonra simulink model penceresini kapatlsn. Seenei iaretlenmezse kontrolrn simlasyon almasndan sonra simulink penceresi kapatlmayacak ve ak kalmaya devam edecektir. Bunun yannda Simlasyon penceresi kapatldnda deerler modele kaydedilsin. Seenei eer model kapatlsn senei (bir stteki seenek) iaretlenirse, oluturulan sistem deerleri ve girilen parametreler simulink penceresi kapatlmadan nce model dosyasna kaydedilir ve daha sonra

167 / 209

simulink penceresi kapatlr. Bu ilevlerin program ile nasl gerekletirildii konusunda ayrntl bilgiler aada verilmitir. 6.6.4.1 On/Off Elektronik Devre ile Analiz On/off denetleyici elektronik devresi ile ilgili deerlerin hesaplanabilmesi iin ncelikle elektronik devresine ait deerlerin programn Elektronik Devre Elemanlar Deerleri blmnden programa girilmesi gereklidir. Bu deerler girildikten sonra programn Elektronik Devre Analizi blmnden Elektronik lm Deerlerini Hesapla butonuna basldnda gerekli deerler hesaplanacaktr. Bu deerlerin hesaplanm hali ekil 6.19da gsterilmitir. Ayrca, on/off elektronik devresinde R2 sabit kalmak zere histeresiz bandnn

ekil 6.19 Uygulama 6 Kullanm Ekran 1

168 / 209

herhangi bir deeri programda yer alan R1 Deerini Hesapla (R2 Sabit) butonu kullanlarak hesaplanabilir. Bu durum iin de ekil 6.19a baklabilir. 6.6.4.2 On/Off Kontrolrn Simlasyon Ortamnda Analizi Bu analiz iin kullancnn ncelikle programn Genel On-Off Parametrelerinin Girilmesi blmnden gerekli deerleri girmesi gerekir. Bu deerler on/off denetleyicinin on modunda iken kn ne olacan gsteren Kontrolr On k Deeri ile aktif olmas iin giriteki hata bilgisinin olmas gereken deerini gsteren Pozitif Delta e deerleri ile on/off denetleyici off modunda iken kn ne olacan gsteren Kontrolr Off k Deeri ile denetleyicinin kapal konumunda olmas iin giriteki hata bilgisinin olmas gereken deerini gsteren Negatif Delta e deerleridir. Ayrca, kullanc kontrol edilecek sistem iin ileri ve geri blok pay ve payda deerlerini de programn Sistem leri ve Geri Blok Deerleri blmnden girmesi gerekmektedir. Bu deerler girildikten sonra kullanc simlayonun yaplaca toplam sreyi belirlemeli, rneklem zamann semeli ve referans deerini girmelidir. Program on/off denetleyici iin iki farkl algoritma kullanmaktadr. kisi arasnda ok fazla bir farkllk olmamakla birlikte On/Off Fonksiyonu seenei Simulink Model seeneinden daha hassas ilem yapabilmektedir. En son olarak kullanc denetleyicinin k grmek iin On-Off Kontrolr k Grafii butonunu ya da kullanc sistemin kn grmek iin C(s) k Grafii butonunu kullanabilir. retilen grafik programn sa alt tarafnda yer alan izim alannda gsterilir. Bu durum ekil 6.20de gsterilmitir. Ayrca, kullanc isterse bu grafii bytebilir. Bun iin Grafii Bytmek in Tklaynz butonu kullanlmaldr. Bu durumda kullanc ayrca alan bir pencerede grafik izimi grebilir ve istedii gibi boyutlandrabilir ya da pencerede yer alan ara ubuklarn kullanmak suretiyle zelliklerini deitirebilir. Bu pencereyi grmek iin ekil 6.21e baklabilir.

169 / 209

ekil 6.20 Uygulama 6 Kullanm Ekran 2

170 / 209

ekil 6.21 Uygulama 6 Kullanm Ekran 3 6.6.4.3 On/Off Kontrolrn Transfer Erisinin izilmesi Girilen On/Off kontrolr parametrelerine gre on/off transfer erisi program tarafndan izilebilir. Bunun iin programn On/Off Kontrolr Transfer Erisi butonu kullanlmaldr. rnek olarak izilen bir transfer erisi ekil 6.22de gsterilmitir.

171 / 209

ekil 6.22 Uygulama 6 Kullanm Ekran 4 6.6.5 Uygulamann Algoritmas Bu uygulamada kullanlan on/off kontrolr algoritmas, Algoritma 6.8de gsterilmitir.

172 / 209

Algoritma 6.8 Uygulama 6 Algoritmas 6.7 Uygulama-7nin Tantlmas 6.7.1 Uygulamann Ad : Oransal Kontrolr Uygulamas 6.7.2 Uygulamann Hazrlanma Amac :

173 / 209

Bu uygulama kontrol sistemlerinde sklkla kullanlan oransal denetleyici ile ilgili hesaplamalarn gerek elektronik devrelerle tasarm, grekse simlasyon ortamnda oransal denetleyicinin almas sonucu bir sistemin cevabnn nasl olaca konusunda kullanclar bilgilendirme amacn tamaktadr. Ayrca, 6.7 blmnn sonunda kullanclar oransal kontrolr iin gerekli algoritma konusunda da bilgilendirilmektedir. 6.7.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.18de grlmektedir.

ekil 6.23 Uygulama 7 Arayz

174 / 209

6.7.4 Uygulamann Kullanl Program arka planda bir simulink modelini kullanarak ilem yapmakta ve simulink modelinin almas sonucu retilen deerleri kullanmaktadr. Bir kullanc isterse simulink modelini Modeli A butonunu kullanarak aabilir. Ayrca, Simlasyondan sonra simulink model penceresini kapatlsn. Seenei iaretlenmezse kontrolrn simlasyon almasndan sonra simulink penceresi kapatlmayacak ve ak kalmaya devam edecektir. Bunun yannda Simlasyon penceresi kapatldnda deerler modele kaydedilsin. Seenei eer model kapatlsn senei (bir stteki seenek) iaretlenirse, oluturulan sistem deerleri ve girilen parametreler simulink penceresi kapatlmadan nce model dosyasna kaydedilir ve daha sonra simulink penceresi kapatlr. Bu uygulama temel olarak farkl ilevi yerine getirmektedir. Bunlardan biri elektronik devre olarak tasarlanan bir oransal denetleyici ile ilgili analiz, dier analiz olarak bir oransal denetleyicinin simlasyon ortamnda altrlarak sistem cevabnn grlmesi ve en son olarak da bir oransal denetleyiciye ait oransal transfer erisinin kullancya sunulmasdr. Bu ilevlerin program ile nasl gerekletirildii konusunda ayrntl bilgiler aada verilmitir. 6.7.4.1 Oransal Elektronik Devre ile Analiz Oransal denetleyici elektronik devresi ile ilgili deerlerin hesaplanabilmesi iin ncelikle elektronik devresine ait deerlerin programn Elektronik Devre Elemanlar Deerleri blmnden programa girilmesi gereklidir. Bu deerler girildikten sonra programn Elektronik Devre Analizi blmnden Elektronik lm Deerlerini Hesapla butonuna basldnda gerekli deerler hesaplanacaktr. Bu deerlerin hesaplanm hali ekil 6.24te gsterilmitir. Ayrca, oransal elektronik devresinde Vsp ve hata deerlerine gre oransal kontrolr k bulunabilir. Bu durum iin de ekil 6.24e baklabilir.

175 / 209

ekil 6.24 Uygulama 7 Kullanm Ekran 1 6.7.4.2 Oransal Kontrolrn Simlasyon Ortamnda Analizi Bu analiz iin kullancnn ncelikle programn Genel Oransal Parametrelerinin Girilmesi blmnden gerekli deerleri girmesi gerekir. Bu deerler oransal denetleyicinin hangi davranta ve nasl cevap verecei ile ilgili Umax, pozitif ve negatif delta e, oransal band, kazan (Kp), kontrolrn transfer erisi eimi gibi parametrelerdir. Ayrca, kullanc kontrol edilecek sistem iin ileri ve geri blok pay ve payda deerlerini de programn Sistem leri ve Geri Blok Deerleri blmnden girmesi gerekmektedir. Bu deerler girildikten sonra kullnc simlayonun yaplaca toplam sreyi belirlemeli, rneklem zamann semeli ve referans deerini girmelidir. Program oransal denetleyici iin iki farkl algoritma kullanmaktadr. Genellikle Simulink Model seenei Oransal Fonksiyonu seeneinden daha iyi sonular vermektedir. Ancak, Umax deeri sadece Oransal Fonksiyonu

176 / 209

seeneinde dikkate alnmaktadr . En son olarak kullanc denetleyicinin k grmek iin Oransal Deerler iin Kontrolr kn iz butonunu ya da kullanc sistemin kn

ekil 6.25 Uygulama 7 Kullanm Ekran 2 grmek iin Oransal Deerler iin Sistem Cevabn iz butonunu kullanabilir. retilen grafik programn sa alt tarafnda yer alan izim alannda gsterilir. Bu durum ekil 6.25te gsterilmitir. Ayrca, kullanc isterse bu grafii bytebilir. Bun iin Grafii Bytmek in Tklaynz butonu kullanlmaldr. Bu durumda kullanc ayrca alan bir pencerede grafik izimi grebilir ve istedii gibi boyutlandranilir ya da pencerede yer alan ara ubuklarn kullanmak suretiyle zelliklerini deitirebilir. Bu pencereyi grmek iin ekil 6.26ya baklabilir.

177 / 209

ekil 6.26 Uygulama 7 Kullanm Ekran 3 6.7.4.3 Oransal Kontrolrn Transfer Erisinin izilmesi Girilen oransal kontrolr parametrelerine gre oransal transfer erisi program tarafndan izilebilir. Bunun iin programn Oransal Kontrolr kn iz butonu kullanlmaldr. rnek olarak izilen bir transfer erisi ekil 6.27de gsterilmitir.

178 / 209

ekil 6.27 Uygulama 7 Kullanm Ekran 4 6.7.5 Uygulamann Algoritmas Bu uygulamada kullanlan oransal kontrolr algoritmas, Algoritma 6.9da gsterilmitir.

179 / 209

Algoritma 6.9 Uygulama 7 Algoritmas 6.8 Uygulama-8nin Tantlmas 6.8.1 Uygulamann Ad : PID Kontrolr Uygulamas 6.8.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerinde sklkla kullanlan PID denetleyici ile ilgili hesaplamalarn gerek elektronik devrelerle tasarm, grekse simlasyon ortamnda PID denetleyicinin almas sonucu bir sistemin cevabnn nasl olaca konusunda kullanclar bilgilendirme amacn tamaktadr. Ayrca, 6.8 blmnn sonunda kullanclar PID kontrolr iin gerekli algoritma konusunda da bilgilendirilmektedir. 6.8.3 Uygulamann Arayz 180 / 209

Uygulamann grafiksel arayz (GUI alan) ekil 6.28de grlmektedir.

ekil 6.28 Uygulama 8 Arayz 6.8.4 Uygulamann Kullanl Program arka planda bir simulink modelini kullanarak ilem yapmakta ve simulink modelinin almas sonucu retilen deerleri kullanmaktadr. Bir kullanc isterse simulink modelini Modeli A butonunu kullanarak aabilir. Ayrca, Simlasyondan sonra simulink model penceresini kapatlsn. Seenei iaretlenmezse kontrolrn simlasyon almasndan sonra simulink penceresi kapatlmayacak ve ak kalmaya devam edecektir. Bunun yannda Simlasyon penceresi kapatldnda deerler modele kaydedilsin. Seenei eer model kapatlsn senei (bir stteki seenek) iaretlenirse, oluturulan sistem deerleri

181 / 209

ve girilen parametreler simulink penceresi kapatlmadan nce model dosyasna kaydedilir ve daha sonra simulink penceresi kapatlr. Bu uygulama temel olarak iki farkl ilevi yerine getirmektedir. Bunlardan biri PID kontrolrl bir sistemde istenilen bir zaman deerinde PID kontrolrn knn oransal, integral ve trev katlar ve tm deerleri ile integral gemii ve trev kat iin nemli olan nceki hata deeri gibi paramtrelerin bulunmas ve dieri bir PID denetleyicinin simlasyon ortamnda altrlarak sistem cevabnn ve kontrolr kn kullancya sunulmasdr. Bu ilevlerin program ile nasl gerekletirildii konusunda ayrntl bilgiler aada verilmitir. 6.8.4.1 PID Kontrolr in Anlk Deerleri Hesapla Programda herhangi bir sistem verilen PID katsaylarna gre kontrol edilmek istendiinde herhangi bir zaman deeri iin ileri yol blouna ve sisteme etki eden PID kontrolrn o andaki hata deeri, rneklemeye bal olarak nceki hata deeri (ki bu deer PID deetleyicinin trev kat tarafndan kontrol edilmektedir), integral katnn gemiteki deerler toplam ile ayr ayr oransal, integral ve trev kat ile toplam k deerleri renilebilir. Bu ilem iin programn PID ile lgili rnek Soru blmnde yer alan Aadaki Deerleri Hesapla butonu kullanlmaldr. rnek bir sistem iin 10.5 saniye zaman deerinde PID kontrolr ile ilgili deerler hesaplanmas ekil 6.29da grlmektedir.

182 / 209

ekil 6.29 Uygulama 8 Kullanm Ekran 1 6.8.4.2 PID Kontrolrn Cevabnn izdirilmesi Bu analiz iin kullancnn ncelikle programn Genel PID Parametrelerinin Girilmesi blmnden gerekli deerleri girmesi gerekir. Bu deerler PID denetleyicinin hangi davranta ve nasl cevap verecei ile ilgili UmKp, Ki ve Kd gibi parametrelerdir. Benzer ekilde kullanc ayn yerden simlayonun yaplaca toplam sreyi belirlemeli, rneklem zamann semeli ve referans deerini girmelidir. Ayrca, kullanc kontrol edilecek sistem iin ileri ve geri blok pay ve payda deerlerini de programn Sistem leri ve Geri Blok Deerleri blmnden girmesi gerekmektedir. Program PID denetleyici iin iki farkl algoritma kullanmaktadr. Genellikle Simulink Model seenei PID Fonksiyonu seeneinden daha iyi sonular vermektedir. Ancak, Kontrolr iin maksimum deer sadece PID Fonksiyonu seeneinde dikkate alnmaktadr . En son olarak kullanc denetleyicinin k grmek iin PID Kontrolr k Grafii butonunu ya da kullanc sistemin kn

183 / 209

ekil 6.30 Uygulama 8 Kullanm Ekran 2 grmek iin Sistem Ayarlar ile Sistem Transfer Fonksiyonu Cevabn iz butonunu kullanabilir. retilen grafik programn sa alt tarafnda yer alan izim alannda gsterilir. Bu durum ekil 6.30da gsterilmitir. Ayrca, kullanc isterse bu grafii bytebilir. Bun iin Grafii Bytmek in Tklaynz butonu kullanlmaldr. Bu durumda kullanc ayrca alan bir pencerede grafik izimi grebilir ve istedii gibi boyutlandranilir ya da pencerede yer alan ara ubuklarn kullanmak suretiyle zelliklerini deitirebilir. Bu pencereyi grmek iin ekil 6.31de baklabilir.

184 / 209

ekil 6.31 Uygulama 8 Kullanm Ekran 3 6.8.5 Uygulamann Algoritmas Bu uygulamada kullanlan PID kontrolr algoritmas, Algoritma 6.10da gsterilmitir.

185 / 209

Algoritma 6.10 Uygulama 8 Algoritmas

186 / 209

6.9 Uygulama-9un Tantlmas 6.9.1 Uygulamann Ad : Kontrol Sistemleri iin Analiz Program 6.9.2 Uygulamann Hazrlanma Amac : Bu uygulama kontrol sistemlerinin kararllk, cevap ya da pek ok farkl ynlerden incelenmesi amacyla kullnclara zengin analiz tercihleri sunularak zellikle pek ok faydal arac bir arada sunan bir ara olmas ile kullanclara almalarnda kolaylk salamas ve zaman kazandrmas durumlar gz nnde bulundurularak tasarlanmtr. 6.9.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.32de grlmektedir.

ekil 6.32 Uygulama 9 Arayz

187 / 209

6.9.4 Uygulamann Kullanl Uygulama genel anlam ile girilen kontrol sistemi deerlerine gre eitli amalara hizmet eden sistem cevab ve analiz amal erilerin izdirilmesini salamaktadr. Sistem girilmesi iin programda farkl seenek vardr. Bunlar: Rasgele sistem, TFlu sistem ve Bloklu sistem. Her bir seim iin srayla Rastgele Sistem Seim Ayarlar ile Rastgele Sistem Seimi alanlar, TFlu Sistem Parametreleri Seimi alan ve Sistem leri ve Geri Blok Deerleri alan aktif olmaktadr. Herhangi bir anda bu alanlardan sadece biri aktif olmakta ve o aktif alan bilgileri kullanlarak ilgili analiz tercihi altrlmaktadr. Kullanc rasgle bir sistem kullanmak isterse Rasgele Bir Sistem Modeli Bul butonunu kullanarak Rastgele Sistem Seim Ayarlar blmnden belirledii giri ve k saysnda rasgele bir durum uzay modeli oluturabilir. Bunlarn yannda eer kullanc birden fazla durum uzayndan oluan TF yerine tek bir seili TF iin cevap istiyor veya analiz yapmak gerekiyorsa bu takdirde programn Analiz iin Zaman Aral Belirleme blmnden oklu modelden seili TFnu kullan. Seeneini iaretlemesi ve rasgele Sistem Seimi blmnden Model No listesi kullanlarak bir TFnu seilmelidir. Kullanc eer direk bir sistemin tansfer fonksiyonunu kullanarak ilem yapmak isterse TFlu Sistem Parametreleri Seimi alanndan sisteminin TFnuna ait pay ve payda katsaylarn girmelidir. stenirse bu katsaylar Deerleri sfr ve kutup olarak kullan. Seenei iaretlenerek direk pay ksmna sfr deerleri ve payda ksmna kutup deerleri yazlarak da analize katlabilir. Benzer ekilde eer kullanc bloklar halinde sistemin cevabna bakmak ya da sistemi analiz etmek istiyorsa bu durumda programn Sistem leri ve Blok Deerleri blmne kendi sistem deerlerini girmelidir. Cevaplar ve baz analizler iin rneklem adedi gibi deerlere gereksinim oluu iin bu deerlerin kullanc tarafndan belirlenmesi gerekmektedir. Ayrca, kullanc bir cevp grafii ve analizi istedii bir aralk iin yapmak istiyorsa bu takdirde Analiz iin Zaman Aral Belirleme blmden dikkate alnacak zaman aralnn snr deerleri ve kullanlacak deer adedi gibi parametreler programa girilmelidir. Son olarak kullanc program arayznn sa tarafnda yer alan butonlardan amacna uygun olan kullanarak yeni alan ikinci bir pencereden cevab veya analiziyle ilgili izime ulaabilir. rnek olarak varsaylan program deerleri kullanlarak ele alnan bir sistemin frekans cevab analizi yaplmtr. Bu duurm iin ekil 6.33ye baklabilir.

188 / 209

ekil 6.33 Uygulama 9 Kullanm Ekran 6.9.5 Uygulamann Algoritmas Bu uygulamada ok eitli analiz yntemleri kullanlm olup, bu yntemlerin nasl arld zellikle Matlab komutlar dikkate alnarak aktarlmaya allmtr. Gerekli bilgilere Algoritma 6.11den eriilebilir.

189 / 209

Algoritma 6.11 Uygulama 9 Algoritmas 6.10 Uygulama-10nun Tantlmas 6.10.1 Uygulamann Ad : X ve Y Eksenli WebCam Cihaznn Paralel Port ile Kontrol 6.10.2 Uygulamann Hazrlanma Amac :

190 / 209

Bu uygulama Matlab ile port tabanl kontrol salamak ve bu ilemin nasl gerekletii konusunda kullanclar bilgilendirmek amacyla tasarlanmtr. Programan algoritmas ile ilgili bilgilere de bu blmn sonunda yer verilmitir. 6.10.3 Uygulamann Arayz Uygulamann grafiksel arayz (GUI alan) ekil 6.34te grlmektedir.

ekil 6.34 Uygulama 10 Arayz 6.10.4 Uygulamann Kulland Donanm Arabirimi Bu proje almasnda pek ok donanm arabirimi bir arada kullanlmtr. Aada her bir arabirim ile ilgili detayl bilgiler verilmektedir. 6.10.4.1 Besleme Devresi: Projede sensrlere uygulanan gerilimlerin ve src devresini besleyecek gerilimlerin gereklilii iin trafodan oluan ve ayr dorultma devresi destekli elektronik devreler bask devre teknii kullanlarak ortaya karlmtr. 6.10.4.2 Src Devresi: Projede kullanlan bu devre hazr KIT zellii tamaktadr. Bu devre direk paralel port data pinleri ile beyzinden srlen transistrlerin 8 adet rleyi anahtarlamas prensibine gre almaktadr. Devremizin resmi aada verilmitir. Herhangi bir data pini HIGH seviyeye ekildii durum ayn zamanda devremizin zerinde yer alan LEDler vastasyla da grlebilir. Bylelikle herhangi bir anda hangi eksende hangi admn iletildii renilebilir. Her bir motor iin toplam drder adm ve her adm da bir pin tarafndan kontrol edilmektedir. 191 / 209

www.delab.com adresinden PC OUT 8 KIT devresi ile ilgili ayrntl bilgi elde edilebilir. Projede kullanlan src devresi Resim 6.1de gzkmektedir.

Resim 6.1 Step Motor Src Devresi 6.10.4.3 Platform: Projede yukarda bahsedilen elemanlarn dank olmamas ve gze ho gelmesi iin bir arada metal bir plaka zerinde montaj yaplmtr. Ayrca, d darbelere kar src devre zeri plastik effaf bir malzeme ile korunmutur. 6.10.4.4 Paralel Port: Paralel port, 25 pinlik D eklindeki konnektrdr. Seri porta gre hzl olmasna ramen ayn stabiliteyi salayamaz. Bu balant noktasna ayn zamanda LPT ( LinePrinTer) de denmektedir. Bu portun bir pini bir seferde 8 bit veri gnderebilir. DB25 isimli portu kullanr. DB25 ismindeki 25 rakam kablo giriindeki pin saysn ifade etmektedir. Bu arabirim ekil 6.35te gsterilmitir.

192 / 209

ekil 6.35 Paralel Portlarda Kullanlan DB-25 Konnektr Projede paralel port adresi olarak 378 hex adresi kullanlmtr. (Delphi iin bu deer $378 olarak geer.) Paralel porttan x ve y ekseni adm motorlarn srmek iin bu porta ait data pin k ular kullanlmaktadr. Bu pinler ilk pin 1 nosu ile isimlendirilmek zere 2 ile 9 nolu pinler dahil ve bu pinler arasnda kalan pinlerdir. Bu pinlerden src devresi vastasyla ilgili eksene ait adm motorunun ilgili admna ait rle enerjilendirilmekte, dolaysyla da kontaklar konum deitiren rle vastasyla o adma ait adm motoru ularna gerilim uygulanmakta ve adm motoru bir adm atmaktadr.

ekil 6.36 Paralel Port Pinleri ekil 6.36da da grld zere paralel port pinlerinden 5 tanesi (10, 11, 12, 13, 15 pinleri) input amacyla (bilgi girii iin) kullanlmaktadr. Projede bilgi iin porttan bilgi girii yaplmamtr. Ancak, bilgi giriinin LPTden salanmas gerekenler durumlar iin burada bilgi verilecektir. Portun giri olarak okunmas iin paralel port status bellek alan kullanlmaldr. Bu bellek alannn adresi taban paralel port adresinin 1 fazlasdr. Yani, bu projede rnek olarak 379 hex adresi kullanlmtr. Status portun ilgili pininin okunmas iin ncelikle 379 hex adresinden alnan deer rnek olarak 10 nolu pine bal bir sensr iin 20 hex bilgisi ile AND ilemine tabi tutulmal, elde edilen sepet bilgi eer ki sfrdan farkl ise bu pin HIGH (lojik 1 veya analog +5 volt) seviyesinde demektir. Dier giri pinlerine bal sensr ve arabirimlerin durumu da benzer ekilde ama ilgili hex deeri ile AND ilemine tabi tutularak elde edilebilir. 6.10.4.5 Adm Motorlar: Adm motorlarn, endstriyel ve elektronik uygulamalarda kullanm olduka fazladr. Adm motorlar, girilerine uygulanan lojik sinyalleri dnme hareketine evirirler. stediiniz ynde ve derecede dndrebileceiniz adm motorlar, hassas hareketleri sayesinde, bir ok cihazda konum kontrol amacyla kullanlmaktradr.

193 / 209

Step motorlar yaplar gerei, ok saydaki ularna dzenli olarak gelen palslerle hareket ederler. Her bir adm iin belirli ulara gerilim verilir. Ve step motor bir adm hareket eder ve ylece kalakalr. Sonra yeni palsler farkl bir srayla tekrar verilir. Bir adm daha gider. Daha sonra yeni bir pals dizisi gelir ve bir adm daha gider. Bu pals dizilerini belirleyen tek ey, motorun ierisindeki, sarglarn ekli ve sralamasdr. ekil 6.37de rnek bir adm motorunun ekli grlmektedir. Projede her bir eksen iin birer tane olmak zere toplam 2 adet adm motoru kullanlmtr.

ekil 6.37 Bir Step Motor 6.10.4.6 Proje Donanm Paralarnn Tmnn Birletirilmi Grnts Projenin donanm elemanlarnn tamamen montaj yaplm hali Resim 6.2de gsterilmitir.

Resim 6.2 X ve Y Eksenli WebCam Cihaz (Paralel Port Kontroll) Grnts

194 / 209

6.10.5 Uygulamann Kullanl Bu uygulamann alabilmesi iin bir grnt cihazndan srekli olarak grntl alan ve her alnan grntye harddiske bir resim dosyas olarak kaydeden bir yazlma ihtiya vardr. Bu amala projede Microsoft tarfndan gelitirilmi olan Powertoys for Windows XP program grubu bnyesinde yer alan TimerShot isimli program kullnlmtr. Bu yazlm tez cdsine de ayrca eklenmitir. Bu yazlmn basite kullanmna burada yer verilecektir.

ekil 6.38 TimerShot Programnn Ayarlarnn Yaplmas TimerShot programnn ekran grnts ekil 6.38de gsterilmitir. ncelikle programn 0 nolu blm kullanlarak bir grnt aygt seilir. Daha sonra 1 nolu blm kullanlarak bu aygttan programn ka saniye zaman aralklaryla fotoraf kaydedecei belirlenir. rnekte 1 saniye olarak belirlenmitir. Bundan sonra 2 nolu blm ile ekilen fotorafn

195 / 209

znrlnen ne olaca belirlenebilir. rnekte varsaylan olarak braklmtr. Bu admdan sonra 3 ve 4 nolu alanlar kullanlarak ekilen fotorafn kaydedilecei dosya ismi ve kayt klasr bilgileri girilir. En son olarak bu penceredeki tm yaplan ayarlar 5 numaral alan kullanlarak, yani Apply Settings butonuna baslarak kaydedilir. close Window butonu ile de pencere kapatlabilir. Burada itibaren Matlab ile hazrlnan GUI uygulams hakknda bilgiler verilecektir. . ncelikle programda kullanc bilgisayarndaki hangi dosyay gstereceini seer (rnek olarak burada C:\Capture.jpg dosyas kullanlmtr.). Bu ilem iin Resim Dosyas Yolu alanndan Dosya Se butonu yardmyla dosya seilir. Daha sonra grnt dosyasnn ne kadar zaman aralklaryla kullancya gsterilecei belirlenir. Bunun iin Grnt Alma Sresi alanndaki slider kullanlarak zaman aral seilir. En son olarak da Grnt Almay Balat

ekil 6.39 Uygulama 10 Kullanm Ekran 1 butonu kullanlarak belirtilen zaman aralklaryla program resim dosyasndan grnty srekli olarak sunacaktr. Bu ilemi sonlandrmak iin Grnt Almay Durdur butonu kullanlmaldr. Program bu aamadan itibaren almaya balamas ile elde edilen ekran grnts ekil 6.39da gsterilmitir. Ayrca, program ayr bir pencerede de grnt cihazndan ekran grntsn almaktadr. Bu pencere de ekil 6.40dan grlebilir. Bu pencere srekli ekim iindir. Program ile tmleik ekran grnts penceresi, ancak Capture butonu kullnlrsa grnty anlk yakalamak iin kullnlr. Programda Sol ve Sa dmeleri yardmyla X ekseni adm motoru srlmekte ve Yukar ve Aa butonlar kullanlarak Y ekseni adm motoru srlmektedir. Her motora ait adm numaras programn Adm Motorlar Durumu alanndan takip edilebilir. Her adm motoru toplam 4 adm sonunda baa dnmektedir.

196 / 209

ekil 6.40 Uygulama 10 Kullanm Ekran 2 6.10.6 Uygulamann Algoritmas Bu uygulamada paralel port kullanlm ve X ve Y iki ekseni iki farkl adm motoru yardmyla kontrol edilmitir. Motorlarn srlmesi ve portun kullanm hakknda bilgi almak iin Algoritma 6.12ye baklabilir.

197 / 209

Algoritma 6.12 Uygulama 10 Algoritmas

198 / 209

BLM-VII MATLAB LE PORT KULLANIMININ GEREKLETRLMES


Matlab ile bilgisayarn d dnyaya alan ular olan portlarn kullanm mmkndr. Gerek pararlel, gerekse seri port kullanm ok kolay bir ekilde gerek Simulink gerekse komut satr ortamlar kullanlarak yaplabilir. Aada paralel ve seri port kullanmn bu ortamlarda nasl yaplaca ayrntl olarak aklanmtr. 7.1 Komut Tabanl Olarak Portlarn Ynetilmesi Seri ve paralel portlarn kullanm farkl yntemlerle olduu iin her iki port kullanm ayr balklar altnda incelenmitir. 7.1.1 Paralel Portun Komutlar Kullanlarak Ynetilmesi

Asagidaki islemi yapmadan nce winio aygitinin isletim sistemi icin register edilmesi gerekmektedir. Bu islem icin MATLAB komut satirinda asagidaki komutlar icra edilmeli ve PC yeniden baslatilmalidir. daqregister('c:\matlab\toolbox\daq\daq\private\mwparallel.dll'); daqregister('c:/matlab/toolbox/daq/daq/private/winio.dll');

Paralel portun kullanlmas iin ncelikle MATLABin paralel portlara eriebilmesi iin Windowsta WINIO aygt srcsnn yklenmesi ve almas gerekir. (Bu ilem Windows NT tabann kullanan Windows 2000, Windows XP ve st srmlerinde kullanc yetkisi Administrator olanlar dndaki Normal ve Power kullanclarn Matlab ile donanma eriebilmesi iin gereklidir.) bu ilemin yaplabilmesi iin ncelikleWindowsta Masast veya Balat mens kullanlarak Bilgisayarm ikonu zerinde farenin sa tuu ile tklanp alan menden zellikler komutu verilerek alan sistem zellikleri penceresinin

199 / 209

ekil 7.1 Windowsta Sistem zellikleri Penceresinden Aygt Yneticisinin altrlmas Donanm sekmesinde yer alan Aygt Yneticisi butonu tklanr. Bu durum ekil 7.1de gsterilmitir. Daha sonra alan Aygt Yneticisi penceresinde Grnm mensnden Gizli Aygtlar Gster komutu ekil 7.2de de gsterildii zere altrlr. Ayn pencerede Aygt Yneticisinde yer alan aygt gruplar aa listesinden tak ve altr Olmayan Srcler grubunun altnda yer alan WINIO aygt srcs zerinde farenin sa tuu ile tklanr ve alan menden zellikler komutu verilir. Bu durum ekil 7.3te gsterilmitir.

200 / 209

ekil 7.2 Aygt Yneticisi Penceresinde Gizli Aygtlarn Gsterilmesi

ekil 7.3 WINIO Aygt Srcsne Ait zellikler Penceresinin Almas

201 / 209

Bir sonraki admda alan WINIO aygt srcsne zellikler penceresinin Src sekmesinde yer alan Balang Tr seenei ekil 7.4 penceresinde de grld gibi Otomatik olarak ayarlanr. Daha sonra bu pencere Tamam butonu tklanlarak kapatlr. Ayarlarn aktif olmas iin bilgisayarn yeniden balatlmas gerekmektedir. Bylelikle

ekil 7.4 WINIO Aygtna Ait Ayarlarn Yaplmas Administrator yetkisine sahip olmayan kullanclarn Matlab kullanarak bilgisayar portlarna eriimi aktif hale getirilmi olmaktadr. Matlab iinden paralel portun kullanlmas iin ncelikle bu portun bir nesne olarak digitalio komutu ile tanmlanmas ve bu nesnenin bir deikene atanmas gerekir. Daha sonra portun data bitlerinin kullanma almasn salamak zere ilgili bitleri k amal kullanmak zere bu nesneye adline komutu yardmyla kanallar eklenmesi gerekir. En son olarak da bu nesne kullanlarak putvalue komutu ile porta bilgi gnderilebilir veya getvalue komutu ile yine bu nesne zerinden porttan veri alnmas gerekletirilebilir. Port ile ilgili veri alma ilemi bittikten sonra mutlaka ncelikle delete komutu ile oluturulan nense silinmeli ve daha sonra da clear deiken ismi komutu ile bu nesneye ait bilgileri tutatn deiken bellekten temizlenmelidir. Paralel portun kullanmna rnek komut satrlar aada sunulmutur.

202 / 209

paralel_port = digitalio ( 'parallel' , 'LPT1' ) ; addline(paralel_port , 0:7 , 'out') ; dec_data = 88; bin_data=dec2binvec(dec_data , 8) putvalue (paralel_port , dec_data); putvalue (paralel_port , bin_data); putvalue ( paralel_port , logical ( [ 0 1 0 0 0 1 0 0 ] ) ); gelen_veri = getvalue(paralel_port); delete (paralel_port); clear paralel_port;

% portun tanmlanmas % portun bitlerinin kull. almas % dec verinin bin formata evril. % porta dec veri gnderilmesi % porta bin veri gnderilmesi % porta direk bin veri gnderilm. % paralel porttan verinin okunmas

% port nesnesinin silinmesi % port nesnesini tutan deikenin bellekten temizlenmesi

7.1.2 Seri Portun Komutlar Kullanlarak Ynetilmesi Seri portun kullanlmas paralel porta gre ok daha kolay olmaktadr. lk olarak serial komutu kullanlarak port snfn kuracak bir nesne oluturulur ve daha sonra bu nesne fopen komutuna parametre gnderilerek port ile balant kurulur ve seri port bir k aygt olmak zere alr. Daha sonra fprintf komutu ile porta bilgi gnderilir ya da fget komutu kullanlarak porttan bilgi okunabilir. Port ile ilgili tm ilemler tamamlandktan sonra fclose komutu kullanlarak port ile balant koparlmal ve en son olarak delete komutu ile port ile balanty tutan deiken bellekten temizlenmelidir. Seri portun kullanlmas ile ilgili komutlar u ekildedir: seri_port = serial ( COM1 , BAUD , 9600 ) ; fopen ( seri_port ) ; % poru kullanacak nesnein oluturulm. % port ile balantnn kurulmas

fprintf (seri_port , gnderilen integer=%d - kesirli say=%3.2f karakter = %c string = %s , sayi_integer, sayi_float, harf, text_ifadesi); % portta eitli tiplerde verilerin gnderil. gelen_veri = fget (seri_port); fclose(seri_port); delete ( seri_port ); clear seri_port; % porttan sadece verinin okunmas % port ile balantnn koparlmas % port nesnesinin silinmesi % port nesnesini tutan deikenin % bellekten temizlenmesi 7.2 Simulink Ortam Kullanlarak Portlarn Ynetilmesi Simulink ortamnda Real Time modunda allarak bilgisayar portlar ile balant kurulabilir. Bunun iin oluturulacak bir simulink modelinde, [ gelen_veri , toplam_veri_uzunluk , hata_mesaji ] = fget (seri_port);% porttan ayrnt.veriokm

203 / 209

Paralel port kullanm iin Simulink Library Browser penceresi kullanlarak RealTime Windows Target aac altndan yaplacak tasarm amacna uygun block eklenmelidir (rnein dijital veri alnacak ise digital input blou konulmaldr.). Seri port kullanm iin Simulink Library Browser penceresi kullanlarak Instrument Control Toolbox aac altndan yaplacak tasarm amacna uygun block eklenmelidir. (rnein porta veri gnderilmek isteniyorsa To Instrument, porttan veri okunmak isteniyorsa Query Instrument bloklar tasarma konulmaldr.).

Bu konuda daha ayrntl bilgi iin 3.4 konu balna baknz.

204 / 209

BLM-VIII A. TARTIMA VE SONU


Bu almann temel amac Matlab ile iligli genel bilgilendirmede bulunmak ve Matlab ile nasl GUI uygulamalrnn hazrlanaca husunda bilgiler vermektir. almada Matlab programnn nasl kullanlaca ile ilgili ok eitli ve zengin aklamalar getirilmitir. Bunun yannda Matlab program ile GUI uygulamalarnn nasl tasarlanaca anlatlmtr. Ayrca, Kontrol bilimi ile alakal problemlerin zmne ynelik 10 adet GUI uygulamas anlatlm ve algoritmalar verilmitir. Bu tez almasnda gerekletirilenler dnda yaplmak istenilen baz hedefler de bulunmaktadr. Bunlar ile ilgili bilgiler aada listelenmitir. Matlab Server programnn kullanm hakknda bilgilendirmede bulunmak, Matlab server program ile tmleik GUI uygulamalarn hazrlanmas, GUI uygulamalarnda gsterilen kontrolr tekniklerine Bulank Mantk ve Yapay Zeka gibi ileri dzey konularn eklenmesi, GUI uygulamalarnda zellikle timer nesnesinin kontrolnn iyi derece yaplabilmesi, Real Time uygulamalar ieren GUI arayzlerinin zenginletirilmesidir.

205 / 209

B. EKLER
Projede kullanlan pdf dosyalar ile hazrlanan GUI uygulamalar M dosyalar ve simulink modelleri tez kitabnn en arka sayfasnn i yzne eklenmitir.

206 / 209

C. KAYNAKLAR
C.1 Kitaplar : 1) Hakan AYDIN, Matlab le Kontrol Sistemlerinin ncelenmesi, Bitirme Tezi, Marmara niversitesi teknik Eitim Fakltesi, Gztepe, 2003 2) Uur ARFOLU ve Cemalettin KUBAT ; MATLAB ve Mhendislik Uygulamalar, Alfa Basm Yaym Datm, stanbul ,Trkiye, Ekim 2003 3) Yrd. Do Dr. Mehmet UZUNOLU, Ali KIZIL ve mer alar ONAR; Kolay Anlatm ile leri Dzeyde MATLAB 6.0 - 6.5, Trkmen Kitabevi, stanbul ,Trkiye, 2002 4) Anna Kristine Whlin; Matlab Course, Department of Geophysics, University of Oslo, January 2003 (pdf dosyas) 5) Grsel EFKAT ve brahim YKSEL, Matlab Gui Tabanl Elektromknats Devre Tasarm ve Analizi, 2003 (pdf dosyas) 6) David F. Griths, An Introduction to Matlab v.2.3, Department of Mathematics, The University Dundee, September 2005 (pdf dosyas) 7) MathWorks, MATLAB, The Language of Technical Computing, September 2006 (pdf dosyas) 8) Patrick March and O. Thomas Holland; Graphics and GUIs with MATLAB, 3rd Edition, 2002 (pdf dosyas) 9) MATLAB Help Dosyalar 10) MATLAB Demo Uygulamalar

207 / 209

C.2 Elektronik Yaynlar : 1) ftp://ftp.inf.ethz.ch/pub/SolvingProblems/ 2) http://hans.munthe-kaas.no/H.Z.Munthe-Kaas.html 3) http://hans.munthe-kaas.no/Research.html 4) http://netec.wustl.edu/ 5) http://physics.gac.edu/~huber/envision/flow/welcome.htm 6) http://physics.gac.edu/~huber/envision/matgui/animate.htm 7) http://physics.gac.edu/~huber/envision/matgui/matgui.htm 8) http://texas.math.ttu.edu/~gilliam/ttu/ttu.htm 9) http://web.mit.edu/afs/athena.mit.edu/software/matlab/www/home.html 10) http://wings.buffalo.edu/computing/sc/mat.html 11) http://www.cise.ufl.edu/~davis/sparse/ 12) http://www.cise.ufl.edu/research/sparse/ 13) http://www.csee.wvu.edu/~trapp/wvumatlab.htm 14) http://www.cyclismo.org/tutorial/matlab/ 15) http://www.damtp.cam.ac.uk/user/na/FoCM/Links.html 16) http://www.engin.umich.edu/group/ctm/ 17) http://www.elektronikhobi.com/ 18) http://www.focm.net/ 19) http://www.indiana.edu/~statmath/smdoc/ 20) http://www.math.ttu.edu/~gilliam/m5399-matlab.html 21) http://www.math.ufl.edu/help/matlab-tutorial/ 22) http://www.math.utah.edu/lab/ms/matlab/matlab.html 23) http://www.maths.dundee.ac.uk/software/ 24) http://www.mathworks.com/ 25) http://www.mathworks.com/company/newsletters/ 26) http://www.mathworks.com/matlabcentral/ 27) http://www.mathworks.com/matlabcentral/fileexchange/loadCategory.do?objectType= category&objectId=13 28) http://www.mathworks.com/products/demos/index.shtml 29) http://www.mathworks.com/products/matlab/ 30) http://www.mathworks.com/support/product/product.html?product=ML 31) http://www.personal.engin.umich.edu/~tilbury/tutorials/matlab.html 32) http://www.rit.edu/~pnveme/Matlab_Course/DEFAULT.HTM 33) http://www.umassd.edu/specialprograms/atlast/welcome.html 34) http://www.utexas.edu/its/rc/ 35) http://www.delab.com/

208 / 209

D. ZGEM

KENAN SAVA

1983 ylnda stanbulda dodum. lkokul renimime 1990 ylnda Cevizli lkokulunda baladktan sonra, drdnc seneden itibaren Zeki Gezer lkokulunda devam ettim. ki yl burada okuduktan sonra ortaokul renimimi Servet ambol Ortaokulunda tamamladm. 1997 ylnda Darca Lafarge Aslan imento Endstri Meslek Lisesinin Elektronik Blmnde ortaretim eitim hayatma baladm. Birinci snf burada okuduktan sonra Darca Lafarge Aslan imento Teknik Lisesinin Bilgisayar Blmne gei yaptm. Ancak, teknik lise dnemimim 3. snfndan ayrlarak Darca Aslan imento E.M.L. Bilgisayar Blmnden mezun oldum. 2000 senesinde girdiim niversite snav sonucu Marmara niversitesi Bilgisayar Programcl nlisans Programn kazandm. 2002 senesinde bu programdan blm birincilii derecesi ile mezun oldum. Daha sonra 2003 ylnda girdiim Dikey Gei Snav sonucu Marmara niversitesi Bilgisayar ve Kontrol retmenlii Blmn kazandm. Halen ayn blmde son snf rencisi olarak renimime devam etmekteyim

209 / 209

You might also like