Sabtu, 23 April 2016

Implementasi Sistem Kendali (PID)

Blok diagram kendali PID
Dalam bangku kuliah, biasanya diberikan materi kendali sistem PID (Proportional, Integral, Derivative).
Namun mungkin materi yang diberikan lebih kepada filosofi PID itu sendiri, seperti pengaruh setiap parameter, teknik tuning, dll.
Bagi kalian yang tertarik untuk belajar PID secara mendalam buku ini bisa menjadi referensi terbaik: "Advance PID Control - K.J Astrom"

Kendali PID itu sendiri, biarpun sudah termasuk kontrol klasik, namun aplikasinya masih sangat banyak digunakan didalam dunia industri, biasanya untuk speed control pada motor.
Untuk metode implementasi sistem kendali itu sendiri bisa terbagi menjadi dua metode (sepengalaman saya), yaitu analog dan digital.

Apabila menggunakan metode analog untuk implementasi PID pada sistem, berarti menggunakan konfigurasi rangkaian listrik, seperti menggunakan OpAmp,
Metode digital berarti desain sistem menggunakan pendekatan secara digital, dan dilakukan di dalam pemrograman.

Pada tulisan kali ini akan ditekankan pada metode sistem kendali digital untuk PID. Tentunya selain sistem kendali PID, pendekatan ini dapat juga diterapkan untuk kendali jenis lainnya.
Umumnya kita perlu melakukan ini untuk memasukan PID dalam bentuk pemrograman ke dalam unit sistem kendali seperti PLC, mikrokontroler.
Jika anda tertarik anda bisa memasukan program berikut http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/

Saya akan menjelaskan proses pendeketan digital sesuai aturan "Kontrol Digital"
Secara garis besar seperti berikut:
  1. Bentuk fungsi alih sistem kendali PID
  2. Ubah ke bentuk digital
  3. Bentuk persamaan diferensial
  4. Tentukan Time Sampling

Jika sistem kendali yang anda gunakan adalah PI controller.



 dimana U(s) adalah keluaran kendali dan E(s) deviasi sistem kendali.

Dari fungsi alih C(s),  baru diubah dalam bentuk transformasi z.
Ada dua pendekatan yang saya sarankan,
  1. Euler Backward Transform
  2. Bilinear Transform
 Apabila menggunakan Euler Backward Transform, hasil dari persamaannya akan lebih sederhana, namun tidak mendekati. 

 Bilinear Transform atau Tustin, lebih memberikan hasil yang lebih presisi untuk keluaran sistem kendali.

 

Untuk mempersingkat contoh dalam aplikasi ini, saya menggunakan transformasi Euler Backward, dan didapati fungsi alih transformasi z sbb,

 
 Kemudian, bentuk persamaan differensial dari sistem tersebut. 


Secara garis besar akan coba saya jabarkan dalam algoritma berikut sesuai contoh diatas:

//inisialisasi
Kp = //proportional gain parameter
Ki = //integral gain parameter
Ts =  //time sampling
e_last
e_now
u_last
u_now
umax = //output controller maximum limitation
umin = //output controller minimum limitation
ref = //system reference

//loop programing
sens = get.sensorvalue //system feedback
e_now  = ref-sens //present error
u_now = (Kp+Ki*Ts)*e_now - Kp*e_last + u_last

if (u_now>umax) then output = umax
else if(u_now<umin) then output = umin
else output =  u_now

u_last = u_now
e_last = e_now
delay(Ts) //This actually not accurate or not exactly defined the time sampling sequence, because the system execute differently duration based on the quantity size of the program. 

Tidak ada komentar:

Posting Komentar