bab iv implementasi dan pengujian - · pdf filebab iv implementasi dan pengujian . 4. ......

27
51 BAB IV IMPLEMENTASI DAN PENGUJIAN 4. 1. Implementasi Pada sub bab ini, akan dibahas mengenai detail dari penerapan masing masing perangkat keras dan algoritma yang telah dirancang pada bab sebelumnya. 4. 1. 1. Implementasi Perangkat Keras Setelah dilakukan pemilihan semua perangkat keras yang dibutukan, dilakukan implementasi ke dalam satu kesatuan skuter seimbang. Berikut ini adalah gambar skuter seimbang yang telah dipasang semua komponen perangkat keras tersebut. Gambar 45 Prototype Skuter Seimbang Sensor giroskop dan akselerometer diletakkan di atas platform, sensor ini diletakan sejajar dengan platform skuter. Tujuannya adalah agar sudut kemiringan skuter ini sama dengan sudut yang dibaca oleh kedua sensor ini. Kedua sensor ini dihubungkan ke mikrokontroller ATMega 16 dengan menggunakan kabel.

Upload: truonglien

Post on 06-Feb-2018

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

51

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4. 1. Implementasi

Pada sub bab ini, akan dibahas mengenai detail dari penerapan masing masing

perangkat keras dan algoritma yang telah dirancang pada bab sebelumnya.

4. 1. 1. Implementasi Perangkat Keras

Setelah dilakukan pemilihan semua perangkat keras yang dibutukan, dilakukan

implementasi ke dalam satu kesatuan skuter seimbang. Berikut ini adalah gambar

skuter seimbang yang telah dipasang semua komponen perangkat keras tersebut.

Gambar 45 Prototype Skuter Seimbang

Sensor giroskop dan akselerometer diletakkan di atas platform, sensor ini

diletakan sejajar dengan platform skuter. Tujuannya adalah agar sudut kemiringan

skuter ini sama dengan sudut yang dibaca oleh kedua sensor ini. Kedua sensor ini

dihubungkan ke mikrokontroller ATMega 16 dengan menggunakan kabel.

Page 2: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

52

Kaki VCC pada kedua sensor ini dihubungkan dengan kaki VCC (5volt) pada

mikrokontroller, begitu pula dengan kaki ground yang dihubungkan dengan

ground mikrokontroller. Port Rate pada giroskop dihubungkan dengan port A0

pada mikrokontroller. Sedangkan pada akselerometer, port aksis Y dihubungkan

dengan port A1, dan port aksis X dihubungkan dengan port A2 pada

mikrokontroller.

Gambar 46 Sensor Akselerometer dan Giroskop

Mikrokontroller ATMega 16 yang diguakan dicatu dengan sebuah baterai 9 volt

yang terpisah dengan catu daya untuk motor. Pada desain awal, mikrokontroller

dicatu dengan catu daya yang didapat dari keluaran H-Bridge 5 volt. Namun

kemudian diubah dengan tujuan untuk menghindari adanya gangguan tegangan

ketika motor sedang berputar.

Port C0,C1,C2,C3 dan Port D4,D5 dari mikrokontroller kemudian dihubungkan

dengan kaki kaki H-Bridge menggunakan kabel. Port C0 dihubungkan dengan

kaki ke 5 (input 1), port C1 dihubungkan dengan kaki 7 (input 2) pada H bridge,

port C2 dengan kaki 10 (input 3), dan port C3 dihubungkan dengan kaki 12 (input

4). Sedangakan port D4 dan D5 dihubungkan ke kaki 6 dan 11 (enable).

Page 3: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

53

Gambar 47 Mikrokontroller, Baterai 24 volt dan H-Bridge

Kaki ke-4 dari H-bridge disambungkan dengan sumber tegangan 24 volt yang

akan digunakan untuk mencatu motor DC. Sedangkan kaki ke-8 H-Bridge

dhubungkan dengan ground. Keluaran dari H-bridge pada kaki ke 2 & 3

dihubungkan ke motor 1, dan keluaran pada kaki ke 13 & 14 dihubungkan ke

motor 2. Kedua motor DC tersebut dipasang dibawah platfotm, yang kemudian

dihubungkan ke roda.

Gambar 48 Motor DC

4. 1. 2. Implementasi Perangkat Lunak

Dari hasil perancangan yang telah dilakukan, kemudian dilakukan implementasi

dari modul modul yang dibutuhkan ke dalam mikrokontroller. Implementasi

modul dan algoritma ini dituliskan ke dalam mikrokontroller menggunakan

bahasa C.

Page 4: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

54

Implementasi Modul Timer Untuk Pencuplikan.

Modul Timer 0 digunakan sebagai sebagai pewaktu periode pencuplikan data dari

sensor. Pengaturan timer 0 dapat diatur sesuai kebutuhan melalui sebuah register

bernama TCCR0 dan TCNT0

Gambar 49 Register TCCR0 dan TCNT0

Untuk medapatkan prescaler sebesar 1024 sehingga register pencacah TCNT0

akan naik setiap 1024 siklus clock, nilai CS00 dan CS02 haruslah set. Sehingga

kami memberikan nilai 1 pada CS02 dan CS01 sebagai berikut.

#define CS0 (1 << CS02) | (0 << CS01) | (1 << CS00)

Untuk dapat membuat timer dengan periode 20ms, harus ditentukan nilai awal

register TCNT0 yang akan bertambah hingga mengalami overflow. Dari hasil

perhitungan pada bab perancangan, dibutuhkan sebanyak 216 siklus sebelum

terjadi overflow. Sehingga nilai awal yang harus selalu diberikan ke TCNT0

adalah 256 - 216= 40 atau 0x28. Untuk itu dibuatlah sebuah variabel RELOADT0

yang akan mengisi nilai awal TCNT0 setiap memulai pencuplikan. #define RELOADT0 40

Implementasi Modul PWM Menggunakan Timer 1

Timer 1 ini akan diprogram berdasarkan kebutuhan, yaitu untuk keperluan PWM.

Pada skuter seimbang ini, kami menggunakan PWM berjenis Phase Correct 10 bit.

Untuk memilih mode tersebut harus dilakukan pengaturan pada register TCCR1A

dan register TCCR1B.

Page 5: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

55

Gambar 50 Register TCCR1A dan TCCR1B

Mode Phase Correct PWM 10 bit mengharuskan bit WGM13 dan WGM12 pada

register TCCR1B bernilai 0 sedangkan WGM11 dan WGM10 pada register

TCCR1A bernilai 1. Setelah pengaturan mode PWM, kami menginginkan

prescaler sebesar 1, maka pada register TCRR1B, bit CS12 dan CS11 bernilai 0

sedangkan CS10 bernilai 1. Setelah itu, pada register TCRR1A bit

COM1A1/COM1B1 diberi nilai 1 sedangkan COM1A0/COM1B0 diberi nilai 0

agar kita dapat menggunakan 2 pin OCRA dan OCRB dengan compare match.

Pada prosesnya nanti nilai pada TCNT1 akan dibandingkan dengan nilai pencacah

maksimum. Secara keseluruhan register TCCR1A dan TCCR1B dapat diatur

sebagai berikut. TCCR1A=0xA3;

TCCR1B=0x01;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

Implementasi Modul Komunikasi Serial

Pada perancangan, kita akan menggunakan baud prescale sebesar 5. Maka perlu

didefinisikan terlebihdahulu baudrate dan baudprescale yang digunakan. #define USART_BAUDRATE 115200

#define BAUD_PRESCALE 5

Page 6: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

56

Untuk pengaturan komunikasi serial dengan PC ini, pada AVR ATMega16 ada 3

buah register yang harus diatur yaitu UCSRA, UCSRB dan UCSRC

Gambar 51 Register UCSRA, USCRB dan USCRC

Pengaturan pertama pada register USCRA dilakukan dengan memberi nilai 1 pada

bit UDRE untuk mengindikasikan jika buffer pengirim siap untuk menerima data.

Setalah itu dilakukan pengaturan pada register UCSRB. Pada register ini, kami

memberi nilai 1 pada bit TXEN. Dengan memberi nilai pada bit ini maka USART

transmitter akan berstatus enable.

Pengaturan berikutnya adalah pada register UCSRC. Pertama tama, bit USREL

harus bernilai satu pada saat menulis USCRC. Kemudian karena kami memilih

mode asynchronous dan tidak ada partisi,dan dengan 1 bit stop, maka bit USMEL,

UPM0 UPM1 dan USBS dibiarkan bernilai 0. Setelah itu, dengan diinginkannya

pengiriman data sebesar 8 bit, maka konfigurasinya adalah bit UCSZ2 bernilai 0

sedangkan bit UCSZ1 dan UCSZ0 bernilai 1.

Selanjutnya adalah pengisian terhadap UBBRH dan UBRRL sesuai denga baud

prescaler yang diinginkan. UBBRH merupakan 4 most significant bit dari baud

rate prescaler, sediangkan UBBRL merupakan 8 least significant bit dari baud rate

prescaler. {

UCSRB = (1 << TXEN); // enable UART transmitter

Page 7: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

57

UCSRC = (1 << URSEL) | // select UCSRC

(3 << UCSZ0) | // 8 bit

(0 << UPM0) |

(0 << UPM1) | // no parity

(0 << USBS); // 1 stop bit

UBRRH = BAUD_PRESCALE >> 8;

UBRRL = BAUD_PRESCALE;

fdevopen(out, 0);

}

Pada PC, kami menggunakan program “Terminal” yang dapat dengan mudah

disesuaikan dengan sistem yang sudah disusun pada pengaturan USART pada

AVR ATMega16 di atas.

Gambar 52 Tampilan Perangkat Lunak Terminal

Page 8: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

58

Implementasi Pengendali Fuzzy

Pada pengendali fuzzy ini, pertama tama dibuat fungsi keanggotaanny terlebih

dahulu. Fungsi keanggotaan ini meliputi fungsi keanggotaan error, delta error.

Dengan memasukkan nilai error dan delta error ke fungsi keanggotaannya masing

masing, maka akan didapat nilai derajat keanggotaannya dengan fuzzifikasi. Pada

penerapannya di mikrokontroller, pembuatan fungsi keanggotaan dan fuzzifikasi

dilakukan secara bersamaan sebagai berikut.

Batas batas dari fungsi keanggotaan dibuat seperti matriks dengan menggunakan

array. int e_mem_funcs[7][3]={ {-20,-15,-8},

{-15,-8,-4},

{-8,-4,0},

{-4, 0, 4},

{ 0, 4, 8},

{4,8,15},

{ 8, 15, 20}

};

int de_mem_funcs[3][3]= {{-300,-150, 0},

{-150, 0, 150},

{ 0,150, 300},

};

int pwm_matriks[3][7]={ {403, 313, 153,0,-147,-307,-397},

{403, 310, 153,0,-153,-313,-403},

{397, 307, 147,0,-153,-313,-403},

};

Untuk medapatkan nilai derajat keanggotaan pada setiap fungsi keanggotaan,

maka dilakukan fuzzifikasi dengan memasukkan nilai error dan delta error ke

fungsi keanggotaan yang dibangun sebagai berikut for(i=0; i< 7; i++)

{

if(i==0)

{

if(e >= e_mem_funcs[i][0] && e <= e_mem_funcs[i][2])

Page 9: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

59

{

if(e < e_mem_funcs[i][1])

{

e_membership[i] = 1.00;

}

else

{

e_membership[i] = (float)(e_mem_funcs[i][2] - e) / (e_mem_funcs[i][2] -

e_mem_funcs[i][1]) ;

}

}

else

{

e_membership[i] = 0.00;

}

}

else if(i==6)

{

if(e >= e_mem_funcs[i][0] && e <= e_mem_funcs[i][2])

{

if(e < e_mem_funcs[i][1])

{

e_membership[i] = (float)(e - e_mem_funcs[i][0]) / (e_mem_funcs[i][1] -

e_mem_funcs[i][0]);

}

else

{

e_membership[i] = 1.00 ;

}

}

else

{

e_membership[i] = 0.00;

}

}

else

Page 10: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

60

{

if(e >= e_mem_funcs[i][0] && e <= e_mem_funcs[i][2])

{

if(e < e_mem_funcs[i][1])

{

e_membership[i] = (float)(e - e_mem_funcs[i][0]) / (e_mem_funcs[i][1] - e_mem_funcs[i][0]);

}

else

{

e_membership[i] = (float)(e_mem_funcs[i][2] - e) / (e_mem_funcs[i][2] - e_mem_funcs[i][1]) ;

}

}

else

{

e_membership[i] = 0.00;

}

}

Program diatas berguna untuk membuat fungsi keanggotaan untuk error seperti

yang telah digambarkan pada bab perancangan. Pada fungsi keanggotaan delta

error, dilakukan hal yang serupa, hanya saja pada delta error hanya ada 3 buah

fungsi keanggotaan.

Setelah didapat derajat keanggotaannya masing masing untuk setiap fungsi

keanggotaan, dilakukan inferensi fuzzy dan defuzzifikasi. Pada implementasi di

mikrokontroller kedua proses ini dilakukan dalam satu rangkaian.

Pada proses defuzzifikasi, penulis digunakan metoda weighted average yang

persamaannya sebagai berikut.

(4.1.1)

Dimana z adalah nilai PWM, w adalah hasil kali derajat keanggotaan error (e) dan

derajat keanggotaan delta error (de)

Pertama tama, dibuat dahulu fungsi untuk membuat persamaan berikut

Page 11: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

61

, , …………

, , …………

(4.1.2)

Dalam mikrokontroller, akan ditulis sebagai berikut }

total_e = 0.00;

for(i=0; i<7; i++)

{

total_e = total_e + e_membership[i];

}

total_de = 0.00;

for(i=0; i<3; i++)

{

total_de = total_de + de_membership[i];

}

for(i=0; i<7; i++)

{

e_membership[i] /= total_e;

}

for(i=0; i<3; i++)

{

de_membership[i] /= total_de;

}

Setelah itu, yang perlu dilakukan adalah mengalikan e_membership/total dengan

de_membership/total dan dengan nilai pwm sesuai dengan aturan fuzzynya seperti

pada program berikut.

for(i=0; i<3; i++)

{

last_de_mem = de_membership[i];

for(j=0; j<7; j++)

{

pwm_m[i][j] = pwm_matriks[i][j] * last_de_mem;

Page 12: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

62

}

}

total_pwm = 0.00;

for(i=0; i<7; i++)

{

last_e_mem = e_membership[i];

for(j=0; j<3; j++)

{

total_pwm += pwm_m[j][i] * last_e_mem;

}

}

pwm = (short)total_pwm;

Pada akhirnya, didapat nilai pwm yang akan digunakan untuk memanggil fungsi

maju dan mundur pada modul motor. Jika pwm > 0 maka fungsi yang dipanggil

adalah fungsi maju, dan jika pwm < 0, fungsi yang dipanggil adalah fungsi

mundur.

Implementasi Pengendali PID

Implementasi pengendali PID dalam bentuk bahasa C pada mikrokontroller ini

pada dasarnya adalah menggunakan persamaan PID digital yang telah dibahas

pada bab 2. Pertama tama yang perlu dilakukan adalah pendeklarasian nilai

konstanta P I dan D yang akan digunakan #define Kp 1900

#define Ki 200

#define Kd 100

Selanjutnya dibuat program yang dibangun menerima masukan berupa galat, dan

akan menyimpan nilai galat lama, galat lama 2, pwm lama, dan akan memberikan

keluaran berupa pwm (v). Nilai keluaran ini kemudian akan digunakan untuk

memanggil fungsi maju dan mundur pada modul motor. Apabila v < 0 maka akan

dipanggil fungsi maju, dan sebaliknya apabila v > 0 akan dipanggil fungsi

mundur.

Page 13: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

63

void PID (float galat)

{

// deklarasi variabel lokal

static float galat_lama;

static float galat_lama2;

static float v_lama;

//static float v;

v = v_lama + Kp*(galat - galat_lama) + Ki*(galat + galat_lama)/2 + Kd*(galat - 2*galat_lama +

galat_lama2);

//v = galat;

v_lama = v;

galat_lama2 = galat_lama;

galat_lama = galat;

printf("%i;", (int)v );

if (v < 0) //untuk galat positif

{

v = -v;

maju((unsigned int) v);

}

else //untuk galat negatif

{

mundur((unsigned int) v);

}

}

Implementasi Modul Pengendali Motor

Seperti yang telah dijelaskan sebelumnya, modul pengendali motor ini berfungsi

untuk menjalankan motor sesuai PWM dan arah yang diinginkan. Pertama tama,

untuk menjalankan 2 buah motor, digunakan 4 buat port C (port C0, C1, C2 dan

C3) untuk mengendalikan konfigurasi 8 buah trasistor pada H-bridge (4 untuk

masing masing motor), dan 2 port OCR yaitu prot D4 (OC1B) dan D5 (OC1A). DDRC |= ((1 << 0) | (1 << 1) |(1 << 2) |(1 << 3));

Page 14: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

64

DDRD |= ((1 << 4) | (1 << 5));

Setelah itu, dibuat fungsi untuk maju dan untuk mundur. Pada saat ingin bergerak

maju, maka port C0 dan C2 harus bernilai 1 sedangkan port C1 dan C3 bernilai 0.

void maju (unsigned int v) {

PORTC |= (1 << 0);

PORTC &= ~(1 << 1);

PORTC |= (1 << 2);

PORTC &= ~(1 << 3);

}

Sebaliknya, jika diinginkan pergerakan skuter mundur, maka port C0 dan C2

harus bernilai 0 dan port C1 sedangkan port C1 dan C3 bernilai 1.

void mundur (unsigned int v) {

PORTC &= ~(1 << 0);

PORTC |= (1 << 1);

PORTC &= ~(1 << 2);

PORTC |= (1 << 3);

}

Setelah itu, untuk pemberian nilai PWM pada port OCR, perlu dilakukan

penambahan nilai PWM deadband motor terhadap nilai PWM yang dikeluarkan

oleh pengendali. Dan dilakukan juga pembatasan nilai PWM agar tidak melebihi

PWM maksimum yaitu 1023. Program yang dibangun adalah sebagai berikut if ((v + 555) < 1024)

{

OCR1A = v+555;//roda kanan

OCR1B = v+515;//roda kiri

}

else

{

OCR1A = 1023;//roda kanan

OCR1B = 1023;//roda kiri

Fungsi terakhir adalah fungsi untuk mengunci roda atau rem. Dalam keadaan ini,

semua port dari C0 hingga C3 bernilai 1, dan nilai PWM yang diberikan adalah 0. void rem (void)

Page 15: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

65

{

PORTC |= (1 << 0);

PORTC |= (1 << 1);

PORTC |= (1 << 2);

PORTC |= (1 << 3);

OCR1A = 0;

OCR1B = 0;

}

4. 2. Pengujian

Setelah implementasi perangkat lunak maupun perangkat keras diselesaikan dan

menjadi sistem yang terintegrasi, maka dilakukan pengujian terhadap sistem ini.

Pengujian ini meliputi pengujian durasi program keseluruhan, pengujian nilai

deadband, pengujian dengan penggunaan pengendali logika fuzzy, dan pengujian

pada saat penggunaan pengedali PID.

4. 2. 1. Perhitungan Durasi Program

Pengujian pertama adalah pengujian durasi program. Pengujian ini dilakukan

untuk mengetahui berapa lama program pengendali berjalan dalam setiap lupnya.

Program ini harus berlangsung lebih cepat dari frekuensi pencuplikan masukan,

bila program berjalan lebih lambat, maka data yang dihasilkan tidak akan benar.

Dan jika waktu pencuplikan dan program ini dibuat terlalu lambat, maka

pengendali tidak bisa mengendalikan skuter secara real time. Pengujian lama

waktu program berjalan ini dilakukan dengan menggunakan timer 1 yang

dijalankan dengan prescaler 256. Dengan menggunakan kristal berfrekuensi

11059200, dan prescaler 256, didapat frekuensi clock sebesar

Dari hasil penghitungan, didapat lama waktu satu kali lup program dengan

menggunakan pengendali PID adalah selama 63 clock yang berarti

Page 16: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

66

Sedangkan lama waktu satu kali lup program dengan menggunakan pengendali

fuzzy adalah selama 159 clock yang berarti

Dari kedua program yang menggunakan pengendali PID maupun fuzzy, dapat

dilihat bahwa waktu yang dibutuhkan untuk menjalankan satu kali lup jauh lebih

kecil dari waktu pencuplikan yaitu 20ms sehingga kedua program pengendali

tersebut dapat digunakan.

4. 2. 2. Pengujian Deadband Motor

Setiap motor DC memiliki deadband yang berbeda-beda. Deadband motor

membuat hubungan antara PWM yang diberikan kepada motor dengan kecepatan

yang dihasilkan motor menjadi tidak linear karena ada saat dimana ketika PWM

bernilai kecil, motor belum bisa berputar. Hal ini sangat dihindari dalam

implementasi pada skuter seimbang. Pada saat keimiringan sudut skuter kecil,

pengendali akan memberikan nilai PWM yang kecil juga. Dengan adanya

deadband ini, nilai PWM yang kecil belum dapat memutar motor, sehingga pada

sudut kemiringan kecil, motor tidak berputar untuk dapat memberikan akselerasi

pada skuter seimbang dan motor akan terjatuh atau tidak terkendali dengan baik

pada sudut kecil.

Pengujian nilai deadband pada motor ini dilakukan dengan cara menambah nilai

PWM setiap selang waktu dan nilai tersebut dikirim melalui komunikasi serial ke

komputer sehingga dapat dipantau nilainya. Dari hasil pemantauan tersebut

didapat nilai PWM pada saat motor mulai berputar. Nilai deadband yang

didapatkan adalah

Deadband motor 1: 555

Deadband motor 2 :515

Nilai PWM deadband motor tersebut kemudian ditambahkan dengan nilai PWM

yang dikeluarkan oleh pengendali.

Page 17: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

67

4. 2. 3. Pengujian Penggunaan Pengendali Logika Fuzzy

Setelah dilakukan perancangan, dilakukan pengujian terhadap sistem yang telah

terintegrasi. Pada pengujian ini dilihat apakah pengendali logika fuzzy mampu

membuat skuter tetap seimbang sesusai dengan spesifikasi pada perancangan atau

tidak. Pengamatan ini dilakukan pada saat keadaan tanpa gangguan maupun

dengan diberikan gangguan. Pengujian ini dilakukan dengan menjalankan skuter

seimbang dan membiarkannya menyeimbangkan dirinya sendiri. Untuk

mempermudah pengamatan, dilakukan pengiriman data berupa sudut skuter dan

pwm yang dikeluarkan oleh pengendali menggunakan komunikasi serial ke

komputer. Data ini kemudian digambarkan dalam grafik hubungan sudut terhadap

waktu dan grafik hubugnan pwm terhadap waktu.

Berikut ini adalah hasil pengujian pengendali logika fuzzy ketika sudah

diimplementasikan pada skuter seimbang dan dijalankan.

Page 18: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

68

Gambar 53 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali logika fuzzy tanpa gangguan luar

Dari grafik diatas, dapat terlihat bahwa pengendali fuzzy telah mampu menjaga

keseimbangan skuter sesuai dengan spesifikasi yang diinginkan. Osilasi yang

terjadi pada skuter hanya berkisar antara sudut -1 derajat hingga 2 derajat saja.

Setelah itu, pengujian dilakukan dengan memberikan gangguan pada skuter

berupa gaya dorong yang mengakibatkan kemiringan sebesar mendekati 6 derajat

pada skuter. Hasilnya adalah sebagai berikut.

Page 19: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

69

Gambar 54 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali logika fuzzy dengan adanya gangguan luar

Dari grafik di atas, dapat dilihat dengan adanya pemberian gangguan pada skuter,

skuter masih dapat menjaga keseimbangannya sehingga tidak terjatuh. Skuter

mampu berdiri stabil dalam waktu sekitar 5 detik setelah diberikan gangguan.

Skuter ini dapat kembali ke posisi tegak dengan osilasi pada sudut -2 derajat

hingga sudut 2 derajat saja.

4. 2. 4. Pengujian Penggunaan Pengendali PID

Setelah dilakukan perancangan, dilakukan pengujian terhadap sistem yang telah

terintegrasi. Pada pengujian ini dilihat apakah pengendali PID mampu membuat

skuter tetap seimbang sesusai dengan spesifikasi pada perancangan atau tidak.

Pengamatan ini dilakukan pada saat keadaan tanpa gangguan maupun dengan

diberikan gangguan. Pengujian ini dilakukan dengan menjalankan skuter

seimbang dan membiarkannya menyeimbangkan dirinya sendiri. Untuk

mempermudah pengamatan, dilakukan pengiriman data berupa sudut skuter dan

pwm yang dikeluarkan oleh pengendali menggunakan komunikasi serial ke

komputer. Data ini kemudian digambarkan dalam grafik hubungan sudut terhadap

waktu dan grafik hubugnan pwm terhadap waktu. Pada pengujian pengendali PID

ini dilakukan 3 tahap, pertama tama, dilakukan pengujian terhadap penggunaan

pengendali proporsional saja. Kemudian pada pengendali ditambahkan konstanta

Page 20: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

70

konstanta derivatif pada pengendali. Pengujian ini dilakukan dengan tahap ini

degan tujuan melakukan penalaan terhadap konstanta PID agar didapat hasil

kendali yang paling optimal.

Menggunakan Konstanta Proporsional Sebesar 1900

Dengan menggunakan pengendali Proporsional sebesar 1900, dan tanpa adanya

gangguan dari luar, didapat hubungan sudut skuter terhadap waktu dan pwm

terhadap waktu sebagai berikut.

Gambar 55 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali proporsional tanpa gangguan luar

Page 21: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

71

Dari grafik diatas, dapat terlihat bahwa pengendali proporsional telah mampu

menjaga keseimbangan skuter sesuai dengan spesifikasi yang diinginkan. Osilasi

yang terjadi pada skuter hanya berkisar antara sudut -2 derajat hingga 2 derajat.

Setelah itu, pengujian dilakukan dengan memberikan gangguan pada skuter

berupa gaya dorong yang menyebabkan adanya sudut kemiringan sebesar 4.5 pada

skuter. Hasilnya adalah sebagai berikut.

Gambar 56 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali proporsional dengan adanya gangguan luar

Page 22: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

72

Dari grafik di atas, dapat dilihat dengan pemberian gangguan kemiringan sebesar

4,5 derajat, skuter kurang mampu menjaga keseimbangannya hal ini dapat dilihat

dari osilasi skuter yang berkisar antara -4 derajat hingga 4 derajat. Oleh karena itu,

diperlukan penambahan pengendali integral untuk menghilangkan kesalahan pada

keadaan tunak.

Menggunakan Konstanta Proporsional Sebesar 1900 dan Konstanta Integral

Sebesar 200

Dengan menggunakan pengendali Proporsional sebesar 1900 dan integral sebesar

200, dilakukan pengjuan tanpa adanya gangguan dari luar, didapat hubungan

sudut skuter terhadap waktu dan pwm terhadap waktu sebagai berikut.

Page 23: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

73

Gambar 57 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali proporsional plus integral tanpa gangguan luar

Dari grafik diatas, dapat terlihat bahwa pengendali proporsional plus integral

mampu menjaga keseimbangan skuter dengan leibih baik lagi. Osilasi yang terjadi

pada skuter pada keadan tunak banyak berkisar pada sudut derajat hingga -1

derajat, hanya terjadi beberapa kali keadaan dimana skuter melewati sudut 1

derajat ataupun -1 derajat

Setelah itu, pengujian dilakukan dengan memberikan gangguan pada skuter

berupa gaya dorong yang menyebabkan kemiringan sebesar 4.5 derajat pada

skuter. Hasil pengamatannya adalah sebagai berikut.

Page 24: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

74

Gambar 58 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali proporsional plus integral dengan adanya gangguan luar

Dari grafik di atas, dapat dilihat dengan pemberian gangguan kemiringan sebesar

4,5 derajat, skuter mampu mengembalikan skuter ke keadaan seimbangnya seperti

pada kedaan tidak adanya gangguan. Hal ini sesuai dengan fungsi pengendali

integral yang mampu menghilangkan kesalahan pada keadaan tunak. Osilasi

skuter antara 2 derajat hingga -2 derajat ini dikarenakan pada keadaan fisiknya,

skuter tetap tidak akan seimbang walaupun sudah berada di titik 0 derajat,

sehingga memang mustahil untuk membuat skuter beridam tanpa osilasi pada

Page 25: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

75

sudut 0 derajat. Hal lainnya adalah adanya celah pada sambungan gearbox pada

motor, sehingga putaran motor tidaklah terlalu halus.

Menggunakan Konstanta Proporsional Sebesar 1900, Konstanta Integral Sebesar

200 dan Konstanta Derivatif 100

Dengan menggunakan pengendali dengan konstanta Proporsional sebesar 1900,

konstanta integral sebesar 200, dan konstanta derivatif sebesar 100, dilakukan

pengjuan tanpa adanya gangguan dari luar, didapat hubungan sudut skuter

terhadap waktu dan pwm terhadap waktu sebagai berikut.

Gambar 59 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan

pengendali proporsional plus integral plus derivatif tanpa gangguan luar

Page 26: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

76

Dari grafik diatas, dapat terlihat bahwa pengendali proporsional plus integral dan

derivatif mampu menjaga keseimbangan skuter dengan leibih baik lagi. Osilasi

yang terjadi pada skuter pada keadan tunak secara umum hanya berkisar 1 derajat

hingga -1. Hal ini disebabkan oleh adanya pengendali derivatif yang

memperhitungkan turunan dari error yang terjadi atau kecenderungan error yang

akan terjadi. Ketika error sudut sekarang lebih kecil dari error sudut sebelumnya,

maka kecenderungan error adalah mengecil dan pengendali derivatif akan

mengurangi aksi kendali proporsional, dan begitupula sebaliknya, ketika error

sudut cenderung membesar dan akan menambah aksi kendali proporsional.

Dengan demikian, osilasi akan lebih teredam dan skuter menjadi lebih stabil.

Setelah itu, pengujian dilakukan dengan memberikan gangguan pada skuter

berupa gaya dorongyang mengakibatkan kemiringan sebesar 4.5 derajat pada

skuter. Hasilnya adalah sebagai berikut.

Page 27: BAB IV IMPLEMENTASI DAN PENGUJIAN -  · PDF fileBAB IV IMPLEMENTASI DAN PENGUJIAN . 4. ... yang terpisah dengan catu daya untuk motor. Pada desain awal, ... Fuzzy Pada pengendali

77

Gambar 60 Grafik sudut skuter terhadap waktu dan PWM terhadap waktu dengan pengendali proporsional plus integral plus derivatif dengan adanya gangguan luar

Dari grafik di atas, dapat dilihat dengan pemberian gangguan kemiringan sebesar

4,5 derajat, skuter mampu mengembalikan skuter ke keadaan seimbangnya seperti

pada kedaan tidak adanya gangguan. Skuter mampu kembali ke keadaan seimbang

dengan waktu sekitar 2 detik saja. Skuter dapat berdiri seimbang dan berosilasi

pada sudut -1 derajat hingga 1 derajat. Hasil ini lebih baik dari pengendali yang

menggunakan konstanta proporsional saja maupun proporsional dan integral.

Hasil penalaan menunjukkan bahwa pengendali PID mampu menjaga

keseimbangan skuter.