Escolar Documentos
Profissional Documentos
Cultura Documentos
JAIME ORDOEZ
Estudiante Ingeniera de petrleos, Universidad Nacional de Colombia, jeordonezp@unal.edu.co
CARLOS ORTIZ
Estudiante Ingeniera de petrleos, Universidad Nacional de Colombia, caortizpi@unal.edu.co
RESUMEN: El modelo de simulacin de yacimientos es una herramienta con la cual se puede representar el
comportamiento real del yacimiento, modelar el flujo de fluidos a travs del espacio poroso y tener una mejor
planificacin de las actividades y estrategias necesarias para lograr una explotacin exitosa en los campos.
En este trabajo se presenta la simulacin de un yacimiento cerrado, que representa el flujo bidimensional de un fluido
multifsico (Agua y Gas) y muestra cmo se da la distribucin de presiones a distintos tiempos. Se explicara el
modelo fsico, el modelo matemtico, el modelo numrico y por ltimo el modelo computacional usando esquema
IMPIS simultneo y el mtodo de solucin iterativo LSOR.
PALABRAS CLAVE: Fluido multifasico, IMPIS, LSOR, Espacio poroso, Simulacin de yacimientos.
ABSTRACT: Reservoir simulation is a tool that can represent the actual reservoir behavior, modeling fluid flow
through the pore space and have better planning of activities and strategies needed for successful operation in the
fields . In this paper it is working with the simulation of a closed reservoir, which represents the two-dimensional
flow of a multiphase fluid (water and gas) and shows how the pressure distribution at different times. The physical
model, the mathematical model, the numerical model and finally the computational model are explained, using
simultaneous IMPIS scheme and method of iterative solution LSOR.
1. INTRODUCCIN
La industria petrolera desarrolla continuamente mecanismos que le permiten optimizar los procesos que se
llevan a cabo durante la explotacin de los yacimientos de hidrocarburos. Conocer las caractersticas
fsicas y composicionales de un yacimiento son factores que contribuyen a realizar una apreciacin acerca
de la productividad esperada. a pesar de lo difcil que puede resultar el conocer con exactitud las
dimensiones y dems variables de un yacimiento, el uso de aproximaciones permiten una caracterizacin
de la zona que ayuda significativamente en la prediccin de condiciones futuras.
2. MODELO FSICO
A continuacin se muestra el modelo fsico tomado para la simulacin. El programa simulara el
comportamiento de un yacimiento con dos tipos de fluidos (gas-agua) en dos dimensiones con las
siguientes caractersticas.
1
Figura 1. Diagrama malla a trabajar en 3D
2
6 14,846 10,591 13,292 8,636 28,780 18,174 11,643 3,822 1,580 7,059 5,965 4,930 6,492
7 7,230 8,532 4,200 3,213 9,385 12,124 12,300 9,362 1,458 7,517 8,638 9,369 3,563
8 5,542 2,720 6,924 9,969 6,189 7,528 10,930 6,095 3,570 2,881 9,221 6,469 6,482
9 6,212 4,760 3,222 1,912 6,371 8,244 9,079 3,696 4,697 2,234 7,177 4,553 6,838
10 3,644 2,686 5,167 2,067 5,954 4,702 5,103 3,178 4,604 7,555 5,996 2,131 3,888
11 1,463 5,896 5,865 8,715 7,116 4,533 6,431 7,960 6,378 2,901 2,723 4,791 5,481
12 4,830 4,846 5,743 5,872 3,537 4,566 4,502 6,088 5,752 5,208 4,768 7,308 3,342
13 4,284 4,242 6,586 6,223 4,075 4,456 4,884 4,207 6,778 6,597 4,637 4,991 2,972
14 4,968 5,299 8,014 5,601 3,906 3,474 6,235 4,447 6,582 3,432 3,701 5,591 4,395
3. MODELO MATEMTICO
( )
( ) (1)
Dada en unidades prcticas, y teniendo en cuenta que es igual al espesor de la formacin debido a que
hay flujo en dos dimensiones.
3.1. Fases
( ) ( ) ( ) ( ) (2)
Dnde:
3
Termino potencial del agua (presin y potencial) ( ).
Porosidad.
Saturacin de la fase agua.
Factor volumtrico de formacin de agua ( ).
( ) ( ) ( ) ( ) (3)
Dnde:
Permeabilidad del gas en direccin del eje ( ).
Permeabilidad del gas en direccin del eje ( ).
Espesor del yacimiento ( ).
Viscosidad del gas ( ).
Termino potencial del gas (presin y potencial) ( ).
Porosidad.
Saturacin de la fase gas.
Factor volumtrico de formacin de agua ( ).
( ) ( )
( ) ( )
4
Tabla 7. Condiciones lmite para la fase gaseosa en direccin del eje x.
En
( ) ( )
( ) ( )
Porosidad 0,13
Compresibilidad de Poro (1/psi)
Presin de Referencia (psi) 14,7
Presin Inicial (psi) 3100
Saturacin Inicial de Gas (Sg) 0,3
5
3.5. Propiedades PVT
4. MODELO NUMRICO
Con series de Taylor una funcin puede ser expandida en torno al punto a, mediante la siguiente serie
infinita:
( )
(4)
( ) ( )
( )
( ) (9)
La ecuacin de difusividad en coordenadas cartesianas para flujo en dos dimensiones queda de la siguiente
manera:
6
( )
( ) ( )
(10)
( ) ( ) ( ) ( )
( ) (11)
( ) ( ) ( ) ( )
( ) (12)
Sabiendo que:
( ) ( )
( ) ( ) (13)
( ) ( )
( ) ( ) (14)
(15)
Ahora se procede a expandir la ecuacin en trminos de transmisibilidades, para la parte gaseosa y acuosa.
{ [( ) ( )]} [( ) ( ) ]
(17)
Dnde:
7
( ) ( ) (18)
Como lo anterior es un sistema de dos ecuaciones con cuatro incognitas se plantean las siguientes
ecuaciones auxiliares:
(19)
El procedimiento de aproximacin IMPIS (Implicite Pressure Implicite Saturation) propone expresar las
ecuaciones de flujo en funcin de la presin de una de sus fases. Aplicando las ecuaciones auxiliares a las
ecuaciones (16), (17) y despejando en trminos de Pw y Sg:
*( ) ( ) +
4.2.4 Fase acuosa reemplazo ecuaciones auxiliares
{ [( ) ( )]}
(21)
*( ( ) ) ( ( ) ) +
(22)
( )
Teniendo:
( ) ( ) ( ) (23)
(24)
( ) * ( )( ) ( ) ( )+
(25)
( ) [ ( )(( ) ( ) ) ( ) ( )]
Definiendo:
8
(26)
( )
(27)
( )
(28)
(( ) ( ) )
( )
(29)
( ) (30)
Donde
(31)
Aplicando las ecuaciones (25-31) las ecuaciones tanto para gas como para la fase acuosa en diferencias
finitas quedan:
( )
( )
(33)
( )
Para resolver las ecuaciones descritas anteriormente se debe plantear un sistema de ecuaciones y
solucionarlo por algn mtodo de solucin que ser descrito posteriormente. El sistema de solucin
simultneo propone solucionar el sistema de ecuaciones de la siguiente forma, este sistema puede ser
escrito de la siguiente forma: [ ]
9
Dnde:
[ ] [ ] [ ]
[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ] [ ]
[ ]
[ ] * + (34)
[ ] * + (35)
[ ] * + (36)
[ ] * + (37)
[ ]
( )
( (38)
( ) )
[ ]
( ( ) ( ) ( )
( ) )
[ ] (39)
( ( ) ( ) ( )
( ) )
[ ]
[ ] * +
(40)
10
5. METODO DE SOLUCION
En el mtodo de LSOR el yacimiento es visto como un conjunto de lneas. Estas lneas son usualmente
alineadas en direccin de la transmisibilidad ms alta y son tomadas en orden, una lnea a la vez. Por
ejemplo, para un yacimiento en 2D teniendo la transmisibilidad ms alta a travs de la direccin X, las
lneas son tomadas paralelas al eje X. luego esta lneas son tomadas en orden, una a la vez para
j=1,2,3,., . Primero, las ecuaciones de todos los bloques en una lnea dada son escritos. A los valores
de la lnea anterior se les asigna la iteracin actual (v+1) y aquellos valores de la siguiente lnea se les
asigna la iteracin anterior v. de igual manera los valores desconocidos de la lnea actual se les asigna la
iteracin actual (v+1).
Las ecuaciones para una lnea actual j (columna) son escritas de la siguiente forma:
( ) ( ) ( ) ( ) ( ) (41)
Luego las ecuaciones resultantes para la lnea actual son resueltas simultneamente usando un mtodo de
solucin secundario en este caso se usar el mtodo de solucin directa eliminacin de Gauss.
( ) ( ) ( )
( ) (42)
Permite validar la solucin que se est obteniendo a un tiempo dado del sistema de ecuaciones que
describe el comportamiento del yacimiento. Por lo tanto el simulador para cada paso de tiempo debe
cumplir:
*( ) ( ) +
| | (43)
| |
6. DIAGRAMA DE FLUJO
11
Si
No
No
Si
No
Si
12
No
Si
No
Si
13
7. RESULTADOS
0,281593 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159 0,28159
0,172559 0,17257 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256
0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408 0,11408
0,130123 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012 0,13012
0,140778 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078 0,14078
0,124783 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478 0,12478
0,146095 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609
0,146095 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609 0,14609
0,172559 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256 0,17256
0,188343 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834 0,18834
0,167281 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728 0,16728
0,255939 0,25595 0,25594 0,25594 0,25594 0,25594 0,25594 0,25594 0,25594 0,25594 0,25594 0,25594 0,25595
0,332334 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233 0,33233
0,296894 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689 0,29689
14
8. ANEXOS
clear
clc
Dz=300; %Espesor de los bloques en z (ft)%
rw=0.1875;%Radio del pozo para el calculo del cauldal de produccion%
s=5;% s skin del pozo para el calculo del caudal de produccion%
15
%Calculamos GW para los 4 pozos productores 1,2,4,5%
Gw1=(2*3.14159*0.001127*KH1*Dz)/(log(req1/rw)+s);
Gw2=(2*3.14159*0.001127*KH2*Dz)/(log(req2/rw)+s);
Gw4=(2*3.14159*0.001127*KH4*Dz)/(log(req4/rw)+s);
Gw5=(2*3.14159*0.001127*KH5*Dz)/(log(req5/rw)+s);
for i=dt:dt:360
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for v=1:100;
Sgi=sgi;
16
Swi=1-Sgi;
if v==1;
Sgn=Sgi+0.0000001;
Swn=Swi+0.0000001;
else
Sgn=Sgr;
Swn=1-Sgn;
end
17
end
18
% Calculamos propiedades Viscocidad (gas) y Bg para y(i+1/2) %
for j=1:Numbloqx;
for i=1:(Numbloqy-1);
Vgs(i,j)=((Volp(i,j)*Vgn(i,j))+((Volp((i+1),j))*Vgn((i+1),j)))/(Volp(i,j)+Volp((i+1),j));
Vgs(Numbloqy,j)=0;
end
end
for j=1:Numbloqx;
for i=1:(Numbloqy-1);
Bgs(i,j)=((Volp(i,j)*Bgn(i,j))+((Volp((i+1),j))*Bgn((i+1),j)))/(Volp(i,j)+Volp((i+1),j));
Bgs(Numbloqy,j)=0;
end
end
19
Bww(i,j)=((Volp(i,j)*Bwn(i,j))+((Volp(i,(j-1)))*Bwn(i,(j-1))))/(Volp(i,j)+Volp(i,(j-1)));
Bww(i,1)=0;
end
end
20
qg(i,j)=-1*Gw1*Krgi(ubp4(1),ubp4(2))*(Pi(i,j)-
pwf4)/(Vgi(ubp4(1),ubp4(2))*Bgi(ubp4(1),ubp4(2)));
elseif i==ubp5(1) && j==ubp5(2);
qg(i,j)=-1*Gw1*Krgi(ubp5(1),ubp5(2))*(Pi(i,j)-
pwf5)/(Vgi(ubp5(1),ubp5(2))*Bgi(ubp5(1),ubp5(2)));
else
qg(i,j)=0;
end
end
end
21
end
22
% Calculamos derivada dBg %
for i=1:Numbloqy;
for j=1:Numbloqx;
dbg(i,j)=((1/Bgn(i,j))-(1/Bgi(i,j)))/(Pn(i,j)-Pi(i,j));
end
end
% Calculamos Cgg %
for i=1:Numbloqy;
for j=1:Numbloqx;
Cgg(i,j)=((Vol(i,j)/dt)*(Sgi(i,j)*phin(i,j)*dbg(i,j)+Sgi(i,j))*(1/Bgi(i,j))*dphi(i,j));
end
end
% Calculamos Cgw %
for i=1:Numbloqy;
for j=1:Numbloqx;
Cgw(i,j)=(Vol(i,j)/dt)*(phin(i,j)*(1/Bgn(i,j)));
end
end
% Calculamos Cwg %
for i=1:Numbloqy;
for j=1:Numbloqx;
Cwg(i,j)=(Vol(i,j)/dt)*((1-Sgi(i,j))*phin(i,j)*dbw(i,j)+(1-Sgi(i,j))*(1/Bwi(i,j))*dphi(i,j));
end
end
% Calculamos Cww %
for i=1:Numbloqy;
for j=1:Numbloqx;
Cww(i,j)=-(Vol(i,j)/dt)*(phin(i,j)*(1/Bwn(i,j)));
end
end
23
for j=1:(Numbloqx-1);
if u==1; %%%%%%% Debido a la error de dividir sobre 0%%%%%%%%%
dPcgwe(i,j)=(Pcgwi(i,(j+1))-Pcgwi(i,j))/(0.00000001);
dPcgwe(i,Numbloqx)=0;
else
dPcgwe(i,j)=(Pcgwi(i,(j+1))-Pcgwi(i,j))/(Swn(i,(j+1))-Swn(i,j));
dPcgwe(i,Numbloqx)=0;
end
end
end
24
for i=1:Numbloqy;
for j=1:Numbloqx;
w11(i,j)=Trwxn(i,j);
w12(i,j)=0;
w21(i,j)=Trgxn(i,j);
w22(i,j)=-Trgxn(i,j)*dPcgww(i,j);
e11(i,j)=Trwxp(i,j);
e12(i,j)=0;
e21(i,j)=Trgxp(i,j);
e22(i,j)=-Trgxp(i,j)*dPcgwe(i,j);
s11(i,j)=Trwyp(i,j);
s12(i,j)=0;
s21(i,j)=Trgyp(i,j);
s22(i,j)=-Trgyp(i,j)*dPcgws(i,j);
n11(i,j)=Trwyn(i,j);
n12(i,j)=0;
n21(i,j)=Trgyn(i,j);
n22(i,j)=-Trgyn(i,j)*dPcgwn(i,j);
c11(i,j)=-(Trwxn(i,j)+Trwxp(i,j)+Trwyn(i,j)+Trwyp(i,j)+Cwg(i,j));
c12(i,j)=-Cww(i,j);
c21(i,j)=(Trgxn(i,j)+Trgxp(i,j)+Trgyn(i,j)+Trgyp(i,j)+Cgg(i,j));
c22(i,j)=-
((Trgxn(i,j)*dPcgww(i,j))+(Trgxp(i,j)*dPcgwe(i,j))+(Trgyp(i,j)*dPcgws(i,j))+(Trgyn(i,j)*dPcgwn(i,j))-
Cgw(i,j));
25
d11(i,j)=(Trwxn(i,j)*Grw(i,j)*(z(i,(j-1))-z(i,j)))+(Trwxp(i,j)*Grw(i,j)*(z(i,(j+1))-
z(i,j)))+(Trwyn(i,j)*Grw(i,j)*(z((i-1),j)-z(i,j)))+(Trwyp(i,j)*Grw(i,j))-qw(i,j)-(Cwg(i,j)*Piw(i,j))-
(Cww(i,j)*Sgi(i,j));
else
d11(i,j)=(Trwxn(i,j)*Grw(i,j)*(z(i,(j-1))-z(i,j)))+(Trwxp(i,j)*Grw(i,j)*(z(i,(j+1))-
z(i,j)))+(Trwyn(i,j)*Grw(i,j)*(z((i-1),j)-z(i,j)))+(Trwyp(i,j)*Grw(i,j)*(z((i+1),j)-z(i,j)))-qw(i,j)-
(Cwg(i,j)*Piw(i,j))-(Cww(i,j)*Sgi(i,j));
end
end
end
26
if i==j && rem(i,2)==0;
M(i,j,k)=c22(1,(j/2));
elseif i==j;
M(i,j,k)=c11(1,(0.5*j+0.5));
elseif j==(i+2) && rem(i,2)~=0;
M(i,j,k)=e11(1,(0.5*j-0.5));
elseif j==(i+1) && rem(i,2)~=0;
M(i,j,k)=c12(1,(j/2));
elseif i==(j+1) && rem(i,2)==0;
M(i,j,k)=c21(1,(0.5*j+0.5));
elseif j==(i+1) && rem(i,2)==0;
M(i,j,k)=e21(1,(0.5*j-0.5));
elseif j==(i+2) && rem(i,2)==0;
M(i,j,k)=e22(1,(0.5*j-1));
elseif i==(j+2) && rem(i,2)~=0;
M(i,j,k)=w11(1,(0.5*j+1.5));
elseif i==(j+3) && rem(i,2)==0;
M(i,j,k)=w21(1,(0.5*j+1.5));
elseif i==(j+2) && rem(i,2)==0;
M(i,j,k)=w22(1,(0.5*j+1));
end
end
end
27
F1(k,i)=d21(k,(0.5*i))-s21(k,(0.5*i))*Pig((k+1),(0.5*i))-s22(k,(0.5*i))*Swi((k+1),(0.5*i))-
n21(k,(0.5*i))*Png((k-1),(0.5*i))-n22(k,(0.5*i))*Swn((k-1),(0.5*i));
end
F=F1';
end
end
end
for i=1:14;
MF(:,:,i)=[M(:,:,i) F(:,i)];
[X1] = EliminacionGaussiana (M(:,:,i),F(:,i));
Y(:,i)=X1;
end
x=Y';
w=1;
Pwr=((1-w)*Pnw)+(w*Pwres);
Sgx=((1-w)*Sgn)+(w*Sgres);
for i=1:Numbloqy;
for j=1:Numbloqx;
Px(i,j)=Pwr(i,j)+(Pcgwx(i,j)+Pwr(i,j));
end
end
28
if errorp<tol;
break
end
Sgr=Sgx;
Pr=Px;
end
for i=1:Numbloqy;
for j=1:Numbloqx;
errs(i,j)=abs(Sgn(i,j)-Sgr(i,j));
end
end
errors=max(max(errs));
if errors<tol;
break
end
end
Pf=-Pr;
Sgr=Sgr;
[Bgn,Bwn,Vgn,Vwn] = interpolacionpvt2 (Pf);
EBM=abs((a/b)-1);
Pi=Pf;
if i==30;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A1')
elseif i==60;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A2')
elseif i==90;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A3')
elseif i==120;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A4')
elseif i==150;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A5')
elseif i==180;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A6')
elseif i==210;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A7')
elseif i==240;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A8')
29
elseif i==270;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A9')
elseif i==300;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A10')
elseif i==330;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A11')
elseif i==360;
xlswrite('Resultadosbifasico.xls',Pf,'Hoja1','A12')
end
end
30