Sistem Kendali PID Arduino : Cara Tuning PID & Kurva Reaksi - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Sistem Kendali PID Arduino : Cara Tuning PID & Kurva Reaksi

6 komentar

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 / kurva ini adalah kurva yang dihasilkan dalam open-loop system. Disebut kurva 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 :
Kurva ini juga dikenal dengan (metode) kurva reaksi. Sebab, bentuk kurva 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. Coon, 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 Coon menghasilkan metode Cohen-Coon
  • Si Åström join dengan Hägglund menghasilkan metode Relay

Dari ketiga metode tersebut, yang populer digunakan adalah metode Ziegler-Nichols dan Cohen-Coon, dan kebetulan metodenya mirip dan juga menggunakan grafik. Selanjutnya, kita akan membahas metode Ziegler-Nichols atau Cohen-Coon. So, Anda bisa mengabaikan metode yang lainnya. :)

(bersambung, maaf, aktivitas beberapa bulan ini banyak di luar kota, jadi slow posting..)

Written by ElangSakti
Sistem Kendali PID Arduino : Cara Tuning PID & Kurva Reaksi
Bahasan: Bagaimana? Apakah aktifitas Anda hari ini lantjar jaya? Kalaupun belum latjar, saya doakan semoga setelah ini semuanya lebih baik, ami...
Published at Selasa, 20 Februari 2018, Updated at Selasa, 20 Februari 2018
Reviewed by dr. on
Rating: 4.7

6 komentar :

  1. Mudah Dipahami, Semoga jadi Berkah... Semangat Terus Mas Bro, Semoga Sukses Terus, Ditunggu Update-an Materi PID nya.. Thanks

    BalasHapus
  2. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  3. Gan klo menggunakan dua output bisa gak kira-kira? Contohnya kendali suhu output1 untuk heater output2 untuk cooler??

    BalasHapus