-
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 :
STIK
OM S
URAB
AYA
-
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
STIK
OM S
URAB
AYA
-
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.
STIK
OM S
URAB
AYA
-
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.
STIK
OM S
URAB
AYA
-
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.
STIK
OM S
URAB
AYA
-
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
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
STIK
OM S
URAB
AYA
-
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
STIK
OM S
URAB
AYA
-
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
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
STIK
OM S
URAB
AYA
-
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. STIK
OM S
URAB
AYA
-
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
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
STIK
OM S
URAB
AYA
-
49
Gambar 3.5 Flowchart Logika Fuzzy
STIK
OM S
URAB
AYA
-
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);
STIK
OM S
URAB
AYA
-
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
STIK
OM S
URAB
AYA
-
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
STIK
OM S
URAB
AYA
-
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-
STIK
OM S
URAB
AYA
-
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);
STIK
OM S
URAB
AYA
-
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;
STIK
OM S
URAB
AYA
-
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)
STIK
OM S
URAB
AYA
-
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 :
STIK
OM S
URAB
AYA
-
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
STIK
OM S
URAB
AYA
-
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)
STIK
OM S
URAB
AYA
-
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;}
STIK
OM S
URAB
AYA