tmimoza.marmara.edu.tr/~kenan.savas/categories/downloads/... · web view[126] Ünal, m.: “pid...
TRANSCRIPT
T.C.
MARMARA ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
KONTROL EĞİTİMİ İÇİN
MATLAB İLE WEB TABANLI
UYGULAMA ARAÇLARININ GELİŞTİRİLMESİ
Kenan SAVAŞ
YÜKSEK LİSANS TEZİELEKTRONİK BİLGİSAYAR EĞİTİMİ ANABİLİM DALI
BİLGİSAYAR VE KONTROL EĞİTİMİ PROGRAMI
DANIŞMAN
Doç. Dr. Hasan ERDAL
İSTANBUL, 2010
T.C.
MARMARA ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
KONTROL EĞİTİMİ İÇİN
MATLAB İLE WEB TABANLI
UYGULAMA ARAÇLARININ GELİŞTİRİLMESİ
Kenan SAVAŞ (141100420070101)
YÜKSEK LİSANS TEZİELEKTRONİK BİLGİSAYAR EĞİTİMİ ANABİLİM DALI
BİLGİSAYAR VE KONTROL EĞİTİMİ PROGRAMI
DANIŞMAN
Doç. Dr. Hasan ERDAL
İSTANBUL, 2010
ÖNSÖZ VE TEŞEKKÜR
Literatürde MATLAB Web Server (MWS) ile yapılan çalışmaların çok
olmasına rağmen bu alandaki Türkçe kaynakların az olması nedeniyle bu aracı
kullanmakta sınırlılıklar yaşayan tasarımcılara yol göstermek ve fikir vermek üzere
MATLAB destekli bir çalışma konsepti bu tez çalışmasında amaçlanmıştır.
Özellikle sanal laboratuar destekli çözümler sunmak ve kullanabilmek üzere bu
tez çalışması kapsamında geliştirilen Web MWS Sistemi ile farklı üniversite veya
eğitim kurumlarının kendi sanal laboratuarlarını oluşturmaları düşünülmüştür.
Böylece maliyetlerin düşmesi, MATLAB destekli uygulamaların web ortamında
yayınlanması sürecinin basitleştirilmesi ve doğrudan internet ortamı kullanan ve
kendi bilgisayarlarına MATLAB yazılımını kurmaya gerek kalmadan tasarım
yapabilecekleri bir ortam sunulmuştur.
Böyle değerli bir proje çalışmasında kendisi ile çalışmama fırsat verdiği için
Yrd. Doç. Dr. Hasan ERDAL hocama, değerli bilgileri ve yardımlarını esirgemeyen
Gazi Üniversitesi Öğretim Üyesi Yrd. Doç Dr. Erdal IRMAK hocama, bu çalışmayı
yapmamda emeği geçen ve değerli bilgileri ile beni aydınlatan Yrd. Doç Dr. Vedat
TOPUZ hocama, tecrübeleriyle makale çalışması ve bu tez çalışması kapsamında
katkılarını unutamayacağım Arş. Gör. Muhammet ÜNAL'a ve özellikle o değerli
zamanını ayıran ve ilgisini bir an olsun esirgemeyen eşim Bilişim Teknolojileri
Öğretmeni Halide SAVAŞ hanıma ve de dönem dersleri boyunca katkısını her zaman
üst seviyede tutan ve bana destek olan değerli öğrencilerime teşekkür ederim. Bu
çalışmayı gerçekleştirmemde bana yardımcı olan ve çalışmalarından yararlandığım
ve burada adını anmadığım bütün herkese ayrıca teşekkür ederim.
Şu an içinde bulunduğum fırsatların oluşmasında en büyük payı olan ve
hayatım boyunca emeklerini ve yüreklerini unutamayacağım ve daima
hatırlayacağım değerli annem ve babama şükranlarımı sunarım. Öğrenim hayatımda
bu ana gelmemde emeği olan tüm hocalarıma da canı gönülden teşekkür ederim.
Haziran, 2010
Kenan
SAVAŞ
İÇİNDEKİLER
ÖNSÖZ VE TEŞEKKÜR III
İÇİNDEKİLER IV
ÖZET IX
ABSTRACT X
SEMBOLLER XI
KISALTMALARXV
ŞEKİLLER XVI
TABLOLAR XIX
BÖLÜM I 1GİRİŞ ve AMAÇ..................................................................................................1
BÖLÜM II 4MESLEKİ-KONTROL EĞİTİMİ İÇİN WEB TABANLI ÇÖZÜMLER.....4
II.1. Literatürde Mesleki Eğitim ve Web Tabanlı Eğitim Çözümleri...............5
II.2. Literatürde Kontrol Eğitimi, MATLAB ve Uzaktan Laboratuar
Sistemleri........................................................................................................12
II.3. Literatürde MATLAB Web Server (MWS) ve Sanal Laboratuar
Çalışmaları......................................................................................................18
BÖLÜM III 25WEB SUNUCU YAZILIMI VE YAPILANDIRMASI..................................25
III.1. Windows İşletim Sisteminde Apache Web Sunucu Servisinin
Kurulması ve Yapılandırılması.......................................................................25
III.2. PHP Konfigürasyonu.............................................................................30
III.3. Apache Web Sunucusu için PHP Desteğinin Ayarlanması
Konfigürasyonu...............................................................................................33
III.4. Apache için Alternatif Yazılım Paketlerinin Kullanılması...................35
V
SAYFA NO
III.5. Kod Hırsızlığına Karşı Apache ve MWS için Güvenlik Önlemleri......36
BÖLÜM IV 39MATLAB YAZILIMI.......................................................................................39
IV.1. Fonksiyon Dosyaları (M Dosyaları, M Files)........................................40
IV.2. Simulink Arabirimi................................................................................42
IV.2.1. Simulink Ortamında Model Oluşturma............................................43
IV.2.2. Simulink Modellerinin MATLAB Komutları ve Program Kodu ile
Yönetilmesi...................................................................................................47
BÖLÜM V 52MATLAB CONTROL SYSTEM ARAÇ KUTUSU.......................................52
V.1. Modellerin Oluşturulması.......................................................................52
V.2. Model Verilerinin Elde Edilmesi............................................................53
V.3. Modellerin Birbirine Dönüştürülmesi.....................................................54
V.4. Modellerin Birbirine Bağlanması............................................................55
V.4.1. Seri Bağlantı......................................................................................55
V.4.2. Paralel Bağlantı..................................................................................56
V.4.3. Geri Beslemeli Bağlantı.....................................................................56
V.4.4. Çıkışların Toplanması........................................................................57
V.4.5. Girişlerin Dağıtılması........................................................................58
V.4.6. Girişlerin ve Çıkışların Birleştirilmesi...............................................58
V.5. Modellerin Cevaplarının Elde Edilmesi..................................................59
V.5.1. Adım Cevabı (Step Response)...........................................................59
V.5.2. Ani Darbe Cevabı (Impulse Response).............................................60
V.5.3. Rampa Cevabı (Ramp Response)......................................................62
BÖLÜM VI 64MATLAB WEB SERVER (MWS) ARAÇ KUTUSU....................................64
VI.1. MWS Araç Kutusu Mimarisi.................................................................64
VI.2. MATLAB Web Server (MWS) Araç Kutusu ve WWW İlişkisi...........66
VI
VI.3. MATLAB Web Server’ın Kullanılmasının Avantajları........................67
VI.4. MATLAB Web Server’ın Kullanılmasının Dezavantajları...................68
VI.5. MWS Gereksinimleri.............................................................................69
VI.5.1. Web Tarayıcı Yazılımı.....................................................................69
VI.5.2. Web Sunucu Yazılımı......................................................................70
VI.6. MWS Kurulum ve Kaldırma Süreci......................................................70
VI.6.1. Windows için MWS Yükleme Süreci..............................................70
VI.6.2. Windows için MWS Kaldırma Süreci.............................................72
VI.7. MATLAB Web Server Uygulamaları Tasarımı....................................72
VI.8. MWS ile Uygulama Hazırlama Süreci..................................................73
VI.8.1. Girdi Dökümanları Hazırlama (Girdi Şablonu)...............................74
VI.8.4. Ekstra Uygulama Örnekleri.............................................................83
VI.8.5. MATLAB Web Server Elemanları.....................................................88
VI.8.5.1. MWS Dosya Konumları................................................................89
VI.8.6. MWS Fonksiyonları...........................................................................94
VI.8.6.1. htmlrep Komutu............................................................................94
VI.8.6.2. matweb Komutu............................................................................96
VI.8.6.3. wscleanup Komutu........................................................................96
VI.8.6.4. wsprintjpeg Komutu......................................................................96
VI.8.6.5. wssetfield Komutu........................................................................97
VI.8. MWS Uygulamaları için Sunucu Güvenliği..........................................97
BÖLÜM VII 98TASARLANAN WEB MWS SİSTEMİ..........................................................98
VII.1. Web MWS Sistemi Tasarım Amacı.....................................................98
VII.2. Web MWS Sistemi Kullanımı.............................................................98
VII.3. Web MWS Sistemi Mimarisi...............................................................99
VII.4. Web MWS Sistemi Tasarımı.............................................................101
VII
VII.5. Web MWS Uygulaması Paket Dosya Yapısı.....................................105
VII.6. Web MWS Web Arayüzü..................................................................107
VII.6.1. Web MWS Sistemine Uygulama Yükleme..................................108
VII.6.2. Web MWS Sisteminde Kayıtlı Uygulamaların Listelenmesi.......111
VII.6.3. Web MWS Uygulamasını Sistemden Kaldırma...........................112
VII.7. Web MWS MATLAB Arayüzü.........................................................113
VII.8. Web MWS Örnek (Demo) Uygulamaları Desteği.............................117
BÖLÜM VIII 119UYGULAMALAR...........................................................................................119
VIII.1. ACSES Uygulaması.........................................................................120
VIII.1.1. ACSES Mimarisi........................................................................120
VIII.1.2. ACSES Deneyleri ve Uygulama Amacı.....................................123
VIII.1.3. ACSES Ortamı ve Simülasyon Arayüzü....................................126
VIII.1.4. Uygulama Sonucu.......................................................................132
VIII.2. WBCA Araç Kutusu Uygulaması....................................................133
VIII.2.1. Kümeleme Algoritmaları............................................................133
VIII.2.2. WBCA Araç Kutusu Tasarımı....................................................135
VIII.2.3. WBCA Araç Kutusu Mimarisi....................................................135
VIII.2.4. WBCA Ortamı ve Simülasyon Arayüzü.....................................136
VIII.2.5. Uygulama Sonucu.......................................................................143
VIII.3. WBCSE Uygulaması........................................................................143
VIII.3.1. WBCSE Tasarımı........................................................................144
VIII.3.2. WBCSE Donanım ve Yazılım Mimarisi.....................................146
VIII.3.4. WBCSE Ortamı ve Simülasyon Arayüzü...................................147
VIII.3.6. Uygulama Sonucu.......................................................................151
BÖLÜM IX 153SONUÇLAR VE TARTIŞMA........................................................................153
VIII
BÖLÜM X 157DEĞERLENDİRME VE ÖNERİLER..........................................................157
KAYNAKLAR 161
EKLER 172
ÖZGEÇMİŞ 173
IX
ÖZET
KONTROL EĞİTİMİ İÇİN MATLAB İLE WEB TABANLI
UYGULAMA ARAÇLARININ GELİŞTİRİLMESİ
Özellikle teknik eğitim ve mühendislik eğitiminde öğrencilere verilecek teorik
bilgilerin yanı sıra uygulama çalışmaları ve deneyler önemli bir yer tutmaktadır.
Ancak, her yıl artan öğrenci sayısı ve buna paralel olarak uygulama yapılan
laboratuar ortamlarının hem fiziksel, hem donanım, hem de öğretim elemanı sayısı
açısından yetersiz hale gelmesi eğitim kurumları için kaynak yetersizliği ve mevcut
kaynaklarının yeterince kullanılamaması açısından problem olmaya başlamıştır.
Bunun sonucu olarak uygulamalı eğitim yeterli düzeyde ve kalitede
yapılamamaktadır. Bu sorunun çözümüne yönelik pekçok farklı web tabanlı
uygulamalar geliştirilmektedir.
Gelişen teknoloji sayesinde günümüzde bilgisayar eğitimin çok önemli bir
aracı haline gelmeye başlamıştır. Kontrol alanı eğitiminde bilgisayar tabanlı
uygulamalar laboratuar ortamındaki çalışmalar ile desteklenmektedir. Bu
çalışmaların pek çoğunda MATLAB yazılımı kullanılmakta ve böylece teorik
bilgilerin benzetim ortamında analizine yardımcı olunmaktadır. MATLAB ile
yapılacak uygulamaların web tabanlı olarak hazırlanmasında kullanılan araçlardan
biri MATLAB Web Server (MWS) araç kutusudur. Bu çalışmada da bu araçtan
yararlanılmış ve kontrol eğitimi için çeşitli uygulamalar tasarlanmıştır.
Çalışmada Marmara Üniversitesi Teknik Eğitim Fakültesi (M.Ü.T.E.F.)
öğrencilerinin kontrol derslerinde görmüş oldukları teorik bilgileri pekiştirmek üzere
laboratuar deneylerini kendi kendilerine yapabilecekleri, uzun zaman alan ve
MATLAB bilgisi gerektiren uygulamaları basit ve kolay ara yüzler eşliğinde ve de
hızlı ve zahmetsizce gerçekleştirebilmeleri amacıyla web tabanlı uygulamalar
geliştirilmiştir. Böylece öğrencilerin kendi bilgisayarlarına MATLAB aracı
kurmasına gerek kalmadan istedikleri bir zamanda internet üzerinden
çalışabileceklerdir. Yapılan uygulama ile öğretim sürecinde zaman tasarrufu
sağlanacak ve laboratuar kaynaklarının daha verimli kullanımı mümkün olacaktır.
X
Haziran, 2010
Kenan
SAVAŞ
ABSTRACT
DESIGNING WEB BASED APPLICATION TOOLS FOR CONTROL
EDUCATION WITH MATLAB
Especially in technical education and engineering, training will be given to
students with applications of theoretical studies and laboratoary experiments.
However, due to the increasing number of students, a few teaching staff and
inadequate resources and lack of available resources in terms of the physical
laboratory environment, adequate and efficient learning has not been taken place. As
a result, practical training and the education quality may not be adequate. To solve
this problem many different web-based applications are being developed.
Today, the computer in education has become an important tool. Control areas
in the computer-based education are supported by studies in the laboratory
environment. Most of these studies have been using the MATLAB software so that
theoretical knowledge could be supported with simulation analysis. Web-based
applications to be made with MATLAB can be achieved via different tools, one of
which is the MATLAB Web Server (MWS) tool box. This study has also benefited
from this tool and a variety of applications for control education has been designed.
In this study, the web-based applications are developed for students which has
little or no MATLAB knowledge to perform long time-consuming and MATLAB-
knowledge-required applications at Marmara University, Technical Education
Faculty (M.U.T.E.F.). By using these, they can perform different experiments
XI
quickly and effortlessly in control lessons with the support of simply and easily web
based interfaces. Therefore, they are able to study with their local PCs at any time
through the internet unlike the necessity of installing MATLAB tool to their
computers. As a consequence, the teaching process will be provided with saving time
and more efficient use will be possible for resources.
June, 2010
Kenan
SAVAŞ
XII
SEMBOLLER
τ : zaman sabiti
π : pi sayısı
Ζ : zeta, kısi, sönüm oranı.
Β : beta değeri
Δ : delta (diferansiyel)
Θ : açısal hız
± Δe : ±histeresiz bandı sınır hata değeri
±V : ±besleme gerilimi
a : üstel frekans (Hz)
B : servo motor sürtünme katsayısı
C : kondansatör elemanı veya Celcius (sıcaklık birimi)
C(s) : çıkış sinyali (s uzayında)
c(t) : çıkış sinyali (t uzayında)
Cd : türev kondansatörü
Cf : geri besleme kondansatörü
CO : controller output (kontrolör çıkış sinyali)
D : derivative (türev)
d : diferansiyel
dc : çıkış sinyali diferansiyeli
dt : zaman diferansiyeli
E(s) : hata sinyali (s uzayında)
e(t) : hata sinyali (t uzayında)
Eç : çıkış gerilimi
XIII
Eg : giriş gerilimi
F(s) : transfer fonksiyon
G(s) : plant açık çevrim transfer fonksiyonu
Gc(s) : kontrolör transfer fonksiyonu
Gp(s) : plant (sistem) açık çevrim transfer fonksiyonu
I : integral
IL : yük akımı
J : servo motor ataleti
K : sabit kazanç katsayısı
Kc, Ku : kritik kazanç (Ziegler-Nichols yöntemi için)
KD : türev katsayısı
Ki : integral katsayısı , servo motor zıt emk kazanç katsayısı
KP : oransal katsayı
L : bobin elemanı
MP : maksimum aşım miktarı
P : proportional (oransal)
PI : oransal-integral etki
PID : oransal-integral-türev etki
PV : proses variable (proses değişkeni)
R : direnç elemanı
R(s) : giriş sinyali (s uzayında)
r(t) : giriş sinyali (t uzayında)
Rd : türev direnci
ref : referans
XIV
Rf : geri besleme direnci
Ri : servo motor iç sargı direnci
RL : yük direnci
s : kompleks değişken (Laplace değişkeni)
SP : set point (referans)
SV : set variable (referans değişkeni)
T : zaman sabiti, tork
t : zaman
TC, PU : kritik peryot (Ziegler-Nichols yöntemi için)
Td : türev zamanı
Tf, TF : transfer fonksiyonu
Ti : integral zamanı
tp, TP : aşım zamanı
tr, Tr : yükselme zamanı
ts, TS : oturma zamanı
U(s) : kontrolör sinyali (s uzayında)
u(t) : kontrolör sinyali (t uzayında)
UD : türev kontrol sinyali
Ui : integral kontrol sinyali
Ui : servo motor zıt emk gerilimi
Umax, Ymax : maksimum on/off kontrol doyum voltajı değeri
UP : oransal kontrol sinyali
Vi : giriş gerilimi
VO : çıkış gerilimi
XV
VPV : proses (sistem) çıkış sinyali
Vsat : saturation (doyum) voltajı değeri
VSP : referans sinyali
Vx : on/off histeresiz bandı sınır gerilimi
Vz : zener gerilim değeri
Wd : doğal frekans (titreşim)
Wn : doğal frekans (sönümlülük)
Xsd : on/off histeresiz band genişliği
XVI
KISALTMALAR
ACSES : Automatic Control Simulation Environment System (Otomatik Kontrol Simulasyon Ortamı Sistemi)
ADC : Analog Dijital Converter (Dönüştürücü)
ANN : Artificial Neural Networks (Yapay Sinir Ağları)
DAC : Dijital Analog Converter (Dönüştürücü)
GA : Genetik Algoritma
httpd : Hyber Text Transfer Protocol Daemon (Web sunucu yazılımı)
MÜTEF : Marmara Üniversitesi Teknik Eğitim Fakültesi
MWS : MATLAB Web Server
OPAMP : OPerational AMPlifier (İşlemsel Yükselteç)
PID : Proportional Integral Derivative (Oransal İntegral Türev)
URL : Uniform Resource Locator (İnternet bağlantı adresi)
WAMP : Windows-Apache-MySQL-PHP
WBCA : Web Based Clustering Analysis (Web Tabanlı Kümeleme Analizi)
WBCSE : Web Based Control Simulations Environment (Web Tabanlı Kontrol Simülasyonları Ortamı)
YSA : Yapay Sinir Ağları
ZN : Ziegler-Nichols
XVII
ŞEKİLLER
Şekil III. 1 Apache web sunucusu kurulumu başlangıç ekranı..................................26Şekil III. 2 Apache kurulum ve kullanıcı bilgileri.....................................................27Şekil III. 3 Apache kurulum yeri ve yardım dosyaları için dizin yolu seçimi...........28Şekil III. 4 Windows servis penceresinde Apache web sunucu servisi.....................30Şekil III. 5 php.ini konfigürasyonu için extension_dir ayarının yapılması...............31Şekil III. 6 httpd.conf konfigürasyonu için register_globals ayarının yapılması.......32Şekil III. 7 httpd.conf konfigürasyonu için upload_tmp_dir ayarının yapılması.......32Şekil III. 8 httpd.conf konfigürasyonu için session.save_path ayarının yapılması....33Şekil III. 9 httpd.conf konfigürasyonu için PHP modülünün tanıtılması..................34Şekil III. 10 httpd.conf konfigürasyonu için default index dosyasını belirleme........35Şekil IV. 1 MATLAB ana penceresi..........................................................................40Şekil IV. 2 MATLAB Editor uygulaması ekran görüntüsü.......................................41Şekil IV. 3 Simulink başlangıç ekranı görüntüsü.......................................................42Şekil IV. 4 Simulink ortamında boş çalışma alanı.....................................................43Şekil IV. 5 Örnek bir kontrol sisteminin Simulink ortamında oluşturulması............44Şekil IV. 6 Sum bloğunun özellikler penceresi..........................................................45Şekil IV. 7 Transfer Fcn bloğunun özellikler penceresi.............................................45Şekil IV. 8 Simulink ortamında simülasyon süresinin ayarlanması...........................46Şekil IV. 9 Simulink ortamında örnek verilen bir sistemin adım cevabı...................47Şekil V. 1 Seri bağlı modellerden tek bir modelin elde edilmesi...............................55Şekil V. 2 Paralel bağlı modellerden tek bir modelin elde edilmesi..........................56Şekil V. 3 Geri beslemeli modelin tek bir modele indirgenmesi...............................57Şekil V. 4 İki model çıkışlarının toplanması ile oluşan çıkışın elde edilmesi............57Şekil V. 5 İki modele ait çıkışların dağıtılması..........................................................58Şekil V. 6 İki modele ait girişlerin ve çıkışların birleştirilmesi.................................59Şekil V. 7 Örnek verilen bir sistemin adım cevabı grafiği.........................................60Şekil V. 8 Örnek verilen bir sistemin ani darbe cevabı grafiği..................................61Şekil V. 9 Örnek verilen bir sistemin rampa cevabı grafiği.......................................63Şekil VI. 1 MWS araç kutusunun MATLAB ve web kullanıcıları ile bağlantısı......65Şekil VI. 2 MWS aracı ile web sunucu yazılım (http daemon aynı bilgisayarda).....67Şekil VI. 3 MWS aracı ile web sunucu yazılım (http daemon) farklı bilgisayarda. . .67Şekil VI. 4 webmagic örnek MWS uygulaması giriş sayfası.....................................77
XVIII
SAYFA NO
Şekil VI. 5 webmagic örnek MWS uygulaması çıkış (sonuç) sayfası.......................83Şekil VI. 6 players örnek MWS uygulaması veritabanı dosyası veri listesi..............84Şekil VI. 7 players örnek MWS uygulaması çıkış (sonuç) sayfası............................84Şekil VI. 8 webpeaks örnek MWS uygulaması giriş sayfası.....................................85Şekil VI. 9 webpeaks örnek MWS uygulaması çıkış (sonuç) sayfası........................87Şekil VI. 10 webstock örnek MWS uygulaması giriş ve çıkış sayfaları....................88Şekil VI. 11 MATLAB’in MWS ile web üzerinden çalıştırılması............................89Şekil VII. 1 Web MWS Sistemi ile tasarım süreci....................................................99Şekil VII. 2 Web kullanıcısının MWS araç kutusunu kullanırken izlediği adımlar 100Şekil VII. 3 Web kullanıcısının Web MWS Sistemini kullanırk. izlediği adımlar..101Şekil VII. 4 Web MWS sistemi yükleme paket dosyası içeriği...............................107Şekil VII. 5 Web MWS Sistemi ana sayfası............................................................108Şekil VII. 6 Web MWS Sistemi uygulama yükleme giriş sayfası...........................109Şekil VII. 7 Web MWS Sistemi uygulama yükleme sonuç sayfası.........................110Şekil VII. 8 Web MWS Sistemi herhangi bir uygulama bilgileri erişim sayfası.....111Şekil VII. 9 Web MWS Sistemi yüklü uygulamalar listesi sayfası.........................112Şekil VII. 10 Web MWS Sistemi uygulama kaldırma sayfası.................................113Şekil VII. 11 Web MWS Sistemi günlük (log) dosyası içeriği................................115Şekil VII. 12 Web MWS Sistemi örnek (demo) uygulamalar listesi.......................118Şekil VIII. 1 ACSES’nin öğretim sürecine katkısı..................................................120Şekil VIII. 2 ACSES mimari yapısı.........................................................................121Şekil VIII. 3 ACSES tasarımından örnek bir deneye ait Simulink modeli..............122Şekil VIII. 4 ACSES deneyleri tasarım adımları.....................................................123Şekil VIII. 5 ACSES web kullanıcı arayüzü............................................................126Şekil VIII. 6 ACSES deneyi 1.1 amaç sayfası.........................................................127Şekil VIII. 7 ACSES deneyi 1.1 teorik bilgi sayfası...............................................127Şekil VIII. 8 ACSES deneyi 1.1 işlem basamakları sayfası....................................128Şekil VIII. 9 ACSES deneyi 1.1 simülasyon parametreleri sayfası.........................129Şekil VIII. 10 ACSES deneyi 1.1 sorular sayfası....................................................130Şekil VIII. 11 ACSES deneyi 1.1 simülasyonu grafik çıktısı..................................131Şekil VIII. 12 ACSES simülasyonu örnek sayısal değer sonuç sayfası..................131Şekil VIII. 13 WBCA araç kutusunun öğretim sürecine katkısı..............................135Şekil VIII. 14 WBCA araç kutusu mimarisi............................................................136Şekil VIII. 15 WBCA araç kutusu web arayüzü......................................................137Şekil VIII. 16 WBCA araç kutusu simülasyon arayüzü giriş sayfası......................138Şekil VIII. 17 WBCA web arayüzü yardım sayfası.................................................139Şekil VIII. 18 WBCA ile kullanıcılarının kendi veri seti dosyasını upload imkanı 140
XIX
Şekil VIII. 19 WBCA ile simülasyona ait sayısal değer sonuç sayfası...................141Şekil VIII. 20 WBCA ile simülasyon grafik çıktısı.................................................142Şekil VIII. 21 WBCA simülasyonu sonuç veri seti dosyasının download imkânı. .142Şekil VIII. 22 RT 532 basınç prosesi fiziksel görüntüsü.........................................146Şekil VIII. 23 WBCSE web kullanıcı arayüzü........................................................147Şekil VIII. 24 WBCSE açık çevrim simülasyonu giriş (parametreler) sayfası.......149Şekil VIII. 25 WBCSE açık çevrim simülasyonu sonuç sayfası.............................149Şekil VIII. 26 WBCSE kapalı çevrim on/off denetim simülasyonu giriş sayfası....150Şekil VIII. 27 WBCSE kapalı çevrim on/off denetim simülasyonu sonuç sayfası. 150Şekil VIII. 28 WBCSE kapalı çevrim PID denetim simülasyonu giriş sayfası.......151Şekil VIII. 29 WBCSE kapalı çevrim PID denetim simülasyonu sonuç sayfası.....151
XX
TABLOLAR
Tablo V. 1 MATLAB’te kontrol modellerinin oluşturulması....................................52Tablo V. 2 MATLAB’te model verilerinin elde edilmesi.........................................53Tablo V. 3 MATLAB’te modellerin birbirine dönüştürülmesi..................................54Tablo VI. 1 matlabserver parametreleri.....................................................................90Tablo VI. 2 matweb.conf alanları..............................................................................92Tablo VI. 3 MWS fonksiyonları listesi......................................................................94
XXI
SAYFA NO
BÖLÜM I
GİRİŞ ve AMAÇ
Gelişen teknoloji sayesinde günümüzde bilgisayar eğitimin çok önemli bir
aracı haline gelmeye başlamıştır. Özellikle uygulamalı derslerin bilgisayarlar
eşliğinde simülatörlerle işlenmesi, hem zamanı kısaltmakta, hem de konuların daha
iyi kavranmasını sağlamaktadır. Kontrol alanı eğitiminde bilgisayar tabanlı
uygulamalar, laboratuar ortamındaki çalışmalar ile desteklenmektedir. Bu
çalışmaların pek çoğunda, MATLAB yazılımı kullanılmakta ve böylece teorik
bilgilerin benzetim ortamında analizine yardımcı olunmaktadır. Ayrıca, kontrol
alandaki ihtiyaçlara büyük oranda cevap vermesi, öğrencilerin teorik bilgilerini
destekleyici çalışmaları kolay bir şekilde ve kısa bir süre içerisinde geliştirebilmeleri
nedeniyle bu araç kontrol eğitiminde büyük oranda tercih edilmektedir [1].
1
BÖLÜM II
MESLEKİ-KONTROL EĞİTİMİ İÇİN WEB TABANLI ÇÖZÜMLER
Literatürde, web tabanlı eğitim amaçlı yapılan pek çok araştırma ve çalışma
mevcuttur. Eğitim amaçlı bu çalışmalar çok çeşitli amaçlarla gerçekleştirilmiştir.
Öğretim sürecine olan katkısı mesleki veya pedagoji yönünde olabilmektedir. Web
ve internet tabanlı yardımcı araçlar elektronik ortamlarda öğretim yeteneğini
geliştirir. Bu araçlar beyaz tahta, yardım odaklı ve diğerleri ile tümleştirildiğinde web
önemli ölçüde öğrencilerin öğretim yaşantılarına katkı seviyesini arttırır. Web basit
bir ara yüze bu araçların çoğunun tümleştirilmesi için etkili bir mekanizma sağlar ve
içeriğin hızlı bir şekilde değiştirilmesi için ideal bir araçtır. Web bazı öğretim
çalışma alanlarında yeni bir çağ aralamaktadır. Özellikle öğrenme ve alternatif bilgi
formatları için fırsatların arttırılmasını sağlar. Hedef öğrenme süreci içinde
etkileşimli, dinamik bir ortamda, eğitimci, öğrenci ve online materyal işin içinde
olmak üzere sanal bir sınıf oluşturmak, tamamıyla öğrencileri öğrenme yaşantılarına
bizzat katmaktır [1].
Web ve diğer internet tabanlı işbirlikli araçlar dijital ortamda eğitim ve
öğrenme yeteneğini önemli ölçüde arttırmaktadır. Web, sanal laboratuarlar veya
yardım odaları gibi araçlarla tümleştirildiği zaman öğretme süreçleri ile öğrencilerin
iç içe olma seviyesi artabilmektedir. Bu tip pek çok aracın basit bir arayüz ile
tümleştirilmesi etkili bir malzeme sağlar ve hızlıca değişen bilgi için uygun bir
araçtır. Web öğrenme fırsatlarının arttırılması ve bilgi için alternatif
yönlendirmelerin sağlanmasıyla bazı çalışan alanlarda yeniliklere sebep olmaktadır.
Bir web dersi bir öğretmen ve kayıtlı bir öğrenci grubuyla birbirleriyle
kurabilecekleri sanal bir sınıfta öğrenen bir topluluğu bir araya getirir. Amaç
süresince tamamıyla öğrencileri öğrenme yaşantılarının içine sokan etkileşimli,
dinamik bir ortamda öğrenci, online materyal ve öğrenmeyi içeren yapıya sahip
yöntemler kullanan bir sanal sınıf oluşturmaktır [6].
2
BÖLÜM III
WEB SUNUCU YAZILIMI VE YAPILANDIRMASI
Web sunucusu ya da ağ sunucusu, internet üzerinde bir web sitesinin
yayınından sorumlu olan bilgisayardır. HTTP başta olmak üzere HTTPS, FTP,
SMTP, POP3, DNS ve hatta gerçek zamanlı veri akışı (streaming media) gibi farklı
hizmetler verebilir [101].
Hizmet sunucuları işlevini görecek bilgisayarlar iki alt grupta toplanabilir.
Birincisi Internet erişimini sağlayan diğer bir deyişle Internet bağlantı hizmetini
verecek olan bilgisayar, diğeri ise hizmet sunucu bilgisayar buna da web servislerinin
verildiği bilgisayar olarak tanımlayabiliriz. Değişik firmaların ürettiği çeşitli web
sunucu yazılımları bulunmaktadır. Dünyadaki web servislerinin yarısından fazlasını
Apache web sunucuları vermektedir. Bu sunucular güvenli erişim ve web üzerinde
yönetim sağlayan CGI (Common Gateway Interface) yapısında web arayüzlerini de
sağlamaktadır [102-103]. Apache web sunucusu hakkında detaylı bilgi ve belgelere
ulaşmak için [104] nolu kaynağa bakılabilir.
III.1. Windows İşletim Sisteminde Apache Web Sunucu Servisinin Kurulması
ve Yapılandırılması
Apache web sunucusu için internet üzerinden güncel sürümler temin edilebilir.
[105] nolu kaynakta verilen web bağlantısı kullanılarak Apache web sunucu
yazılımını kurmak üzere çalıştırılabilir kod uzantılı (.exe), derlenmiş Windows
dosyası (.msi) veya sıkıştırılmış (.zip) formatlı gibi çeşitli yükleme paketlerinden
uygun olanı web sunucu bilgisayarına yüklenmelidir. Kurulumun Microsoft
Windows versiyonu kurulumu sırasında bir Windows bilgisayar programının
kurulumu gibidir. Apache web sunucusunun kurulumu sırasında sunulan
seçeneklerden yararlanılarak kolayca kurulabilmektedir. Kurulum başladıktan sonra
ilk gelen pencere Şekil III.1’deki gibidir. Bu pencereden web sunucusunun sürümü
3
ile ilgili bilgiler gelir. “Next” düğmesi işaretlenerek kurulumun bir sonraki aşamaya
geçmesi sağlanır [106].
Şekil III. 1 Apache web sunucusu kurulumu başlangıç ekranı
Şekil III.2’de görüldüğü üzere Apache web sunucusu ve kullanıcı ile ilgili
bilgilerin girilmesi ekranı Apache kurulumu için önemlidir. “Network Domain”
kutusu Apache web sunucusunun çalışacağı bilgisayar ağının bölge ağ adı verilir.
Burada kişisel bir bilgisayar yüklenmesi durumunda “localhost” olarak girilmesi
istenir. Eğer bir “DNS” kaydı olan bir ağ kullanılıyor ise örneğin “bizimsirket.com”
gibi ağ kaydı yapılmış ise buraya kaydı bulunan bu ağ adının girilmesi beklenir.
4
Şekil III. 2 Apache kurulum ve kullanıcı bilgileri
“Server Name” kutusuna Apache web sunucusunun çalışacağı ağ kaydı
yapılmış olan bilgisayarın adı tamamı ile girilir. Örnek olarak bilgisayarın ismi
“www” ise bu alana girilecek olan adres “www.bizimsirket.com” şeklindedir. Bu
adres Internet üzerinden erişilecek olan bilgisayarların bu adresi yazdığında
ulaşmasını ve ağ üzerinde tanımlı olmasını sağlar. En alt kutucukta “Administrator’s
E-mail Adress” kısmında Apache web sunucunun cevap bekleyen kullanıcıya hata
mesajı vermesi durumunda iletişimde bulunacağı yönetici e-posta adresidir. En altta
bulunan "Install Apache HTTP Server programs and shortcuts to" seçimlik düğme
ise bilgisayarımızın çalıştığı işletim sisteminin özelliğinden kaynaklanan bir duruma
göre yapılandırma yapılmasını sağlar. Microsoft Windows XP, NT ve 2000 üzeri
işletim sistemlerinde kullanıcıları ayrı olarak açılması sağlandığından her kullanıcı
sisteme kendi adı ile açılış sağlar. Bu durumda kullanıcılar aynı bilgisayarı
kullansalar bile kendilerine ait olan hesaplara ait haklar ile işlem yapabilirler. Bu
durumda yönetici olmayan birisi bu bilgisayarı açması durumunda Apache web
sunucusunu çalıştıramayacaktır. Eğer bu bilgisayarı kullanan tüm kullanıcıların web
sunucusunu çalıştırması isteniyor ise ilk seçenek olan “Run as a service for All
Users” seçeneğin işaretlenmesi istenir. Bu kutucuğun işaretlenmesi durumunda
Apache web sunucusu bir Windows işletim sistemin servisi gibi çalışacaktır . Diğer
seçenek olan “Run when started manually, only for me (kişi)” işaretlenmesi
5
durumunda Apache web sunucusu sadece bilgisayar kullanıcısı olan “kişi” tarafından
çalıştırılabilir. "Next" tuşu ile devam edildiğinde “Custom” seçeneği ile kurulum
yapan kullanıcı kurulum sırasında Apache web sunucusuna ait dokümanları veya
“Runtime” olarak bahsedilen Apache web sunucusunun çalıştırma dosyalarını
seçmesi beklenir. Apache web sunucusu “Runtime” dosyaları programın çalışması
için gerekli olan tüm dosyaları içerdiğinden, eğer bu dosyaların kurulum sırasında
yüklenmesi iptal edilirse web sunucusu hiç çalışmayacaktır.
Bir sonraki adımda “Custom” seçeneği ile kuruluma devam edilir ve Şekil
III.3’deki gibi bir ekran ile karşılaşılır. Bu pencereden Apache sunucusunun kurulum
yolu değiştirilmek istenirse “Change” düğmesi yeni bir kurulum dizin yolu
seçilebilir.
Şekil III. 3 Apache kurulum yeri ve yardım dosyaları için dizin yolu seçimi
Kurulum yerinin seçimi web sunucusunun kullanacağı dosyalarının
yerleşiminin belirlenmesi amacıyla düzenlenmektedir. Genellikle kurulum yeri “C:\
Program Files\Apache2 Group” dizini içerisindedir. Eğer önceki kurulum
aşamalarında kurulum seçeneği “Complete” olarak seçilirse kurulum dizini belirtilen
yol olarak kalır. Eğer farklı bir kurulum yeri belirlenecek ise “Change” düğmesine
basılarak kurulum dizin yolu ve dolayısıyla Apache (web sunucusu) dizin yolu
değiştirilebilir. Kurulum ayarları tamamlandıktan sonra artık bilgisayara web
6
sunucusunun kurulması işlemi başlayacaktır. Bir sonraki ekranda “Install”
düğmesine basılarak kurulum aşamasına geçilir. Kurulum işlemi başladıktan sonra
disk alanına kurulum için gerekli dosyalar kopyalanmaya başlar ve son olarak
“Finish” düğmesine basılarak kurulum işleminin bitirilmesi sağlanır.
Kurulum işlemi bittikten sonra Windows gezgini ile “C:\Program Files\
Apache2 Group” dizinine gidilerek Apache web sunucusu kontrol paneli
çalıştırılarak web sunucusunun durumu kontrol edilebilir. Bu kontrol paneline daha
sonradan ihtiyaç duyulur ise web sunucusu “stop” düğmesi ile durdurulur ve kontrol
panelinde bulunan “start” düğmesi kullanılarak daha önceden durdurulmuş olan web
sunucu hizmeti yeniden başlatılır. Kontrol paneli bize web sunucusunun durumu
hakkında bilgi verir. Eğer web sunucusu herhangi bir nedenden dolayı durmuş veya
çalışmıyor ise yeniden çalıştırmak için veya diğer araçlar yardımıyla durma nedenini
araştırmamıza yardımcı olmaktadır. Windows 2000 veya Windows XP işletim
sistemleri Windows NT çekirdeği üzerinde çalıştığından “services” Windows
yönetim modülünden servis olarak kontrol edilebilir.
Windows 2000 veya Windows XP işletim sistemlerinde yönetimsel araçlar
veya bilgisayarımdan yönet mönüsüne girilerek “Services (Hizmetler)” araçlarının
bulunduğu mönüye ulaşılır (Şekil III.4). Burada Windows işletim sistemi servisi
olarak görünen “Apache” servisi ile web sunucusunun çalışması kontrol edilebilir.
Eğer istenirse Windows bilgisayar programlama araçları ile servislere ek yazılımlar
geliştirilerek web sunucunun kontrol edilmesi sağlanır. Böyle bir durum özellikle
sistem yöneticisinin sunucu bilgisayar sisteminin yanında bizzat bulunmadığı
durumlarda başka bir ortama GSM mesajı gönderilmesini veya çağrı bırakılmasını
sağlayan mekanizmaların çalışmasını sağlar. Yüksek bulunurluluk gerektiren çalışma
durumlarında bu programlama araçları sistem yöneticilerinin işlerini oldukça
kolaylaştırmaktadır.
7
Şekil III. 4 Windows servis penceresinde Apache web sunucu servisi
Apache web sunucusu ayarlarının yapılması işlemi kurulum işleminin hemen
ardından yapılması beklenir. Genellikle Windows işletim sisteminde kurulum sonrası
ayarlamalara gerek duyulmamaktadır. Bir betik dili desteği verilecek ise bu kurulum
yapılan dizindeki “conf” dizini içerisinde bulunan httpd.conf dosyası bir kelime
işlemci ile açılarak gerekli düzeltmelerin yapılması gerekir. Bu düzeltmeler öncelikle
sunucunun çalışacağı port numarası sunucu ismi ve bağlantı kurulacak e-posta
adresleri gibidir.
Windows işletim sisteminde olduğu gibi httpd.conf dosyası bir kelime işlemci
ile açılarak gerekli düzeltmelerin yapılması gerekir. Bu yapılandırma dosyasının bir
çok ayarı Windows işletim sisteminin aynısıdır. Farkları sadece dizin yapılarında
değişmektedir. Dizin yapısı Windows işletim sisteminde “C:\Program Files\Apache2
Group” şeklindedir. Linux veya unix işletim sisteminde dizin yapısı ise
“/usr/var/www” veya “/home/www” şeklindedir. Daha sonra betik dili veya
veritabanı desteği gibi verilecek desteklere göre yapılandırma ayarları oluşturulur.
III.2. PHP Konfigürasyonu
PHP betik dili kurulumu için gerekli dosyaları [107] kaynağından download
edilebilir. Bu web adresinde bulunan zip uzantılı dosya bilgisayarın kök dizininde
açılacak olan “C:\PHP” dizinine kopyalanarak sıkıştırılmış dosya açılır. Bu dizin
içerisine açılan dosyalar içerisinde bulunan “php.ini-dist” isimli dosyayı “php.ini”
8
şeklinde yeniden isimlendirilerek Windows işletim sisteminizin bulunduğu dizine
kopyalanmalıdır. Bu dosya içerisinde kullanmak istenilen satırları aktif hale getirmek
için satır başlarında bulunan ; (noktalı virgül) işaretini kaldırmak yeterlidir. Bu dizin
kullanmakta olduğunuz işletim sisteminin özelliğine göre değişmektedir. Windows
işletim sisteminin kurulu olduğu kök dizin “C:\Windows” veya “C:\Winnt” şeklinde
olabilir [103].
php.ini dosyası herhangi bir metin editörü (Notepad, Wordpad gibi) programı
ile açılarak, extension_dir ile başlayan satır Şekil III.5’te de görüldüğü extension_dir
direktifinin ayarı C:\PHP\extensions olarak değiştirilir (Bu ayar PHP dosyalarının
kurulum sırasında çıkarıldığı dizin içinde php_ ile başlayan .dll uzantılı dosyaların
tam yoludur.).
Bu direktifin doğru olarak ayarlanması, PHP eklentilerini sağlıklı bir şekilde
yükleyebilmeniz ve kullanabilmeniz için gereklidir.
Şekil III. 5 php.ini konfigürasyonu için extension_dir ayarının yapılması
Kullanmak istenilen eklentiler php.ini dosyası içerisinde bulunan extension
direktifini kullanarak yüklenebilir. Örnek olarak imaj fonksiyonlarını aktif hale
getirmek için extension=php_gd.dll gibi bir kullanım yeterlidir. Tüm eklentilere ait
yükleme direktifleri php.ini dosyası içerisinde yazılı halde gelmektedir. Yüklenmesi
istenilen eklentiye ait direktifin olduğu satırın başındaki ; (noktalı virgül) karakteri
kaldırılarak yüklenmesi sağlanabilir.
php.ini dosyası içinde bulunan register_globals ile başlayan satırdaki
register_globals direktifinin ayarını Şekil III.6'da görüldüğü üzere On olarak
değiştirilmelidir. Bu direktifin görevi kısaca, HTML forumlarından veya parametre
olarak gönderilen değerlerin ve isimlerinin otomatik olarak PHP içerisinde
tanımlanmış değişken biçiminde kullanılabilmesini veya kullanılamamasını
9
sağlamaktır. Örneğin test.php?sayfa=1 gibi çağrılan PHP betiğinin içinde, sayfa
isimli değeri $sayfa değişkeni olarak kullanabilmek için bu direktifin ayarı On
olmalıdır.
register_globals direktifi PHP 4.1.0 sürümlerinden önce On olarak ayarlanmış
gelir. PHP 4.1.0 ve daha sonraki sürümlerde güvenlik nedeniyle Off olarak ayarlı
gelmektedir.
Şekil III. 6 httpd.conf konfigürasyonu için register_globals ayarının yapılması
Dosya yükleme esnasında problem yaşamamak için yine php.ini dosyası
içerisinde Şekil III.7’de de gösterildiği gibi upload_tmp_dir ile başlayan satırı bulun.
Bu satırda bulunan upload_tmp_dir direktifinin ayarını Windows üzerinde tüm
kullanıcıların (Everybody) yazma hakkı olan bir dizinin tam yoluna (sürücü ve dizin
adı) ayarlayın. Standart Windows kurulumlarında C:\WINNT\Temp olarak
ayarlanabilir. Bu ayar doğru olarak ayarlanmaz ise dosya yükleme ile ilgili
problemler yaşanabilir.
Şekil III. 7 httpd.conf konfigürasyonu için upload_tmp_dir ayarının yapılması
php.ini dosyası ayarlarından Şekil III.8'de görüldüğü üzere session.save_path
ile başlayan satırda bulunan session.save_path direktifinin ayarı Windows üzerinde
10
tüm kullanıcıların (Everbody) yazma hakkı olan bir dizinin tam yoluna (sürücü ve
dizin adı) ayarlanmalıdır. Standart Windows kurulumlarında C:\WINNT\Temp
olarak ayarlanabilir.
session.save_path direktifinin doğru olarak ayarlanması, PHP oturum
fonksiyonlarının çalışabilmesini için gereklidir.
Şekil III. 8 httpd.conf konfigürasyonu için session.save_path ayarının yapılması
III.3. Apache Web Sunucusu için PHP Desteğinin Ayarlanması Konfigürasyonu
Apache Web Sunucusu üzerine PHP desteği iki yolla verilebilir. Birincisi
PHP'yi modül olarak tanıtmak, diğeri ise CGI olarak tanıtmaktır. Genelde en sağlıklı
çözüm olan modül olarak tanıtılması olup, tez çalışmasında da bu yöntem tercih
edilmiştir. CGI eklentisi ile ilgili ayarların yapılmadan önce web sunucu hizmetinin
durdurulması önerilir.
CGI eklenti ayarları için öncelikle PHP dosyalarının kurulduğu klasör (C:\PHP
gibi) içerisinde yer alan php4ts.dll isimli dosya C:\WINNT\System32 (Bu dizin yolu
Windows kurulumu yapılan sürücüye göre değişebilir.) dizini içerisine
kopyalanmalıdır. Apache web sunucu hizmetinin kurulduğu dizin (Apache
kurulumunda yolu değiştirilmemişse C:\Program Files\Apache Group\Apache dizini)
içindeki conf isimli klasör içinde bulunan httpd.conf dosyası herhangi bir metin
editörü (Notepad, Wordpad gibi) uygulaması ile açılarak, AddModule ile başlayan
satırlardan sonra aşağıdaki satırlar eklenmelidir.
LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php
veya
11
LoadModule php4_module c:/php/sapi/php4apache2.dll (Apache vers. 2 ise)
AddType application/x-httpd-php .php
PHP dosyalarının kurulduğu dizinin C:\PHP olduğu varsayılarak C:\PHP\sapi\
php4apache.dll yazılmıştır (Şekil III.9). PHP dosyaları başka bir dizine kurulmuş ise
C:\PHP yerine o dizin yolu yazılmalıdır.
Şekil III. 9 httpd.conf konfigürasyonu için PHP modülünün tanıtılması
Bu iki tanımlama yolunda da .php uzantısı dışında başka dosya uzantıların da
PHP olarak yorumlanması isteniyorsa (.php3, .phtml gibi), AddType application/x-
httpd-php .php satırının altına aşağıdaki satırlar eklenebilir.
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
Ayrıca, <IfModule mod_dir.c> satırının altındaki DirectoryIndex ile başlayan
satırın sonuna index.php yazılarak httpd.conf dosyası kaydeilmelidir (Şekil III.10).
Böylece web dizini istemci tarafından talep edildiğinde o dizindeki bulunan index
dosyası içeriği web kullanıcı ekranında görüntülenecektir. Burada sıra önemlidir.
Ayrıca .php dışında uzantılı index dosyaları da PHP derleyici ile yorumlatmak
isteniyorsa bu dosyalar da (index.php3, index.phtml gibi) aynı satır sonuna
eklenebilir.
12
Şekil III. 10 httpd.conf konfigürasyonu için default index dosyasını belirleme
Bu durumun daha detaylı açıklanırsa web tarayıcı yazılımı adres çubuğuna girilen
adresi DNS kaydını arayarak bulur ve 80 numaralı porttan erişim kurmaya çalışır. Bu
sırada sunucu isteğin sıralanacağı sayfa şekline göre sunucudaki doküman dizininden
ilgili dosyayı çağırır. Bu dosyalar index.html, index.htm veya index.php olabilir. İste
bu sıraların hangisinin bağlantı esnasında geçerli ve öncelikli olduğunun belirlenmesi
işleminde aşağıdaki satırlardaki sıralama kullanılır. Aşağıdaki sıralamada bir tarayıcı
bu sunucuya ulaşmaya çalıştığında sunucunun doküman dizininde bulunan
dosyalardan index.php’yi öncelikle istemci yani tarayıcı tarafına göndermeye
çalışacaktır. Sıralama ilk olarak index.php, sonra index.html şeklindedir. Yani web
tarayıcısı adres çubuğuna http://www.bizimsirket.com yazıldığında Apache web
sunucu hizmeti tarayıcıya ilk olarak index.php dosyasını göndermeye çalışacaktır.
Yapılacak ayarlamalar içinde dikkat edilmelidir ki bu işlemler sırasında
Apache Web Sunucusu çalışıyor ise yaptığınız düzenlemelerin aktif hale gelmesi için
sunucu durdurulup tekrar çalıştırılmalıdır.
III.4. Apache için Alternatif Yazılım Paketlerinin Kullanılması
Günümüzde WAMP veya XAMPP isimli pek çok ayrı sunucu yazılımları
bulunmaktadır. Bunlar özellikle Apache, MySQL ve PHP uygulamalarını bir arada
sunan ve kullanımını kolaylaştıran bir yazılım paketidir. Apache web sunucu
yazılımını kullanmak üzere çözümler için çok kullanışlı olup, ayrı ayrı kurulum
gerektiren Apache veya benzeri yazılımlar için pek çok kurulum aşamasındaki adımı
kolaylıkla yapmak ve problmelerle uğraşmamak üzere özellikle kullanılması önerilir.
Bu tez çalışmasında da Apache yazılımı WAMP yazılımı desteğinde kullanılmıştır.
WAMP yazılımı hakkında daha detaylı bilgi almak için [108] nolu kaynağa
13
bakılabilir. Temelde WAMP yazılımının sunucu ayarları Apache ile aynıdır, fakat
tek bir noktadan Apache, MySQL veya PHP modül ve araçları kontrol edilebilir.
III.5. Kod Hırsızlığına Karşı Apache ve MWS için Güvenlik Önlemleri
Bir sunucu hizmeti her ne kadar kaliteli ve son sürümle çalıştırılıyor olsa bile
eğer gerekli önlemler alınmamış ise kötü amaçlı kişilerce yapılabilecek saldırılara
karşı sunucu bilgisayarımız büyük bir tehlike içinde olacaktır.
Apache web sunucu hizmeti tercih edilen bu çalışmada güvenlik amaçlı
olarak .htaccess dosyası kullanılarak bir takım güvenlik stratejileri geliştirilmiştir. Bu
dosya hakkında ve bu dosya ile yapılabilecek önlemler ve güvenlik stratejileri
hakkında daha detaylı bilgi almak için [104] nolu kaynağa bakılabilir. Ayrıca web
sunucu hizmetinin alias yolu tanımı yapılarak da her bir alias dizini için ayrı ayrı web
sunucu hizmet politikaları belirlenebilir. Bu tez çalışmasında güvenlik amaçlı izlenen
yöntem ve stratejiler şu şekildedir:
1. Web sunucu root dizini dahil her bir web klasörü içerisine bir .htaccess
dosyası oluşturulmuştur.
2. Kullanıcıların yüklemiş oldukları uygulamalara ait 32 bit MD5 hash
koduna sahip rastgele dizin yolundaki .htaccess dosyasının amacı
herhangi bir şekilde dizin dosyalarının internet kullanıcıları tarafından
her web sunucunun sağladığı gibi sunucuda yer alan dosyaların
listelenmesi engellenmiştir. Bu işlem için bu dosya içerisinde aşağıdaki
kod satırları kullanılmalıdır.
IndexIgnore *
3. Kullanılan .htaccess dosyalarında üstten aşağıya bir hiyerarşik güvenlik
olması durumu dikkate alınmıştır. Bu destek Apache yazılımı tarafından
sağlanmaktadır.
4. Web sunucu hizmeti için root web dizini içinde bulunan .htaccess
dosyası kullanılarak bir "genel web sunucu politikası" belirlenmiştir. Bu
politikaya göre şu durumlar sağlanmaktadır:
a. Sunucu üzerindeki tüm m veya M harfi ile başlayan, ancak veri
seti MATLAB dosyası niteliğinde değerlendirilen *.mat
türündeki dosyalar hariç tüm dosyalara erişim web
kullanıcılarına yasaklanmıştır (Bu duruma *m, *.mdl, *.mex,
14
*.mexw32 gibi m ile başlayan pek çok farklı tipteki dosyalar
girmektedir. ).
b. Sunucu bilgisayarında yer alan kullanıcılara ait uygulamalar ile
ilgili güvenlik konfigürasyonu içeren *.ssf türündeki dosyalara
tarayıcı üzerinden erişim yasaklanmıştır.
c. Sunucu bilgisayarında yer alan ve *.ht* dosyalarına erişim web
kullanıcılarına yasaklanmıştır (.htaccess dosyalarının bu
duruma girdiğine dikkat edilmelidir.).
d. Sunucu bilgisayarında yer alan ve *.log dosyalarına erişim web
kullanıcılarına yasaklanmıştır (.htaccess dosyalarının bu
duruma girdiğine dikkat edilmelidir.).
Yukarıdaki durumları gerçekleştirmek üzere .htaccess dosyası içerisinde yer
alan şu kodlar özellikle göz gezdirilmelidir:
<Files ~ "^.*\.([Mm])">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files ~ "^.*\.([Ss][Ss][Ff])">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files ~ "^.*\.([Mm][Aa][Tt])">
Order allow,deny
Allow from all
Satisfy All
</Files>
<Files ~ "^\.ht">
Order allow,deny
Deny from all
15
Satisfy All
</Files>
<Files ~ "^.*\.([Ll][Oo][Gg])">
Order allow,deny
Deny from all
Satisfy All
</Files>
htaccess dosyası ile ilgili dikkat edilmesi gereken nokta eğer web sunucu
hizmetinde alias ayarları tanımlı ise her alias diizni için ayrı bir .htaccess dosyası
üzerinden güvenlik sağlanacağı unutulmamalıdır. Yani web sunucu root dizini
(www, home gibi) içindeki .htaccess ayarlarından bu dizin yolu altında dahi olsa o
alias dizinin bulunduğu fiziksel web klasörü (alias fiziksel klasörü) içerisinde
ayrıca .htaccess dosyası üzerinden web sunucu güvenliğine dair konfigürasyon
ayarları yapmak gereklidir.
5. Her bir kullanıcının yüklemiş olduğu kullanıcı dizini her türlü dizin
içindeki dosyaları listeleme ve izinsiz dosyaların sistemden indirilme
ihtimaline karşılık index.php veya index.html gibi varsayılan index web
sunucu dokümanı ile korunmuştur. Bu şekilde web sunucu hizmeti
varsayılan dizin dosya listesi yerine index dosyasını kullanıcıya
gönderecektir.
6. Web sunucu hizmeti tarafından CGI yapıdaki uygulamaların
çalıştırılması için kullanılan cgi-bin dizininde yer alan ve sunucu
bilgisayarındaki tüm MWS uygulamaların fiziksel diskteki yerleri ile
ilgili listeyi tutan matweb.conf dosyası için hem genel sunucu politikası
çerçevesinde koruma önlemi sağlanmış (4 nolu maddeye bakılabilir.),
hem de matweb.conf dosyası şu bilgiyi içermektedir:
<../matweb>
Bu kullanım için MWS araç kutusu içerisinde bir destek söz konusudur.
Yani böyle bir kullanım için sağlanan güvenlik hiçbir suretle
kullanıcıların matweb.conf dosyasına (herhangi bir bilgisayar dosya-dizin
hiyerarşisine trojan benzeri yazılımlarla ulaşabilme ihtimali olmadığında)
cgi-bin dizinin içinde bulunduğu bir üst dizine yerleştirilen "matweb"
isimli dosya normal MWS matweb.conf bilgilerini tutmaktadır.
16
BÖLÜM IV
MATLAB YAZILIMI
MATLAB kelime itibari ile MATrix LABoratory kelimelerinin kısaltılması ile
oluşmuştur. Bu program ilk geliştirildiğinde amaç matris işlemlerinin kullanıcılar
tarafından kolaylıkla yapılmasını sağlamaktır. MATLAB, geliştirilmesi sonucu
günümüzde basit matematiksel hesaplamalardan karmaşık analizlere varan çok çeşitli
alanlarda kullanılabilir hale gelmiştir. Bu nedenle son zamanlarda MATLAB
özellikle bilimsel araştırmalar için tercih edilen ve popüler olarak kullanılan bir
ortam haline gelmiştir [109].
MATLAB’in bu denli popüler oluşunun altında sunduğu çok çeşitli komutların
yanısıra, grafiksel arabirime sahip oluşu, kolay alışılabilir ve kullanışlı bir ortam
etkileşimi sunması, çok çeşitli alanlara (Kontrol Bilimi, İnşaat Mühendisliği…gibi)
hizmet eden farklı ve zengin kütüphanesinin olması yatmaktadır.
Bu proje çalışmasında MATLAB’in 7.2 (R2006a) versiyonu kullanılmıştır.
Ayrıca, yapılan çalışmada MATLAB aracının Simulink arabirimi kullanılarak da
tasarım dahilinde uygulamalar yapılmıştır. MATLAB çalıştırıldığında Şekil
IV.1’deki gibi bir pencere gelir.
17
Şekil IV. 1 MATLAB ana penceresi
IV.1. Fonksiyon Dosyaları (M Dosyaları, M Files)
Kullanıcılar MATLAB içinde kendilerine ait fonksiyonlar yazabilir ve
kullanabilirler. Bir fonksiyon yazmak için Windows’un Notepad programı
kullanılabileceği gibi MATLAB’in kendisine ait “Editor” uygulaması da
kullanılabilir. Bu uygulamaya ait m-dosyasını MATLAB'in kendi yazı editöründe
açmak için komut satırından “edit” komutu verilir. Kullanıcı Şekil IV.2’deki gibi bir
ekran ile karşılaşacaktır.
18
Şekil IV. 2 MATLAB Editor uygulaması ekran görüntüsü
Örnek olarak “kare_al” isminde bir fonksiyon yazılmış olsun ve bu fonksiyon
kendisine parametere olarak gönderilen sayıların karesini hesaplasın. Bunun için
Editor uygulamasında aşağıdaki komutlar yazılır.
function sonuc=kare_al(sayi)
sonuc=sayi.^2;
end
Daha sonra bu dosya MATLAB’in kurulu olduğu dizin altında yer alan work
klasörüne kaydedilir. Dosyanın kaydedilme esnasında isminin fonksiyon ismi ile
aynı olmasına dikkat edilmelidir. Yani kare_al ismi ile kaydedilir. Böylelikle work
dizini altında kare_al.m isminde bir m dosyası oluşacaktır. Daha sonra komut
satırından aşağıdaki komutları girdiğimizde hazırladığımız fonksiyon kullanılarak
girilen sayının karesi hesaplanacaktır.
19
x=5;
kare_al(x)
veya
kare_al(5)
IV.2. Simulink Arabirimi
MATLAB ile pek çok işlemi komut kullanarak yapabiliriz. Ancak, bazen bu
durum gerçekleştirilen işin amacına bağlı olarak uzun zaman alabilir. Bu nedenle
MATLAB kullanıcılara Simulink adı verilen bir araç sunmuştur. Bu araç yardımı ile
komut ezberlemeksizin ve komut yazmak için harcanan uzun zamanlar yerine çok
kısa sürede sadece gerekli blokları Simulink çalışma alanına ekleyerek çok değişik
alanlara yönelik işlemleri gerçekleştirebiliriz.
Simulink ekranını açmak için “simulink” komutu kullanılabilir. Kullanıcı bu
araç çalıştığında Şekil IV.3’teki ekran görüntüsü ile karşılaşır.
Şekil IV. 3 Simulink başlangıç ekranı görüntüsü
20
IV.2.1. Simulink Ortamında Model Oluşturma
Simulink aracı ile model oluşturmak için öncelikle “Simulink Library
Browser” penceresinden araç çubuğunda yer alan “New” simgesi tıklanır. Şekil
IV.4’te görülen boş bir çalışma alanı gelir.
Şekil IV. 4 Simulink ortamında boş çalışma alanı
Örnek olarak bir açık çevrim transfer fonksiyonu olan bir sistemin
adım cevabına Simulink ortamında bakılsın. Bunun için “Simulink Library Browser”
penceresinden ilgili ağaç dallarının altında yer alan ve Şekil IV.3’teki ekranda
gösterilen herhangi bir blok diyagram seçilerek farenin sol tuşu basılı halde Library
penceresinden Şekil IV.4’te gösterilen boş çalışma alanına sürüklenir. Çalışma alanı
üzerinde istenilen noktaya gelince farenin sol tuşu bırakılır. Çalışma alanına yanlış
bir blok konulmuş ise o blok üzerinde farenin sol tuşu ile bir kere tıklanılarak seçilir.
Daha sonra klavyeden Del tuşuna basılır. Bloklar arasındaki hatları eklemek için
hattı eklenecek bir uçta fare sol tuşu tıklanır ve basılı tutulur. Daha sonra fare
işaretçisi hattın ekleneceği uca götürülür ve bırakılır. Bu şekilde hattın eklenmesi
tamamlanmış olur. Ayrıca, girişten çıkışa olmak üzere önce giriş blokları fare sol
21
tuşu ile seçilir. Sonra Ctrl klavye tuşu basılı tutulur. Çıkışı hangi bloğa bağlanacak
üzere o blok farenin sol tuşu ile tıklanır. Böylelikle otomatik olarak giriş bloklarının
çıkış ucu bir sonraki bloğun giriş ucu ile bağlanmış olur.
Şekil IV. 5 Örnek bir kontrol sisteminin Simulink ortamında oluşturulması
Şekil IV.5’deki blok diyagram tasarımı sırasında “Sum” bloğunun üzerinde
farenin sol tuşu ile çift tıklanarak özellikler penceresi açılır. Gelen pencerede “List of
Sign” kısmının işaretleri Şekil IV.6’daki gibi değiştirilir.
22
Şekil IV. 6 Sum bloğunun özellikler penceresi
Ayrıca, çalışma alanına eklenen “Transfer Fcn” bloğunun da benzer şekilde
özellikler penceresi açılır ve buradaki ayarlar Şekil IV.7’deki gibi değiştirilir.
Şekil IV. 7 Transfer Fcn bloğunun özellikler penceresi
Yukarıda anlatılan tüm işlemler tamamlandıktan sonra Şekil IV.8’de gösterilen
simülasyon bitiş süresi 25 olarak değiştirilir ve yine aynı pencerede gösterilmiş olan
“start Simulation” butonuna basılarak oluşturulmuş olan sistem çalıştırılır (Blok
23
diyagramı hazırlanan sistem hızlı bir şekilde çalışacak, bu esnada önce Start
butonunun şekli Stop halini alacak, ancak tekrar eski haline (Start durumuna)
dönecektir. Yani simülasyon çok kısa sürede çalışıp duracaktır. Burada 25 sn
denilmesine rağmen Simulink kendi içinde kısada olsa bu süreyi sisteme uygular ve
sistemin cevabını bulur.).
Şekil IV. 8 Simulink ortamında simülasyon süresinin ayarlanması
ve simülasyonun çalıştırılması
Sistemin cevabına bakmak için çalışma alanındaki “Scope” bloğu üzerinde
farenin sol tuşu ile çift tıklanır. Daha sonra Şekil IV.9’daki gibi bir pencere gelir. Bu
pencerenin üst tarafında yer alan ikonlardan dürbün üzerine tıklanır. Bu şekilde
grafik çizimi otomatik olarak ölçeklenmiş ve mevcut ekrana sığar bir hale getirilmiş
olunur.
24
Şekil IV. 9 Simulink ortamında örnek verilen bir sistemin adım cevabı
İstenirse çalışma alanı penceresinde yer alan araç çubuğu kullanılarak Save
ikonu tıklanmak suretiyle hazırlanan bu Simulink modeli (blok diyagramı)
bilgisayara *.mdl uzantısı ile kaydedilebilir. Özetle örnek olarak verilen sistemin
adım cevabı blok diyagramları ve Simulink ortamında bulunmuş olmaktadır.
IV.2.2. Simulink Modellerinin MATLAB Komutları ve Program Kodu ile
Yönetilmesi
MATLAB komut satırından Simulink modelleri açmak, parametrelerini
değiştirmek ya da çalıştırmak, durdurmak gibi işlemler yapılabilir. Bu işlemlerin
nasıl yapılacağı ile ilgili detaylı bilgiler aşağıdaki alt başlıklarda anlatılmıştır.
IV.2.2.1. Bir Simulink Model Dosyasının Açılması ve Kapatılması
Bir simulink model penceresini açmak için “open_system” ve kapatmak için
“close_system” komutları kullanılır. Bu komutların nasıl kullanılacağı aşağıda
verilmiştir.
open_system('deneme_model.mdl'); % deneme_model dosyasını ve Simulink
penceresini açar.
close_system('deneme_model.mdl',0);% 0 parametresi simulink penceresini
deneme_model isimli mdl dosyaya değişiklikleri kaydetmeden kapatır.
25
close_system('deneme_model.mdl',1);% kaydetmeden kapatır, 1 ise kaydeder
ve kapatır.
Ayrıca, herhangi bir dizin altında bulunan model dosyası için kullanım şekli
aşağıdaki gibidir:
open_system('c:\models\deneme_model.mdl');
close_system('deneme_model.mdl',0);
IV.2.2.2. Bir Simulink Modelinin Çalıştırılması
Bir simulink modelinin çalıştırılması için “sim” komutu kullanılır. Bu komutun
örnek kullanımı aşağıda verilmiştir.
sim('deneme_model'); % deneme_model isimli Simulink modeline ait
simülasyonun çalıştırılması
IV.2.2.3. Bir Simulink Modeline Ait Parametrelerinin Değiştirilmesi
Bir Simulink modeline ait pek çok farklı özelik vardır. Bu özellikler ve nasıl
kullanılacağı ile ilgili örnek kullanım şekilleri aşağıda listelenmiştir.
set_param(‘deneme_model','SimulationCommand','Start'); % simülasyonun
başlatılması
set_param('deneme_model','StartTime','5','StopTime','100'); % simülasyona ait
başlangıç ve bitiş sürelerinin saniye cinsinden ayarlanması
set_param('deneme_model','Solver','ode15s','MaxOrder','3'); % simülasyon
denklem çözüm yöntemi olarak 3. mertebeden ode15s yönteminin ayarlanması
set_param('deneme_model','SaveFcn','my_save_cb'); % simulink modeline ait
save callback (kaydetme olayı) olarak my_save_cb isimli fonksiyonun atanması
set_param('deneme_model','SimulationCommand','start'); % Simulink
simülasyonunu için çeşitli komutlarının gönderilmesi (simülasyonun başlatılması)
set_param('deneme_model','SimulationCommand','stop'); % simülasyonun
durdurulması, sonlandırılması
set_param('deneme_model','SimulationCommand','pause'); % simülasyonun
geçici olarak durdurulması
set_param('deneme_model','SimulationCommand','continue'); % pause edilmiş
simülasyonun çalışmaya devam ettirilmesi
26
set_param('deneme_model','SimulationCommand','step'); % simülasyonun
adım adım çalıştırılması
set_param('deneme_model','SimulationCommand','update'); % simülasyonun
kullandığı değişken ve parametrelerin güncellenmesi
set_param('deneme_model','Solver','VariableStepDiscrete','ode45'); %
simülasyon için çeşitli denklem çözüm yöntemlerinin ayarlanması
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','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');
IV.2.2.4. Bir Simulink Modeline Ait Blokların Özelliklerinin Değiştirilmesi ve
Okunması
Bir Simulink modelinde çok farklı bloklar olabilir. Bu bloklarıon özellikleri de
komut satırından değiştirilebilir. Bloktan bloğa değişik ve çok farklı özellikler
bulunmaktadır. Ancak, burada temel özelliklerin nasıl değiştirileceği ile ilgili
kullanım şekli verilmiştir. Bir Simulink model bloğu özelliğinin değiştirilmesi için
“set_param” ve özelliklerinin okunması içinde benzere şekilde kullanıma sahip olan
“get_param” komutları kullanılır. Örnek kullanım şekilleri aşağıda verilmiştir:
set_param('deneme_model/transfer_function_block','Numerator',’[ 1 ]’); %
transfer_function_block isimli bloğa ait (transfer fcn tipinde bir blok) Numerator
parametresinin (pay katsayı değerlerinin) değiştirilmesi
set_param('deneme_model/transfer_function_block','Denominator',’ [ 1 6 5
0 ]’); % Denumerator parametresinin (payda katsayı değerlerinin) değiştirilmesi
27
set_param('deneme_model/constant_blok','Value', ‘5’); % constant_blok isimli
bloğa ait (constant tipinde bir blok) Value parametresinin 5 olarak değiştirilmesi
set_param('deneme_model/relay_blok','OnSwitchValue',’0.4’); % relay_blok
isimli bloğa ait (relay tipinde bir blok) OnSwitchValue parametresinin 0.4 olarak
değiştirilmesi
set_param('deneme_model/relay_blok','OffSwitchValue',’0.2’); %
OffSwitchValue parametresinin 0.2 olarak değiştirilmesi
Ancak, eğer özelliği değiştirilecek blok bir Subsystem bloğu ise bu takdirde
özellikler değiştirilmesi için önce bilgiler sütun vektör halinde bir hücre matris
değişkenine atanır ve daha sonra bu değerler değişken için “MaskValues” özelliğine
atanmalıdır. Bu değerlerin atanabilmesi için subsystem (alt sistem) için “Subsystem
Parameters” tanımının yapılmış olması gerekir.
pid_values_cell = { Kp , Ki , Kd } ;
set_param('pid_by_kenan_return_mdl/PID_Controller','MaskValues',
pid_values_cell );
IV.2.2.5. Bir Simulink Modeline Ait Verilerin MATLAB Komut Satırından
Erişilmesi
Simulink modelinden verilerin alınması için Simulink bloklarından “To
Workspace” kullanılmalıdır. Eğer, zaman bilgisi atanacaksa blok özelliklerin
“Structure with Time” seçeneği seçilmelidir. Çok önemli bir nokta şudur ki Simulink
penceresi kapatılmadan önce mutlaka değerler “save” komutu kullanılarak bir “.mat”
türü dosyaya kaydedilmelidir. Bu değerler daha sonra “load” komutu kullanılarak
önceden kaydedilen “.mat” dosyasından geri “Workspace” alanına yüklenebilir.
Örnek kullanım şekli için aşağıdaki komut yapısına bakılmalıdır.
Simulink model çıkış bilgilerini kaydetmek için komut satırları şunlardır:
sim('pid_controller_model') % mutlaka modelin içinde “To Workspace”
bloğu olmalıdır.
28
save('pid_results'); % “To Workspace” özelliklerinden değişken
ismi “pid_output”
close_system('pid_controller_model ',0); % yazıldığı kabul edilmiş olsun.
Kaydedilen bilgileri kullanmak ve bir grafik çizdirmek için komut satırları
şunlardır:
load('pid_results');
zaman_araligi = pid_output.time;
kontrolor_cikis_degerleri = pid_output.signals.values;
plot (zaman_araligi, kontrolor_cikis_degerleri);
Eğer çıkış değerleri birden fazla ise bu takdirde satır vektörü yapısında bilgiler
elde edilmelidir. Örnek komut satırları aşağıda verilmiştir.
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);
29
BÖLÜM V
MATLAB CONTROL SYSTEM ARAÇ KUTUSU
MATLAB kullanılarak kontrol sistemlerinin çeşitli modelleri "Kontrol Sistem
Araç Kutusu (Control System Toolbox)" kullanılarak bulunabilir. Ayrıca, var olan
sistemler birbirleri ile seri veya paralel bağlanabilir veya geri beslemeli hale getirilebilir.
Bunun yanında var olan modeller üzerinden MATLAB ile çeşitli girişlere (adım, rampa,
impulse gibi) sistem cevabı incelenebilir ve sistemler çok çeşitli şekillerde analiz
edilebilir. MATLAB ile bulunabilecek model türleri şunlardır:
Transfer Fonksiyonu Modeli
Sıfır-Kutup-Kazanç Modeli
Durum Denklemi Modeli
Tanımlayıcı Durum Denklemi Modeli
Frekans Cevabı Verileri Modeli
Ayrık Zaman Modeli
V.1. Modellerin Oluşturulması
Her bir kontrol modelinin oluşturulması için gerekli komutlar Tablo V.1’de
verilmiştir.
Tablo V. 1 MATLAB’te kontrol modellerinin oluşturulması
Model İsmiİlgili
Komut
Giriş
Parametreleri
Örnek
Kullanım
Transfer
Fonksiyonu
Modeli
tfpay matrisi
payda matrisi
pay=[1];
payda=[1 6 5 0];
sys=tf(pay,payda)
Sıfır-Kutup-
Kazanç
zpk sıfırlar matrisi
kutuplar matrisi
sys = ss([-2 -1 1],[1 3 -5],1)
30
Modeli kazanç katsayısı
Durum
Denklemi
Modeli
ss
a matrisi
b matrisi
c matrisi
d matrisi
sys = ss([-2 -1;1 -2],[1 1;2 -1],[1
0],[0 1])
Tanımlayıcı
Durum
Denklemi
Modeli
dss
a matrisi
b matrisi
c matrisi
d matrisi
e matrisi
sys = dss[0 1;-5 -2], [0;3], [0
1],0, [1 2;3 4])
Frekans
Cevabı
Verileri
Modeli
frdfrekans matrisi
cevap matrisi
freq=[1000;2000;3000];
resp=[-0.81126-0.0003i;-0.1751-
0.0016i;-0.0926-0.4630i];
H=frd(resp,freq,'Units','Hz')
Ayrık
Zaman
Modeli
tf, zpk, ss, dss,
frd
(örnekleme
zamanı
eklenmeli, son
parametre)
seçilen modele
göre giriş
parametreleri
pay=[1];payda=[1 6 5 0];
sampling_time=0.1;%saniye
sys=tf(pay,payda,sampling_time
)
V.2. Model Verilerinin Elde Edilmesi
Her bir kontrol modeline ait verilerin elde edilmesi için gerekli komutlar Tablo
V.2’de verilmiştir.
Tablo V. 2 MATLAB’te model verilerinin elde edilmesi
Model İsmiİlgili
Komut
Giriş
Parametreleri
Çıkış
Parametreleri
Örnek
Kullanım
Transfer
Fonksiyonu
Modeli
tfdata tf sistempay matrisi
payda matrisi
[num,den] =
tfdata(sys,’v’)
Sıfır-Kutup- zpkdata zpk sistem sıfırlar matrisi [z,p,k] = zpkdata(sys,’v’)
31
Kazanç
Modeli
kuutplar
matrisi
kazanç
katsayısı
Durum
Denklemi
Modeli
ssdata ss sistem
a matrisi
b matrisi
c matrisi
d matrisi
[a,b,c,d] = ssdata(sys,’v’)
Tanımlayıcı
Durum
Denklemi
Modeli
dssdata dss sistem
a matrisi
b matrisi
c matrisi
d matrisi
e matrisi
[a,b,c,d,e]=
dssdata(sys,’v’)
Frekans
Cevabı
Verileri
Modeli
frdata fr sistemfrekans matrisi
cevap matrisi
[response,frequency]=
frdata(sysfr,’v’)
Ayrık
Zaman
Modeli
tfdata,
zpkdata,
ssdata,
dssdata,
frddata
seçilen modele
göre sistem
seçilen modele
göre çıkış
parametreleri
ve örnekleme
zamanı
[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’)
V.3. Modellerin Birbirine Dönüştürülmesi
Kontrol modellerinin birbirlerine dönüştürülmesi için gerekli komutlar Tablo
V.3’te verilmiştir.
Tablo V. 3 MATLAB’te modellerin birbirine dönüştürülmesi
32
Giriş ModeliÇıkış
Modeli
İlgili
Komut
Örnek
Kullanım
Transfer
Fonksiyonu
Modeli
Sıfır-
Kutup-Kazanç
Modeli
tf2zp [z,p,k] = tf2zp(a,b)
Transfer
Fonksiyonu
Modeli
Durum
Denklemi Modelitf2ss [A,B,C,D] = tf2ss(a,b)
Sıfır-
Kutup-Kazanç
Modeli
Transfer
Fonksiyonu
Modeli
zp2tf [a,b] = zp2tf(z,p,k)
Sıfır-
Kutup-Kazanç
Modeli
Durum
Denklemi Modelizp2ss [A,B,C,D] = zp2ss(z,p,k)
Durum
Denklemi
Modeli
Transfer
Fonksiyonu
Modeli
ss2tfss2tf(A,B,C,D,iu)
iu : sistemin giriş sayısı
Durum
Denklemi
Modeli
Sıfır-
Kutup-Kazanç
Modeli
ss2zp
[z,p,k] =
ss2zp(A,B,C,D,i)
iu : sistemin giriş sayısı
V.4. Modellerin Birbirine Bağlanması
V.4.1. Seri Bağlantı
Örnek olarak Şekil V.1’de görülen sistemi ele alalım.
Şekil V. 1 Seri bağlı modellerden tek bir modelin elde edilmesi
33
Bu sistemi seri bağlantılı hale getirmek için yazılması gereken komut satırları
aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H=series(H1,H2) % veya çarpma işlemi ile çözüm; H=H1*H2;
V.4.2. Paralel Bağlantı
Örnek olarak Şekil V.2’de görülen sistemi ele alalım.
Şekil V. 2 Paralel bağlı modellerden tek bir modelin elde edilmesi
Bu sistemi paralel bağlantılı hale getirmek için yazılması gereken komut satırları
aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H=parallel(H1,H2) % veya toplama işlemi ile çözüm; H=H1+H2;
V.4.3. Geri Beslemeli Bağlantı
Örnek olarak Şekil V.3’te görülen sistemi ele alalım.
34
Şekil V. 3 Geri beslemeli modelin tek bir modele indirgenmesi
Bu sistemin geri beslemeli toplam sistem modelini bulmak için yazılması gereken
komut satırları aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H=feedback(H1,H2,-1)
Burada negatif geri beslemeli bir sistem için çözüm istenirse feedback komutunun
3. parametresi -1 olur. Ancak, bu parametre yazılmazsa da feedback komutu için
varsayılan değer -1’dir, yani negatif geri besleme seçeneğidir. İndirgenen sistem pozitif
geri beslemeli olursa bu parametre 1 değerini alır.
V.4.4. Çıkışların Toplanması
Örnek olarak Şekil V.4’te görülen sistemi ele alalım.
Şekil V. 4 İki model çıkışlarının toplanması ile oluşan çıkışın elde edilmesi
35
İki modele ait çıkışların toplanması ile oluşacak toplam çıkışın yazılması için
gerekli komut satırları aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H=[H1,H2]
V.4.5. Girişlerin Dağıtılması
Örnek olarak Şekil V.5’te görülen sistemi ele alalım.
Şekil V. 5 İki modele ait çıkışların dağıtılması
İki modele ait çıkışların dağıtılması sonucu oluşacak çıkışların yazılması için
gerekli komut satırları aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H=[H1;H2]
V.4.6. Girişlerin ve Çıkışların Birleştirilmesi
Örnek olarak Şekil V.6’da görülen sistemi ele alalım.
36
Şekil V. 6 İki modele ait girişlerin ve çıkışların birleştirilmesi
İki modele ait girişlerin ve çıkışların birleştirilmesi sonucu elde edilecek çıkışların
yazılması için gerekli komut satırları aşağıdaki gibi olacaktır:
H1=tf(pay1,payda1);
H2=tf(pay2,payda2);
H= append(H1,H2)
V.5. Modellerin Cevaplarının Elde Edilmesi
Kontrol sistemi modellerinin cevapları MATLAB’in kullanıcıya sunduğu hazır
fonksiyonlarla elde edilebilir ve grafiği çizilebilir.
V.5.1. Adım Cevabı (Step Response)
Bir kontrol sisteminin adım cevabının gözlenmesi ve grafiğinin çizilebilmesi
amacıyla “step” komutu kullanılır. Bu komuta gönderilen parametre bilgisi oluşturulan
bir modelin sistem değişkenidir. (Model oluşturma ile ilgili ayrıntılı bilgi için 2.2 konu
başlığına bakınız.)
Örnek olarak sisteminin adım cevabı grafiği bulunsun. Bu işlem
için yazılacak komut satırları aşağıda gösterilmiştir:
pay = [1 4];
payda = [1 3 7];
sistem = tf(pay,payda);
step(sistem)
Örnek alınan sistemin adım cevabı grafiği Şekil V.7’de gösterilmiştir.
37
0 0.5 1 1.5 2 2.5 3 3.5 40
0.1
0.2
0.3
0.4
0.5
0.6
0.7Step Response
Time (sec)
Ampl
itude
Şekil V. 7 Örnek verilen bir sistemin adım cevabı grafiği
Ayrıca, bir sistemin adım cevabı grafiği istenilen zaman aralığında çizilebilir.
Bunun için “step” komutuna verilecek 2. parametreye bir zaman aralığı matrisi
değişkeninin atanması yeterlidir. Bu durum için örnek bir kullanım aşağıda
gerçekleştirilmiştir:
pay = [1 4];
payda = [1 3 7];
sistem = tf(pay,payda);
zaman_araligi = 0:0.1:25; % 0.1 artımla 0-25 sn arasında zaman aralığının
tanımlanması
step(sistem,zaman_araligi)
V.5.2. Ani Darbe Cevabı (Impulse Response)
Bir kontrol sisteminin ani darbe cevabının gözlenmesi ve grafiğinin çizilebilmesi
amacıyla “impulse” komutu kullanılır. Bu komuta gönderilen parametre bilgisi
oluşturulan bir modelin sistem değişkenidir. (Model oluşturma ile ilgili ayrıntılı bilgi
için 2.2 konu başlığına bakınız.)
38
Örnek olarak sisteminin ani darbe cevabı grafiği bulunsun. Bu
işlem için yazılacak komut satırları aşağıda gösterilmiştir:
pay = [1 4];
payda = [1 3 7];
sistem = tf(pay,payda);
impulse(sistem)
Örnek olarak verilen sistemin ani darbe cevabı grafiği Şekil V.8’de gösterilmiştir.
0 0.5 1 1.5 2 2.5 3 3.5 4-0.2
0
0.2
0.4
0.6
0.8
1
1.2Impulse Response
Time (sec)
Ampl
itude
Şekil V. 8 Örnek verilen bir sistemin ani darbe cevabı grafiği
Ayrıca, bir sistemin adım cevabı grafiği istenilen zaman aralığında çizilebilir.
Bunun için “impulse” komutuna verilecek 2. parametreye bir zaman aralığı matrisi
değişkeninin atanması yeterlidir. Bu durum için örnek bir kullanım aşağıda
gerçekleştirilmiştir:
pay = [1 4];
payda = [1 3 7];
39
sistem = tf(pay,payda);
zaman_araligi = 0:0.1:25; % 0.1 artımla 0-25 sn arasında zaman aralığının
tanımlanması
impulse(sistem,zaman_araligi)
V.5.3. Rampa Cevabı (Ramp Response)
Bir kontrol sisteminin rampa cevabının gözlenmesi ve grafiğinin çizilebilmesi
amacıyla MATLAB’in sahip olduğu hazır bir komut yoktur. Ancak, sisteme uygulanan
rampa girişine karşılık elde edilen çıkışın adım cevabının çizdirilmesi suretiyle bir
sistemin rampa cevabı grafiği çizdirilebilir.
Örnek olarak sisteminin rampa cevabı grafiği bulunsun. Bu
işlem için yazılacak komut satırları aşağıda gösterilmiştir:
pay = [1 4];
payda = [1 3 7];
sistem = tf(pay,payda);
giris_pay = [1];
giris_payda = [1 0];
giris_sistem = tf(giris_pay,giris_payda);
toplam_sistem_cikisi=series(giris_sistem,sistem); % sistem öncelikle 1/s ile
çarpılmakta ve çarpım toplam_sistem_cikisi değişkenine atanmakta
step(toplam_sistem_cikisi); % sistemin rampa cevabı 1/s çarpanından sonra
sisteme step uygulanarak gözlenmektedir.
Bu komutların çalıştırılması sonucu elde edilen sistem rampa cevabı grafiği Şekil
V.9’da gösterilmiştir.
40
0 1 2 3 4 5 6 70
2
4
6
8
10
12
14Step Response
Time (sec)
Ampl
itude
Şekil V. 9 Örnek verilen bir sistemin rampa cevabı grafiği
41
BÖLÜM VI
MATLAB WEB SERVER (MWS) ARAÇ KUTUSU
MATLAB Web Server (MWS), Mathworks firmasına ait tanınmış bir yazılım
olan MATLAB için bir araç kutusu (toolbox) dur. Bu araç istemci ve sunucu arasında
MATLAB çalıştırmak için bağlantı kuran bir web ön ara yüzüdür. Böylelikle istemci bir
bilgisayardan başlatabilecek ve görüntülenecek şekilde bir sunucu üzerinde çalışacak
MATLAB simülasyonları tasarlamak mümkün olacaktır [87].
VI.1. MWS Araç Kutusu Mimarisi
Bir MWS uygulamasına ait simülasyonun çıktısı web tarayıcısından gösterilen
HTML dokümanlarıdır. MWS ile bir istemci uyuglaması web üzerinden sunucu
bilgisayarda yüklü olan MATLAB uygulamalarını çalıştırabilecektir. İstemci uygulama
ve MATLAB arasındaki ilişki Şekil VI.1’de gösterilmiştir. İstemci uygulama, genellikle
bir web tarayıcısı olmak üzere, başlangıç HTML dokümanlarını Hypertext Transfer
Protocol Daemon (HTTPD) sunucusundan yükler [83, 88]. Bu doküman simülasyon
giriş/çıkış verisi için bir ara yüz sunar. Parametre girişi tamamlandıktan sonra istemci
HTTPD üzerinden verileri gönderir ve HTTPD sunucusu bu parametreleri matweb’e
yükler. matweb, MATLAB’e veri dahil etme/veri alma sağlayan bir fonksiyondur.
matweb iç protokol vasıtasıyla MATLAB Web Server’a bağlanır. MATLAB Web
Server talep edilen m-dosyasını (MATLAB programını) çoklu kullanıcı çalıştırmaya
imkân sağlamak üzere ayrı bir kopya olarak yükler. Her çalıştırma tamamlandıktan
sonra, MATLAB Web Server çıktıyı matweb’e çoğunlukla bir HTML dosya olarak
verir. matweb, HTTPD üzerinden istemciye bu çıktıyı geri döndürür. Bu durum Şekil
VI.1’de görülmektedir.
42
Şekil VI. 1 MWS araç kutusunun MATLAB ve web kullanıcıları ile bağlantısı
MWS uygulamaları MATLAB m-dosyaları, grafikler ve HTML yazı içeriği
benzer şekilde PHP ve JavaScript gibi bileşenleri bir araya getirir. MATLAB Web
Server (MWS) hesaplama için MATLAB’e web üzerinde veri göndermeye ve
sonuçların web tarayıcısında gösterilmesine imkan vermek üzere MATLAB
uygulamalarını doğrudan değil, tanımlanan bir format dahilinde bu uygulamaların web
üzerinden çalıştırılmalarına izin verir. MWS, istemci ve MATLAB arasında veri
iletişimi için TCP/IP protokolünü kullanır. Kullanılan konfigürasyonda istemci bir
bilgisayarda (workstation, iş istasyonu) bir web tarayıcısı çalışırken MATLAB,
MATLAB Web Server ve web sunucu yazılımı aynı sunucu bilgisayarı üzerinde çalışır
(Şekil VI.2). Ancak, istenilirse MWS matweb giriş noktası CGI teknolojisini
destekleyen bir web sunucu (httpd, http daemon) yazılımı yüklü başka bir bilgisayarda
eksta lisans sorunu olmadan yüklenebilir (Şekil VI.3). Girişleri göndermek ve çıkışları
MWS’de almak için bir tarayıcı yazılımı gereklidir. Ayrıca, web sunucu yazılımı
Common Gateway Interface (CGI) uygulamalarını çalıştırabilecek yetenekte olmalıdır.
MWS için bir uygulama geliştirme süreci az sayıda basit adımlar gerektirir [83].
Bu adımlar şöyledir:
43
1. Kullanıcıdan giriş verileri topluluğunu almak ve çıkışı göstermek üzere
HTMS dokümanların oluşturulması. Giriş HTML sayfalarını oluşturmak
için doğruda bir yazı editörü kullanılabilir veya ticari amaçlı HTML tasarım
araçlarından (Dreamwear, Frontpage gibi) biri kullanılabilir.
2. Uygulama isminin ve konfigürasyon bilgisinin matweb.conf dosyasında
listelenmesi gerekir.
3. MATLAB m-dosyasının aşağıdaki adımlar gereğince yazılmalıdır. Bir
MWS uygulamasında MATLAB m-dosyası hazırlarken şunlara dikkat
edilmelidir:
a. Giriş HTML form bilgilerinin alınması
b. Verinin analiz edilmesi ve talep edilen grafiklerin oluşturulması
c. Çıkış verisinin bir MATLAB yapı değişkeni olarak tutulması
d. Çıkış datasının HTML çıkış doküman şablonunda yerleştirilmesi
üzerine htmlrep komutunun çağırılması. MATLAB’den alınacak
maksimum veri miktarı 256 KB’tır.
VI.2. MATLAB Web Server (MWS) Araç Kutusu ve WWW İlişkisi
MATLAB Web Server, bir web tarayıcı ekranında sonuçları görüntülemek ve
hesaplama için MATLAB’e veri göndermek üzere World Wide Web’in özelliklerini
kullanan MATLAB uygulamaları oluşturmayı sağlar. En basit konfigürasyonda
MATLAB, MATLAB Web Server (MWS) ve Web Server Daemon (httpd) başka
makine üzerinde çalışmakta iken, bir tarayıcı istemci bilgisayar üzerinde çalışmaktadır
[83].
44
Şekil VI. 2 MWS aracı ile web sunucu yazılım (http daemon aynı bilgisayarda)
Çok karışık bir network’te, Web Server daemon başka makinelerin bir parçası
olan bir makine üzerinde çalışabilir (Şekil VI.3).
Şekil VI. 3 MWS aracı ile web sunucu yazılım (http daemon) farklı bilgisayarda
MATLAB Web Server, istemci sistem ile MATLAB arasında veri aktarımı için
TCP/IP networking sistemini temel almaktadır. Gerekli networking yazılımı ve
donanımı, MATLAB Web Server kullanımına bağlı olarak sisteminize yüklenmiş
olmalıdır.
VI.3. MATLAB Web Server’ın Kullanılmasının Avantajları
MATLAB Web Server (MWS) ile online simülasyonlar yapılabilir. Bunlar pek
çok teknik derslerde ve belirli sanal laboratuar ortamlarında gereklidir. Ayrıca, bunlar
matematik dersleri için laboratuarlarda da yararlıdır [4]. Simülasyon ara yüzünün girişi
sayısal ve alfa sayısal ve çıktılar sayısal, alfa sayısal veya grafiksel olabilir.
45
MATLAB’in doğal bir özelliği olarak sayısal giriş değerleri gerçek veya kompleks
olabilir. Eğer alfa sayısal çıktılar gerekli ise stringlerle MATLAB programlama bilgisi
gereklidir. MATLAB Web Server’ın mühendislik ve elektronik derslerinde en etkin
kullanımı 2D grafiklerdir [4]. Bunun yanında bu aracın önemli bir avantajı
kullanıcıların kendi istemci makinelerinden MATLAB yazılımını yüklemeden
MATLAB uygulamalarını kullanabilir olmasıdır. Böylece yazılım yükleme ve lisans
maliyetleri düşmüş olacak ve sistem kaynakları paylaşılarak daha ekonomik kaynak
kullanımı doğacaktır.
VI.4. MATLAB Web Server’ın Kullanılmasının Dezavantajları
MATLAB Web Server (MWS) araç kutusu, MATLAB destekli web çözümleri
için simülasyona dayalı uygulamalarda kullanılan geliştirme araçlarından biridir [87].
Fakat, bu aracı kullanmanın bazı dezavantajları da vardır. İlk olarak MWS
uygulamalarında kullanıcılar giriş değerlerini sadece değiştirebilirler. Bir başka
dezavantaj ise yüksek performanslı CPU ve simülasyon zamanını kısaltmak için dikkate
alınan ölçüde RAM kapasitesi gerektirir. MATLAB komut satırında çıkış veren sürece
sahip m-dosyaları MATLAB Web Server üzerinde çalıştırılabilmesi için eksta
programlama ve zaman gerektirir. Java programlama dili ile geleneksel daha fazla kod
yazılacak yukarıdaki problemler ortadan kaldırılabilir [87]. Ayrıca, MWS uygulamaları
geliştirmek uygulama kaydı gerektirmekte ve bu da uygulama geliştirme zamanını
arttırmaktadır. Eğer web sunucu hizmeti güvenliği tam olarak tesis edilememiş ise kod
hırsızlığı da MWS uygulamaları için ciddi problem teşkil etmektedir. bu konuda
ayrıntılı bilgi almak için VI.8 konu başlığına bakılabilir. Bunların yanında MWS
aracının dezavantajlı yönleri [91] nolu kaynakta da ayrıca şöyle listelenmektedir:
1. Bir seferde bir uygulamanın hazırlanışı zaman almaktadır. Çünkü prensipte
giriş ve çıkış HTML sayfaları özel bir şablon olarak hazırlanmak
zorundadır.
2. MWS kurulumu ile birlikte verilen örnek m-dosyalara ait kodlar uzun bir
şekilde değiştirilmeli, bu da güncelleme problemlerine sebep olmaktadır.
3. Uygulama tasarımı için program kodlama ve internet teknolojisi (HTML,
CSS, HTTP protokolü gibi) bilinmek zorundadır.
46
4. Bir güvenlik problemi vardır ki kullanıcıdan tüm girişler dikkatli şekilde
kontrol edilmek zorundadır. Çünkü web sayfalarında gelen giriş verisi string
tipinde olup, sayı, matris gibi bir formata dönüştürülmek zorundadır. Fakat
eval fonksiyonu kullanılamaz. Çünkü kullanıcı giriş ve …. enter, del, *,!
gibi özel sembollerin girmesine izin verilmektedir.
5. Kullanıcılar sunucu konfigürasyon süreci ile aşina olmak zorundadır. (Her
yeni uygulama için konfigüre etmek zorunluluğu vardır.)
6. MATLAB komut satırında çıkış veren sürece sahip m-dosyaları MATLAB
Web Server üzerinde çalıştırılmaz.
Yukarıda bahsedilen sorunlar nedeniyle MWS aracı direk olarak bu çalışmada
kullanılması uygun görülmemiştir. Bu nedenle bahsedilen problemlere de büyük ölçüde
çözüm olması açısından bu tez çalışması kapsamında Web MWS sistemi tasarlanmıştır.
Web MWS Sistemi hakkında detaylı bilgi almak için Bölüm 6.'ya bakılabilir.
ile oluşturulan MWS tarafından her MWS uygulaması çalışması sırasında otomatik
olarak ve her çalışma ile sırayla artan bir sayaç prensibine göre üretilen sayısal değeri
içeren mlid değişken içeriği elde edilir.
mlid, matlabserver tarafından sunulan tek tanımlayıcıdır. Mlid kullanmak dosya
isimlerinin benzersiz olmasını sağlamaya yeter. Aynı zamanda bir uygulamadaki farklı
bağlantılar arası bağlamları sürdürmeyi sağlar. Bu durumu bir jpeg dosyası için isim
oluşturan şu kodda görebilirsiniz:
47
BÖLÜM VII
TASARLANAN WEB MWS SİSTEMİ
Bu sistem MATLAB/Simulink uygulamalarının web üzerinden çalıştırılmasına
ve kolaylıkla Internet kullanıcılarının bu ortamı kullanan uygulamaları geliştirmesine
imkân vermek üzere tasarlanmış ve bu çalışmada kullanılmıştır. Web MWS Sistemi
ile kolaylıkla web tabanlı bir MATLAB uygulaması geliştirmek mümkün
olabilmektedir. Sistem kendi içinde üzerinde MATLAB yüklü bir sunucu bilgisayarı
üzerinden web kullanıcılarının tasarlamış oldukları MATLAB uygulamalarını
çalıştırmasını sağlamaktadır [111]. Bu sistem hakkında detaylı bilgi için aşağıdaki
başlıklara bakılabilir.
VII.1. Web MWS Sistemi Tasarım Amacı
Web MATLAB Web Server sistemi öğrencilerin kendi bilgisayarlarına ekstra
MATLAB yazılımını kurmalarına gerek bırakmadan Internet ortamı kullanılarak web
üzerinde kolay bir şekilde MATLAB uygulamaları geliştirmek için tasarlanmıştır. Bu
sistem ile kolay bir şekilde ve zorluk çekmeden ve birkaç saniye içerisinde daha
önceden hazırlanmış bir MATLAB/Simulink uygulaması web ortamına taşınabilir
[93, 95, 97].
VII.2. Web MWS Sistemi Kullanımı
Bu sistem Internet üzerinden herhangi bir zamanda erişilebilir [111]. Web
kullanıcıları herhangi bir uygulama ekleyebilir, var olan uygulamaları listeleyebilir
ya da var olan uygulamaların kaynak kodunu görüntüleyebilir (Şekil VII.1). Bunların
yanında Web MWS sistemine daha önce yüklenmiş herhangi bir MATLAB
uygulamasını kolaylıkla çalıştırabilirler. Ayrıca, MATLAB’in çalışması sonucu elde
edilen sonuçlar web kullanıcılarınca kendi bilgisayarlarına download edilebilir.
Sistem tarafından şua n için pek çok farklı veri formatı (MS Excel dosyası (*.xls),
virgülle ayrılmış değerler dosyası (*.csv), düz metin dosyası (*.txt) gibi) sonuçların
48
listelenmesi için desteklenmektedir. Kullanım hakkında daha detaylı bilgi için
[111]’e bakılabilir.
Şekil VII. 1 Web MWS Sistemi ile tasarım süreci
VII.3. Web MWS Sistemi Mimarisi
MATLAB’in avantajı kullanıcıların kendi algoritmalarını hazırlayabilmek ve
bunları MATLAB kütüphanesinin bir parçası olarak kullanabilme imkânının
olmasıdır. MATLAB ile programlama yapmak kolaydır [88]. Dolayısıyla Web MWS
sistemi ile hedeflenen kullanıcıların kolaylıkla ve web üzerinden MATLAB
uygulamaları geliştirebilmesine imkân vermektir. MATLAB yazılımını kendisi
üzerinde tümleşik olarak çalışan MATLAB Web Server araç kutusunu [83] kullanır.
Bir karşılaştırma ve farklılıkların görülmesi açısından Şekil VII.2'de MWS araç
kutusu ile tasarım süreci aşamaları gösterilirken Şekil VII.3'te Web MWS Sistemi ile
uygulama tasarım süreci şematik olarak gösterilmiştir.
49
Şekil VII. 2 Web kullanıcısının MWS araç kutusunu kullanırken izlediği adımlar
Her iki durumu karşılaştırıldığımızda söylenebilir ki Web MWS sistemi MWS araç
kutusunu kullanarak işlem yapmakta ve Web MWS ile amaçlanan uzak kullanıcıların
kendi bilgisayarlarına MATLAB yazılımını kurmalarına gerek bırakmasızın
MATLAB ortamında uygulama geliştirebilmeleri ve MATLAB uygulamalarına web
tabanlı çözümler üretilebilmesidir. Ayrıca, pek tasarlanan MATLAB
uygulamalarının MWS araç kutusu ile entegre çalışması sürecindeki kayıt ve
kopyalama işlemleri ile web sunucu dizin hiyerarşi içerisindeki yapılandırma ayarları
Web MWS Sistemi ile kolaylıkla ve ekstra bir çaba olmaksızın
gerçekleştirilmektedir.
50
BÖLÜM IX
SONUÇLAR VE TARTIŞMA
MATLAB Web Server kullanarak uygulamalar geliştirmek teknik anlamda
talep edilmekte ve zaman almaktadır [43]. Programlama yeteneği için çaba
gerektirmektedir. Ama yine de, MWS uygulamaları pek çok avantaj sunmakta, en
gerekli olanı ise bir web tarayıcısı üzerinden MATLAB erişimi
gerçekleştirilmektedir. Bu çalışmada tasarlanan web MWS sistemi bu problemleri
ortadan kaldırmayı ya da azaltmayı amaçlar. Böylece web kullanıcıları lisans sorunu
olmadan ve kısa sürede MATLAB uygulamaları geliştirebileceklerdir. Ayrıca,
kullanıcılar MATLAB tabanlı projelerini ekstra web sunucu kaynakları ve ilave
zaman israfı önlenmek suretiyle kullanımı kolay ve hızlı bir arayüz üzerinden
WWW’de yayınlayabileceklerdir.
Bu tez çalışmasında kontrol eğitimi derslerinde kullanılmak üzere tasarlanan
ACSES sistemi Web MWS [111] alt yapısını kullanarak geliştirilmiş olup, öğrenciler
için kullanımı kolay ve hızlı bir şekilde laboratuar dersin uygulama sonuçlarını bir
simülasyon verisi ile doğrulama imkanı sağlamasını amaçlar. Deneyler öğrencilere
hazır modellenmiş sistemler üzerinden sunulmaktadır. Böyle daha kısa sürede ve
daha az çaba ile (kendileri MATLAB ortamını direk kullanmadan, model üretmeden
ya da MATLAB programlaması bilmeye gerek kalmadan) kontrol derslerine
yardımcı bir kaynak ortam sunulmuştur. Bu deneyler öğrencilerin teori ve kontrol
pratiği arasında bağlantı kurmasına izin verir.
İnternet tabanlı etkileşimli eğitim geleneksel eğitimle karşılaştırıldığında
potansiyel avantajlara sahiptir. Çünkü daha az pahalı, erişimi kolay, güncellemesi
kolay ve platform bağımsızdır. Bu çalışma da Internet tabanlı eğitim uygulamasının
potansiyelini keşfetmek üzere Otomatik Kontrol laboratuar dersi programında
uygulanan deney için MATLAB/Simulink ortamında modellemeye dayalı online
destekleyici bir simülasyon sistemi olan ACSES sunulmuştur. ACSES, öğrenciler ve
kontrol eğitimi alan web kullanıcılar için online bilgi sağlamakta, parametre
51
ayarlamalı simülasyonlar ve daha ayrıntılı çalışma için çok sayıda bağlantılar
sunmaktadır. Bu online tasarım kontrol eğitimi öğrencilerine daha görsel bir
yardımcı araç olarak kolay kullanılabilir ve MATLAB gibi güçlü bir yazılım
desteğinde olan bir ortam sunmaktadır.
Bu çalışma ile kümeleme analizi için öğretim ortamlarında kullanımı kolay bir
yardımcı ortam sunulması amaçlanmıştır. Bu araç tasarımında Web MWS sistemi
kullanılmıştır. Böylece tasarlanan WBCA araç kutusu web tabanlı olarak tüm
kullanıcılarca herhangi bir zamanda ve herhangi bir yerden erişilebilecek ve
kullanıcılara kendi makinelerinde MATLAB yazılımını kurmalarına gerek
bırakmayacaktır. Tek gereksinim, internete bağlı bir PC ve web tarayıcısıdır.
Özellikle öğrenciler ve üniversiteler arasında MATLAB faaliyetlerinin paylaşılması
ve lisans durumu düşünüldüğünde [38] Web MWS Sistem desteğinde WBCA ile
maliyetler önemli ölçüde azalmış olacaktır. Ayrıca, bu çalışma benzeri disiplinler
arası akademik çalışmalar için bir örnek teşkil etmektedir.
Kontrol eğitimi derslerinde kullanılmak üzere tasarlanan bir başka uygulama
da WBCSE ortamı olup, bu uygulama ile öğrenciler için kullanımı kolay ve hızlı bir
şekilde ders konuları ile senkron kullanabilmeleri ve bizzat yaparak ve yaşayarak
uygulama sonuçlarını bir simülasyon ortamında görme imkanı sağlayabilmeleri
amacı ile geliştirilen WBCSE için model tabanlı bir uygulama MATLAB/Simulink
ortamı kullanılarak tasarlanmıştır. Böylece daha kısa sürede ve daha az çaba ile
(kendileri MATLAB ortamını direk kullanmadan, model üretmeden ya da MATLAB
programlaması bilmeye gerek kalmadan) kontrol derslerine yardımcı bir kaynak
ortam sunulmuştur. WBCSE ile öğrencilerin teori ve kontrol pratiği arasında bağlantı
kurmasına izin verilmiş olacaktır. Böylece, WBCSE kullanan öğrenciler için kontrol
teorisi dersleri ve kontrol uygulamalarında öğretim süreçlerine bizzat yaparak ve
yaşayarak katılacak ve öğretim ortamı verimliliği yükselmiş olacaktır.
WBCSE ortamı kullanılarak öğrenci ve öğretim üyesi arasında cereyan eden ve
dinamik bir süreç olan öğrenme-öğretme ortamına görsel bir kaynak hazırlanmıştır.
Bu sistem son bir ürün olarak gösterilemeyeceği gibi kontrol öğretmek için en iyi yol
olarak da iddia edilemez. Fakat bu tarz simülasyon tabanlı örnek uygulamalar daha
ileri yenilikle ve yeni sanal ve simülasyon tabanlı görsel eğitim materyali
tasarımlarına yol göstermek üzere bir başlangıç noktası olarak fikir verecektir.
Yukarıda anlatılan çalışmalarda Web MWS Sistemi kullanılmış olup, böylece
web kullanıcıları ve öğrencilerin kendi yerel bilgisayarlarında MATLAB uygulaması
52
yüklemesine gerek kalmayacaktır. Bu da öğrenciler açısından maliyetleri düşürecek
ve sistem kaynaklarının daha ekonomik kullanımına bir katkı sağlamış olacaktır [38].
Ayrıca, kullanıcılar WWW için ekstra kaynak gerekmeden ve MATLAB destekli
uygulama projelerini ek web sunucu hizmet maliyetleri olmaksızın ve zamandan
tasarruf sağlayarak kullanımı kolay bir arayüz üzerinden web tabanlı olarak
yayınlayabileceklerdir [93, 111]. Bu çalışma kapsamında da özellikle bu durumun
varlığı sebebiyle Web MWS Sistemi çalışma kapsamına dahil edilmiştir. Bu sistem
desteğinde web tabanlı simülasyonlar tasarlanabilir. Özellikle MATLAB destekli
uygulamalar içi,n bu durum gelişen web teknolojileri ve internet ağ hizmetlerinin
iyileştirilmesi düşünüldüğünde büyük bir önem taşır. Ayrıca, sanal laboratuar
tasarlamak isteyen akademik çevrelere de bir ön fikir ve onlar için de kendi
çalışmalarıyla entegre kullanabilecekleri bir hazır araç sunar.
53
BÖLÜM X
DEĞERLENDİRME VE ÖNERİLER
Bu çalışmada kontrol eğitimi derslerinde kullanılmak üzere tasarlanan ACSES
sistemi temelde MATLAB için geliştirilen MATLAB Web Server araç kutusu
desteğinde gerçekleştirildi. Bu araç kutusu işlevi yönüyle kullanıcılara çok büyük
kolaylıklar sunmaktadır. Ancak, her ne kadar avantajlı gibi görünmesine rağmen
dezavantajları da söz konusudur. MATLAB Web Server (MWS) ile online
simülasyonlar yapılabilir. Bunlar pek çok teknik derslerde ve belirli sanal laboratuar
ortamlarında çok çeşitli şekillerde kullanılabilir. Ayrıca, bunlar matematik dersleri
için sanal laboratuarların tasarımı [4] ve özellikle MATLAB destekli çözümlerin web
ortamında yayınlanmasında çok kayda değer bir yarar sağlamaktadır. Simülasyon ara
yüzünün girişi sayısal ve alfa sayısal ve çıktılar sayısal, alfa sayısal veya grafiksel ya
da resim formatında olabilir. Bu çalışma kapsamında geliştirilen ve kullanılan Web
MWS Sistemi [111] bünyesinde varolan uygulamalarda da gözleneceği üzere MWS
uygulaması girişi daha fazla programlama ve PHP tasarıma dayalı çözümler ile bir
dosya girdisi olabilir [95]. Çıktılar yoğun programlama çabası ile genişletilerek
download edilebilir medya (değişken verileri seti içeren veri dosyaları, movie içeren
görüntü dosyaları gibi) da sunulabilir. MATLAB’in doğal bir özelliği olarak sayısal
giriş değerleri gerçek veya kompleks olabilir [112] ki bu durum çok çeşitli analizler
ve hesaplamalar için gereklidir. Eğer alfa sayısal çıktılar gerekli ise stringlerle
MATLAB programlama bilgisi gereklidir. MATLAB Web Server’ın mühendislik ve
elektronik derslerinde en etkin kullanımı 2D grafiklerdir [4]. Bunun yanında bu
aracın önemli bir avantajı kullanıcıların kendi istemci makinelerinden MATLAB
yazılımını yüklemeden MATLAB uygulamalarını kullanabilir olmasıdır. Böylece
yazılım yükleme ve lisans maliyetleri düşmüş olacak [38] ve sistem kaynakları
paylaşılarak daha ekonomik kaynak kullanımı doğacaktır. Ayrıca, .NET gibi yoğun
sistem kaynakları gerektiren ve .NET programlama deneyimi gerektiren ya da Java
applet teknolojisi destekli daha yoğun tasarım çabası gerektiren ve ayrı bir
54
programlama dili bilme becerisinin olmasını zorunlu kılan faktörler, sadece html
yapıdaki web sayfalarını veya daha da ciddi ve üst düzey bir tasarım gerekli ise PHP
ile pek çok web destekli MATLAB uygulama tasarımları yapılabilir.
MATLAB Web Server (MWS) araç kutusu her ne kadar ciddi ve önemli
yararlar sağlasa da pratikte tasarımcı için problemler çok ciddidir ve önemli oranda
teknik destek ve çaba gerektirmektedir. MWS aracını kullanmanın çeşitli
dezavantajları vardır.
55
KAYNAKLAR
[1] Bogdanova, I., Khan, R., and Kunt, M.: “Graphical User Interface and MATLAB Web Server for Multimedia Teaching on WWW”, Signal Processing Laboratory, Swiss Federal Institute of Technology (EPFL), CH-1015 Lausanne, Ecublens, Switzerland, (2001).
[2] Irmak, E., Bayindir, R., Colak, I., Sagiroglu, S., and Bal, G.: “A web based real time speed control experiment on ultrasonic motor for educational purposes”. Power Electronics, Electrical Drives, Automation and Motion, 2008. SPEEDAM 2008. International Symposium on, (2008) 1451-1454.
[3] Ondera, M., and Huba, M.: “Web-Based Tools for Exact Linearization Control Design”. Control and Automation, 2006. MED '06. 14th Mediterranean Conference, (2006) 1-6.
[4] Pester, A., and Ismailov, R.: “Interactive Applications in Teaching with the MATLAB Web Server”, Carinthia Tech Institute, School of Electronics, Austria, (2009).
[5] Uran, S., and Jezernik, K.: “MATLAB Web Server and M-file Application”. Power Electronics and Motion Control Conference, 2006. EPE-PEMC 2006. 12th International, (2006) 2088-2092.
[6] Bogdanova, I., Vandergheynst, P., and Kunt, M.: “Virtual classroom for multimedia teaching on WWW”. Frontiers in Education, 2002. FIE 2002. 32nd Annual, (2002) vol.2, F3E-7-F3E-11.
[7] Erdemir, G.: “Kaskat Bağlı Sıvı Seviye Akış Sisteminin Web Tabanlı Gerçek Zamanda Zeki Kontrolü”, Yüksek Lisans Tezi, Marmara Üniversitesi, Fen Bilimleri Enstitüsü, İstanbul, (2006).
[8] Doğan, B.: “Web Üzerinden Sistem Kontrolü Ve Uzaktan Erişimli Laboratuvar Uygulaması ”, Yüksek Lisans Tezi, Marmara Üniversitesi, Fen Bilimleri Enstitüsü, İstanbul, (2007).
56
[9] Ramasubramanian, M.K.: “Teaching mechatronics design at North Carolina State University”. Proceedings of Mechatronics 96, Cal. Poly, (June 13-15, 1996).
[10] Salazar-Silva, G., Martinez-Garcia, J.C., and Garrido-Moctezuma, R.: “Enhancing basic robotics education on the Web ”. Proceedings of the American Control Conference (Acc'99), San Diego, CA, (1999).
[11] Martinez-Garcia, J.C., and Garrido, R.: “Mechatronics hands-on training through the development of an Internet-based automatic control laboratory”. Control Applications, 2001. (CCA '01). Proceedings of the 2001, IEEE International Conference, (2001) 131-134.
[12] Rohrig, C., and Jochheim, A.: “The Virtual Lab for controlling real experiments via Internet”. Computer Aided Control System Design, 1999. Proceedings of the 1999 IEEE International Symposium on, (1999) 279-284.
[13] Overstreet, J.W., and Tzes, A.: “Internet-based client/server virtual instrument designs for real-time remote-access control engineering laboratory”. American Control Conference, 1999. Proceedings of the 1999, (1999) vol.2, 1472-1476.
[14] Amadou, M.M.D., Saad, M., Kenne, J.P., and Nerguizian, V.: “Virtual and remote laboratories”. E-Learning in Industrial Electronics, 2006 1ST IEEE International Conference, (2006) 173-176.
[15] Chiculita, C., and Frangu, L.: “A Web Based Remote Control Laboratory”. The 6th World Multiconference on Systemics, Cybernetics and Informatics, Orlando, Florida, (2002).
[16] Saad, M., Saliah-Hassane, H., Hassan, H., El-Guetioui, Z., and Cheriet, M.: “A Synchronous Remote Accessing Control Laboratory on the Internet”. International Conference on Engineering Education, Oslo, (2001).
57
[17] Lazar, C., and Carari, S.: “A Remote-Control Engineering Laboratory”, Industrial Electronics, IEEE Transactions on, (2008) vol.55, 6, 2368-2375.
[18] Hiroshi, K., and Shintaro, I.: “Web tools for distance learning”. Systems, Man, and Cybernetics, 1999. IEEE SMC '99 Conference Proceedings. 1999 IEEE International Conference, (1999) vol.2, 235-238.
[19] Sana, F., and Khoja, S.A.: “A Low Cost Interactive Distance Learning Solution”. Computer and Information Science, 2007. ICIS 2007. 6th IEEE/ACIS International Conference, (2007) 1025-1029.
[20] Taylor, K.D., Honchell, J.W., and DeWitt, W.E.: “Distance learning in courses with a laboratory”. Frontiers in Education Conference, 1996. FIE '96. 26th Annual Conference., Proceedings of, (1996) vol.1, 44-46.
[21] Yusof, K.M., Liong, T.K., and Baderon, A.K.: “Computer-aided process control laboratory systems”. Multi-Media Engineering Education Proceedings, 1994., IEEE First International Conference on, (1994) 276-280.
[22] Ling, G., and Jianqun, L.: “Labview and Internet Based Remote Water Level Control Laboratory”. Information Technologies and Applications in Education, ISITAE '07, (2007) 187-188.
[23] Yang, S.H., Chen, X., and Alty, J.L.: “Design issues and implementation of internet-based process control systems”, Control Engineering Practice, (2003) vol.11, 6, 709-720.
[24] Johansson, M., Gafvert, M., and Astrom, K.J.: “Interactive tools for education in automatic control”, Control Systems Magazine, IEEE, (1998) vol.18, 3, 33-40.
[25] Poindexter, S.E., and Heck, B.S.: “Using the Web in your courses: what can you do? what should you do?”, Control Systems Magazine, IEEE, (1999) vol.19, 1, 83-92.
58
[26] Wagner, B., and Tuttas, J.: “Team learning in an online lab”. Frontiers in Education Conference, 2001. 31st Annual, (2001) vol.1, TIF-18-22.
[27] “Didaktisches Design medialer Lernangebote im Umfeldingenieurwissenschaftlicher Laborpraktika: Didactical Design of media learning offers in the surrounding field of engineer-scientific laboratory practical courses”, University Duisburg-Essen, Campus Duisburg, (2005).
[28] Sebastian, J.M., Garcia, D., and Sanchez, F.M.: “Remote-access education based on image acquisition and processing through the Internet”, Education, IEEE Transactions on, (2003) vol.46, 1, 142-148.
[29] Mason, G.: “A handheld data acquisition system for use in an undergraduate data acquisition course”, Education, IEEE Transactions on, (2002) vol.45, 4, 388-393.
[30] Efstathiou, K., Karadimas, D., and Zafeiropoulos, K.: “A Remote Electrical Engineering Laboratory based on Re-Configurable Hardware”. Instrumentation and Measurement Technology Conference Proceedings, 2007. IMTC 2007. IEEE, (2007) 1-6.
[31] I-Hai Lin, P., and Lin, M.: “Design and implementation of an Internet-based virtual lab system for elearning support”. Advanced Learning Technologies, 2005. ICALT 2005. Fifth IEEE International Conference, (2005) 295-296.
[32] Hough, M., and Marlin, T.: “Web-based interactive learning modules for process control”, Comput. Chem. Eng., (2000) vol.24, 2-7, 1485-1490.
[33] WebAssign: “Homework and Grading”, http://www.webassign.net/, (Şubat 2003).
[34] Copinga, G.J.C., Verhaegen, M.H.G., and van de Ven, M.J.J.M.: “Toward a Web-based study support environment for teaching automatic control”, Control Systems Magazine, IEEE, (2000) vol.20, 4, 8-19.
59
[35] Gillet, D., Latchman, H.A., Salzmann, C., and Crisalle, O.D.: “Hands-on laboratory experiments inflexible and distance learning”, J. Eng. Ed., (2001) vol.90, 2, 187-191.
[36] Srinivasagupta, D., and Joseph, B.: “An Internet-mediated process control laboratory”, Control Systems Magazine, IEEE, (2003) vol.23, 1, 11-18.
[37] Keating, K.A., Myers, J.D., Pelton, J.G., Bair, R.A., Wemmer, D.E., and Ellis, P.D.: “Development and use of a virtual NMR facility”, J. Magn. Reson., (2000) vol.143, 172-183.
[38] Uran, S., and Jezernik, K.: “Virtual Laboratory for Creative Control Design Experiments”, Education, IEEE Transactions on, (2008) vol.51, 1, 69-75.
[39] Ali, M.M., Baba, R., and Ching Jin, H.: “An automated control laboratory station”. Multi-Media Engineering Education Proceedings, 1994., IEEE First International Conference, (1994) 408-412.
[40] Creighton, S.D., and etal.: “A comprehensive system for student and program assessment: Lessons learned”, Int. J. Eng. Education, (2001) vol.17, 1, 81-88.
[41] Horácek, P.: “Laboratory experiments for control theory courses: A survey”, Annual Reviews in Control, (2000) vol.24, 151-162.
[42] Hercog, D., Gergic, B., Uran, S., and Jezernik, K.: “A DSP-Based Remote Control Laboratory”, Industrial Electronics, IEEE Transactions on, (2007) vol.54, 6, 3057-3068.
[43] Chinchilla, R., and Nurre, J.H.: “Design of an industrial controls laboratory”. System Theory, 1994., Proceedings of the 26th Southeastern Symposium on, (1994) 618-622.
[44] Cone, M.L.: “Design in an undergraduate controls laboratory”. Frontiers in Education Conference, 1998. FIE '98. 28th Annual, (1998) vol.3, 1068-1072.
[45] Junge, T.F., and Schmid, C.: “Web-based remote experimentation using a laboratory-scale optical tracker”.
60
American Control Conference, 2000. Proceedings of the 2000, (2000) vol.4, 2951-2954.
[46] de Magistris, M.: “A MATLAB-based virtual laboratory for teaching introductory quasi-stationary electromagnetics”, Education, IEEE Transactions on, (2005) vol.48, 1, 81-88.
[47] Jimenez, L.M., Puerto, R., Reinoso, O., Neco, R.P., and Fernandez, C.: “Remote Control Laboratory Using Matlab and Simulink”. Industrial Electronics, 2007. ISIE 2007. IEEE International Symposium on, (2007) 2963-2967.
[48] Dixon, W.E., Dawson, D.M., Costic, B.T., and de Queiroz, M.S.: “A MATLAB-based control systems laboratory experience for undergraduate students: toward standardization and shared resources”, Education, IEEE Transactions on, (2002) vol.45, 3, 218-226.
[49] Doitsidis, L., Nelson, A.L., Valavanis, K.P., Long, M.T., and Murphy, R.R.: “Experimental validation of a MATLAB based control architecture for multiple robot outdoor navigation”. Intelligent Control, Proceedings of the 2005 IEEE International Symposium on, Mediterrean Conference on Control and Automation, (2005) 1499-1505.
[50] Exel, M., Gentil, S., Michau, F., and Rey, D.: “Simulation workshop and remote laboratory: two Web-based training approaches for control”. American Control Conference, 2000. Proceedings of the 2000, (2000) vol.5, 3468-3472.
[51] Hahn, H.H., and Spong, M.W.: “Remote laboratories for control education”. Decision and Control, 2000. Proceedings of the 39th IEEE Conference, (2000) vol.1, 895-900.
[52] “Departamento de Informática y Automática”, http://www.dia.uned.es/dia/ proyectos/DPI2001012/des.html, (2007).
[53] Candelas, F.A., and Sánchez, J.: “Recursos didácticos basados en Internet para el apoyo a la enseñanza de materiales del área de ingeniería de sistemas y automática”, Revista
61
Iberoamericana de Automática e Informática Industrial, (2005) vol.2, 2.
[54] Candelas, F.A., Torres, F., Gil, P., Ortiz, F., Puente, S., and Pomares, J.: “Laboratorio virtual remoto para robótica y evaluación de su impacto en la docencia”, Revista Iberoamericana de Automática e Informática Industrial, (2004) vol.1, 1, 49-57.
[55] Grau, A., and Bolea, Y.: “Virtual Laboratories for Ecological Systems Modeling”. International Workshop for Computer Education, SIIE, León, Spain, (2006).
[56] Grau, A., and Bolea, Y.: “Remote laboratory for control engineering degree”. Emerging Technologies and Factory Automation, ETFA, IEEE Conference, (2007) 1188-1193.
[57] Ko, C.C., Chen, B.M., Chen, J.P., Zhang, J., and Tan, K.C.: “A Web-based Laboratory on Control of a Two-Degrees of Freedom Helicopter”, Int. J. Eng. Educ., (2005) vol.21, 6, 1017–1030.
[58] Valera, A., Diez, J.L., Valles, M., and Albertos, P.: “Virtual and remote control laboratory development”, Control Systems Magazine, IEEE, (2005) vol.25, 1, 35-39.
[59] Safaric, R., Debevc, M., Parkin, R.M., and Uran, S.: “Telerobotics experiments via Internet”, Industrial Electronics, IEEE Transactions on, (2001) vol.48, 2, 424-431.
[60] Tzafestas, C.S., Palaiologou, N., and Alifragis, M.: “Virtual and remote robotic laboratory: comparative experimental evaluation”, Education, IEEE Transactions on, (2006) vol.49, 3, 360-369.
[61] Duan, B., Ling, K.-V., Mir, H., Hosseini, M., and Gay, R.K.L.: “An Online Laboratory Framework for Control Engineering Courses”, Int. J. Eng. Educ., (2005) vol.21, 6, 1068–1075.
[62] Henry, J., and Knight, C.: “Modern Engineering Laboratories at a Distance”, Int. J. Eng. Educ., (2003) vol.19, 3, 403–408.
62
[63] Kikuchi, T., Fukuda, S., Fukuzaki, A., Nagaoka, K., Tanaka, K., Kenjo, T., and Harris, D.A.: “DVTS-based remote laboratory across the Pacific over the gigabit network”, Education, IEEE Transactions on, (2004) vol.47, 1, 26-32.
[64] Smith, K.A., and Wallcr, A.A.: “New Paradigms for Engineering Education”. FIE Conference, Pittsburgh, Pcnnsylvania, (1997).
[65] Kirkpatrick, D.L.: “Evaluating Training Programs: The Four Levels”. Berrett-Kochler, San Francisco, (1994).
[66] Latchman, H.A., Salzmann, C., Gillet, D., and Bouzekri, H.: “Information technology enhanced learning in distance and conventional education”, Education, IEEE Transactions on, (1999) vol.42, 4, 247-254.
[67] Lab, U.E.: “Web Resource Center”, http://chem.engr.utc.edu, (Şubat 2003).
[68] Joseph, B., Ying, C., and Srinivasagupta, D.: “A laboratory to supplement courses in process control”, Chem. Eng. Ed., (2002) vol.36, 1, 20-25.
[69] Ricker, N.L.: “Using MATLAB/Simulink for data acquisition and control”, Chem.Eng.Ed., (2001) vol.35, 4, 286-289.
[70] Casini, M., Prattichizzo, D., and Vicino, A.: “The automatic control telelab”, Control Systems Magazine, IEEE, (2004) vol.24, 3, 36-44.
[71] Diez, J.L., Valles, M., and Valera, A.: “A global approach for the remote process simulation and control”. Proceedings of the 15th IFAC World Congress, Barcelona, Spain, (2002) vol.15.
[72] Aktan, B., Bohus, C.A., Crowl, L.A., and Shor, M.H.: “Distance learning applied to control engineering laboratories”, Education, IEEE Transactions on, (1996) vol.39, 3, 320-326.
[73] Bohus, C., Crowl, L., Aktan, B., and Shor, M.H.: “Running control engineering experiments over the internet”. Proceedings IFAC World Congress, San Francisco, California, (1996) vol.G, 25-33.
63
[74] Bhandari, A., and Shor, M.H.: “Access to an instructional control laboratory experiment through the World Wide Web”. American Control Conference, 1998. Proceedings of the 1998, (1998) vol.2, 1319-1325.
[75] How, C.J.: “Automated Control Laboratory Station (A.C.L.S.)”, BSc Thesis, Universiti Teknologi Malaysia, (1993).
[76] Palop, J.M.G., and Teruel, J.M.A.: “Virtual work bench for electronic instrumentation teaching”, Education, IEEE Transactions on, (2000) vol.43, 1, 15-18.
[77] Daly, C., and Horgan, J.M.: “An automated learning system for Java programming”, Education, IEEE Transactions on, (2004) vol.47, 1, 10-17.
[78] Karadimas, D., and Efstathiou, K.: “Design, Implementation and Evaluation of a Remote Laboratory System for Electrical Engineering Courses”. Advanced Learning Technologies, 2006. Sixth International Conference, (2006) 408-412.
[79] Yeung, K., and Huang, J.: “Development of a remote-access laboratory: a dc motor control experiment”, Computers in Industry, (2003) vol.52, 3, 305-311.
[80] Yan, P., Valkama, M., and Renfors, M.: “Distance Learning in Communications Signal Processing Using Matlab Web Server ”. Proceedings of the 6th Nordic Signal Processing Symposium-NORSIG 2004, Espoo, Finland, (2004).
[81] Uran, S., Hercog, D., and Jezernik, K.: “MATLAB Web Server and Web-based Control Design Learning”. IEEE Industrial Electronics, IECON 2006 - 32nd Annual Conference on, (2006) 5420-5425.
[82] Pavelka, A., and Procházka, A.: “Interactive Programming in MATLAB Using MATLAB Web Server”. Proc. Sborník 11. konference-MATLAB 2003, (2003).
[83] “MATLAB Web Server User’s Guide”, The MathWorks Inc., (2003).
64
[84] Musoko, V., and Procházka, A.: “Implementation of a MATLAB Web Server for Internet-Based Processing of Biomedical Images”. Proceedings of MATLAB Conference, Nordic, (2003).
[85] “WinCon 4.1 User’s Guide: Hard Real-time Performance at your Fingertips”, Quanser Consulting, (2003).
[86] “GlobeLab: Plataforma para la Docencia de Ingenier de Sistemas y Autom tica no-presencial y semi-presencial”, Research Project (PID1208C), (2002).
[87] Dawei, W., Dikshit, A., and Weizhao, Z.: “Medical imaging curriculum development: an interactive simulation system for different modalities”. Engineering in Medicine and Biology Society, 2004. IEMBS '04. 26th Annual International Conference of the IEEE, (2004) vol.2, 5172-5175.
[88] Linka, A., and Volf, P.: “Statistical Data Analysis Course Via The MATLAB Web Server”. Record 2nd International Conference on the Teaching of Mathematics, Melbourne, Australia, (2002).
[89] XploRe: “XploRe Statistics Package”, http://www.md-stat.com/, (2002).
[90] John, J., and Kutil, M.: “Internet Textbook SARI”, http://dce.felk.cvut.cz/sari/i, (2004).
[91] Láska, R., and Kutil, M.: “AGMAWEB - Automatically Generated MATLAB Web Server Presentations”. 15th International Conference on Process Control 05, Bratislava, (2005).
[92] Savaş, K.: “Automatic Control Simulation Environment System (ACSES)”, http://www.controlworld.tk/control/experiments/auto_control/, (09 Aralık 2009).
[93] Savaş, K., and Erdal, H.: “Automatic Control Simulation Environment System (ACSES) Designed As A Virtual Tool For Control Education”, Procedia Social and Behaviour Sciences, (2010) vol.2, 5233–5237.
[94] Savaş, K., and Erdal, H.: “Automatic Control Simulation Environment System (ACSES) Designed As A Virtual Tool For
65
Control Education”. World Conference on Educational Sciences Bahçeşehir Üniversitesi, Istanbul, Turkey, (2010).
[95] Savaş, K., and Yıldız, K.: “A Web Based Clustering Analysis Toolbox (WBCA) Design Using MATLAB”, Procedia Social and Behaviour Sciences, (2010) vol.2, 5276–5280.
[96] Savaş, K., and Yıldız, K.: “A Web Based Clustering Analysis Toolbox (WBCA) Design Using MATLAB”. World Conference on Educational Sciences Bahçeşehir Üniversitesi, Istanbul, Turkey, (2010).
[97] Ünal, M., Savaş, K., Topuz, V., and Erdal, H.: “Web Based Control Simulations Environment (WBCSE) for Control Education with MATLAB”. International Educational Technology Conference (IETC), Boğaziçi Üniversitesi, Istanbul, Turkey, (2010).
[98] “Software License Agreement for MATLAB 2006b”, The MathWorks Inc., (2006).
[99] Crutchfield, S.G., and Rugh, W.J.: “Interactive learning for signals, systems, and control”, Control Systems Magazine, IEEE, (1998) vol.18, 4, 88-91.
[100] Lee, J.S., and Yang, D.R.: “Chemical engineering education using Internet”. Proc. 8th APCCHE Congress, Seoul, Korea, (1999) 1033–1036.
[101] Wikipedia: “Wikipedia, The Free Encyclopedia”, http://www.wikipedia.org/, (10 Mayıs 2010).
[102] Macit, İ.: “Apache Web Sunucusu”, http://hpss.endustri.cu.edu.tr/ders/ ENM424/Bolum4-Apache.pdf, (18 Mart 2010).
[103] Doğan, H.: “PHP Dökümanları”, http://www.php.web.tr/, (18 Mart 2007).
[104] Apache.org: “Apache Web Server”, http://www.apache.org/, (2009).
66
[105] Apache.org: “Apache Installation Packages”, http://www.apache.org/dist/ httpd/binaries/win32/, (18 Mart 2010).
[106] Tüfekçilerli, H.: “Apache Kurulumu”, http://huseyint.com/projeler/apache-php-mysql/Apache-Kurulumu.html, (18 Mart 2010).
[107] PHP.net: “PHP: Hypertext Preprocessor”, http://www.php.net/, (03 Nisan 2010).
[108] Anaska: “WAMP Server”, http://www.wampserver.com/en/, (Mart 2009).
[109] Irmak, E., Bayindir, R., Colak, I., and Soysal, M.: “A remote laboratory experiment for 4-quadrant control of a DC motor”, Computer Applications in Engineering Education, (2009) vol.9999, 9999, n/a.
[110] MathWorks: “MATLAB Help”, (2006).[111] Savaş, K.: “Web MWS Sistemi”,
http://www.controlworld.tk/web_mws/, (05 Kasım 2009).[112] Savaş, K.: “webmagic, Web MWS Demo Uygulaması”,
http://www.controlworld.tk/web_mws_files/599a71294771c1030513783c423b84f6/webmagic_input.html, (16 Kasım 2009).
[113] Savaş, K., and Yıldız, K.: “clustering_app_01, Web MWS Uygulaması”, http://www.controlworld.tk/web_mws_files/51e1c67ef018fca53583dc6651273612/clustering_app_01_input.html, (09 Aralık 2009).
[114] Ünal, M., and Savaş, K.: “gunt_rt532_control, Web MWS Uygulaması”, http://www.controlworld.tk/web_mws_files/fc2da5bf65bc8d7c8c65e411060171a3/gunt_rt532_control_input.html, (06 Nisan 2010).
[115] Berry, M.J.A., and Linoff, G.S.: “Data Mining Techniques: For Marketing, Sales, and Customer Support”, Wiley Publishing, Indiana, (2004).
67
[116] Davidson, I.Y.: “Understanding K-means Non-hierarchical Clustering”, Computer Science Department of State University of New York (SUNY), Albany, (2002).
[117] Kaufman, L., and Rousseeuw, P.J.: “Finding Groups in Data: an Introduction to Cluster Analysis”, John Wiley & Sons, (1990).
[118] Azem, Z.: “A Comprehensive Cluster Validity Framework For Clustering Algorithms”, MSc Thesis, The University of Guelph, Canada, (2003).
[119] Larose, D.T.: “Discovering knowledge in data: an introduction to data mining”, John Wiley & Sons, (2005).
[120] Mucha, J.M., and Sofyan, H.: “Nonhierarchical Clustering”, http://www.quantlet.com/mdstat/scripts/xag/html/xaghtmlframe149.htm, (29 Kasım 2009).
[121] Han, J., and Kamber, M.: “Data Mining Concepts and Techniques”, Morgan Kauffmann Publishers Inc., (2001).
[122] Bilgin, T.T.: “Veri Madenciliğinde Kümeleme Analizi Yöntemi Uygulaması”, Yüksek Lisans Tezi, Marmara Üniversitesi, Fen Bilimleri Enstitüsü, İstanbul, (2003).
[123] Karypis, G., Han, E.H., and Kumar, V.: “CHAMELEON: A Hierarchical Clustering Algorithm Using Dynamic Modeling”, IEEE Computer 32, (1999) vol.8, 68-75.
[124] Jain, A.K., and Dubes, R.C.: “Algorithms for Clustering Data”, Prentice Hall, Englewood Cliffs, New Jersey, 07632, (1988).
[125] “The Algorithm of c-Means”, http://www.elet.polimi.it/upload/matteucc/ Clustering/tutorial_html/cmeans.htm, (15 Kasım 2009).
[126] Ünal, M.: “PID Kontrolörün Karınca Kolonisi/Genetik Algoritma Tabanlı Optimizasyonu ve GUNT RT 532 Basınç Prosesinin Kontrolü”, Yüksek Lisans Tezi, Marmara Üniversitesi, Fen Bilimleri Enstitüsü, İstanbul, (2008).
68
EKLER
Tez çalışması kapsamındaki MATLAB programları kaynak kodlarına [92] ve
[111] nolu kaynaklardan erişilebilir.
69
ÖZGEÇMİŞ
1983 yılında İstanbul’da doğdu. İlköğrenimini Gebze’de tamamladı. 2000
yılında Darıca Lafarge Aslan Çimento Endüstri Meslek Lisesi Bilgisayar Bölümünde
orta öğrenimini tamamladı. 2002 yılında Marmara Üniversitesi Bilgisayar
Programcılığı önlisans programından bölüm birinciliği derecesi ile mezun oldu. 2003
yılında Marmara Üniversitesi Bilgisayar ve Kontrol Öğretmenliği lisans programına
dikey geçiş yaptı. Bu programdan 2007 yılında mezun oldu. 2007–2008 Eğitim-
Öğretim yılında Marmara Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar-Kontrol
Eğitimi Anabilim dalında yüksek lisans öğrenime başladı. Aynı yıl Marmara
Üniversitesi Teknik Eğitim Fakültesi Elektronik-Bilgisayar Bölümü Kontrol
Anabilim dalında Araştırma Görevlisi olarak atandı ve halen aynı bölümde
çalışmakta ve akademik çalışmalara devam etmektedir.
70