Skd fauzi firmansyah_plant_suhu_polban
-
Upload
fauzi81195 -
Category
Science
-
view
42 -
download
1
Transcript of Skd fauzi firmansyah_plant_suhu_polban
LAPORAN AKHIR
PERANCANGAN DAN REALISASI SISTEM
KENDALI DIGITAL PADA PLANT SUHU
Laporan ini disusun untuk memenuhi salah satu syarat
mata kuliah Sistem Kendali Digital
DIPLOMA III PROGRAM STUDI TEKNIK ELEKTRONIKA
Di Jurusan Teknik Elektro
Oleh
Fauzi Firmansyah
131311046
POLITEKNIK NEGERI BANDUNG
2015
i
Abstraksi
Didalam kehidupan sehari-hari kita selalu membutuhkan suhu atau temperatur.
Suhu tersebut dihasilkan oleh pemanas atau pendingin diantaranya matahari, api,
AC dan lain-lain. Suhu yang dibutuhkan pun berbeda-beda tergantung untuk apa
kita menstabilkan suhu tersebut. Perkembangan teknologi saat ini memungkinkan
kita mampu mengendalikan suhu yang dihasilkan. Teknologi yang digunakan
adalah sistem kendali. Dalam sistem kendali ini memungkinkan kita untuk
mengendalikan sesuatu baik itu suhu, posisi atau lainya. Dalam mata kuliah
sistem kendali digital ini penulis menemukan sesuatu hal yang baru untuk
mempelajari sistem pengendalian panas. Sesuatu yang baru tersebut digunakan
untuk mengendalikan suhu seperti yang kita inginkan. Diantaranya penggunaan
metode ziegler nichols I dan II, Simulink pada Matlab, Script matlab, dan
Arduino. Pada praktikum sistem kendali ini plant suhu yang dikendalikan
menunjukan suhu sesuai set point atau titik yang kita inginkan dengan
menggunakan parameter P, I, dan D dalam pengendaliannya. Sistem kendali ini
diterapkan pada industri-industri diantaranya untuk memanaskan suhu tanki dalam
pengolahan minyak.
Kata kunci : sistem kendali digital, suhu, arduino.
Abstract
In our life, we always need temperature. That temperature produced by heater or
cooler such as sun, fire, air conditioner, etc. Temperature that needed is defferent
depend of for what we are stabilize that temperature. Advancement of technology
today make us be able to controlling temperature. That technology is control
system. In control system, make us be able to controlling something like
temperature, position, or other. In control system subject writer found something
new to learn about controlling temperature. There are Ziegler Nichols I and II
method, simulink on Matlab, Script Matlab, and Arduino. At practice, the
temperature plant showing the temperature is equal to set point using P, I and D
parameters in controlling. The industries already applying control system such as
to heating tank in oil processing.
Keyword : Digital Control System, Temperature, Arduino
ii
Kata Pengantar
Puji syukur penullis panjatkan kepada Allah SWT karena atas rahmat-Nya
penulis dapat menyelesaikan “Laporan Akhir Perancangan dan Realisasi Sistem
Kendali Digital pada Plant Suhu”.Sholawat serta salam semoga tetap tercurah
ke Nabi Muhammad SAW. Terimakasih kepada orang tua penulis, bapak Sukirno
S.Pd dan Ibu Atmi Kusmiyati, atas doa yang tak pernah putus mendoakan anakmu
ini hingga sukses. Tak lupa penulis sampaikan terimakasih kepada Bapak
Feriyonika S.T, M.Sc.Eng yang telah memberkan bimbingan pada mata kuliah
Sistem Kendali Digital kepada penulis. Terimakasih kepada saudara Aditya
Gumilar yang telah menjadi partner dalam praktikum SKD ini.
Pada Laporan Praktikum Sistem Kendali Digital ini berisi kumpulan dari
praktikum yang telah dilakukan selama semester 4. Pada praktikum yang telah
dilakukan, penulis menggunakan metode ziegler nichols I dan II, Simulink pada
Matlab, Script matlab, dan Arduino.
Penulis sadar laporan akhir ini belum sempurna. Penulis akan menerima
segala bentuk kritik dan saran untuk memperbaiki laporan ini. Penulis berharap
laporan ini dapat berguna bagi dunia elektronika khususnya bidang sistem
kendali.
Bandung, 6 Juli 2015
Penulis,
Fauzi Firmansyah
iii
Daftar Isi
Abstraksi i
Kata pengantar ii
Daftar Isi iii
Daftar Tabel iv
Daftar Gambar v
Daftar Lampiran vi
BAB I Pendahuluan 1
BAB II Landasan Teori 3
2.1. Sistem Kendali 3
2.2. Kendali PID 4
2.3. Teknik Tuning Manual 5
2.4. Plant Temperatur 6
BAB III Metoda dan Proses Penyelesaian 8
3.1. Ziegler Nichols Tipe 1 8
3.2. Ziegler Nichols Tipe 2 10
3.3. Script Matlab 12
3.4. Arduino 13
BAB IV HASIL DAN PEMBAHASAN 14
4.1. Data 14
4.2. Pembahasan 20
BAB V KESIMPULAN DAN SARAN 22
5.1. Kesimpulan 22
5.2. Saran 22
Daftar Pustaka vii
Lampiran
iv
Daftar Tabel
Tabel II.1 Tuning Manual PID 5
Tabel III.1. Parameter Ziegler Nichols tipe 1 9
Tabel III.2. Parameter Ziegler Nichols tipe 2 11
v
Daftar Gambar
Gambar II.1. Sistem Kendali Loop Terbuka 4
Gambar II.2. Sistem Kendali Loop Tertutup 4
Gambar II.3. Metode Pemuaian 7
Gambar II.3. Metode Pemuaian 7
Gambar III.1. Simulink 8
Gambar III.2. Perancangan modul sistem kendali temperatur open loop 8
Gambar III.3. Respon natural dari plant temperature 9
Gambar III.4. Simulink 10
Gambar III.5. Perancangan modul sistem kendali temperatur open loop 10
Gambar III.6. Respon natural dari plant temperature 11
Gambar III.7. Flowchart Script Matlab 12
Gambar III.8. Flowchart arduino 13
Gambar IV.1. Respon sistem kendali dengan menggunakan PID 14
Gambar IV.2. Respon sistem kendali dengan menggunakan PID
hasil tuning manual 14
Gambar IV.3. Respon dengan PID hasil perhitungan 14
Gambar IV.4. Respon sistem kendali dengan menggunakan PID
hasi tuning manual 15
Gambar IV.5. Respon kendali suhu dengan menggunakan PID
sebelum dituning 16
Gambar IV.6. respon kendali suhu setelah dituning manual 17
Gambar IV.7. respon kendali suhu yang ditampilkan pada
serial monitor arduino 18
Gambar IV.8. Respon kendali suhu dengan shield LCD 19
vi
Daftar Lampiran
Lampiran I Arduino Uno Reference Design
Lampiran II Datasheet Arduino
1
BAB I
PENDAHULUAN
Sistem kendali merupakan bagian yang terintegrasi dari sistem kehidupan
modern saat ini. Sebagai contoh kendali pesawat, robot, suhu ruang, mesin cuci,
dan lain sebagainya. Dengan sistem kendali memungkinkan adanya sistem yang
stabil, akurat dan tepat waktu. Sistem kendali dapat dikatakan sebagai hubungan
antara komponen yang membentuk sebuah konfigurasi sistem, yang akan
menghasilkan tanggap sistem yang diharapkan. Sistem kendali dibedakan menjadi
kendali manual dan otomatis.
Sistem pengendalian otomatis banyak memberikan keuntungan bagi
manusia. Selain dapat mempercepat waktu kerja, pengendalian otomatis juga
dapat mengurangi kesalahan yang dilakukan oleh manusia (human error) dan
meningkatkan efektifitas kerja. Salah satu aplikasi pengendalian otomatis yang
dapat kita jumpai dalam kehidupan sehari-hari adalah pengendalian suhu. Suhu
sebuah ruangan perlu dikendalikan dan tetap terjaga agar dapat dimanfaatkan
untuk keperluan tertentu[1].
Kontoller PID merupakan kontroller berumpan balik terdiri dari 3 jenis
pengaturan yang saling dikombinasikan, yaitu P Controller P (Proportional),
Controller D (Derivative), dan Controller I (Integral) yang masing – masing
secara keseluruhan bertujuan untuk mempercepat reaksi sebuah sistem,
menghilangkan offset, dan menghasilkan perubahan awal yang besar. Kontroller
PID merupakan jumlahan dari keluaran kontroller proportional, keluaran
kontroller integral dan keluaran kontroller derivative. Karakteristik kontroller PID
sangat dipengaruhi oleh kontribusi besar ketiga parameter dari P, I dan D.
Penyetelan konstanta Kp, Ti, dan Td akan mengakibatkan penonjolan sifat dari
masing – masing elemen . Satu atau dua dari ketiga konstanta tersebut dapat
disetel lebih menonjol dibanding yang lain. Konstanta yang menonjol itulah akan
memberikan kontribusi pengaruh pada respon sistem secara keseluruhan.
Parameter-parameter tersebut tidak bersifat independen, sehingga pada saat salah
satu nilai konstantanya diubah, maka mungkin sistem tidak akan bereaksi seperti
yang diinginkan [2].
2
Pada praktikum yang telah dilakukan penulis menggunakan algoritma PID
untuk diterapkan pada modul plant temperatur. Metode metode yang digunakan
anatara lain Ziegler Nichols tipe 1 (open loop) dan tipe 2 (closed loop). Dengan
metode tersebut penulis dapat menentukan parameter PID, selanjutnya parameter
tersebut dimasukan kedalam modul PID, dan ke dalam program untuk kemudian
diproses. Respon yang ditampilkan dianalisa sesuai dengan tabel tuning manual
PID, kemudian nilai-nilai parameter PID hasil tuning manual dimasukan kembali
ke modul PID dan program arduino sehingga respon menjadi lebih baik dari
sebelumnya.
3
BAB II
LANDASAN TEOR1
2.1. Sistem Kendali
Sistem kendali atau sistem kontrol (control system) adalah suatu alat
(kumpulan alat) untuk mengendalikan, memerintah, dan mengatur keadaan dari
suatu sistem. Istilah sistem kendali ini dapat dipraktekkan secara manual untuk
mengendalikan stir mobil pada saat kita mengendarai/menyetir mobil kita,
misalnya, dengan menggunakan prinsip loloh balik. Dalam sistem yang otomatis,
alat semacam ini sering dipakai untuk peluru kendali sehingga peluru akan
mencapai sasaran yang diinginkan. Banyak contoh lain dalam bidang industri /
instrumentasi dan dalam kehidupan kita sehari-hari di mana sistem ini dipakai.
Alat pendingin (AC) merupakan contoh yang banyak kita jumpai yang
menggunakan prinsip sistem kendali, karena suhu ruangan dapat dikendalikan
sehingga ruangan berada pada suhu yang kita inginkan.[3]
Secara umum sistem kendali dibagi menjadi dua yaitu: sistem kendali loop
terbuka dan sistem kendali loop tertutup
2.1.1. Sistem Kendali Loop Terbuka
Sistem kontrol loop terbuka adalah suatu sistem yang keluarannya tidak
mempunyai pengaruh terhadap aksi kontrol. Artinya, sistem kontrol terbuka
keluarannya tidak dapat digunakan sebagai umpan balik dalam masukkan.
Dalam suatu sistem kontrol terbuka, keluaran tidak dapat dibandingkan
dengan masukan acuan. Jadi, untuk setiap masukan acuan berhubungan dengan
operasi tertentu, sebagai akibat ketetapan dari sistem tergantung kalibrasi. Dengan
adanya gangguan, sistem control terbuka tidak dapat melaksanakan tugas yang
sesuai diharapkan. Sistem kontrol terbuka dapat digunakan hanya jika hubungan
antara masukan dan keluaran diketahui dan tidak terdapat gangguan internal
maupun eksternal.
4
Gambar II.1. Sistem Kendali Loop Terbuka
2.1.2. Sistem Kendali Loop Tertutup
Sistem Kontrol loop tertutup adalah sistem kontrol yang sinyal
keluarannya mempunyai pengaruh langsung pada aksi pengontrolan. Sistem
kontrol loop tetrtutup juga merupakan sistem control berumpan balik. Sinyal
kesalahan penggerak, yang merupakan selisih antara sinyal masukan dan sinyal
umpan balik (yang dapat berupa sinyal keluaran atau suatu fungsi sinyal keluaran
atau turunannya). Diumpankan ke kontroler untuk memperkecil kesalahan dan
membuat agar keluaran sistem mendekati harga yang diinginkan. Dengan kata
lain, istilah “loop tertutup” berarti menggunakan aksi umpan balik untuk
memperkecil kesalahan system [4].
Gambar II.2. Sistem Kendali Loop Tertutup
2.2. Kendali PID
PID (dari singkatan bahasa Proportional–Integral–Derivative controller)
merupakan kontroler untuk menentukan presisi suatu sistem instrumentasi dengan
karakteristik adanya umpan balik pada sistem tesebut. Komponen kontrol PID ini
terdiri dari tiga jenis yaitu Proportional, Integratif dan Derivatif. Ketiganya dapat
dipakai bersamaan maupun sendiri-sendiri tergantung dari respon yang kita
inginkan terhadap suatu plant.
5
Persamaan umum PID
( ) ( ) ∫ ( )
( [ ])
( )
( ) (
)
( )
( )
(
)
2.3. Teknik Tuning Manual
Pengendali proporsional Kp akan memberikan efek mengurangi waktu
naik tetapi tidak menghapus kesalahan keadaan tunak . Pengendali integral Ki
akan memberikan efek menghapus kesalahan keadaan tunak tetapi berakibat
memburuknya tanggapan transient. Pengendali derivatif Kd akan memberikan
efek meningkatnya stabilitas sistem, mengurangi lewatan maksimum dan
menaikkan tanggapan fungsi trasnfer . Efek dari setiap pengendali dalam sistem
lingkar tertutup dapat dilihat pada tabel berikut ini [2] :
Closed-Loop
Response
Rise Time Overshoot Setting Time SS Errror
Kp Decrease Increase Small Change Decrease
Ki Decrease Increase Increase Eliminate
Kd Small Change Decrease Decrease Small Change
Tabel II.1 Tuning Manual PID
Dari Tabel diatas dapat diketahui bahwa pengendali proporsional akan
mengurangi waktu naik, meningkatkan persentase lewatan maksimum dan
mengurangi keadaan tunak. Sedangkan pengendali proporsional derivatif
mereduksi lewatan maksimum dan waktu turun. Selain itu, pengendali
proporsional integral menurun pada waktu naik, meningkatkan lewatan
maksimum dan waktu turun dan akan menghilangkan kesalahan keadaan.
6
Salahsatu permasalahan terbesar dalam desain kontroller PID yaitu masalah
tuning untuk menentukan nilaik Ki, Kp, dan Kd yang pas. Metode –metode tuning
dilakukan berdasarkan model matemetika plant / sistem. Jika model tidak
diketahui, maka dilakukan eksperimen terhadap sistem. Bisa juga pakai system try
dan error.
2.4. Plant Temperatur
Tujuan dari sistem kontrol suhu adalah untuk membatasi suhu atau temperatur
sesuai dengan yang diinginkan.
2.4.1 Skala Temperatur
Skala temperatur adalah besar dari satu unit ukuran yaitu satu energi termal
rata-rata per molekul dinyatakan oleh satu unit dari skala tersebut.
Skala temperatur absolut yaitu skala yang menetapkan temperatur nol suatu material
yang tidak mempunyai energi termal.
Skala yang biasa digunakan dalam temperatur, yaitu:
Skala Farenheit (0F)
Skala Celcius (0C)
Skala Reamur (0R)
Skala Kelvin (K)
Tujuan pengukuran temperatur pada proses kontrol adalah untuk:
Mencegah kerusakan pada sistem kontrol
Mendapat hasil sesuai dengan yang diinginkan
Mengontrol jalannya proses kendali
2.4.2. Metode Pengukuran Temperatur
Metode pengukuran temperatur yang digunakan pada praktikum kali ini
terbagi dua yaitu metode pemuaian dan metode elektris.
2.4.2.1. Metode Pemuaian
Panas yang diukur menghasilkan pemuaian. Pemuaian dirubah kedalam
bentuk gerak gerak mekanik dan dikalibrasi kedalam skala angka-angka yang
menunjukkan nilai panas (temperatur) yang diukur, seperti pada gambar II.3[5].
7
Gambar II.3. Metode Pemuaian
2.4.2.2. Metode Elektris
Panas yang diukur menghasilkan gaya gerak listrik (Emf) yang kemudian
gaya gerak listrik dikalibrasi kedalam skala angka-angka yang menunjukan nilai
panas (temperatur) yang diukur, seperti pada gambar II.4 [5].
Gambar II.4. Metode Elektris
8
BAB III
METODA DAN PROSES PENYELESAIAN
3.1. Ziegler Nichols Tipe 1
3.1.1. Perancangan
Untuk menggunakan controller PID kita perlu menggunakan metode
Ziegler-Nicholes tipe 1 dengan menggunakan simulink pada Matlab dengan blok
seperti gambar III.1.
Gambar III.1. Simulink
Setelah simulink dibuat maka selanjutnya adalaha menghubungkan plant
dengan open loop dengan arduino. Dengan konfigurasi pin0 dihubungkan ke
setpoint, pin5 dhubungkan ke output sensor dan gnd dihubingkanke gnd. Untuk
lebih jelasnya dapat melihat seperti gambar III.2.
Gambar III.2. Perancangan modul sistem kendali temperatur open loop
9
3.1.2. Proses Penyelesaian
a. Respon natural dari plant temperatur.
Time (s)
Gambar III.3. Respon natural dari plant temperatur.
b. Parameter
Perbandingan waktu antara waktu nyata dan waktu matlab adalah
tnyata : t matlab
150s : 2000s
Parameter L
L matlab = 140s
L nyata = 14.7s
Parameter T
T matlab = 2065s
T nyata = 212.625s
Type of Controller
P
∞ 0
I
0
D
2L 0,5L
Tabel III.1. Parameter Ziegler Nichols tipe 1
Parameter Kp = 17,35714286
Parameter Ti = 29,4
Parameter Td = 7,35
Tem
per
atur
(oC
)
10
3.2. Ziegler Nichols Tipe 2
3.2.1. Perancangan
Untuk menggunakan controller PID kita perlu menggunakan metode
Ziegler-Nicholes tipe 1 dengan menggunakan simulink pada Matlab dengan blok
seperti gambar III.4.
Gambar III.4. Simulink
Setelah simulink dibuat maka selanjutnya adalaha menghubungkan plant
yang telah dirancang secara close loop dengan arduino. Dengan konfigurasi pin0
dihubungkan ke setpoint, pin5 dhubungkan ke output sensor dan gnd
dihubingkanke gnd. Untuk lebih jelasnya dapat melihat seperti gambar III.5.
Gambar III.5. Perancangan modul sistem kendali temperatur open loop
11
3.5.2. Proses Penyelesaian
a. Respon plant temperature yang berosilasi
Time (s)
Gambar III.6. Respon natural dari plant temperatur
b. Parameter
Type of Controller
P 0,5 ∞ 0
I 0,45
0
D 0,6 0,5 0,125
Tabel III.2. Parameter Ziegler Nichols tipe 2
Kcr = 920
Pcr matlab = 1493-1260 = 233
Pcr real = 25.63s
Kp = 0.63xKcr = 0.63x920 = 552
Ti = 0.5xPcr = 0.5x25.63 = 12.815
Td = 0.125xPcr = 0.125x25.63 = 3,20375
Tem
per
atur
(oC
)
12
3.3. Script Matlab
Flowchart
Gambar III.7. Flowchart Script Matlab
13
3.4. Arduino
Flowchart
Gambar III.8. Flowchart Arduino
14
BAB IV
HASIL DAN PEMBAHASAN
4.1. Data
4.1.1. Ziegler Nichols Tipe 1
a. Respon dengan PID hasil perhitungan
Time (s) Gambar IV.1. Respon sistem kendali dengan menggunakan PID
b. Respon sistem kendali dengan menggunakan PID dengan menggunakan
tuning manual
Time (s) Gambar IV.2. Respon sistem kendali dengan menggunakan PID hasil
tuning manual
4.1.2. Ziegler Nichols Tipe 2
a. Respon dengan PID hasil perhitungan
Time (s)
Gambar IV.3. Respon dengan PID hasil perhitungan
Tem
per
atur
(oC
) T
em
per
atur
(oC
) T
em
per
atur
(oC
)
15
b. Hasil tuning manual PID
Time (s) Gambar IV.4. Respon sistem kendali dengan menggunakan PID hasi
tuning manual
4.1.3. Script Matlab
4.1.3.1. Menggunakan nilai Kp, Ki dan Kd sebelum dituning
a. Script
clf; Ts=0.1; pinMode(a,3,'output'); pinMode(a,13,'output'); digitalWrite(a,13,1);
Kp=17.35; Ki=0.59; Kd=127.5;
Esebelum=0; EIsebelum=0;
y1=0; y2=0; t=0;
x=0 start=digitalRead(a,12);
while (start == 1) x=x+1; SP=analogRead(a,1)*0.0049; SP=SP*2; PV=analogRead(a,2)*0.0049; PV=PV*2; E=SP-PV;
EIsekarang=((E+Esebelum)/2)*Ts; EI=EIsebelum+EIsekarang;
ED=(E-Esebelum)/Ts;
outP=Kp*E;
outI=Ki*EI; outD=Kd*ED; outPID=outP+outI+outD
if outPID > 10 outPID = 10; else outPID=outPID; end
if outPID<0 outPID=0; else outPID=outPID; end outPID=outPID/2;
outPID=round(outPID*51); analogWrite(a,3,outPID);
y1=[y1;SP]; y2=[y2;PV]; t=[t,x]; plot(t,y1,t,y2); axis([0 x+100 0 10]); grid drawnow; Esebelum=E; EIsebelum=EI; start=digitalRead(a,12); end analogWrite(a,3,0);
Tem
per
atur
(oC
)
16
b. Respon
Time (s) Gambar IV.5. Respon kendali suhu dengan menggunakan PID sebelum
dituning
4.1.3.2. Menggunakan nilai Kp, Ki dan Kd setelah dituning
a. Script clf; Ts=0.1; pinMode(a,3,'output'); pinMode(a,13,'output'); digitalWrite(a,13,1);
Kp=55; Ki=0.7; Kd=129;
Esebelum=0; EIsebelum=0;
y1=0; y2=0; t=0;
x=0 start=digitalRead(a,12);
while (start == 1) x=x+1; SP=analogRead(a,1)*0.0049; SP=SP*2; PV=analogRead(a,2)*0.0049; PV=PV*2; E=SP-PV;
EIsekarang=((E+Esebelum)/2)*Ts; EI=EIsebelum+EIsekarang;
ED=(E-Esebelum)/Ts;
outP=Kp*E;
outI=Ki*EI; outD=Kd*ED; outPID=outP+outI+outD outPID=outPID/10;
if outPID > 10 outPID = 10; else outPID=outPID; end
if outPID<0 outPID=0; else outPID=outPID; end outPID=outPID/2;
outPID=round(outPID*51); analogWrite(a,3,outPID);
y1=[y1;SP]; y2=[y2;PV]; t=[t,x]; plot(t,y1,t,y2); axis([0 x+100 0 10]); grid drawnow; Esebelum=E; EIsebelum=EI; start=digitalRead(a,12); end analogWrite(a,3,0);
Tem
per
atur
(x1
0oC
)
17
b. Respon
Time (s)
Gambar IV.6. respon kendali suhu setelah dituning manual
4.1.4. Arduino
4.1.4.1. Menggunakan serial monitor pada arduino.
a. Program
int output = 6; //set pin 3
sebagai output
float Ts = 0.05; //waktu
sampling
//setting nilai Kp Ki Kd
float Kp = 30;
float Ti = 29;
float Td = 4.5;
//definisi variable perhitungan
PID
float setpoint, feedback,
setpoint1, feedback1;
float error;
float errorD, errorD1;
float errorI, errorIsekarang,
errorIsekarang1,
errorIsekarang2;
float outP, outI, outD,
outPIDsebelum;
float errorsebelum = 0;
float errorIsebelum = 0;
int outPID;
float Ki;
float Kd;
void setup() {
Ki=Kp/Ti;
Kd=Kp*Td;
pinMode(6,OUTPUT);
}
void loop() {
setpoint = analogRead(A0);
setpoint1 =
(setpoint*0.0049)*2*10;
feedback = analogRead(A1);
feedback1 =
(feedback*0.0049)*2*10;
//hitung error
error = setpoint1-feedback1;
//menghitung error integral
errorIsekarang =
error+errorsebelum;
errorIsekarang1 =
errorIsekarang/2;
errorIsekarang2 =
errorIsekarang1*Ts;
errorI =
errorIsekarang2+errorIsebelum;
//menghitung error diferensial
errorD1 = error-errorsebelum;
errorD = errorD1/Ts;
//kendali PID
outP = Kp*error;
outI = Ki*errorI;
outD = Kd*errorD;
outPIDsebelum = outP + outI +
outD;
//pembatasan hasil PID
if (outPIDsebelum>=10)
Tem
per
atur
(x1
0oC
)
18
{
outPIDsebelum=10;
}
else if (outPIDsebelum<=0)
{
outPIDsebelum=0;
}
else
{
outPIDsebelum=outPIDsebelum;
}
//menulisakn hasilPID ke pin
outPID =
(outPIDsebelum/2)*51;
analogWrite(6, outPID);
errorsebelum=error;
errorIsebelum=errorI;
Serial.print("setpoint:");
Serial.print(setpoint1);
Serial.print("Feedback:");
Serial.print(feedback1);
Serial.print("PID:");
Serial.println(outPID);
}
b. Respon
Gambar IV.7. respon kendali suhu yang ditampilkan pada serial monitor arduino
4.1.4.2. Menggunakan shield LCD pada arduino
a. Program #include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4,
3, 2);
int output = 6; //set pin 3
sebagai output
float Ts = 0.05; //waktu
sampling
//setting nilai Kp Ki Kd
float Kp = 30;
float Ti =29;
float Td = 4.5;
//definisi variable perhitungan
PID
float setpoint, feedback,
setpoint1, feedback1;
float error;
float errorD, errorD1;
float errorI, errorIsekarang,
errorIsekarang1,
errorIsekarang2;
float outP, outI, outD,
outPIDsebelum;
float errorsebelum = 0;
float errorIsebelum = 0;
int outPID;
float Ki;
float Kd;
void setup() {
// put your setup code here,
to run once:
Ki=Kp/Ti;
19
Kd=Kp*Td;
lcd.begin(16, 2);
pinMode(6,OUTPUT);
}
void loop() {
// put your main code here,
to run repeatedly:
setpoint = analogRead(A0);
setpoint1 =
(setpoint*0.0049)*2*10;
feedback = analogRead(A1);
feedback1 =
(feedback*0.0049)*2*10;
//hitung error
error = setpoint1-feedback1;
//menghitung error integral
errorIsekarang =
error+errorsebelum;
errorIsekarang1 =
errorIsekarang/2;
errorIsekarang2 =
errorIsekarang1*Ts;
errorI =
errorIsekarang2+errorIsebelum;
//menghitung error
diferensial
errorD1 = error-errorsebelum;
errorD = errorD1/Ts;
//kendali PID
outP = Kp*error;
outI = Ki*errorI;
outD = Kd*errorD;
outPIDsebelum = outP + outI +
outD;
//pembatasan hasil PID
if (outPIDsebelum>=10)
{
outPIDsebelum=10;
}
else if (outPIDsebelum<=0)
{
outPIDsebelum=0;
}
else
{
outPIDsebelum=outPIDsebelum;
}
//menulisakn hasilPID ke pin
outPID =
(outPIDsebelum/2)*51;
analogWrite(6, outPID);
errorsebelum=error;
errorIsebelum=errorI;
lcd.setCursor (0,0);
lcd.print("SP:");
lcd.setCursor (4,0);
lcd.print(setpoint1);
lcd.setCursor (0,1);
lcd.print("PV:");
lcd.setCursor (4,1);
lcd.print(feedback1);
}
b. Respon
e
Gambar IV.8. Respon kendali suhu dengan shield LCD
20
4.2. Pembahasan
4.2.1. Ziegler Nichols tipe 1
4.2.1.1. Respon sistem kendali dengan menggunakan PID
Terlihat bahwa sistem kendali close loop dengan menggunakan kendali
PID terdapat perbedaan dengan respon natural dari plant temperatur. Perbedaan
tersebut terliha dari rise time yang lebih baik steady state yang lebih baik dari
respon natural. Pada sistem kendali ini terdapat kendala yaitu terdapat overshoot
dan error steady state.
4.2.1.2. Respon sistem kendali dengan menggunakan PID dengan menggunakan
tuning manual
Parameter Kp = 20, Ti = 40,Td = 7. Terlihat bahwa sistem kendali yang
dibuat memiliki overshoot yang tidak terlalu besar dan steady state sudah sesuai
dengan setpoint yang diharapkan. Sistem juga diganggu dengan menggunakan
kipas dan respon tetap kembali ke setpoint yang ditentukan.
4.2.2. Ziegler Nichols tipe 2
4.2.2.1. Respon dengan PID hasil perhitungan
Setelah nilai Kp, Ki dan Kd yang baru dimasukan. Kemudian simulink di-
run maka hasil plotnya seperti gambar diatas. Pada respon ini masih terdapat
kendala yaitu nilai oversoot yang masih besar dan setling time yang terlalu lama.
Cara mengatasi kendala diatas yaitu dengan manual tuning mengurangi nilai Kp,
menambah nilai Ti dan mengurangi nilai Td dari nilai sebelumnya.
4.2.2.2. Hasil tuning manual PID
Terlihat bahwa sistem kendali yang dibuat memiliki overshoot yang tidak
terlalu besar dan steady state sudah sesuai dengan setpoint yang diharapkan.
Sistem juga diganggu dengan menggunakan kipas dan respon tetap kembali ke
setpoint yang ditentukan.
21
4.2.3. Script Matlab
4.2.3.1. Menggunakan nilai Kp, Ki dan Kd sebelum dituning
Berdasarkan gambar diatas respon yang dibuat sudah baik dengan staedy
state yang sudah mencapai set point yang ditentukan. Akan tetapi disini terdapat
overshoot yang besar dan plant kendali yang masih seperti ON/OFF ditandai
dengan plant yang nyala terang. Nilai overshoot ini dapat dikurangi dengan
mengurangi nilai Kp dan Ki. Dan menambah nilai Kd. Nilai Kp sebelumnya
adalah 17.35, Ki sebelumnya adalah 0.59 dan Kd sebelumnya 127.5. Nilai
tersebut setelah dituning manual menjadi Kp = 17, Ki = 0.5, Kd = 130. Nilai Kp,
Ki dan Kd yang baru dimasukan ke script 2 ditandai dengan script yang bergaris
bawah.
4.2.3.2. Menggunakan nilai Kp, Ki dan Kd setelah dituning
Setelah outPID dibagi 10 dan nilai Kp, Ki, Kd yang baru dimasukan
(dalam script yang bergaris bawah) dan di-run maka hasilnya dapat dilihat pada
plot diatas. Nilai overshoot menjadi tidak ada, nilai steady state sesuai dengan set
point yang ditentukan dan pada plant tidak ON OFF, ditandai dengan lampu yang
redup untuk mempertahankan steady statenya. Hal ini merupakan sistem kendali
yang kita inginkan.
4.2.4. Arduino
4.2.4.1. Menggunakan serial monitor pada arduino
Berdasarkan gambar respon yang ditampilkan pada serial monitor arduino
sudah baik dengan steady state yang sudah mencapai set point yang ditentukan.
Plant pun sudah menunjukan kestabilanya sesua pada set point.
4.2.4.2. Menggunakan shield LCD pada arduino
Berdasarkan respon yang ditampilkan pada shield LCD arduino sudah baik
dengan steady state yang sudah mencapai set point yang ditentukan. Sistem
kendali yang yang dibuat masih memilik overshoot, tetapi Plant tetap menunjukan
kestabilanya sesua pada set point.
22
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan perancangan dan hasil praktikum Sistem Kendali Digital pada
plant temperatur yang telah dilaksanakan dengan metode Ziegler Nichols tipe 1
dan 2, dapat disimpulkan:
a. Metode Ziegler Nichols tipe 1 dan tipe 2 dapat diterapkan pada plant
temperatur.
b. Hasil perhitungan dengan metode Ziegler Nichols tipe 1 maupun tipe 2 tetap
harus dituning manual kembali agar hasil kendali memiliki performa yang
baik.
c. Respon yang ditunjukan oleh sistem kendali yang dibuat menunjukan keadaan
stabil sesuai dengan setpoint yang diberikan.
d. Pengendalian plant dapat menggunakan script matlab dan program arduino.
5.2. Saran
Untuk perbaikan dan perkembangan praktikum Sistem Kendali Digital,
maka penulis memberikan saran
a. Sebelum praktikum dimulai, mahasiswa harus menguasai materi yang akan
dipraktekkan secara matang.
b. Penambahan dosen pembimbing praktikum agar dapat menghandle mahasiswa
yang kurang paham terhadap materi yang akan dipraktekkan
c. Perbaikan modul-modul yang akan digunakan pada saat praktikum, karena hal
ini mempegaruhi data yang didapat.
vii
Daftar Pustaka
[1]. Tyas, Diah Aruming, “Purwarupa Sistem Kendali PID: Studi Kasus Kendali
Suhu Ruang”, Paper, Universitas Gadjah Mada, 2013.
[2]. “Kontroller PID”, http://labkontrol.blogspot.com/2012/09/kontroller-
pid_30.html. Diakses 6 juli 2015.
[3]. “Sistem Kendali”, https://id.wikipedia.org/wiki/Sistem_kendali. Diakses 6 juli
2015.
[4]. “Sistem Kendali Loop Terbuka dan Tertutup”,
http://fexel.blogspot.com/2014/06/sistem-kontrol-loop-terbuka-dan-
tertutup.html. Diakses 6 juli 2015.
[5]. Sheyga, Earvin, “Laporan Akhir Sistem Kendali Digital Sistem Kendali
Suhu”, Laporan, Politeknik Negeri Bandung, 2015.
Lampiran I
Arduino Uno Reference Design
Lampiran II
Datasheet Arduino
Overview
The Arduino Uno is a microcontroller board based on the ATmega328
(datasheet). It has 14 digital input/output pins (of which 6 can be used as PWM
outputs), 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a
power jack, an ICSP header, and a reset button. It contains everything needed to
support the microcontroller; simply connect it to a computer with a USB cable or
power it with a AC-to-DC adapter or battery to get started.
The Uno differs from all preceding boards in that it does not use the FTDI USB-
to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to
version R2) programmed as a USB-to-serial converter.
Revision 2 of the Uno board has a resistor pulling the 8U2 HWB line to ground,
making it easier to put into DFU mode.
Revision 3 of the board has the following new features:
1.0 pinout: added SDA and SCL pins that are near to the AREF pin and
two other new pins placed near to the RESET pin, the IOREF that allow
the shields to adapt to the voltage provided from the board. In future,
shields will be compatible with both the board that uses the AVR, which
operates with 5V and with the Arduino Due that operates with 3.3V. The
second one is a not connected pin, that is reserved for future purposes.
Stronger RESET circuit.
Atmega 16U2 replace the 8U2.
"Uno" means one in Italian and is named to mark the upcoming release of
Arduino 1.0. The Uno and version 1.0 will be the reference versions of Arduino,
moving forward. The Uno is the latest in a series of USB Arduino boards, and the
reference model for the Arduino platform; for a comparison with previous
versions, see the index of Arduino boards.
Summary
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage
(recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
Length 68.6 mm
Width 53.4 mm
Weight 25 g
Schematic & Reference Design
EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle
6.0 and newer)
Schematic: arduino-uno-Rev3-schematic.pdf
Note: The Arduino reference design can use an Atmega8, 168, or 328, Current
models use an ATmega328, but an Atmega8 is shown in the schematic for
reference. The pin configuration is identical on all three processors.
Power
The Arduino Uno can be powered via the USB connection or with an external
power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-
wart) or battery. The adapter can be connected by plugging a 2.1mm center-
positive plug into the board's power jack. Leads from a battery can be inserted in
the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less
than 7V, however, the 5V pin may supply less than five volts and the board may
be unstable. If using more than 12V, the voltage regulator may overheat and
damage the board. The recommended range is 7 to 12 volts.
The power pins are as follows:
VIN. The input voltage to the Arduino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other
regulated power source). You can supply voltage through this pin, or, if
supplying voltage via the power jack, access it through this pin.
5V.This pin outputs a regulated 5V from the regulator on the board. The
board can be supplied with power either from the DC power jack (7 -
12V), the USB connector (5V), or the VIN pin of the board (7-12V).
Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can
damage your board. We don't advise it.
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum
current draw is 50 mA.
GND. Ground pins.
IOREF. This pin on the Arduino board provides the voltage reference
with which the microcontroller operates. A properly configured shield can
read the IOREF pin voltage and select the appropriate power source or
enable voltage translators on the outputs for working with the 5V or 3.3V.
Memory
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2
KB of SRAM and 1 KB of EEPROM (which can be read and written with the
EEPROM library).
Input and Output
Each of the 14 digital pins on the Uno can be used as an input or output, using
pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts.
Each pin can provide or receive a maximum of 40 mA and has an internal pull-up
resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have
specialized functions:
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL
serial data. These pins are connected to the corresponding pins of the
ATmega8U2 USB-to-TTL Serial chip.
External Interrupts: 2 and 3. These pins can be configured to trigger an
interrupt on a low value, a rising or falling edge, or a change in value. See
the attachInterrupt() function for details.
PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the
analogWrite() function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI
communication using the SPI library.
LED: 13. There is a built-in LED connected to digital pin 13. When the
pin is HIGH value, the LED is on, when the pin is LOW, it's off.
The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10
bits of resolution (i.e. 1024 different values). By default they measure from
ground to 5 volts, though is it possible to change the upper end of their range
using the AREF pin and the analogReference() function. Additionally, some pins
have specialized functionality:
TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication
using the Wire library.
There are a couple of other pins on the board:
AREF. Reference voltage for the analog inputs. Used with
analogReference().
Reset. Bring this line LOW to reset the microcontroller. Typically used to
add a reset button to shields which block the one on the board.
See also the mapping between Arduino pins and ATmega328 ports. The mapping
for the Atmega8, 168, and 328 is identical.
Communication
The Arduino Uno has a number of facilities for communicating with a computer,
another Arduino, or other microcontrollers. The ATmega328 provides UART
TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1
(TX). An ATmega16U2 on the board channels this serial communication over
USB and appears as a virtual com port to software on the computer. The '16U2
firmware uses the standard USB COM drivers, and no external driver is needed.
However, on Windows, a .inf file is required. The Arduino software includes a
serial monitor which allows simple textual data to be sent to and from the Arduino
board. The RX and TX LEDs on the board will flash when data is being
transmitted via the USB-to-serial chip and USB connection to the computer (but
not for serial communication on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Uno's
digital pins.
The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino
software includes a Wire library to simplify use of the I2C bus; see the
documentation for details. For SPI communication, use the SPI library.
Programming
The Arduino Uno can be programmed with the Arduino software (download).
Select "Arduino Uno from the Tools > Board menu (according to the
microcontroller on your board). For details, see the reference and tutorials.
The ATmega328 on the Arduino Uno comes preburned with a bootloader that
allows you to upload new code to it without the use of an external hardware
programmer. It communicates using the original STK500 protocol (reference, C
header files).
You can also bypass the bootloader and program the microcontroller through the
ICSP (In-Circuit Serial Programming) header using Arduino ISP or similar; see
these instructions for details.
The ATmega16U2 (or 8U2 in the rev1 and rev2 boards) firmware source code is
available . The ATmega16U2/8U2 is loaded with a DFU bootloader, which can be
activated by:
On Rev1 boards: connecting the solder jumper on the back of the board
(near the map of Italy) and then resetting the 8U2.
On Rev2 or later boards: there is a resistor that pulling the 8U2/16U2
HWB line to ground, making it easier to put into DFU mode.
You can then use Atmel's FLIP software (Windows) or the DFU programmer
(Mac OS X and Linux) to load a new firmware. Or you can use the ISP header
with an external programmer (overwriting the DFU bootloader). See this user-
contributed tutorial for more information.
Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload, the
Arduino Uno is designed in a way that allows it to be reset by software running on
a connected computer. One of the hardware flow control lines (DTR) of the
ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100
nanofarad capacitor. When this line is asserted (taken low), the reset line drops
long enough to reset the chip. The Arduino software uses this capability to allow
you to upload code by simply pressing the upload button in the Arduino
environment. This means that the bootloader can have a shorter timeout, as the
lowering of DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Uno is connected to either a computer
running Mac OS X or Linux, it resets each time a connection is made to it from
software (via USB). For the following half-second or so, the bootloader is running
on the Uno. While it is programmed to ignore malformed data (i.e. anything
besides an upload of new code), it will intercept the first few bytes of data sent to
the board after a connection is opened. If a sketch running on the board receives
one-time configuration or other data when it first starts, make sure that the
software with which it communicates waits a second after opening the connection
and before sending this data.
The Uno contains a trace that can be cut to disable the auto-reset. The pads on
either side of the trace can be soldered together to re-enable it. It's labeled
"RESET-EN". You may also be able to disable the auto-reset by connecting a 110
ohm resistor from 5V to the reset line; see this forum thread for details.
USB Overcurrent Protection
The Arduino Uno has a resettable polyfuse that protects your computer's USB
ports from shorts and overcurrent. Although most computers provide their own
internal protection, the fuse provides an extra layer of protection. If more than 500
mA is applied to the USB port, the fuse will automatically break the connection
until the short or overload is removed.
Physical Characteristics
The maximum length and width of the Uno PCB are 2.7 and 2.1 inches
respectively, with the USB connector and power jack extending beyond the
former dimension. Four screw holes allow the board to be attached to a surface or
case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an
even multiple of the 100 mil spacing of the other pins.