of 37 /37
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

Skd fauzi firmansyah_plant_suhu_polban

Embed Size (px)

Text of Skd fauzi firmansyah_plant_suhu_polban

Page 1: 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

Page 2: Skd fauzi firmansyah_plant_suhu_polban

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

Page 3: Skd fauzi firmansyah_plant_suhu_polban

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

Page 4: Skd fauzi firmansyah_plant_suhu_polban

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

Page 5: Skd fauzi firmansyah_plant_suhu_polban

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

Page 6: Skd fauzi firmansyah_plant_suhu_polban

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

Page 7: Skd fauzi firmansyah_plant_suhu_polban

vi

Daftar Lampiran

Lampiran I Arduino Uno Reference Design

Lampiran II Datasheet Arduino

Page 8: Skd fauzi firmansyah_plant_suhu_polban

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].

Page 9: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 10: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 11: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 12: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 13: Skd fauzi firmansyah_plant_suhu_polban

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].

Page 14: Skd fauzi firmansyah_plant_suhu_polban

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

Page 15: Skd fauzi firmansyah_plant_suhu_polban

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

Page 16: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 17: Skd fauzi firmansyah_plant_suhu_polban

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

Page 18: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 19: Skd fauzi firmansyah_plant_suhu_polban

12

3.3. Script Matlab

Flowchart

Gambar III.7. Flowchart Script Matlab

Page 20: Skd fauzi firmansyah_plant_suhu_polban

13

3.4. Arduino

Flowchart

Gambar III.8. Flowchart Arduino

Page 21: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 22: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 23: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 24: Skd fauzi firmansyah_plant_suhu_polban

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

)

Page 25: Skd fauzi firmansyah_plant_suhu_polban

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;

Page 26: Skd fauzi firmansyah_plant_suhu_polban

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

Page 27: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 28: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 29: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 30: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 31: Skd fauzi firmansyah_plant_suhu_polban

Lampiran I

Arduino Uno Reference Design

Page 32: Skd fauzi firmansyah_plant_suhu_polban

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

Page 33: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 34: Skd fauzi firmansyah_plant_suhu_polban

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().

Page 35: Skd fauzi firmansyah_plant_suhu_polban

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.

Page 36: Skd fauzi firmansyah_plant_suhu_polban

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

Page 37: Skd fauzi firmansyah_plant_suhu_polban

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.