PEMANFAATAN FPGA DALAM PENGENDALIAN KESEIMBANGAN PADA PAPAN Santoso P. Sugondo1; Christine Suzana Nababan2; Herti3; Wati Elny4 1
Jurusan Sistem Komputer, Fakultas Ilmu Komputer, Universitas Bina Nusantara, Jalan K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480
[email protected]
ABSTRACT The research has designed and created a balance control system into the board to control balance of a ball put on the board. The controlling system is made using fuzzy logic algorithm which implemented inside FPGA in Xilinx Foundation Series 4.Ii Full Version language program and Spartan XCS10 PC 84 control chains. Meanwhile, photodiode as position sensor inserted into DC motor and system as a response from used system to control ball balance on the board. The measure of spinning DC motor is controlled by system using Pulse-width Modulation (PWM) and producing duty cycle changing error value processed to system. Trial report showed that the tools had 25% error. Keywords: control balance, fuzzy logic, FPGA, photodiode, PWM, duty cycle, DC motor.
ABSTRAK Telah dirancang dan dibuat suatu sistem pengendalian keseimbangan pada papan yang bertujuan untuk mengendalikan keseimbangan bola yang diletakkan di atas papan yang berjalur. Sistem pengendalian ini dibuat dengan menggunakan algoritma logika fuzzy yang diimplementasikan di dalam FPGA dengan bahasa pemrograman Xilinx Foundation Series 4.1i Full Version dan menggunakan rangkaian pengendali Spartan XCS10 PC 84. Photodioda sebagai sensor posisi yang menjadi masukan ke dalam sistem dan motor DC sebagai respon dari sistem yang digunakan untuk mengendalikan keseimbangan bola di atas papan. Besar kecilnya putaran pada motor DC yang diatur oleh sistem menggunakan PWM dengan menghasilkan duty cycle yang berubah-ubah sesuai dengan nilai error yang diproses pada sistem. Hasil uji coba menunjukan bahwa alat yang dibuat memiliki error sebesar 25%. Kata kunci: Pengendalian keseimbangan, Logika Fuzzy, FPGA, photodioda, PWM, Duty cycle, Motor DC.
170
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 170 - 176
PENDAHULUAN Pengendalian keseimbangan ini dilatarbelakangi oleh adanya sistem kendali yang dapat dimanfaatkan dalam dunia pendidikan maupun industri. Selain itu terdapat pula faktor-faktor pendukung yang dapat dimanfaatkan untuk membuat suatu sistem kendali tersebut seperti penggunaan algoritma fuzzy logic dan FPGA yang dapat difungsikan sebagai controller (pengendali dengan mengolah nilai eror). Sistem pengendali keseimbangan ini dapat diterapkan dalam bidang robotika, yaitu pada lengan robot yang memerlukan sistem keseimbangan. Selain itu dapat juga diterpkan pada robot pelayan yang membawa baki makanan, dan robot pelayan tersebut harus mempertahankan posisi benda atau pun makanan yang berada diatas baki yang dipegang robot tersebut. Dan pengendalian yang dilakukan dengan menggunakan alogritma fuzzy logic yang akan mempermudah dalam penyelesaian masalah nonlinier yang ada pada sistem pengendalian ini. Dan penerapan fuzzy logic, dilakukan dengan menggunakan FPGA sebagai pengganti PC atau mikrokontroller dalam mengolah eror yang ada. Jadi akhir tujuan dari pembahasan pengendali keseimbangan ini adalah terbentuklah sebuah sistem pengendali keseimbangan yang akan mempertahankan bola yang berada diatas papan agar tidak jatuh dan tetap berada pada jarak jangkauan 6 Cm dari titik tengah papan (titik tumpuan) dengan menggunakan algoritma fuzzy logic dengan FPGA. Karena akan diletakkan bola diatas papan, maka pada papan akan diberi jalur agar arah dan pergerakan bola dapat dibatasi. Apabila tidak dibatasi, maka pergerakan arah bola akan lebih dari satu buat sumbu. Dengan adanya jalur, maka gerakan bola hanya akan bergerak ke kiri atau pun ke kanan. Dan pada kondisi awal bola akan berada pada titik tengah papan (titik tumpuan).
METODE FPGA (Field-Programmable Gate Array) adalah salah satu jenis PLD (Programmable Logic Device) yang merupakan kumpulan komponen logic. FPGA adalah sebuah chip yang dapat diprogram dan memiliki ribuan gerbang, dan dapat diprogram sesuai dengan kebutuhan. Stuktur FPGA terdiri dari 3 komponen utama (gambar 1) yaitu Configurable Logic Blocks (CLB): merupakan tempat untuk mengimplementasikan logika yang terdapat pada FPGA ke dalam sebuah array; masukan atau keluaran blocks (IOB): terdapat di sepanjang pinggiran array yang digunakan untuk menangani masukan dan keluaran pada array; switch matrix: merupakan connection block yang menghubungkan CLB dengan IOB. (Mano & Kime, 2001)
Gambar 1 Struktur FPGA
Pemanfaatan FPGA dalam... (Santoso P. Sugondo; dkk)
171
Suatu keadaan dikatakan seimbang apabila percepatan linier pada pusat massa sama dengan nol, yaitu jumlah vektor dari semua gaya eksternal yang bekerja pada benda keadaan seimbang sama dengan nol, dan percepatan sudut yang mengelilingi sumbu tetap dalam kerangka acuan ini sama dengan nol. Kedua hal tersebut telah menjadi syarat benda dalam keadaan seimbang. Apabila terjadi ketidakseimbangan pada papan, maka perlu ada pergerakan pada agar mencapai keseimbangan yang diinginkan. Pergerakan yang diinginkan dengan menggunakan actuator berupa motor DC. Dan agar motor DC dapat bergerak perlu diberi tegangan sumber DC, selain itu dapat dilakukan dengan memberikan pulsa-pulsa kotak pada frekuensi tertentu atau biasa disebut Pulse-Width Modulation (PWM) yang memberikan nilai duty cycle yang dapat mewakili tegangan sumber DC yang diberikan pada motor. Selain itu agar motor dapat berfungsi diperlukan modul penggerak motor yang disebut driver motor. Daya motor dalam mengangkat beban dapat disebut juga torsi, dan besarnya torsi tergantung dari arus yang diberikan pada motor. Persamaannya adalah sebagai berikut : Tm = Km.Φ.ia
Dengan :
Tm = Torque motor Φ = flux magnet Ia = arus pada armature Km = konstanta proporsional dari motor Φ = dianggap konstan, dan persamaannya menjadi : Tm = Km.ia
Karena sistem dibuat agar dapat menggerakkan bola kembali ke posisi tengah papan, maka untuk dapat mendeteksi posisi bola diperlukan sebuah sensor untuk sensor posisi. Sedangkan untuk dapat mendeteksi kemiringan yang dihasilkan dari papan terhadap tumpuan, maka diperlukan pula sensor sudut. Untuk sensor posisi digunakan photodioda, dimana photodioda adalah dioda yang akan aktif apabila terkena cahaya, dan tidak aktif apabila tidak terkena cahaya. Dan untuk sensor sudut digunakan optical encoder yang akan mendeteksi sudut eror dari penghitungan jumlah sinyal yang dihasilkan oleh piringan encoder pada celah terang dan gelap. Dalam membuat pernyataan suatu nilai besar dan kecil atau tinggi dan pendek atau pun tua dan muda tidak dapat dilakukan dengan hanya satu nilai true (benar) bernilai 1 atau false (salah) bernilai 0. Oleh karena itu, pada 1965 seorang ilmuwan yang bernama Lotfi Zadeh memperkenalkan konsep logika fuzzy, di mana semua pernyataan dikelompokkan dalam derajat keanggotaan di mana terdapat range (hasil) dari nilai yang continue yang bernilai 1 atau 0. Untuk itu diperlukan fuzzy sets (himpunan fuzzy). Himpunan fuzzy merupakan penggambaran dari suatu permasalahan dengan menggunakan derajat keanggotaan dan akan membentuk suatu fungsi keanggotaan, dan dari fungsi keanggotaan inilah akan muncul nilai keanggotaan itu sendiri. Lihat gambar 2, pada tabel 1 adalah contoh derajat keanggotaan dari gambar 2. μ
Gambar 2 Membership function
172
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 170 - 176
Tabel 1 Contoh Derajat Keanggotaan pada Kasus Usia Nama
Usia (tahun)
Derajat keanggotaan (dewasa)
Ani Edi Susan
10 20 35
0 0.2 0.5
Meliana
45
1
Tahapan dalam melakukan perancangan Fuzzy Logic Controller (FLC) adalah (1) fuzzification, menentukan variabel masukkan dan masukan untuk fuzzy set; (2) rule Knowledge Base, berupa pengetahuan (knowledge) atau rule; (3) fuzzy reasoning, mengolah data masukan dengan rule dasar if-then; (4) refuzzification, mengubah keluaran dari fuzzy agar dapat melakukan suatu aksi pada sistem. (Yan, dkk., 1994) Pengendalian keseimbangan sistem dirancang menggunakan masukan posisi sebagai referensi input untuk mengendalikan pergerakan bola di atas papan. Karena sistem yang dirancang merupakan sistem dengan simpal tertutup (closed loop), maka untuk umpan balik dari sistem juga digunakan data posisi sebagai data eror. Data eror ini akan masuk ke bagian modul proses pengendali yang perancangannya menggunakan FPGA. Kemudian data hasil proses dari FPGA yang diproses menggunakan algoritma logika fuzzy, akan masuk ke dalam driver motor dahulu sebelum nantinya akan masuk ke motor menjadi dua buah sinyal, yaitu untuk sinyal CW (clock wise) dan CCW (counter clock wise). Kemudian respon yang dihasilkan menyebabkan pergerakan motor yang mengakibatkan perubahan pada kedudukan papan. Feedback atau umpan balik pada sistem akan terus berlanjut, hingga eror yang dihasilkan nol. Gambaran umum dari diagram blok sistem ini digambarkan pada gambar di bawah ini (Gambar 2):
Gambar 3 Diagram Blok Sistem
Jarak antara photodioda yang satu dengan yang lain adalah 2 cm (Gambar 4). Untuk gambar rangkaian pada gambar 5, apabila ada bola, maka keluarannya tegangan low dan LED display on, begitu pula sebaliknya apabila tidak ada bola keluarannya tegangan high dan LED.
Gambar 4 Photodioda Di Atas Jalur Papan
Pemanfaatan FPGA dalam... (Santoso P. Sugondo; dkk)
173
Gambar 5 Rangkaian Photodioda
Penomoran pada sensor posisi dari sebelah kiri nomor 1 dan ke kanan, sampai posisi ke 20 adalah paling kanan (Gambar 4). μ
Gambar 6 Membership Function Posisi μ
Gambar 7 Membership Function Sudut
Untuk nilai duty cycle dari fuzzy set keluaran didapatkan dengan cara pengukuran tanpa menggunakan algoritma fuzzy, jadi percobaan yang dilakukan secara manual, dan nilai-nilai ini adalah nilai terendah agar bola pada papan terangkat. Fuzzy set-nya adalah: PB = 120, PK = 110, NOL = 0, NK = 110, NB =120. Untuk posisi PB = NB dan posisi PK = NK, karena panjang papan pada sebelah kanan dan kiri adalah sama, yaitu 20 cm, maka nilai duty cycle yang diberikan sama besar. - Rule knowledge base dan Fuzzy reasoning “ if posisi = PB and sudut = PB then keluaran NB ”
174
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 170 - 176
Tabel 2 Rule Fuzzy Logic Posisi PB PK NOL NK NB
PB NB NB NK NOL NOL
PK NK NK NK NOL NOL
Sudut NOL NK NK NOL PK PK
NK NOL NOL PK PK PK
NB NOL NOL PK PB PB
- Deffuzzification. Pada tahap ini adalah mengkonversi keluaran dari himpunan fuzzy menjadi nilai keluaran berupa duty cycle yang akan diberikan pada motor DC. Perhitungannya menggunakan singleton, adapun perhitungannya sebagai berikut :
Misalkan error posisi yang didapatkan adalah pada posisi 4, di mana pada posisi 4 fungsi keanggotaannya 0.5 PB dan 0.5 PK, maka
HASIL DAN PEMBAHASAN Untuk sensor posisi, pencahayaan pada photodiode perlu diatur agar tegangan keluaran dari sensor posisi high atau low. Selain itu digunakan pula schmitt trigger berupa rangkaian NOT. Karena jarak antara photodiode yang satu dengan yang lain adalah 2 cm dan ternyata pada saat posisi bola berada diantara kedua photodiode, maka keluaran dari sensor photodiode tidak terdefinisi (blank spot), oleh karena itu apabila jarak diperkecil lagi, maka blank spot dapat dihindari. Untuk masukan pada motor digunakan PWM 8 bit, dengan:
1 x100% = 0.390625% , dan 256 255 Duty Cycle terbesar = x100% = 99.609375% . 256
Duty Cycle terkecil =
Apabila duty cycle bertambah besar, maka tegangan yang dihasilkan dari PWM ke motor menjadi besar pula. Pengambilan nilai eror dari data sensor posisi dan sudut, ternyata rule yang dihasilkan sangat besar sehinggga CLB pada FPGA yang digunakan tidak cukup besar dan penggunaannya mencapai 114%. Oleh karena itu, untuk data eror hanya diambil data sensor posisi saja, dan CLB yang digunakan sebesar 97%. Duty cycle yang dihasilkan dari keluaran fuzzy set seperti yang telah disebutkan di atas, ternyata pada saat penerapannya nilai duty cylce tersebut terlalu besar sehingga respon yang dihasilkan sistem menjadi tidak baik. Jadi untuk keluaran dari fuzzy set diubah menjadi: PB = 120, PK = 900, NOL = 0, NK = 90, dan NB =120. Nilai duty cycle yang diberikan pada setiap posisi sesuai dengan hasil dari membership function posisi dapat dilihat pada Tabel 3.
Pemanfaatan FPGA dalam... (Santoso P. Sugondo; dkk)
175
Tabel 3 Nilai Duty Cycle Berdasarkan Fuzzy Set Posisi Posisi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Duty cycle (nilai bit) 147 131 120 110 100 96 95 90 0 0 0 0 52 53 54 60 75 90 100 118
Duty cycle (%) 59 53 49 44 41 40 39 36 0 0 0 0 19 20 21 23 30 36 41 48
PENUTUP Simpulan yang didapatkan dari sistem yang telah dibuat yaitu sistem tersebut digunakan untuk mengendalikan keseimbangan beban pada papan digunakan nilai error dari sensor posisi. Sistem yang dirancang dan dibuat dapat mencapai keseimbangan, yaitu posisi bola berada diantara 3 cm ke kiri dan 3 cm ke kanan dari tumpuan. Blank spot yang terjadi pada saat posisi bola berada diantara 2 buah photodiode, menyebabkan respon sistem menjadi lambat. Agar tegangan keluaran dari sensor posisi berupa high dan low, maka pencahayaan yang diberikan pada photodioda harus diatur intensitasnya; frekuensi PWM juga akan mempengaruhi respon pergerakan dari motor. Dari sistem yang telah dibuat, ketidakberhasilan dari 20 kali percobaan alat yang dilakukan terjadi kegagalan sebanyak 5 kali, jadi eror pada sistem yang dibuat sebesar 25 %.
DAFTAR PUSTAKA Anonim. (2002). Library guide: Xilinx Foundation Series 2.1i manual. Xilinx.Inc., USA. Bolton, W. (1999). Mechatronics: Electronic Control Systems in Mechanical and Electrical engineering, 2nded. Addisson Wesley, New York. De Silva, Clarence W. (1989). Control, Sensor and Actuators. Prentice-Hall, New Jersey. Mano, M. Moris; Kime, Charles R. (2001). Logic and Computer Design Fundamentals, 2nded. Prentice Hall, New Jersey. Yan, Jun; Ryan, Michael; Power, James. (1994). Using Fuzzy Logic. Prentice Hall. Inggris.
176
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 170 - 176