Contact us

GeScripter.Blog@gmail.com

Learning Internet of Things

Sabtu, 15 Desember 2018

Metode PID untuk Sistem Kontrol Digital

Berkas:Pid-feedback-nct-int-correct.png



Metode PID (Proportional–Integral–Derivative) adalah metode yang paling banyak digunakan pada sebuah sistem kontrol saat ini. Metode PID menjadi salah satu metode yang memiliki tingkat Resiko paling kecil namun dengan algoritma yang sederhana. Masing-masing komponen P, I, dan D memiliki fungsinya sendiri untuk memperbaiki Error yang terjadi pada sebuah sistem kontrol. Penggunaan metode PID sangat fleksibel dapat digunakan untuk mengontrol berbagai aktuator seperti Motor DC, Pemanas, dan lain-lain.

  • P bertanggung jawab untuk nilai kesalahan saat ini.Contoh : Jika nilai kesalahan besar dan positif, maka keluaran kontrol juga besar dan positif.
  • I bertanggung jawab untuk nilai kesalahan sebelumnya.
    Contoh : Jika keluaran saat ini kurang besar, maka kesalahan akan terakumulasi terus menerus, dan kontroler akan merespon dengan keluaran lebih tinggi.
  • D bertanggung jawab untuk kemungkinan nilai kesalahan mendatang, berdasarkan pada rate perubahan tiap waktu.
Hanya dengan mengubah persamaan matematika berikut

{\displaystyle u(t)=K_{p}e(t)+K_{i}\int _{0}^{t}e(\tau )d\tau +K_{d}{\frac {de(t)}{dt}}}

menjadi sebuah perhitungan Matematika sederhana yang dapat diproses menggunakan Mikrokontroler. Hasil perhitungan dari masing-masing komponen P, I, dan D kemudian dijumlah yang akan menghasilkan nilai PID yang akan digunakan sebagai pengontrol aktuator supaya dapat mencapai titik Steady State (Stabil) sesuai dengan setpoint yang diinginkan pengguna. Metode PID hanya dapat digunakan pada sebuah sistem kontrol tertutup dan membutuhkan feedback. Flowchart dapat dilihat pada gambar paling atas postingan ini untuk lebih memahami cara kerja metode PID.

Program (Arduino IDE)

  error = setpoint- feedback;
  P = nilaikp * error;
  jumlahError = error + sisaError;
  jumlahError = constrain(jumlahError, -1000, 1000);
  I = nilaiki * jumlahError;
  sisaError = error - lastError;
  D = nilaikd * sisaError;
  sisaError = error;
  PID = P + I + D;

Penjelasan
P menggunakan nilaikp dan error dalam perhitungannya. Nilai error diperoleh dari nilai setpoint dikurangi nilai feedback dari aktuator.
I menggunakan nilaiki dan jumlahError dalam perhitungannya. Nilai jumlahError diperoleh dengan menjumlah nilai errorsekarang dengan nilai error sebelumnya. Nilai I akan terus terakumulasi selama error masih besar.
D menggunakan nilaikd dan sisaError dalam perhitungannya. Nilai sisaError diperoleh dari error sekarang dikurangi error sebelumnya.
Nilai P, I, dan D dijumlahkan untuk mendapatkan nilai PID.

Catatan : Perintah constrain(jumlahError, -1000, 1000) digunakan untuk membatasi nilai jumlahError dalam rentang nilai -1000 hingga 1000

Berikut ini adalah contoh program penerapan rumus diatas untuk mengatur kecepatan putar Motor DC dengan 2 kriteria program yaitu Antarmuka dengan LCD + Keypad 
dan Antarmuka dengan PC.

Motor DC + PID dengan Antarmuka LCD (DOWNLOAD)
Komponen :
- Power Supply 12V/3A
- Arduino
- Driver L293D
- LCD 16x2 I2C
- Keypad 4x4
- Motor DC 12V + Encoder 10 Pulse
- Optocoupler Sensor


Motor DC + PID dengan Antarmuka PC (DOWNLOAD)
Komponen :
- Power Supply 12V/3A
- Arduino
- Driver L298N
- Motor DC 12V with Encoder 116 pulse
- Sensor Arus (ACS712)
- PC/Laptop (Delphi XE8)





Sumber :
https://id.wikipedia.org/wiki/PID
- Dosen TE UM






Tidak ada komentar:
Write komentar
Hay, jika kamu terbantu dengan materi dan tutorial dari kami, yuk Follow kami - https://twitter.com/gegeembrie
Subcribe Newsletter