real-tıme wındows target

1
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
REAL-TIME WINDOWS TARGET
Real-Time Windows Target (RTW Target), real-time (gerçek zamanlı) bir sistem
prototipi oluşturmak ve bu prototipi test etmek için PC ortamında çözümler üretir. Ayrıca
sunucu (çözümün oluşturulduğu) ve hedef (real-time sistemin doğrudan bağlı olduğu)
bilgisayar olarak tek bir bilgisayarı kullanma imkanı sağlar. Normal şartlarda bilgisayarla dış
dünyadaki bir sistemi gerçek-zamanlı olarak kontrol etmek mümkün değildir. Çünkü
bilgisayarda yüklü bulunan işletim sistemi buna izin vermez. Bilgisayar donanımının
öncelikli kullanıcısı işletim sistemidir. Bunu aşmak için sunucu (host) ve hedef (target)
PC’ler kullanılır. Host PC’de bir işletim sistemi yüklü bulunur ve sistem burada
tasarlanarak, derlenir. Daha sonra bir haberleşme protokolü ile içinde herhangi bir işletim
sistemi olmayan target PC’ye yüklenir ve burada çalıştırılır. Görüldüğü üzere böyle bir
durumda real-time çalışmak için iki adet PC’ye ihtiyaç duyulmaktadır. Fakat RealTime Windows Target ile buna gerek yoktur.
Bilgisayarlarda donanım ile yazılım arasında bağlantı kuran “kernel” isimli bir yazılım
mevcuttur. RTW Target küçük bir “kernel” yazılımı kullanarak real-time çalışmayı
sağlamaktadır.
Simulink ortamında, Simulink blokları ve Stateflow kullanarak oluşturulan model
öncelikle Simulink’te normal modda simule edilir. Daha sonra Real-Time Workshop,
Stateflow Coder ve C derleyici seçeneklerinden biri ile çalıştırılabilir kodlar derlenir.
Böylece oluşturulan model, Simulink’te externel modda real-time olarak
çalıştırılabilir.
Real-Time Windows Target’ı kullanabilmek için MATLAB ana ürün, Simulink, RealTime Workshop ve bir C derleyicinin (Microsoft Visual C/C++ veya Watcom C/C++)
bilgisayara yüklü olması gerekmektedir.
Bu ürünlerden Simulink, gerçek sistemi modellemek ve kontrolörü tasarlamak için
kullanılmaktadır. Fakat RTW Target, Simulink’teki herşeyi desteklememektedir.
Sadece Continues-time ve discreate-time içeren bloklar kullanılabilir. Ayrıca
display, to workspace, to file ve graph gibi blokları da RTW Target
desteklememektedir.
Simulink’in RTW Target kütüphenesinde I/O blokları bulunmaktadır. Bunlar analog
giriş-çıkış, dijital giriş-çıkış, enkoder ve sayıcı (counter) bloklarıdır. Farklı firmalara
ait iki yüzün üzerinde I/O kartı sürücüsü bulunmaktadır. Sürücüler,
http://www.mathworks.com/products/rtw/ioboards.shtml adresinden güncellenebilir.
2
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Ayrıca her kullanıcı bu I/O kartlarına ihtiyaç duymadan, bilgisayardaki joystick,
mouse, parallel port ve ses kartının giriş-çıkışlarını kullanabilir. Ancak bu
seçeneklerde güvenlik problemi bulunmaktadır. Yüksek gerilim-akım ve izolasyon
eksikliği gibi nedenler ile bilgisayara zarar verilebilir. Bu konularda gerekli önlemler
alınmadan çalışma yapılmamalıdır.
RTW-Target hızlı tasarımın yanında, mümkün olduğunca esneklik de sağlamaktadır.
Bu sayade real-time çalışma esnasında parametreleri değiştirmeye ve sinyal
işlemeye imkan sunmaktadır. Bu kolaylık, kod hacminin büyümesine neden olur.
Fakat Real-Time Workshop Simulink modellerini C kodlarına çevirerek kullandığı
format ile gömülü sistem için gerekli kodları, mümküm olan en küçük hacimde derler.
C derleyicisi ise Real-Time Workshop ile Simulink modellerinden elde edilen C
kodllarını veya C-kodlu S-function‘ları derler. Real-time çalışma için bu
gereklidir. Tasarlanan modellerde MATLAB kodlu (M-kodlu) S-function
fonksiyonlar kullanılmamalıdır. Çünkü C derleyicisi M-kodlu S-function
derleyemez.
RTW-Target ile ilişkili olan ürünler; Stateflow, Stateflow Coder, Dials&Gauges, DSP
Blocks, Fixed-Point Blockset araç kutularıdır.
Bu ürünlerden Dials&Gauges, tasarlanan Simulink modeli için kontrol paneli
oluşturmada kullanılmaktadır. DSP Blok seti, Simulink modeline sinyal işleme
fonksiyonu eklemek için Fixed-Point Blok seti ise, 8, 16 ve 32 bit integer math
kullanarak dinamik modelleri tasarlamak için kullanılmaktadır.
RTW TARGET NASIL ÇALIŞIR?
RTW-Target ürününü kullanabilmek için öncelikle Windows NT 4.0, Windows 2000,
veya Windows XP (MATLAB 7.0 öncesi sürümler için Windows98, ME dahil) işletim
sistemlerinden biri ve MATLAB’ın yüklü olduğu bir bilgisayar gerekmektedir. Gerekli
yazılım ise, yukarıda ismi geçen işletim sistemlerinden biri, bir C derleyici (Microsoft
Visual C/C++ veya Watcom C/C++), MATLAB ana ürünü ve beraberindeki Simulink,
Real-Time Workshop ve RTW-Target ürünleridir. Bu yazılımlar yüklendikten sonra
bazı ayarların yapılması gerekmektedir.
Öncelikle yüklenen C derleyici real-time uygulamaları derlemek için varsayılan
olarak tanımlanır. Bunun için MATLAB komut penceresinde;
mex –setup yazılarak enter tuşuna basıldığında ekranda,
>> mex -setup
Please choose your compiler for building external interface
(MEX) files:
Would you like mex to locate installed compilers [y]/n?
mesajı belirir.
3
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
‘y’ yazılarak enter tuşuna basıldığında, ekranda bilgisayarda yüklü olan
derleyicileri gösteren bir mesaj belirecektir.
Select a compiler:
[1]
Digital
Visual
Fortran
version
6.0
Files\Microsoft Visual Studio
[2] Lcc C version 2.4 in C:\MATLAB7\sys\lcc
[3]
Microsoft
Visual
C/C++
version
6.0
Files\Microsoft Visual Studio
in
C:\Program
in
C:\Program
[0] None
Compiler:
Bilgisayarda yüklü olan C derleyicisi için uygun numara seçilerek enter tuşuna
basılır. “3” numaralı derleyici için,
Please verify your choices:
Compiler: Microsoft Visual C/C++ 6.0
Location: C:\Program Files\Microsoft Visual Studio
Are these correct?([y]/n):
Yukarıdaki formatta derleyicinin yeri ekranda belirecektir. İstenilen derleyici ise ‘y’
yazılarak derleyici seçilecektir. Aksi takdirde derleyicinin yeni sürümü yüklenerek,
yukarıdaki işlemler yeniden yapılmalıdır.
C derleyicisi ile ilgili işlemler tamamlandıktan sonra kernel yazılımının yüklenmesi
gerekmektedir. Bunun için MATLAB komut penceresinde ;
Rtwintgt –install
belirecektir.
yazılmalıdır. Daha sonra ekranda aşağıdaki mesaj
The current version of the Real-Time Windows Target kernel is
already installed.
Do you want to reinstall it? [n] :
Genellikle kernel yazılımı daha önceden yüklenmiştir. Bu nedenle yukarıdaki
mesej belirir ve kernel yazılımı yeniden yüklenmek istenmiyorsa ‘n’ yazılarak işlem
iptal edilir. Eğer kernel yazılımı yüklü değilse ‘y’ yazılarak yükleme işlemi
tamamlanır. Daha sonra bilgisayarın yeniden başlatılması isteniyorsa kernel’in
çalışması için bunun yapılması gerekir. Kernel’in doğru yüklendiğini kontrol etmek
için MATLAB komut penceresinde rtwho yazılmalıdır. Yükleme doğru yapılmış ise
bilgisayarın ve MATLAB’ın performansına göre aşağıdaki mesaj belirecektir. Eğer
yükleme doğru yapılmamış ise rtwintgt –install komutu ile yeniden yükleme
yapılmalıdır.
Real-Time Windows Target version 2.5.0 (C) The MathWorks, Inc.
1994-2003
Running on Uniprocessor APIC computer.
4
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
MATLAB performance = 100.0%
Kernel timeslice period = 1 ms
Yüklenen yazılımları test etmek için MATLAB demolarından birini çalıştırarak bu
işlem yapılabilir. Bunun için MATLAB komut penceresinde rtvdp yazılarak enter
tuşuna basıldığında aşağıdaki şekilde yer alan pencere açılacaktır.
Bu model, I/O blokları bulundurmadığı için bir I/O kartına ihtiyaç duymadan
çalıştırılabilir. Modeli çalıştırmak için pencerinin üst kısmındaki
butonuna
basılmalıdır. Bazı durumlarda ekranda aşağıdaki şekilde olduğu gibi bir hata mesajı
belirebilir.
Bu hata mesajında modelin tekrar derlenmesi gerektiği belirtilmektedir. Öncelikle
demoda herhangi bir değişikliğin olmaması için, model farklı bir yere, farklı bir isimle
kaydedilir. Daha sonra modelin bulunduğu Simulink penceresinde Tools
Real-Time
Workshop
Build Model... seçilerek derleme işlemi gerçekleştirilir. Derleme başarı
5
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
REAL-TIME WINDOWS TARGET
ile tamamlandığında hiçbir hata mesajı belirmez ve MATLAB komut penceresinde en
alta,
Creating linker response file rtvdp.lnk
wlink NAME ..\rtvdp.rwd @rtvdp.lnk
### Created Real-Time Windows Target module rtvdp.rwd.
###
Successful
completion
procedure for model: rtvdp
of
Real-Time
mesajı belirir Bu durumda modeli çalıştırmak için öncelikle
Workshop
build
butonuna tekrar
basıldıktan sonra, aktif olan
butonuna basılmalıdır. Model çalışmaya
başlayınca, penceredeki Scope bloğuna çift tıklanarak içeriği açılır ve aşağıdaki
şekilde yer alan görüntü elde edilir.
Diğer RTW-Target demolarına da, MATLAB komut penceresinde rtwtdemo yazarak
aşağıdaki şekilde olduğu gibi ulaşılabilir.
6
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Uygulama-1:
Aşağıda basit bir örnek üzerinde RTW-Target işleyişi incelenmiştir. Bu uygulamada,
değişken referans bir değer ile sinüs işareti karşılaştırılarak değişken darbe
genişliğine sahip bir kare dalga elde edilecektir. DC motor kontrolü ile ilgilenenler
yapılan bu işlemin PWM yöntemi olduğunu hatırlayacaklardır. DC motor kontrolünde,
analog yada sayısal devreler ile elde edilen değişken darbe genişliğine sahip kare
dalga, diğer adıyla PWM sinyali, motor sürücüsüne verilir. Bu yöntemde darbe
genişliği değiştirilerek DC motor kontrolünde etkili olan gerilimin ortalama değeri
değiştirilmiş olur. Böylece motorun hızı kontrol edilir.
Öncelikle boş bir Simulink çalışma penceresi açılarak aşağıdaki şekle uygun olarak
model hazırlanmalıdır.
Simulink’te Logic and Bit Operations kütüphanesinde Relational
Operator bloğu alınır. Blok üzerine çift tıklayarak açılan pencerede aşağıdaki şekle
uygun olarak parametre değişiklikleri yapılır. Şekilde belirtilmeyen diğer
parameterlerin varsayılan olarak kalması yeterlidir.
Daha sonra ise Simulink’te sinks kütüphanesinden Sin Wave bloğu, Source
kütüphanesinden Scope bloğu ve Dials&Gauges Blok seti içinde yer alan Global
Majic ActiveX LibrarySliders kütüphanesinden Vertical Slider
7
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
bloğu alınarak şekle uygun olarak Simulink penceresine
bloğunun parametreleri varsayılan olarak kalması yeterlidir.
yerleştirilir. Sin Wave
Uygulamada değişken referans değerini Vertical Slider bloğu sağlayacaktır.
Referans değer aralığını ayarlamak için blok üzerine çift tıklayarak açılan pencerede
aşağıdaki şekle uygun olarak yanlızca General başlığı altındaki parametrelerin
değiştirilmesi yeterlidir. Value kısmı bloğun o andaki çıkış değerini göstermektedir,
dolayısıyla bu değerde değişiklik yapmaya gerek yoktur.
Simulation
Configuration Parameters
Solver yolunda Fixed Step seçeneği
seçilmelidir. Bütün real-time uygulamalarda Fixed Step seçilmelidir.
Simulasyon bitiş süresi “inf” olarak ayarlandıktan sonra uygulama derlenerek
çalıştırılabilir. Derleme işleminde öncelikle ne tür bir uygulama için derleme
yapılacağı belirtilmelidir. Bunun için Simulik penceresinde Tools
Real-Time
Workshop
Options... yolundan açılan pencerede Browse butonuna tıklanmalıdır.
Daha sonra açılan pencerede aşağıdaki şekilde olduğu gibi rtwin.tlc seçilmelidir.
Bu işlem tamamlandıktan sonra Tools
Real-Time Workshop
Options...
yolundan açılan penceredeki Build butonuna tıklayarak, Tools
Real-Time
Workshop
Build Model seçilerek yada Ctrl+B tuşları ile derleme işlemi
gerçekleştirilir.
8
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Derleme işlemi tamamlandıktan sonra uygulama çalıştırılabilir. Çalışma sırasında
Vertical Slider bloğundaki sürgü aşağı yukarı kaydırılarak, Relational
Operator bloğunun bağlı olduğu göstergeden darbe genişliğindeki değişiklik
izlenebilir.
Uygulama-2:
Aşağıdaki örnekte, bir önceki örnek üzerinde biraz değişiklik yapılarak donanımsal
olarak da gerçek zamanlı bir DC motor kontrol uygulaması gerçekleştirilmiştir.
Uygulamanın daha iyi anlaşılabilmesi için aşağıda PWM yöntemi ile DC motor
kontrolu anlatılmıştır.
PWM yöntemi ile DC motor hız kontrolünde asıl olan, sabit frekanslı bir kare dalga
sinyalin darbe genişliğini değiştirerek DC motora uygulanan gerilimin ortalama değeri
9
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
değiştirilir. Böylece DC motorun hızı ayarlanır. PWM sinyalini elde etmenin bir çok
yöntemi mevcuttur. Analog ve sayısal devreler yada günümüzde bu iş için kullanılan
özel entegreler ve mikrodeneteleyiciler ile kolayca PWM sinyali elde edilebilmektedir.
Uygulama, bir Opamp ile yapılan karşılaştırıcı devresinin modelidir.
Komparatör devresi
Relational
Operator bloğu Opampın görevini üstlenmektedir. Sinyal
Repeating Sequence bloğundan elde edilmektedir. Referans değer için ise
Vertical Slider bloğu kullanılmıştır.
Sinyalin referans değerine eşit ve büyük olduğu anlarda çıkış Vcc seviyesindedir. Aksi
durumda yani sinyalin referans değerinden küçük olduğu anlarda da çıkış sıfır
seviyesindedir. Aşağıdaki şekilde giriş ve çıkış sinyallerinin değişimi verilmiştir.
Kontrol ünitesinden elde edilen zayıf PWM sinyali bir güç devresine uygulanır ve
çıkışta daha yüksek genlikte bir PWM sinyali elde edilir. Bu sinyal bir filtre (genellikle
bir kondansatör) ile düzeltilerek DC motora uygulanır.
10
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Yukarıdaki şekilde bir DC motor sürücü ve kontrol devresi blok şeması
bulunmaktadır. Kontrol devresindeki girişler motor dönüş yönü ve hızını belirler. T1 ve
T2 uçları birbirlerinin eşleniğidir. Kontrol devresindeki giriş uçları aynı olduğu sürece
motor çalışmaz. Girişler birbirinin tersi olduğu durumda motor bir yöne döner. Giriş
uçlarından birine PWM uygulayıp diğer uca dijital sinyal (0 ya da 1) uygulanır ise
motorun hız kontrolü de yapılabilir. Dijital sinyal terslenerek motorun dönüş yönüde
değiştirilebilir. Aşağıdaki şekilde düşük güçlü bir sürücü devresi entegre örneği
verilmiştir.
L298
L298 entegresi, çift H-köprü sürücüdür. 46 Volt değerine kadar besleme gerilimi
uygulanabilmekte ve buna bağlı olarak çıkış gerilimi elde edilebilmektedir. Toplam
DC akımı 4 Amper değerine kadar çıkabilmektedir. Entegre ile ilgili diğer bilgiler
kataloğundan elde edilebilir.
11
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Aşağıdaki şekilde L298 entegresinin bağlantı uçları isimleri ile birlikte verilmiştir.
Entegrenin toplam 6 giriş ve 4 çıkış ucu bulunmaktadır. INPUT uçları motor dönüş
yönünü kontrol etmek için kullanılmaktadır. ENABLE uçlarına PWM sinyali
bağlanabilir. CURRENT SENSING uçları entegreden çekilen akımı sınırlamak için
kullanılmaktadır. Çok düşük değerli bir direnç üzerinden (30 Ω gibi bir değerle)
toprağa bağlanmalıdır. Şekilde de görüldüğü gibi entegrenin iki adet besleme ucu
bulunmaktadır. Bunlardan Logic Supply Voltage ucu 5-7 V değerinde olmalıdır.
Supply Voltage ucu ise asıl besleme ucudur ve çıkışa bağlanan motor gerekli
akımı bu kaynaktan alır.
Aşağıdaki şekilde entegre ve DC motor uçlarının bağlantı şeması verilmiştir.
Şekildeki devrede kullanılacak olan diyotların hızlı olanları tercih edilmelidir
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
12
V
M
DC Motor
Output1
Output2
Vs
Current
sensing A
30Ω
GND
Input1 Input2 Enable A
Vss
5V
Aşağıdaki şekilde PCI-1200 DAQ kartının pin diyagramı verilmiştir. Oluşturulan
modellerde çıkış olarak seçilen pin ve portlar için doğru uçlar devreye bağlanmalıdır.
Uygulamadaki tüm bloklar yerleştirildikten sonra Repeating Sequence bloğu
üzerine çift tıklayarak açılan pencereden parametreler aşağıdaki şekle uygun olarak
değiştirilir.
13
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Time value alanına yazılan değer, sinyalin periyodunu belirler. Burada matris
olarak yazılan “[0 0.001]” değeri, sinyalin bir periyodunun başlangıç ve bitiş
değerleridir. Kullanılacak zaman birimi ise saniyedir. Output value alanına ise,
sinyalin belirtilen periyot için değişim aralığı yazılmalıdır. Burada yazılan “[0 1]” değeri
için sinyal 0 ve 1 arasında değişim gösterecektir. Blok çıkışında ise belirtilen periyot
ve çıkış değerleri için testere dişi sinyal elde edilecektir.
Daha sonra Relational Operator bloğunu üzerine çift tılayarak açılan
pencereden Sample time (-1 for inherited) alanına örnekleme zamanı
“0.001” olarak yazılmalıdır. Çünkü örnekleme zamanın testere dişi sinyalin frekansı
ile senkronize olması gerekir. Repeating Sequence bloğunda Time value
alanına “[0 0.001]” yazıldığı hatırlanmalıdır. RTW Target blokları double veri tipini
kullanır. Relational Operator bloğununun da bu veri tipini kullanmasını
sağlamak için Signal data types başlığı altında Logical (see
Configuration Parameters: Optimization) seçilmelidir. Seçenekte de
belirtildiği gibi Simulink penceresinde Simulink
Configuration Parameters
yolundan, Optimization alanında Implement logic signals as boolean
data (vs. double) seçeneğindeki onay kaldırılmalıdır.
Oluşturulan modelin PC dışındaki donanımla bağlantısını sağlayacak bir I/O kartına
ihtiyaç vardır. I/O kartı ile oluşturulan model arasındaki bağlantıyı sağlamak için
Real-Time Windows Target altında uygun blok seçilerek Simulink modeline
eklenmelidir. Aşağıdaki şekilde de görüldüğü gibi bu uygulamada PWM çıkışı için
Digital Output bloğu kullanılmıştır.
14
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Daha sonra PC de bulunan I/O kartı için Digital Output bloğunda gerekli
ayarlamalar yapılmalıdır. Uygulamanın geliştirildiği PC de National Insturment
firmasına ait PCI-1200 DAQ kartı bulunmaktadır. Bu nedenle tüm ayarlamalar bu kart
için anlatılmıştır.
Blok üzerine çift tıklandıktan sonra açılan pencereden Install new board
tıklanarak MATLAB tarafından tanınan tüm I/O kartlarının bir listesi belirecektir.
15
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Açılan listede PC’ye takılı olan kart seçilir ve aktif olan Board setup butonuna
tıklanır. Açılan pencereden gerekli ayarlamalar yapılır. PCI slot alanına kartın
adresi yazılmalıdır. Ancak varsayılan olarak seçili olan Auto-detect ile kart
otomatik olarak taranarak, adresi tespit edilir. Differential A/D ve Dithered
A/D seçenekleri analog girişleri ilgilendirdiği için varsayılan olarak bırakılmalıdır.
Digital I/O kısmında, bu uygulamada A portu kullanıldığı için Port A Output
olarak aşağıdaki gibi seçilmelidir.
Ayarlamalar yapıldıktan sonra Test butonuna tıklanarak kartın test işlemi
gerçekleştirilir. Bu işlem hatasız tamamlanırsa ekranda aşağıdaki şekildeki gibi bir
mesaj belirecektir.
Daha sonra Block Parameters: Digital Output penceresinde aşağıdaki
şekilde olduğu gibi gerekli değişikler yapılarak model tamamlanır.
16
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Yukarıdaki şekilde Sample time alanına örnekleme zamanı tanımlanmalıdır.
Örnekleme süresi, Relational Operator bloğunun çıkış sinyalinin örnekleme
süresinden büyük olmamalıdır. Output channels alanına çıkış olarak seçili portun
hangi kanallarının (pinlerinin) kullanılacağı tanımlanmalıdır. Bu uygulama için
Output channels: 1 seçildiğinden portun PA0 pini çıkış olarak kullanılacaktır.
Birden fazla pin kullanılacaksa, [1, 2, ...] matris formatında pin numaralarını yazmak
yeterlidir. Channel mode alanında Bit ve Byte olmak üzere iki seçenek vardır.
Burada çıkış, veri için değil de bit (pin) olarak kullanıldığı için Bit seçilmiştir.
Inital value ve Final value alanlarına, uygulamanın başlangıç ve bitiş
anlarında çıkışa yüklenmek istenen değerleri yazılır.
Tüm ayarlamalar yapıldıktan sonra Tools
Real-Time Workshop
Options...
yolundan açılan pencerede Browse butonuna tıklayarak rtwin.tlc seçilmelidir.
Daha sonra derleme işlemi gerçekleştirilerek uygulama çalıştırlabilir. Çalışma
sırasında Vertical slider bloğundaki sürgü hareket ettirilerek motor hızındaki
değişme gözlenebilir. Ayrıca göstergeden de PWM sinyalindeki değişim izlenebilir.
Yukaridaki örnek üzerinde biraz değişiklik yapılarak aynı işlem paralel port üzerinden
de yapılabilir. Bunun için Digital Output bloğuna çift tıkladıktan sonra açılan
pencerede Instal new board butonuna tılayarak aşağıdaki şekildeki gibi paralel
port seçilir. Daha sonra Board Setup butonuna tıklayarak açılan pencerede,
kullanıcı bilgisayarında hangi paralel portu kullanıyor ise onu seçmelidir.
17
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Blok parametrelerinde, output channels alanına paralel portun 8 adet çıkış
pininden hangisi kullanılacaksa, pin numarası (1 ile 8 arasında olmak kaydıyla)
yazılır. Diğer parametreler önceki örnekte olduğu gibi brakılması yeterlidir.
18
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Aşağıdaki şekilde paralel port pin numaraları verilmiştir. 2-9 numaralı pinler I/O için
kullanılmaktadır. RTW-Target bloğunda bu pinler 1-8 olarak numaralandırılmaktadır.
25 numaralı pin toprak ucudur.
Blokta bir numaralı çıkış seçildiğinde, paralel portta iki numaralı uç devreye PWM
sinyali olarak bağlanmalıdır.
Tüm işlemler tamamlandıktan ve bağlantılar doğru olarak yapıldıktan sonra uygulama
çalıştırılabilir.
Çalışma esnasında vertical slider
motorun hızındaki değişim gözlenebilir.
bloğundaki sürgü hareket ettirilerek
Uygulama-3:
Bu uygulamada bir binary sayıcı modeli oluşturulmuştur. RTW-Target modeli olarak
hazırlanan uygulama çalıştırılarak binary sayma işlemi paralel porta bağlanan ledler
üzerinden izlenebilmiştir. Oluşturulan model için kullanılan bloklar aşağıdaki şekilde
yer almaktadır.
19
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Sayıcı olarak source kütüphanesinden counter limeted kullanılmıştır. Blok
üzerine çift tıklayarak açılan penreden, sayma zamanı ve üst sınır değeri
ayarlanabilir.
Upper limit alanına, hangi değere kadar sayma işleminin yapılacağı yazılmalıdır.
Sample time alanına yazılacak değer, sayma hızını belirleyecektir.
Daha öncede belirtildiği RTW-Target blokları double veri tipini kullanırlar. Counter
limeted bloğu çıkışı ise unsigned 8, 16 veya 32 olabilmektedir. Bu nedenle bu
veri tiplerinin double olarak değiştirilmesi gerekmektedir. Bu amaçla signal
atributes kütüphanesinden data type conversition bloğu kullanılmıştır.
Blok üzerine çift tıklayarak açılan pencerede aşağıdaki şekildeki gibi değişikler
yapılmalıdır.
20
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Sample time alanına yazılacak değer counter limeted bloğunu ait değerden
büyük olmamalıdır. Derlem yapıldığında Counter Limeted ve Data Type
Conversion bloklarının Sample time değerleri eşit olmadığı takdirde bir hata
mesajı karşımıza çıkacaktır. Uygulamamızda bu hatanın olmaması için Rate
Transition bloğu kullanılmıştır. Signal atributes kütüphanesinden Rate
transition bloğu alınarak modele yerleştirilmelidir. Rate transition bloğu
örnekleme zamanları farklı olan blokların kullanıldığı modellerde, veri transferlerinin
güvenli bir şekilde yapılmasını sağlar. Varsayılan olarak ayarlanan parametreler
genellikle uygulamalar için yeterlidir. Ancak blok daha detaylı incelenerek farklı
uygulamar için varsayılan değerler dışında ayarlamalar da yapılabilir.
Digital output bloğuna çift tıklayarak açılan pencerede aşağıdaki şekle uygun
değişikler yapılmalıdır.
21
REAL-TIME WINDOWS TARGET
Bülent VURAL, YTÜ, Elk. Müh. Bölümü
Uygulamada paralel portun 8 bitlik çıkış portu kullanıldığı için channel mode,
byte olarak ayarlanmıştır. Ayrıca output channels alanına ise “[1]” yazılmıştır.
Köşeli parantez içinde yazılan rakam kullanılacak portu belirtmektedir. Paralel portun
yalnız bir adet çıkış portu bulunduğu için port numarası “1” olarak yazılmıştır.
Model derlendikten sonra uygulamayı çalıştırmak için bir donanıma ihtiyaç vardır. Bir
paralel port kablosu ve aşağıdaki şekle uygun bir devre gerekmektedir. Devre, ev
ortamında delikli plaket üzerine lehimlenerek kolayca yapılabilir.
Devre hazırlanırken dikkatli olunmalıdır. Yanlış bağlantılardan dolayı paralel port ya
da PC zarar görebilir.
Uygulama-4:
Aşağıdaki şekilde yer alan örnekte kayan bir led uygulaması gerçekleştirilmiştir. Bu
uygulama için bir önceki uygulamadaki devre kullanılmıştır. Uygulamadaki Stateflow
diyagramı, Pulse generator bloğundan gelen her tetikleme sinyali ile yanan ledi
bir sağa ya da bir sola doğru kaydırmaktadır.
22
MATLAB da GÖMÜLÜ KONTROL SİTEMLERİ
Modelde kullanılan Digital Output bloğunun parameterleri bir önceki
uygulamadaki ile aynıdır. Pulse generator bloğunun parametrelerinden de
yanlızca Period(secs) değeri değiştirilerek ledlerin kayma hızı ayarlanabilir. Bu
değerin küçük olması kayma hızını artıracaktır. Stateflow diyagramı ile Digital
Output bloğu arasında örnekleme zamanı farklılığı olduğu için Rate Transition
kullanılmıştır.
Stateflow diyagramının içeriği aşağıdaki şekilde verilmiştir.
Diyagramdaki “led” değişkeni output to simulink, veri tipleri ise double olarak
tanımlanmıştır. Ayrıca tetikleme ucu için de input from simulink olarak bir
event ucu eklenmelidir. Diyagram çalıştırıldığında ilk olarak “A” aktif olacaktır ve
aktif kaldığı sürece yanan ledi bir sola kaydıracaktır. Daha sonra en soldaki led
yandığında yani 8. bit bir olduğunda (ikilik sisteme göre sayı değeri “128” olduğunda)
“B” ye geçiş olacaktır. “B” aktif olduğu sürece yanan led bir sağa kayacaktır. Daha
sonra en soldaki led yandığında tekrar “A” ya geçiş olacak ve uygulama, durdurulana
kadar bu şekilde çalışmaya devam edecektir.