PEMANFAATAN FPGA DALAM PENGENDALIAN
KESEIMBANGAN PADA PAPAN
Santoso P. Sugondo
1; Christine Suzana Nababan
2; Herti
3; Wati Elny
4 1 Jurusan Sistem Komputer, Fakultas Ilmu Komputer, Universitas Bina Nusantara,Jalan K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480 santosops@binus.ac.id
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.
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 fuzzylogic
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. FPGAadalah 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)
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 opticalencoder 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.
μ
Tabel 1 Contoh Derajat Keanggotaan pada Kasus Usia
Nama Usia (tahun) Derajat keanggotaan (dewasa)
Ani 10 0
Edi 20 0.2
Susan 35 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 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 Fuzzyreasoning
Tabel 2 Rule FuzzyLogic
Posisi Sudut
PB PB PK NOL NK NB PK NB NK NK NOL NOL NOL NB NK NK NOL NOL
NK NK NK NOL PK PK NB NOL NOL PK PK PB
NOL NOL PK PK 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:
Duty Cycle terkecil
100
%
0
.
390625
%
256
1
=
=
x
, danDuty Cycle terbesar
100
%
99
.
609375
%
256
255
=
=
x
.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
fuzzyset diubah menjadi: PB = 120, PK = 900, NOL = 0, NK = 90, dan NB =120. Nilai dutycycle
yang diberikan pada setiap posisi sesuai dengan hasil dari membershipfunction posisi dapat dilihat
Tabel 3 Nilai Duty Cycle Berdasarkan Fuzzy Set Posisi
Posisi Duty cycle (nilai bit) Duty cycle (%) 1 147 59 2 131 53 3 120 49 4 110 44 5 100 41 6 96 40 7 95 39 8 90 36 9 0 0 10 0 0 11 0 0 12 0 0 13 52 19 14 53 20 15 54 21 16 60 23 17 75 30 18 90 36 19 100 41 20 118 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.