1. 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
2. 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
federicogorrini01@gmail.com
abandoni@plapiqui.edu.ar
Universidad Nacional del Sur
(8000) Bahía Blanca. Buenos Aires, Argentina.
3. 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
4.
5. 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
6. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
ecuación 3
Pup
Plow
tshut in t
Oil Flow Rate [bbl/d]
0
Well Bore Pressure [psi]
t t shut 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
7. 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
8. 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
9. 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
10. 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
11. 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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
12. 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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
Well Bore Pressure [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
13. 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
Production [bbl]
0
2,000
4,000
6,000
8,000
10,000
12,000
0
15
30
45
60
75
90
105
120
Production [bbl]
0
5,000
10,000
15,000
20,000
25,000
0
15
30
45
60
75
90
105
120
Production [bbl]
0
200
400
600
800
1,000
1,200
0
15
30
45
60
75
90
105
120
Production [bbl]
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
14. 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
Production [bbl]
0
2,000
4,000
6,000
8,000
10,000
12,000
0 15 30 45 60 75 90 105 120
Production [bbl]
0
500
1,000
1,500
2,000
2,500
3,000
0 15 30 45 60 75 90 105 120
Production [bbl]
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
0 15 30 45 60 75 90 105 120
Production [bbl]
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
Production [bbl]
0
100
200
300
400
500
600
700
800
900
1,000
0 15 30 45 60 75 90 105 120
Production [bbl]
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
15. 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
16. 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
17. 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
20. 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
21. 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
22. 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
25. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
.xlsx .gdx GAMS .gdx .xlsx
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
26. 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
27. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
.xlsx .gdx GAMS .gdx .xlsx
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
28. 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
29. 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
C1rec
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
30. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
0 t o 60
1 2
0 30 30 + t 60 o t o
1 2 3 4
0 t o 20 20 + t o 40 40 + t 60 o
1 2 3 4 5 6
Time [days]
Gorrini, Federico Alberto____________________________________________________________________________________26
31. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization
0 t o 60
1 2
0 30 30 + t 60 o t o
1 2 3 4
0 t o 20 20 + t o 40 40 + t 60 o
1 2 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
32. 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
33. UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization
0 t o 60
1 2
0 30 30 + t 60 o t o
1 2 3 4
0 t o 20 20 + t o 40 40 + t 60 o
1 2 3 4 5 6
Production [bbl]
Gorrini, Federico Alberto____________________________________________________________________________________28