dan perangkat lunak. langkah berikutnya adalah mengambil ...sir.stikom.edu/id/eprint/540/7/bab...

22
39 BAB III METODE PENELITIAN 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 SURABAYA

Upload: duongthu

Post on 21-Jul-2019

228 views

Category:

Documents


0 download

TRANSCRIPT

39

BAB III

METODE PENELITIAN

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 S

URABAYA

40

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 S

URABAYA

41

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 S

URABAYA

42

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 S

URABAYA

43

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 S

URABAYA

44

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

12345678

9

12

13

1415161718192021

10

11

31

3334353637383940

2223242526272829

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

CG

ND

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 1Saturday , August 11, 2012

Title

Size Document Number Rev

Date: Sheet of

DIODE

5v

T1 M

pu

sh

bu

tto

n

5v

mosi

f use

12

sck

R 10k

cap

30pf

reset

LED

R 100

2200uF/25vmiso

12v regulatorLM7805

1

2

3VI

GN

D

VO

12v

470uf /16v

cap

30pf

sumber tegangan 12v

12

5 V

STIKOM S

URABAYA

45

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 S

URABAYA

46

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

shb

utt

on

100

reset

12vCap 2200uF/25v

pwm1

<Doc> <Rev Code>

<Title>

A

1 1Tuesday , August 14, 2012

Title

Size Document Number Rev

Date: Sheet of

cap 30 pF

R 10k

sck

DIODE

reset

IC4

ATmega8

123456789

1011121314 15

16171819202122232425262728

PC6 (RESET)PD0 (RxD)PD1 (TxD)PD2 (INT0)PD3 (INT1)PD4 (XCK/T0)VCCGNDPB6 (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

AVCCAREFAGND

(ADC0) PC0(ADC1) PC1(ADC2) PC2(ADC3) PC3

(SDA/ADC4) PC4(SCL/ADC5) PC5

5v

Cap 470uf /16v

miso

RegulatorLM7805

1

2

3VI

GN

D

VO

mosi

cry stal

11.0592 Mhz

5v

sck

cap 100ureset

sumber tegangan 12V

12

konektor f use

12

5v5 V

R 330

T0 S1

5v

downloader

123456

mosiss Cap

10uF/16v

dir1dir2cap 30 pF

STIKOM S

URABAYA

47

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 S

URABAYA

48

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

shb

utt

on

100

reset

12vCap 2200uF/25v

pwm1

<Doc> <Rev Code>

<Title>

A

1 1Tuesday , August 14, 2012

Title

Size Document Number Rev

Date: Sheet of

cap 30 pF

R 10k

sck

DIODE

reset

IC4

ATmega8

123456789

1011121314 15

16171819202122232425262728

PC6 (RESET)PD0 (RxD)PD1 (TxD)PD2 (INT0)PD3 (INT1)PD4 (XCK/T0)VCCGNDPB6 (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

AVCCAREFAGND

(ADC0) PC0(ADC1) PC1(ADC2) PC2(ADC3) PC3

(SDA/ADC4) PC4(SCL/ADC5) PC5

5v

Cap 470uf /16v

miso

RegulatorLM7805

1

2

3VI

GN

D

VO

mosi

cry stal

11.0592 Mhz

5v

sck

cap 100ureset

sumber tegangan 12V

12

konektor f use

12

5v5 V

R 330

T0 S1

5v

downloader

123456

mosiss Cap

10uF/16v

dir1dir2cap 30 pF

STIKOM S

URABAYA

49

Gambar 3.5 Flowchart Logika Fuzzy

STIKOM S

URABAYA

50

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 S

URABAYA

51

}

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 S

URABAYA

52

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 S

URABAYA

53

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 S

URABAYA

54

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 S

URABAYA

55

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 S

URABAYA

56

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 S

URABAYA

57

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 S

URABAYA

58

Start

Error = sp - pv

P = kp*error

Sn = Sn_lm + error

Over flow Sn = 1023YN

I = ki*Sn

D_error = error – error_lm

Over flow D_error = 1023YN

D = kd*D_error

PID = P + I + D

error_lm = error

pwm = pwm + PID

Input :

sp=output

fuzzy

Inisialisasi :

kp,ki,kd

Sn < 0Sn = 0

Y

N

D_error < 0D_error = 0

N

Y

Sn_lm = Sn

Gambar 3.9 Flowchart Kontrol PID

STIKOM S

URABAYA

59

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 S

URABAYA

60

{

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 S

URABAYA