13/01/2018
PID Controller : Tuning PID & K***a Reaksi
--------------------------------------------------------
Bagaimana?
Apakah aktifitas Anda hari ini lantjar jaya?
Kalaupun belum latjar, saya doakan semoga setelah ini semuanya lebih baik, amin.
Melanjutkan pembahasan tentang PID Controller. Pada postingan pertama kita telah membahas tentang perkenalan dengan PID Controller, lalu postingan kedua tentang rumus transfer function, dan kali ini kita akan membahas salah satu cara mendapatkan konstanta kP, kI, atau kD atau dikenal dengan aktifitas tuning kontroller PID.
Jika proses tuning pada frekuensi radio dan televisi dilakukan untuk mendapatkan siaran yang bening dan frekeuensi yang tepat. Pada PID, proses tuning dilakukan untuk mencari nilai kP, kI, atau kD yang tepat. Kenapa harus tepat?
Boleh diingat-ingat, selain bertujuan "untuk mendapatkan output yang stabil". Tujuan dari penggunaan PID adalah "mendapatkan waktu respon sistem yang lebih cepat". Namun, jika nilai kP, kI, atau kD tidak tepat, kemungkinan efeknya ada 2:
1. Respon sistem tetap, tidak lebih cepat
2. Respon sistem tidak stabil naik-turun
Efek yang pertama, respon sistem akan sama saja dengan tanpa PID. Sedangkan efek yang kedua, output sistem akan berosilasi naik-turun. Misal, jika kontroller PID digunakan untuk mengatur putaran servo, maka putaran servo akan bolak-balik tidak stabil. Efek yang kedua ini akan terlihat dari grafik output, dan akan lebih Anda pahami apabila Anda berkenan praktek.
* * *
Pada postingan sebelumnya, kita telah menyampaikan bahwa cara mendapatkan rumus transfer function itu ada 2:
1. Mencari rumus persamaan berdasarkan konsep fisika dst
2. Mencari fungsi dengan eksperimen
Kita akan menbahas yang kedua karena lebih mudah dipraktekkan. :)
Penting!!!
Sebenarnya, hasil yang kita dapatkan dari cara eksperimen bukanlah benar-benar sebuah rumus. :D
Yang kita dapatkan dari cara eksperimen adalah "sebuah grafik" yang dari grafik tersebut bisa kita hitung nilai kP, kI, dan kD-nya. Yaa meskipun sebenarnya grafik tersebut bisa dicari rumusnya. :)
Lalu, bagaimana cara membuat grafiknya?
(1) Proses Logging
====================
Untuk membuat grafik, kita harus melakukan pencatatan atau logging. Kita harus mencatat waktu perubahan pada OUTPUT sistem. Misal kita ambil studi kasus tentang pengontrolan suhu air dengan mengatur bukaan servo, maka kita membutuhkan data sebagai berikut:
+----------------+--------+--------+
| Sudut Servo | Waktu | Suhu |
+----------------+--------+--------+
|.........50........|.....0.....|....20...|
|.........50........|.....1.....|....20...|
|.........50........|.....2.....|....20...|
Perhatikan, kita butuh informasi bukaan sudut servo awal. Pada proses tuning, sudut bukaan servo bebas pilih angka berapa saja. Jadi kita hanya butuh 1 nilai sudut saja, misal sudut 50 derajat. Selanjutnya adalah waktu, waktu disesuaikan dengan sistem. Untuk suhu, karena respon suhu air agak lambat, maka waktu bisa menggunakan satuan detik. Apabila ingin menganalisa alat yang responnya sangat cepat, maka satuan waktu bisa milidetik atau yang lebih cepat lagi. Sedangkan kolom suhu adalah kolom untuk mecatat perubahan suhu dari detik 0 hingga nilai suhu stabil pada angka tertentu.
Misal, di bawah ini adalah contoh data hasil logging untuk simulasi.
+----------------+--------+--------+
| Sudut Servo | Waktu | Suhu |
+----------------+--------+--------+
|.........50........|.....0.....|....20...|
|.........50........|.....1.....|....20...|
|.........50........|.....2.....|....20...|
|.........50........|.....3.....|....20...|
|.........50........|.....4.....|....20...|
|.........50........|.....5.....|....20...|
-- skip --
|.........50........|....74....|....20...|
|.........50........|....74....|....20...|
|.........50........|....76....|....20...|
|.........50........|....77....|....21...|
|.........50........|....78....|....21...|
|.........50........|....79....|....22...|
-- skip --
|.........50........|...224...|....62...|
|.........50........|...225...|....62...|
|.........50........|...226...|....63...|
|.........50........|...227...|....64...|
|.........50........|...228...|....65...|
|.........50........|...229...|....65...|
-- skip --
|.........50........|...284...|....66...|
|.........50........|...285...|....67...|
|.........50........|...286...|....67...|
|.........50........|...287...|....67...|
|.........50........|...288...|....67...|
|.........50........|...289...|....67...|
Penjelasan :
Pada kasus ini, kita memilih sudut 50 derajat, suhu awal air adalah 20 derajat.
Perhatikan tabel di atas, ketika pertama kali api dinyalakan dengan bukaan 50 derajat, suhu belum berubah. Setelah api menyala selama 77 detik , suhu baru mengalami perubahan dari 20 menjadi 21 derajat. Semakin lama, suhu terus mengalami kenaikan. Pada detik ke 285, suhu berada di angka 67 dan setelah itu tidak mengalami perubahan lagi. Pada kondisi ini, suhu sudah stabil, atau dikenal dengan istilah "steady state".
Sampai di sini, Anda masih bisa memahami penjelasan ini?
Kalau belum, boleh dibaca pelan-pelan lagi. :)
(2) Membuat Grafik
====================
Untuk membuat grafik, Anda bisa menggunakan excel, matlab, atau kertas. Masukkan data-data di atas menjadi sebuah grafik. Pada garis tegak (sumbu Y) adalah suhu, sedangkan garis tidur (sumbu X) adalah waktu.
Errr... karena di postingan ini agak susah membuat grafik, jadi anggap saja ini grafik yang bagus. Setidaknya, Anda akan mendapatkan grafik yang seperti ini.. awalnya akan ada garis lurus di bawah, setelah itu mulai miring ke atas, dan akhirnya garis lurus lagi, tapi posisinya di atas.
(suhu)
|
|................._________________
|.............../
|............./
|.........../
|........./
| ___/
+------------------------------ (waktu)
Catatan 1 :
Grafik / k***a ini adalah k***a yang dihasilkan dalam open-loop system. Disebut k***a terbuka karena OUTPUT suhu tidak mempengaruhi INPUT sistem, yaitu sudut tetap di 50 derajat. Selain open-loop, ada juga istilah close-loop, artinya OUTPUT suhu akan berpengaruh pada penentuan INPUT sudut servo. Kalau digambarkan, maka akan tampak seperti di bawah ini.
open-loop :
INPUT ( sudut servo ) -----------> ( suhu ) OUTPUT
close-loop :
INPUT ( sudut servo ) -----------> ( suhu ) OUTPUT................|.........................................|................|.........................................|................+-------------------------------+
Catatan 2 :
K***a ini juga dikenal dengan (metode) k***a reaksi. Sebab, bentuk k***a merupakan gambaran dari waktu reaksi sistem terhadap perubahan INPUT. Semakin panjang (lama) garis miringnya, berarti respon sistemnya lama.
(3) Metode Tuning
====================
Proses tuning PID bisa dilakukan manual, menggunakan metode (rumus) yang dibuat oleh pakar, atau menggunakan software.
Kita akan membahas cara yang kedua, yaitu menggunakan metode yang dibuat oleh pakar. Kenapa tidak menggunakan manual atau software?
> Jika menggunakan manual, Anda harus membuat simulasinya dulu (misal dengan simulink di matlab). Untuk membuat simulasi, kita harus mencari rumus transfer functionnya. Kita harus mencobanya secara realtime. Saya yakin tidak semua kawan-kawan bisa menggunakan matlab.
> Jika menggunakan software, yang ini juga membutuhkan rumus transfer function. Maka, tidak semua orang bisa menghitungnya.
Jadi, kita bisa memanfaatkan grafik tadi untuk mencari parameter kP, kI, dan kD.
* * *
Ada beberapa pakar yang telah membuat rumus untuk mencari PID. Pakar-pakar tersebut namanya John G. Ziegler, Nathaniel B. Nichols, G.H. Cohen, G.A. C**n, Karl Johan Åström, Tore Hägglund, dan yang lainnya.
Si Ziegler join penelitian dengan Nichols sehingga menghasilkan metode Ziegler-Nichols
Si Cohen join dengan C**n menghasilkan metode Cohen-C**n
Si Åström join dengan Hägglund menghasilkan metode Relay
Dari ketiga metode tersebut, yang populer digunakan adalah metode Ziegler-Nichols dan Cohen-C**n, dan kebetulan metodenya mirip dan juga menggunakan grafik.
Selanjutnya, kita akan membahas metode Ziegler-Nichols atau Cohen-C**n. So, Anda bisa mengabaikan metode yang lainnya. :)
(bersambung, maaf, aktivitas beberapa bulan ini banyak di luar kota, jadi slow posting..)
NB
==============
Untuk mendapatkan notifikasi saat ada posting lanjutannya, Anda harus klik s**a, berkomentar atau klik tombol share. Jika tidak, algoritma dari facebook tidak akan memunculkan postingan-postingan dari kami di beranda atau timeline Anda.
NB LAGI
==============
Salah satu efek dari algoritma facebook ini adalah : Anda hanya bisa melihat status dari orang yang Anda like atau komentari statusnya, jika tidak, orang tersebut dianggap bukan orang yang Anda kenal oleh facebook sehingga update-update statusnya tidak muncul di beranda Anda. ;)
See u