Oilfield Production Planning

33
UNIVERSIDAD NACIONAL DEL SUR OILFIELD PRODUCTION PLANNING Mixed-Integer Multiperiod Model for the Planning of Oilfield Production Modelo matemático de optimización MINLP implementado en GAMS a través de interfaces con MS Excel Ing. Federico Alberto Gorrini - Dr. José Alberto Bandoni DEPARTAMENTO DE INGENIERÍA QUÍMICA DOCUMENTO DE TRABAJO | Septiembre 2014

description

Modelo matemático de optimización MINLP implementado en GAMS a través de interfaces con MS Excel

Transcript of Oilfield Production Planning

Page 1: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR

OILFIELD PRODUCTION PLANNING

Mixed-Integer Multiperiod Model for the Planning

of Oilfield Production

Modelo matemático de optimización MINLP implementado en GAMS

a través de interfaces con MS Excel

Ing. Federico Alberto Gorrini - Dr. José Alberto Bandoni

DEPARTAMENTO DE INGENIERÍA QUÍMICA

DOCUMENTO DE TRABAJO | Septiembre 2014

Page 2: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR

OILFIELD PRODUCTION PLANNING

Mixed-Integer Multiperiod Model for the Planning of Oilfield Production

Departamento de Ingeniería Química. Septiembre 2014

Autor __Ing. Federico Alberto Gorrini Director __Dr. José Alberto Bandoni Datos de Contacto [email protected] [email protected] Universidad Nacional del Sur (8000) Bahía Blanca. Buenos Aires, Argentina.

Page 3: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

Ing. GORRINI, Federico Alberto - Dr. BANDONI, J. Alberto

ABSTRACT

Durante el desarrollo del presente trabajo, se implementó un modelo de optimización multiperíodo mixto-entero para la planificación de la producción petrolera en los pozos de un mismo reservorio. El problema considera las variaciones topológicas e involucra los perfiles de producción y los tiempos de operación/parada de los pozos en cada período de tiempo. Se asume comportamiento no-lineal de la presión de flujo (respecto al tiempo) mientras se calcula la producción de petróleo y se consideran períodos de tiempo de duración uniforme.

Finalmente, el modelo es implementado a través del sistema de modelamiento GAMS (General Algebraic Modeling System), mostrando un ejemplo numérico de resolución. Se generan interfaces a través de MS Excel que permite la importación de datos y exportación de resultados involucrados en GAMS. Además, esto posibilita el procesamiento de los resultados y su graficado para un mejor análisis de los mismos.

El resultado del proceso es la determinación de

los caudales y tiempos de operación óptimos para los pozos de un mismo reservorio petrolero.

Los archivos correspondientes a la programación se encuentran en la carpeta del siguiente enlace. Seguir las instrucciones para una correcta descarga:

https://onedrive.live.com/redir?resid=57D9ABABD9D55D8B%21107 1. Ingresar el link y acceder a los archives en Outlook. 2. Seleccionar la carpeta Optimization Oilfield Planning y clickear el botón Descargar. 3. Una vez descargada la carpeta, abrir el archivo Optimization_10_wells.gpr. 4. Seleccionar File -> Project -> Open Project. Una vez allí, abrir el archivo Oil_Explotation_10_wells.gms ubicado en la misma carpeta. 5. Por otra parte, abrir el archivo DS - Pressure_Curve_Analysis.xlsx situado en la carpeta Curve Analysis. 6. Seleccionar Datos -> Editar Vínculos. Seleccionar Data.xlsx de la lista de orígenes y clickear el botón Cambiar origen... Seleccionar el

archivo Data.xlsx. 7. Ahora hacer lo propio con el origen Results.xlsx. Seleccionar el archivo Results.xlsx. 8. Guardar todos los archivos y cerrarlos.

De esta manera se logra que los archivos descargados se encuentren vinculados entre sí y las interfaces sean activas. En la carpeta Curve Analysis también podrá encontrar al informe Shale Gas & Shale Oil - Gas y Petróleo Convencional y no-Convencional en Argentina.

Oilfield Production Planning Mixed-Integer Multiperiod Model for the Planning of Oilfield Production

Modelo matemático de optimización MINLP implementado

en GAMS a través de interfaces con MS Excel

Gorrini, Federico Alberto_____________________________________________________________________________________1

Page 4: Oilfield Production Planning
Page 5: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

BACKGROUND

Recientemente la optimización multiperíodo en la industria química ha recibido considerable atención. Este tipo de problemas involucran instalaciones donde los costos y demandas varían de período en período debido al comportamiento del mercado o a cambios estacionales.

En un modelo de planificación multiperíodo, el

problema considera la topología e involucra a las decisiones de puesta en marcha/paro de la operación de los procesos en cada período de tiempo. La operación de un campo de petróleo es un problema multiperíodo debido a que los costos y las demandas de la producción de petróleo cambian de un período a otro a lo largo del horizonte de tiempo considerado.

La infraestructura petrolera consiste en plataformas de producción con un número de reservorios incluyendo los pozos de petróleo. En los modelos de campos petroleros multiperíodo, las decisiones de diseño involucran las capacidades de producción de las plataformas así como también decisiones sobre cuáles plataformas de producción y pozos serán instalados a lo largo del horizonte de tiempo en cuestión. Las decisiones de planificación involucran la producción de petróleo en cada período de tiempo.

En el pasado, las decisiones acerca de las capacidades de las plataformas, la programación de perforación y los perfiles de producción han sido realizados a menudo de manera separada bajo ciertas asunciones para disminuir la carga computacional.

Las instalaciones de los campos petroleros se encuentran frecuentemente en operación durante varias décadas. Por tanto, a pesar de que los cambios en la presión del reservorio con respecto al tiempo no son significativos en el corto plazo, éstos no pueden ser ignorados para la simulación que involucre planificación futura y decisiones de inversión. Es sabido que el comportamiento de un reservorio representa una restricción no-lineal, pero muchas veces el comportamiento del reservorio ha sido aproximado por restricciones lineales como una función de la producción acumulada de petróleo. Por tanto, el índice de productividad, , es asumido como constante para

un dado período de tiempo. El coeficiente de productividad depende de la conductividad del pozo y permite el cálculo del flujo de petróleo como una función de la pérdida de presión entre el reservorio y el pozo.

donde es el caudal de flujo de petróleo en el período

j, es la presión del reservorio y la presión del pozo. El análisis del pozo revela, de cualquier forma, que la presión de flujo del pozo presenta una dependencia temporal no-lineal y, como consecuencia, la suposición de condiciones operativas constantes no aplica. La Figura 1 ilustra la extracción de petróleo desde un reservorio.

Figura 1. Diagrama conceptual de un pozo de petróleo en un reservorio

Tal como indica la Ecuación 1, la fuerza impulsora

para la producción de petróleo desde el pozo es la diferencia de presión manifestada entre el reservorio y las paredes del pozo. También, nótese que cuando el pozo acaba de ser perforado -o cuando ha sido cerrado durante un período de tiempo significativo-, es posible asumir que la presión del pozo es la misma que la del reservorio. Por tanto, al comienzo de la operación, cuando el pozo es abierto al flujo, el petróleo puede ser extraído debido a la diferencia de presión entre el fondo del pozo y el tope del mismo -en el caso de extracción

ecuación 1

reservoir

well head

well bore

oil flow

well bore storage

Gorrini, Federico Alberto_____________________________________________________________________________________2

Page 6: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

ecuación 3

Pup

Plow

tshut in

t

Oil F

low

Ra

te [b

bl/d]

0

We

ll B

ore

Pre

ss

ure

[p

si]

ttshut in

natural-. Según el tiempo de operación se incremente, la presión en las paredes del pozo decrece y esto causa el flujo de petróleo desde el reservorio hacia el pozo.

De todos modos, el caudal del flujo de petróleo desde el reservorio hacia el pozo depende también de las propiedades geológicas de los alrededores del mismo; como son la permeabilidad, el espesor, la porosidad, etc., las cuales determinan la capacidad de producción del pozo. Así, debido a la resistencia al flujo de petróleo entre el reservorio y las paredes del pozo, la producción de petróleo causa que la presión en la expresión que ha sido utilizada frecuentemente (Horne, 1998) para representar dicho comportamiento es:

donde , , , , y son propiedades geológicas determinadas experimentalmente que caracterizan al

pozo. es la presión en las paredes del pozo al inicio

de la operación (presión del reservorio) y es la presión (final) en las paredes del pozo en el tiempo de operación . En este trabajo se asume que el valor de las propiedades geológicas es conocido. Es así como la ecuación puede ser reformulada como:

donde y son constantes que resultan de la combinación de las propiedades geológicas. Por otra parte, si el pozo se encuentra cerrado, su presión se incrementará debido al efecto del flujo de petróleo desde el reservorio hacia el pozo. La Figura 2 muestra el comportamiento de la presión del pozo cuando el petróleo se encuentra fluyendo y más tarde cuando el pozo se encuentra cerrado.

Figura 2.Perfil típico del la performance de la presión del pozo de petróleo y su caudal de flujo

Este trabajo maneja planificación a corto plazo

para la producción de petróleo en los pozos de un reservorio petrolero, siempre atendiendo a la reducción de costos de explotación. Las decisiones de planificación consisten en determinar el caudal de los flujos de petróleo y los tiempos de operación/cierre para cada pozo del reservorio en cada período. Tales decisiones son basadas en consideraciones prácticas, las cuales evitan que la presión del pozo decaiga más allá de un mínimo valor admisible. También, debe recordarse que el caudal de producción de petróleo debe satisfacer la demanda de petróleo para cada período de tiempo. Como se está focalizado en las decisiones a corto plazo,

se considera que la presión del reservorio -no del pozo- permanece constante sobre el horizonte de tiempo en cuestión.

Por otro lado, se asume comportamiento no-lineal

de la presión del pozo para el cálculo de la producción de petróleo tal como lo describe la Ecuación 3, y también es asumido que el valor de las constantes geológicas del pozo es conocido.

El modelo matemático implementado en este trabajo para representar y optimizar al problema es de tipo MINLP (Mixed-Integer Non-Linear Programming).

ecuación 2

Gorrini, Federico Alberto_____________________________________________________________________________________3

Page 7: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

INTRODUCCIÓN TEÓRICA

El trabajo considera la planificación a corto plazo de la producción petrolera de los pozos de un reservorio sobre un horizonte temporal H dividido en NP períodos de duración T.

Así es como, dada la demanda de petróleo para un

dado período de tiempo, las decisiones de planificación involucran conocer el caudal de flujo de petróleo y los tiempos de operación/cierre de los pozos. La principal restricción impuesta al problema es evitar que la presión del pozo decaiga más allá de una presión mínima admisible, debajo de la cual la producción se considera económica y/o técnicamente inviable; además de lograr satisfacer la demanda de petróleo existente.

Las suposiciones realizadas en este documento para realizar el modelamiento incluyen:

1. Pozos múltiples de un reservorio común

producen de manera completamente independiente unos de otros.

2. Comportamiento no-lineal de la presión del pozo como función del caudal de petróleo y del tiempo.

3. La función objetivo es calculada en términos de coeficientes de costos, los cuales cambian para cada período de tiempo debido a cambios estacionales.

MODELO MATEMÁTICO

El modelo considera la operación cíclica de cada pozo i en cada período de tiempo j. Se asume, para todos los pozos, que la presión del pozo al comienzo y al final de cada período de tiempo -y, en consecuencia, al final y al principio de cada ciclo- será la misma e igual a la máxima presión admisible por el pozo. En cada período de tiempo, habrá un máximo de ciclos para cada pozo pero en este modelo no existen variables asociadas para todos los ciclos posibles, debido a que los caudales de flujo y los tiempos de operación serán los mismos para cada ciclo de un dado período de

tiempo. El número real de ciclos para cada pozo dentro de un período de tiempo ( ) será determinado por el

esquema de optimización. Finalmente, en lugar de utilizar la Ecuación 3, la expresión en el pozo será aproximada por una expresión no-lineal que involucra un término el cual contiene una potencia constante positiva del tiempo de operación. Esta expresión constituye el núcleo del modelo matemático ya que es la representación de su comportamiento durante los ciclos de operación/cierre de los pozos.

Sets & Índices Set de períodos de tiempo (1 ... NP) Set de pozos (1 ... NW) Set de valores admisibles para el número de ciclos en un período de tiempo (1 ... NC) Índices correspondientes al pozo, el período de tiempo y el ciclo, respectivamente ( , , )

Gorrini, Federico Alberto_____________________________________________________________________________________4

Page 8: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

Variables Continuas Producción total de petróleo del pozo i en el período j

Caudal de flujo de petróleo en el pozo i en el período j

Tiempo de operación para cada ciclo del pozo i en el período j

Tiempo de cierre para cada ciclo del pozo i en el período j

Tiempo de operación total del pozo i en el período j

Tiempo de cierre total del pozo i en el período j

Presión del pozo i en el período j al final de un ciclo de operación

Variables Binarias 1 si existen k ciclos en la operación del pozo i en el período j

Variables Enteras Número de ciclos en la operación del pozo i en el período j

Parámetros Parámetros para calcular el decaimiento de la presión en el pozo i cuando se encuentra produciendo

Parámetros para calcular el incremento de la presión en el pozo i cuando se encuentra cerrado

El modelo resultante es un Mixed Integer Non-

Linear Problem (MINLP). La función objetivo que se plantea para minimizar los costos en la explotación del campo petrolero es:

ecuación 1

ecuación 5

ecuación 6

ecuación 4

ecuación 3

ecuación 2

Gorrini, Federico Alberto_____________________________________________________________________________________5

Page 9: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

La producción de petróleo de cada pozo -el caudal de flujo de petróleo multiplicado por el tiempo total de operación del pozo en el período j- es calculada a través de la Ecuación 2. La Ecuación 3 atiende a satisfacer la demanda de petróleo en cada período de tiempo j.

El número de ciclos para cada período de tiempo

es dado por la Ecuación 4 y la Ecuación 5. Nótese que si el número de ciclos en un dado período de tiempo es k´, ; mientras que .

El tiempo total de operación/cierre para un pozo i

en un período j es dado por el producto entre el número de ciclos y los tiempos de operación/cierre de cada pozo, tal como lo indica la Ecuación 6 y la Ecuación 7. Nótese que si un pozo permanece cerrado durante un dado período de tiempo, el número de ciclos ( ) es

cero y el tiempo de operación para el pozo dentro de

este período es nulo. En tal caso, el lado derecho de la Ecuación 6 consiste en un término bilineal que incluye dos variables, las cuáles son ambas iguales a cero. Para evitar esta dificultad cuando el número de ciclos es igual

a cero, en la práctica se asigna a el valor de en

lugar del número 0 ( ). Para el caso de la Ecuación 7, el problema es resuelto utilizando la variable . Nótese que mientras el pozo i permanece

cerrado en un período j, , y si se encuentra

abierto al flujo mientras que alguno de los

otros será igual a 1.

La Ecuación 8 establece que la suma de tiempos

que el pozo i permanece en operación/cerrado dentro de un período j es igual a la extensión del período de tiempo. El tiempo de operación de cada ciclo del pozo i, , debe ser menor al tiempo que permite la caída de

presión del pozo por debajo del valor de la mínima presión admisible, condición dictada por la Ecuación 9. Tal máximo de tiempo de operación es dado por la Ecuación 10.

El tiempo de cierre para cada pozo i, debe ser al

menos igual al tiempo mínimo que permita a la presión del pozo incrementarse hasta el valor máximo

ecuación 10

ecuación 11

ecuación 9

ecuación 8

ecuación 7

ecuación 12

ecuación 13

ecuación 14

ecuación 15

ecuación 16

ecuación 17

Gorrini, Federico Alberto_____________________________________________________________________________________6

Page 10: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

admisible, según lo expresa la Ecuación 11. Tal tiempo mínimo es dado por la Ecuación 12. La Ecuación 13 permite el cálculo de la presión de flujo del pozo después de la operación del mismo y justo antes de cerrarlo durante un ciclo de operación.

Finalmente, las restricciones de la Ecuación 14 y la

Ecuación 15 representan el comportamiento de las principales variables del problema en términos de la

variable binaria . Estas dictaminan que el tiempo

total de operación de un pozo i no puede superar al tiempo total del período T; y que el caudal de operación no puede ser superior al caudal máximo impuesto, con excepción de los casos donde el pozo permanece cerrado durante todo el período de tiempo, donde se exige a éste que sea nulo. De esta forma, la producción del reservorio queda modelada matemáticamente y, las condiciones para optimizarla se encuentran declaradas.

EJEMPLOS NUMÉRICOS Y RESULTADOS El modelo propuesto es resuelto a través del

sistema de modelamiento GAMS. Se implementó el solver DICOPT (CPLEX + CONOPT), el cual utiliza por defecto las subrutinas CPLEX y CONOPT para la resolución de los subproblemas MIP y NLP, respectivamente. En todas las ejecuciones realizadas, las propiedades geológicas (comportamiento de la presión de flujo del pozo) son diferentes para cada pozo del reservorio. Más aún, los coeficientes de costos varían no sólo para cada pozo, sino que también lo hacen en cada período de tiempo.

En el ejemplo en estudio se trabaja con un reservorio explotado a través de un número total de 10 pozos petroleros. El Anexo 1 (GAMS Oilfield Production Optimization Programming) contiene la programación ejecutada en el software GAMS. Allí se detalla el propósito de los distintos segmentos de la programación.

Para facilitar el ingreso de datos a GAMS así como también su egreso y posterior visualización se recurre a un software con una interface más interactiva y asequible a cualquier tipo de usuario tal como lo es MS Excel. Este software permite cargar los datos de ingreso en cómodas tablas. Una vez ejecutada la programación en GAMS también posibilita el acceso a los resultados a través de tablas, así como también la construcción de gráficos para su interpretación. El procedimiento para generar la interfaz MS Excel - GAMS para la carga de datos es descripto en el Anexo 2 (MS Excel - GAMS interfaz), mientras que la construcción de la interfaz GAMS - MS Excel para la extracción de resultados y su visualización en este último se describe en el Anexo 3 (GAMS - MS Excel interfaz). Cabe recordar que en ambos casos es el software GAMS el que se encuentra “a cargo” de la ejecución y que MS Excel sólo atiende a las órdenes de éste.

CONCLUSIÓN

Es posible resolver el modelo satisfactoriamente

utilizando el solver DICOPT. Para el caso particular mostrado, éste halla el punto óptimo de operación en tan sólo 4 iteraciones y 0.015 s de tiempo de resolución. Sin embargo, si bien el modelo pudo ser resuelto bajo los valores de prueba propuestos, éste es altamente no-lineal, por lo que la modificación de estos valores ha llevado en la mayoría de los casos a la incapacidad del solver DICOPT para dar con la solución. Es por ello que

en el futuro, deberán implementarse métodos capaces de lidiar con estas no-linealidades, lo cual seguramente mejorará mucho el desempeño de la programación.

Además, la aplicación del solver BARON ha

resultado inútil dado los extensos tiempos de resolución. A continuación se presenta las gráficas obtenidas de los resultados del ejemplo numérico propuesto.

Gorrini, Federico Alberto_____________________________________________________________________________________7

Page 11: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

RESULTADOS. PERFORMANCE DE LA PRESIÓN EN CADA POZO

Estos gráficos contienen la evolución de la presión de cada pozo del reservorio en el tiempo. En todos los casos ésta ha prevalecido por encima de la mínima presión admisible, además de haberse recuperado al final de cada ciclo hasta alcanzar la misma presión del reservorio. En el caso del pozo 5 en el período 1 se

observa que la presión del pozo logra recuperarse antes de la culminación de cada ciclo.

En los casos en que el pozo permaneció cerrado y

fuera de operación durante todo un período, su presión ha sido constante e igual a la presión del reservorio.

Figura 1. Evolución de la presión del pozo 1 en función del tiempo

Figura 3. Evolución de la presión del pozo 3 en función del tiempo

Figura 2. Evolución de la presión del pozo 2 en función del tiempo

Figura 4. Evolución de la presión del pozo 4 en función del tiempo

Gorrini, Federico Alberto_____________________________________________________________________________________8

Page 12: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [p

si]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [p

si]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

5,860

5,880

5,900

5,920

5,940

5,960

5,980

6,000

6,020

0 15 30 45 60 75 90 105 120

We

ll B

ore

Pre

ssu

re [

psi

]

Figura 5. Evolución de la presión del pozo 5 en función del tiempo

Figura 7. Evolución de la presión del pozo 7 en función del tiempo

Figura 9. Evolución de la presión del pozo 9 en función del tiempo

Figura 6. Evolución de la presión del pozo 6 en función del tiempo

Figura 8. Evolución de la presión del pozo 8 en función del tiempo

Figura 10. Evolución de la presión del pozo 10 en función del tiempo

Gorrini, Federico Alberto_____________________________________________________________________________________9

Page 13: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

0

5,000

10,000

15,000

20,000

25,000

30,000

35,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

2,000

4,000

6,000

8,000

10,000

12,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

5,000

10,000

15,000

20,000

25,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

200

400

600

800

1,000

1,200

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

RESULTADOS. PRODUCCIÓN ACUMULADA DE CADA POZO EN FUNCIÓN DEL TIEMPO

La evolución de la producción acumulada de cada pozo se encuentra en éstos gráficos. Aquí puede verse que la producción de cada pozo aumenta de manera lineal mientras éste se mantiene en operación, producto de que su caudal de flujo sea constante; mientras que se estanca cuando el pozo permanece cerrado y recuperando presión.

Sin embargo, que el caudal de producción de cada pozo sea constante no implica que este comportamiento se replique para la completitud del reservorio, de hecho, el caudal de petróleo brindado por el reservorio completo es variable en el tiempo y hasta llega a ser nulo hacia el final de cada período de tiempo -todos los pozos se encuentran en recuperación-.

Figura 1. Evolución de la presión del pozo 1 en función del tiempo

Figura 3. Evolución de la presión del pozo 3 en función del tiempo

Figura 2. Evolución de la presión del pozo 2 en función del tiempo

Figura 4. Evolución de la presión del pozo 4 en función del tiempo

Gorrini, Federico Alberto____________________________________________________________________________________10

Page 14: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

0

5,000

10,000

15,000

20,000

25,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

2,000

4,000

6,000

8,000

10,000

12,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

500

1,000

1,500

2,000

2,500

3,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

1,000

2,000

3,000

4,000

5,000

6,000

7,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

20,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

0

100

200

300

400

500

600

700

800

900

1,000

0 15 30 45 60 75 90 105 120

Pro

du

ctio

n [

bb

l]

Figura 5. Evolución de la presión del pozo 5 en función del tiempo

Figura 7. Evolución de la presión del pozo 7 en función del tiempo

Figura 9. Evolución de la presión del pozo 9 en función del tiempo

Figura 6. Evolución de la presión del pozo 6 en función del tiempo

Figura 8. Evolución de la presión del pozo 8 en función del tiempo

Figura 10. Evolución de la presión del pozo 10 en función del tiempo

Gorrini, Federico Alberto____________________________________________________________________________________11

Page 15: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

ANEXO 1. GAMS OILFIELD PRODUCTION OPTIMIZATION PROGRAMMING

La programación realizada en GAMS para ejecutar el modelo matemático y poder obtener el punto óptimo consta de nueve partes, en cada una de las cuales se definen:

- Sets - Parámetros (MS Excel - GAMS interfaz) - Variables - Ecuaciones - Función Objetivo - Rango válido de las variables - Valores iniciales - Condiciones de resolución y métodos a utilizar - Resultados (GAMS - MS Excel interfaz)

Sets, Parámetros (MS Excel - GAMS interfaz) y Variables

Tanto los Sets, Parámetros así como las Variables son cargadas en MS Excel y más tarde tomadas por GAMS. Sin embargo, las mismas deben primero definirse en GAMS. En este caso, tal como puede verse más adelante, dicha definición se produce entre las líneas de programación 3 a 14.

Una vez definidos en GAMS, debe programarse la

conexión GAMS - MS Excel. Dicha conexión puede realizarse a través de un archivo .gdx. La estructura básica de comandos para ejecutar la conexión es:

$ gdxin my_file.gdx

$ load item_name

$ gdxin

Al especificar item_name puede incluirse a varios items. Al hacerlo, deben nombrarse dejando un espacio entre ellos. Entre las líneas de programación 17 a 25 es donde se produce esta serie de comandos. Allí se especifican los sets (i, j, k), el tiempo de cada período j ( ), los coeficientes que determinan el

comportamiento de la presión del pozo en producción así como también cuando se encuentra cerrado (

), la demanda correspondiente a

cada período j ( ( )), los coeficientes de ganancias/costos para cada pozo i sea que éste se

encuentre operativo como cuando se encuentra cerrado ( ), así como también las presiones límite

definidas para la operación ( ).

Por último se define al parámetro ( ),

aunque éste -por conveniencia- es definido directamente en GAMS (líneas 28 a 32). Este parámetro representa el número de subciclos k existentes dentro de un dado período j.

Las variables también deben definirse dentro de la estructura de GAMS. Entre las líneas 37 a 47 se definen las variables que sólo pueden adquirir valores positivos ( ( ), ( ), ( ), ( ), ( ), ( ), ( ),

( ), ( ), ( )). También debe definirse a la variable , la cual en este caso será el resultado de la función objetivo a minimizar y, como tal, se define como una variable libre (línea 35).

En la línea 50 se define a la variable binaria

( ), la cual es una herramienta que permite indicar dentro del modelo cuál es el número de subciclos presentes dentro de un dado período k. La variable ( ) no es más que un recurso al que se alude para definir el valor que adquiere la variable binaria ( ). Cuando el pozo prevalece cerrado a lo largo de un período, ( ) = 1, mientras que si presenta al menos un subciclo ( ) .

Ecuaciones y Función Objetivo Primero debe declararse la existencia de las ecuaciones, tal como se lista entre las líneas 53 y 69. Luego, es posible desarrollar cada una de ellas tal como se encuentra en las líneas 72 a 105. Finalizado esto, se declara a todas estas bajo el nombre del modelo matemático “oilfield” (línea 107).

Rango válido de las variables y valores iniciales

Una vez definidas las ecuaciones, inecuaciones y variables del modelo matemático, es necesario determinar en qué rango podrán encontrarse los valores

Gorrini, Federico Alberto____________________________________________________________________________________12

Page 16: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

de las variables. Esto reduce el tiempo de cómputo y aumenta las probabilidades de que un solver logre hallar el punto óptimo. Más aún, si es posible debe definirse valores iniciales para cada una de las variables en torno al valor en que se infiere puede ésta hallarse; cuanto más cerca se halle el valor inicial del valor óptimo menor será el tiempo de cómputo.

Condiciones de resolución y métodos a utilizar

Además de desarrollar la descripción matemática del modelo, es necesario especificar el solver de resolución a emplear así como también los métodos de resolución disponibles dentro del mismo para resolver los subproblemas. Tal como ya se ha mencionado, en este caso se utiliza el solver DICOPT (DIscrete and COntinuous OPTimizer). DICOPT es un programa para la resolución de problemas MINLP (Mixed Integer Non-Linear Programming) que involucran variables lineales binarias o variables enteras y variables continuas no-lineales y lineales. El programa se basa en extensiones del algoritmo de aproximación externa para la estrategia de igualdad relajada. El algoritmo MINLP dentro de DICOPT resuelve una serie de subproblemas NLP y MIP. Estos subproblemas pueden ser resueltos utilizando cualquier solver NLP (Non-Linear Programming) o MIP (Mixed-Integer Programming) que corra bajo GAMS. Este programa es capaz de resolver sólo problemas MINLP, y es asignado por defecto en GAMS. También son asignados por defecto CONOPT como solver de los subproblemas NLP, y CPLEX como solver de los subproblemas MIP. Los NLP solvers

posibles son: MINOS5, MINOS, CONOPT, CONOPT3 y SNOPT. Los MIP solvers disponibles son: CPLEX, GUROBI, XPRESS y XA.

Las líneas 217 a 221 expresan en forma explícita

los solvers y programas utilizados para la resolver el problema de optimización. DICOPT es un programa basado en aproximación externa (Outer Approximation), por lo que aproxima las funciones convexas por líneas tangentes internas. Esto no garantiza que la solución obtenida sea necesariamente el óptimo global, sino que puede tratarse de un óptimo local. Para garantizar el hallazgo de un óptimo global debe recurrirse al empleo de BARON, el cual sí es un algoritmo de optimización global. Sin embargo, esta subrutina puede requerir un tiempo computacional notablemente mayor en problemas altamente no lineales como el presente.

Antes de resolver un modelo utilizando DICOPT, es

altamente recomendado experimentar con el modelo relajado donde las restricciones de enteros son ignoradas -las variables enteras se tornan en continuas-. Esto constituye un modelo rMINLP (Relaxed Mix Integer Non-Linear Programming). Así DICOPT puede comenzar resolviendo el problema relajado -menos restringido y de más fácil solución- para luego utilizar la solución óptima relajada existente como punto de inicio.

Entre las líneas 206 y 234 se encuentran

declarados todos los comandos de resolución. Los marcados con * se encuentran inactivos aunque pueden ser activados para resolver el modelo rMINLP o bien acudir a la subrutina del solver BARON.

Gorrini, Federico Alberto____________________________________________________________________________________13

Page 17: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

1 $TITLE Oilfield Explotation Process Optimization

2 3 SETS

4 * 10 wells - 2 periods of time - 4 subcycle

5 6 i wells

7 j periods

8 k subcycles;

9 10 PARAMETERS C1(i),C2(i),C1rec(i),C2rec(i);

11 PARAMETER Demand(j);

12 PARAMETERS gamma(i,j),delta(i,j),alfa(i,j);

13 PARAMETERS Pup(i),Plow(i);

14 SCALAR Tperiod

15 16 17 $CALL GDXXRW.EXE Data.xlsx Index=Index!A1

18 $gdxin Data.gdx

19 $load i j k

20 $load Tperiod

21 $load C1 C2 C1rec C2rec

22 $load Demand

23 $load gamma delta alfa

24 $load Pup Plow

25 $gdxin

26 27 28 PARAMETER Kcycle(k)

29 /1 0.0001

30 2 1

31 3 2

32 4 3/;

33 34 35 FREE VARIABLE z minimize production cost;

36 37 POSITIVE VARIABLE

38 y0(i,j)

39 Q(i,j)

40 P(i,j)

41 Tauo(i,j)

42 Tauc(i,j)

43 tto(i,j)

44 ttc(i,j)

45 N(i,j)

Gorrini, Federico Alberto____________________________________________________________________________________14

Page 18: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

46 ttmin(i,j)

47 ttmax(i,j);

48 49 BINARY VARIABLE

50 y(i,j,k);

51 52 53 EQUATIONS

54 55 EQ1(j)

56 EQ4(i,j)

57 EQ5(i,j)

58 EQ6(i,j)

59 EQ6a(i,j)

60 EQ6b(i,j)

61 EQ7(i,j)

62 EQ8(i,j)

63 EQ9(i,j)

64 EQ8a(i,j)

65 EQ9a(i,j)

66 EQ10(i,j)

67 EQ11(i,j)

68 EQ12(i,j)

69 obj;

70 71 72 EQ1(j).. SUM(i, Q(i,j)*Tauo(i,j)) =G= Demand(j);

73 74 EQ4(i,j).. N(i,t) =E= SUM (k,y(i,j,k)*Kcycle(k));

75 76 EQ5(i,j).. SUM(k,Y(i,j,k)) =E= 1;

77 78 EQ6(i,j).. Tauo(i,j) =E= N(i,j)*tto(i,j);

79 80 EQ6a(i,j).. Tauc(i,j) =E= (N(i,j)+y0(i,j))*ttc(i,j);

81 82 EQ6b(i,j).. y0(i,j) =E= y(i,j,"1");

83 84 EQ7(i,j).. Tauo(i,j)+Tauc(i,j) =E= Tperiod;

85 86 * EQ8(i,j).. tto(i,j) =L= ((P(i,j)-Plow(i))/C1(i)*Q(i,j))**(1/C2(i));

87 EQ8(i,j).. ttmax(i,j)**C2(i) =E= ((P(i,j)-Plow(i)))/(C1(i)*Q(i,j));

88 EQ8a(i,j).. tto(i,j) =L= ttmax(i,j);

89 90 * EQ9(i,j).. ttc(i,j) =L= ((Pup(i)-P(i,j))/C3(i))**(1/C4(i));

Gorrini, Federico Alberto____________________________________________________________________________________15

Page 19: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

91 EQ9(i,j).. (ttmin(i,j)**C2rec(i))*(C1rec(i)) =E= (Pup(i)-P(i,j));

92 EQ9a(i,j).. ttc(i,j) =G= ttmin(i,j);

93 94 EQ10(i,j).. P(i,j) =E= Pup(i)-C1(i)*Q(i,j)*tto(i,j)**C2(i);

95 96 EQ11(i,j).. Tauo(i,j)-Tperiod*(1-y(i,j,"1")) =L= 0;

97 98 EQ12(i,j).. Q(i,j)-Q.up(i,j)*(1-y(i,j,"1")) =L= 0;

99 100 *option reslim = 100000;

101 *option sysout = ON;

102 *option domlim = 1000000;

103 104 obj.. z =E= sum((i,j),gamma(i,j)*Q(i,j)*Tauo(i,j)+

105 delta(i,j)*Tauo(i,j)+alfa(i,j)*Tauc(i,j));

106 107 MODEL oilfield /ALL/;

108 109 110 N.up (i,j) = 3;

111 N.l (i,j) = 1;

112 N.lo (i,j) = 0.0001;

113 114 Tauo.up (i,j) = 42.5 ;

114 Tauo.lo (i,j) = 0.00001;

115 116 Tauc.up (i,j) = 60;

117 Tauc.lo (i,j) = 0.00001;

118 119 tto.up (i,j) = 30;

120 tto.l (i,j) = 10;

121 tto.lo (i,j) = 0.001;

122 123 ttc.up (i,j) = 60;

124 ttc.l (i,j) = 20;

125 ttc.lo (i,j) = 0.0001;

126 127 ttmin.up (i,j) = 60;

128 ttmin.lo (i,j) = 2;

129 130 ttmax.up (i,j) = 60;

131 ttmax.lo (i,j) = 0.001;

132 133 Q.lo (i,j) = 0.0001;

134 Q.l (i,j) = 500;

Gorrini, Federico Alberto____________________________________________________________________________________16

Page 20: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

135 Q.up (i,j) = 900;

136 137 P.lo (i,j) = 5880;

138 P.up (i,j) = 6009;

139 140 141 * OPTION Statements

142 143 * option domlim = n

144 * This option sets a limit on the total accumulated number of non-linear

145 * funtion evaluation errors that are allowed while solving the NLP subproblems

146 * or inside DICOPT.

147 * option domlim = 1000000;

148 149 * option reslim = x

150 * This option sets a limit on the total accumulated time [s] spent inside

151 * DICOPT and the subsolvers. The default is 1000.

152 * option reslim = 1000;

153 154 * m.iterlim = n

155 * Sets the total accumulated (minor) iteration limit. This option overrides the

156 * global iteration limit set by an option statement.

157 * oilfield.iterlim = 1000;

158 159 * option iterlim = n

160 * This option sets a limit on the total accumulated (minor) iterations

161 * performed in the MIP and NLO subproblems. The default is 1000.

162 * option iterlim = 2000;

163 164 * option sysout = on

165 * This option will print extra information to the listing file.

166 * option sysout = on;

167 168 169 170 * DICOPT Options

171 172 * m.optfile = n

173 * This option instructs DICOPT to read an option file dicopt.opn. This file

174 * should be located in the current directory.

175 * In the oilfield.optfile could be more than one DICOPT Options.

176 177 * maxcycles n

178 * This option specify the maximum number of cycles or major iterations

179 * performed. The default value is n = 20.

180

Gorrini, Federico Alberto____________________________________________________________________________________17

Page 21: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

181 * epsx x

182 * This tolerance is used to distinguish integer variables that are set to an

183 * integer value by the user, or integer variables that are fractional.

184 * The default value is x = 1.0e-3.

185 186 * Infeasder n

187 * This option is to determine whether linearizations of infeasible NLP

188 * subproblems are added or not to the MIP master problem.

189 * The default option is N = 0, in which no linearizations are added in the

190 * infeasible NLP subproblems.

191 * When n = 1, linearizations derived from infeasible NLP subproblems are added

192 * to the master problem. This option is recommended to speed up convergence

193 * when the MINLP is known to be convex. If used for nonconvex MINLP possibility

194 * of cutting-off the global optimum is increased.

195 196 *$ontext

197 $onecho > dicopt.op2

198 maxcycles = 100

199 epsx = 1.0e-3

200 infeasder 0

201 $offecho

202 203 oilfield.optfile = 2;

204 *$offtext

205 206 207 * DICOPT MODELING METHODS

208 209 * Before solving a model with DICOPT, it is strongly advised to experiment with

210 * the relaxed model where the integer restrictions are ignored.

211 * This is the RMINLP model.

212 * In the following fragment, the second SOLVE statement will only be executed if

213 * the first SOLVE was successful.

214 215 * In some cases the relaxed problem is the most difficult model. If you have

216 * more than one NLP solver available, you may want to try a sequence of them.

217 218 option NLP = conopt;

219 option MIP = cplex;

220 option rMINLP = conopt;

221 option MINLP = dicopt;

222 *option MINLP = BARON;

223 224 *SOLVE oilfield USING rMINLP MINIMIZING z;

225

Gorrini, Federico Alberto____________________________________________________________________________________18

Page 22: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

226 *if (oilfield.modelstat > 2.5, option rMINLP=MINOS;

227 *SOLVE oilfield USING rMINLP MINIMIZING z;)

228 *if (oilfield.modelstat > 2.5, option rMINLP=SNOPT;

229 *SOLVE oilfield USING rMINLP MINIMIZING z;)

230 231 * When the next statement is activated, it allows GAMS to solve the model with

232 * discrete variables after try to do it with relaxed ones.

233 234 *abort$(oilfield.modelstat > 2.5) "Relaxed model could not be solved";

235 SOLVE oilfield using MINLP MINIMIZING z;

236 237 238 239 Execute_unload "Results.gdx" Q.L P.L tto ttc N

240 241 $onecho > taskoutput.txt

242 var=Q.L rng=Results!C3:E13 rdim=1 cdim=1

243 var=P.L rng=Results!H3:J13 rdim=1 cdim=1

244 var=tto rng=Results!C17:E27 rdim=1 cdim=1

245 var=ttc rng=Results!H17:J27 rdim=1 cdim=1

246 var=N rng=Results!M17:O27 rdim=1

247 $offecho

248 249 $CALL GDXXRW.EXE Results.gdx Index=Index!A1

250

Gorrini, Federico Alberto____________________________________________________________________________________19

Page 23: Oilfield Production Planning

U

NIV

ERSI

DA

D N

AC

ION

AL

DEL

SU

R

O

ilfie

ld P

rod

uct

ion

Pla

nn

ing

.

Tab

la A

.2.3

. Esp

ecif

ica

ció

n d

e d

ato

s en

el a

rch

ivo

Da

ta.x

lsx

de

MS

Exce

l, so

lap

a “

Da

ta”.

gamma

alfa

Pup

[p

si]

Dem

and

C1

C1

rec

12

12

w1

6,00

91

75,0

00w

10.

0545

7w

127

.285

w1

2.91

63.

500

w1

50.0

522

.75

w2

6,00

92

50,0

00w

20.

1107

9w

233

.237

w2

5.83

36.

708

w2

75.8

385

.93

w3

6,00

9w

30.

0651

2w

326

.056

w3

3.21

54.

256

w3

60.2

620

.32

w4

6,00

9w

40.

8312

5w

425

.265

w4

5.21

94.

566

w4

42.2

330

.86

w5

6,00

9w

50.

1065

8w

536

.215

w5

6.22

63.

265

w5

96.2

650

.64

w6

6,00

9w

60.

1256

9w

642

.259

w6

5.23

27.

626

w6

21.2

645

.26

w7

6,00

9w

70.

7265

2w

726

.266

w7

9.26

58.

265

w7

35.4

752

.14

w8

6,00

9w

80.

2352

3w

821

.265

w8

4.22

65.

265

w8

65.2

650

.82

w9

6,00

9w

90.

1583

2w

918

.265

w9

1.26

12.

265

w9

82.2

670

.46

w10

6,00

9w

100.

0953

5w

1029

.215

w10

2.26

53.

266

w10

24.1

554

.87

delta

Plo

w [

psi

]T

cycl

e [d

ays

]60

C2

C2

rec

12

w1

5,88

0w

10.

2874

2w

10.

2874

2w

171

.75

76.5

3

w2

5,88

0w

20.

2378

6w

20.

2378

6w

295

.66

102.

84

w3

5,88

0w

30.

2503

5w

30.

2503

5w

384

.64

70.2

5

w4

5,88

0w

40.

3326

5w

40.

3326

5w

424

.26

45.2

6

w5

5,88

0w

50.

2835

1w

50.

2835

1w

542

.32

42.2

4

w6

5,88

0w

60.

2486

2w

60.

2486

2w

615

.73

34.8

9

w7

5,88

0w

70.

3554

2w

70.

3554

2w

756

.25

46.6

5

w8

5,88

0w

80.

3515

6w

80.

3515

6w

851

.25

75.2

5

w9

5,88

0w

90.

2955

6w

90.

2955

6w

965

.82

61.2

5

w10

5,88

0w

100.

2151

8w

100.

2151

8w

1049

.25

27.1

3

Go

rrin

i, Fe

der

ico

Alb

erto

____

____

___

___

___

____

____

____

___

____

____

___

____

____

____

___

____

____

___

____

____

___

____

____

____

___

____

____

____

___

____

____

___

____

____

___

____

__2

0

Page 24: Oilfield Production Planning
Page 25: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

.xlsx.gdxGAMS.xlsx .gdx

ANEXO 2. MS EXCEL - GAMS INTERFAZ

MS Excel ofrece una interfaz para la carga y procesamiento de datos más cómoda y con mayor potencialidad que GAMS, sobre todo cuando deben cargarse gran cantidad de datos o procesarse demasiados resultados -o incluso graficarlos-. Además, ofrece una interfaz mucho más familiar e interactiva al usuario.

MS Excel permite la carga de sets y parámetros, los

cuales serán tomados más tarde por GAMS. Sin embargo, éstos deben primero definirse en GAMS. Una vez definidos en GAMS, debe programarse la conexión GAMS-MS Excel. Dicha conexión puede realizarse a través de un archivo .gdx. La estructura básica de comandos para ejecutar la importación de datos desde un archivo .gdx es la siguiente:

$ gdxin my_file.gdx

$ load item_name

$ gdxin

Al especificar item_name puede incluirse a varios items. Al hacerlo, deben nombrarse dejando un espacio

entre ellos. Por otro lado, para exportar los resultados hacia un archivo .gdx, se utiliza el siguiente comando:

execute_unload file_name.gdx items_list

En items_list se deben especificar la lista de items de salida en el archivo .gdx. Si se quiere obtener los valores iniciales de las variables, este comando se debe ejecutar antes del comando SOLVE; por el contrario, si lo que se desean son los valores en el punto óptimo, entonces debe insertarse luego de la resolución.

Cuando GAMS intercambia datos con otros programas, se puede utilizar dos esquemas de operación.

a. GAMS al mando: donde GAMS utiliza al otro programa como repositorio de datos y resultados.

b. Otro software al mando: aquí GAMS es utilizado como una subrutina.

Figura A.2.1. Diagrama de flujo de datos/resultados a través de las interfaces GAMS - MS Excel

En este caso se dispone a GAMS como software de mando. Para ello, en GAMS debe utilizar al comando GDXXRW.EXE, el cual es una herramienta de GAMS que permite crear archivos .gdx a partir de archivos de MS Excel y viceversa, es decir, tomar datos desde archivos .gdx y forzarlos dentro de hojas de cálculo de MS Excel. Para generar un archivo .gdx a partir de un archivo de MS Excel se debe emplear al comando de la siguiente forma:

$ CALL GDXXRW.EXE Data_file.xlsx Index = Index! A1

En cambio, para impulsar a los resultados desde un

archivo .gdx hacia un archivo de MS Excel se debe emplear de la siguiente manera:

$ CALL GDXXRW.EXE Results_file.xlsx Index = Index! A1 Así, la estructura total de la conexión finalmente

será:

$ CALL GDXXRW.EXE Data_file.xlsx Index = Index! A1 $ gdxin Data_file.gdx $ load Sets $ load Parameters $ gdxin

MODEL + SOLVE command

Execute_unload `Results_file.gdx` itemslist; $ CALL GDXXRW.EXE Results_file.xlsx Index = Index! A1

Gorrini, Federico Alberto____________________________________________________________________________________21

Page 26: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

En itemslist debe especificarse las variables de las cuales se pretende exportar sus valores finales.

Todo esto es la programación que se realiza en el

archivo de GAMS. Por su parte, debe también existir un archivo para la carga de datos de MS Excel. Este archivo, al que llamaremos Data.xlsx, debe constar de tres solapas: “Index”, “Sets” y “Data”. - Sets: en esta hoja de cálculo debe declararse los sets

involucrados y sus respectivos elementos en forma de columnas.

- Data: aquí se incorporan los datos en forma de tablas. Pueden también incluirse parámetros.

- Index: es la última de las hojas de cálculo a construir. Proporciona la programación que ejecuta la conexión final para la interfaz MS Excel - GAMS. En esta hoja de cálculo se nombran los sets y parámetros, declarando su ubicación y el rango que ocupan en la tabla correspondiente.

set set_name Sets!N#:N# par par_name Sets!N#:N#

También, dentro de esta misma solapa se indica la disposición de las dimensiones de las variables.

- rdim: los datos se expresan verticalmente en

columnas. si existe una columna con datos del parámetro, si no se expresan los datos del parámetro en disposición de columna.

- cdim: los datos se expresan horizontalmente en filas. si existe una fila con datos del parámetro, si no se expresan los datos del parámetro en disposición de fila.

- dim: número de dimensiones en las que se expresa un parámetro; es igual al resultado de la suma .

Un detalle importante para que GAMS tome los

datos cargados en Data.xlsx es que el archivo haya sido guardado. GAMS importa los datos de la última versión del archivo de MS Excel, sin importar si éste se encuentra abierto o no.

Tabla A.2.1. Especificación de Sets y Parámetros en el archivo Data.xlsx, solapa “Index” de MS Excel

Tabla A.2.2. Especificación de Sets en la solapa “Sets” del archivo Data.xlsx en MS Excel

rdim cdim dim

wells periods subcycles

set i Sets!A2:A11 1 1

w1 1 1

set j Sets!B2:B3 1 1

w2 2 2

set k Sets!C2:C5 1 1

w3 3

par Tperiod Data!F16 0

w4 4

par C1 Data!H4:I13 1 1

w5

par C2 Data!H17:I26 1 1

w6

par C1rec Data!K4:L13 1 1

w7

par C2rec Data!K17:L26 1 1

w8

par Demand Data!E4:F5 1 1

w9

par Data!N3:P13 1 1 2

w10

par Data!N16:P26 1 1 2 par Data!R3:T13 1 1 2 par Pup Data!B4:C13 1 1 par Plow Data!B17:C26 1 1

Gorrini, Federico Alberto____________________________________________________________________________________22

Page 27: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

.xlsx.gdxGAMS.xlsx .gdx

ANEXO 3. GAMS - MS EXCEL INTERFAZ

Así como se realizó para la carga de datos, para la exportación de resultados desde GAMS debe generarse del mismo modo un archivo de MS Excel para tal fin. Nuevamente, MS Excel ofrece una mejora cualitativa frente a GAMS tanto para visualizar los resultados en tablas como por la facilidad que ofrece para graficar y analizar los resultados obtenidos. Sin embargo, los parámetros resultantes deben primero definirse en GAMS. Una vez definidos en GAMS, debe programarse la conexión GAMS-MS Excel. Dicha conexión puede realizarse a través de un archivo .gdx. Para exportar los

resultados hacia un archivo .gdx, se utiliza el siguiente comando:

execute_unload file_name.gdx items_list

En items_list se debe especificar la lista de items de salida en el archivo .gdx. Si se quiere obtener los valores iniciales de las variables, este comando se debe ejecutar antes del comando SOLVE; por el contrario, si lo que se desean son los valores en el punto óptimo, entonces debe insertarse luego de la resolución.

Figura A.3.1. Diagrama de flujo de datos/resultados a través de las interfaces GAMS - MS Excel

En este caso vuelve a utilizarse GAMS como software de mando. Para ello GAMS debe utilizar al comando GDXXRW.EXE, el cual es una herramienta de GAMS que permite crear archivos .gdx a partir de archivos de MS Excel y viceversa. En este caso se utiliza para tomar datos desde archivos .gdx y forzarlos dentro de hojas de cálculo de MS Excel. Para generar un archivo de MS Excel a partir de un archivo .gdx se debe emplear al comando de la siguiente forma:

$ CALL GDXXRW.EXE Data_file.xlsx Index = Index! A1

La estructura total de la conexión finalmente será:

$ CALL GDXXRW.EXE Data_file.xlsx Index = Index! A1 $ gdxin Data_file.gdx $ load Sets $ load Parameters $ gdxin MODEL + SOLVE command Execute_unload `Results_file.gdx` itemslist; $ CALL GDXXRW.EXE Results_file.xlsx Index = Index! A1

En itemslist debe especificarse las variables de las

cuales se pretende exportar sus valores finales. Todo esto es la programación que se realiza en el archivo de

GAMS. Por su parte, debe también existir un archivo para la descarga de datos hacia MS Excel. Este archivo, al que llamaremos Results.xlsx, debe constar de tres solapas: “Index” y ”Results”. - Results: aquí se incorporan los datos en forma de

tablas. Pueden también incluirse parámetros. - Index: Proporciona la programación que ejecuta la

conexión final para la interfaz GAMS - MS Excel. En esta hoja de cálculo se nombran los variables a importar, declarando su ubicación y el rango que ocupan en la tabla correspondiente.

var set_name Sets!N#:N#

También, dentro de esta misma solapa se indica la

disposición de las dimensiones de las variables. - rdim: los datos se expresan verticalmente en

columnas. si existe una columna con datos del parámetro, si no se expresan los datos del parámetro en disposición de columna.

- cdim: los datos se expresan horizontalmente en filas. si existe una fila con datos del parámetro, si no se expresan los datos del parámetro en disposición de fila.

- dim: número de dimensiones en las que se expresa un parámetro; igual a la suma .

Gorrini, Federico Alberto____________________________________________________________________________________23

Page 28: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

Tabla A.3.1. Especificación de Variables en el archivo Results.xlsx, solapa “Index” de MS Excel

rdim cdim dim

var Q.L Results!C3:E13 1 1 2

var P.L Results!H3:J13 1 1 2

var tto Results!C17:E27 1 1 2

var ttc Results!H17:J27 1 1 2

var N Results!M17:O27 1 1 2

Una vez realizada esta programación las variables

resultantes aparecerán actualizadas luego de cada ejecución de GAMS. Después, la manipulación de estos resultados para su análisis es muy sencillo. En este caso, resulta de interés el análisis de las curvas de declinación/recuperación de la presión en cada pozo, así como la evolución de la producción acumulada en el

tiempo. Para ello, se creó el archivo Analysis_Curves.xlsx, en el que los datos de performance de las curvas de cada pozo se encuentran ya vinculados a los datos importados por Results.xlsx, logrando que todos los datos se actualicen automáticamente luego de cada ejecución de GAMS.

Tabla A.3.2. Valor resultado del punto óptimo de las variables requeridas en la solapa “Results” del archivo Results.xlsx en MS Excel

Q.L

P.L [psi]

1 2

1 2

w1 w1 423.4 423.4

w1 w1 5,955 5,955 w2 w2 247.4 409.8

w2 w2 5,953 6,000

w3 w3 400.1 448.2

w3 w3 5,948 5,955 w4 w4 23.4 38.8

w4 w4 5,956 6,006

w5 w5 219.6 264.2

w5 w5 5,953 5,949 w6 w6 265.5 348.3

w6 w6 5,945 6,001

w7 w7 40.6 40.6

w7 w7 6,006 6,006 w8 w8 78.6 127.3

w8 w8 5,958 6,006

w9 w9 140.8 140.8

w9 w9 5,955 5,955 w10 w10 306.4 306.4

w10 w10 5,948 5,948

tto [days]

ttc [days]

N

1 2

1 2

1 2

w1 w1 19.22 19.22

w1 w1 10.78 10.78

w1 w1 2.00 2.00

w2 w2 20.76 0.00

w2 w2 9.24 60.00

w2 w2 2.00 1.00

w3 w3 30.00 11.66

w3 w3 30.00 18.34

w3 w3 1.00 2.00

w4 w4 20.64 0.00

w4 w4 9.36 60.00

w4 w4 2.00 1.00

w5 w5 21.25 14.17

w5 w5 8.75 5.83

w5 w5 2.00 3.00

w6 w6 14.17 0.00

w6 w6 5.83 60.00

w6 w6 3.00 1.00

w7 w7 0.00 0.00

w7 w7 60.00 60.00

w7 w7 1.00 1.00

w8 w8 17.95 0.00

w8 w8 12.05 60.00

w8 w8 2.00 1.00

w9 w9 20.26 20.26

w9 w9 39.74 39.74

w9 w9 1.00 1.00

w10 w10 30.00 30.00

w10 w10 30.00 30.00

w10 w10 1.00 1.00

Gorrini, Federico Alberto____________________________________________________________________________________24

Page 29: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

ANEXO 4. PROGRAMACIÓN GRÁFICA MS EXCEL

Una vez conseguidos los resultados arrojados por GAMS, estos son exportados hacia el documento Results.xlsx, el cual a su vez los exportará hacia el archivo Pressure_Curve_Analysis.xlsx. En este último archivo se pretende graficar y analizar las curvas de performance de cada pozo sobre cada período de tiempo.

Tabla A.4.1. Resumen de resultados y parámetros de cada pozo

Results

Q.L 423.4 423.4

P.L [psi] 5,955 5,955

tto [days] 19.2 19.2

ttc [days] 10.8 10.8

N 2 2

Tcycle [days] 60 60

data well 1 C1 0.05457 C2 0.28742 C1

rec 27.285

C2rec 0.28742

pressure boundaries 0

Pup [psi] 6,009 6,009

Plow [psi] 5,880 5,880

Para lograr esto, se importan los datos hacia hojas de cálculo individuales donde se expresan mediante las siguientes tablas como la Tabla A.4.1.

Es importante que el archivo Results.xlsx

permanezca cerrado mientras se ejecuta GAMS, de lo contrario, los datos no serán importados por MS Excel.

Como un pozo puede tener 1, 2 o 3 subciclos en cada período, esto supone una dificultad a la hora de intentar que MS Excel grafique en forma automática a partir de los resultados provistos. Para lograr graficar en MS Excel a partir de los resultados obtenidos, se debe calcular al valor de las funciones de la presión en diversos puntos en el tiempo para luego graficarlos y obtener las curvas. Sin embargo, es difícil que MS Excel sepa si debe usar la ecuación de decrecimiento o recuperación de la presión en el pozo o cuántos subciclos se presentan. Por tanto, se recurre al cálculo de un número NP de puntos dentro del período de tiempo T -en este caso particular, se toman 120 puntos de cálculo por período-. Para lograr esto se recurre a la función condicional de MS Excel:

SI (prueba_lógica, [valor_si_verdadero], [valor_si_falso])

A continuación se expresan las fórmulas a

aplicar en cada segmento de tiempo en función del número de subciclos.

Con las consideraciones expresadas a

continuación, es posible programar las respectivas fórmulas en MS Excel a fin de representar el comportamiento de la presión y producción de cada pozo en función del tiempo y obtener los gráficos correspondientes.

Tómese en consideración las siguientes ecuaciones aplicadas para representar cada segmento de las curvas según el número de subciclos que se presenten. En los casos en que , para el tiempo basta con dividir el tiempo del período en NP partes y multiplicarlo por el contador respectivo al punto en cuestión, mientras que para la presión sólo se debe imponer el valor .

Gorrini, Federico Alberto____________________________________________________________________________________25

Page 30: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.

0 t o 60

1 2

0 30 6030 + t ot o

1 2 3 4

0 t o 20 20 + t o 40 6040 + t o

21 3 4 5 6

Time [days]

Gorrini, Federico Alberto____________________________________________________________________________________26

Page 31: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization

0 t o 60

1 2

0 30 6030 + t ot o

1 2 3 4

0 t o 20 20 + t o 40 6040 + t o

21 3 4 5 6

Pressure [psi]

En ocasiones puede que la recuperación de la presión del último subciclo correspondiente a un dado período se concrete antes que el período termine. Es términos matemáticos esto puede expresarse como . En estos casos es necesario realizar

una corrección sobre las fórmulas introducidas para calcular la presión del pozo en tales instancias; de lo

contrario, la presión graficada superará a , lo cual es técnicamente imposible. En los subciclos que se presente ésta situación deberá insertarse un condicional adicional en la fórmula de cálculo de la presión que indique que cuándo la presión calculada sea superior a , a ésta se le deberá imponer el valor

Gorrini, Federico Alberto____________________________________________________________________________________27

Page 32: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR

OILFIELD PRODUCTION PLANNING

Mixed-Integer Multiperiod Model for the Planning of Oilfield Production

Documento de Trabajo. Septiembre 2014

Bahía Blanca - Argentina

Page 33: Oilfield Production Planning

UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization

0 t o 60

1 2

0 30 6030 + t ot o

1 2 3 4

0 t o 20 20 + t o 40 6040 + t o

21 3 4 5 6

Production [bbl]

Gorrini, Federico Alberto____________________________________________________________________________________28