Studi dan Penerapan PID pada Kontrol Buck
Converter Berbasis Mikrokontroler ATmega328P
M. Ikhsan1 dan Yuwaldi Away2
1Jurusan Teknik Elektro, Fakultas Teknik, Universitas Syiah Kuala Banda Aceh, Indonesia
2Program Studi Magister Teknik Elektro Banda Aceh, Indonesia
e-mail: [email protected]
Abstrak—Dalam penelitian ini dilakukan studi dan penerapan kontrol PID. Sistem yang dikontrol adalah rangkaian konverter arus searah ke arus searah bertopologi buck converter, yang diaplikasikan sebagai penurun tegangan. Tegangan yang dibangkitkan oleh konverter akan diregulasi oleh kontrol PID sehingga sesuai dengan nilai setpoint/referensi yang dapat diatur. PID diprogram pada mikrokontroler ATmega328P yang telah terintegrasi dengan modul Arduino Uno, tiga buah konstanta kontrol yakni Kp, Ki, dan Kd terlebih dahulu ditentukan dengan menggunakan GUI pidtool pada Matlab. Hasil eksperimen menunjukkan bahwa konverter dengan kontrol close-loop PID dapat menjaga tegangan tetap sesuai dengan setpoint walaupun terjadinya penambahan beban, tanpa kontrol PID tegangan tersebut tidak dapat dijaga sesuai setpoint.
Kata kunci: PID, Arduino, ATmega328P, Buck Converter, pidtool, simulink
I. PENDAHULUAN
Semakin majunya teknologi digital dan semikonduktor[1] mengakibatkan peralatan elektronik dengan sistem arus searah turut berkembang pesat, salah satu aplikasi yang paling banyak digunakan adalah catu daya sumber tegangan. Dalam perancangan catu daya sumber tegangan, hal penting yang harus diperhatikan adalah kestabilan tegangan yang dibangkitkan[2]. Apabila catu daya tidak dapat mempertahankan besar tegangan sesuai referensi yang telah ditetapkan, maka permasalahan overvoltage maupun undervoltage dapat terjadi. Dalam aplikasi kontrol elektronik berbasis mikrokontroler kejadian overvoltage akan mengakibatkan dampak yang tidak baik karena dapat merusak mikroprosesor[3], sedangkan undervoltage dapat mengakibatkan sistem kontrol berhenti bekerja karena suplai tegangan yang tidak mencukupi. Overvoltage antara lain dapat diakibatkan oleh naiknya tegangan jala-jala (yang menjadi masukan sistem catu daya) karena gangguan pada sistem tenaga[4], sedangkan undervoltage dapat diakibatkan karena bertambahnya pembebanan tanpa diiringi peningkatan daya masukan. Tegangan pada keluaran catu daya sumber tegangan perlu dijaga agar tetap konstan. Perubahan nilai tegangan harus ditanggapi dengan respon yang cepat dan optimal sehingga nilai tersebut dapat kembali ke magnitud tegangan sesuai referensi kerja.
Untuk kebutuhan ini, strategi kontrol yang dapat diimplementasikan adalah dengan menggunakan PID atau disebut proporsional, integral, derivative[5]. Kontrol PID tepat untuk digunakan karena kehandalan serta kesederhanaannya dan telah digunakan secara luas pada
II. KONTROL PID
Kontrol PID sangat populer pada dunia industri karena dianggap mampu memberikan solusi yang sederhana dalam menghasilkan respon. Kontrol ini pertama kali diperkenalkan pada tahun 1910 untuk aplikasi pengemudian otomatis kapal laut [6]. Konsep PID adalah menghitung nilai error yang merupakan selisih antara keluaran (output) dan nilai setpoint (referensi), kemudian PID akan memperbaiki nilai masukan dengan sedemikian rupa sehingga nilai error tersebut menjadi tereduksi.
Skema kontrol PID ditunjukkan seperti pada Gbr.1. Pada Kontrol PID dikenal adanya konstanta KP, KI, dan KD. Konstanta tersebut akan sangat menentukan bentuk respon sistem terhadap suatu perubahan setpoint yang diberikan. Tidak ada nilai konstanta yang dapat dikatakan benar, akurat maupun sempurna, sebab konstanta tersebut akan sangat bergantung terhadap sistem/proses yang akan dikontrol serta bagaimana seorang owner/user menginginkan respon sistemnya terhadap suatu referensi kerja sistem, maka dari itu nilai KP, KI, dan KD akan
Setpoint
Plant/ Process 1
s Integrator Kp
Ki
Kd du/dt Derivative
error Output
III. PIDTOOL
Telah dibahas sebelumnya bahwa tiga konstanta PID akan menentukan bentuk respon dari sistem. Dalam percobaan ini penentuan nilai KP, KI, dan KD akan
ditentukan dengan menggunakan itur pidtool yang
tersedia di dalam Matlab. Pidtool merupakan perangkat GUI interaktif yang digunakan untuk mendesain kontrol PID[8]. Apabila fungsi transfer dari sistem diketahui maka ketiga konstranta PID untuk respon yang dinginkan dapat diketahui. Tampilan pidtool terlihat seperti Gbr.2. Pidtool juga memberikan kemudahan bagi pengguna sistem dalam hal penentuan settling time maupun besar overshoot yang diinginkan. Agar didapatkan setling time yang singkat maka dapat dilakukan pengaturan pada bagian respond time. Apabila diinginkan overshoot dalam tingkat tertentu maka dapat dilakukan pengaturan pada bagian transient
behavior.
IV. BUCK CONVERTER
Buck converter merupakan suatu rangkaian elektronika daya yang difungsikan sebagai penurun tegangan sumber arus searah[9]. Dalam penelitian ini kontrol PID diterapkan pada buck converter agar tegangan keluaran
yang dibangkitkan tetap stabil sesuai setpoint. Konigurasi
rangkaian buck converter yang digunakan pada penelitian ini terlihat sesuai Gbr.3. Tegangan masukan yang diberikan adalah 9V, tegangan tersebut kemudian diturunkan
menjadi 5V dengan cara memberikan sinyal switching pada mosfet m.
Untuk rangkaian seperti Gbr.3, fungsi transfernya dapat dituliskan sesuai persamaan (1)[10].
(1)
V. MIKROKONTROLER ATMEGA328P Kontrol PID dalam penelitian ini diimplementasikan dengan menggunakan mikrokontroller ATmega328P yang telah terintegrasi ke dalam modul Arduino Uno seperti terlihat pada Gbr.4. Mikrokontroller ini memiliki 14 input/output digital dan 6 diantaranya dapat digunakan sebagai output PWM (pulse width modulation), 6 input analog, Kristal keramik 16 MHz sebagai resonator,
koneksi USB, sambungan daya eksternal (power jack), header ICSP, dan tombol reset. Modul ini sudah memiliki segala yang dibutuhkan untuk kebutuhan mikrokontroler ATmega328P[11].
Arduino seri Uno berbeda dari seri sebelumnya karena tidak menggunakan driver chip FTDI USB-to-serial, melainkan menggunakan ATmega8U2 yang telah diprogram sebagai konverter USB-to-serial. Platform open-source serta kemudahan dalam pemakaian merupakan salah satu keuntungan yang bisa didapatkan dengan pemakaian ATmega328P terintegrasi Arduino Uno.
VI. METODE
Dalam penelitian ini kontrol PID digunakan untuk meregulasi tegangan keluaran yang bersumber dari catu daya searah bertopologi Buck. Konstanta PID yang tepat akan diimplementasikan pada prototipe konverter Buck, kemudian pengujian kestabilan tegangan akan dilakukan dengan cara penambahan beban pada terminal keluaran konverter. Diagram waterfall penelitian ini dapat dilihat pada Gbr.5.
Gbr. 2. GUI pengaturan PID pada pidtool
0.64 mH
2200 uF 10 Ohm
Vs
m
d
Gbr. 3. Konfigurasi buck converter
2
( )
1
S buck
V
H
s
L
s LC
s
R
=
+
+
Gbr. 4. Mikroprosesor ATmega328P terintegrasi Arduino Uno
Penelitian pendahuluan
Perancangan dan simulasi
Pembuatan prototype
Pengujian prototype
VII. SIMULASI DAN EKSPERIMEN
Simulasi dilakukan menggunakan Matlab Simulink, dengan memanfaatkan bagan kontrol PID seperti pada Gbr.1 serta fungsi transfer (1) maka rangkaian simulasi terlihat seperti Gbr.6. Simulasi ditujukan agar didapatkannya settling time yang cepat untuk buck converter sehingga error pada sinyal tegangan dapat dikoreksi dengan respon yang juga cepat, selain itu sistem juga diharapkan memiliki nilai overshoot yang rendah sehingga tidak terjadinya overvoltage yang dapat merusak beban terpasang ataupun komponen pada sistem konverter itu sendiri. Dengan menggunakan pidtool maka beberapa konstanta PID untuk respon tertentu bisa didapatkan seperti terlihat pada Tabel 1.
TABEL I. KONSANTA PID DAN SETLING TIME
No Konstanta Settling time
KP KI KD
1 0 0.195 0 <3s
2 0 0.702 0 <1s
3 0.0088 5.1309 0.0000037 <0.1s
Respon sistem yang dihasilkan untuk masing-masing konstanta pada Tabel 1 terlihat pada Gbr.7-9, Gbr.7 dan 8 menunjukkan respon sistem yang stabil dengan settling time yang berbeda. Gbr.9 memiliki settling time yang paling cepat dibandingkan dua gambar sebelumnya, namun respon yang dihasilkan masih belum stabil dan mengalami osilasi. Dalam eksperimen ini perangkat keras akan menggunakan konstanta PID yang sesuai dengan nomor 2 pada tabel 1.
Peralatan yang digunakan pada ekspermen terlihat seperti pada Gbr.10. Rangkaian daya buck converter dikontrol menggunakan ATmega328P (Arduino Uno), agar kontroler terisolasi dari tegangan tinggi maka mosfet harus dikendalikan melalui perantara optocoupler, selain itu hal ini perlu dilakukan agar peralatan kontrol dan mosfet yang dikendalikan memiliki ground yang berbeda sehingga dapat mencegah terjadinya hubung singkat[12]. Dua buah resistor dengan nilai yang sama digunakan sebagai pembebanan sistem, satu unit resistor digunakan sebagai beban tetap sedangkan satu unit lainnya akan digunakan sebagai beban tambahan dengan tujuan menguji kestabilan tegangan. Besar tegangan yang dibangkitkan oleh buck converter dapat dinaikkan atau diturunkan menggunakan potensiometer sebagai pengatur setpoint. Data setpoint beserta tegangan keluaran dari buck converter akan dibaca oleh mikrokontroler dan direkam ke dalam kartu memori untuk dianalisis lebih lanjut.
Eksperimen dilakukan dengan dua cara yang berbeda. pada eksperimen pertama, buck converter dikontrol dengan cara open-loop, artinya tidak ada penggunaan kontrol PID pada peralatan sehingga tegangan keluaran hanya dikendalikan oleh pengatur setpoint. Pada eksperimen kedua buck converter dikontrol secara close-loop dan kontrol PID digunakan pada peralatan. Sensor tegangan pada terminal keluaran buck converter akan memberikan sinyal umpan balik kepada kontrol.
Gbr. 6. Blok simulasi rangkaian menggunakan simulink
Gbr. 7. Hasil simulasi dengan KP=0, KI=0.195, KD=0
Gbr. 8. Hasil simulasi dengan KP=0, KI=0.702, KD=0
Gbr. 9. Hasil simulasi dengan KP=0.0888, KI=5.13, KD=3.7e-6
0.64 mH
2200 uF 10 Ohm 9V
m
10 Ohm
Optocoupler
ATmega328P 5V
Vcc
Gnd
VIII. HASIL DAN PEMBAHASAN
Hasil pengukuran tegangan buck converter dalam kurun waktu tertentu dapat dilihat pada Gbr.11. Dua hal yang menjadi objek pengukuran adalah setpoint sebagai referensi kerja konverter serta tegangan keluaran yang dihasilkan oleh konverter. Gbr.11(a) menunjukkan hasil pengukuran tegangan konverter buck yang dikontrol secara open-loop tanpa PID. Setpoint dinaikkan dari 0V hingga mencapai 5V, dalam percobaan ini terlihat pada titik x bahwa tegangan keluaran memiliki error terhadap nilai setpoint. Selain itu, penambahan beban pada saat y mengakibatkan tegangan konverter jatuh menjadi rata-rata 3.57. Konverter tidak dapat mempertahankan tegangan keluaran sesuai setpoint yang diberikan.
Dalam percobaan kedua, buck converter dikontrol secara close-loop menggunakan PID, hasil percobaan terlihat seperti Gbr.11(b). Sama seperti percobaan sebelumnya, setpoint dinaikkan hingga tegangan mencapai 5V. Titik a, b, c dan d adalah waktu dimana beban tambahan 10 Ohm disambungkan pada terminal keluaran buck converter. Dalam percobaan ini terlihat bahwa buck konverter berhasil mempertahankan nilai tegangan pada level 5V. Gbr.11(c) menunjukkan kejadian detail yang terjadi pada titik b (identik dengan titik a,c, dan d) ketika beban tambahan dikoneksikan ke sistem.
IX. KESIMPULAN
Dalam penelitian ini kontrol PID yang diprogram pada mikrokontroler ATmega328P digunakan untuk mengendalikan tegangan keluaran pada buck converter. Konverter digunakan untuk menurunkan tegangan 9V menjadi 5V. Parameter Kp, Ki, dan Kd ditentukan dengan menggunakan GUI pidtool Matlab. Berdasarkan hasil eksperimen, apabila kontrol PID tidak diterapkan maka tegangan keluaran akan jatuh menjadi 3.57V ketika beban tambahan diberikan pada sistem. Apabila kontrol PID digunakan, tegangan keluaran konverter dapat dijaga konstan sesuai setpoint yang diberikan, yaitu 5V, walaupun dilakukannya penambahan beban.
X. REFERENSI
[1] Okba, M.H.; Saied, M.H.; Mostafa, M. Z.; Abdel-Moneim, T.M.,
“High voltage direct current transmission - A Review, Part II - Converter technologies,” Energytech, 2012 IEEE , vol., no., pp.1,7, 29-31 May 2012
[2] Contreras, J.P., “Under-Voltage and Over-Voltage AC Regulator
Using AC/AC Chopper,” Industrial Electronics, 2006 IEEE International Symposium on , vol.2, no., pp.809,814, 9-13 July 2006
[3] Jenkins, N., “Overvoltage protection of low voltage systems”
Power Engineering Journal , vol.15, no.3, pp.124,124, Jun 2001
[4] Shareef, H.; Khalid, S.N.; Mustafa, M.W.; Mohamed, A.,
“Modeling and simulation of overvoltage surges in low voltage systems,” Power and Energy Conference, 2008. PECon 2008. IEEE 2nd International , vol., no., pp.357,361, 1-3 Dec. 2008.
[5] Katsuhiko, O. “Modern control engineering”.2010
1 2
3
4
5
1) Slot memory card, 2) Arduino Uno, 3) Optocoupler, 4) Buck Converter, 5) pengatur setpoint
(b)
Gbr. 10. Peralatan eksperimen (a) skema rangkaian (b) perangkat keras
(a)
(b)
(c)
Gbr. 11. Hasil pengukuran tegangan Buck converter (a) kendali open-loop tanpa PID (b) kendali close-open-loop dengan PID (c) respon tegangan
[6] Kiam Heong Ang; Chong, G.; Yun Li, “PID control system analysis, design, and technology,” Control Systems Technology, IEEE Transactions on , vol.13, no.4, pp.559,576, July 2005.
[7] Website: http://playground.arduino.cc/Code/PIDLibrary
[8] Website: http://www.mathworks.com/help/control/ref/pidtool.
html
[9] Rashid, Muhammad H., ed. Power electronics handbook.
Academic Pr, 2001.
[10] Baciu, I.H.; Ciocan, I.; Lungu, S., “Modeling Transfer Function
for Buck Power Converter,” Electronics Technology, 30th International Spring Seminar on , vol., no., pp.541,544, 9-13 May 2007.
[11] Website: http://arduino.cc/en/Main/arduinoBoardUno
[12] Muni, B.P.; Gokuli, A. V.; Saxena, S. N., “Gating and protection