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.
© Copyright 2024 Paperzz