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];
ifnilai_penyebut=0RPMdata = nilai_pembilangnilai_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 et = rt – ct, rt adalah setpoint, ct adalah variable proses
dan mt 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 mn menyatakan nilai m pada suatu interval n∆t, dengan n bilangan
bulat. Dengan memperkenalkan parameter :
3.5
3.6
STIKOM SURABAYA
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 S
n
= jumlah seluruh nilai error pada interval 0 sampai nT
s
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 SURABAYA
Start
Error = sp - pv P = kperror
Sn = Sn_lm + error Over flow
Sn = 1023 Y
N
I = kiSn D_error = error – error_lm
Over flow D_error = 1023
Y N
D = kdD_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 SURABAYA
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_ms100;
time sampling data pv pv = TCNT010;
rumus perhitungan
rps dimana
10 didapatkan dari jumlah time sampling
dikali 10 agar mendapatkan waktu 1 detik.
pv = pv5560; 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 = kperror;
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 = kisn;
3. Kontrol D
kd = 0.0001; nilai kd didapatkan dari trial error
delta_e = error - error_lm; if delta_e 1023
STIKOM SURABAYA
{ delta_e = 1023;
} else if delta_e 0
{ delta_e = 0;
} d = kddelta_e;
4. Kontrol PID
pid = kperror+kisn+kddelta_e; pwm = pwm_lm + pid;
if pwm 1023 {
pwm = 1023; }
else if pwm 0 {pwm = 0;}
STIKOM SURABAYA
60
BAB IV PENGUJIAN SISTEM