Anda di halaman 1dari 10

2-D Reservoir Simulator – Group Task 3-Phase with IMPES Method

Nur Astri Desti. R (1801012), Muh. Adriansyah. R (1801111), M. Fajar Agna


Fernandy (1801142), James Paonganan (1801293) Petroleum Engineering , STT
Migas Balikapapan
Abstract
Pembahasan model matematis, metode numerik, dan implementasi perangkat lunak
disajikan yang disertai dengan sejumlah besar contoh ilustratif, teknik robust
upscaling, model reservoir yang lebih detail, mulai dari contoh ideal dan sangat
disederhanakan. Semua contoh dalam buku telah dibuat menggunakan MATLAB
Simulasi waduk. Perangkat lunak open-source ini dapat memodifikasi alat alur kerja
dan simulator reservoir agar sesuai dengan tujuan Anda sendiri, dan pemodelan
reservoir dalam bentuk kumpulan besar perpustakaan perangkat lunak dan struktur
data yang fleksibel dan efisien. Buku ini sebagai alternatif dapat dilihat sebagai diskusi
dengan contoh bagaimana bahasa scripting numerik seperti MATLAB Reservoir
Simulation dapat digunakan untuk pembuatan prototipe, pengujian, dan verifikasi pada
masalah realistis dengan tingkat kerumitan yang tinggi. Semua baris kode yang
diperlukan untuk menghasilkan hasil dan angka numerik disajikan dan dibahas secara
rinci. Prosedur sederhana untuk menyelesaikan masalah simulasi reservoir tiga fasa
disebut Metode IMPES. IMPES adalah singkatan dari "Saturasi Eksplisit Tekanan
Tersirat". Berlawanan dengan metode implisit penuh di mana variabel utama dihitung
pada saat yang sama (semua variabel utama pada tingkat waktu baru ditentukan secara
bersamaan), metode IMPES memecahkan tekanan pada tingkat waktu baru
menggunakan saturasi pada tingkat waktu lama, kemudian menggunakan tekanan pada
tingkat waktu baru untuk secara eksplisit menghitung saturasi pada tingkat waktu baru.

Pendahuluan yang memperhitungkan sifat-sifat atau


kelakuan fisik, kimia dan thermal dari
Simulasi reservoir adalah suatu reservoir dalam penginterpretasiannya.
proses matematik yang digunakan Perumusan matematik sangat sulit
untuk memprediksikan perilaku untuk dipecahkan menggunakan
reservoir hidrokarbon dengan metode analitis, sehingga
menggunakan suatu model. Suatu pemecahannya menggunakan cara
model diasumsikan memiliki sifat-sifat numerik (misal, finite difference).
yang mirip dengan keadaan reservoir
yang sebenarnya. Model tersebut Setelah mendapatkan persaman
memiliki dua tipe, yaitu model fisik untuk aliran yang simultan untuk
dan model matematik. Model fisik berbagai fasa, maka diperlukan sistem
dimodelkan dengan menggunakan untuk menyelesaikan parameter yang
objek yang tampak sehingga mudah tidak diketahui. Nilai yang diketahui
untuk di teliti atau dievaluasi, adalah; Tekanan minyak, Tekanan gas,
sedangkan model matematik Tekanan air, Saturasi minyak, Saturasi
menggunakan persamaan matematik gas, Saturasi air.
Parameter yang dapat diperoleh serta penyelarasan tekanan sebagai
dari variable di atas yaitu ; Laju alir fungsi waktu yang dihitung model
minyak, Laju alir gas, Laju alir air. terhadap data – data hasil lapangan
Proses penyelesaian persamaan Didalam melakukan proses simulasi
tergantung seberapa besar sistem yang reservoir dibagi kedalam grid – grid
dimodelkan. Untuk penyelesaian yang berbentuk sel, dan setiap sel yang
persamaan simulator, terdapat dua ada harus tersedia data dimana data –
metode persamaan yaitu; Metode data ini dipengaruhi oleh heterogenitas
Implicit Pressure – Explicit Saturation reservoir serta kondisi pengukuran,
(IMPES). untuk itu nilai data yang akan
dimasukkan perlu dievaluasi secara
Metode ini dengan cara detail agar proses matching untuk
mengkombinasikan tiga persamaan prediksi kondisi reservoir dapat
minyak, air dan gas menjadi satu dilakukan dengan baik.
persamaan dengan satu variable
tekanan (misalnya tekanan minyak).
Metode ini juga mengkombinasikan
persamaan single phase kedalam single
multiphase berdasarkan tekanan,
kemudian menyelesaikan persamaan
tekanan dengan implisit pada
pendistribusian tekanan yang terjadi,
sedangkan saturasi diperhitungkan
secara ekslisit untk setiap titik.
Tahap preparasi data meliputi segala
sesuatu persiapan data yang
dibutuhkan selama proses simulasi
berlangsung, sedangkan data – data
yang dibutuhkan dapat dikelompokkan
data fluida, data batuan, data produksi,
Gambar 1. Skema penyelesaian
data mekanik, data ekonomi dan data
lainnya, untuk tahap matching dibagi dengan metode IMPES.
atas in place matching serta history Metodologi
matching, dimana in place matching
merupakan penyelarasan terhadap Simulasi IMPES ( Implicite Pressure
cadangan inisial (mula-mula) & Explicite Saturation) kali ini akan
hidrocarbon yang dihitung model menggunakan aplikasi MATLAB
terhadap perhitungan secara ( Matrix Laboratory)
volumetrik, adapun history matching
merupakan penyelarasan kumulatif 1.Pertama-tama yang harus dilakukan
produksi GOR dan WOR (GOR: Gas adalah menganalisa data yang sudah
Oil Ratio, WOR: Water Oil Ratio)
diberikan, Berikut adalah data yang Reservoir Properties
diberikan:
Data PVT & SCA

Grid dan posisi sumur

Water oil Funtion

Gas oil Funtion


Pada simulasi kali ini akan
disimulasikan dengan 100 grid untuk
ukuran reservoirnya dan Sumurnya
berada di grid 45 atau pada matrix
baris ke 5 kolom ke 5, kami
mengasumsikan tekanan bottom hole
dari sumur tersebut adalah 1500 psi
Pada reservoir ini kami menggunakan
tekanan inisial sebesar 5600 psi pada
seluruh reservoir hingga boundary
dengan lebar 3200 ft dan panjang 3200
ft kami menggunakan time stepnya
hanya sebanyak 10 time step.
Setelah melakukan input smua data
dan melakukan interpolasi lakukan
Gambar 2.Skema penyelesaian kalkulasi dengan persamaan finite
dengan IMPES difference untuk perubahan tekanan,
pertama-tama lakukan diskritisasi
Langkah selanjutnya adalah persamaan finite difference secara
memasukan semua data pada matlab implisit untuk tekanan kemudian
sebagai data intialisation atau data didapatkan matriks koefisien seperi
awal yang akan dioalah dengan gambar dibawah ini
equation IMPES

Gambar 3. Matrix Koeffisien


Didapatkan matrix 100x100 dengan
nilai coefficient pada posisi dan pola
Selain memasukan data reservoir sesuai gambar 3. Setelah didapatkan
masukan juga data PVT dengan matrix koeffisien maka untuk mencari
melakukan interpolasi terlebih dahulu P next time step, matriks koeffisien
data PVT seperti saturation harus diinverskan kemudian dikalikan
properties,Water/oil Function dan dengan matriks Pressure yang
gas/oil function sesuai dengan diketahui yaitu matriks Pn. Nilai P
tekanannya, karena data PVT next time step akan menjadi matriks
bergantung pada perubahan tekanan Pn untuk time step selanjutnya, dan
yang terjadi( P next time step) akan terus berulang hingga time step
yang telah ditentukan
next dan Bw next dengan persamaan
berikut yang dimasukan kedalam script
matlab

Setelah mendapatkan perubahan


tekanan dengan menggunakan
persamaan secara implisit maka
selanjutnya adalah mensimulasikan
perubahan saturasi pada next time step Selanjutnya setelah didapatkan nilai-
secara eksplisit nilai diatas masukan ke persamaan
untuk mencari saturasi pada next time
Pertama-tama yaitu mencari nilai step, berikut adalaha persamaan yang
transmissibility dan mobility dengan akan di input kedalam perhitungan
persamaan script matlab;

Untuk mendapatkan nilai dari


koeffisen oil symmetrical flow
diperlukan transmissibility dan
mobility

Setelah melakukan perhitungan secara


eksplisit didapatkan nilai saturasi pada
Kemudian input kedalam script next time step dan setelah dilakukan
matlab, perhitungan secara implisit didapatkan
pressure atau tekanan pada next time
Selanjutnya dalam untuk mendapatkan step lakukan reshape dan plot seperti
nilai saturasi next time step kita perlu berikut
mencari nilai VP,VP next, Bo next, Bg
5600 psi sedangkan tekanan bottom
hole dari sumur adalalah 1500 psi.

\\
Gambar 4. Hasil plot Perubahan
Sehingga didapatkan plot grid tekanan
perubahan tekanan dan perubahan
saturasi akibat sumur yang ber Gridd atau lapisan disekitar sumur
produksi pada koordinat 5,5 yaitu pada akan mengalami penurunan tekanan
grid ke 45, hasil plot akan dianalisa akibat berproduksinya sumur di grid
dan diinterpretasikan 45 secara bertahap selama time
stepnya yaitu sebanyak 10 time step
Pembahasan tapi penurunan tekanan yang terjadi
belum mencapai keseluruhan reservoir
Setelah melakukan simulasi dengan dan belum mencapai batasan reservoir
menggunakan matlab dan dengan sehingga tekananan pada grid yang
menggunakan IMPES ( Implisit berwarna kuning terang adalah 5600
pressure and Eksplisit saturation) psi yang menandakan belum
didapatkan hasil plot tekanan seperti terpengaruh oleh penurunan tekanan
berikut, pada gambar 4. Dilihat sumur pada sumur 45
terletak pada tengah-tengah reservoir
dengan ukuran 3200 ft length dan 3200 Perubahan saturasi pada reservoir
ft width yaitu pada grid ke 45 pada akibat produksi di sumur 45
koordinat matriks (x,y) 5,5 yang
memiliki tekanan bottom hole sebesar
1500 psi , dari simulasi dapat dilihat
perubahan tekanann pada setiap
gridnya akibat adanya penurunan
tekanan dan produksi pada sumur di
grid 45 tekanan inisial reservoir adalah
memprediksikan perilaku reservoir
hidrokarbon dengan menggunakan
Akibat adanya produksi pada sumur 45 suatu model. Suatu model diasumsikan
dapat dilihat perubahan saturasi fluida memiliki sifat-sifat yang mirip dengan
pada tiap gridnya mulai menurun, ada keadaan reservoir yang sebenarnya.
4 grid disekitar sumur yang
mengalami perubahan secara drastic IMPES adalah metode simulasi untuk
hingga mendekati 0 sehingga berwarna menyelesaikan masalah simulasi
putih kenapa fluida yang berada di dengan reservoir 3 fasa, untuk
boundary juga mengalami penurunan menggunakan metode IMPES
karena fluidanya mengalir dari memerlukan persamaan Finite
reservoir ke sumur kemudian difference yang diselesaikan secara
diproduksikan ke permukaan, pada 10 implisit untuk mendapatkan pressure
time step tidak terlalu banyak next time step, untuk melakukan
perubahan yang terjadi sehingga masih update saturasi pada next time step
banyak yang blm mengalami dibutuhkan PVT data yang
perubahan saturasi fluida pada dipengaruhi oleh pressure, karena
reservoir, jika time stepnya ditambah update pressure mempengaruhi
maka akan didapatkan perubahan tekanan dan data PVT dalam bentuk
saurasi fluida yang lebih terlihat pada table,maka nilai-nilai pada data PVT
setiap gridnya. Tujuan dari IMPES seperti bo, viscotias,GOR dapat
adalah mengetahui perubahan tekanan diinterpolasikan, jadi untuk melaukan
dan saturasi akibat produksi pada update saturasi diiperlukan nilai p next
sumur 45. time step, akibat sumur pada grid 45
grid disekitarnya mengalami
Kesimpulan penurunan dan saturasinya berkurang
Simulasi reservoir adalah suatu proses bertahap sesuai jumlah time step.
matematik yang digunakan untuk Refference
Lie, Andreas., Knut . (2016) : An
Introduction to Reservoir Simulation
Using MATLAB. Departement of Applied
Mathematics Oslo, Norway.

Wicaksono, Sri Konsep. Finite Difference


Continous Approach. Balikpapan: STT
Migas Balikpapan. 2019

Hossain, M.E., Islam, M.R. (2016):


Advanced Petroleum Reservoir
Simulation. Scrivener Publishing, Canada.
Temizel, Cenk. (2014): Opening the Black So=1-Swi;
dao =(kro/
Box: A Critical and Methods in (visco*Bo(1)))*(0.00633*perm*h*dy/
Conventional and Next-generation dx);
Reservoir Simulators.
Wicaksono, Sri Konsep. CHAPTER II %Gas
FINITE DIFFERENCE FORMULATION: Sg=0.78;
IMPES PROCEDURE. Balikpapan: STT krg=1;
for i=1:100;
Migas Balikpapan. 2019 Bg(i)=0.00042;
end
Attachment Cg=0.0000025;
viscg=0.019;
dag=(krg/
Script Matlab (viscg*Bg(1)))*(0.00633*perm*h*dy/
clear all dx);
clc
%Water
%simulation 2-D Sw=Swi;
panjang = 3200; krw=1;
lebar = 3200; Bw=1;
dx = 320; Cw=0.000003;
dy = 320; viscw=1;
gridx = panjang/dx; daw=(krw/
gridy = lebar/dy; (viscw*Bw))*(0.00633*perm*h*dy/dx)
pi = 5600; ;
visco = 0.89;
comp = 5/100000;
perm = 300; gridx2 = gridx;
por = 0.2; gridy2 = gridy;
time = 50;
dt = 5; k = por*visco*comp /
timestep = time/dt; (0.00633*perm*dt);
gamma = k/dt;
Pressure =[400 800 1200 1600 2000
2400 2800 3200 3600 4000 4400 4800 kx = 1 / (((dx)^2)*gamma);
5200 5600]'; ky = 1 / (((dy)^2)*gamma);
OilFVF =[1.0120 1.0255 1.0380
1.0510 1.0630 1.0750 1.0870 1.0985 c = -1 - (2*kx) - (2*ky);
1.1100 1.1200 1.1300 1.1400 1.1480 w = kx;
1.1550]'; e = kx;
GasFVF = [0.00590 0.00295 0.00196 n = ky;
0.00147 0.00118 0.00098 0.00084 s = ky;
0.00074 0.00065 0.00059 0.00054
0.00049 0.00045 0.00042]';
%Reservoir l = 1;
h=50; m = 1;
Cf=0.000004; o = 1;
Vp=(panjang*lebar*h)*por;
xprod =5;
%oil yprod =5;
Swi=0.22; %xprod(2)=4;
kro=1; %yprod(2)=4;
for i=1:100;
Bo(i)=1.1150; %matrix konstanta
end MK = zeros(gridx2*gridy2 ,
Co=0.000001; gridx2*gridy2);
for i = 1 : (gridx2*gridy2) for m = 1 :(gridx2-2)
for j = 1 : (gridx2*gridy2) if (i==1+
if (i==j) (m*gridx2))
MK (i,j) = c; MK(i,j)=-1;
if (i>1) MK(i,j-1)=0;
MK (i,j-1)= w; MK(i,j+1)=0;
if (i>gridx2);
MK (i,j- MK(i,j+gridx2)=0;
gridx2) = n; MK(i,j-
end gridx2)=0;
end MK(i+gridx2-
if (i<(gridx2*gridy2)) 2,j+gridx2-2)=-1;
MK (i,j+1) = e; MK(i+gridx2-
if 2,j+gridx2-3)=0;
(i<(gridx2*gridx2-gridy2+1)) MK(i+gridx2-
MK 2,j+gridx2-1)=0;
(i,j+gridx2)=s; MK(i+gridx2-
end 2,j+gridx2-2+gridx2)=0;
end MK(i+gridx2-
end 2,j+gridx2-2-gridx2)=0;
end MK(i+gridx2-
end 1,j+gridx2-1)=-1;
MK(i+gridx2-
1,j+gridx2-2)=0;
for i=1:(gridx2*gridy2) MK(i+gridx2-
for j=1:(gridx2*gridy2) 1,j+gridx2)=0;
if (i==j) MK(i+gridx2-
if(i<= gridx2) 1,j+gridx2-1+gridx2)=0;
MK(i,j)=-1; MK(i+gridx2-
MK(i,j+1)=0; 1,j+gridx2-1-gridx2)=0;
MK(i,j+gridx2)=0; end
if (i>1) end
MK(i,j-1)=0; if(i==((yprod-
end 1)*gridy2+xprod))
if (i<=gridx2) MK(i,j)=-1;
MK(i,j+1)=0; end
end
end end
if (i>(gridx2*gridx2 -
2*gridx2)) end
MK(i,j) = -1;
MK(i,j-gridx2)=0;
if end
(i<=(gridx2*gridy2-gridx2))
MK pint=zeros(gridx2*gridy2,1);
(i,j+gridx2) = 0; prod=1500;
end
if
(i<(gridx2*gridy2))
MK (i,j+1) = for i=1:gridx2*gridy2
0;
end pint(i,1)=-1*pi;
if
(i>(gridx2*gridy2-(2*gridx2)+1)) %for iii = 1:2
MK (i,j-1)=0;
end
if(i==((xprod-
end
1)*gridx2+yprod))
pint(i,1)=prod; pdisp=(reshape(Sgnext,gridx2,gridy
2));
end
% %Swnext
end %
pdisp=(reshape(Swnext,gridx2,gridy
2));
for t=1:timestep
pnext = inv(MK)*pint;
Vpnext=Vp*(1+Cf*(pnext-pint)); % %Vpnext
%oil %
for i=1:100 pdisp=(reshape(Vpnext,gridx2,gridy
2));
Bo(i)=interp1(Pressure,OilFVF,pnex
t(i),'*linear'); pcolor(pdisp)
end axis ij
Bonext=Bo*(1-Co*(pnext-pint)); colorbar;

Sonext=(Bonext/Vpnext)'.*((Vp*So./ drawnow;
Bo)'+dt*(dao*(pnext-pint))); pause (0.1);
pint=-1*pnext;
Vpint=-1 * Vpnext;
%Gas Boint=-1 * Bonext;
for i=1:100 Bgint=-1 * Bgnext;
Bwint=-1 * Bwnext;
Bg(i)=interp1(Pressure,GasFVF,pnex Soint=-1 * Sonext;
t(i),'*linear'); Sgint=-1 * Sgnext;
end Swint=-1 * Swnext;
Bgnext=Bg*(1-Cg*(pnext-pint)); end

Sgnext=(Bgnext/Vpnext)'.*((Vp*Sg./
Bg)'+dt*(dag*(pnext-pint)));

%Water
Bwnext=Bw*(1-Cw*(pnext-pint));

Swnext=(Bwnext/Vpnext)*((Vp*Sw/Bw)
+dt*(daw*(pnext-pint)));

% %press
%
pdisp=(reshape(pnext,gridx2,gridy2
));

%untuk melihat nilai dari plot


saturasi tinggal di hapus persen
yang mau diketahui

% %Sonext
%
pdisp=(reshape(Sonext,gridx2,gridy
2));
%
%Sgnext

Anda mungkin juga menyukai