Post on 05-Mar-2018
10
BAB 3
Implementasi Modul Kontrol Temperatur
3.1. Perangkat Keras Kontroler PID Digital dan plant
Gambar 3.1 menunjukkan kontroler PID digital beserta plant dan
aktuatornya. Modul kontrol temperatur terdiri dari satu buah resistor variabel
(Tuning) yang berfungsi sebagai pengatur setting point (SP) dan parameter-
parameter kontroler PID (KP, KI, KD). Nilai parameter yang telah ditentukan
dengan menggunakan resistor variabel tersebut kemudian dimasukan dengan
penekanan tombol 1. parameter yang pertama dimasukkan adalah SP, kemudian
KP, KI, dan diakhiri dengan pemasukan KD. Dengan penekanan tombol 1 sekali
lagi sistem kontrol temperatur akan berjalan.
Modul kontrol temperatur yang dirancang menggunakan dua buah
mikrokontroler PIC18F4520. Mikrokontroler yang pertama berfungsi sebagai
kontroler yang akan mengolah data yang masuk yaitu error dan parameter-
parameter kontrol PID (KP, KI, dan KD) untuk menghasilkan sinyal kontrol. Sinyal
kontrol yang dihasilkan dari mikrokontroler kemudian dikonversi ke dalam bentuk
analog dengan bentuk sinyal PWM (pulse-width modulation), sinyal kontrol ini
kemudian dikuatkan lalu dikirimkan ke aktuator untuk mengontrol temperatur
plant. Aktuator yang digunakan dalam modul kontrol ini berupa lampu sebagai
pemanas (Pemanas 1) dan kipas (Pendingin 1) yang berfungsi sebagai pendingin.
Respon temperatur dari plant kemudian dikembalikan ke mikrokontroler melalui
11
sensor temperatur untuk dievaluasi error-nya. Sensor temperatur yang digunakan
adalah LM35 dengan karakteristik 10 mV/0C.
ADC Kontroler DAC Aktuator Plant
Gangguan
ADC
SP Y(t)+
_ADC Kontroler DAC Aktuator Plant
Gangguan
ADC
SP Y(t)+
_
Gambar 3.1 Kontroler PID digital beserta aktuator dan plant-nya
Mikrokontroler yang kedua berfungsi sebagai penghasil sinyal gangguan
yang dibentuk dari pemanas 2 dan pendingin 2. Penekanan tombol 2 akan
12
menyalakan pemanas 2, penekanan tombol 3 akan menyalakan pendingin 2, serta
penekanan tombol 4 akan mematikan pemanas2 dan pendingin 2.
3.1.1. Rangkaian sensor temperatur
R23K
VCC
2
31A
411
U4ATL084ACN
-VCC
R312K
RA1Input1
123
LM35 VCC
Gambar 3.2 Sensor Temperatur
Sensor temperatur yang ditunjukkan dalam Gambar 3.2 menggunakan
LM35 dengan karakteristik 10 mV/0C6). Pada suhu 100 0C, keluaran LM35 akan
bernilai 1V sehingga agar mendapatkan nilai ADC maksimum pada 100 0C, maka
output dari LM35 dikalikan 5 kali sehingga akan bernilai 5 V pada saat suhu 100
0C.
3
2
1 RAR
⎛ ⎞= +⎜ ⎟
⎝ ⎠ (3.1)
121 53
A ⎛ ⎞= + =⎜ ⎟⎝ ⎠
(3.2)
13
Sinyal dari penguat ini kemudian masuk ke pin RA1 (AN1)
mikrokontroler PIC18F4520. ADC yang digunakan berupa ADC internal dengan
resolusi 10 bit.
3.1.2. Mikrokontroler PIC18F4520
(a)
14
(b)
Gambar 3.3 Device mikrokontroler PIC18F4520 (a) dan diagram blok
mikrokontroler PIC18F4520 (b)
Mikrokontroler yang digunakan sebagai pengontrol adalah PIC18F4520
dari keluarga microchip. Mikrokontroler ini memiliki fitur:
1. 100.000 kali baca/tulis flash memori
2. Single-supply 5V in circuit
15
3. Pemrograman menggunakan ICSP (In Circuit Serial Programming)
melalui dua kabel
4. 32 Kbyte flash memori
5. 2 sumber PWM
6. 3 sumber interupsi eksternal
7. 3 timer
8. Komunikasi serial (USART)
9. 13 channel ADC internal 10 bit
10. 36 pin I/O yang terbagi ke dalam 5 port
File hexa yang telah dibuat dengan menggunakan software aplikasi
MPLAB dimasukkan ke dalam mikrokontroler dengan menggunakan rangkaian
ICSP seperti terlihat pada Gambar 3.4.
D21N4148
2uFC7
D75.1V
R1210K
R112K2
R51K
1
2
3 T2BC307
1
2
3
T1BC237
D81N4148
R310K
R14K7
R24K7 OUT3
2
IN 1
GND
U7 LM78L12ACZ
1
2
3
4
5
6
7
8
9
11
10
J2
D Connector 9
C4100nF
C5100nF
D91N4148
C6100nF
D3
BAT42
D4
BAT42
D5BAT42
D6BAT42
RB7
RB6
R4680
DS1LED2
+15
12345
JP1
Header 5
Gambar 3.4 Rangkaian downloader ICSP
16
Sedangkan software programmer yang digunakan untuk mendownloadkan
program (file hex) ke dalam mikrokontroler digunakan WinPIC seperti
ditunjukkan pada Gambar 3.5.
Gambar 3.5 Programmer WINPIC
3.1.2.1. Port I/O mikrokontroler
Mikrokontroler PIC18F4520 memiliki 36 buah pin I/O yang terbagi ke
dalam 5 buah port yaitu 8 pin pada PORTA, 8 pin pada PORTB, 8 pin pada
PORTC, 8 pin pada PORTD, dan 4 pin pada PORTE. Dari 32 pin I/O yang
dimiliki oleh mikrokontroler PIC18F4520 terdapat 2 pin yang biasa digunakan
untuk osilator eksternal, 1 pin yang digunakan untuk mereset mikrokontroler, dan
13 pin bisa digunakan sebagai input ADC seperti terlihat pada gambar 3.3(b).
17
Fungsi port sebagai input atau output dikontrol melalui register yang
bernama register TRIS. Register TRIS harus diberi nilai nol untuk membuat port
I/O berfungsi sebagai output, dan diberi nilai 1 untuk membuat port berfungsi
sebagai input.
3.1.2.2. ADC internal
Mikrokontroler bekerja secara digital sehingga jika ada sinyal analog yang
akan masuk pada mikrokontroler, sinyal ini harus dikonversi terlebih dahulu ke
dalam bentuk digital. Mikrokontroler PIC18F4520 telah dilengkapi dengan ADC
(Analog to Digital Converter) internal sebanyak 13 channel dengan resolusi
sebesar 10 bit.
18
Gambar 3.6 Diagram blok ADC internal
Gambar 3.6 menunjukkan diagram blok ADC internal yang terdapat pada
mikrokontroler PIC18F4520. Mikrokontroler ini dilengkapi juga dengan
multiplexer yang berguna untuk memilih channel input analog yang akan
digunakan. Secara umum, kerja dari modul ADC ini dikontrol oleh 3 register yaitu
ADCON0, ADCON1, dan ADCON 2. ADCON0 berfungsi untuk mengontrol
operasi modul ADC yang digunakan, ADCON1 berfungsi sebagai pengontrol
konfigurasi pin-pin pada port yang digunakan (pin yang digunakan untuk input
19
ADC harus dikonfigurasi pada mode analog), sedangkan ADCON2 berfungsi
sebagai pengatur sumber clock dari modul ADC yang digunakan. Hasil dari
konversi ADC ini kemudian disimpan ke dalam 2 register yaitu ADRESH :
ADRESL, byte tinggi disimpan di ADREH sedangkan byte rendah disimpan di
ADRESL.
Pada aplikasi yang dibuat, channel AN0 digunakan sebagai input dari
sensor yang berfungsi sebagai feed back bagi sistem kontrol yang dibuat.
3.1.2.3. PWM (Pulse Width Modulator)
Mikrokontroler PIC18F4520 terdapat dua buah pin yang bisa
mengeluarkan sinyal PWM yaitu CCP1 dan CCP2. Dalam mode ini pin CCPx
akan menghasilkan output PWM dengan resolusi 10 bit. Sebuah output PWM
(Gambar 3.7) mempunyai waktu dasar (perioda) dan waktu pada saat sinyal
output berada pada logika High (duty cycle). Frekuensi dari PWM merupakan
kebalikan dari periodanya (1/perioda).
Gambar 3.7 Output PWM
20
Perioda PWM dapat diatur dengan memberi nilai pada register PR2.
perioda PWM dapat dihitung dengan menggunakan Persamaan 3.1.
( ) ( )2 1 4 2OSCPerioda PWM PR T nilai PrescaleTMR= + • • •⎡ ⎤⎣ ⎦ (3.1)
Dalam penelitian ini digunakan PR2 sebesar 0xff atau 256 dalam bilangan
desimal, dan nilai prescaler timer 2 yang digunakan sebesar 16. pada rangkaian
aplikasi ini digunakan kristal (oscillator) sebesar 10 MHz sehingga Tosc sebesar
1/10MHz = 0,0000001 detik. Dengan memasukan data-data di atas ke dalam
persamaan 3.1 diperoleh perioda PWM.
[ ]255 1 4 0,0000001 160,0016384 detik = 1,6384ms
Perioda PWMPeriodaPWM
= + • • •
=
PWM duty cycle diperoleh dengan memberi nilai pada CCPRxL dan
CCPxCON<5:4>. PWM duty cycle ini memiliki resolusi 10 bit. Byte tinggi
disimpan ke CCPRxL dan dua bit rendah disimpan ke CCPxCON<5:4>. Nilai
duty cycle bisa dihitung dengan Persamaan 3.2
( : 5 : 4 ) ( 2 )OSCPWM Duty Cycle CCPRxL CCPxCON T TMR PrescalerValue= < > • • (3.2)
Sebagai contoh untuk menghitung PWM 100%, maka nilai
CCPRxL:CCPxCON harus diberi 1023
1023 0,0000001 160,0016368 1,6368
PWM Duty Cycles ms
= • •= =
Persentase PWM diperoleh dengan membandingkan antara waktu duty
cycle dengan perioda dikali 100%
21
1,6368 100%1,6384ms99,90234375% 100%
msPWM
PWM
= •
= ≈
Dari hasil perhitungan, persentase PWM maksimum PWM diperoleh sebesar
99,9% mendekati 100%.
3.1.2.4. Komunikasi serial mode asinkron (EUSART Asynchronous )
Modul EUSART (Enhanced Universal Synchronous Asynchronous
Receiver Transmitter) merupakan salah satu komunikasi serial yang
memungkinkan untuk berkomunikasi dengan PC atau aplikasi lainnya. Data yang
dikirim maupun diterima oleh mikrokontroler akan disimpan terlebih dahulu
dalam buffer. Buffer untuk mengirimkan data adalah TXREG sedangkan buffer
yng digunakan pada saat menerima data adalah RCREG.
Terdapat dua jenis dari EUSART yaitu mode synchronous dan mode
asynchronous. EUSART mode synchronous melakukan komunikasi antar dua
prosesor dengan menggunakan satu buah oscillator atau dua buah osilator yang
tepat sama baik itu frekuensinya maupun waktu pulsa pada osilator pada keadaan
high dan low. Hal ini tentu sangat sulit diperoleh jika menggunakan dua buah
osilator. Sedangkan EUSART mode Asynchronous melakukan komunikasi data
antar dua prosesor dengan menggunakan dua sumber osilator yang berbeda.
Komunikasi EUSART mode asybchronous melibatkan tiga register
kontrol yaitu TXSTA, RCSTA dan BAUDCON. TXSTA berfungsi sebagai
pengontrol pengiriman data dari mikrokontroler ke PC, RCSTA berfungsi sebagai
pengontrol penerimaan data dari PC ke mikrokontroler, sedangkan BAUDCON
22
berfungsi sebagai pengatur baudrate yang digunakan. Baudrate berpengaruh pada
kecepatan transfer data yang dilakukan, biasanya menggunakan satuan bps (bit
per second). Baud rate ini dihasilkan oler baud rate generator (BRG).
BRG menyediakan 8 bit atau 16 bit generator yang mendukung pada
komunikasi serial baik itu mode synchronous maupun asynchronous. Pada
dasarnya BRG beroperasi pada mode 8 bit. Agar beroperasi pada mode 16 bit,
BRG16 (BAUDCON<3>) harus diset menjadi berlogika 1.
SPBRGH:SPBRG merupakan sepasang register yang mengontrol perioda
timer yang berjalan bebas. Dalam mode asynchronous bit BRGH(TXSTA<2>)
dan BRG16(BAUDCON<3>) juga ikut mengontrol baud rate. Pada baudrate
synchronous bit BRG tidak berpengaruh pada baud rate. Tabel 3.1 menunjukkan
persamaan untuk pehitungan baud rate.
Tabel 3.1 Persamaan Baudrate
Konfigurasi bit
SYNC BRG16 BRGH BRG/EUSART MODE Persamaan Baud Rate
0 0 0 8-bit/Asynchronous FOSC/[64(n+1)]
0 0 1 8-bit/Asynchronous
0 1 0 16-bit/Asynchronous FOSC/[16(n+1)]
0 1 1 16-bit/Asynchronous FOSC/[4(n+1)]
23
1 0 x 8-bit/Asynchronous
1 1 x 16-bit/Asynchronous
Lebih lengkapnya dapat dilihat pada table baud rate untuk mode asynchronous
pada Lampiran 1. Pada penelitian ini digunakan EUSART mode asynchronous,
mode 8 bit dan baud rate 19200.
3.1.3. Rangkaian aktuator
EN A6
EN B11
IN15
IN27
IN310
IN412 OUT1 2
OUT2 3
OUT3 13
OUT4 14
ISEN A 1
ISEN B 15
VS 4VSS 9
GND8
U10
L298N
RC1RC2
OUT1OUT2
C20
100nF
+15
RC5
VCC
12
Pemanas (Lampu)
12
Pendingin (Kipas)
Gambar 3.8 Rangkaian driver PWM
Output PWM dari mikrokontroler keluar melalui pin RC1 dan RC2 seperti
diberikan pada Gambar 3.8. PWM ini mempunyai daya yang lemah sehingga
perlu dikuatkan lagi dayanya untuk mengaktifkan kipas dan lampu. Dalam
penelitian ini digunakan IC driver L298N sebagai penguat daya.
24
3.1.4. Tampilan peraga LCD
+0 +5 Cn Rs
Rw E
D0
D1
D2
D3
D4
D5
D6
D7 15 16 A
K
LCD2X16
21
3RP2
10K
RE
0R
E1
RE
2R
D0
RD
1R
D2
RD
3R
D4
RD
5R
D6
RD
7
VCC
1
2
3
Q2BC307
R2747K
VCC
Gambar 3.9 Rangkaian Peraga LCD
LCD pada aplikasi ini berfungsi sebagai display dari suhu yang terukur,
setting point (SP), KP, KI, dan KD. LCD yang digunakan pada aplikasi ini adalah
LCD dot matrks 16x2 yang dapat menampilkan 32 karakter dalam dua baris.
Tampilan peraga LCD menggunakan dua port mikrokontroler yaitu Port D
sebagai komunikasi data dan Port E sebagai pengontrol LCD. Resistor variabel
RP2 dipakai sebagai pembagi tegangan yang berfungsi untuk mengatur kontras
LCD.
25
3.1.5. Rangkaian Komunikasi serial RS232
C1+1 VDD 2
C1-3
C2+4
C2-5
VEE 6
T2OUT 7
R2IN 8R2OUT9
T2IN10 T1IN11
R1OUT12 R1IN 13
T1OUT 14
GND15
VCC 16
U8
MAX232ACPE
C13
10uF
C14 10uF
C15
10uF
VCC
C1610uF
RC6
RC7
1
2
3
4
5
6
7
8
9
11
10
JP3
D Connector 9
Gambar 3.10 Rangkaian komunkasi serial RS232
Modul kontrol yang dibuat dilengkapi pula dengan komunikasi serial
RS232 untuk berkomunikasi dengan PC. Tegangan yang keluar dari PC (RS232)
sebesar +3V sampai +25V untuk logika 0, dan -3V sampai -25V untuk logika 1.
Sinyal ini perlu dikonversi dulu ke bentuk TTL sebelum masuk ke aplikasi
(mikrokontroler), dan juga sebaliknya sinyal dari mikrokontroler perlu dikonversi
dulu ke level RS232 sebelum masuk ke port serial PC. Konverter yang paling
mudah digunakan adalam MAX-232. Di dalam IC ini terdapat Charge Pump yang
yang akan membangkitkan tegangan +10V dan -10V dari sumber tegangan +5V
tungal.
Dalam aplikasi ini nilai temperatur yang terukur akan dikirimkan ke PC
sekitar setiap 1 detik.
26
3.2. Perangkat Lunak
3.2.1. Program Utama
Inisialisasi
Baca ParameterSP, KP, KI, KD
PID Kontroler
Update PWM
Program Utama
START
dt =0,1 detik?
ya
tidak
Baca Temperatur Plant
Hitung Error Temperatur
Kirim Data Temperatur Ke
LCD
t = 1 detik?
Kirim Data Temperatur ke PC
Ya
Tidak
Ya
Gambar 3.11 Diagram alir kontroler PID Digital
27
Perangkat lunak yang diaplikasikan dalam mikrokontroler diawali dengan
inisialisasi (Gambar 3.11). Inisialisasi berfungsi untuk menginisialisasi port yang
akan digunakan sebagai input atau output, penginisialisasian komunikasi serial,
penginisialisasian ADC, penginisialisasian penulisan ke LCD, penginisialisasian
PWM, serta penginisialisasian interupsi eksternal dan timer.
Tahap selanjutnya program dilakukan dengan membaca parameter-
parameter yang dibutuhkan (SP, KP, KI, KD). Pembacaan ini memanfaatkan
resistor variable yang difungsikan sebagai pembagi tegangan yang mana nilai
tegangannya bisa diatur, data tegangan dari resistor variabel kemudian
dikonversikan ke bentuk digital oleh ADC internal. Setiap terjadi interupsi
eksternal, hasil pembacaan ADC disimpan di memori dalam mikrokontroler.
Terdapat empat kali interupsi eksternal, pertama untuk menentukan SP, kedua
untuk menentukan KP, ketiga untuk menentukan KI, keempat untuk menentukan
KD. Jadi, keempat parameter tersebut akan tersimpan semuanya di mikrokontroler,
interupsi yang kelima berfungsi untuk memerintahkan mikrokontroler
mengeksekusi tahap selanjutnya.
Setelah parameter-parameter disimpan, nilai ini akan dikontrol dengan
menggunakan algoritma PID,
( )( ) ( ) ( )P I Dde tm t K e t K e t dt K
dt= + +∫ (3.2)
dengan PI
I
KKT
= , dan *D P DK K T= .
Secara sederhana algoritma PID bisa diungkapkan sebagai
PID P I D= + + (3.3)
28
*PP K error= (3.4)
* *II K jumlaherror yang sudahterjadi dt= (3.5)
( )D
error saat ini error yang laluD Kdt
−= (3.6)
Dengan dt adalah perubahan waktu antara error yang terjadi saat ini
dengan error sebelumnya, dt bisa dsebut juga lamanya satu siklus kontroler
terjadi. Nilai dt pada kontroler ini sebesar 0,1 detik dengan memanfaatkan fasilitas
timer dari timer3 pada mikrokontroler PIC18F4520, tetapi nilai temperatur (dalam
bentuk digital) yang dikirimkan ke PC dilakukan selama 1 detik sekali.
Hasil dari PID kontroler ini kemudian akan memperbaharui duty cycle dari
PWM yang dihasilkan. Kemudian temperatur plant akan diukur oleh sensor dan
kemudian akan diperoleh error baru. Peristiwa ini akan terus menerus dilakukan
sampai sistem dimatikan.
Proses pembaharuan duty cycle terjadi jika ada error yang terjadi,
pembaharuan duty cycle tidak akan dilakukan jika tidaka ada error yang terjadi.
Kontroler PID digital bekerja berdasarkan error yang terjadi.
3.2.2. Program Pendukung
3.2.2.1. Subrutin program ADC
ADC yang digunakan dalam aplikasi kontrol temperatur ini adalah channel
0 (AN0) dan channel 1 (AN1). AN0 berfungsi untuk menentukan setting awal
seperti setting point (SP), KP, KI, KD. sedangkan AN1 berfungsi untuk
mengkonversi nilai tegangan yang diterima dari sensor suhu ke dalam bentuk
digital. Diagram alir untuk proses konversi ADC terlihat pada Gambar 3.12.
29
START
Set analog inputPilih Channel ADC
Set Waktu Konversi ADC
Aktifkan modul ADC(Konversi ADC mulai)
KonversiSelesai?
Baca Buffer ADC
END
Tidak
Ya
Gambar 3.12 Diagram alir konversi ADC internal
3.2.2.2. Subrutin program PWM
PWM digunakan untuk mengontrol daya yang digunakan untuk pemanas
atau pendingin. Persentase daya untuk pemanas atau pendingin sebanding pada
persentasi duty cycle pada PWM yang digunakan. Diagram alir pengontrolan
PWM terlihat pada Gambar 3.13.
30
START
Set Perioda PWM
Set Duty Cycle
END
Gambar 3.13 Diagram alir generator PWM
3.2.2.3. Subrutin peraga LCD
Peraga LCD menggunakan dua port yaitu PORTD dan PORTE. PORTD
berfungsi sebagai jalur komunikasi data dan PORTE berfungsi sebagai jalur
kontrol. Diagram alir penulisan LCD ditunjukkan pada Gambar 3.14.
START
PORTD:PORTE Digital Output
Set Posisi Penulisan LCD
Tulis Data
END
Gambar 3.14 Diagram alir penulisan LCD
31
3.2.2.4. Subrutin komunikasi serial RS232
Komunikasi serial RS232 digunakan untukmengirimkan nila KP, KI, KD,
dan SP pada proses kontrol dimulai. Nilai temperatur sebenarnya yang terukur
dikirimkan setiap satu detik sekali. Diagram alir pengiriman data secara serial ke
PC terlihat pada Gambar 3.15.
START
Set mode 8 bit AsynchronousSet baud rate 9600
Kirim ke PC
END
Gambar 3.15 Diagram alir komunikasi serial RS232