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….

4 Responses

  1. salam, mas nova.
    TA saya yang lalu juga menyangkut tentang MPC. saya memang pernah menemukan satu literatur yang menyatakan bahwa MPC adalah open loop controller. tetapi ketika saya konsultasikan dengan dosen pembimbing, dikatakan MPC tetap closed loop. tapi waktu itu saya kalah argumentasi sehingga akhirnya saya menurut… hehehe. seingat saya pembacaan sensor tidak masuk summing point (spt pada feedback block diagram) sehingga mengkoreksi error masa lalu, melainkan masuk satu block (saya lupa nama blocknya) yg jadi referensi untuk perhitungan prediksi di masa depan.
    nah, prediksi PV itu yang menentukan sinyal aksinya.
    seingat saya, dari argumen ini ada literatur yang menyatakan bahwa MPC itu open loop. yaitu karena sinyal sensor tidak mengkoreksi PV masa lalu, melainkan untuk memprediksi masa depan.

    CMIIW, maklum udah lama bgt…
    anyway, salam kenal.

    Leo, teknik fisika ITS 2004.
    everything is under (instrument) control

    • Salam kenal juga. Kalau yang comment masih ada cita rasa “kampus”-nya tentu masih kerasa akademiknya. Sedangkan saya bener-bener sourcing dari referensi praktisi: Harold L Wade (Adv & Reg Proc Control), Bela G Liptak (Ins Eng Handbook-ProcCont), dan Artikel-artikel dari majalah Hydrocarbon Processing yang semuanya adalah praktisi (yang mostly Indian, and even no single Indonesian made an article). Dan sampai sekarang masih sulit menggabungkan antar referensi.

  2. wah sudah lupa yang gini-ginian nov … yang penting lulus … hihihihi ….

    • justru itu, blok ini dibikin biar kita gak lupa konsep2 teorinya kuliah ^_^. krn kuliah itu pentinggg…dan alumni fakultas hukum meskipun diajari kayak gmn pun, tidak akan bisa menjadi perfect engineer.

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: