• Tidak ada hasil yang ditemukan

BAB III METODE PENELITIAN. informasi, konsep-konsep yang bersifat teoretis dari buku, bahan-bahan kuliah,

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III METODE PENELITIAN. informasi, konsep-konsep yang bersifat teoretis dari buku, bahan-bahan kuliah,"

Copied!
22
0
0

Teks penuh

(1)

39

Metode penelitian yang digunakan pada pembuatan perangkat keras dan perangkat lunak adalah studi kepustakaan dan penelitian laboratorium. Dengan cara ini penulis berusaha untuk mendapatkan dan mengumpulkan data-data, informasi, konsep-konsep yang bersifat teoretis dari buku, bahan-bahan kuliah, dan referensi dari internet yang berkaitan dengan permasalahan.

Penelitian laboratorium dilakukan dengan perancangan perangkat keras dan perangkat lunak, kemudian melakukan pengujian terhadap perangkat keras dan perangkat lunak. Langkah berikutnya adalah mengambil atau mengumpulkan data hasil percobaan. Langkah terakhir adalah melakukan evaluasi dan analisis terhadap hasil data yang dikumpulkan.

Diagram blok yang digunakan dalam sistem dengan menggunakan kendali PID dan fuzzy untuk optimalisasi kecepatan mobile robot menggunakan komunikasi SPI (Serial Peripheral Interface), dapat dilihat pada Gambar 3.1 :

STIKOM

(2)

Input : jarak dan waktu Motor kanan Motor kiri Minimum sistem slave Proses PID Minimum sistem slave Proses PID Minimum sistem master Proses Fuzzy Feedback kecepatan Feedback kecepatan spi spi Feedback jarak Sensor jarak

Gambar 3.1 Diagram blok sistem keseluruhan

Dari blok diagram pada Gambar 3.1 dapat dilihat porsi untuk masing-masing sistem kendali PID dan fuzzy. Pada sistem ini memiliki input berupa jarak dan waktu yang kemudian akan menjadi input fuzzy yang diproses oleh microcontroller ATmega16 sebagai Master. Metode fuzzy yang digunakan adalah metode Sugeno. Setelah proses fuzzy selesai dilakukan oleh microcontroller Master, maka microcontroller Master akan mengeluarkan output berupa kecepatan (dalam satuan rpm) yang kemudian akan dikirim ke dua buah microcontroller ATmega8 sebagai Slave. Microcontroller Slave pada tugas akhir

STIKOM

(3)

kali ini berfungsi sebagai pengontrol motor kanan dan motor kiri yang satu sama lain tidak berkomunikasi secara langsung.

Pada microcontroller Slave dilakukan proses kendali PID yang digunakan untuk mengontrol motor kanan dan motor kiri. Di mana proses PID mendapatkan input berasal dari microcontroller Master yang mengirimkan kecepatan yang selalu berubah-ubah sesuai dengan output fuzzy yang dihasilkan.

3.1 Perancangan Perangkat Keras 3.1.1 Perancangan Mekanik Robot

Robot yang digunakan penulis terdiri atas 2 buah roda disertai motor yang terletak disisi kiri dan kanan bagian base robot digunakan untuk menjalankan robot. Berikut arsitektur robot secara detail adalah sebagai berikut.

Ukuran dimensi

Ukuran Robot : 500 mm x 600 mm x 100 mm

Struktur Material

Bahan Material yang digunakan : a. Bagian Rangka

1. Aluminium Profile. 2. Aluminium Sheet. 3. Bearing.

4. Mur dan Baut.

b. Bagian dari Penggerak Robot : 1. Motor DC 12 Volt.

2. Aluminium.

STIKOM

(4)

3. Roda dari karet Silikon. 4. Roda Bebas.

5. Belt. 6. Gear.

Berikut arsitektur robot secara detail adalah sebagai berikut :

Gambar 3.2 Desain robot keseluruhan

3.1.2 Perancangan Minimum System

Rangkaian minimum system dibuat untuk mendukung kerja dari microchip ATmega dimana microchip tidak bisa berdiri sendiri melainkan harus ada rangkaian dan komponen pendukung seperti halnya rangakaian catu daya, kristal dan lain sebagainya yang biasanya disebut minimum system.

STIKOM

(5)

Microchip berfungsi sebagai otak dalam mengolah semua instruksi baik input maupun output seperti halnya pemroses data input fuzzy maupun PID yang kemudian menghasilkan output yang digunakan untuk menjalankan motor.

Minimum system yang dirancang penulis dalam tugas akhir kali ini menggunakan minimum system dengan komunikasi SPI (Serial Peripheral Interface) yang terdiri dari satu buah microcontroller ATmega16 sebagai microcontroller Master dan dua buah ATmega8 sebagai microcontroller Slave. Dalam komunikasi SPI terdapat satu Minimum system sebagai Master dan dua minimum system sebagai Slave.

Pada rangkaian minimum system ini penulis memberikan pin VCC masukan tegangan operasi berkisar antara 4,5 Volt sampai dengan 5 Volt. pin reset berfungsi untuk masukan reset program secara otomatis atau manual. Sedangkan pin MOSI (Master Output Slave Input), MISO (Master Input Slave Output), dan SCK (Signal Clock) digunakan untuk keperluan pemrograman microcontroller dan sebagai komunikasi antara Master dan Slave (komunikasi SPI), sedangkan pin SS (Slave Select) digunakan oleh Master sebagai selektor antara Slave 1 dan slave 2. Untuk melakukan proses downloading program dari komputer ke microcontroller harus dilakukan secara terpisah antara Master dan Slave.

STIKOM

(6)

Minimum sistem master (Proses fuzzy) Minimum sistem slave (proses PID) Minimum sistem slave (proses PID) SPI SPI Driver motor Driver motor Motor DC Motor DC Rotary encoder Rotary encoder Rotary encoder

Gambar 3.3 Diagram blok rancangan Minimum system keseluruhan

A. Minimum System Master

Gambar 3.2 Rangkaian skematik minimum system Master cap 100u ss ATMega16 1 2 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 20 21 10 11 31 33 34 35 36 37 38 39 40 22 23 24 25 26 27 28 29 30 32 PB0/(XCK/T0) PB1/(T1) PB2/(INT2/AIN0) PB3/(OC0/AIN1) PB4/(SS) PB5/(MOSI) PB6/(MISO) PB7/(SCK) RESET XTAL2 XTAL1 PD0/(RXD) PD1/(TXD) PD2/(INT0) PD3/(INT1) PD4/(OC1B) PD5/(OC1A) PD6/(ICP) PD7/(OC2) VC C GN D GN D PA7/(ADC7) PA6/(ADC6) PA5/(ADC5) PA4/(ADC4) PA3/(ADC3) PA2/(ADC2) PA1/(ADC1) PA0/(ADC0) PC0/(SCL) PC1/(SDA) PC2/(TCK) PC3/(TMS) PC4/(TDO) PC5/(TDI) PC6/(TOSC1) PC7/(TOSC2) AVCC AREF cap 10uF/16v R 330 reset cry stal 11.0952.000 ss1 5v

<Doc> <Rev Code>

<Title>

A

1 1

Saturday , August 11, 2012 Title

Size Document Number Rev

Date: Sheet of DIODE 5v T1 M pus hbut ton 5v mosi f use 1 2 sck R 10k cap 30pf reset LED R 100 2200uF/25v miso 12v regulator LM7805 1 2 3 VI GN D VO 12v 470uf /16v cap 30pf sumber tegangan 12v 1 2 5 V

STIKOM

SURABAYA

(7)

Minimum system Master menggunakan microcontroller ATmega16 yang mempunyai 40 pin I/O dan salah satunya terdapat fasilitas untuk berkomunikasi antar microcontroller yaitu komunikasi SPI. Dalam komunikasi SPI minimum system Master merupakan salah satu komponen penting, dimana dalam tugas akhir ini Minimum system Master digunakan sebagai pemroses fuzzy yang mempunyai input berupa jarak dan waktu seperti yang telah digambarkan pada blok diagram dan akan menghasilkan output berupa kecepatan yang akan dikirimkan ke minimum system Slave. Tabel di bawah ini merupakan pin I/O yang digunakan penulis dalam pembuatan tugas akhir pada minimum system Master.

Tabel 3.1 Pin I/O Minimum system Master

Pin I/O Fungsi

Vcc Power 5v

Gnd Ground

PA0-PA7 LCD

PB2 Sebagai slave select (selektor) ke microcontrollerkontroler slave 1

PD2 Sebagai slave select (selektor) ke microcontrollerkontroler slave 2

T1/PB1 Sebagai counter 16 bit nilai jarak dari rotary encoder Mosi/PB5 Master out, slave in (digunakan dalam komunikasi SPI) Miso/PB6 Master in, salve out (digunakan dalam komunikasi SPI) Sck/PB7 Serial Clock (digunakan dalam komunikasi SPI)

Reset Mereset program

PC0-PC7 Digunakan sebagai keypad

STIKOM

(8)

B. Minimum System Slave

Gambar 3.3 Rangkaian skematik Minimum system slave

Pada Gambar 3.3 merupakan rangkaian skematik minimum system slave, minimum system Slave disini menggunakan microcontroller ATmega8 yang mempunyai 28 pin I/O dan salah satunya terdapat fasilitas untuk berkomunikasi antar microcontroller yaitu komunikasi SPI. Dalam komunikasi SPI minimum system Slave merupakan salah satu komponen penting, dimana dalam tugas akhir ini Minimum system Slave digunakan sebagai pemroses kendali PID yang mempunyai input berupa kecepatan yang berasal dari minimum system Master dan menghasilkan output berupa PWM yang akan digunakan untuk mengendalikan motor DC. Tabel di bawah ini merupakan pin I/O yang digunakan penulis dalam pembuatan tugas akhir pada minimum system Slave.

miso LED 12v pu s hb ut ton 100 reset 12v Cap 2200uF/25v pwm1

<Doc> <Rev Code>

<Title>

A

1 1

Tuesday , August 14, 2012 Title

Size Document Number Rev

Date: Sheet of cap 30 pF R 10k sck DIODE reset IC4 ATmega8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 PC6 (RESET) PD0 (RxD) PD1 (TxD) PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) VCC GND PB6 (XT1/TOSC1) PB7 (XT2/TOSC2) PD5 (T1) PD6 (AIN0) PD7 (AIN1) PB0 (ICP) (OC1A) PB1 (SS/OC1B) PB2 (OC2/MOSI) PB3 (MISO) PB4 (SCK) PB5 AVCC AREF AGND (ADC0) PC0 (ADC1) PC1 (ADC2) PC2 (ADC3) PC3 (SDA/ADC4) PC4 (SCL/ADC5) PC5 5v Cap 470uf /16v miso Regulator LM7805 1 2 3 VI GN D VO mosi cry stal 11.0592 Mhz 5v sck cap 100u reset sumber tegangan 12V 1 2 konektor f use 1 2 5v 5 V R 330 T0 S1 5v downloader 1 2 3 4 5 6 mosi ss Cap 10uF/16v dir1 dir2 cap 30 pF

STIKOM

SURABAYA

(9)

Tabel 3.2 Pin I/O Minimum system slave

Pin I/O Fungsi

Vcc Power 5v

Gnd Ground

PB1/OR1A Sebagai output pwm 8 bit atau 10 bit

T0/PC4 Sebagai counter 8 bit nilai rpm dari rotary encoder Mosi/PB3 Master out, slave in (digunakan dalam komunikasi SPI) Miso/PB4 Master in, salve out (digunakan dalam komunikasi SPI) Sck/PB5 Serial clock (digunakan dalam komunikasi SPI)

Reset Mereset program

PB2/SS Sebagai Slave select dari microcontrollerkontroler Master

3.1.3 Perancangan Driver Motor L298

Driver motor merupakan salah satu komponen terpenting dalam pengerjaan tugas akhir kali ini, di mana driver motor digunakan sebagai pengendali motor DC. Dalam konteks tugas akhir kali ini driver motor yang digunakan penulis adalah driver motor L298.

Driver motor L298 diparalel agar mendapatkan arus yang besar untuk menjalankan motor DC. Driver motor L298 mempunyai dua channel output motor, dalam satu channel mempunyai arus sebesar 2A, sedangkan untuk menjalankan motor DC yang ada pada robot, penulis membutuhkan arus yang lebih besar guna menstabilkan motor pada robot. Maka solusi yang tepat adalah memparalel dua channel output driver motor tersebut agar menjadi satu untuk mendapatkan arus sebesar 4A. Berikut gambar rangkaian driver motor yang telah diparalel.

STIKOM

(10)

Gambar 3.4 Rangkaian driver motor L298

3.1.4 Program kendali Fuzzy

Program kendali fuzzy terdiri atas fuzzification, evaluasi aturan, mekanisme pengambilan keputusan metode Sugeno. Keluaran pada proses mekanisme pengambilan keputusan metode Sugeno merupakan hasil dari proses kendali fuzzy secara keseluruhan untuk mendapatkan nilai tegasnya yaitu sinyal kontrol (rpm). Blok diagram program kendali fuzzy diperlihatkan pada Gambar 3.9. miso LED 12v pu s hb ut ton 100 reset 12v Cap 2200uF/25v pwm1

<Doc> <Rev Code>

<Title>

A

1 1

Tuesday , August 14, 2012 Title

Size Document Number Rev

Date: Sheet of cap 30 pF R 10k sck DIODE reset IC4 ATmega8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 PC6 (RESET) PD0 (RxD) PD1 (TxD) PD2 (INT0) PD3 (INT1) PD4 (XCK/T0) VCC GND PB6 (XT1/TOSC1) PB7 (XT2/TOSC2) PD5 (T1) PD6 (AIN0) PD7 (AIN1) PB0 (ICP) (OC1A) PB1 (SS/OC1B) PB2 (OC2/MOSI) PB3 (MISO) PB4 (SCK) PB5 AVCC AREF AGND (ADC0) PC0 (ADC1) PC1 (ADC2) PC2 (ADC3) PC3 (SDA/ADC4) PC4 (SCL/ADC5) PC5 5v Cap 470uf /16v miso Regulator LM7805 1 2 3 VI GN D VO mosi cry stal 11.0592 Mhz 5v sck cap 100u reset sumber tegangan 12V 1 2 konektor f use 1 2 5v 5 V R 330 T0 S1 5v downloader 1 2 3 4 5 6 mosi ss Cap 10uF/16v dir1 dir2 cap 30 pF

STIKOM

SURABAYA

(11)

Gambar 3.5 Flowchart Logika Fuzzy

STIKOM

(12)

Pada gambar 3.5 dapat dijelaskan sebagai berikut :

1. Input fuzzy diperoleh dari penekanan keypad berupa nilai jarak dan waktu. Adapaun program penekanan keypad sebagai berikut.

unsigned int tekan_keypad(unsigned char tanda) {

unsigned int itung = 0,x = 6; //Deklarasi variabel unsigned int hasil;

unsigned char buffer;

unsigned char temp_hasil[3],temp_hasil1[5]; while(1){

buffer = '-';

colom1 = 1; //output keypad colom2 = 0; //output keypad colom3 = 1; //output keypad colom4 = 1; //output keypad

if (!row1) {buffer = '#',waiting();} //input keypad else if (!row2) {buffer = '9',waiting();}//input keypad else if (!row3) {buffer = '6',waiting();}//input keypad else if (!row4) {buffer = '3',waiting();}//input keypad delay_ms(50);

colom1 = 1; colom2 = 1; colom3 = 0; colom4 = 1;

if (!row1) {buffer = '0',waiting();} else if (!row2) {buffer = '8',waiting();} else if (!row3) {buffer = '5',waiting();} else if (!row4) {buffer = '2',waiting();} delay_ms(50);

colom1 = 1; colom2 = 1; colom3 = 1; colom4 = 0;

if (!row1) {buffer = '*',waiting();} else if (!row2) {buffer = '7',waiting();} else if (!row3) {buffer = '4',waiting();} else if (!row4) {buffer = '1',waiting();} if(tanda == 0) { lcd_gotoxy(x,0); lcd_putchar('_'); } if (tanda == 1){ Lcd_gotoxy(x,1); Lcd_putchar('_'); }

if (buffer == '#')goto exit; //keluar dari fungsi tekan //keypad if (buffer != '-'){ if (tanda == 0 ){ temp_hasil[itung++] = buffer; lcd_gotoxy(x++,0); lcd_putchar(buffer);

STIKOM

SURABAYA

(13)

} else if(tanda == 1) { temp_hasil1[itung++] = buffer; lcd_gotoxy(x++,1); lcd_putchar(buffer); } else{ temp_hasil[itung++] = buffer; } } } exit: lcd_gotoxy(x,0); lcd_putchar(' '); if(tanda == 1) { hasil = atoi(temp_hasil1); } else { hasil = atoi(temp_hasil); } return hasil; }

2. Fuzzification adalah proses pemetaan input crisp ke dalam himpunan-himpunan fuzzy dalam bentuk fungsi keanggotaan. Tujuan dari fuzzification adalah untuk mendapatkan derajat keanggotaan dari hasil pemetaan input crisp kedalam fungsi keanggotaan yang bersesuaian. Derajat keanggotaan bernilai antara 0 dan 1. Tahapan awal proses fuzzification adalah menentukan parameter-parameter fungsi keanggotaan pada setiap himpunan fuzzy masukan. Pada pemrograman fuzzification ini digunakan parameter fungsi keanggotaan masukan berupa nilai jarak dan nilai waktu. Gambar 3.6 dan Gambar 3.7 merupakan parameter fungsi keanggotaan jarak dan waktu.

Gambar 3.6 Fungsi keanggotaan jarak

STIKOM

(14)

Gambar 3.7 Fungsi keanggotaan waktu

Pada Gambar 3.6 dan 3.7 adalah fungsi keanggotaan dari jarak dan waktu yang merupakan suatu variabel linguistic. Nilai linguistic S (jarak) = {Habis, Dekat, Sedang, Jauh) dan T (waktu) = {Selesai, Habis, Sedang, Lama}, dimana nilai semesta pembicaraanya terletak antara -4 sampai 20. Distribusi fungsi keanggotaannya adalah fungsi segitiga dan fungsi trapesoid. Fungsi trapesoid mempunyai empat parameter = [a, b, c, d], dimana a, b, c dan d adalah proyeksi titik-titik sudut trapesium pada sumbu mendatar, contohnya pada fungsi trapesoid keanggotaan sedang jarak terdapat empat parameter nilai yaitu [4, 8, 12, 16]. Penggunaan rumus fungsi segitiga dan trapesoid sama dibedakan hanya parameter segitiga b dan c berhimpit sehingga dalam fungsi segitiga nilai b dan c bernilai sama. Untuk mencari nilai bobot dari derajat keanggotaan masing-masing fungsi menggunakan rumus trapesoid yaitu :

( ) ( (

) )

(3.1)

Keterangan :

1. u(x) adalah nilai derajat keanggotaan 2. x adalah nilai input crisp atau nilai tegas

STIKOM

(15)

3. a, b, c, d merupakan parameter nilai dari fungsi trapesoid

Sedangkan realisasi proses memperoleh derajat keanggotaan dari masing– masing fungsi keanggotaan adalah sebagai berikut.

/*variable array dk[0] sampai dk[3] merupakan nilai derajat keanggotaan dari jarak sedangkan dk[4] sampai dk[7] merupakan nilai derajat keanggotaan dari waktu

Untuk nilai parameter fungsi keanggotaan jarak dikalikan 100 karena sensor membacanya dalam centimeter

*/ dk[0] = derajat_keanggotaan(-900,-800,0,100,s_jarak); dk[1] = derajat_keanggotaan(0,400,400,800,s_jarak); dk[2] = derajat_keanggotaan(400,800,1200,1600,s_jarak); dk[3] = derajat_keanggotaan(1200,1600,3000,3400,s_jarak); dk[4] = derajat_keanggotaan(-20,-16,0,1,t_waktu); dk[5] = derajat_keanggotaan(0,4,4,8,t_waktu); dk[6] = derajat_keanggotaan(4,8,12,16,t_waktu); dk[7] = derajat_keanggotaan(12,16,30,34,t_waktu);

/*fungsi dari program yang digunakan untuk memperoleh nilai derajat keanggotaan */

float derajat_keanggotaan (float a,float b,float c,float d,float input) { float m1,m2,m3,m4,m5,m6,m7; m1 = b-a; m7 = d-c; if (m1!=0){m2 = (input-a)/(b-a);} else {m2=0;} if (m7!=0){m3 = (d-input)/(d-c);} else {m3=0;} m4 = fmin(m2,1); m5 = fmin(m4,m3); m6 = fmax(m5,0); return m6; }

3. Rule set atau evaluasi aturan adalah proses mengevaluasi derajat keanggotaan tiap-tiap fungsi keanggotaan himpunan fuzzy masukan ke dalam basis aturan yang telah ditetapkan. Tujuan dari evaluasi aturan ini adalah menentukan derajat keanggotaan dari keluaran fuzzy. Sebelum melakukan evaluasi aturan terlebih dahulu ditetapkan basis aturan. Basis aturan merupakan keseluruhan aturan dari kombinasi dua masukan yang mungkin. Secara lengkap, jumlah kombinasi yang mungkin dari dua himpunan fuzzy masukan dengan

masing-STIKOM

(16)

masing empat fungsi keanggotaan sehingga jumlah aturannya adalah enambelas aturan. Basis aturan yang dibuat berdasarkan tingkah laku plant yang diinginkan. Pada bentuk yang lebih sederhana, sembilan aturan kendali fuzzy dapat dilihat pada tabel 3.1

Tabel 3.1 Basis aturan kendali fuzzy Jarak

Waktu

Selesai Dekat Sedang Jauh

Selesai Berhenti Berhenti Berhenti Berhenti

Habis Berhenti Lambat Sedang Cepat

Sedang Berhenti Lambat Sedang Cepat

Lama Berhenti Lambat Lambat Lambat

Berhenti, Lambat, Sedang, Cepat merupakan konstanta konsekuen dari anteseden dan masing-masing konstanta memiliki nilai yaitu Berhenti = 0, Lambat = 500, Sedang = 850, Cepat = 1000.

Setelah proses fuzzification dieksekusi, dilakukan proses agregasi dengan mengambil nilai maksimal dari masing–masing fungsi keanggotaan variable keluaran. Realisasi proses evaluasi aturan dalam bentuk program adalah sebagai berikut.

/*mencari nilai korelasi AND antara fungsi keanggotaan jarak dan waktu*/

nilai_penyebut = k = 0;for (i = 0; i < 4; i++) {

for (j = 4; j < 8; j++) {

u[k] = rule_set(dk[i],dk[j]);

nilai_penyebut = nilai_penyebut + u[k++]; }

}k=0;

float rule_set(float a,float b) {

float nilai;

nilai = fmin(a,b);

STIKOM

(17)

return nilai; }

4. Defuzzification adalah kebalikan dari proses fuzzification, yaitu mengubah himpunan Fuzzy keluaran menjadi keluaran tegas (crisp). Pengubahan ini diperlukan karena konstanta kendali PID hanya mengenal nilai tegas sebagai variable sinyal kontrol. Perancangan ini, menggunakan sebuah himpunan fuzzy keluaran dengan fungsi keanggotaannya berupa singleton yaitu fungsi keanggotaan keluaran sinyal control dapat dilihat pada Gambar 3.8

Gambar 3.8 Fungsi keanggotaan keluaran sinyal control

Hasil keluaran crisp output akan dikirim ke Slave dengan komunikasi SPI sebagai sinyal kontrol PID. Realisasi proses pengambilan keputusan metode sugeno menjadi bentuk crisp output dalam bentuk program adalah sebagai berikut :

u[0] = u[0] * berhenti; u[1] = u[1] * berhenti; u[2] = u[2] * berhenti; u[3] = u[3] * berhenti; u[4] = u[4] * berhenti; u[5] = u[5] * lambat; u[6] = u[6] * lambat; u[7] = u[7] * lambat; u[8] = u[8] * berhenti; u[9] = u[9] * sedang; u[10] = u[10] * sedang;

STIKOM

(18)

u[11] = u[11] * lambat; u[12] = u[12] * berhenti; u[13] = u[13] * cepat; u[14] = u[14] * cepat; u[15] = u[15] * lambat; nilai_pembilang = 0;

for (i=0;i < 16; i++) nilai_pembilang = nilai_pembilang + u[i];

if(nilai_penyebut!=0)RPMdata = nilai_pembilang/nilai_penyebut; else RPMdata = 0;

3.1.5 Kontroler PID (Proportional Integral Derivative)

Dalam pengontrolan PID dapat dinyatakan dengan persamaan differensial sebagai berikut :

( )

* ( )

∫ ( )

( )

+

(3.2)

Dimana e(t) = r(t) – c(t), r(t) adalah setpoint, c(t) adalah variable proses dan m(t) adalah variable manipulasi. Dan untuk mengimplementasikan kontrol PID dengan perangkat digital, maka haus dilakukan konversi dari bentuk kontinu ke bentuk diskrit. Dengan melihat bahwa :

( )

∫ ( ) ∑

(3.3)

Maka persamaan diatas menjadi persamaan PID diskrit :

( )

*

(

)

+

(3.4)

Dimana m(n) menyatakan nilai m pada suatu interval n∆t, dengan n bilangan bulat. Dengan memperkenalkan parameter :

(

)

(3.5)

(

)

(3.6)

STIKOM

(19)

Dimana Ts = ∆t = waktu sampling dari input, maka persamaan PID diskrit di atas dapat dinyatakan dalam sebuah algoritma perumusan sebagai berikut :

(3.7)

( )

(

)

(3.8)

Dimana Sn = jumlah seluruh nilai error pada interval 0 sampai nTs

Pada desain tugas akhir kali ini kontrol PID mendapat input yang berasal dari metode fuzzy yang sebelumnya melakukan proses perhitungan fuzzification yang menghasilkan output berupa kecepatan (Rpm). Gambar 3.9 merupakan formula kendali kontrol PID yang digambarkan melalui sebuah flowchart adalah sebagai berikut :

STIKOM

(20)

Start Error = sp - pv P = kp*error Sn = Sn_lm + error Over flow Y Sn = 1023 N I = ki*Sn

D_error = error – error_lm

Over flow Y D_error = 1023

N D = kd*D_error PID = P + I + D error_lm = error pwm = pwm + PID Input : sp=output fuzzy Inisialisasi : kp,ki,kd Sn < 0 Sn = 0 Y N D_error < 0 D_error = 0 N Y Sn_lm = Sn

Gambar 3.9 Flowchart Kontrol PID

STIKOM

(21)

Dari program flowchart di atas dapat dilihat bahwa input kontrol PID berasal dari output fuzzy berupa kecepatan yang kemudian diolah melalui perumusan kontrol PID.

Pada kontrol PID terdapat feedback atau yang disebut dengan PV (present value) dari motor DC yang telah diolah oleh sensor rotary encoder yang akan digunakan sebagai perhitungan kontrol PID. Berikut merupakan cuplikan program pengambilan feedback oleh sensor optocoupler :

Pv = 0;

delay_ms(100); //time sampling data pv

pv = TCNT0*10; //rumus perhitungan rps dimana 10

//didapatkan dari jumlah time sampling //dikali 10 agar mendapatkan waktu 1 //detik.

pv = (pv/55)*60; //rumus perhitungan rpm

Berikut merupakan cuplikan program kontrol P, kontrol I, dan kontrol D sebagai berikut :

1. Kontrol P

kp = 0.5; //nilai kp didapatkan dari trial error

error = sp - pv; //sp didapatkan dari inputan dari fuzzy p = kp*error;

2. Kontrol I

Ki = 0.00001; //nilai ki didaptkan dari trial error

sn = sn_lm + error;//sn adalah jumlah keselutuhan dari error if (sn > 1023) { sn = 1023; } else if (sn < 0) { sn = 0; } pi = ki*sn; 3. Kontrol D

kd = 0.0001; //nilai kd didapatkan dari trial error

delta_e = error - error_lm; if (delta_e > 1023)

STIKOM

(22)

{ delta_e = 1023; } else if (delta_e < 0) { delta_e = 0; } d = kd*delta_e; 4. Kontrol PID pid = (kp*error)+(ki*sn)+(kd*delta_e); pwm = pwm_lm + pid; if (pwm > 1023) { pwm = 1023; } else if (pwm < 0) {pwm = 0;}

STIKOM

SURABAYA

Gambar

Gambar 3.1 Diagram blok sistem keseluruhan
Gambar 3.2 Desain robot keseluruhan
Gambar 3.3 Diagram blok rancangan Minimum system keseluruhan
Tabel 3.1 Pin I/O Minimum system Master
+7

Referensi

Dokumen terkait

/ksternal 8nternal Peluang (Opportunities) &lt;alan menuju 'esa abanio dari #anjarbaru mudah dilalui 'ekat dengan kota #anjarbaru, %artapura dan #anjarbaru Salah satu tempat

  Pada Agustus 2016, jumlah angkatan kerja sebesar 125,44 juta orang atau naik sebanyak 3,06 juta orang dibandingkan periode sama tahun sebelumnya..   Hampir semua sektor

Kata syariah dalam menurut Bank Indonesia adalah aturan perjanjian berdasarkan kegiatan pihak penabung dan pihak penyewa tempat menabung untuk menyimpan dana dan / atau

Pada kesempatan yang berbahagia ini pula kami selaku Pengurus Pemuda Peduli Dhuafa Gresik mengucapkan terima kasih atas bantuan yang telah diberikan oleh

diminta menandatangani atau cap sidik jari surat pernyataan kesediaan menjadi responden penelitian bagi yang bersedia berpartisipasi dalam kegiatan penelitian. 3)

Meskipun sebagian dokter percaya bahwa narkotika dapat digunakan dalam jangka waktu yang lama dalam dosis yang kecil untuk mengatasi nyeri punggung bawah kronis, namun obat-obatan

Sistem informasi akuntansi manajemen dapat membantu organisasi mencapai tujuan yang berkualitas dengan menyediakan varietas suatu laporan dan pengukuran yang

Berdasarkan prakiraan beban Sistem dan Kesiapan pembangkit, dalam 1 Minggu kedepan pada Waktu Beban Puncak Malam di Sistem Khatulistiwa diperkirakan mengalami 0