• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN"

Copied!
27
0
0

Teks penuh

(1)

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.

(2)

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).

(3)

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.

(4)

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.

(5)

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

(6)

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.

{

(7)

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.

(8)

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)

{

(9)

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

(10)

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)

(11)

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++)

{

(12)

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.

(13)

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).

(14)

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.

(15)

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

(16)

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.

(17)

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.

(18)

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.

(19)

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

(20)

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

(21)

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

(22)

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.

(23)

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.

(24)

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

(25)

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

(26)

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.

(27)

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.

Gambar

Gambar 45  Prototype Skuter Seimbang
Gambar 46  Sensor Akselerometer dan Giroskop
Gambar 47  Mikrokontroller, Baterai 24 volt dan H-Bridge
Gambar 49  Register TCCR0 dan TCNT0
+7

Referensi

Dokumen terkait

- Penghapusan cukai atau tarif dalam kalangan negara anggota membolehkan keluaran tempatan dijual kepada pengguna pada harga yang lebih murah. - Persaingan sihat wujud

Metode Half Slab Precast dapat juga disebut dengan pelat lantai beton bertulang yang pengerjaannya dengan cara separuh precst dan separuh pelat lagi dibuat

Berdasarkan uraian di atas ternyata teknologi kloning akan terus berkembang dalam penelitiannya, bahkan Dr.Pratiwi Sudarmono menyebut abad 21 sebagai era biologi, maka

Hasil penelitian menunjukkan bahwa penyuluhan pencegahan karhutla melalui komunikasi langsung yang menjawab selalu, sering dan sangat sering totalnya mencapai

Puji syukur penulis panjatkan kehadirat Allah SWT atas segala anugrah dan nikmat yang telah dilimpahkan-Nya kepada kita semua, serta berkat rahmat- Nya sehingga penulis

Penelitian dengan judul” Motivasi belajar siswa pada mata pelajaran Fiqih ini bertujuan untuk mengetahui secara signifikan sejauh mana motivasi belajar siswa pada mata

Hasil dari penelitian tersebut akan diolah dengan menggunakan Statistical Package for the Social Sciences (SPSS) 23.0 diketahui bahwa persentase hasil tingkat kebugaran jasmani

Hasil penelitian ini bagi nasabah diharapkan dapat menambah pengetahuan nasabah akan citra perusahaan, kualitas pelayanan, kepuasan nasabah, suku bunga, lokasi dan