PID in Words

Jika anda adalah seorang professional di bidang automation atau berbackground pendidikan tentang control, tentu PID (Proporsional, Integral, Derivative) adalah termonilogi yang sangat anda kuasai. Apalagi jika anda adalah seorang yang memiliki keahlian dalam matematika, maka anda mungkin akan menuliskan rumus PID yang berisi kalkulus yang agak lumayan OK itu secara otomatis di luar kepala. Kemudian juga mungkin anda sudah hafal metode-metode untuk menentukan parameter tuning seperti Ziegler-Nichols sehingga dengan serta merta didapatkan grafik menuju kestabilan terhadap variabel yang hendak dikontrol.

Tapi lainnya halnya bagi seorang praktisi atau orang produksi di lapangan, bisa jadi PID hanya sekedar bagaimana memasukkan angka magic untuk parameter P atau I. P adalah 100, 200, 300 dst, untuk parameter I adalah memasukkan angka dst sampai didapatkan kestabilan traveling control valve. D sangat jarang digunakan.

Bagi seorang awam, saya berusaha untuk menerjemahkan PID dalam kalimat-kalimat yang mudah  dimengerti. PID adalah sebuah metode matematika yang berisi Gain+Integral+Derivative, yang digunakan untuk mengurangi gap antara variabel yang diinginkan dan variabel kenyataan dengan melakukan adjustment pada variabel yang dapat berpengaruh pada variabel kenyataan.

Contoh

Variabel kenyataan = Angka Pengangguran tinggi 20%,
Variabel yang diinginkan adalah = Angka Pengangguran rendah 2%,
Variabel yang mempengaruhi = Besar investasi,

maka PID akan menjadi sebuah formula perhitungan matematik yang yang secara otomatis menghitung berapa nilai uang yang perlu ditransfer ke dalam bursa investasi. Looping iterasi perhitungan dan evaluasi terhadap hasil investasi tersebut di lapangan dilakukan dalam periode yang sangat cepat. PID akan terus looping dan secara otomatis dan akan menghasilkan berapa value investasi yang diperlukan untuk dapat membuat nilai pengangguran yang semula 20% bergeraak terus berkurang menuju 2%. Hal ini dilakukan dengan terus memonitor variabel kenyataan di lapangan. Looping ini akan berjalan terus menerus dengan respon menuju 2% yang mungkin sangat lamban, atau kadang berliku-liku naik turun. Tergantung dari parameter yang mempengaruhinya. Nilai kestabilan akan didapatkan jika Variabel Kenyataan menjadi = Angka Pengangguran rendah, artinya kenyataan di lapangan pengangguran sekarang adalah 2% sesuai dengan target ideal dari kegiatan investasi tersebut.

Analogi dalam bidang control engineering adalah:
Variabel yang diinginkan = Set Point
Variabel kenyataan = Process Variabel
Variabel yg diadjust untuk mempengaruhi = Manipulated Variable.
Error = Set Point – Process Variable

Dan PID adalah hasil karya matematis yang cukup jitu untuk melakukan iterasi untuk membuat Error menjadi 0. Apa artinya 0 itu? artinya adalah Process Variable = Set Point atau dapat dikatakan Variabel kenyataan = Variabel yang diinginkan. Kalo keduanya sudah sama maka itulah kestabilan dan tujuan pengontrolan sudah tercapai.

Satu contoh sederhana dalam engineering adalah untuk mengatur ketinggian level air dalam tanki menjadi setengah (50%) dengan menggunakan PID logic. Kebetulan tanki sedang kosong dan kran keluarnya di tutup.
Variabel kenyataan = Tanki Kosong dan Variable kenyataan ketika sudah terisi = n%
Variabel yang diinginkan = Level air 50%
Variabel yang mempengaruhi = Kocoran air masuk ke dalam tanki (valve)

Jadi yang dikontrol adalah kocoran air masuk dalam tanki, oleh karena itu dipasanglah control valve di pipanya. Untuk mengetahui ketinggian level air secara kontinue maka dipasanglah level transmitter (LT). Untuk mengontrol hitungan PID maka dibuatlah program matematis dalam komputer (LIC) yang sudah dapat berkomunikasi untuk menerima signal dari level transmitter dan mengirim signal ke control valve. Dan di komputer tersebut kita masukkan Set-Point.

pid

Begitu PID program kita online maka secara otomatis mencari nilai Error (50% -n%)untuk looping. Yaitu dengan cara mengurangkan Set Point dengan Variabel Kenyataan dari Level Transmitter. Error dimasukkan ke dalam hitungan PID (LIC) dan menghasilkan suatu nilai Manipulated Variabel yang akan dikirim ke Control Valve dalam bentuk signal untuk membuka valve dalam percentage. Sehingga air pun mengocor. Nah, ketika level air sudah 50% sehingga Error = 0 artinya tujuan pengontrolan sudah tercapai maka PID akan mengirim signal ke control valve untuk menutup sedikit demi sedikit sampai rapat.

Sederhanakan PID? Iya tentu saja karena ini adalah tulisan awam. Kalau anda dapat menemukan formula lain dalam matematika yang dapat melakukan iterasi untuk membawa variabel kenyataan menuju variabel yang diinginkan yang lebih akurat maka anda akan dapat menemukan teori pengontrolan yang baru. Karena harus disadari, meskipun dalam perhitungan murni matematika (tanpa ada gangguan pun) PID itu menghasilkan ripple (naik turun) untuk mencapai nilai variabel yang diinginkan, dan itu diredam dengan tuning yang tepat.

Possibly Mistake in PID

Praktisi yang terbiasa dan berpengalaman dengan konsep kontrol diskrit dengan level switch, PLC, on-off valve akan cenderung membawa konsep kontrol diskrit ini ke konsep PID. Yang mana ketika level switch kontak maka PLC akan memberikan aksi ke on-off valve untuk membuka atau menutup. Hal ini dianalogikan ketika set-point pada PID terlewati maka control valve harus beraksi sampai bisa mengejar proses variable. Begitu terkejar dan nilai proses kembali turun ke set-point maka kontrol valve akan beraksi yang sebaliknya. Mungkin yang terlihat bedanya hanya perintah kontroller ke kontrol valve adalah perintah analog, sedangkan ke on-off adalah discrete, sehingga ketikapun baru 80% proses sudah terkejar, control valve bisa kembali menutup, tidak perlu full opening seperti on-off valve. Pemahaman dari pengamatan lapangan ini tidak bisa dijadikan sebagai dasar pemahaman PID. Karena dari pemahaman itu set-point hanya akan dijadikan sebagai titik trigger kapan kontrol valve harus membuka dan kapan kontrol valve harus menutup. Set-point hanya akan dipahami ibarat titik switch sebagaimana kontrol diskrete, sebagai penentu kapan kontrol valve membuka dan kapan menutup. It shall be rejected at all.

Re-build Understanding in PID

Praktisi akan mengatakan terlalu lama untuk kembali memahami konsep PID, ketika terbukti dengan pemahaman seperti di atas pun proses sudah bisa berjalan dan projek bisa finish. Penjelasan dari “Basic And Advanced Regulatory Process Control” Harold L. Wade (Instrument Society of America) dapat menjadi dasar untuk mencoba memahami PID secara konseptual.

m = Kc (e + 1/Ti (int. e dt) + Td.de/dt)

“This equation compute the position of the final control element, it is usually called the position form” Harold L. Wade.

Persamaan di atas dihitung di dalam DCS setiap 50 millisecond atau lebih pendek, sehingga setiap 50 millisecond akan didapatkan posisi control valve yang baru. ‘e’ pada persamaan di atas dihitung dari perbedaan set-point dengan proses variabel. Jadi setiap 50 millisecond didapatkan ‘e’ yang baru untuk dihitung oleh PID untuk menghasilkan ‘m’ yang baru. ‘m’ adalah manipulated variabel biasa disebut juga sebagai MV.

Jadi ketika transmitter sudah memberikan input maka DCS akan menghitung ‘e’ dimasukkan ke persamaan di atas menghasilkan ‘m’ dan dikirm ke control valve dengan perioda untuk satu siklus adalah 50 millisecond. Itu artinya dalam 1 detik DCS mengeluarkan perintah sebanyak 20 kali. Jauh ketika proses belum mencapai set-point (refer kasus level di atas), siklus perhitungan PID di atas sudah dimulai dan aksi akan diberikan ke kontrol valve. Ketika proses masih jauh dari set point maka keluaran PID ‘m’ akan minus yang dengan mudah akan dinetralisir oleh PID dengan if m<0 then m=0 artinya tidak ada aksi untuk kontrol valve. Ketika proses melebihi set-point maka output PID akan positif dan koresponding dengan opening control valve. Nilai m harus dipercentage oleh DCS dari 0 – 100%.

Jadi proses perhitungan berlangsung secara terus menerus or continue pada semua kondisi proses setiap 50 millisecond. Set-point bukan nilai stand by untuk menunggu proses, dan akan beraksi ketika proses mencapainya. Set-point adalah nilai referensi untuk menghitung gap atau error sehingga koresponding opening diberikan ke control valve setiap 50 millisecond secara kontinyu.

Nova Kurniawan
Alumni Teknik Fisika ITB, 2004, sekarang Engineer di J Ray McDermott Batam-Indonesia

21 Responses

  1. Masalahe keknya error gak bisa nol yaaa?

  2. nice knowledge for newbie like i do.
    thanks for sharing.

  3. mas,terimakasih artikelnya….
    saya ada mau share dikit…judul tugas akhir saya tuh seperti itu…
    penegendali level ketinggian air menggunakan kontrol PID bebbasis delphi..saya juga merancang tangki air tapi tanpa memperhitungkan debit air yang masuk dan keluar….
    saya mau tanya…gimana output sistem ketika katup valve menutup dan pompa air juga mati…
    awalnya saya mengadopsi PID dari artikel punya andrew clayton…tapi output sistemnya itu di 67%..yang artinya valve terbuka mengeluarkan air sebesar 67%.

    seperti yg saya bilang diatas tadi bahwa real tangki air yang saya bikin itu susah ngatur agar pompa dan valve outputnya sinkron…akhirnya saya mau buat ketka ketinggian air yg diinginkan sudah tercapai maka valve dan pompanya nutup.

    gimana kira2 grafik dari sistemnya mas diatas.karena yg saya baca kayknya seperti itu sistem saya.

    trimakasih sebelumnya..

    semoga Tuhan membalas kebaikan mas🙂

  4. Asumsi: Pompanya untuk mengisi tanki dan Valve-nya untuk ngatur keluaran?

    Flow itu sebagai load… Kalau nggak ada load atau flow in = 0 pada set-point tentu valve harus menutup rapat artinya output PID = 0%.

    Kalau flow in = x, maka pada kondisi level set-point ouput PID = n% untuk menghasilkan flow = x juga…maka stedy pada level set-point, flow in = flow out.

    Jadi mas ipul ingin satu input dari level, kemudian menghasilkan dua output; ke valve dan ke pompa air.

    Output ke control valve adalah output PID yang bekerja secara analog. Nah untuk ke pompa apakah mas ingin juga menggunakan analog signal dari PID?

    Selama ini saya belum pernah ketemu pompa Analog yang bisa menerima perintah analog. Semua pompa menggunakan perintah digital kapan harus hidup dan mati. Jadi kalau saya yang bikin maka pompa harus ada pada loop yang terpisah.

    Control Valve dan Level Set-Point bekerja untuk throathling pada set-point.
    Pompa akan mati pada Level Hi-Hi. Dan Pompa akan hidup pada Level Lo-Lo.

    Apakah mas ipul ingin mematikan pompa pada Level Set-point?

  5. iyah…kira2 seperti itu asumsi saya mas…
    untuk pompa air saya tidak menggunakan signal analog PID mas….
    intinya mungkin seperti yang mas tanyakan saya mematikan pompa pada level set point…

    jadi ketika error = sp-pv, maka proses kontrol pid tercapai…..yang berarti pompa berhenti mengalir dan valve tertutup rapat…

    maaf banget mas klo jawaban dan pertanyaan saya membingungkan…

    apa kah pada grafik output PID menunjukkan angka 0% ketika sistem yang saya buat seperti itu?

    trims mas nova…

  6. Untuk mematikan pompa pada set-point, seharusnya tinggal mas ipul masukin satu diskrit input input dari level untuk menghasilkan satu diskit output ke pompa. Tentu Function-nya harus terpisah dengan PID untuk Level-Controller-Control Valve.

    Bisa dong menutup rapat, simulasikan kembali function PID yang berisi komponen-komponen PID. Tapi level anda pasti akan jatuh dibawah set-point.

    Btw. ketika anda mengisi tanki dari kosong, control valve masih menutup rapat. Begitu menyentuh set-point pompa anda mati. Maka control valve anda sebenarnya tidak akan pernah membuka. Karena kalau control valve anda membuka pada saat level naik belom mencapai set-point maka berarti program PID-nya aneh. Error = SP-PV atau Error = PV – SP. Pilih yang tepat errornya sesuai dengan logika proses. Kalau pemilihannya sudah tepat maka begitu Error = Negative itu artinya Error = 0.

    Untuk kasus leval di tanki dengan control valve di downstream output (air-to-open) maka membesarnya error di atas set point harus diikuti dengan membesarnya opening. Maka pilih Error = PV – SP. Pada saat pengisian air PV di bawah SP maka Error pasti akan negative, artinya Error harus dijadikan 0 sehingga control valve tidak akan bergerak.

    Kalau anda paksakan masukin ke persamaan PID maka output PID akan negative. Control Valve tidak akan ada opening negative. Kalau anda nilai mutlak kan maka control valve akan membuka pada saat pengisian, maka anda tidak akan pernah mencapai set-point.

  7. terimakasih banyak mas……
    aku dah dapat pencerahan…..
    gpp yah klo aku sharing2 lagi….

    hehehe……

  8. mas nova,

    saya mau tanya lagi boleh yah…
    ni mas…di visual saya ngatur Set Point (SP) 1550 dan Error akan mencapai 0 ketika PV mencapai 1550 juga..
    di coding saya menggunakan rumus PID dengan model diskrit (saya ambil dari jurnal TE)

    saya mau tanya mas…

    jumlah error = jumlah error sebelumnya – error
    (saya kurang ngerti hal diatas itu mas)

    makasih mas…

  9. Mas Ipul,

    Coba buka salah satu link saya di atas yaitu: Process Control. Di sana saya saya berdiskusi dengan mas Asro tentang efek dari Integral yang berupa Sigma error. Dan mas Asro menjelaskan dengan cukup detail. Untuk diskritasi PID beliau cukup expert karena sudah membuat berbagi variant PID diskrit.

    Garis besarnya adalah karena adanya persamaan itu (fungsi integral) maka PID memberikan opening pada suatu nilai tertentu ketika error = 0 atau steady state. Saya dan ‘beberapa orang’ mungkin sering terjebak ketika e=0 padahal e di olah di persamaan PID maka terkesan PID akan sama dengan 0. Padahal tidak. PID akan sama dengan value terakhir ketika error=0. Ketika value terakhir PID = n% dan sistem sudah stabil (artinya error = 0, SP=PV), maka n% itu hasil dari persamaan yang mas ipul tanyain.

    Kalau mau baca tulisan saya yang lain: A steady state: Where shall control valve be? juga sedikit membahas tentang efek dari error = 0.

  10. mas, apa perbedaan close loop dg open loop pada pengontrolan PID secara umum?

    trims mas.

  11. Mas ipul, kt harus menyamakan konsep dulu ttg close loop dan open loop. PID itu berjalan dengan iterasi. Iterasi adalah penghitungan berulang-ulang dalam siklus tertup yg disebut loop. Ketika siklusnya terbuka maka looping perhitungan PID tidak terjadi.

  12. sampai disini saya ngerti mas…kemarin saya sempat liat di salah satu tutorial PID tapi dengan bahasa inggris..ada sebuah blog diagram PID dengan close loop. akan tetapi tepat di coding PID nya dia menandai 2 buah rumus PID dengan

    procedure PID….
    bla bla bla…………………. //no feedback

    dan

    procedure PID2…
    bla bla bla………………….// with feedback

    yang saya mau tanyakan apakah no feedback itu adalah open loop dan with feedback itu close loop…

    trims mas,

  13. Mas Ipul, input PID adalah error/gap antara set-point dan aktual value di lapangan. Aktual value didapat dr transmitter. Dalam diagram block PID with feedback transmitter tsb adalah pemberi feedback. Ketika tidak ada feedback dari lapangan pd hakikatnya PID tidak bekerja. PID no feedback artinya, loopnya lagi di manual, bolehlah saya bilang loopnya lg open. Tp orang-orang yg pengalaman di lapangan cenderung menyebut open loop hanya untuk loop-loop only for monitoring/indicating tanpa controller. Contoh LT transmitter di lap didisplay di HMI sbg LI. That’s it hy untuk monitoring display, tdk ada proses controlling dgn PID.

  14. mas asro kalau coding berikut ini menunjukkan sistem open loop apa close loop??
    ini saya dapatkan dari referensi yg saya baca…
    ini disertai blogdigramnya..tapi saya gak bisa masukin blognya lewat comment😀

    “Output(k) = Output(k-1) + Gain x [e(k) – e(k-1)] + Reset x e(k) + Rate x [(e(k) – 2e(k-1) + e(k-2)]”
    tolong bantu mas

    trims

  15. oh iya,saya lupa beri tahu…
    gain itu dianggap Kp, Rate dianggap Kd, dan reset dianggap Ki.

    trims mas

  16. Mas Ipul, saya merasa berbeda pendapat dengan referensi anda. Saya pengen baca ref anda dan liat block diagramnya. Close loop dan open loop terkait dengan loop, bukan perbedaan rumus PID. Lagi pula ketika Open Loop, PID itu tidak ada gunanya. Sehingga PID Open Loop is useless to discuss. Kalau ingin mendiskusikan PID diskrit, sbgaimana contoh, lebih enak di blognya mas Asro.

  17. mas..saya lagi ngerjain TA tentang PID…TA Q berhubungan dengan pengaturan tekanan Uap….Q tlong d bntu kasih rangkaian dan rumus2nya……dan klo ada q di kasih referensi yang buanyak….buku kek misalnya tentang “ANALOG KONTROL” PID…..hehehehe…..tlong y mas makasih……

  18. ki rim d E-mail q y mas….jngan lupa y….biar q pinter y….hehehe. makasih

  19. Mas Adi, rangkain PID dalam bentuk rangkaian electronic… Seharusnya ada tp saya lupa referensinya dimana. Rumus2 PID? Bukannya kalau mau TA sudah benyak belajar rumus di kuliah?. Referensi bisa Process Control; Stephano Poulos. Process Control: Liptak, kalau ngga salah ada Sinskey juga (saya gak punya). Kalau mau aslinya beli aja di Amazone.com, kalau mau fotokopi (ilegal) bisa ke Dunia Baru, Taman Sari, Bandung.

  20. Boleh ikutan nimbrung ga?? Boleh ya….

    Mas Nova ini makin ciamik aja masalah process control design and analisis… Sharing2 terus ya mas….

    Mas Adi, kalau mau tau rangkaian electronic untuk PID itu pertama mesti kudu tau rumus, misal pakai transformasi laplace menggunakan iterasi n-kali… nah begitu kira2 sistemnya sdh stabil (n makin besar then ripple mengecil but makin rumit) baru bisa didapat nilai komponen nya RLC = Resistor, capacitor and inductor). Tapi byat beberapa asumsi karena terlalu banyak variable yang tdk diketahui jadi makin rumit… Saran saya kalau mau masukkan nilai asumsi menggunakan nilai2 komponen yang di jual di pasaran… untuk komponen kelas Low end maka errornya pasti besar antara hitungan dan aktual.

    Cari komponen yang agak bagus dan pastinya lebih mahal biar hasilnya bagus… Ga susah2 amat kok buat rangkaian PID coz aku pernah juga buat pas kuliah…. coba aja dulu dijamin banyak capacitor meledak… hahahahaha …. cheers

  21. […] PID in Words […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: