BAB III ANALISIS DAN PERANCANGAN SISTEM
3. 1. Spesifikasi Sistem Pada tugas akhir ini, penulis membuat sebuah prototype dari kendaraan skuter seimbang. Skuter seimbang tersebut memiliki spesifikasi sebagai berikut: •
Skuter seimbang dapat menyeimbangkan dirinya secara otomatis tanpa bantuan gaya luar.
•
Kriteria seimbang atau tidaknya skuter ini adalah hanya berosilasi pada sudut kecil saja sekitar -2 hingga 2 derajat tanpa adanya gangguan.
•
Mampu bergerak menyeimbangkan dirinya secara real time
•
Skuter akan maju jika dicondongkan depan, dan akan mundur jika dicondongkan ke belakang.
•
Dengan diberi gangguan, skuter mampu mempertahankan dirinya agar tidak terjatuh, namun gangguan yang diberikan hanya berupa kemiringan sudut kecil saja yaitu hingga +-5 derajat.
3. 2. Analisis Skuter seimbang ini merupakan implementasi dari sistem pendulum terbalik. Maka karakteristik dari skuter seimbang ini mirip dengan sistem pendulum terbalik. Berdasarkan model matematika yang tercantum pada bab dasar teori, pada keadaan nyatanya, sistem ini bukanlah sistem yang linear, hal ini terlihat dari persamaan
matematiknya
yang
terdapat
persamaan
yang
mengandung
trigonometri. Tetapi persamaan tersebut dapat disederhanakan menjadi persamaan linear dengan membatasi sudut operasi dari pergerakan skuter seimbang ini. Pada sudut kecil, sin
akan sama dengan -
, cos
akan sama dengan -1. Hal inilah
yang menjadi dasar penulis untuk membatasi gangguan yang boleh diberikan kepada skuter seimbang. Dari proses linearisasi tersebut, maka pengendali linear dapat digunakan pada kasus ini.
33
Skuter seimbang ini diinginkan untuk dapat berdiri seimbang tanpa adanya bantuan gaya luar, yang berarti skuter harus mampu menyeimbangkan dirinya dengan cara bergerak maju-mundur. Ketika skuter condong ke depan, skuter harus maju dan ketika skuter condong ke belakang, skuter harus mundur. Ketika bergerak maju mundur, skuter mendapat percepatan dan torsi dari motor yang dapat digunakan untuk melawan gaya gravitasi yang membuat skuter jatuh. Pergerakan maju mundur ini juga yang akhirnya dimanfaatkan sebagai gerakan yang digunakan untuk transportasi skuter seimbang.
Untuk dapat memenuhi spesifikasi di atas, perlu adanya analisis mengenai komponen yang dibutuhkan untuk membangun sistem seperti itu. Komponen tersebut dapat berupa perangkat keras maupun perangkat lunak.
3. 2. 1. Analisis Perangkat Keras Sensor Untuk dapat menyeimbangkan dirinya, tentunya skuter harus mampu mengetahui terlebih dahulu keadaan sudut yang dianggap sebagai sudut seimbangnya, dan juga harus mengetahui keadaan sudut pada saat ini. Untuk dapat mengetahui keadaan kemiringannya, skuter haruslah dilengkapi dengan sensor yang mampu membaca kemiringan. Sensor yang dapat membaca kemiringan sudut yang sering digunakan adalah sensor IMU (Inertial Measurement Unit) yang terdiri dari giroskop dan akselerometer. Giroskop adalah sensor yang membaca orientasi sudut.
Keluaran dari sensor
ini
berupa tegangan
yang
akan diterima oleh
mikrokontroller. Pada umumnya giroskop mengeluarkan tegangan 0 hingga 5 volt. Pada keadaan normal 0 derajat akan dibaca sebagai 2.5 volt. Giroskop ini memiliki kekurangan yaitu terdapat drift, sehingga sudut 0 yang dibaca berubah ubah. Oleh karena itu diperlukan akselerometer sebagai data pembanding. Akselerometer merupakan sensor yang membaca akselerasi. Akselerometer ini membaca percepatan di setiap sumbu (jumlah sumbu tergantung dengan jenis akselerometernya). Akselerometer juga dapat mengukur orientasi sudut dengan 34
membandingkan akselerasi yang dialami dari 2 buah sumbu. Perbedaan akselerasi pada 2 sumbu tersebut kemudian diubah menjadi besaran sudut. Kelemahan dari akselerometer ini adalah mudah terkena gangguan, terutama jika sedang terjadi gerakan maju mundur pada skuter seimbang. Maka dari itu, penggabungan data dari akselerometer dan giroskop ini akan menghilangkan kelemahan dari masing masing sensor. Metode pembandingan data hingga memperoleh pembacaan yang baik oleh sensor IMU ini akan lebih dalam dibahas pada tugas akhir dari rekan penulis yaitu Zulkarnaen.
Pengendali Pengendali dibutuhkan untuk mengatur aksi apa yang harus dilakukan untuk menjaga agar skuter dapat berdiri seimbang. Pengendali yang digunakan dalam sistem ini adalah jenis pengendali digital. Pengendali digital ini dapat berupa mikrokontroller. Mikrokontroller yang dibutuhkan adalah yang memiliki fasilitas timer/counter yang akan digunakan untuk pencuplikan dan untuk pengaturan PWM. Untuk membaca data dari sensor, sistem ini membutuhkan 3 buah port data dan port untuk vcc dan ground. Sedangkan untuk menggerakan aktuator, diperlukan 6 buah port dan 2 buah channel PWM untuk 2 buah motor.
Aktuator Seperti yang telah dibahas sebelumnya, Untuk dapat melawan gaya gravitasi yang membuat skuter miring dan jatuh, skuter harus maju atau mundur
untuk
mendapatkan akselerasi. Untuk dapat bergerak maju atau mundur, skuter memerlukan aktuator berupa motor. Motor ini haruslah mampu memiliki torsi dan kecepatan putaran yang cukup untuk memberikan akselerasi d sehingga skuter tidak jatuh dan dapat bergerak dengan baik.
Driver Motor DC Seperti yang telah diketahui, pada umumnya keluaran dari mikrokontroller adalah logika tegangan 0 atau 5 volt. Maka untuk dapat mengatur pergerakan motor, diperlukan sebuah driver motor. Driver motor ini harus mampu menerjemahkan
35
sinyal dari mikrokontroller menjadi sebuah besaran tegangan yang mampu memutar motor dengan kecepatan dan arah yang ditentukan oleh mikrokontroller.
Catu Daya Catu daya adalah hal yang umum untuk digunakan di semua sistem. Pada skuter seimbang ini, catu daya dibutuhkan untuk mencatu dua buah motor dan sebuah mikrokontroller. Secara fisik, catu daya ini harus memiliki bentuk yang tidak terlalu besar dan juga harus dapat dipasang di platform sehingga tidak mengganggu pergerakan skuter pada saat beroperasi.
3. 2. 2. Analisis Perangkat Lunak Selain perangkat keras, untuk dapat membuat skuter berdiri seimbang, mikrokontroller yang menjadi otak dari sistem skuter seimbang ini perlu ditanamkan program yang mampu mengolah data berupa kemiringan sudut, yang kemudian dapat menentukan keluaran atau aksi yang harus diberikan agar skuter dapat kembali ke posisi semula. Program yang dibuat ini haruslah bekerja secara real time karena kemiringan skuter dapat berubah dalam waktu yang singkat. Perangkat lunak yang dibutuhkan dalam skuter seimbang ini adalah timer, sensor, PWM, Pengendali, Program driver motor, Komunikasi serial dengan PC.
Timer digunakan sebagai pewaktu dalam pencuplikan data. Periode pencuplikan yang dilakukan untuk mendapatkan kemiringan pada keadaan aktual haruslah cepat agar dapat mendeteksi keadaan skuter pada waktu yang aktual. Periode pencuplikan ini pun tidak boleh lebih cepat dari waktu satu kali lup program pengendali secara keseluruhan.
Modul yang juga dibutuhkan adalah program mengenai pengambilan data sensor dan pengolahan data dari dua buah sensor. Untuk modul ini, dan algoritma pengolahan data sensor hingga didapat hasil yang baik dari sensor akan dibahas pada tugas akhir rekan penulis, Zulkarnaen.
36
Modul perangkat lunak yang dibutuhkan selanjutnya adalah modul pengendali. Setelah dilakukan pencuplikan dan pengolahan data dari sensor, didapat sudut kemiringan skuter. Untuk dapat menghasilkan aksi dari skuter seimbang berupa PWM, perlu adanya pengendali yang mampu menentukan hubungan masukan yang berupa sudut dengan keluaran berupa pwm. Keluaran dari pengendali ini harus mampu membuat skuter mencapai keadaan seimbangnya. Selain itu, periode satu lup proses pengendali ini harus lebih kecil dari periode pencuplikan data. Karena jika terlalu lama, mikrokontroler akan sudah mengambil cuplikan data baru sebelum proses pengolahan data yang lama selesai dan menyebabkan keluaran pengendali tidak valid. Algoritma pengendali yang dapat digunakan misalnya seperti algoritma PID dan algoritma logika fuzzy.
Untuk dapat menggerakan motor dengan menggunakan PWM dibutukan penggunaan fitur timer yang dapat diatur seusai kebutuhan penggunaan PWM, dan program untuk pengaturan penggerakan arah motor seperti maju, mundur, atau diam.
Untuk dapat mengamati data keadaan kemiringan dan aksi yang dilakukan, dan mempermudah penggambaran data, penulis dan rekan menggunakan program pada PC yang dapat berhubungan dengan mikrokontroller. Untuk itu, dibutuhkan juga modul komunikasi serial dari mikro ke PC.
3. 3. Perancangan Dari analisis yang telah dilakukan, maka penulis dan rekan dapat melakukan perancangan mengenai perangkat keras maupun perangakat lunak untuk membuat skuter dapat bekerja sesuai spesifikasi. 3. 3. 1. Perancangan Perangkat Keras Platform. Perancangan platform skuter seimbang dilakukan sebagai berikut. Kedua roda dipasang di kiri dan di kanan skuter, sehingga skuter tersebut tidak akan seimbang dalam kondisi tidak aktif. Skuter ini memiliki Panjang 40cm lebar 16 cm dan tinggi 25,5cm. Fungsi platform ini adalah untuk meletakkan komponen 37
komponen skuter seimbang seperti mikrokontroller, H bridge, baterai dan sensor. Pada desain model skuter seimbang sesungguhnya, platform ini akan menjadi pijakan dan kemudi bagi pengendara. Pada gambar 32 dapat dilihat rancangan platform skuter seimbang.
Gambar 32 Platform Skuter Seimbang
Motor DC. Skuter seimbang ini menggunakan dua buah motor DC DGM-009 yang spesifikasi tegangan 23 V dan maksimum arus 2 ampere. Motor DC dipilih sebagai aktuator pada skuter seimbang karena lebih mudah untuk menyediakan catu daya DC dibandingkan dengan catu daya AC. Pertimbangan lainnya adalah untuk kemudahan pengaturan kecepatan putar motor dengan menggunakan PWM. Motor ini memiliki kecepatan sudut hingga 455rpm dan memiliki konstanta torsi sebesar 0.56Nm/A (didapat dari pengukuran). Dengan spesifikasi di atas, motor tersebut memenuhi kriteria aktuator yang dibutuhkan pada bagian analisis, karena memiliki torsi yang cukup untuk memutar roda agar dapat berjalan mulus. Motor ini juga memiliki kecepatan yang cukup tinggi dan akselerasi yang tinggi, sehingga dapat memberikan percepatan yang menjadi gaya lawan untuk mencegah skuter ini jatuh.
Sensor. Pada bagian analisis sistem, telah ditentukan bahwa pada skuter seimbang ini harus dipasang sensor yang dapat mengukur sudut kemiringan skuter yaitu 38
sensor IMU yang terdiri dari Giroskop dan Akselerometer. Giroskop yang digunakan adalah tipe ADXRS613 – 150 degree/sec yang dapat dilihat pada gambar 33. Pemilihan giroskop ini berdasarkan dengan kebutuhan kecepatan perubahan sudut maksimal pada skuter seimbang. Dari hasil percobaan dengan memperkirakan kecepatan perubahan sudut yang akan teradi, kecepatan sudut yang akan terjadi pada saat skuter berusaha menyeimbangkan diri hanya berkisar dibawah 100 derajat / detik. Semakin tinggi range pembacaan pada giroskop, maka ketelitiannya akan berkurang, oleh karena itu kami memilih yang memiliki skala paling kecil yang masih dapat membaca kecepatan sudut maksimum yang akan terjadi pada saat skuter bergerak.
Gambar 33 Giroskop
Sedangkan akselerometer yang digunakan adalah akselerometer ADXL203CE +/1.7g 2 axis yang dapat dilihat pada gambar 34. Akselerometer ini dapat menghitung percepatan dalam 2 sumbu yaitu sumbu vertikal dan horizontal dalam satuan gravitasi (g). Gabungan dari percepatan 2 sumbu tersebut dapat menghasilkan pembacaan sudut. Pemilihan akselerometer tipe ini adalah karena pada skuter seimbang hanya dibutuhkan 2 aksis saja untuk dapat mengukur sudut kemiringan skuter. Sedangkan percepatan maksimum pembacaan 1.7g dipilih berdasarkan referensi yang didapat dari forum dan diskusi. Akselerometer ini kemudian akan dijadikan pembanding giroskop sehingga dapat mengurangi kekurangan giroskop.
39
Gambar 34 Akselerometer
Driver motor. Driver motor ini terdiri IC L298N sebagai H-Bridge, IC 7805 sebagai regulator, dan dioda. L298N ini terdiri dari rangkaian bridge yang menerima masukan level TTL dan menghasilkan output arus 1 ampere dan tegangan maksimum 46 volt. L298N ini dapat digunakan untuk mengatur putaran motor yang penulis beserta rekan gunakan. Gambar 35 menunjukan adalah konfigurasi IC L298N
Gambar 35 Diagram rangkaian L298N
. Pemilihan driver motor dengan H-Bridge L298N ini adalah berdasarkan Catu daya yang digunakan dalam skuter seimbang ini berupa baterai 24V, dimana keluaran maksimum L298N ini 46 Volt. Selain itu, keluaran maksimum 1 ampere dari L298N ini sudah mampu menjalankan motor dengan baik.
Dioda yang dipasang pada rangkaian driver motor ini bertujuan untuk mencegak arus balik dari motor ketika motor diputar dengan gaya luar. Sedangkan ic 7805 40
berguna sebagai regulator yang dapat mengeluarkan tegangan 5 volt apabila dibutuhkan sebagai catu daya untuk mikrokontroller. Pada gambar 36 dapat dilihat rangkaian driver motor menggunakan IC L298
Gambar 36 Skema Rangkaian Driver Motor dengan H-Bridge L298N
Gambar 37 Driver Motor dengan H-Bridge L298N
Catu Daya. Catu daya pada skuter seimbang ini terdiri dari 2 sumber yang berbeda, yaitu baterai 24 volt dan baterai 9 volt. Baterai 24 volt akan digunakan untuk catu daya driver motor, sedangkan baterai 9 volt untuk catu daya mikrokontroller.
3. 3. 2. Perancangan Perangkat Lunak Sesuai dengan analisis, perancangan perangkat lunak untuk skuter seimbang ini mencakup modul pengendali program penunjang lainnya seperti timer, pwm, dan komunikasi serial. Pada program algoritma sistem kendali, digunakan dua buah 41
metode yaitu dengan PID dan Logika Fuzzy. Tujuan digunakannya dua pengendali berbeda adalah untuk mencari pengendali mana yang lebih mudah dirancang untuk sistem skuter seimbang ini dan juga untuk mendapat hasil kendali terbaik yang dapat digunakan untuk menyeimbangkan skuter.
Sebagai penunjang dari algoritma pengendali, terdapat fungsi timer yang bertujuan untuk pewaktu dalam pencuplikan data yang dilakukan oleh sensor. Periode pencuplikan yang diinginkan oleh penulis dan rekan adalah sebesar 20ms. Pemilihan periode pencuplikan ini berdasarkan faktor kebutuhan kecepatan pembacaan sensor. Waktu pencuplikan yang terlalu lambat akan menyebabkan reaksi skuter yang kasar karena periode aksi yang diberikan oleh skuter pun akan lama. Untuk mendapatkan periode pencuplikan sebesar 20ms, perlu dilakukan perhitungan terlebih dahulu. Perhitungannya adalah sebagai berikut. Kristal yang digunakan memiliki frekuensi sebesar 11059200 Hz, dan prescaler yang dipilih adalah 1024. Dengan nilai prescaler tersebut, berarti nilai counter akan naik setiap 1024 clock. Dari kedua nilai tersebut didapat besar frekuensi timer yaitu frekuensi kristal dibagi dengan nilai prescaler yaitu 10800 Hz. Maka periode timernya adalah 1/10800Hz yaitu 0,0926 ms. Untuk mendapatkan nilai timer 20 ms, maka dibutuhkan siklus sebanyak 20/0,0926 yaitu 216 kali siklus pada mikrokontroller.
Pada perancangan PWM, penulis menggunakan phase correct PWM 10 bit. Dengan demikian akan nilai OCR akan berkisar antara 0-1023. Sedangkan preskalar yang digunakan adalah 1, hasil ini didapat dari percobaan memutar motor dengan berbagai preskaler. Penggunaan preskaler ini menghasilkan putaran motor yang paling halus. Modul berikutnya adalah modul komunikasi serial. Dalam perancangan komunikasi serial, yang pertama harus ditentukan adalah USART Baudrate. Baudrate yang kami gunakan adalah sebesar 115200. Baudrate dsebesar 115200 ini memiliki kecepatan yang cukup untuk mengamati perubahan sudut pada skuter melalui PC secara real time. Untuk menghitung Baud Prescale dapat digunakaan persamaan
42
Baud Prescale =
Frekuensi kristal −1 16 x baud rate
(3.3.1)
Perancangan Pengendali Pengendali PID Pembuatan program PID ini dilakukan berdasarkan persamaan kendali PID digital. Pertama tama akan dibuat 3 buah variabel berupa galat, galat lama dan galat lama 2. Gunanya adalah untuk menyimpan data galat hingga 2 galat sebelumnya yang akan digunakan pada perhitungan aksi kendali.
Setiap satu kali lup, galat akan diperbaharui dengan data yang diambil dari sensor, dan sebelumnya akan disimpan di galat_lama, begitu juga dengan galat_lama sebelumnya yang akan disimpan di galat lama 2. Keluaran dari perhitungan program kendali PID ini adalah nilai PWM. Nilai PWM ini dapat bernilai positif ataupun negatif. Positif dan negatif pada nilai PWM ini menandakan arah putar roda.
Keluaran pengendali berupa nilai PWM ini akan memanggil fungsi pengendali driver motor, pada fungsi ini apabila PWM bernilai positif, maka motor akan berputar maju, sebaliknya bila PWM bernilai negatif, maka motor akan berputar mundur. Nilai PWM keluaran dari kendali PID ini akan ditambahkan terlebih dahulu dengan deadband motor agar tidak ada daerah saturasi awal.
Pada pengendali PID ini, kami memberikan batas daerah kerja pengendali PID pada keadaan sudut skuter diantara -20 derajat hingga 20 derajat. Pembatasan sudut ini bertujuan untuk keamanan. Apabila sudut terlalu besar, dikhawatirkan motor sudah tidak dapat mengkompensasi, dan akan melaju terus.
Pada gambar 38 ditunjukan diagram alir algoritma sistem skuter seimbang menggunakan pengendali PID.
43
Start
Inisialisasi Awal: - Timer 0 (Pencacah) - Timer 1 (PWM) - USART - Penggunaan Port - galat_lama = 0 - galat_lama_2 = 0 - v & v_lama = 0
Baca galat Galat = sudut kemiringan skuter
Tidak
Apakah -20
PWM = 0
Tidak
Ya
Apakah v bernilai positif?
v < -468?
v >468? Ya
Ya Tidak
Motor Putar mundur dengan PWM = v + 550
Tidak
Motor Putar mundur dengan PWM = 1023
Motor Putar maju dengan PWM = 1023
Motor Putar maju dengan PWM = v + 550
v_lama = v galat_lama2 = galat_lama Galat_lama = galat
Gambar 38 Flowchart Pengendali PID
Pengendali Logika Fuzzy Seperti yang telah dijelaskan pada bab awal, skuter seimbang ini menggunakan pengendali berupa pengendal logika fuzzy. Pada tugas akhir ini, model fuzzy yang digunakan adalah model fuzzy Takagi, Sugeno & Kang. Untuk membuat
44
pengendali fuzzy dengan model ini, ada 3 tahap yang perlu dilakukan yaitu fuzzifikasi, inferensi fuzzy, dan defuzzifikasi.
Fuzzifikasi Pada fuzifikasi ini, akan diambil dilai input sistem berupa data tegas yang berupa nilai error dan delta error. Nilai error ini didapat dari selisih bacaan sensor IMU dengan setting point yang diinginkan (sudut 0 derajat). Sedangkan delta error merupakan perubahan nilai error setiap kali program berjalan. E(n) = SP(n)-PV(n)
(3.3.2)
DE(n) = E(n) – E(n-1)
(3.3.3)
E = error SP= Setting point PV= Proses Variabel DE= Delta error
Nilai error yang telah didapat secara tegas tersebut kemudian akan dijadikan nilai masukan fuzzy beserta derajat keanggotaannya. Untuk itu pertamakali perlu dibuat fungsi keanggotaan fuzzy terlebih dahulu untuk error, delta error maupun PWM. Pada umumnya, fungsi keanggotaan dengan bentuk segitiga sudah dapat menyelsaikan masalah kendali dan mudah dilakukan komputasi, oleh karena itu pada pengerjaan tugas akhir ini penulis menggunakan fungsi keanggotaan segitiga seperti pada gambar 39
Gambar 39 Fungsi keanggotaan segitiga
Berdasarkan bentuk fungsi keanggotaan di atas, maka dapat dicari derajat keanggotaan sebagai berikut. u= 0
untuk x
u=
x− A B−A
untuk A≤ x ≤ B
u=
C−x C−B
untuk B≤ x ≤ C
u= 0
(3.3.4)
untuk x > C
Selain fungsi segitiga, penulis juga menggunakan fungsi setengah trapesium untuk keanggotaan di ujung seperti yang dapat dilihat di gambar 40.
Gambar 40 Fungsi keanggotaan trapesium untuk daerah ujung
Sehingga perhitungan derajat keanggotaannya adalah sebagai berikut u= 0
untuk x
u=1
untuk A ≤x ≤ B
u=
C−x C−B
u= 0
untuk B≤ x ≤ C
(3.3.5)
untuk x > C
Pada gambar 41 dapat dilihat fungsi keanggotaan dari nilai error sudut (E)
Gambar 41 Fungsi Keanggotaan nilai error
Pada gambar 42 dapat dilihat fungsi keanggotaan delta error (DE)
46
Gambar 42 Fungsi keanggotaan delta error
Setelah didapat nilai error dan delta error, maka tentunya kita menginginkan sebuah keluaran berupa PWM motor.
Untuk itu perlu juga dibuat fungsi
keanggotaan keluaran berupa PWM motor. Pada model fuzzy TSK, keluaran dari aturan fuzzy adalah dalam bentuk crisp atau nilai tegas. Fungsi PWM motor ini penulis membuatnya dalam fungsi singleton seperti pada gambar 43.
Gambar 43 Fungsi keanggotaan aksi PWM
Inferensi Fuzzy Inferensi fuzzy ini merupakan aturan hubungan if - then. Penentuan inferensi ini didapat dari percobaan. Inferensi ini kemudian akan menghasilkan hubungan fungsi keanggotaan masukan dengan keluan yang dapat dilihat pada tabel 2
Tabel 2 Aturan Fuzzy
No Rule 1 2 3 4
E(Error) PB PB PB PM
CE (∆Error) N Z P N 47
∆Output PB PB PB PM1
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
PM PM PS PS PS Z Z Z NS NS NS NM NM NM NB NB NB
Z P N Z P N Z P N Z P N Z P N Z P
PM1 PM2 PS1 PS2 PS2 Z Z Z NS2 NS1 NS1 NM2 NM1 NM1 NB NB NB
Derajat keanggotaan dari hasil inferensi fuzzy, dapat berupa nilai maksimum, nilai minimum, ataupun hasil kali dari input 1 (error) dengan input 2 (delta error). Pada tugas akhir ini, penulis memilih menggunakan hasil kali dari input 1 dengan input 2. Derajat keanggotaan tersebut kemudian akan dikalikan dengan nilai tegas pada keluaran inferensi fuzzy sesuai aturan fuzzy pada tabel 2
Defuzzifikasi Defuzzifikasi merupakan proses yang dilakukan untuk mendapatkan nilai keluaran tegas dari hasil inferensi fuzzy. Pada skuter seimbang ini keluaran tegas tersebut berupa nilai PWM. Seperti yang telah dibahas pada dasar teori, ada banyak metode defuzzifikasi yang dapat digunakan. Pada tugas akhir ini, penulis memilih menggunakan metode rata rata pembebanan (weighted average). Persamaan yang digunakan adalah sebagai berikut pada persamaan 3.3.6 (3.3.6) Dimana z adalah nilai keluaran berupa PWM Dan w adalah derajat fungsi keanggotaan.
Keluaran pengendali berupa nilai PWM ini akan memanggil fungsi pengendali driver motor, pada fungsi ini apabila PWM bernilai positif, maka motor akan 48
berputar maju, sebaliknya bila PWM bernilai negatif, maka motor akan berputar mundur. Nilai PWM keluaran dari kendali PID ini akan ditambahkan terlebih dahulu dengan deadband motor agar tidak ada daerah saturasi awal.
Pada pengendali Fuzzy ini, kami memberikan batas daerah kerja pengendali PID pada keadaan sudut skuter diantara -20 derajat hingga 20 derajat. Pembatasan sudut ini bertujuan untuk keamanan. Apabila sudut terlalu besar, dikhawatirkan motor sudah tidak dapat mengkompensasi, dan akan melaju terus.
Pada gambar 44 ditunjukan diagram alir algoritma sistem skuter seimbang menggunakan pengendali fuzzy.
49
Start
Inisialisasi Awal: - Timer 0 (Pencacah) - Timer 1 (PWM) - USART - Penggunaan Port - error & error_1 = 0
Baca error dan delta error. Delta error = error-error_1
Tidak
Apakah -20<error<20?
Ya Fuzzifikasi
PWM = 0
Inferensi Fuzzy
Defuzzifikasi Untuk mendapatkan nilai PWM perhitungan (v)
Tidak
Ya
Apakah v bernilai positif?
Tidak
v >468?
v < -468? Ya
Ya
Tidak
Motor Putar mundur dengan PWM = v + 550
Motor Putar maju dengan PWM = 1023
Motor Putar mundur dengan PWM = 1023
Motor Putar maju dengan PWM = v + 550
error_1 = error i=0 j=0
Gambar 44 Flowchart Pengendali Logika Fuzzy
50