• Sonuç bulunamadı

MPC555 Geliştirme Kartı ile Yapılan Çalışmalar

4. ISIL SİSTEM ÜZERİNDE DENEYSEL GERÇEKLEMELER

4.4 MPC555 Geliştirme Kartı ile Yapılan Çalışmalar

İ.T.Ü. Fen Bilimleri Enstitüsü’ne sunulan “Gerçek Zamanlı Bulanık Kontrol Uygulaması” isimli proje kapsamında alınan “phyCORE-MPC555 Rapid Development Kit” malzemesi Şekil 4.7’de görülmektedir. Bu malzeme tek kart bilgisayar (single board computer) iç birimi ve bu birimin dışarıya bağlantısını sağlayan taşıyıcı karttan oluşur. Bu iç birim; Freescale’in 32-bit PowerPC MPC555 gömülü mikrokontrolörünü, mikrokontrolör içinde dahili 26KB SRAM, 448KB flaş bellek, 64-bit kayan nokta ünitesi, iki adet UART/SPI, iki adet CAN 2.0B, 10-bit çözünürlüklü 10ms çevrim süreli örnekle/tut girişli 16-kanallı çift ADC, 8 kanallı PWM birimi ve harici olarak 256KB RAM, 512KB Flaş, 4KB EEPROM bellek içerir. Adım adım kod icrasını sağlayan BDM debug (hata ayıklama) özelliği vardır.

32

Taşıyıcı kart ise iki adet RS-232 bağlantısı, iki adet CAN bağlantısı, BDM hata ayıklayıcının 25 pin paralel porta bağlantısı ile iç birimin dış dünyaya bağlanmasını sağlar.

MATLAB “Embedded Target for MOTOROLA-MPC555” aracı ile bu kartın Simulink ile kullanılmasına destek vermektedir. Bu kart için özel ADC, PWM gibi Simulink blokları vardır. Simulink blokları kullanılarak yapılan modelin kartta çalışmasını sağlayacak C kodları MATLAB Real Time Workshop ve MATLAB Real Time Embedded Coder ile otomatik olarak üretilip paralel port ya da seri porttan kartın RAM veya FLAŞ belleğine yüklenerek modelin gerçek zamanda çalışması sağlanmaktadır. Bunun için MATLAB ayrıca ‘Metrowerks CodeWarrior Development Studio for MPC5xx’ derleyicisine ihtiyaç duymaktadır. Alınan kart için PHYTEC 30 günlük deneme lisansı ile birlikte bu derleyici yazılımını sağlamaktadır. Kit ile ilgili detaylı bilgi www.phytec.com adresinden edinilebilir.

Şekil 4.7: phyCORE-MPC555 Rapid Development Kit

MATLAB yardım menüsünden “Embedded Target for MOTOROLA-MPC555” altında “Getting Started” altında “Setting Up and Verifying Your Installation” ve “Setting Target Preferences” alt başlıklarında anlatıldığı şekilde kart üzerindeki atlamalarla (jumper) ilgili donanımsal ve CodeWarrior’la ilgili yazılımsal ayarlar yapıldı. Ayarlarla ilgili izlenmesi gereken her adımı MATLAB yardımında bulmak mümkündür. Burada yalnızca önemli görülen ayarlar verilmiştir.

Metrowerks CodeWarrior IDE yazılımı CD’den yüklenip çalıştırıldıktan sonra, açılan IDE ortamında Edit Æ Preferences Æ Build Settings Æ ‘Build Before Running’ için ‘Never’ seçilmesi gerekmektedir.

33

CodeWarrior IDE ortamında Edit Æ IDE Preferences seçildiğinde açılan pencerede Debugger Æ Remote Connections seçildiğinde ‘MPC555DK Wiggler’ isimli bir bağlantı yapılandırılmalıdır, yoksa bu isimle yeni bir bağlantı eklenmelidir. Debugger ‘EPPC MSI Wiggler’ olmalıdır. Bağlantı tipi ‘Parallel’ olmalı, ‘Speed’ 1 olmalıdır, ‘FPU Buffer Address’ için de ‘0x3f9800’ girilmelidir (Şekil 4.8).

Şekil 4.8: Metrowerks CodeWarrior IDE Ayarları

MATLAB Start Æ Simulink Æ Embedded Target for Motorola MPC555 Æ Target Preferences adımı izlendiğinde ‘Toolchain’ menüsünden ‘CodeWarior’ seçilmeli ve ‘ToolChainOptions’ altında ‘CompilerPath’ kısmına CodeWarrior derleyicisine ulaşmak için kullanılan yol girilmelidir (Şekil 4.9).

34

Daha önceki kısımlarda anlatılan PIC mikrokontrolörle gerçeklenen bulanık kontrol sistemi MPC555 geliştirme kartı ile gerçeklenmiştir. Bellek problemi olmadığından PIC mikrokontrolör için yapılan giriş üyelik fonksiyonlarının yalnızca üçgen ve trapezoid, çıkış üyelik fonksiyonlarının yalnızca Sugeno/tekli, durulama yönteminin yalnızca centroid olması kısıtlamaları yoktur. PT326 deney seti termistör çıkışı (0-10V) ve kontrol işareti girişi (0-(0-10V) yine 0-5V¨0-10V gerilim kuvvetlendirici kartı ile MPC555 kartının A_AD0 analog giriş ve MPWM0 çıkış bacaklarına bağlanmıştır. Bacak bağlantıları Development Board for phyCORE MPC555 Hardware Manual’den öğrenilebilir. Kartın BDM paralel portu ve SCI1 (RS-232 1) seri portu PC’ye bağlanmıştır. Çalışma ortamı Şekil 4.10’da gösterilmiştir.

Şekil 4.10: MPC555 Kartı ile Çalışma Ortamı

MATLAB ile Şekil 4.11’deki Bulanık Kontrol MPC555 Simulink Modeli kurulmuştur. Hatanın değişimi ve çıkış katsayıları olarak ITAE kriterine göre Genetik Algoritma Aracı ile bulunan ke=8.44 ve ko=1.78 değerleri kullanılmıştır. Çıkış ölçekleme çarpanı ayrık integratör bloğunun kazancı olarak girilmiştir. İntegratörün örnekleme zamanı Ts=0.1 alınmış, ayrıca integratör çıkışı [0 1] aralığında sınırlandırılmıştır çünkü modelde kullanılan PWM bloğunun girişi [0 1] aralığındaki darbe periyot oranıdır. Sistem çıkışı ADC bloğu ile okunup, kontrol işareti PWM bloğu ile gerçek sisteme uygulanmaktadır.

35

Ayrıca, sistem çıkışı bilgisi, kart üzerindeki birinci seri port üzerinden, PC’de çalışan MATLAB seri port dinleme programı ile MATLAB çalışma ortamına dizi olarak aktarılmaktadır.

Şekil 4.11: Bulanık Kontrol MPC555 Simulink Modeli

Şekil 4.11’daki modelin MPC555 kartı üzerinde gerçek zamanlı olarak çalıştırılması için aşağıdaki adımlar izlenmelidir.

Simulation Æ Configuration Parameters ayarlarından ‘Solver Type’ ‘Fixed-step’ seçilip ‘Fixed-step size’ 0.1 saniye olarak girilmiştir, ‘Stop time’ ise sonsuz çalışma anlamında ‘inf’ girilmiştir. Bu değerler benzetim için olduğu gibi modelin karta yüklenecek kodu için de geçerlidir.

Simulation Æ Configuration Parameters ayarlarından ‘Real-Time Workshop’ için ‘RTW target file’ olarak ‘mpc555rt.tlc’ seçilip onaylandıktan sonra sol tarafta ‘Real-Time Workshop’ altında ‘ET MPC555 real-time options(1)’ ayar seçeneği çıkar. Şekil 4.12’de görülen bu pencereden model için oluşturulacak olan MPC555 mikrokontrolör kodunun RAM ya da FLASH belleğe yüklenmek üzere üretilmesi seçilmelidir. Yapılan değişiklikler onaylanarak modele dönülür.

Tools Æ Real Time Workshop Æ Build Model adımı izlendiğinde MATLAB çalışma klasörü altında ‘modelin ismi_mpc555rt’ isminde bir klasör yaratılarak modelin kartta icrası için gerekli C dosyaları otomatik olarak bu klasör altında oluşturulacaktır. Üretilecek olan makine kodunun RAM ya da FLASH belleğe yüklenecek olmasına göre oluşturulacak olan yükleme dosyası farklı olacaktır.

36

Üretilen Model Kodunun RAM Bellekte Çalıştırılması:

Eğer ‘Configuration Parameters’ altında ‘Real-Time Workshop’ için ‘RTW target file’ ‘mpc555rt.tlc’ seçildiğinde ortaya çıkan ‘ET MPC555 real-time options(1)’ için ‘Target memory model’ RAM seçilmişse MATLAB çalışma klasörünün içinde ‘modelin ismi.ram.elf’ dosyası üretilmiştir. Bu dosya MATLAB Start Æ Simulink Æ Embedded Target for Motorola MPC555 Æ Debug RAM Based Application (via BDM) seçeneği ile kartın RAM belleğine yüklenir (Şekil 4.13). Yükleme işlemi tamamlandığında model kodu kart üzerinde gerçek zamanlı olarak çalışmaya başlar.

Şekil 4.12: Model Kodunun RAM ya da FLASH Bellek için Üretilmesi Seçimi Üretilen Model Kodunun Flaş Bellekte Çalıştırılması:

FLASH belleğe yükleme yapılabilmesi için (eğer daha önceden yapılmamışsa) öncelikle StartÆSimulinkÆEmbedded Target for Motorola MPC555ÆInstall MPC5xx Bootcode adımı ile ‘bootcode’ yüklemesinin yapılması gerekmektedir. Eğer ‘Configuration Parameters’ altında ‘Real-Time Workshop’ için ‘RTW target file’ ‘mpc555rt.tlc’ seçildiğinde ortaya çıkan ‘ET MPC555 real-time options(1)’ için

37

‘Target memory model’ FLASH seçilmişse MATLAB çalışma klasörünün içinde ‘modelin ismi_flash.s19’ dosyası üretilmiştir. Bu dosya Start Æ Simulink Æ Embedded Target for Motorola MPC555 Æ Download FLASH Based Application (via BDM and Serial) seçeneği ile kartın FLASH belleğine yüklenir.

Şekil 4.13: Model Kodunun Karta Yüklenmesi

Kodun RAM ya da FLASH belleğe yüklenmesi sırasında kart üzerindeki atlama (jumper) ayarlarına dikkat etmek gerekir. Kart üzerindeki varsayılan atlamalar Şekil 4.14’te gösterilmiştir. RAM belleğe yükleme sırasında atlamalar varsayıldığı gibidir. Dahili FLASH belleğe yükleme yapmak için J15 atlamasının Şekil 4.14’te görüldüğü gibi 1+2 konumunda olması, harici FLASH belleğe yükleme yapmak için J15 atlamasının bir sağa kaydırılması, yani 2+3 konumunda olması gerekmektedir. FLASH belleğe kod yüklendikten sonra kodun çalışması için güç bağlantısı kesildikten sonra J6 atlaması çıkarılmalı ve paralel port bağlantı kablosu çekilmelidir. Daha sonra güç bağlantısı yeniden yapıldığında FLASH belleğe yüklenen kod koşmaya başlayacaktır.

Kodun koşması ile birlikte, MATLAB ortamında çalışan seri port dinleme programı ile elde edilen sistem yanıtı Şekil 4.15’te verilmiştir. ITAE katsayıları ile elde edilen sistem yanıtı beklendiği gibi IAE katsayılarına göre daha hızlı ancak daha büyük aşımlıdır. Burada asıl başarı kontrolör performansının en iyi olması değil bulanık kontrol sisteminin gerçek zamanlı olarak çalıştırılabilmiş olması ve böylece kontrolörün gerçek sistem üzerindeki başarımının gözlenebilmiş olmasıdır.

38

Şekil 4.14: MPC555 Kartı Üzerindeki Varsayılan Atlamalar ve Bacak Numaraları

10 20 30 40 50 60 70 80 90 100 50 100 150 200 250 300 350 400 450 500

MPC555 ile ITAE katsayilari icin basamak yaniti

zaman(x0.1saniye) si st e m ci ki si 20Celcius 35Celcius 40Celcius

Şekil 4.15: MPC555 Kartı ile Gerçek Zamanlı Bulanık Kontrol Sistemi için Basamak Yanıtı (Referans: 425, 40±C)

39 5. SONUÇ

Bu tez çalışmasında, öncelikle endüstride yaygın olarak kullanılan düşük maliyetli bir 8-bit PIC18F452 mikrokontrolör ile MATLAB Simulink ortamında tasarlanmış olan bir bulanık kontrolör sisteminin gerçek sistem üzerinde gerçek zamanlı olarak çalışması gerçeklenmiştir. Bunun için MATLAB ile birlikte verilen bulanık çıkarım mekanizmasını sağlayan ‘fis.c’ ve ‘fismain.c’ kaynak kodları düzenlenerek MATLAB ‘Fuzzy Logic Toolbox’ arayüzü ile kolayca oluşturulan ‘*.fis’ dosyasındaki parametreleri çekip PICC diline çeviren bir C programı yazılmıştır. Bütün kontrol çevrimini sağlayacak diğer C kodları da PICC dilinde yazılıp PIC mikrokontrolöre yüklenerek bulanık kontrolörün gerçek zamanlı çalışması sağlanmıştır. Çalışma esnasında sistem çıkışı, kontrol işareti gibi veriler seri port üzerinden MATLAB’a aktarılmıştır. Böylece MATLAB ortamında kontrolörün çalışma performansı gözlenebilmiştir.

Bu şekilde PIC mikrokontrolör ile gerçekleştirilen sistemin düşük maliyetli olması ve endüstride yaygın olarak kullanılması avantajları vardır. Ancak, bellek sınırlaması vardır. Bu nedenle bulanık kontrolör giriş üyelik fonksiyonlarının yalnızca üçgen ve trapezoid, çıkış üyelik fonksiyonlarının yalnızca Sugeno/tekli, durulamanın yalnızca centroid olma kısıtlamaları getirilmiştir. Daha da önemlisi MATLAB ortamında tasarlanan kontrol sisteminin mikrokontrolör üzerinde çalıştırılabilmesi için MATLAB yazılımına ek olarak tasarımcının PIC mikrokontrolör ve C ile programlama bilgisinin olması gerekmektedir. Bu durum düşünüldüğünde MATLAB Simulink ortamında bloklarla oluşturulan bir kontrol sisteminin doğrudan bir karta yüklenip, kart üzerinde gerçek zamanlı olarak çalıştırılabilmesi, maliyeti PIC mikrokontrolör sistemine göre daha yüksek olsa da çok daha kolay bir süreç olacaktır.

Bu amaçla, İ.T.Ü. Fen Bilimleri Enstitüsü proje desteği ile 32-bit MOTOROLA işlemcili ve 64-bit kayan nokta birimi olan ‘phyCORE MPC555 Rapid Development Kit’ geliştirme kartı alınmıştır. MATLAB Simulink ile oluşturulan model yine MATLAB ile direk olarak karta yüklenebilmektedir. Böylece kullanıcının mikrokontrolör mimarisi veya C programlama hakkında derin bilgisinin olması şartı kaldırılmıştır.

40

Hem PIC mikrokontrolör kartı hem de MOTOROLA MPC555 kartı ile yapılan gerçek zamanlı çalışma sonuçları, Simulink benzetim model sonucu ile karşılaştırılarak verilmiştir. Örnek sistem olarak lineer olmayan ölü zamanlı PT326 ısıl deney seti kullanılmıştır. Sistem, bulanık kontrolör ile gerçek zamanlı olarak kontrol edilmiştir.

Bu haliyle hem PIC mikrokontrolör hem de MPC555 kartı üzerinde çalışan gerçek zamanlı kontrol sistemine MATLAB ortamından müdahale edilememektedir. Veri aktarımı karttan MATLAB ortamına olmak üzere tek yönlüdür. Gelecek çalışma olarak, kontrol algoritması kart üzerinde koşarken MATLAB ortamından komut ve parametrelerin seri port üzerinden karta aktarılması ile kontrol algoritmasındaki bazı parametrelerin hızlı ve kolay bir şekilde MATLAB ortamından değiştirilmesi ile gerçek zamanlı kontrolör geliştirme sürecinin hızlandırılması ve kolaylaştırılmasının sağlanabileceği düşünülmektedir.

41 KAYNAKLAR

[1] Teng, F.C., 2000. Real time control using MATLAB simulink, Systems, Man,

and Cybernetics International Conference Proceedings of IEEE, 4,

October, 3039-3044.

[2] Karasakal, O., Yeşil, E., Güzelkaya, M. and Eksin, İ., 2004. A PLC implementation of fuzzy PID-type controller with a function tuner based self-tuning, Journal of Naval Science and Engineering, 2(1), 41-50.

[3] Taneva, A., Muskinja, N., Petrov, M. and Tovornik, B., FPID controller: real time application, Intelligent Systems 2nd

International Conference Proceedings of IEEE, 3, June 2004, 39-42.

[4] Yingkai, Z. and Yiling, W., 2002. Intelligence control of nonlinear systems based on MATLAB simulation and the real-time control platform, 4th

World Congress on Intelligent Control and Automation Proceedings of IEEE, 1, June, 786-789.

[5] Butt, C.B., Hoque, M.A. and Rahman, M.A., Simplified fuzzy-logic-based MTPA speed control of IPMSM drive, IEEE 38th

IAS Annual Meeting on Industry Applications Conference Record, 1, October 2003,

499-506.

[6] Sivakumaran, T.S., Natarajan, S.P. and Venkatachalam, P., 2005. Simulation and real-time implementation of fuzzy logic controller for parallel loaded resonant converter, INDICON Annual of IEEE, December, 127-132.

[7] Sibigtroth, J.M., 1996. Fuzzy extends a general purpose instruction set,

Northcon96, Seattle WA USA, November, 216-220.

[8] Jackson, A., 1997. A new microcontroller with fuzzy inference instructions simplifies controller designs, IEEE Aerospace Conference Proceeding

42

[9] Singh, P., Vinjamuri, R., Wang, X. and Reisner, D., 2005. Design and implementation of a fuzzy logic-based state-of-charge meter for Li-ion batteries used in portable defibrillators, Power Sources Journal of

Elsevier.

[10] White, A.S. and Sinclair, R., 2004. Quantitative validation techniques a database. (I). Simple examples, Simulation Modeling Practice and

Theory, 12, 451-473.

[11] Ng, G.W. ve Cook, P.A., 1998. Real-time control of systems with unknown and varying time-delays, using neural Networks, Engineering Applications

of Artificial Intelligence, 11, 401-409.

[12] Qiao, W.Z. and Mizumoto, M., 1996. PID type fuzzy controller and parameters adaptive method, Fuzzy Sets and Systems, 78, 23-35.

[13] Genç, H.M., 2006. A new rule-base modification scheme for the time delay systems, Ms.C. Thesis, I.T.U. Institute of Science and Technology, Istanbul.

[14] Genç, H.M., Eksin, İ., Güzelkaya, M. and Yeşil E., 2006. A rule-base modification for time delay systems, Artificial Intelligence and Soft

Computing Proceeding, Palma De Mallorca, Spain, August 2006,

43 ÖZGEÇMİŞ

Özgür Aydın TEKİN 1981 yılında Mersin’de doğdu. 1999 yılında İçel Mersin Anadolu Lisesi’nden mezun oldu. 2004 yılında İstanbul Teknik Üniversitesi Elektronik ve Haberleşme Mühendisliği ve Bilgisayar Mühendisliği diplomalarını alarak İstanbul Teknik Üniversitesi Fen Bilimleri Enstitüsü Kontrol ve Otomasyon Mühendisliği yüksek lisans programına başladı. Yaklaşık bir yıl ARÇELİK A.Ş. Araştırma-Geliştirme bölümünde görev yaptı. Şubat 2005’ten itibaren İstanbul Teknik Üniversitesi Kontrol ve Kumanda Sistemleri Ana Bilim Dalı’nda Araştırma Görevlisi olarak çalışmaktadır.

Benzer Belgeler