Selamat datang di sonoku.com

Implementasi Fuzzy Logic Controller untuk Kontrol Kecepatan Motor DC pada Prototype Kipas Angin (bagian 2)

Pengatur kecepatan kipas berdasarkan suhu ruang menggunakan fuzzy logic controller

Artikel sebelumnya kita telah membahas tentang perancangan kode program untuk fuzzifikasi masukan (sensor) pada Kontrol Kecepatan Motor DC pada Prototype Kipas Angin. Selanjutnya kita bahas bagaimana merancang basis aturan (rule base).

2. Kode program Rule Evaluation

Adapun rule base yang dirangcang sebagai berikut :

  1. Jika Suhu Dingin dan Jarak Dekat, maka Kipas Angin Lambat
  2. Jika Suhu Dingin dan Jarak Sedang, maka Kipas Angin Lambat
  3. Jika Suhu Dingin dan Jarak Jauh, maka Kipas Angin Lambat
  4. Jika Suhu Hangat dan Jarak Dekat, maka Kipas Angin Lambat
  5. Jika Suhu Hangat dan Jarak Sedang, maka Kipas Angin Sedang
  6. Jika Suhu Hangat dan Jarak Jauh, maka Kipas Angin Cepat
  7. Jika Suhu Panas dan Jarak Dekat, maka Kipas Angin Cepat
  8. Jika Suhu Panas dan Jarak Sedang, maka Kipas Angin Cepat
  9. Jika Suhu Panas dan Jarak Jauh, maka Kipas Angin Cepat

Table 3 merupakan rule base yang akan di program pada Arduino. Dari parameter tersebut, terdapat 3 himpunan fungsi keanggotaan output motor yaitu lambat,sedang dan cepat.Adapun source code rule base di atas yaitu :

Program yang dirancang akan menggunakan operasi logika AND, dimana nilai rule yang dihasilkan akan diambil dari nilai terkecil dari kedua derajat keanggotaan dengan menggunakan fungsi matematika (MIN).

3. Kode Program Defuzzifikasi

Pada defuzzifikasi yaitu tahap terakhir pada Fuzzy Logic Controller (FLC). Penyelesaian defuzzifikasi ini menggunakan metode Sugeno tipe WA (Weighted Average):

Adapun source code nya sebagai berikut :

Hasil dan Analisa

Pada tahapan ini akan diuji hasil perancangan dari metode Fuzzy Logic Controller  yang sudah dirancang untuk mengontrol kecepatan pada motor DC pada prototype kipas angin. Metode Fuzzy Logic Controller ini dirancang pada Arduino untuk mengatur PWM pada driver motor yang selanjutnya digunakan untuk mengatur kecepatan motor. Kecepatan motor ini diatur berdasarkan nilai yang diberikan dari sensor LM35 yang mendeteksi suhu dan sensor ultrasonic yang mendeteksi jarak pada objek tertentu.

Percobaan ke-1

Pada percobaan 1 akan diuji coba kecepatan motor dengan set point PWM sebesar = 100, dimana terdapat nilai suhu sebesar 24 – 25 yang dapat dikategorikan sebagai suhu dingin dan sedang, sementara nilai jarak berubah-ubah setiap satuan waktu. Jarak akan digunakan sebagai variable yang menentukan kecepatan baling-baling kipas tersebut.

Gambar 6. Grafik Respon Fuzzy untuk set point kecepatan lambat (100)

Dari grafik di atas terlihat bahwa sistem mengalami rise time yang cepat, yaitu hanya memerlukan 1 detik untuk menyesuaikan kondisi. Dengan suhu 25 derajat Celcius dan jarak 8 cm, putaran motor dapat menyesuaikan dengan rule base yaitu 100. Hal ini berlangsung hingga detik ke 9 dengan jarak 11 cm. Namun ketika jarak dinaikkan dalam rentang nilai 18, 13, dan 10 pada grafik terlihat bahwa sistem mengalami overshoot. Namun berhasil menyesuaikan kembali ketika detik ke 12. Pada detik ke 12 hingga 14 sistem berhasil menurunkan suhu walau pun hanya 1 derajat Celcius. Adapun rata-rata error yang dihasilkan oleh sistem sebesar 15,4545 %. Hal ini dapat disebabkan oleh pembacaan kedua sensor yang kurang sensitif, selain itu pula rancangan membership function dan rule base untuk nilai input output belum optimal dan jumlah pengujian data yang sedikit.

Percobaan ke-2

Percobaan 2 tidak jauh berbeda dengan percobaan 1. Hanya saja nilai kecepatan motor yang akan diuji coba memiliki set point PWM sebesar 250, dan nilai suhu sebesar 28– 29 yang dapat dikategorikan sebagai suhu panas, sementara nilai jarak berubah-ubah setiap satuan waktu. Jarak akan digunakan sebagai variable yang menentukan kecepatan baling-baling kipas tersebut. Adapun hasil data yang diuji sebanyak 49 kali ditunjukkan oleh gambar berikut.

Gambar 7. Grafik Respon Fuzzy untuk set point kecepatan cepat (250)

Dari grafik di atas, sistem menunjukkan rise time yang sama dengan dengan percobaan 1. Sistem hanya memerlukan waktu 1 detik untuk menyesuaikan kondisi. Selain itu pula, hasil respon yang ditunjukkan sangat stabil. Tidak ditemukan ada nya overshoot pada sistem yang diuji coba. Walaupun demikian, penurunan nilai suhu tidak dapat dipertahankan secara lama. Seperti data yang ditunjukkan pada tabel, ketika detik ke 3 hingga 4 suhu berhasil turun 1 derajat Celcius menjadi 28 derajat Celcius. Namun, pada detik ke 5 hingga 8 suhu kembali naik menjadi 29 derajat Celcius. Meskipun demikian, rata-rata error yang terjadi pada sistem berhasil diturunkan hingga mencapai 3,06122 %.

Penggunaan jumlah membership function dan perancangan rule base dapat mempengaruhi respon kepresisian dari metode untuk menentukan keputusan terhadap plan. Semakin banyak jumlah membership function, maka semakin tingkat keakuratan hasil di plan ini.

Memprogram Arduino dengan NetBeans IDE

netbeans_arduino_5

Jika sudah berkenaan dengan pemrograman berbasis objek (OOP), peran IDE (Integrated Development Environment) menjadi sangat penting. Meski sebenarnya program arduino bisa ditulis dengan text editor yang paling sederhana seperti notepad, namun kebutuhan organisasi program terkait penggunaan library, class, kompilasi dan sebagainya akan menjadi sangat rumit. Sebelumnya saya menggunakan IDE Arduino untuk memprogram Arduino saya, beberapa kesulitan saya temui misalnya Read More

Kontrol Lampu 220VAC dan LED Menggunakan Aplikasi Android

lampu_android_8

Pada perancangan sistem controller lampu AC dan LED menggunakan aplikasi android ini menggunakan 4 bagian yaitu input, mikrokontroller, driver actuator dan actuator, dimana masukan dari sistem ini menggunakan smartphone android, kemudian pengontrol-nya menggunakan mikrokontroller Arduino Uno, rangkaian relay sebagai driver actuator, dan lampu sebagai actuator dari sistem ini. Berikut blok diagram sistem. Read More

Sharing koneksi internet WiFi laptop dengan Raspberry Pi melalui LAN/Ethernet

sharing_raspberry_6

Koneksi internet sangat penting ketika anda ingin mengupdate, upgrade atau install software pada Raspberry Pi, sebab instalasi Raspberry Pi akan otomatis mendownload file yang diperlukan pada proses instalasi software. Jika laptop anda terkoneksi internet melalui WiFi, anda bisa membagi (share) koneksinya ke Raspberry Pi yang terhubung secara remote ke Laptop menggunakan kabel ethernet. Ikuti langkah mudahnya berikut ini. Read More

Akses Remote Desktop pada Raspberry Pi

raspberry_desktop_4

Selain akses Raspberry Pi dengan mode shell dengan PC/Laptop, desktop Raspberry Pi juga bisa diakses secara remote melalui PC/Laptop. Umumnya Raspberry Pi dengan OS Debian sudah terinstal LXDE (Lightweight X11 Desktop Environment), sebuah tampilan desktop alternatif (selain GNOME, KDE, dll) yang sangat ringan dan menarik, tentunya cocok untuk komputer dengan kecepatan atau RAM yang rendah. Dengan menggunakan mode desktop, organisasi file, menjalankan aplikasi, atau main game akan menjadi mudah dan lebih interaktif, karena tidak perlu mengetik perintah-perintah seperti jika kita menjalankan Raspberry Pi pada mode shell (console). Ikuti langkah berikut: Read More

Memperbaiki Driver WiFi Adapter RTL8188CUS di Beaglebone Black

WiFi Beaglebone

Untuk proyek yang akan saya bangun berikutnya, saya membutuhkan koneksi wireless dari Laptop ke modul Beaglebone Black (BBB). Kebetulan saya membeli WiFi dongle dari adafruit.com. Waktu itu saya membelinya tanpa melihat detil spesifikasi teknisnya, kalau dari judulnya perangkat ini bisa digunakan untuk Raspberry Pi dan lainnya termasuk Beaglebone. Read More

Implementasi Fuzzy Logic Controller untuk Kontrol Kecepatan Motor DC pada Prototype Kipas Angin

Artikel ini membahas perancangan sebuah aplikasi dengan menggunakan mikrokontroler Arduino yang dapat berguna sebagai alat untuk mengaktifkan atau menonaktifkan kipas angin pada suatu ruangan. Perancangan sistem ini dilengkapi dengan beberapa perangkat keras yaitu sebuah motor DC 1000 rpm, baling-baling, sensor ultrasonic, sensor suhu LM35, Arduino Uno, rangkaian driver motor dan baterai 10 Volt. Rancangan dari sistem ini digunakan untuk mengatur putaran kipas angin yang disesuaikan dengan temperatur dan jarak dari suatu objek. Adapun diagram hardware nya sebagai berikut : Read More

Kendali Motor Pada Prototipe Overhead Crane Menggunakan Metode Fuzzy Logic Controller

Pada artikel ini dirancang kendali motor pada prototype overhead crane dengan Fuzzy Logic Controller (FLC). Kontrol motor menggunakan implementasi fuzzy logic dengan input berupa sensor ultrasonik dan potensiometer. Nilai dari kedua sensor ini yang akan mempengaruhi kecepatan motor pada plant. Sensor ultrasonik akan dipasang pada salah satu ujung crane dan sensor potensiometer akan dipasang pada tali crane untuk mengontrol motor guna mempertahankan sudut pergerakan tali. Read More

C/C++ cross-compiler untuk Beaglebone menggunakan IDE Eclipse

Mengapa perlu cross-compiler?

cdtPermasalahan utama sebenarnya adalah keinginan mendapatkan kemudahan dalam membuat program untuk Beaglebone. Untuk program skala kecil, mungkin kita bisa membuatnya langsung di Beaglebone secara console dengan editor seadanya, atau bahkan menginstal program editor di Beaglebone dan menjalankannya langsung, Read More