dan perangkat lunak. langkah berikutnya adalah mengambil ...sir.stikom.edu/540/7/bab iii.pdf ·...
Post on 07-Mar-2019
222 Views
Preview:
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
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
top related