Kontrol PID dengan Arduino - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Kontrol PID dengan Arduino

6 komentar
Program Kontrol PID Arduino

Sudah pernah dengar istilah PID Controller?
Atau Anda sedang belajar tentang PID Controller?

Sebelum kita belajar tentang program PID Arduino, apa dan bagaimana itu PID Controller, saya akan bercerita tentang kerja sama saya dengan UKM dalam membuat alat otomasi atau alat produksi yang mereka gunakan. Ini sekedar cerita. :D



Alkisah (:D), Sebuah UKM yang bergerak di bidang manufaktur membutuhkan alat yang dapat menjaga suhu air di kisaran 70 derajat selsius. Sebab, jika bahan-bahannya dilarutkan dengan air yang suhunya di bawah 70 derajat, maka bahan-bahan tersebut tidak akan larut. Namun, jika suhunya di atas 70 derajat, bahannya akan rusak dan tidak akan bisa dipakai.

Oleh sebab itu, mereka butuh alat yang bisa mengatur suhu air di kisaran 70 derajat selsius.



Sebagai informasi tambahan, pemanas yang mereka gunakan adalah api yang dihasilkan dari tabung gas. Mereka tidak menggunakan pemanas dari elemen listrik karena beberapa alasan.

Sebelum Anda melanjukan membaca, Anda boleh ikut memikirkan pertanyaan ini : jika kasus ini harus Anda selesaikan, bagaimana cara agar suhu air stabil di 70 derajat selsius?


* * *


Kebanyakan orang akan memberikan solusi seperti ini :

1. Pasang sensor suhu di air
2. Jika suhu > 70 derajat, kecilkan api
3. Jika suhu < 70 derajat, besarkan api

Baik, pertanyaan selanjutnya adalah :
Jika suhu > 70 derajat dan api harus dikecilkan, seberapa kecil apinya?
Dan jika suhu < 70 derajat dan api harus dibesarkan, seberapa besar apinya?




Jika kita menggunakan solusi di atas, bisa dipastikan hasilnya tidak akan stabil. Sebab kita tidak tahu seberapa besar api harus dibesarkan, dan seberapa kecil api harus dikecilkan.

Boleh diingat-ingat, yang bertugas untuk mengatur nyala api adalah alat, bukan manusia. Jika manusia yang bertugas mengatur alat, kita bisa mengira-ngira, "oh apinya kebesan", atau "oh apinya kekecilan". Dan dengan mudah kita besarkan atau kita kecilkan.



Jika kita menggunakan perintah IF sebagaimana solusi di atas. Kemudian kita memasang servo untuk mengatur keluaran gasnya, maka kita juga harus menentukan seberapa besar sudut yang harus di buka agar api yang dikeluarkan tidak terlalu kecil dan tidak terlalu besar.

Kita bisa saja menggunakan rumus untuk mengatur besar kecilnya bukaan gas. Namun, rumus yang kita pakai harus sesuai dengan respon panas air terhadap besar-kecil nyala api. Kita tidak bisa menggunakan rumus linier, exponensial, atau semacamnya. Tapi kita harus mengetahui pola sistem secara keseluruhan.



Salah satu solusi untuk masalah pengaturan suhu di atas dengan kontrol PID. Hasilnya stabil dan lebih baik daripada hanya menggunakan perintah IF.

Hanya saja, masalah yang akan ditemui adalah: bagaimana mencari rumus sistem tersebut agar rumus yang dipakai untuk mengatur nyala api sesuai dengan panas air yang diinginkan. Bingung dengan penjelasan ini? :D



Begini, coba kita uraikan alat-alat yang akan dipakai :
1. Servo untuk memutar keluaran gas
2. Api mengeluarkan panas
3. Panas diserap wadah air
4. Panas diserap air

Dari proses nomer 1 hingga nomer 4 butuh waktu agar suhu air stabil di 70 derajat. Sebagai contoh :

.

Contoh 1, jika servo membuka keluaran gas 40 derajat, seberapa besar api yang akan keluar? seberapa panas? berapa lama panasnya diserap oleh wadah air? dan berapa lama air mencapai suhu 70 derajat?

Contoh 2, jika servo membuka keluaran gas 60 derajat, seberapa besar api yang akan keluar? seberapa panas? berapa lama panasnya diserap oleh wadah air? dan berapa lama air mencapai suhu 70 derajat?

.

Berdasarkan Contoh 1 dan 2, maka waktu yang dibutuhkan untuk mencapai 70 derajat akan berbeda. Seharusnya pada Contoh 2 yang akan mencapai 70 derajat lebih dulu.

.

Berdasarkan hal tersebut, pasti ada "RUMUS" yang menghubungkan antara sudut bukaan gas dengan suhu air yang dihasilkan.

Nah, untuk mencari "RUMUS" itulah yang penting. Dan dalam konsep PID, rumus ini disebut dengan transfer function.

Dari rumus transfer function inilah akan kita cari nilai-nilai atau konstanta dalam kontrol PID.


* * *


Oiya, PID adalah singkatan dari Proportional-Integral-Derivative. Jadi ada 3 parameter / konstanta yang bisa kita gunakan dalam kontrol PID, yaitu konstanta kP, kI, dan kD. Sistem dengan PID membutuhkan input dan feedback dari output untuk memprediksi bukaan gas agar panas air stabil pada suhu 70 derajat. Inputnya adalah suhu yang ingin dituju, dalam hal ini adalah 70 derajat. Sedangkan feedbacknya adalah suhu air saat ini.


Jadi, kontrol PID dilakukan secara realtime yang mengkomparasi antara target output dan output yang diharapkan berdasarkan rumus transfer function sistem tersebut. Misal ada perubahan pada alat-alatnya, kemungkinan rumus transfer functionnya juga akan berubah.


Di Arduino, jika Anda ingin memakai PID, Anda bisa menggunakan librari PID Library (https://playground.arduino.cc/Code/PIDLibrary), tapi percuma juga pakai library kalau konstanta kP, kI, dan kD nya keliru. Hehe...

Sebab, inti dari PID bukan hanya rumus perhitungan PID-nya, tetapi yang lebih penting adalah konstantanya. Dan konstanta akan didapat kalau RUMUS transfer functionnya benar. :D

Bagaimana cara mencari rumus transfer function yang benar???



Itu dulu sekilas tentang PID, jika ada yang berminat, bisa kita lanjut postingan pembahasannya kapan-kapan. :)


Written by Hari Santoso
Kontrol PID dengan Arduino
Bahasan: Sudah pernah dengar istilah PID Controller? Atau Anda sedang belajar tentang PID Controller? Sebelum kita belajar tentang program PID...
Published at Minggu, 31 Desember 2017, Updated at Minggu, 31 Desember 2017
Reviewed by dr. on
Rating: 4.7

6 komentar :