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. 

Minggu, 03 April 2016

Aplikasi Sensor RTD (PT100)

Sensor RTD tipe PT100
Mengukur nilai suhu pada suatu sistem memiliki tantangannya sendiri.
Ada banyak instrumentasi yang dapat digunakan untuk metode pengukuran sebagai feedback dari sistem.
Ada NTC (Negative Temperature Coefficient), termokopel, termistor, RTD (Resistance Temperature Detector), dan masih banyak lagi.

Untuk bidang industri sering kali penggunaan aplikasi termokopel dan RTD. Biasanya seringkali termokopel digunakan untuk pengukuran suhu boiler. Untuk RTD, aplikasi sering terdapat pada motor industri. Keduanya punya kelebihan dan kekurangan masing-masing. Salah satu keunggulan dari RTD adalah tingkat linearitasnya yang tinggi.

Kebetulan pada tugas akhir saya, saya menggunakan sensor RTD jenis PT100. PT menandakan sensor berbahan dasar platina, dan 100 berarti sensor akan bernilai 100 ohm saat di titik 0 derajat celcius. Sensor RTD jenis PT100 dan PT1000 paling umum di pasaran.
Berikut adalah persamaan dari nilai resistansi sensor terhadap perubahan nilai suhu,



Yang waktu itu jadi masalah untuk saya, saya menggunakan mikrokontroler sebagai media kendali sistemnya. Tentunya pembacaan sensor ingin dikonversi menjadi tegangan. Memang betul nilai pengukuran sensor dengan kenaikan resistansi terhadap suhu itu sangat linear, tetapi tantangan berikutnya bagaimana saat setelah dikonversi menjadi tegangan, sensor tetap menjaga keakuratan pengukurannya?

Disini saya sudah coba berbagai macam cara, salah satunya dengan metode pembagi tegangan.
Rangkaian Pembagi Tegangan


Namun hasilnya pun masih kurang maksimal.
Banyak referensi yang menyarankan dengan menggunakan Jembatan Wheatstone.
Tetapi penentuan nilai resistor yang pas masih cukup rumit bagi saya. Akhirnya saya menemukan rangkaian yang telah jadi dari Texas Instrument, dalam jurnal resminya.
Untuk melihat lebih jelas dapat langsung di unduh di sini.

Rangkaian Sensor
Rangkaian ini diatur untuk pembacaan range 0-200 derajat celcius dengan keluaran sebanding 0-5V.
Disini masih menggunakan PT100 two wire. Pada jurnal disediakan juga untuk jenis three wire.

Pada dasarnya rangkaian ini tidak menghasilkan pembacaan yang linear, namun hasil keluaran dari sensor memiliki deviasi yang sangat kecil sekali, sekitar 0,001%, sehingga bisa kita anggap linear.

Untuk referensi lain, bagi yang tertarik dalam menggunakan sensor termokopel, dapat merujuk ke link berikut: https://learn.adafruit.com/thermocouple/using-a-thermocouple
 
Alternatif lain yang cukup menarik dan mudah diaplikasikan yang bisa saya rekomendasikan adalah IC DB1820.
Pada prinsipnya penggunaannya mirip dengan IC LM35 untuk pembacaan suhu. Terdiri dari 3 kaki, Vcc, Ground, dan Data.

Konfigurasi Rangkaian
Apabila anda tertarik untuk pengukuran suhu air, disediakan pula produk DB18B20 yang dikemas secara waterproof. 
Waterproof Tempature Sensor
Namun sayangnya keterbatasan range pengukuran (-55 - 125 C), dan linearitas masih belum sebaik sensor RTD.

Semoga dari halaman ini dapat membantu rekan-rekan semua dalam proyek, riset dll, yang berhubungan dengan pengukuran suhu, terutama sensor RTD PT100, terima kasih. 






Sabtu, 02 April 2016

Pendekatan Pade (Pade Approximation)

Katsuhiko Ogata, Modern Control Engineering 5th Ed

Sering kali kita bertemu dengan waktu jeda atau dead time pada sistem kendali.
Dead time ditandai dengan adanya jeda saat sistem diberi step input.
Nilai waktu ini dalam fungsi persamaan Laplace akan ditunjukan dalam bentuk eksponensial.

Contohnya pada sistem pemanas air, teko listrik misalnya. Setelah teko menyala, air tidak langsung mengalami kenaikan suhu dikarenakan filamen akan terlebih dahulu mengumpulkan energi panas untuk memanaskan air sebelum akhirnya menaikan suhu air.



Ada saatnya dalam sistem aplikasi dan analisis sistem kita perlu memperhitungkan nilai dead time ini, karena akan berpengaruh banyak dalam hasil dari respon sistem.
Apabila anda aktif pengguna software matlab, ketika anda mencoba untuk konversi kedalam bentuk state-space, anda akan diperingatkan untuk merubah terlebih dahulu ke dalam aproksimasi Pade.

Sebetulnya tidak harus menggunakan aproksimasi Pade pun tidak masalah.
Kita bisa menggunakan deret Taylor untuk aproksimasi bentuk eksponensial ini.

Semakin tinggi orde dari penggunaan deret Taylor, maka performansinya akan semakin baik namun lebih rumit. Dan juga sistem memiliki rise time yang lebih lama.

Dengan menggunakan aproksimasi Pade, hasil respon dan pendekatan akan lebih baik, rise time sistem akan lebih singkat. Terlihat pada gambar di bawah, tidak ada overshoot.

Menggunakan deret Taylor (http://lpsa.swarthmore.edu/BackGround/TimeDelay/TimeDelay.html)
Menggunakan Aproksimasi Pade (http://lpsa.swarthmore.edu/BackGround/TimeDelay/TimeDelay.html)

Penggunaan fungsi Pade di dalam matlab cukup mudah.
pade(L,N)
L: nilai dead time
N: orde dari aproksimasi pade

Untuk lebih detil-nya pada matlab, silahkan ketik help pade atau doc pade pada command window di software matlab.

Apabila anda penasaran dengan persamaan yang mendasari aproksimasi Pade dapat melihat susunan persamaan berikut.

Aproksimasi Pade pada sistem eksponential didasari pada persamaan berikut:



Untuk lebih detil, silahkan cek langsung di buku "Matrix Computations - Gene H Golub" hal 572.

Nah, sekarang untuk penyederhanaanya lagi, p=q=k (ini tidak ada direferensi)

Ingat:
0!=1 dan (2k)! =/= 2!k!

Maka dari itu deret aproksimasi Pade dapat dijabarkan sebagai berikut,

Tapi ingat, dalam kasus dead time pada sistem kendali yang digunakan adalah exp(-Ls), bukan exp(Ls). Maka dari itu,

Pembilang dan penyebut dapat dibalik untuk memenuhi kriteria sistem kendali.

Sekian informasi dari saya. Mohon maaf bila terjadi kesalahan.





My First Blog!

Selamat Datang,

Ini adalah blog pertama saya.
Di dalam blog ini saya akan mencoba untuk berbagi sedikit pengetahuan saya,
tentang apa saja yang saya ketahui di dalam hal yang saya minati.

Saya lulusan S1 Teknik Elektro Telkom University angkatan 2011, dengan peminatan Instrumentasi dan Kendali. Namun sepertinya saya sendiri lebih meminati sistem kendali.

Ketertarikan saya dibidang kendali meliputi kendali optimal, multi-variable control, kendali cerdas, kendali robust, model predictive control (MPC), linear dan nonlinear control.

Kenapa saya bisa mencintai bidang saya ini? Karena saya sangat tertarik dengan matematika.
Setiap persamaan-persamaan matematik dibidang ini sangat terlihat indah, penuh perhatian, dan tidak sembarangan.

Selain itu saya juga menguasai bidang elektronika arus lemah, mikrokontroler, otomasi industri, dan sedikit ilmu telekomunikasi.

Saya harap dari blog ini dapat membantu rekan-rekan sekalian, atau bahkan menjadi tempat belajar bersama, dan anda bisa mengoreksi saya apabila terjadi kesalahan. Karena saya sendiri pun masih butuh banyak belajar.

Sincerely,