disusun oleh:
PRADU MAS WIBOWO
NIM: 045114058
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
i
FINAL PROJECT
ii
iii
iv
LEMBAR PERNYATAAN KEASLIAN KARYA
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain,
kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah.”
v
HALAMAN MOTTO
Impossible is nothing
HALAMAN PERSEMBAHAN
Kedua Adik – adik ku Neneng dan Rini yang Paling aku Sayangi
Dan
Seseorang Yang Telah Mengisi Hati ku,istriku Mei Li
Dan anak ku james
vi
INTISARI
Sebagian besar kontrol dalam industri yang berkenaan dengan proses tidak hanya
mengendalikan satu variabel saja, melainkan kombinasi dari beberapa variabel input dan
output sehingga dibutuhkan sistem pengendalian yang handal. Kontrol PID
(Proportional-Integral-Derivative) merupakan salah satu metode pengendalian yang
sering digunakan dalam sistem kendali. Penelitian ini bertujuan untuk memperkecil
gangguan unjuk kerja kontrol PID multivariabel dengan sistem decoupler. Pada penelitian
ini kontrol PID digunakan untuk mengendalikan pompa air dan heater air.
Perancangan kontrol PID menggunakan metode kurva reaksi dan kontroler disusun
secara paralel. Kontrol PID dibuat dengan basis algoritma PID digital dengan
menggunakan pemrograman bahasa C. Unjuk kerja kontroler ini dibandingkan
berdasarkan pada tiga parameter yaitu: waktu tunda, waktu naik, steady state error.
Hasil dari penelitian ini merupakan output kontrol PID yang stabil dan waktu
penanganan gangguan kontrol PID yang lebih cepat saat kontrol diberi gangguan yang
berasal dari luar sistem. Kontrol PID dengan decoupler memiliki waktu perbaikan yang
lebih cepat saat sistem diberi gangguan dari luar dengan SSE <5% pada pemodelan
heater. Kontrol PID tanpa decoupler memiliki waktu perbaikan yang lebih lama saat
sistem diberi gangguan dari luar dengan SSE <5% pada pemodelan heater
Kata kunci : PID digital,multivariabel , sistem decoupler
vii
ABSTRACT
Mostly control in respective industry with the process not only control just one
variable, but combination from some variable of input and output so that required a
reliable operation system. PID (Proportional-Integral-Derivative) control is one of
controlling methods that is usually used in control system. This research has a purpose to
minimize the trouble of multivariabel PID control used decoupler system for this
research is used to control the pump and heater.
PID control design which uses curve reaction method and controller are arranged
in parallel form. PID control is made based on PID digital algorithm use C langguage
programming. The performance of these controllers are compared based on three
parameters : delay time, rise time steady state error.
The result of this research represent the stabel output of PID control and faster
handling time , when control given disturban from out of system heater modeling. PID
control use decoupler has shorter delay and rise time when control given disturban from
out of system heater modeling with SSE < 5%. PID control which is unused decoupler
system has longer delay and rise time when control given disturban from out of system
heater modeling with SSE < 5% .
viii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Pradu Mas Wibowo
Nomor Mahasiswa : 045114058
Dibuat di Yogyakarta
Yang menyatakan
ix
KATA PENGANTAR
Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa yang telah
melimpahkan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir
berjudul “Kendali PID untuk mengatur lebih dari satu variabel input output pada
Tugas akhir ini merupakan salah satu syarat untuk memperoleh gelar Sarjana
Teknik pada Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta. Penulisan
tugas akhir ini didasarkan pada hasil - hasil yang penulis dapatkan selama proses
1. Ibu Wuri Harini, S.T., M.T., selaku Pembimbing I yang telah membimbing penulis.
3. Bapak Pius Yozy Merucahyo, S.T., M.T. dan Bapak Petrus Setyo Prabowo, S.T.
sebagai penguji saat ujian kolokium, Bapak Djoko Untoro Suwarno,S.Si.,M.T yang
4. Bapak dan ibu dosen, Bapak laboran dan teman – teman angkatan 2004 teknik
elektro.
Penulis sangat mengharapkan kritik dan saran yang dapat menyempurnakan tulisan.
x
Pradu Mas Wibowo
Halaman
INTISARI.................................................................................................................. vii
ABSTRACT............................................................................................................... viii
BAB I : PENDAHULUAN.......................................................................................1
1.1. Judul....................................................................................................... 1
xi
2.1.1 LM 35 [2]………………………………………………………… 6
A. Program Memory…………………………………………………… 11
B. Data Memory...…………….……………………………………….. 12
E. Intrupsi…..………………………………………………………….. 15
F. Timer...…………………………………...…………………………..18
G. ADC…………………………….…………………………………... 21
2.5.1 Pendahuluan……………………………………………………… 25
xii
2.6 Kendali PID Digital [8]………………………………………………… 29
A. Pengenalan…..……………………………………………………… 34
B. Struktur Dasar...…………………………………………………….. 35
C. Simbol Thyristor………………….………………………………… 35
2.10 Decoupler[11]………………………………………………………… 37
2.10.1 Variabel…………………………………………………………. 37
xiii
3.5 Perancangan Input OutPut……………………………………………... 59
A.Inisialisasi………………………………………………...66
C.Baca sensor……………………………….……………... 68
A. SetPoint 6 cm…………………………………………………… 72
B.Setpoint 9 cm…………………………………………………….. 73
C.Setpoint 12 cm…………………………………………………… 74
xiv
4.5 Sistem tanpa decoupler dan gangguan pengendalian dari luar ……….. 80
DAFTAR PUSTAKA................................................................................................ 84
Lampiran................................................................................................................... L1
Lampiran.................................................................................................................... L2
Lampiran.................................................................................................................... L3
Lampiran.................................................................................................................... L4
Lampiran.................................................................................................................... L5
xv
DAFTAR GAMBAR Halaman
Gambar 2.19 fungsi waktu sinyal keluaran masukan untuk kontroller PID ……… 26
xvi
Gambar 2.20 Kurva respons tangga satuan 25 % lonjakan maksimum…………… 27
xvii
Gambar 3.15 Simulasi ZCD…………………………………………………….….. 50
Gambar 4.12 Kurva tanggapan transient pada set point 50°C …………………….. 76
Gambar 4.13 Kurva tanggapan transient pada set point 70°C …………………….. 77
xviii
Gambar 4.14 Kurva tanggapan transient pada set point 90°C …………………….. 78
Gambar 4.16 Grafik suhu dan level dengan tanpa sistem decoupler……………… 81
Tabel 2.15 Penalaan paramater PID dengan metode kurva reaksi …………………29
xix
Tabel 3.1 Bentuk matrik 2x2………………………………………………………. 55
xx
xxi
1
BAB I
PENDAHULUAN
1.1 Judul
Kendali PID untuk mengatur lebih dari satu variabel input output pada pemodelan
Perkembangan ilmu dan pengetahuan yang semakin cepat baik di dunia, maupun di
Indonesia sendiri yang disertai dengan perkembangan ilmu – ilmu teknik kontrol baru
ataupun pengembangan dari ilmu teknik kontrol yang sudah ada ,memegang peranan
penting dalam kehidupan. Teknik kontrol automatik sangat diperlukan pada pesawat
ruang angkasa, sistem kemudi pesawat , pengendalian rudal, juga dalam proses industri .
kontrol dua posisi , on dan off saja, kontrol proposional (P) , kontrol integral (I), kontrol
proposional integral (PI), kontrol proposional dan derivatif (PD), dan kontrol proposional
integral derivatif (PID). Di samping itu terdapat beberapa aksi kontrol lain seperti teknik
Proposional Integral Derivatif atau yang sering dikenal dengan PID merupakan salah
satu teknik control close loop yang paling tua namun masih digunakan sampai sekarang
karena teknik kontrol PID ini memiliki keunikan tersendiri terhadap setiap plant yang
dikontrol dan dapat diaplikasikan dengan berbagai macam media baik secara analog yaitu
dengan menggunakan rangkaian elektronik biasa atau diaplikasikan secara digital yaitu
Sebagian besar sistem kontrol dalam industri yang berkenaan dengan proses seperti
suhu , tekanan, aliran, level ketinggian tidak hanya mengendalikan satu variabel input
atau output saja pada suatu plant, melainkan kombinasi dari beberapa variabel input dan
output. Supaya variabel input satu dengan yang lain tidak saling terganggu diperlukan
decoupler sebagai salah satu sistem yang mengaturnya. Pada perancangan ini akan
dirancang kendali PID berbasis mikrokontroler untuk mengendalikan dua variabel , level
2. Membuat perangkat lunak untuk proses pengendalian suhu dan level pada set
point tertentu.
3. Mengaplikasikan kendali PID digital untuk pengendalian lebih dari satu variabel.
MODELING ini lebih diarahkan dan difokuskan pada hal – hal sebagai berikut:
decoupler
3
2. Hanya digunakan pada plant dengan ukuran panjang 25 cm lebar 24 cm dan tinggi
3. Suhu yang dikontrol berkisar 50 sampai 90 derajat celcius dengan ketinggian air
maksimum 13 cm
Agar dapat melakukan perancangan alat dengan baik, maka penulis membutuhkan
6. Pembuatan laporan.
BAB I : PENDAHULUAN
BAB ini berisi latar belakang penelitian, tujuan dan manfaat penelitian, batasan
BAB ini berisi studi pustaka tentang landasan teori penelitian: Triac, sensor suhu ,
BAB ini berisi tentang diagram blok perancangan perangkat keras (hardware) dan
BAB ini berisi hasil perancangan, pengujian, analisis data dan pembahasan
BAB ini berisi tentang kesimpulan dan saran penulis tentang alat yang dibuat.
5
BAB II
DASAR TEORI
Dalam sebuah industri plant tidak hanya digunakan untuk keperluan satu
parameter pemrosesan tetapi bisa lebih dari satu pemrosesan misalnya proses
pengendalian suhu dan level . Oleh karena itu diperlukan teknik pengendalian yang tepat
Kendali PID digital multivariabel merupakan teknik pengendalian secara close loop
dengan mengkombinasikan dua atau lebih besaran yang diukur dalam hal ini adalah suhu
air dan level air bertujuan meminimalkan gangguan antara satu besaran dan yang lainya
4. Mikrokontroler
8. Thyristor
9. Decoupler
Pada bab ini akan dibahas juga dasar- dasar penggunaan rangkaian dan rumus –
rumus dalam perhitungan yang akan digunakan pada bab tiga saat melakukan
perancangan terutama penentuan koefisien PID dan sistem decoupler dua variabel input
2.1.1 LM 35 [2]
melakukan pengukuran suhu, keluaran sensor adalah tegangan (V) dengan resolusi 10 mV
10. Memiliki impedansi keluaran yang kecil, 0,1 W untuk beban 1 mA.
7
masukan dari sinyal masukan yang lainya guna mendapatkan nilai kalibrasi yang sesuai
Vo =
R2
[V 2 − V 1] ……………………………………………...………(2.1)
R1
akan menghasilkan tegangan masukan pembalik V1. Tegangan masukan diperkuat oleh
umpan balik RB. Ini menghasilkan umpan balik negatif karena keluarannya berbeda 1800
dengan masukan. Dengan kata lain, setiap perubahan pada V1 dihasilkan oleh tegangan
RB
VO = − R × Vin …………………….…………………… (2.2)
A
RB
Vee
4
8
1
RA
2 -
V1 6
3 +
Vin Vo
CA3130
U1
7
5
Vcc
Rangkaian pembagi tegangan merupakan rangkaian yang terdiri dari resistor yang
dikonfigurasikan seperti pada gambar 2.5. Vout ditentukan dengan persamaan 2.5
R2
Vout = xVCC …………………………………………….….. (2.3)
R1 + R2
VCC
R1
Vout
R2
Merupakan sebuah sistem yang digunakan untuk mendeteksi awal nilai dan akhir nilai
satu , pada sebuah gelombang sinus ZCD akan mengeluarkan logika tinggi ketika
gelombang sinus bernilai tinggi sampai nol ,dan akan berlogika 0 saat gelombang sinus
berada pada nilai negatif prinsipnya bekerja seperti komparataor dan menggunakan
Vi
I1 = ……………………………………………………….(2.4)
R1
10
gambar ZCD yang sudah dimodifikasi karena keluaran ZCD + saturasi maka dibatasi
dengan zener supaya besarnya keluaran ZCD dapat langsung diolah secara digital. ZCD
• Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
• Analog Comparator
11
ATmega 32 memiliki dua jenis memori yaitu Data Memory dan Program Memory
A. Program Memory
menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi dua
bagian yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section
digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan
pada saat AVR reset atau pertama kali diaktifkan. Application Flash Section digunakan
untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalankan
program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori
Boot Flash Section dapat diprogram dari 128 word sampai 1024 word tergantung setting
pada konfigurasi bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program
B. Data Memory
Gambar berikut menunjukkan peta memori SRAM pada ATmega 32. Terdapat 608
96 lokasi alamat digunakan untuk Register File dan I/O Memory sementara 512 lokasi
alamat lainnya digunakan untuk internal data SRAM. Register File terdiri dari 32
Lokasinya terpisah dengan sistem address register, data register dan control register
dari eksekusi instuksi aritmatika. Informasi ini berguna untuk mencari alternatif alur
Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan.
Bit ini akan clear ketika ada interrupt yang dipicu dari hardware. Setelah
program interrupt dieksekusi, maka bit ini harus di set kembali dengan instruksi
SEI.
Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan
Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s Complement
Overflow Flag V.
Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.
Jika operasi aritmatika menghasilkan bilangan nol, maka bit ini akan set
D. Register I/O
Setiap port ATmega 32 terdiri dari 3 register I/O yaitu DDRx, Portx dan PINx.
DDRx (Data Direction Register), register DDRx digunakan untuk memilih arah pin. Jika
DDRx = 1 maka Pxn sebagai pin output ,jika DDRx = 0 maka Pxn sebagai input.
Portx (Port Data Register)Register Portx digunakan untuk 2 keperluan yaitu untuk jalur
output atau untuk mengaktifkan resistor pullup. Portx berfungsi sebagai output jika DDRx =
1 maka jika Portxn = 1 maka pin Pxn akan berlogika high. Jika Portxn = 0 maka pin Pxn
akan berlogika low. Portx berfungsi untuk mengaktifkan resistor pull up jika DDRx = 0
maka jika Portxn = 1 maka pin Pxn sebagai pin input dengan resistor pull up. Jika Portxn
Catatan :
E. Interupsi
utama untuk mengeksekusi rutin interrupt tertentu Interrupt Service Routine (ISR)
yaitu mengeksekusi vektor utama .Sesuai dengan prioritas vektor tersebut pada tabel di
0 0 0 Idle
0 1 0 Power-down
0 1 1 Power-save
1 0 0 Reserved
1 0 1 Reserved
1 1 0 Standby
1 1 1 Extended Standby
intrupsi
intrupsi
intrupsi
ISC01, ISC00 Interrupt Sense Control 0 Bit. Digunakan untuk memilih jenis pulsa
trigger External
intrupsi
intrupsi
intrupsi
18
F. Timer
Timer pada dasarnya hanya menghitung pulsa clock. Frekuensi pulsa clock yang
dihitung tersebut bisa sama dengan frekuensi crystal yang dipasang dan dapat
diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024. Berikut
penjelasannya .Sebuah AVR menggunakan crystal dengan frekuensi 8 MHz dan timer
yang digunakan adalah timer 16 bit, maka maksimum waktu timer yang bisa dihasilkan
adalah :
= 0.12Sx 65536
= 0.008192 s
Untuk menghasilkan waktu timer yang lebih lama dapat digunakan prescaler, misalnya
= 8.388608 s
ketelitiannya menjadi turun. Misalnya dengan prescaler 1024 nilai timer akan
bertambah 1 setiap kelipatan 1024 pulsa dan membutuhkan waktu 1/fCLK x 1024 =
0.125us x 1024 = 128 us d i bandingkan tingkat resolusi ini jika tanpa precsaler
(0.125us).
Timer 16 Bit Normal Mode, pada mode normal, TCNT1 akan menghitung naik dan
0x0000. untuk menggunakan timer cukup dengan memasukkan nilai yang diinginkan ke
TCNT1 dan menunggu sampai terjadi interrupt. yang digunakan pada timer yang
19
menghitung mundur. Untuk timer yang menghitung maju, maka harus memasukkan nilai
Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag (TIFR)
cara melakukan setting pada TIMSK dan untuk mengetahui interrupt mana yang sedang
terjadi.
20
Tiga bit pemilih prescaler timer/counter 1 dan hubungannya dengan clock eksternal
Merupakan fasilitas mikrokontroler yang digunakan untuk membaca data analog dan
Inisialisasi ADC meliputi proses penentuan clock ADC pemilihan saluran tegangan
referensi ADC , format keluaran data dan mode pembacaan. Register yang menangani
ADC internal ini adalah ADMUX berfungsi menentukan tegangan referensi ADC,
format data keluaran , dan pemilihan jalur masukan Komponen ADMUX dapat dilihat
pada tabel 2.9. Register SFIOR berfungsi untuk mengatur sumber picu konversi ADC.
Komponen register ini dapat dilihat pada tabel 2.12, Regiter ADCSRA berfungsi
melakukan manajemen sinyal control dan status dari ADC, komponen bitnya dapat dilihat
Bit 7 6 5 4 3 2 1 0
R/W
REFS (1:0) (Reference Selection Bit), digunakan sebagai pemilih sumber tegangan
referensi dari ADC . ADLAR (ADC Left Adjust Result) digunakan untuk menentukan
konfigurasi isi dari register ADCH dan ADL sebagai tempat menyimpan hasil konversi.
23
Bit 15 14 14 12 11 10 9 8
- - - - - - ADC9 ADC8
Bit 7 6 5 4 3 2 1 0
Bit 15 14 14 12 11 10 9 8
ADC1 ADC0 - - - - - -
Bit 7 6 5 4 3 2 1 0
ADTS(2:0) (ADC Auto Triger Source) untuk menentukan mode dari ADC yang
digunakan. ADEN (ADC Enable) berfungsi untuk mengaktifkan ADC jika bernilai satu .
ADSC (ADC Start Converstion) akan bernilai nol jika selesai mengkonversi dan bernilai
ADATE (ADC Auto Triger Enable), berhubungan dengan bit (ADTS) pada register
SFIOR . Jika bernilai satu maka menyebabkan triger otomatis akan aktif. ADIF (ADC
Intrrupt Flag) bit ini akan aktif , jika konversi telah selesai dan dapat memicu interupsi ,
Bit 7 6 5 4 3 2 1 0
Bit 7 6 5 4 3 2 1 0
Jika ADIE (ADC Interrupt Enable) bernilai bit 1 pada SREG 1 dan terjadi picuan dari
ADPS (2:0) ( ADC Prescaler Select Bits) mendifinisikan faktor pembagi dari sumber
Sedangkan Vref merupakan nilai tegangan referensi maksimal yang diberikan untuk
penggunaan ADC.
atas tinjauan terhadap karakteristik yang diatur (Plant). Dengan demikian betapapun
rumitnya suatu plant, perilaku plant tersebut harus diketahui terlebih dahulu sebelum
Karena penyusunan model matematik plant tidak mudah, maka dikembangkan suatu
metode eksperimental. Metode ini didasarkan pada reaksi plant yang dikenai suatu
perubahan. Dengan menggunakan metode itu model matematik perilaku plant tidak
diperlukan lagi, karena dengan menggunakan data yang berupa kurva keluaran, penalaan
2.5.1 Pendahuluan
Keberadaan kontroler dalam sebuah sistem kontrol mempunyai kontribusi yang besar
terhadap prilaku sistem. Pada prinsipnya hal itu disebabkan oleh tidak dapat diubahnya
sebagaimana adanya, sehingga perubahan perilaku sistem hanya dapat dilakukan melalui
penambahan suatu sub sistem, yaitu kontroler. Salah satu tugas komponen kontroler
adalah mereduksi sinyal kesalahan, yaitu perbedaan antara sinyal setting dan sinyal
aktual. Hal ini sesuai dengan tujuan sistem kontrol adalah mendapatkan sinyal aktual
senantiasa (diinginkan) sama dengan sinyal setting. Semakin cepat reaksi sistem
mengikuti sinyal aktual dan semakin kecil kesalahan yang terjadi, semakin baik kinerja
Apabila perbedaan antara nilai setting dengan nilai keluaran relatif besar, maka
kontroler yang baik seharusnya mampu mengamati perbedaan ini untuk segera
menghasilkan sinyal keluaran untuk mempengaruhi plant. Dengan demikian sistem secara
cepat mengubah keluaran plant sampai diperoleh selisih antara setting dengan besaran
Setiap kekurangan dan kelebihan dari masing-masing kontroler P, I dan D dapat saling
Gambar 2.19 Hubungan dalam fungsi waktu antara sinyal keluaran dengan masukan
Karakteristik kontroler PID sangat dipengaruhi oleh kontribusi besar dari ketiga
penonjolan sifat dari masing-masing elemen. Satu atau dua dari ketiga konstanta tersebut
27
dapat disetel lebih menonjol dibanding yang lain. Konstanta yang menonjol itulah akan
Penalaan parameter kontroller PID selalu didasari atas tinjauan terhadap karakteristik
yang diatur (Plant). Dengan demikian betapapun rumitnya suatu plant, perilaku plant
tersebut harus diketahui terlebih dahulu sebelum penalaan parameter PID itu dilakukan.
Karena penyusunan model matematik plant tidak mudah, maka dikembangkan suatu
metode eksperimental. Metode ini didasarkan pada reaksi plant yang dikenai suatu
perubahan. Dengan menggunakan metode itu model matematik perilaku plant tidak
diperlukan lagi, karena dengan menggunakan data yang berupa kurva keluaran, penalaan
kontroler PID telah dapat dilakukan. Penalaan bertujuan untuk mendapatkan kinerja
sistem sesuai spesifikasi perancangan. Ogata menyatakan hal itu sebagai alat control
(controller tuning) metode pendekatan eksperimen yang akan digunakan adalah Ziegler-
Nichols .
ini memiliki dua cara, metode osilasi dan kurva reaksi. Kedua metode ditujukan untuk
Metode ini didasarkan terhadap reaksi sistem untaian terbuka. Plant sebagai untaian
terbuka dikenai sinyal fungsi tangga satuan. Kalau plant minimal tidak mengandung
unsur integrator ataupun pole-pole kompleks, reaksi sistem akan berbentuk S. Gambar
2.22 menunjukkan kurva berbentuk S tersebut. Kelemahan metode ini terletak pada
ketidak mampuan untuk plant integrator maupun plant yang memiliki pole kompleks.
Kurva berbentuk-s mempunyai dua konstanta, waktu mati (dead time) L dan waktu
tunda T. Dari gambar 2.22 terlihat bahwa kurva reaksi berubah naik, setelah selang waktu
L. Sedangkan waktu tunda menggambarkan perubahan kurva setelah mencapai 66% dari
29
keadaan mantapnya. Pada kurva dibuat suatu garis yang bersinggungan dengan garis
kurva. Garis singgung itu akan memotong dengan sumbu absis dan garis maksimum.
Perpotongan garis singgung dengan sumbu absis merupakan ukuran waktu mati, dan
perpotongan dengan garis maksimum merupakan waktu tunda yang diukur dari titik
waktu L.
Penalaan parameter PID didasarkan perolehan kedua konstanta itu. Zeigler dan
Nichols melakukan eksperimen dan menyarankan parameter penyetelan nilai Kp, Ti, dan
Td dengan didasarkan pada kedua parameter tersebut. Tabel 2.15 merupakan rumusan
Tipe Kp Ti Td
Kontroler
P T/L ~ 0
Fungsi utama dari kontroler digital sama dengan kontroler analog .Perbedaan yang
utama yaitu konroler digital tidak dapat menerima sinyal analog langsung. Dengan
keterbatasan tersebut maka diperlukan ADC untuk mengubah sinyal analog ke bentuk
digital dalam bentuk bilangan biner dan sebaliknya DAC untuk mengubah data digital
menjadi data analog. Gambar 2. 23 memperlihatkan blok diagram sebuah kendali digital.
Pada kendali PID digital untuk memperoses algoritma PID dengan cara yang efisien
maka proses dari integral dan diferensial diubah ke dalam bentuk aljabar yang ringkas.
u ⎛ 1 ⎞
( s ) = H ( s ) = Kp⎜⎜1 + + Td s ⎟⎟ ………………………………………….(2.8)
s ⎝ Ti s ⎠
⎛ 1
t
de(t ) ⎞
u (t ) = KP⎜⎜ e(t )
⎝ Ti s ∫
0
e(t ) dt + Td
dt
⎟ ……………………………….(2.9)
⎟
⎠
31
Karena data E(n+1) adalah data yang akan datang dan belum tersedia , maka
perhitungan data yang akan datang digunkan data yang saat ini E(n) jika n adalah t untuk
i = nT
KD
V(n)= K p E(n)+ K I T ∑ E (i ) + [ E (n) − E (n − 1)] ……………………(2.10)
i =0 T
Kp + T Kp + Td
Dengan Ki = dan Kd = T = waktu sampling
Ti T
Tampilan LCD merupakan karakter dengan resolusi dua baris dan masing masing
baris terdapat enam belas karakter yang bisa digunakan sesuai dengan data yang
Display karakter pada LCD diatur oleh pin EN, RS dan RW ,jalur EN dinamakan
Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sedang mengirimkan sebuah
data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika
low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain
telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu ( sesuai
dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap
33
sebagi sebua perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ).
Ketika RS berlogika high “1”, data yang dikirim adalah data teks yang akan ditampilkan
Bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh
user ). Pada data 8 bit, jalur diacukan sebagai DB0 s/d DB7 jalur data
Karena menggunakan bahasa C dan sudah terdapat file LCD.h sebagi header file yang
akan disertakan kedalam mikrokontroler maka penulisan tampilan LCD menjadi lebih
lcd_init(X);
merupakan perintah untuk menginisialisasi berapa banyak ruang karakter yang akan
lcd_clear();
Perintah ini digunakan untuk menghapus tampilan dan Ram sementara LCD
Perintah ini digunakan untuk menuliskan karakter, yang terdapat dalam tanda kurung
petik dua ke dalam LCD. \n digunakan untuk memindahkan tulisan ke baris dua yang
ada dibawah..
lcd_puts(lcd_buffer);
Perintah ini digunakan untuk memasukan nilai – nilai ke dalam register tunggu sebelum
ditampilkan LCD .
Lcd_gotoxy(x,y);
Perintah yang digunakan untuk meletakan kursor pada baris x, kolom y. x dan y adalah
sprintf(lcd_buffer,"SetPoint Level\nLevel:%uCm",B);
34
Perintah berikut akan menampilkan tulisan “ SetPoint Level” pada baris atas LCD dan
“Level:…..Cm” pada baris bawah. %u digunakan untuk menampilkan nilai dari variabel
B . Karena menggunakan file header LCD.h pada Codevision makan untuk koneksi
antarmuka LCD dan mikrokontroler juga harus disesuaikan seperti pada tabel berikut:
1 GND 11 GND
2 +5V 10 VCC
4 RS 22 Port C.0
5 RD 23 Port C.1
6 EN 24 Port C.2
11 D4 26 Port C.4
12 D5 27 Port C.5
13 D6 28 Port C.6
14 D7 29 Port C.7
Jalur data yang digunakan sebanyak 4 bit dan dalam 1 port sudah bisa mencukupi
kebutuhan antarmuka LCD 2x16 karakter ini. Sehingga dapat menghempat penggunaan
A. Pengenalan
penyearah. Merupakan salah satu bagian dari power device yang mampu menangani daya
yang besar. Konstruksinya terdiri dari empat lapisan sambungan pn. Thyristor bekerja
35
seperti saklar yang dapat dinyalakan dengan mengendalikan terminal “gate”-nya tetapi
B. Struktur Dasar
C. Simbol Thyristor
z Dari simbol diatas dapat diketahui bahwa Thyristor adalah dioda penyearah yang
z Grafik mirip grafik karakteristik dioda; saat mendapat bias balik akan
VRWM dapat mencapai 7000 Volt. Pada saat bias reverse terjadi arus bocor reverse
( IR ).
z Keadaan forward blocking terjadi ketika tegangan anoda diberi tegangan lebih
berada pada keadaan bias maju. Namun sambungan J2 dalam keadaan bias balik (
off state ) dan arus bocor dikenal sebagai arus off – state ID.
breakdown voltage, VBO. Pada saat itu akan terjadi arus anode yang besar yang
z Arus anode harus lebih besar dari holding current IH, agar diperoleh cukup banyak
menghantar. Jika tidak maka devais akan kembali pada keadaan forward blocking.
37
z Thyristor juga dapat dibuat menghantar dengan cara meningkatkan VAK ( dapat
merusak thyristor ). Dalam prakteknya VAK diberikan pada batas bawah nilai VBO
dan thyristor dihidupkan dengan memberikan sinyal positif antara gerbang dan
katoda.
Cahaya.
akan meningkat. Cara ini dapat dilakukan dengan membiarkan mengenai waffer
thyristor.
Arus gerbang.
Jika suatu thyristor diberi tegangan maju, injeksi arus pada gerbang dengan
memberi tegangan positif gerbang – katoda akan membuat thyristor on. Ketika
2.10 Decoupler[11]
atau mengeliminasi gangguan interaksi tersebut dibutuhkan sebuah sistem yang tepat,
2.10.1 Variabel
Merupakan banyaknya variabel yang akan dikendalikan pada sebuah sistem proses
sehingga terdapat keluaran yang terpengaruh antara variabel satu dengan yang lainnya.
38
M1 C1
K11
K12
K21
M2 K22
C2
∆ C1
K11 = …………………………………………………………(2.12)
∆ M1
M2
∆ C1
K12 = ……………………………………………………...….(2.13)
∆M2
M1
∆ C2
K 21 = ………………………………………………………….(2.14)
∆ M1
M2
∆ C2
K 22 = ……………………………………………………...…(2.15)
∆M2
M1
∆ C1
K ' 11 = …………………………………………………..……..(2.16)
∆ M1
C2
39
∆ C1
K ' 12 = ……………………………………………………..….(2.17)
∆M2
C2
∆ C2
K ' 21 = ……………………………………………………….....(2.18)
∆ M1
C1
∆ C2
K ' 22 = ……………………………………………………..….(2.19)
∆M2
C1
Sehingga dari kedua kedaan sebelumnya dapat diperoleh U i j atau relatif gain untuk
semua K
K 11
U 11 = …………………………………………………………...(2.20)
K '11
K 12
U 12 = …………………………………………………………..(2.21)
K '12
K 21
U 21 = …………………………………………………………..(2.22)
K ' 21
K 22
U 22 = …………………………………………………………..(2.23)
K ' 22
Dari hasil Gain open loop diperoleh perbandingan matrik 2 x 2 yaitu dua variabel
masukan dan dua variabel keluran .C= variabel keluran dan M = variabel masukan
M1 M2
C1 K11 K12
C2 K21 K22
40
Kemudian dicari relatif Gain untuk masing - masing K sesuai dengan rumus pada
M1 M2
C1 U11 U12
C2 U21 U22
Maka diperoleh pasangan yang tepat yaitu yang memiliki nilai paling besar dan
tidak negatif. Misal U11 dan U22. Perancangan pengendali yang akan digunakan yaitu C1
– M1 dan C2 – M 2.Berdasarkan grafik data hasil open loop, sedangkan U21 dan U12
H1
Gv1 G11 +
Gc1 +
G21
D21
D12
G12
Gc2
+
Gv2 G22 +
H2
G12( s )
D12( s ) = …………………………………………………………….(2.24)
G11( s)
G 21( s )
D 21( s) = .......………………………………………………………..(2.25)
G 22( s )
41
BAB III
PERANCANGAN
Ada pun bagian – bagian dari perancangan yang akan dibuat pada penelitian kendali
PID untuk mengatur lebih dari satu variabel input output pada pemodelan heater (Multi
2. Perancangan decoupler
Secara garis besar model perancangan yang akan dibuat adalah sebagai berikut:
Dalam penelitian ini sistem heater modeling digunakan untuk menjaga level
ketinggian air tertentu pada sebuah sistem pemanas air atau heater ketika terjadi
42
penyusutan volume air, akibat air di dalam tangki dipanaskan. Dengan demikian air tidak
akan habis karena ada sistem PID yang mengendalikan pompa untuk tetap memasukan air
ke tangki pada set point yang sudah ditentukan sehingga heater air tidak rusak. Proses
pemanasan air akan terus berlangsung sampai suhu air mencapai set point yang
diharapkan.
Plant dan aktuator merupakan bagian dari sebuah sistem yang akan dikendalikan.
Dalam penelitian ini, sistem pengendalian menggunakan teknik kontrol PID digital.
Sistem ini terdiri dari dua bagian aktuator yaitu motor pompa air satu phasa, dan empat
heater air AC 220 / 300 W dengan plant berupa dua tangki air, satu sebagai supplay air
dan yang lain sebagai tangki pemanas air sseperti pada gambar 3.2 berikut.
2. Tangki Bagian B
3. Heater air
6. Tangki bagian A.
3.1.1 Tangki A
Tangki A memiliki sepsifikasi panjang 50 cm, lebar 30 cm dan tinggi 30 cm. Dalam
tangki terdapat sebuah motor Ac 1 fase. Motor ac tersebut merupakan motor pompa air
3.1.2 Tangki B
Tangki B merupakan tempat proses pemanas air dengan menggunakan empat heater
air masing – masing AC 220 / 300 watt dan penentu ketinggian level air berlangsung
.Semua proses dan parameter pengukuran terdapat pada tangki B. Tangki B memiliki
Pada perancangan ini digunakan rancangan driver Triac yang di kendalikan melalui
kaki gate dan MOC sebagai pengaman dari bagian DC terhadap bagian AC. Pada
perancangan ini digunakan rangkaian yang di sarankan dari data sheet MOC seperti pada
gambar 3.4 . yang dikendalikan melelui PWM dari bagian input MOC
J3
R1 1200 1
R2 2
J2 J1
To Load
1 1 8 Q1
2 2 7 180 Q4008L4/TO
3 6
In
4 5 1u C1
MOC
J4
1
2
AC 220/50 Hz
Sensor digunakan untuk membaca keadaan yang terjadi atau alat yang digunakan
untuk mengubah satu besaran ke besaran yang lainnya. Pada penelitian ini digunakan dua
sensor, sensor suhu LM 35 dan sensor potensiometer yang dimodifikasi menjadi sensor
pengukur ketinggian air. Kedua sensor yang digunakan mengkonversi besaran suhu ke
dalam bentuk level tegangan DC ,dan ketinggian air ke dalam level tegangan DC .
linear dan tingkat errornya sangat kecil. Pada perancangan data yang diperoleh untuk
batasan – batasan penggunaan level tegangan digital. Karena suhu air tidak bisa tetap dan
selalu berubah – rubah meyesuaikan dengan suhu ruangan tempat air maka digunakan
Maka :
Vo R 2
AV = − = .........................................................................................(3.0)
Vi R1
5
AV = −
1
AV = −5
R1 =10K ohm
R2 =AV.10K
=50K ohm
50k
R1
VE 10k
10k R3
X3 R2 VE
X1 10k 10
R4 VE R5
VC
X2 Vo T
VC
V Sensor
VC D1
Dari gambar 3.6 diharapkan adalah tegangan keluaran setelah pengkondisi sinyal
mempunyai range 5 V pada 100 derajat celcius dengan keluran sensor sebesar 1 volt,
keluran sensor diberi buffer non inverting agar tidak terjadi jatuh tegangan. Keluaran dari
penguat non invreting adalah sinyal minus sehingga dikalikan satu kali dengan penguat
50k
VE
R1
241.03m -15
X2 VE
R4
347.508u -15
X1 10kVE
R3 10
240m VC -1.199 335.253u -15
10k X3 R7
240mv 15 R5
-697.297u VC 1.2
V3 10k
15
-697.404u VC 1.2
R2
15
10k R6 D1
10k
Dari hasil simulasi menunjukan batas bawah sensor suhu pada keluaran 240 mV (suhu
air pada malam hari), setelah melewati pengkondisi sinyal memiliki keluaran 1,2 V .
Sedangkan untuk batas atas dengan keluaran sensor sebesar 1 V,setelah melewati
5,1 Volt.
50k
VE
R1
1.001 -15
X2 VE
R4
366.934u -15
X1 10kVE
R3 10
1 VC -4.998 315.857u -15
10k X3 R7
1v 15 R5
-697.128u VC 5
V3 10k
15
-697.573u VC 5
R2
15
10k R6 D1
10k
pembagi tegangan .Sistem sensor menggunakan teknik pelampung dan tangkai yang
memutar potensio pada saat terjadi perubahan ketinggian air. Akibat terjadi perubahan
nilai hambatan potensio terjadi perubahan juga pada pembagi tegangan . Nilai perubahan
mempunyai range dari 0 sampai 5 V .Dengan memasukkan rumus (3.1) dan apabila m
sama dengan penguatan maka dapat dihitung besarnya penguatan sebagai berikut:
y 2 − y1
m= ………………………………………………………(3.1)
x 2 − x1
5−0
m=
3,9 − 2,7
m = 4,17
48
Dari rumus persamaan garis gradien seperti persamaan (3.1) dapat digunakan untuk
0 = 4,17 . 2,7 + Vo
Vo = - 11,259 V
Sehingga besarnya nilai Vout setelah keluar dari pengkondisi sinyal adalah
= 4,17 . [ Vin + ⎜ − ]
⎛ 11,259 ⎞
Vout ⎟
⎝ 4,17 ⎠
Vx = 2,7 ( V pengurangan )
R1 = 10k
R2 = R1 . Gain
= 10k.4,17
Sama seperti pada pengkondisi sinyal untuk suhu D1 merupakan dioda Zener 5,1 V
Hasil perhitungan dan simulasi dapat diketahui bahwa setiap batas bawah sensor tidak
mencapai angka 0 V namun masih dalam orde mili volt dengan nilai masih di bawah 20
5
Vout = 256
Besar nilai batas bawah masing – masing sensor masih dianggap sama dengan 0 Volt.
merupakan output hasil dari perhitungan dengan gelombang AC yang digunakan untuk
D2 merupakan dioda zener digunakan untuk membatasi tegangan keluran menjadi 5,1 V
sehingga dapat langsung diolah mikrontroler. Gambar 3.15 merupakan hasil simulasi dari
ZCD .saat tegangan AC positif output ZCD akan menghasilkan tegangan positif dan pada
saat tegangan AC negatif output ZCD akan berada pada tegangan nol. ZCD . ZCD terjadi
Hasil data open loop pengendalian heater diperoleh empat grafik sebagai berikut :
51
63.2%
3
0
0 10 20 30 40 50 60 70 80 90
Time(detik)
1
Keluaran Sensor level (Volt)
6
0 50 100 150 200 250 300
Time (detik)
1
Keluaran Sensor Suhu (Volt)
5
0 10 20 30 40 50 60 70 80
Time (detik)
Untuk gambar 3.17 pengambilan data dilakukan dengan cara pengisian tangki sampai
maksimum 14 cm kemudian pompa dimatikan, driver heter diberi sinyal masukan 5 volt
Gambar 3.18 pengambilan data dilakukan dengan cara tangki di isi air 5 cm kemudian
heter diaktifkan setelah suhu mencapai 90 ° C, pompa diaktif mengisi tangki kemudian
4
Keluaraan Sensor Suhu (Volt)
63.2%
3
0
0 50 100 150 200 250 300 350
Time (detik)
Dari gambar empat grafik diatas diperoleh hasil yang akan digunakan dalam merancang
decoupler dan kendali PID yang sesuai. bagan persamaan sebagai berikut:
K 21 = gambar 3.18
K 22 = gambar 3.19
5 − 0.8 100%
K= =0,84
100% 5
L = 4 detik
T = 43 detik
τ =T–L
= 43 – 4
= 39 detik
K e −t 0 s
G ( s) =
τ s +1 dimana t0 = L
0,84 e − 4 s
G11( s ) =
39s + 1
0.8 − 5 100%
K= = − 0,84
100% 5
L = 600 detik
54
T = 10800 detik
τ =T–L
= 10800 – 600
= 10200 detik
K e −t 0 s
G ( s) =
τ s +1 dimana t0 = L
− 0,84 e −600 s
G12( s ) =
10200s + 1
L = 4 detik
T = 34 detik
τ =T–L
= 34 – 4
= 30 detik
K e −t 0 s
G ( s) =
τ s +1 dimana t0 = L
− 0,44 e −4 s
G 21( s ) =
30s + 1
L = 100 detik
55
T = 1540 detik
τ =T–L
= 1540 – 100
= 1440 detik
K e −t 0 s
G ( s) =
τ s +1 dimana t0 = L
0,7e −100 s
G 22( s ) =
1440 s + 1
Dalam bentuk matrik 2x2 diperoleh hubungan input dan output sebagai berikut:
M1 M2
M1 M2
Diagram blok hasil pasangan yang sesuai matrik relatif gain seperti berikut:
−t 0 S
Untuk perancanngan dalam mikrokontroler nilai e tidak diperhitungkan hasil
= 1.(3400/13-1129/169)
= – 6,511
= 0.628.(1/48+47/69120)
= 0,00046
57
Dirac(t) merupakan fungsi impuls dengan besarnya nilai adalah sama dengan maksimum
pada saat t = 0 .
PID Metode Ziegler-Nichols mengacu pada gambar 3.16 dan gambar 3.19
L = 4 detik
T = 43 detik
τ =T–L
= 43 – 2
= 39 detik
T 43
Kp = 1,2 = 1,2 = 12,9
L 4
58
Ti =2xL
=2x4
= 8 detik
KP.T 12,9.1
Ki = = = 1,6125
TI 8
Menghitung KD :
Td = 0,5 x L
= 0,5 x 4
= 2 detik
Kp .Td 12,9. 2
Kd = = = 25,8
T 1
L = 10 detik
T = 150 detik
τ =T–L
= 250 – 10
= 240 detik
T 150
Kp = 1,2 = 1,2 = 18
L 10
Ti =2xL
= 2 x 10
= 20 detik
59
KP.T 18.1
Ki = = = 0 .9
TI 200
Menghitung Kd :
Td = 0,5 x L
= 0,5 x 10
= 5 detik
Kp .Td 18. 5
Kd = = = 90
T 1
Pada penelitian ini sebagai piranti masukan dan tampilan hasil perhitungan dari sistem
PID multivariabel dengan menggunakan decoupler, menggunakan port input output dari
1. Port B digunakan untuk tampilan LCD memerlukan delapan saluran I/O .dengan 4
2. Port D pin 0,1,2,3 digunakan untuk pemberian masukan set point, dengan teknik
3. Port A, pin 0 dan pin 1 diberi masukan dari keluaran pengkondisi sinyal sensor
yang akan dikonversi dari data analog ke digital (ADC) dengan resolusi 8 bit.
PWM akan memiliki frekuensi sebesar 50 Hz sama seperti frekuensi jala – jala
PLN.
Pada tampilan LCD nilai dari pengukuran level dan suhu bisa langsung dilihat secara
bersama – sama .LCD pertama –tama akan memberikan tulisan pengantar dan menunggu
60
penekanan tombol OK, setelah penekanan tombol OK, LCD akan menampilkan meminta
Penentuan tampilan LCD dan set point dapat digambarkan sebagai berikut:
yang digunakan dan menginisialisasi LCD , memberi memasukan nilai set point suhu dan
61
level, setelah set point dimasukan langkah kedua adalah menunggu sinkornisasi atau
pengendalian level dan suhu dilakukan setiap 1 detik, dilakukan setelah pelayanan
BAB IV
Model heater terbuat dari tangki air A , untuk memanaskan air terdapat empat
pemanas air atau heater masing – masing berdaya 300 watt. Model pemanas air ini tidak
lepas dari satu tangki B, penampung air yang terbuat dari kaca dengan motor AC untuk
memompa air ke tangki A.sistem ini dikendalikan dengan PWM hasil dari perhitungan
Berdasarkan perancangan, pusat kendali dikemas dalam satu kotak yang berisi
driver AC, ZCD, pengkondisi sinyal level dan suhu. kendali mikrokontroler, tombol
Model kontrol heater bekerja pada sumber tegangan dc yang diproleh dengan
menggunakan power supplay komputer, sumber tegangan dc meliputi 12 volt dan -12 volt
digunakan untuk catu pengkondisi sinyal dan ZCD, 5 volt digunakan untuk catu daya
mikrokontroler LCD dan sensor. Rangkaian driver menggunakan rangkaian yang sudah
Kendali PID untuk mengatur lebih dari satu variabel input output pada pemodelan
heater (Multivariabel PID Controler for Heater Modeling) meggunakan pemanas air
pada tangki A dan pompa air elektrik pada tangki B dengan prinsip kerja air yang diisikan
ke tangki A akan dipanaskan. Akibat dari pemanasan tersebut akan megakibatkan level
ketinggian air berkurang sehingga pompa dalam tangki B akan memompa air ke tangki
A. untuk mengatur ketinggian air dan suhu dilakukan dengan memberikan set point
ketinggian air dan suhu pemanasan air pada tangki A sebelum proses pengisian tangki
berlangsung.
64
Gambar 4.4 tampilan awal LCD sebelum tombol OK ditekan .Proses pemasukan set
point terdiri dari tiga bagian yaitu pemasukan set point ketinggian air, pemasukan set
point suhu air dan validasi data yang sudah dimasukan seperti pada gambar berikut:
Saat proses pengisian tangki berlangsung, ketinggian air akan terus dipantau
dengan pelampung air yang terpasang sensor potensiometer pada bagian atas tangkai
pelampung sehingga sistem kendali dapat memproses besarnya lama tegangan untuk
megendalikan PWM yang masuk ke dariver pompa air elektronik, proses pemanasan air
pada tangki A dipantau dengan menggunakan sensor LM 35. Penentuan besarnya lama
tegangan yang diberikan kedua sistem kendali diolah dengan metode PID secara digital,
dengan mengubah tegangan analog dari sensor menjadi data digital melalui ADC.
Perhitungan sebagai nilai awal dilakukan dengan cara mengurangi nilai set point dengan
tegangan keluaran sensor, yang telah dikondisikan untuk penggunaan tegangan reverensi
Nilai kemudian diproses dengan algoritma PID digital. Nilai koefisien parameter
PID diperoleh berdasarkan perhitungan data open loop dengan meggunakan penalaan Z-N
untuk tanggapan transien orde satu dan nilai hasil perhitungan PID digunakan untuk
menentukan lebar pulsa PWM sebagai tanggapan tegangan keluaran dengan lebar pulsa
16 bit pada tegangan 5 volt. Perhitungan PID dilakukan terus menerus selama masih ada
Perhitungan PID juga akan terus berlangsung walaupun pembacaan sensor sudah
mencapai set point yang telah ditentukan, hal ini digunakan untuk mengantisipasi
gangguan dari luar sistem yang dapat mengakibatkan ketidak setabilan proses
pada 92 C
A. Inisialisasi
Blok ini berisi tentang pendefinisian fungsi –fungsi dan variabel yang digunakan
#include<mega32.h>
#asm
.equ __lcd_port=0x18;//0x18 port b
#endasm
#include<lcd.h>
#include<delay.h>
#define mode_ADC 0x20;
char lcd_buffer[33];
unsigned int B,S,cacah;
unsigned int baca_adc(unsigned char pin_adc);
unsigned int Level,Suhu;
long int kp,ki,kd;
long int kp1,ki1,kd1;
//--------- inisialisasi nilai set point
int sp, sp1,M,T;
//--------- inisialisasi var
long int e0,e1,e2,e01,e11,e21;
//--------- inisialisasi var out
long int v0,v1,v01,v11;
//--------- inisialisasi temporary
long int temp1,temp2,temp11,temp21;
// penggunaan fungsi-fungsi
void io_init();
void timer_init();
void ADC_init();
void main(void)
{
io_init();
lcd_init(16);
ADC_init();
timer_init();
kp=12.9*100;//12.9
ki=1.6125*100;//1.6125
kd=24.8*100;//24.8
kp1=18*100;//18
ki1=0.9*100;//0.9
kd1=90*100;//90
e0 = 0;
e1 = 0;
e2 = 0;
v0 = 0;
v1 = 0;
temp1 =0;
temp2 = 0;
e01 = 0;
67
e11 = 0;
e21 = 0;
v01 = 0;
v11 = 0;
temp11 =0;
temp21 = 0;
OCR1B=1023;
OCR1A=1023;
T=0;
M=0;
cacah=0;
B. Set Point
Blok ini menjelaskan bagai mana memasukan nilai set point yang langsung dapat
dikenali oleh program sehingga nilai tersebut bisa langsung di olah dalam perhitungan
while(1)
{
lcd_clear();
sprintf(lcd_buffer,"PID Digital\nMikro ATmega32");
lcd_puts(lcd_buffer);
delay_ms(200);
if(PIND.0==1) //run=tombol4
break;
}
while(1)
{
if (PIND.1==1) // count UP tombol2
{B=B+1;
sp=B;
}
if (PIND.2==1) // count Down
{B=B-1;
sp=B;
}
if(B<=0)
B=14;
if(B>=14)
B=0;
lcd_clear();
sprintf(lcd_buffer,"SP.Level[3...14]\nLevel:%uCm",B);
lcd_puts(lcd_buffer);
delay_ms(200);
if(PIND.0==1) //ok tombol1
break;
}
while(1)
{
sp1=S;
}
if (PIND.2==1) // count Down
{ S=S-5;
sp1=S;
}
if(S<=0)
S=100;
if(S>=100)
S=0;
lcd_clear();
sprintf(lcd_buffer,"SP.Temp [30..95]\nTemperatur :%uC",S);
lcd_puts(lcd_buffer);
delay_ms(200);
if(PIND.0==1) //ok tombol1
break;
}
while(1)
{
sp=B;
sp1=S;
lcd_clear();
sprintf(lcd_buffer,"SP.Level:%uCm\nSP.Temp :%uC",sp,sp1);
lcd_puts(lcd_buffer);
delay_ms(200);
if(PIND.0==1) //run=tombol4
break;
C. Baca Sensor
Blok ini berisi tentang pembacaan keluaran sensor oleh mikrokontroler melalui
if(cacah==50)
{
cacah=0;
Level=baca_adc(0);
Suhu=baca_adc(1);
B=Level/18.3;
S=Suhu/2.55;
lcd_clear();
sprintf(lcd_buffer,"Sensor L:%uCm\nSensor T:%uC",B,S);
lcd_puts(lcd_buffer);
}
Proses pembacaan ADC akan dilakukan secara terus menerus setiap 1 detik sekali
yang terdapat pada program utama pembacaan nilai ADC lamgsung disimpan dalam
variabel Level dan variabel Suhu sebelum ditampilkan kembali lewat LCD, nilai
Level dan Suhu akan diolah terlebih dahulu dengan menggunakan algoritma PID dan
69
Decoupler. Penggunaan tunda 1 detik digunakan untuk tunda tampilan pada LCD
Blok ini berisi tentang proses perhitungan dua PID dan hasil perhitungan tersebut
akan digunakan untuk pengndalian PWM pada register OCR1A dan OCR1B dengan
interrupt[EXT_INT1]void ext_int1_isr(void)
{ cacah++;
M=M-(T*6.5);
OCR1B=M;
T=T+(M*0.00046);
OCR1A=T;
e0 = (sp*18.3)-Level;
//--------------------------------------- menghitung nilai proposional
temp1=e0-e1;
temp1=kp*temp1;
temp1=temp1/100;
v0=v1+temp1;
//------------------------------------------ menghitung nilai integral
temp1=ki*e0;
temp1=temp1/100;
v0=v0+temp1;
//--------------------------------------- menghitung nilai deferensial
temp1=e0+e2;
temp2=2*e1;
temp1=temp1-temp2;
temp2=temp1*kd;
temp2=temp2/100;
v0=v0+temp2;
//---------------------------mengkondisikan pwm
if(v0<100)
v0=0;
if(v0>1023)
v0=1023;
M=v0;
//------------------------- siapkan nilai untuk perhitungan berikutnya
v1=v0;
e2=e1;
e1=e0;
e01 = (sp1*2.55)-Suhu;
//--------- menghitung nilai proposional----------------------------
temp11=e01-e11;
temp11=kp1*temp11;
temp11=temp11/100;
v01=v11+temp11;
//--------- menghitung nilai integral-------------------------------
temp11=ki1*e01;
temp11=temp11/100;
70
v01=v01+temp11;
//--------- menghitung nilai deferensial----------------------------
temp11=e01+e21;
temp21=2*e11;
temp11=temp11-temp21;
temp21=temp11*kd1;
temp21=temp21/100;
v01=v01+temp21;
//----------------------menkondisikan pwm
if(v01<100)
v01=0;
if(v01>1023)
v01=1023;
T=v01;
//--------------- siapkan nilai untuk perhitungan berikutnya--------
v11=v01;
e21=e11;
e11=e01;
Dari hasil pengambilan data dan pengujian alat diperoleh data yang meliputi:
4
Tegangan Keluaran (Volt)
0
0 2 4 6 8 10 12 14 16
Ketinggian (Cm)
mungkin digunakan pada bagian kerja yang linear di antara tegangan 1 volt sampai 5 volt.
4.5
3.5
Keluaran sensor LM 35 (Volt)
2.5
1.5
0.5
0
0 10 20 30 40 50 60 70 80 90 100
Celcius
Terdapat selisih antara keluaran yang diberikan sensor dan pengukuaran secara real
Hasil pengambilan beberapa sampel set point untuk kendali ketinggian air di peroleh
A. Set Point 6 cm
SP Level 6cm
4
Level(Cm)
0
0 10 20 30 40 50 60 70 80
Time(S)
3 Tampilan LCD 6 cm 6 cm
4 td 12 detik
5 ts 41 detik
Pada hasil tabel 4.2 kesalahan keadaan tunak dihitung dari keluaran sensor dalam
bentuk tegangan hal ini dilakukan untuk mempermudah perhitungan dan pengamatan
sistem.
2.613 − 2.515
Kesalahan keadaan tunak = x 100%
2.515
= 4.57%
B.Set Point 9 cm
SP Level9cm
10
6
Level(Cm)
0
0 20 40 60 80 100 120
Time(S)
Hasil dari pengambilan data sudah dapat diketahui walaupun masih terdapat
kesalahaan keadaan tunak namun masih bisa ditoleransi karena masih di bawah dari
3 Tampilan LCD 9 cm 9 cm
4 Td 12 detik
5 Ts 78 detik
C.Set Point 12 cm
SP Level12cm
14
12
10
8
Level(Cm)
0
0 20 40 60 80 100 120
Time(S)
3 Tampilan LCD 12 cm 12 cm
4 Td 8 detik
5 Ts 82 detik
Dari hasil pengamatan indikator lampu untuk pompa masih terjadi lampu menyala
walaupun sudah mencapai set point yang berarti bahwa pompa masih mendapat masukan
dari mikrokontroler ini karena titik minimum untuk menggerakan pompa tidak tercapai
pompa terus berosilasi pada nilai pwm tertentu.dalam hal ini sekitar 10% dari nilai PWM
Gangguan yang terjadi juga disebabkan oleh sistem pengaduk air untuk meratakan
panas air mengakibatkan air berosilasi pada titik tertentu walaupun system sudah
Gangguan sistem yang lain juga disebababkan dari offset yang terdapat dalam
Walaupun terjadi gangguan kecil seperti pada penjelasan di atas namun sistem
pengendalian masih mampu untuk mengatasinya sehingga set point dapat tercapai dan
Dari hasil pengujian sistem kendali PID digital dengan ketinggian air 6 cm dan data
pemanasan suhu air sebesar 50 º celcius dengan sekala waktu 1:10 diperoleh hasil berikut:
60
50
40
Celcius
30
20
10
0
0 10 20 30 40 50 60
Time(s)
3 Tampilan LCD 50 C 50 C
4 Td 55 detik
5 Ts 480 detik
Dari hasil pengujian sistem kendali PID digital dengan ketinggian air 6 cm dan data
pemanasan suhu air sebesar 70 º celcius dengan sekala waktu 1:10 diperoleh hasil berikut:
SETPOINT SUHU 70 C
80
70
60
50
Celcius
40
30
20
10
0
0 10 20 30 40 50 60 70 80
Time(s)
3 Tampilan LCD 70 C 70 C
4 Td 50 detik
5 Ts 540 detik
100
90
80
70
60
Celcius
50
40
30
20
10
0
0 10 20 30 40 50 60 70 80 90 100
Time(s)
3 Tampilan LCD 90 C 92 C
4 td 180 detik
5 ts 1600 detik
Dari hasil pengamatan pada saat pengambilan data, output mikrokontroler tetap ada
meskipun sudah mencapai nilai set point yang telah ditentukan dalam sekala yang kecil ,
keadaan ini mengakibatkan sistem berosilasi dalam skala kecil pada set point tertentu dan
antara kendali digital suhu dan kendali digital level, dari hasil pengamatan dan
Saat sistem diberi gangguan selama 60 detik dengan cara membuka keran keluaran air
sistem berusaha untuk menyesuaikan kedaan set point yang berubah akibat penurunan
level dalam waktu yang lebih cepat dan memiliki tingkat sensitifitas penanganan yang
tinggi.
80
Sistem Decoupler
3
T=60 s
gangguan
Suhu
2.5
Level
2 T perbaikan
Keluaran Sensor (Volt)
1.5 T perbaikan L
0.5
td td
0
0 50 100 150 200 250
Time (S)
Pada proses yang berjalan kendali mengerjakan pengendalian sesuai dengan nilai set
point dari masing – masing parameter sampai sistem stabil setelah berjalan selama
beberapa menit, sistem diberi gangguan dari luar dengan cara membuka keran keluaran
air mengakibatkan ketinggian air berkurang. Seiring dengan berkurangnya air pompa
secara otomatis pompa menyala mengisi air ke dalam tangki sampai mencapai set point
yang sebelumya sudah diberikan, dalam pengambilan data kali ini adalah 6 cm. akibat air
lama yang suhunya sudah mencapai 50° C terkuras sebagian , dan diganti dengan air yang
baru mengakibatkan penurunan suhu. Nilai suhu yang terbaca oleh sensor sudah tidak
sesuai lagi sehingga keluaran heater aktif memanaskan air sampai pada nilai set point
yang sebelumnya sudah diberikan yaitu 50°C pada pengambilan data ini.
menggunakan decoupler hal yang sama dilakukan dengan memberikan gangguan selama
satu menit pada sistem dari keadaan tunaknya .Data hasil pengamatan diperoleh sistem
berusaha untuk mencapai titik kestabilan sesuai dengan set point namun masih terdapat
81
error dan penanganan terhadap gangguan cenderung lebih lama dari sistem kendali
3 T=60s
gangguan
Suhu
2.5
Level
T perbaikan S
2
Keluaran Sensor(Volt)
T perbaikan L
1.5
0.5
td td
0
0 50 100 150 200 250
Time(S)
Perhitungan kesalahan keadaan tunak dari hasil sebelum terjadi gangguan dan setelah
2.44 − 2.45
Kesalahan keadaan tunak Level = x 100%
2.45
= 0 .4 %
2.554 − 2.55
Kesalahan keadaan tunak Suhu = x 100%
2.55
= 0.15%
Sedangkan Perhitungan kesalahan keadaan tunak dari hasil sebelum terjadi gangguan
dan setelah terjadi gangguan tanpa menggunakan sistem decoupler sebagai berikut:
2.411 − 2.45
Kesalahan keadaan tunak Level = x 100%
2.45
=1.59%
2.523 − 2.55
Kesalahan keadaan tunak Suhu = x 100%
2.55
= 1,05%
Hasil menunjukan bahwa sistem masih stabil dan bisa mencapai titik kestabilan di
bawah 5% bahkan untuk nilai dari pengambilan data untuk suhu 50°C dengan ketinggian
air 6 cm SSE bisa mencapai di bawah 2%, dari nilai sebelum sistem mendapat gangguan
dari luar.
83
BAB V
Dari hasil pengamatan dan pengujian alat setelah dianalisa dapat disimpulkan:
2. Penalaan dengan metode Z-N untuk menentukan koefisien PID dapat memperoleh
1. Menggunakan sistem pendingin yang efektif untuk setiap titik panas seperti pada
2. Karena alat berdaya besar ± 1200 W pergunakan alat- alat pendukung yang lebih
kontak.
3. Menggunakan konstruksi plant yang stabil dan penempatan sensor yang tepat
DAFTAR PUSTAKA
[1] Ogata, K., 1985 , Teknik Kontrol Automatik, terjemahan. Erlangga, Jakarta.
[3] Malvino Albert Paul ., 2003, Prinsip Prinsip Elektronika ,Salemba Teknika
[4] Boylestad, Robert and Nashelsky, louis , 1996 , Electronic Devices and Circuit
Batam,Batam.
J3
1 R6
2 10k
R1
R5
5v POT
1
U1
7
1
2 3 56k
+
6
2
-
U2
LF356
4
5
R3 10k
3
4
5
LF356 R8
R7 2 - J2
10k 6
R2 10k 3 + 1
J4 outL
10 D1
1
7
1
U3
7
1
2 J1 5v 1
3 3
1 +
6
12;0;-12 2 R4
-
inL
LF356 56k
4
5
Pengkondisi Level
Layout pengkondsi
R6
J1
10k
1 U1
7
1
J2 R1
2 3
3 1 +
6
2
- R2
12;0;-12 inT 50k
LF356
4
5
U2 R4
4
5
10k LF356
2 -
R5 6
3 + 10k
10k U3
7
1
7
1
R3
3
+
6
2 R7
-
10k J3
LF356
1
4
5
10 outT
D1
5v 1
Pengkondisi suhu
L2-2
J3
R1 1200 1
R2 2
J2 J1
BEBAN
1 1 8 Q1
2 2 7 180 Q4008L4/TO
PWM 3 6
4 5 C1
MOC 3020
1.2 uf
J4
1
2
IN AC
Driver AC
Layout Driver AC
L2-3
D2
1 2
1N4001
4
5
LM741
2 -
R2 6
3 +
R U2 J3
7
1
1
2
J1
J2 out
1
2 1 D1
3 2 1 2
POWER in
1N4001
4
5
LM741
2 -
R1 6
3 +
R U1
7
1
ZCD
Layout ZCD
SW1 J19
LCD
SW PUSHBUTTON
SW2
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
2
SW PUSHBUTTON
SW3 SW88 C6 R78 D6
1uf 1k
SW MAG-SPST 4002
2
SW PUSHBUTTON D5 1 3
1
SW4
R1
LED8535
SW PUSHBUTTON POT
SW5 R5
1k
SW PUSHBUTTON
SW6 J15
1
2
SW PUSHBUTTON J11 J13
3
4 1 40 1
SW7
5 2 39 2
6 3 38 3
7 4 37 4
SW PUSHBUTTON
8 5 36 5
SW8
6 35 6
P8B
7 34 7
J16 J21
8 33 8
SW PUSHBUTTON
R6 9 32 1 1
P8A
10 31 2 2
J17 11 30 3 3
12 29 P8C
ADC adc1
R7
RESISTOR 2 13 28
1 14 27 8
15 26 7
J14
R8 XTAL8 16 25 6
RESISTOR C4 C51 17 24 5
22p 22p2 18 23 4
3 19 22 3
R9
RESISTOR 4 20 21 2 R15 R2 R3 R4 R14 R16 R17 R18
5 1 1k 1k 1k 1k 1k 1k 1k 1k
Mega 8535
6 J12
R10 7
RESISTOR 8
P8D
R11
RESISTOR
R12
RESISTOR
U1
R13 LM7805C/TO220
RESISTOR 1 3
IN OUT
C1
GN D
RESISTOR 1000uf
D7
2
1
J20 4 - + 2
1
2
in DC DIODE BRIDGE
3
Kontrol utama
L2-4
Untuk D21(s)
>> syms s;
>> F=(30*s+1)/(1440*s+1);
>> f=ilaplace(F)
f =1/48*dirac(t)+47/69120*exp(-1/1440*t)
L4-1
#include<mega32.h>
#asm
.equ __lcd_port=0x18;//0x18 port b
#endasm
#include<lcd.h>
#include<stdio.h>
#include<delay.h>
#define mode_ADC 0x20;
char lcd_buffer[33];
unsigned int B,S,cacah;
unsigned int baca_adc(unsigned char pin_adc);
unsigned int Level,Suhu;
long int kp,ki,kd;
long int kp1,ki1,kd1;
//--------- inisialisasi nilai set point
int sp, sp1,M,T;
//--------- inisialisasi var error
static long int e0,e1,e2,e01,e11,e21;
//--------- inisialisasi var out
static long int v0,v1,v01,v11;
//--------- inisialisasi temporary
static long int temp1,temp2,temp11,temp21;
// penggunaan fungsi-fungsi
void io_init();
void timer_init();
void ADC_init();
void main(void)
{
io_init();
lcd_init(16);
ADC_init();
timer_init();
while(1)
{
lcd_clear();
sprintf(lcd_buffer,"PID Digital\nMikro ATmega32");
lcd_puts(lcd_buffer);
delay_ms(200);
if(PIND.0==1) //run=tombol4
break;
}
while(1)
{
if (PIND.1==1) // count UP tombol2
{B=B+1;
sp=B;
}
if (PIND.2==1) // count Down
{B=B-1;
sp=B;
}
if(B<=0)
L4-2
B=14;
if(B>=14)
B=0;
lcd_clear();
sprintf(lcd_buffer,"SP.Level[3...14]\nLevel:%uCm",B);
lcd_puts(lcd_buffer);
delay_ms(200);
kp=12.9*100;//12.9
ki=1.6125*100;//1.6125
kd=24.8*100;//24.8
kp1=18*100;//18
ki1=0.9*100;//0.9
kd1=90*100;//90
e0 = 0;
e1 = 0;
e2 = 0;
L4-3
v0 = 0;
v1 = 0;
temp1 =0;
temp2 = 0;
e01 = 0;
e11 = 0;
e21 = 0;
v01 = 0;
v11 = 0;
temp11 =0;
temp21 = 0;
OCR1B=0;
OCR1A=0;
T=1023;
M=1023;
cacah=0;
// aktifkan intrupsi external 1 untuk waktu sampling.dan sinkronisasi keluaran
GICR|=0x80;
MCUCR=0x0C;
GIFR=0x50;
#asm("sei");
while(1)
{
OCR1B=M;
OCR1A=T;
}
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>fungsi-fungsi<<<<<<<<<<<<<<<<<<<<<<<<
unsigned int baca_adc(unsigned char pin_adc)
{
ADMUX=pin_adc|mode_ADC;
ADCSRA|=0x40;
while((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;//>>1;//ADCW>>1;
}
void timer_init()
{
TCCR1A=0xA3;
TCCR1B=0x0C; //A=8 B=64,c=256(43hz) d=1024 42 hz
TCNT1=0x0000;
}
void io_init()
{
//--------------- input data
DDRD.0=0; // sebagai masukan dari tombol
DDRD.1=0;
DDRD.2=0;
DDRD.3=0; //sebagai masukan intrupsi ekternal1
//--------------- output pwm
DDRD.4=1;// out pwm1
DDRD.5=1;// out pwm2
//--------------- seting port A 0 dan 1 sebgai input
DDRA.0=0;// sebagai masukan adc 1
L4-4
if(v0<100)
v0=0;
if(v0>1023)
v0=1023;
M=v0;
//------------------------- siapkan nilai untuk perhitungan berikutnya
v1=v0;
e2=e1;
e1=e0;
//===================================================================
e01 = (sp1*2.55)-Suhu;
//--------- menghitung nilai proposional----------------------------
temp11=e01-e11;
temp11=kp1*temp11;
temp11=temp11/100;
v01=v11+temp11;
//--------- menghitung nilai integral-------------------------------
temp11=ki1*e01;
L4-5
temp11=temp11/100;
v01=v01+temp11;
//--------- menghitung nilai deferensial----------------------------
temp11=e01+e21;
temp21=2*e11;
temp11=temp11-temp21;
temp21=temp11*kd1;
temp21=temp21/100;
v01=v01+temp21;
//----------------------menkondisikan pwm
if(v01<100)
v01=0;
if(v01>1023)
v01=1023;
T=v01;
//--------------- siapkan nilai untuk perhitungan berikutnya--------
v11=v01;
e21=e11;
e11=e01;
if(cacah==50)
{
cacah=0;
Level=baca_adc(0);
Suhu=baca_adc(1);
B=Level/18.3;
S=Suhu/2.55;
lcd_clear();
sprintf(lcd_buffer,"Sensor L:%uCm\nSensor T:%uC",B,S);
lcd_puts(lcd_buffer);