Model Predictive Control; A Very Basic

In A Brief History of Time, Stephen Hawking said a new invention is called a theory when it meets two requirements. Number one is it could explain something was happened already in the past time, number two is it could explain and predict something is going to happen in the future (prediction). And the good thing was he explained universe since it was created to the future without using any single mathematic  (except E=mc^2). It was great and amazing novel because once again it was without mathematic. When scientist is struggling to find what is going to happen on universe in the future, does an engineer be able to predict what is going to happen to flow, pressure, level, and temperature are being handled by him in the next few minutes? The ability to predict was enabling engineer to have an idea about model predictive control. I belive discussing MPC without mathematic is really something (sesuatu banget..yah), but it will be only basic conceptual.

Model Predictive Control (MPC) hanya digunakan pada very complicated dynamic system, ketika PID control sudah tidak mampu menghandle dinamika pada sistem tersebut. Contohnya adalah sistem control antara kecepatan maju helikopter dengan sudut baling-balingnya. Anyhow kata “very complicated dynamic system” menjadi barrier bagi kita untuk memahami MPC dengan cara sederhana. Karena kata tersebut menakutkan kita (kebayang multiple input, multiple output, dengan fungsi transfer yang rumit, bahkan sistem yang tak bisa disimpulkan fungsi transfernya, krn saking complicatednya). Untuk menghilangkan barrier tersebut dengan tujuan mulia hanya untuk memahami basic konseptual MPC (bukan menjadi expert) maka kita harus menggunakan very simple dynamic system. To understand something big, we need to start from a simple thing, don’t we?.

MPC yang dibahas di sini adalah dengan metode pengontrolan open loop. Artinya sepertinya “feedback” seakan-akan tidak diperlukan. Ini diibaratkan seperti orang buta yang mengisi air dari dispenser ke dalam gelas tanpa melihat dan memegang gelasnya. Besar aliran dari dalam dispenser dan waktu yang diperlukan untuk mengisi gelas sampai penuh, tanpa luber, harus dihafal oleh si buta. Beda dengan orang mata normal, maka mata digunakan sebagai feedback untuk mengetahui level air dalam gelas. Tanpa feedback level, maka dinamika kocoran air terhadap lamanya (dalam fungsi t) harus benar dikethaui. Sehingga si buta hanya menggunakan t (waktu), patokan level yang diinginkan dalam hati (set-point), dan prediksi level dalam hati (predicted process variable) untuk melakukan aksi controlnya.  

Kita cari model sistem yang paling sederhana dulu. Meskipun menerapkan MPC pada sistem yang sederhana disebut sebagai “missapplied MPC application“. Ndak apa-apa missapplied hanya untuk mendapatkan konsepnya saja. You will not become an expert by reading my blog. If you want to become an expert, apply scholarship and get master or doctoral degree in the university. Dinamika sistem yang kita pakai di bawah ini adalah flow control.

Controlled Variable (CV) adalah Flow Downstream (ini disebut juga sebagai Process Variable (PV))

Manipulated Variable (MV) adalah Flow Upstream (ini disebut juga sebagai Controller Output (CO))

Asumsikan kondisi pompa yang kadang stabil tetapi kadang tidak, sehingga control valve harus bekerja untuk menstabilkan flowrate yang melalui pipa. Dengan MPC open loop artinya controller harus memberikan perintah ke control valve untuk melakukan modulasi flow tanpa mendapatkan feedback dari flow transmitter. Terasa aneh memang, tapi kita ikuti dulu apa maunya teori MPC.

Langkah pertama adalah dengan mengenal karakteristik dinamika sistem yang hendak dikontrol. Caranya adalah dengan menguji output dinamika terhadap perubahan input yang diberikan fungsi step. Istilah “fungsi step” terlalu matematis. Bahasa melankolis-nya adalah apa yang terjadi pada output dinamika, ketika inputnya diberikan perubahan mendadak dari nilai asalnya. Misalkan dinamika sistem di atas sudah stabil pada nilai opening control valve 25% dan flowrate downstreamnya 25 gpm, flow maximum adalah pada 100% full opening adalah 100 gpm dengan kondisi pompa stabil optimum. Pengujian dilakukan dengan membuka control valve tiba-tiba dari 25% menjadi 50%, bagaimana response perubahan flowrate downstreamnya? Response idealnya adalah seperti dibawah. Grafik MV: opening valve terhadap waktu, Grafik CV: flowrate terhadap waktu.

Dari grafik di atas dapat dipelajari karakteristik prosesnya bahwa flowrate akan naik, let’s say 50 gpm, setelah sekian waktu N, ketika control valve dibuka menjadi opening 50%. Korelasi antara control valve opening dengan flowrate yang melalui transmitter dibuat linear yaitu percentage opening sama dengan gpm air yang dilewatkan oleh control valve. Sebagai manusia tentu otak kita akan mudah memprediksi jika control valve dibuka 75% berapa flowrate stabilnya nanti? pasti 75 gpm.  Tetapi kita tidak akan menaruh otak kita hanya untuk mengontrol satu loop di atas. (Lebih baik otak kita dipakai untuk memikirkan umat…syaaahhhhh!!!). Solusinya loop ini automatically harus bisa memprediksi sendiri apa yang perlu dilakukan oleh control valve agar flow-nya tetap di 75 gpm ketika pompa-nya batuk-batuk.

MPC controller harus “diajari” sedemikian rupa untuk mengantisipasi perubahan set-point atau perubahan flowrate (krn pompa batuk-batuk) agar set-point tetap tanpa mendapatkan feedback langsung dari flow transmitter (nilai flowrate pada saat itu).

Nah, ternyata untuk menjelaskan itu (dan menjawab kebingungan saya selama ini), bahwa informasi dari flow transmitter tetap diperlukan tetapi namanya bukan sebagai “feedback” tetapi hanya sebagai alat untuk mencari “corrective prediction”. Kembali ke anologi orang buta ngisi air di atas mengisi air ke gelas tanpa melihat, tetapi orang butanya masih mendapat informasi dari kawannya tentang isi gelas, namun hanya untuk mengkoreksi prediksinya. Jadi nggak benar-benar blind tanpa informasi. Hal itu digambarkan dalam diagram block MPC. Diagram blocknya saya samakan (krn saya tidak tau bedanya) dengan model diagram block Smith Predictor Control.

Set-point diberikan kepada controller kemudian controller mengeluarkan aksi opening kepada control valve. Besar opening control valve M% diketahui kemudian dilakukan perhitungan oleh controller untuk memprediksi nilai flowrate. Nilai prediksi flowraet ini kemudian diselisihkan dengan nilai flowrate yang sebenarnya. Selisih ini yang digunakan sebagai “corrective prediction” untuk diumpan balik ke nilai set-point untuk dicari selisihnya. Jadi bener kan? tidak ada feedback dari transmitter hanya corrective prediction. (Ahhh cuma beda mbulet-nya sama istilahnya hihii).

Narasinya bisa digambarkan sebagai berikut. Awalnya nilai set-point adalah 25 gpm flowrate exactly adalah 25 gpm dengan bukaan control valve 25%. Kemudian Set-point diubah menjadi 50 gpm. Apa yang terjadi? Ketika set-point dirubah maka instantly dengan model yang sudah di dapat dari percobaan response fungsi step controller akan mengeluarkan perintah pada saat let say t= 1 second membuka 30%. Nilai bukaan 30% kemudian dihitung oleh controller akan menghasilkan prediksi flowrate yang belum tunak (belum steady state) sebesar 27 gpm. Pada saat yang sama Flow Transmitter memberikan informasi bahwa flowrate actual sebesar 28 gpm. Controller mencari selisih nilai prediksi 27 gpm dengan nilai aktual 28 gpm yaitu 1 gpm sebagai corrective prediction. Selisih nilai 1 gpm ini diolah di dalam kontroller untuk dijumlahkan dengan nilai prediksi tunak 30 gpm (30 gpm + 1 gpm)menjadi 31 gpm. Nilai penjumlahan ini kemudian dibandingkan dengan SP=50 gpm dicari selisihnya yaitu 19 gpm yang kemudian disebut error controller. Errornya masih tinggi sehingga controller masih memerlukan looping perhitungan t1,t2,t3……dst.  Sampai katakanlah pada saat t = 60 second sudah tunak controller menyuruh membuka control valve sebesar 50%, prediksi flowrate sudah steady state sebesar 50 gpm, actual flowrate 50 gpm. Corrective predictionnya adalah 0 gpm (actual – prediksi = 50 gpm – 50 gpm = 0 gpm). Kemudian ditambahkan nilai corrective prediction + flow prediksi tunak 50 gpm = 50 gpm + 0 gpm. Kemudian input controller = Set Point-50 gpm = 50 gpm – 50 gpm = 0. Artinya input controller =0 mengandung artinya looping aksi controller berhenti.  

Jadi apabila selisih flowrate prediksi dengan flowrate actual sama dengan 0 maka nilai prediksi = nilai actual artinya tujuan pengontrolan control sudah tercapai. Looping program controller steady menghasilkan nilai opening control valve yang tetap.

Sebaliknya jika set-point 50 gpm tapi ternyata flowrate yang lewat flow transmitter berubah-rubah atau bergelombang let say dari 60 gpm ke gpm maka nilai corrective predictionya akan berubah tidak nol lagi dan pasti akan terdapat selisih dengan set-point sehingga akan terdapat aksi control ke control valve untuk mengimbangi pompa yang batuk bergelombang flowratenya.

Kesimpulannya adalah Model Predictive Controller melakukan prediksi nilai output process terhadap perubahan input kemudian dicari selisihnya dengan nilai actual output process sebagai corrective prediction untuk diumpankan balik ke input controller setelah dicari selisihnya terhadap set-point.

Ketika para scientist memprediksi bahwa kiamat akan terjadi ketika bumi dalam kondisi membeku karena alam semesta terus berexpansi saling menjauh sehingga energy matahari tidak sanggup lagi menyinari bumi karena energinya habis di jalan, maka tidak ada salahnya prediksi tersebut selalu disertai dengan corrective action terhadap actual suhu bumi sekarang dengan disturbance ozon yang rusak lebih cepat dibanding expansi bumi-matahari.

Batam, 22 Dec 2011

Untuk Ibu yang telah membesarkan saya….

Advertisements

Fieldbus Critical Concept; something differ from DCS

This article is inpired by the D. Majumder’s article Invensys India Pvt on Hydrocarbon Processing Megazine December 2010 with title ” Critical concepts in fieldbus system design differ from a conventional DCS”, here are some key topics calling for a conceptual change from the traditional DCS. The article will be summarized in bahasa Indonesia and developed with my own words.

Ketika konsep kontrol relay-relay logic diboyong menjadi PLC, maka PLC dipahami sebagai representasi kontrol diskrit relay dalam bentuk software dalam PLC. Ketika kontrol diskrit PLC sudah mendarah daging kemudian berpindah ke sistem analog yang diprakarsai oleh DCS (kemudian diikuti juga oleh PLC), maka tidak sedikit oknum yang membawa pemahmanan diskritnya (on-offnya) ke sistem analog DCS, padahal konsepnya sudah berbeda. Nah ketika teknologi baru Foundation Fieldbus datang maka dapat dicurigai bahwa pemahaman DCS akan dibawa juga untuk memahami fieldbus. Nah, apa key topic yang menjadi konsep fieldbus sehingga kita harus men-switch konsep kita dan meninggalkan cara pandang DCS.

“The real DCS is fieldbus” adalah adigium pertama untuk menunjukkan bahwa fieldbus secara konseptual adalah advanced dari konsep DCS. Konsep distribusi fieldbus yang ditunjukkan dengan adanya technology “control on wire” atau “control on the field” menyebabkan it is really distributed control. Sedangkan DCS sendiri tidak memberikan opsi itu, DCS mengolah algoritma kontrolnya di CPU system cabinet dalam kontrol room. Justru fieldbus yang memberi opsi sebaliknya memberikan pilihan untuk mengeksekusi algoritma kontrolnya di dalam fieldbus CPU kabinetnya dalam kontrol room yang disebut “Control in DCS”. Ada sedikit keheranan saya di sini bahwa fieldbus CPU di dalam kabinet masih juga disebut sebagai DCS dengan fielbus I/O modul. Kenapa tidak bikin aja nama baru?.

Fieldbus control I/O module dan DCS control I/O module sama-sama menggunakan power supply standar 9-32 VDC untuk energize segmentnya atau loopnya. Tetapi transmisi signalnya dari lapangan menggunakan metode yang berbeda. DCS menggunakan transmisi signal analog 4-20 mA DC (device-1 pair-JB-multipair-DCS module), sedangkan fieldbus menggunakan transmisi signal 31.25 Kbps (device-H1 Fieldbus Module). Transmisi signal fielbus menggunakan frekuensi bukan arus. Akan tetapi ada saja kemudian pertanyaan timbul berapa arusnya yang lewat kalau control valve buka 50%? Atau pertanyaan bahwa kita sudah terlanjur beli multimeter bagaimana cara trouble shoot signalnya kalau ada problem? Pertanyaan-pertanyaan ini adalah  pertanyaan konsep analog DCS yang hendak ditanyakan ke fieldbus padahal konsepnya sudah berbeda.

Apa yang anda bayangkan ketika kabel fieldbus dilewati oleh signal 31.25 Kbps? Kalau konvensional data dengan arus 4-20 mA bisa kita ukur dan rasakan kita sebut sebagai “barang keras”, mungkin data transfer signal 31.25 Kbps sebagai “barang alus”. Untuk memahami konsep transfer data fielbus 31.25 Kbps harus dipelajari konsep Manchester Coding yang ide-nya mungkin ada hubungannya dengan kota Manchester, UK. Saya tidak tau berapa kilometer jaraknya dari Old Trafford, atau saya juga tidak yakin Wayne Rooney atau Sir Alex Ferguson bisa menjelaskan tentang Manchester Coding ini. Kalau ada kesempatan nanti kita bahas Manchester Coding ini dalam topik tersendiri.

Fieldbus menggunakan istilah segment H1 untuk menunjukkan sekumpulan devices yang terkumpul dalam 1 network. Secara teori maksimum terdapat 32 devices yang bisa beroperasi dalam satu segment. Tetapi karena pertimbangan safety intrinsically safe (ex i) yang mengkonsep pembatasan energi ke lapangan maka dalam satu kabel/segment  H1 hanya ada 8-10 fieldbus devices. Topologinya adalah masing-masing FF device dihubungkan dengan single-pair cable (spur) ke JB yang berfungsi sebagai network hub. Dari JB ini dihubungkan dengan single-pair cable (trunk) ke fieldbus module di control room. Hubung kabel ini: 8-10 spurs- 1 trunk-fieldbus module disebut sebagai satu segment H1. Topologi ini berbeda dengan DCS. Setiap devices dihubungkan dengan single-pair cable ke JB (terminal) dan dihubungkan ke DCS kabinet dengan multipair (sebanyak pair cable untuk devices + spare).

Function block fieldbus selain di DCS (CPU-nya fieldbus disebut juga DCS)  juga terdapat di setiap fieldbus device di lapangan; transmitters dan control valves. Function block adalah suatu fungsi matematika algoritma kontrol yang menghubungkan inputs dengan outputs. Function block yang melakukan kalkulasi ketika input sekian, berapa outputnya. Dalam sistem konvensional DCS, input 4-20 mA dilinearisaikan menjadi input 0-100% function block, dihitung oleh algoritma kontrol di DCS, menjadi output 0-100% kemudian dilenarisasikan menjadi 4-20 mA ke control valve. Dalam sistem fieldbus input function block berupa process value data digital, dihitung oleh algoritma kontrol di device (bisa juga di DCS), kemudian data output dikirim ke control valve berupa data digital value control valve opening. Meskipun function block fieldbus ada di devices tidak berarti antar device bisa berkomunikasi tanpa DCS (CPU-nya fieldbus), karena DCS masih diperlukan sebagai host.

Saya kira untuk pemahaman lapangan tentang beda konsep Fieldbus dan DCS konvensional sudah cukup. Karena selebihnya yang dibahas adalah tentang data acquisition, scan time (waktu pemrosesan signal), komunikasi fielbus module dengan DCS analog module, dan cara merefresh fieldbus device. Semuanya “barang alus” mau ditulis susah, karena ngertinya aja susah.

Nova Kurniawan

Batam 19-Oct-2011

Control Valve Seat Leakage

I just want to summarize the article of Don Sanders, GE Energy, Atalanta, Georgia on Hydrocarbon Processing, august 2011. The original article has a title “Control-valve seat leakage, Enhancing initial performance and extending the service life of valves offers benefits”.  Artikel ini akan dirangkum dan ditulis kembali dengan bahasa indonesia.

Seat Leakage adalah kebocoran yang terjadi pada dudukan valve ketika valve dalam kondisi tertutup. Kebocoran ini mencakup dua kasus yaitu yang melintasi upstream ke downstream dudukan valve dan kebocoran yang melewati internal trim seal, bocor sambungan body dan acuator, dan bagian lainnya dalam internal body valve. Standar pamungkas yang digunakan adalah ANSI/FCI 70-2, Control Valve Seat Leakage, dan cilakanya sudah bertahun-tahun saya kerja di bidang ini, saya belom pernah punya standar tersebut. Semoga dari artikel pendek ini kita bisa “mencuri” ilmu kandungan ANSI/FCI 70-2.

ANSI/FCI 70-2 menggolongkan control valve berdasarkan tingkat kebocorannya menjadi 6 yaitu Class I to Class VI. Kelas yang paling tinggi adalah Class VI artinya paling perkasa, tight, dan tidak bocor. Kelas yang paling rendah adalah Class I artinya kelas yang paling tidak dipedulikan boleh obos-obos, beser, banyak bocornya. Standar ini mendefinikan cara pengetesan dan nilai Maximum Allowable Leakage (MAL)nya pada saat seatnya duduk ditempatnya. Pengetesan dilakukan dengan menggunakan media air dan udara dengan tekanan dan temperature yang sudah ditentukan. Note: nah ternyata ujug-ujug ada informasi bahwa Standar IEC 60534-4 Industrial Process Control Valve ternyata juga membahas hal yang serupa.

Langsung menuju ke arti dari pembagian kelas-kelas leakage di atas berdasarkan ANSI/FCI 70-2:

Class I artinya adalah tingkat kebocorannya tidak didefinisikan. Artinya control valve tidak perlu dilakukan leakage test jadi tidak perlu didefinisikan maximum allowable leakage-nya. Apakah ada yang perlu control valve seperti ini? bisa saja misalnya control valve yang fail-nya open, normal operasinya adalah modulasi dari 50% ke 100%  dan letaknya di dekat on-off isolation valve.

Class II artinya Maximum Allowable Leakage-nya 0.5% of valve flow capacity. Valve flow capacity adalah:

Q = Cv / sqrt (SG/dP)

Q: Flow capacity (gpm)

SG: Specific Gravity of Fluid (untuk pengetesan digunakan air yang SGnya = 1)

dp: Differential Pressure across valve (psi)

Cv didefinisikan oleh ANSI/ISA S75.01.01 sebagai jumlah gallon (amerika) air pada suhu 60 degF yang melewati control valve yang terbuka dengan beda pressure upstream dan downstream 1 psi. Pada saat kondisi ini Q = Cv. Jadi sebenarnya Cv adalah flow capacity pada kondisi yang telah disepakati sebagai acuan. Jadi:

Class II artinya adalah Maximum Allowable Leakagenya adalah 0.5% x Cv/sqrt (1/dP)

Class III artinya adalah Maximum Allowable Leakagenya adalah 0.1% x Cv/sqrt (1/dP)

Class IV artinya adalah Maximum Allowable Leakagenya adalah 0.01% x Cv/sqrt(1/dP)

Contoh Soal:

Control Valve 10″ dikeluarkan oleh manufacture dengan Cv=950. Artinya control valve ini sudah ditest di manufacture pada saat full opening mampu melewatkan 950 gpm air pada suhu 60 degF dengan beda pressure upstream dan downstream 1 psi. Control Valve datang ke site dan hendak ditest dengan menggunakan air dan pompa (haskel pump) dengan tekanan upstream 50 psig, downstreamnya tak bertekanan alias 0 psig.

Dengan perhitungan MAL (Maximum Allowable Leakage) kita dapatkan:

Masuk Class II jika MALnya = 0.5% x 950/sqrt(1/50) = 33 gpm

Masuk Class III jika MALnya = 0.1% x 950/sqrt(1/50) = 6.7 gpm

Masuk Class IV jika MALnya = 0.01% x 950/sqrt(1/50) = 0.67 gpm

Kemudian pengetesan dilakukan dengan menutup control valve fully closed dan tekan upstream dengan pompa haskel sampai 50 psi. Kemudian hitung tingkat kebocoran dari downstreamnya atau dari seal trim-nya.

Jika hasil pengetesan menghasilkan kebocoran per 1 menit sebesar 10 gpm maka control valve tersebut masuk Class II. Jika hasil pengetesan menghasilkan kebocoran per 1 menit sebesar 1 gpm maka control valve tersebut masuk Class III. Jika hasil pengetesan menghasilkan kebocoran per 1 menit sebesar 0.5 gpm maka control valve tersebut masuk Class IV.

Class V dan Class VI agak sedikit berbeda pembahasannya.

Class V disebut sebagai “effectively zero leakage” tetapi masih dibolehkan adanya kebocoran dengan rate yang sangat kecil sekali. Maximum Allowable Leakage (MAL) dirumuskan sebagai:

Class V artinya MALnya adalah = (5 x 10^-4  in ml/min) x (seat diameter in inch) x (test pressure in psi)

Contoh Soal:

Control Valve 10″ di atas dengan test pressure = service pressure differential. Artinya test pressure-nya harus disamakan dengan service pressure pada data sheetnya. Asumsinya service pressurenya adalah 50 psi maka test pressurenya 50 psi juga, didapatkan :

MAL = (5 x 10^-4) x ( 10 inch) x (50 psi) = 0.25 ml /min = 6.6 x 10^-5 gpm = 0.000066 gpm.

Jika hasil pengetesan menghasilkan kebocoran selama 1 menit sebesar 0.0001 galon maka masih masuk Class IV. Jika hasil pengetesan menghasilkan kebocoran selama 1 menit sebesar 0.00005 maka dibawah MAL Class V maka control valve masuk Class V, kebocoran yang sangat kecil sekali.

Class VI artinya Tight Shut-Off tidak boleh ada kebocoran. Tetapi meskipun demikian masih ditoleransi adanya leakage pada pengetesan dengan menggunakan udara atau nitrogen dengan menggunakan pressure 50 psi. Nilai MAL-nya harus dilihat pada table yang disediakan oleh ANSI/FCI 70-2. Karena saya tidak memiliki standar ini maka saya tidak bisa menampilkannya.

Class-class di atas tidak ditemui jika metode pengetesannya menggunakan API-598. API-598 menggunakan bubble rate yang dicocokkan dengan table-nya. Data sheet control valve jarang menggunakan API-598, tetapi lebih cenderung menggunakan metode Class-class ini. Sedangkan SDV dan manual valve cenderung menggunakan API-598.

Sekali lagi artikel di atas adalah kepunyaan Don Sanders, GE Energy, USA, yang saya rangkum dan tulis kembali dengan bahasa Indonesia. Knowledge is free forever.

Nova Kurniawan

Oct 18, 2011 Batam-Indonesia