Matlab-SIMULINK Ortam nda Arduino Kart Kullanma ve DC Motor Uygulamas Caner Songül, Yavuz Üser, M. Cando du Çutu Elektrik-Elektronik Mühendisli i Akdeniz Üniversitesi - ANTALYA Günümüzde teknolojinin geliflmesiyle birlikte elektrik makineleri uygulamalar nda yeni yöntemler gelifltirilmeye bafllanm flt r. Kontrol sistemlerinde kullan lan yöntemlerden biri de Arduino kontrol kart d r. Arduino kartlar n n içerisinde ATMEL ve ARM firmalar na ait mikro-denetleyiciler bulunmaktad r. Mikro-denetleyiciler; CPU (Central Processing Unit - Merkezi fllem Birimi), RAM (Random Access Memory - Rastgele Eriflimli Bellek), EP- ROM (Erasable Programmable Read-Only Memory - Silinip Programlanabilir Salt Okunur Bellek), PROM (Programmable Read- Only Memory - Tek Bir Defa Programlanabilir Bellek), ROM (Read-Only Memory - Sadece Okunabilir Bellek), I/O (input/output - girifl-ç k fl) portlar, zamanlay c lar ve kesme (interrupt) gibi birimleri içeren entegre devreleridir. Düflük enerji tüketimi, kolay programlanabilirlik ve di er sistemlere göre çok daha düflük maliyet özelliklerinden dolay, mikro-denetleyiciler kontrol uygulamalar nda yayg n bir flekilde kullan lmaya bafllanm flt r. Atmega mikro-denetleyicisinin, kullan c taraf ndan rahat bir flekilde kullan m amac yla tasarlanm fl bir Ardunio Yaz l m Gelifltirme Kart bulunmaktad r. Bir mikro-denetleyicinin çal flt - r labilmesi için gerekli olan tüm devre elemanlar (kristal osilatör v.b.) tasarlanm fl bu kart içerisinde mevcuttur. Bu kart n Arduino IDE, Matlab-SIMULINK v.b. programlarla kullan l yor olmas bu programlar üzerinden yap - lan ifllemlerin çok daha kolay bir flekilde çal flmas n sa lar. Ayr - ca ekstra bir programlay c cihaza gerek kalmadan USB portu üzerinden bilgisayara ba lan larak programlanabilir. Bu çal flmada Matlab-SIMU- LINK ortam nda oluflturulan bloklar ile DC motorun Ardunio kart üzerinden kontrol edilmesi sa lanm flt r. DC motor istenilen PWM de erinde çal flt r lm fl ve DC motorun dönüfl yönleri kontrol edilmifltir. Ak m sensörü kullan larak DC motorun yüklü durumda ve boflta çal flmas durumlar nda çekti i ak m de eri gözlemlenmifltir. Ayr ca ak m sensöründen gelen veriler sayesinde, h z sensörü kullan lmas - na gerek kalmadan, h z tahmini yöntemi ile DC motorun dönüfl h z hesaplanm flt r. Arduino ve Atmega 2560 Arduino kart, içerisinde ATMEL firmas n n çeflitli mikro-denetleyicilerini içeren bir fiziksel programlama platformudur. Baflta Endüstri otomasyon / 22 12
Arduino Mega olmak üzere piyasada birçok çeflidi bulunmaktad r. Arduino kartlar, Atmel AVR mikro-denetleyici ve bu mikro-denetleyicinin çal flmas için gerekli olan yan elemanlardan oluflur. Her kartta en az ndan bir 5 Volt luk regülasyon entegredevresi ve bir 16 MHz lik kristal osilatör (baz lar nda seramik rezonatör) bulunur. Mikrodenetleyiciye önceden bir ön yükleyici (bootloader) program yaz l oldu undan, programlama için haricî bir programlay c - ya ihtiyaç duyulmaz. Arduino kart n n programlanabilmesi için çeflitli yöntemler kullan lmaktad r. Bu yöntemlerden biri, Arduino IDE kod editörü ve derleyicisi kullan larak Processing/Wiring dili ile Arduino platformuna uygulamalar gelifltirmektir. Di eri ise, Matlab-SIMULINK ortam nda Simulink bloklar kullan larak, uygulamalar gelifltirmektir. Bunun için Matlab-SIMULINK Arduino kütüphanesinin eklenmesi gerekmektedir. Burada Arduino'nun tercih edilmesinin en önemli sebebi, piyasada çok yayg n olarak kullan lmas, Matlab-SIMULINK ortam ile uyumlu olmas sayesinde de üzerinde yap lan uygulamalar n gerçek zamanl izlenebilmesi ve kolay bir flekilde programlanabilmesidir. Bu çal flmada kullan lan Arduino Mega, Atmega 2560 mikrodenetleyicisine sahip bir kartt r (fiekil 1). Bu kart, DC motora DC Motordaki Ak m Ve Gerilim De erlerinin Arduino Kart na Gönderilmesi Simulink ortam nda Arduino kart yla DC motor üzerinde çok çeflitli uygulamalar yap labilir. Simulink yard m yla yap lan bu uygulamalar n gerçek zamanl olarak kontrol edilebilmesi, yap lan kontrol sisteminin daha az zaman harcanarak daha sa l kl sonuç al nabilen sistemler oluflturulmas n sa lar. DC motor Matlab-SIMULINK ortam ndaki eflde er devresi fiefiekil 1. Arduino Mega Kontrol Kart PWM sinyali gönderilmesi ve motorun ba l oldu u devreden çekti i ak m ve gerilimin sensörler yard m yla hesaplanabilmesi için kullan lm flt r. Ardiuno kart içindeki Atmega 2560 mikro-denetleyicisinin önemli özellikleri afla da maddeler halinde s ralanm flt r: Çal flma gerilimi 5 V tur, 256 KB Flash ROM program belle i vard r. Girifl/Ç k fl portlar maksimum 40 ma ak m tafl yabilir, 4 KB EEPROM veri belle ine 54 adet dijital girifl/ç k fl portu (15 tanesi PWM sinyali üretebilir) vard r. 16 adet analog girifl portu vard r ve 4 KB SRAM belle e 10 bit çözünürlü e sahip analog/dijital dönüfltürücüye 16 MHz çal flma frekans na sahiptir, 4 adet haricî kesme (interrupt) girifli vard r. UART protokolünü destekleyen 4 adet RX/TX portu vard r. SPI protokolü deste i vard r ve 8 bitlik PWM sinyali üretebilir. Matlab-SIMULINK e Arduino Kütüphanesinin Eklenmesi Arduino kart n Matlab-SIMU- LINK ortam nda programlayabilmek için öncellikle Arduino kütüphanesinin eklenmesi gerekmektedir. Bu kütüphane yard m yla Arduino üzerindeki girifl/ç k fl pinleri Matlab-SIMU- LINK ortam nda birer blok olarak temsil edilecektir ve bu bloklar yard m yla istenilen sistem Matlab-SIMULINK ile oluflturulacakt r. Kütüphane ekleme ifllemi için, Matlab program aç ld ktan sonra Matlab HOME sekmesi seçilir, fiekil 2. Matlab-SIMULINK, Arduino bloklar n n eklenmesi buradan Add-On butonuna, sonra da Get Hardware Support Packages k sm na t klan r. E er paket dosyas haz r olarak bilgisayar n diskinde kay tl de ilse, Bu menüden internet ten indirme seçene i seçilir. Bir sonraki sayfada yüklü olan Matlab yaz - l m n n sürümü ile uyumlu olan uygulama kartlar n n listesi ortaya ç kar. Buradan kullanaca - m z uygulama kart olan Arduino seçilir. ndirme ifllemi bittikten sonra Simulink kütüphanesi aç larak indirilmifl olan Arduino kütüphanesindeki bloklar kullan lmaya bafllan r. Bütün ifllemler tamamland nda fiekil 2 deki menü ç kar. fiekil 3. DC motorun Matlab-SIMU- LINK ortam ndaki matematiksel modeli 13
fiekil 4. ACS712 ak m sensörü kil 3 teki gibidir. Bu uygulamada DC motor, Arduino kart na ba l olan L298N Motor Sürücü kart ile çal flt r lm flt r ve DC motorun çekti i ak m fiekil 4 te gösterilen ACS712 ak m sensörü ile okunmufltur. Burada V a (Volt) endüvi gerilimi, R a (Ω) endüvi direnci, L a (Henry) endüvi endüktans, K b (V/rad/s) z t emk sabiti, J (Nm s 2 /rad) atalet momenti, B m (Nm s 2 /rad) sürtünme, TL (Nm) yük momentidir. DC motorun çekti i ak m ölçmek; +pin ucu ak m sensörüne, ard ndan L298N motor sürücü kart n n M1+ ucuna ba lan r. DC motorun pin ucu ise, do rudan motor sürücü kart n n M1- ucuna ba lan r. Ak m sensörünü kullanabilmek için ak m sensörü üzerindeki V cc pin girifline 5 V gerilim uygulan r. GND pini topra a ba lan r. Ç k fl pini ise, Arduino kart n n analog girifl pini olan A8 pinine ba lan r. Motoru Arduino kart d fl nda d fl bir kaynaktan beslemek için, motor sürücü kart n n V ss ve GND girifline de +12 V DC gerilim verilir ve motor sürücü kart Arduino kart n n üzerine yerlefltirilir. Kullan lan ak m sensörü, Allegro firmas n n ±5 A ACS712T ELC-5B manyetik etkiye ba l olarak çal flan lineer bir ak m sensörüdür. Bu versiyon 5 Amper e kadar iki yönlü ak m girifline izin verir. Hata pay %5 in alt nda olmak üzere, analog voltaj (185 mv/a) ç kt s verir. (-)5 A den (+)5 A e kadar çift yönlü girifl ak m için tasarlanm flt r. letken yolda iç rezistans tipik olarak 1,2 mω dur. DC motor sürücü devresi haz rland ktan sonra Arduino kart bilgisayara ba lan r ve programlama aflamas na geçilir. Simulink kütüphanesi üzerinden Arduino kart üzerinde kullan lacak bloklar seçilir. Bunlar analog girifl, PWM ç k fl ve 2 adet dijital ç k fl bloklar d r. Bu çal flmada analog girifl 8. pin olarak ayarlanm flt r. Analog 8. pin girifli ak m sensöründen gelen analog sinyali al r ve Arduino içerisinde bulunan 10 bitlik Analog-Dijital çevirici yard m yla 0-1023 aras nda dijital de ere dönüfltürür. Ayn blok üzerinden analog giriflin örnekleme frekans ayarlan r. Örnekleme frekans artt kça, gelen analog de erler daha az bozulmaya u rad için daha düzgün dijital verilere dönüfltürülür. Öncelikle 5/1024 bölme ifllemi uygulanarak gelen analog de erin gerilimi belirlenir. Sonra ak m sensörünün offset de eri olan 2,5 V de eri ç kart l r ve 1/0,185 bölme ifllemi uygulanarak gelen veri ak m cinsine dönüfltürülür. Dijital ç k fl bloklar motorun dönüfl yönünü belirler. DC motorun dönüfl yönünü kontrol edebilmek için Dijital ç k fl bloklar - n n 8. ve 11. pinleri seçilir. Bu pinlere simulink üzerinden de- erler gönderilir. 11. Dijital ç k fl pinine 1 de eri ve 8. Dijital ç k fl pinine 0 de eri gönderilirse, motor hareket eder. Tam tersi durumda 11. dijital ç k fl pinine Lojik 0 de eri, 8. Dijital Ç k fl pinine 1 de eri gönderilirse motor ters yönde dönmeye bafllar. PWM ç k fl pini ise, motora d flar dan verilen gerilimin ayarlanmas n sa lar ve bu de er karta yüklendikten sonra gerçek zamanl çal fl rken de ifltirilebilir. DC motora gönderilen gerilim de eri de ifltirilerek motorun farkl h zlarda dönmesi sa lan r. PWM ç k fl blo una uygulanan say de erine göre PWM sinyalindeki görev döngüsü (duty cycle) de eri belirlenir. Bu de erler 0 ile 255 aras ndad r. PWM blo una 255 de eri uygulanarak %100 görev döngüsünde çal flmas sa lan r. Uygulanan de er 0 ise görev döngüsü %0 olur. Bu özelli i kullanabilmek için PWM ç k fl blo unun 9. pin olarak ayarlanmas yeterlidir. Aç k Döngü Sensörsüz H z Hesaplamas Kapal veya aç k döngü kontrol sistemlerinde DC motorun h z - n n ölçülmesi oldukça önemlidir. Bu ölçümler enkoder, takojeneratör ve benzeri haricî cihazlarla sa lanmaktad r. Fakat kontrol sistemlerinde bu cihazlar n kullan lmas beraberinde ekstra maliyet getirmektedir. Bu durumda maliyeti düflürmek için bir tak m yöntemler gelifltirilmifltir. Bunlardan biri de, DC motorun parametreleri, endüvi ak m ve gerilim de erleri yoluyla matematiksel olarak h z n n hesaplanmas d r. H z hesab nda kullan lan formül, DC motorun devresel gösterimi üzerinde Kirchhoff Yasas uygulanarak elde edilmektedir. Bu yasadan elde edilen denklem (1) de gösterilmifltir. V a = I a R a + k b ω (1) Denklem (1) de V a (V) endüvi gerilimini, R a (Ω) endüvi direncini, I a (A) endüvi ak m n, k b (V s/rad) z t emk sabitini, ω (rad/s) ise aç sal h z göstermektedir. Rotor h z n radyan cinsinden 14
Teori ve Uygulamalar elde edebilmek için formül (2) deki gibi düzenlenir. ω = (V a - I a R a ) / k b (2) Böylelikle herhangi haricî ve maliyetli h z ölçüm cihaz kullan lmadan, sadece ak m ve gerilim sensörü ile DC motorun rotor h z elde edilmifl olur. Elde edilen h z de eri aç k döngü h z de eridir. Bu uygulamada kullan lan DC motorun parametreleri R a = 4, K b = 0,0089 ve V a = 10 olarak al nm flt r. Arduino-SIMULINK Haricî Mod Arduino kütüphanesi eklendikten sonra yeni Simulink model sayfas aç larak Arduino kart ile istenilen uygulamalar gerçeklefltirilebilir. Uygulamada kullan - lan Arduino kart n n modeli, sistemin tasar m nda ve oluflturan modelin gerçek zamanl çal flmas nda büyük rol oynar. Arduino Uno kart ile Simulink üzerinden herhangi bir gözlem yap lamaz ve Simulink ortam ndaki de ifliklikler gerçek zamanl olarak sisteme yans maz. Burada DC motor uygulamas için Arduino Mega kart kullan lm flt r. Arduino Mega kart daha fazla Dijital I/O portuna sahiptir ve Simulink ortam nda gerçek zamanl sistemin durumu gözlemlenebilir. fiekil 5. Simulink bloklar n n Arduino Mega kart na yüklenmesi fiekil 6. Simülasyon ortam nda DC motor ak m-zaman grafi i fiekil 7. Gerçek zamanl uygulamada DC motor ak m-zaman grafi i fiekil 8. Simülasyon ortam nda DC motor h z (rpm)-zaman grafi i fiekil 9. Gerçek zamanl uygulamada DC motor h z (rpm)-zaman grafi i Arduino Mega kart n n Simulink üzerinde gerçek zamanl çal flabilmesi için Simulink te bir tak m ayarlar yap lmas gerekmektedir. lk baflta Simulink penceresinde Tools seçene i, buradan ç kan seçeneklerden Run on Target Hardware seçilir, sonra Prepare To Run seçene ine t klan r. Aç lan pencereden Run on Target Hardware seçilir. Burada Target Hardware k sm ndan kullan lan kart tipi seçilir. Örnek modelde kullan lan kart modeli Arduino Mega 2560 oldu u için seçeneklerden bu uygulama kart seçilmifltir. Uygulama kart n gerçek zamanl olarak çal flt rmak için Enable External Mode seçilir. Yap lan de ifliklikler, OK butonu ile onaylan r. Simulink modelin oldu u ana sayfaya dönüldükten sonra External mod seçilir. Daha sonra Build seçene- i ile oluflturulan model kurulur ve Arduino Mega 2560 kart na yüklenir. fiekil 5 te bloklar n Arduino kart na yüklenmesi gösterilmifltir. Oluflturulan model Arduino ya yüklendikten sonra Connect to Target butonuna bas l r ve cihaza ba lan l r. Run butonu ile oluflturulan model gerçek zamanl olarak çal flt r l r. Oluflturulan modelde DC motor 0. saniyeden itibaren yüksüz çal flmaya bafllam flt r. 2. ve 4. saniyeler aras DC motor yük alt nda çal flt r lm flt r. Bundan dolay hem simülasyonda hem de gerçek zamanl uygulamada yaklafl k olarak 1,5 A ak m çekti i gözlemlenmifltir. fiekil 6 da simülasyondaki ak m-zaman grafi i, fiekil 7 de gerçek zamanl uygulamadaki ak m-zaman grafi i gösterilmifltir. Bu zaman aral nda DC motorun rotor dönüfl h z ise ortalama 5000 rpm civar ndad r. DC motor 5. ile 6. saniyeler aras nda tam yük alt nda çal flt r lm flt r. DC motorun h zzaman grafikleri fiekil 8 ve fiekil 9 da gösterilmifltir. Bu durumda DC motorun çekti i ak m n 2,7 15 59 / Endüstri otomasyon
fiekil 10. Gerçek zamanl uygulamada DC motora uygulanan PWM sinyali (%59 görev döngüsü) fiekil 12. Simülasyon ortam nda motora uygulanan PWM sinyali (%59 görev döngüsü) fiekil 11. Gerçek zamanl uygulamada DC motora uygulanan PWM sinyali (%100 görev döngüsü) fiekil 13. Simülasyon ortam nda motora uygulanan PWM sinyali (%100 görev döngüsü) A e yükseldi i, hem simülasyon ortam nda hem de motorun gerçek zamanl çal flt durumda gözlemlenmifltir. Gene hem simülasyonda hem de gerçek zamanl çal flt durumda, DC motorun boflta çal flt nda yaklafl k olarak 0,4 A ak m çekti i, rotorun dönüfl h z n n ise ortalama 9500 rpm oldu u gözlemlenmifltir. Motor giriflindeki PWM sinyallerin gerçek zamanl uygulamadaki grafikleri fiekil 10 ve fiekil 11 de verilmifltir. Simülasyon ortam ndaki PWM sinyal giriflleri ise fiekil 12 ve fiekil 13 te görülmektedir. Sonuç Bu çal flmayla Simulink ortam nda oluflturulan DC motor kontrol modeli, Matlab-SIMU- LINK External Mod ile Arduino Mega kart üzerinden gerçek zamanl kontrol edilmifltir. Motorun yüksüz ve yük alt nda çekti- i ak m Simulink ortam nda gerçek zamanl olarak ölçülmüfltür. Ayr ca oluflturulan sistem ile PWM görev döngüsü de eri, Simulink üzerinden gerçek zamanl olarak farkl de erlere ayarlanabilmektedir. Buna göre kontrolü yap lmak istenen bir sistem, sadece bloklar oluflturularak herhangi bir kod yaz lmadan kolayl kla tasarlanabilir. Arduino kontrol kartlar n n hem ucuz hem de basit uygulamalar için yayg n olarak kullan lmas, bu çal flman n de erini daha da artt rmaktad r. Bu yöntem izlenerek hem akademik hem de endüstriyel uygulamalar için yap lacak tasar m kurulup simülasyonu yap ld ktan sonra, h zl bir flekilde pratikteki sonuçlar elde E&O edilebilir. Motor Parametreleri Endüvi gerilimi (V a ) 10 Volt Endüvi direnci (R a ) 4 Ω Endüvi Endüktans (L a ) 0,15 Henry Z t emk sabiti (K b ) 0,0089 Vs/rad Atalet momenti (J) 0,1 Nms 2 /rad Sürtünme (B m ) 0,01 Nms 2 /rad