oilfield production planning - federico gorrini
TRANSCRIPT
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
1/36
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
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
2/36
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.
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
3/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
Ing. GORRINI, Federico Alberto - Dr. BANDONI, J. Alberto
ABSTRACT
Durante el desarrollo del presente trabajo, seimplementó un modelo de optimizaciónmultiperíodo mixto-entero para la planificación de laproducción petrolera en los pozos de un mismoreservorio. El problema considera las variacionestopológicas e involucra los perfiles de producción ylos tiempos de operación/parada de los pozos encada período de tiempo. Se asume comportamientono-lineal de la presión de flujo (respecto al tiempo)mientras se calcula la producción de petróleo y seconsideran períodos de tiempo de duraciónuniforme.
Finalmente, el modelo es implementado através del sistema de modelamiento GAMS (General Algebraic Modeling System), mostrando un ejemplonumérico de resolución. Se generan interfaces através de MS Excel que permite la importación dedatos y exportación de resultados involucrados enGAMS. Además, esto posibilita el procesamiento delos resultados y su graficado para un mejor análisisde los mismos.
El resultado del proceso es la determinación delos 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 correctadescarga:
https://onedrive.live.com/redir?resid=57D9ABABD9D55D8B%21107
1. Ingresar el link y acceder a los archivos 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 PlanningMixed-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
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
4/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
BACKGROUND
Recientemente la optimización multiperíodo en laindustria química ha recibido considerable atención.Este tipo de problemas involucran instalaciones dondelos costos y demandas varían de período en períododebido al comportamiento del mercado o a cambiosestacionales.
En un modelo de planificación multiperíodo, el
problema considera la topología e involucra a lasdecisiones de puesta en marcha/paro de la operaciónde los procesos en cada período de tiempo. Laoperación de un campo de petróleo es un problemamultiperíodo debido a que los costos y las demandas dela producción de petróleo cambian de un período a otroa lo largo del horizonte de tiempo considerado.
La infraestructura petrolera consiste en plataformasde producción con un número de reservorios incluyendolos pozos de petróleo. En los modelos de campospetroleros multiperíodo, las decisiones de diseño
involucran las capacidades de producción de lasplataformas así como también decisiones sobre cuálesplataformas de producción y pozos serán instalados a lolargo del horizonte de tiempo en cuestión. Lasdecisiones de planificación involucran la producción depetróleo en cada período de tiempo.
En el pasado, las decisiones acerca de lascapacidades de las plataformas, la programación deperforación y los perfiles de producción han sidorealizados a menudo de manera separada bajo ciertasasunciones para disminuir la carga computacional.
Las instalaciones de los campos petroleros seencuentran frecuentemente en operación durantevarias décadas. Por tanto, a pesar de que los cambios enla presión del reservorio con respecto al tiempo no sonsignificativos en el corto plazo, éstos no pueden serignorados para la simulación que involucre planificaciónfutura y decisiones de inversión. Es sabido que elcomportamiento de un reservorio representa unarestricción no-lineal, pero muchas veces elcomportamiento del reservorio ha sido aproximado porrestricciones lineales como una función de laproducción acumulada de petróleo. Por tanto, el índicede productividad, , es asumido como constante para
un dado período de tiempo. El coeficiente deproductividad depende de la conductividad del pozo ypermite el cálculo del flujo de petróleo como unafunción de la pérdida de presión entre el reservorio y elpozo.
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 lapresión de flujo del pozo presenta una dependenciatemporal no-lineal y, como consecuencia, la suposiciónde condiciones operativas constantes no aplica. LaFigura 1 ilustra la extracción de petróleo desde unreservorio.
Figura 1. Diagrama conceptual de un pozo de petróleo en unreservorio
Tal como indica la Ecuación 1, la fuerza impulsorapara la producción de petróleo desde el pozo es ladiferencia de presión manifestada entre el reservorio ylas paredes del pozo. También, nótese que cuando elpozo acaba de ser perforado -o cuando ha sido cerradodurante un período de tiempo significativo-, es posibleasumir que la presión del pozo es la misma que la delreservorio. Por tanto, al comienzo de la operación,cuando el pozo es abierto al flujo, el petróleo puede serextraí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
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
5/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
ecuación 3
Pup
Plow
tshut in t
O i l F l o w R a t e [ b b l / d ]
0
W e l l B o r e P r e s s u r e [ p s i ]
ttshut in
natural-. Según el tiempo de operación se incremente,la presión en las paredes del pozo decrece y esto causael flujo de petróleo desde el reservorio hacia el pozo.
De todos modos, el caudal del flujo de petróleodesde el reservorio hacia el pozo depende también delas propiedades geológicas de los alrededores delmismo; como son la permeabilidad, el espesor, laporosidad, etc., las cuales determinan la capacidad deproducción del pozo. Así, debido a la resistencia al flujode petróleo entre el reservorio y las paredes del pozo, laproducció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ógicasdeterminadas experimentalmente que caracterizan al
pozo. es la presión en las paredes del pozo al iniciode la operación (presión del reservorio) y es lapresión (final) en las paredes del pozo en el tiempo deoperación . El desarrollo de la Ecuación 2 se encuentraen la sección Ecuación Matemática. En este trabajo seasume que el valor de las propiedades geológicas esconocido. Es así como la ecuación puede serreformulada como:
donde y son constantes que resultan de lacombinación de las propiedades geológicas. Por otraparte, si el pozo se encuentra cerrado, su presión seincrementará debido al efecto del flujo de petróleodesde el reservorio hacia el pozo. La Figura 2 muestra elcomportamiento de la presión del pozo cuando elpetróleo se encuentra fluyendo y más tarde cuando elpozo 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 plazopara la producción de petróleo en los pozos de unreservorio petrolero, siempre atendiendo a la reducciónde costos de explotación. Las decisiones de planificaciónconsisten en determinar el caudal de los flujos depetróleo y los tiempos de operación/cierre para cadapozo del reservorio en cada período. Tales decisionesson basadas en consideraciones prácticas, las cualesevitan que la presión del pozo decaiga más allá de unmínimo valor admisible. También, debe recordarse queel 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 encuestión. Por otro lado, se asume comportamiento no-lineal de la presión del pozo para el cálculo de laproducción de petróleo tal como lo describe la Ecuación3, y también es asumido que el valor de las constantesgeológicas del pozo es conocido. El modelo matemáticoimplementado en este trabajo para representar yoptimizar al problema es de tipo MINLP (Mixed-IntegerNon-Linear Programming).
ecuación 2
Gorrini, Federico Alberto _____________________________________________________________________________________3
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
6/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
INTRODUCCIÓN TEÓRICA
El trabajo considera la planificación a corto plazode la producción petrolera de los pozos de un reservoriosobre un horizonte temporal H dividido en NP períodosde duración T .
Así es como, dada la demanda de petróleo para undado período de tiempo, las decisiones de planificacióninvolucran conocer el caudal de flujo de petróleo y los
tiempos de operación/cierre de los pozos. La principalrestricción impuesta al problema es evitar que lapresión del pozo decaiga más allá de una presiónmínima admisible, debajo de la cual la producción seconsidera económica y/o técnicamente inviable;además de lograr satisfacer la demanda de petróleoexistente.
Las suposiciones realizadas en este documentopara realizar el modelamiento incluyen:
1. Pozos múltiples de un reservorio comúnproducen de manera completamenteindependiente unos de otros.
2. Comportamiento no-lineal de la presión delpozo 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 cambianpara cada período de tiempo debido acambios estacionales.
ECUACIÓN MATEMÁTICO DE PERFORMANCE DE UN POZO
Se define al potencial de flujo como:
La interpretación física de este parámetro es que es el trabajo requerido por una unidad de volumen defluido -en un proceso sin fricción- para transportarladesde un estado de referencia hasta el punto encuestión. De esta forma, la ecuación de la Ley de
Permeabilidad enunciada por D´Arcy puede serexpresada como:
Al aplicar esta formulación al caso del flujo de
petróleo desde un reservorio hacia el pozo de petróleoconviene enfrentar el problema en coordenadascilíndricas.
Se asume que el flujo en pozos verticales sólo se daen planos horizontales. Además, al asumir propiedadeshomogéneas en sentido angular, el flujo sólo seproducirá en sentido radial. Estas asunciones puedenexpresarse matemáticamente como:
Así, la ecuación de D´Arcy se reduce a:
DEFINICIÓN DEL SISTEMA
PermeabilidadEs una propiedad de la roca la cual mide la capacidad detransferencia que tienen los fluidos para atravesar laroca.
Gorrini, Federico Alberto _____________________________________________________________________________________4
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
7/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
p r - p w
r 2
r 1
pr
pw
p r e s s u r e
distance
Espesor El espesor útil es la longitud vertical de la formaciónpermeable que contiene el área de drenaje por el cual elfluido fluye hacia el pozo. Esto no es solamente elintervalo punzado o el espesor de formaciónencontrado por el pozo.
Radio de drenajeDistancia comprendida desde el centro del pozo hasta ellímite de volumen de roca permeable al cual se leinterrumpe la presión estática (r2).
Presión promedio de reservorioEs la presión promedio -asumida estática- que sedesarrolla a una distancia del pozo igual o superior alradio de drenaje (p2).
Presión dinámica de fondo Es la presión desarrollada en el límite de la formación, osea en las paredes del pozo donde se encuentran lospunzados (p1).
Figura A.1.1. Perfil de presión desarrollada entre el reservorio (radiode drenaje) y el centro del pozo de petróleo
Factor de daño Durante las operaciones de perforación y completación,la permeabilidad de la formación de la sección cercanaal pozo puede ser alterada. A esta zona alterada depermeabilidad se le llama dañada. La invasión de fluidosde perforación, dispersión de las arcillas (hinchamiento),la presencia de revoque y cemento y la presencia de unagran saturación de gas alrededor del pozo, son algunos
de los factores responsables por la reducción de lapermeabilidad en los alrededores del pozo. Sinembargo, un exitoso tratamiento de estimulación talcomo acidificar o fracturar, resulta en un incremento dela permeabilidad en los alrededores del pozo,reduciendo el daño de la formación (skin).
Analicemos que es lo que ocurre con lapotencialidad de flujo en las inmediaciones de un pozopetrolero.
Al asumirse que no existe flujo axial y que sólo se
da en dirección axial.
En cuanto a la velocidad, es sabido que el caudalde flujo de petróleo es igual para cualquier secciónequiradial.
Al ser . De esta manera, se termina asumiendo .
Igualmente, este constituye un factor despreciableen fenómenos de flujo a través de medios permeables,sobre todo frente a las presiones con las que se trabajaen este caso. Por su parte, el término de diferencial de
presión es el más importante. En este término debeconsiderarse la pérdida de presión del factor de daño,además de la pérdida ocasionada por la turbulencia eninmediaciones del pozo.
Gorrini, Federico Alberto ____________________________________________________________________________________ _5
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
8/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
h
r 1
r 2
r
q1 q2
r 1
r 2
qmax
0
f l o w r a t e
well buttom pressurepatm
pr
Figura 3. Diagrama de flujo de un fluido en dirección radial hacia el centro de dos geometrías cilíndricas concéntricas
Los términos de skin y turbulence pseudoskin suelen ser despreciados. Así es como la potencialidad deflujo se reduce al diferencial de presión.
Después,
Aranofsky y Jenkins (1954) desarrollan un modeloIPR (Inflow Performance Relationship) dependiente deltiempo. El Inflow Performance Relationship es unarelación funcional entre el caudal de producción y lapresión dinámica de fondo. Esta relación, desarrolladapor Gilbert (1954), se define en el rango de presión
desde la presión del reservorio y la presión atmosférica.
El caudal correspondiente a la presión atmosféricacomo presión dinámica de fondo es el flujo potencialmáximo mientras que el caudal a la presión delreservorio es siempre cero.
Figura 4. Flujo de petróleo desde el reservorio hacia el fondo de la
perforación del pozo
Según Aranofsky y Jenkins,
Nótese que la ecuación es tiempo-dependiente
sólo hasta . Al reemplazar estasexpresiones:
Gorrini, Federico Alberto ____________________________________________________________________________________ _6
ecuación 4
ecuación 5
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
9/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
Índice de Productividad
Este índice deriva de una aproximación paradescribir la performance de influjo de un pozopetrolero. Éste fue desarrollado asumiendo que:
1. Flujo radial alrededor del pozo.2. Flujo monofásico.3. Distribución homogénea de la permeabilidad
del reservorio.4. Formación saturada de fluido.
La ecuación de la Ley de D´Arcy puede ser ajustadaa un fluido compresible utilizando un factor de volumenpromedio de formación de gas.
siendo el Índice de Productividad .
Definiendo las constantes y se obtiene larepresentación empleada:
MODELO MATEMÁTICO
El modelo considera la operación cíclica de cadapozo i en cada período de tiempo j . Se asume, paratodos los pozos, que la presión del pozo al comienzo y alfinal de cada período de tiempo -y, en consecuencia, alfinal y al principio de cada ciclo- será la misma e igual ala máxima presión admisible por el pozo. En cadaperíodo de tiempo, habrá un máximo de ciclos paracada pozo pero en este modelo no existen variablesasociadas para todos los ciclos posibles, debido aque los caudales de flujo y los tiempos de operaciónserán los mismos para cada ciclo de un dado período de
tiempo. El número real de ciclos para cada pozo dentrode un período de tiempo ( ) será determinado por elesquema de optimización. Finalmente, en lugar deutilizar la Ecuación 3, la expresión en el pozo seráaproximada por una expresión no-lineal que involucraun término el cual contiene una potencia constantepositiva del tiempo de operación. Esta expresiónconstituye el núcleo del modelo matemático ya que esla representación de su comportamiento durante losciclos 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 ( , , )
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
Gorrini, Federico Alberto ____________________________________________________________________________________ _7
ecuación 6
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
10/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
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
Coeficientes de costos asociados al caudal de producción de petróleo y al mantenimiento del pozosegún se encuentre produciendo o cerrado, respectivamente.
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 delcampo petrolero es:
ecuación M1
ecuación M5
ecuación M6
ecuación M4
ecuación M3
ecuación M2
ecuación M7
Gorrini, Federico Alberto _____________________________________________________________________________________8
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
11/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
La producción de petróleo de cada pozo -el caudalde flujo de petróleo multiplicado por el tiempo total deoperación del pozo en el período j - es calculada a travésde la Ecuación M2. La Ecuación M3 atiende a satisfacerla demanda de petróleo en cada período de tiempo j .
El número de ciclos para cada período de tiempoes dado por la Ecuación M4 y la Ecuación M5. Nóteseque si el número de ciclos en un dado período detiempo 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úmerode ciclos y los tiempos de operación/cierre de cadapozo, tal como lo indica la Ecuación M6 y la EcuaciónM7 . Nótese que si un pozo permanece cerrado duranteun dado período de tiempo, el número de ciclos ( ) escero y el tiempo de operación para el pozo dentro deeste período es nulo. En tal caso, el lado derecho de laEcuación 6 consiste en un término bilineal que incluyedos variables, las cuáles son ambas iguales a cero. Paraevitar 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 laEcuación M7 , el problema es resuelto utilizando lavariable . Nótese que mientras el pozo i permanececerrado en un período j , , y si se encuentraabierto al flujo mientras que alguno de losotros será igual a 1.
La Ecuación M8 establece que la suma de tiemposque el pozo i permanece en operación/cerrado dentrode 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 depresión del pozo por debajo del valor de la mínimapresión admisible, condición dictada por la EcuaciónM9. Tal máximo de tiempo de operación es dado por laEcuación M10.
El tiempo de cierre para cada pozo i , debe ser almenos igual al tiempo mínimo que permita a la presióndel pozo incrementarse hasta el valor máximoadmisible, según lo expresa la Ecuación M11. Tal tiempomínimo es dado por la Ecuación M12. La Ecuación M13
permite el cálculo de la presión de flujo del pozo
ecuación M10
ecuación M11
ecuación M9
ecuación M8
ecuación M12
ecuación M13
ecuación M14
ecuación M15
ecuación M16
ecuación M17
Gorrini, Federico Alberto _____________________________________________________________________________________9
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
12/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
después de la operación del mismo y justo antes decerrarlo durante un ciclo de operación.
Finalmente, las restricciones de la Ecuación M14 yla Ecuación M15 representan el comportamiento de lasprincipales variables del problema en términos de lavariable binaria . Estas dictaminan que el tiempototal de operación de un pozo i no puede superar al
tiempo total del período T ; y que el caudal de operaciónno puede ser superior al caudal máximo impuesto, conexcepción de los casos donde el pozo permanececerrado durante todo el período de tiempo, donde seexige a éste que sea nulo. De esta forma, la produccióndel reservorio queda modelada matemáticamente y, lascondiciones para optimizarla se encuentran declaradas.
EJEMPLOS NUMÉRICOS Y RESULTADOS
El modelo propuesto es resuelto a través delsistema de modelamiento GAMS. Se implementó elsolver DICOPT (CPLEX + CONOPT ), el cual utiliza pordefecto las subrutinas CPLEX y CONOPT para laresolución de los subproblemas MIP y NLP,respectivamente. En todas las ejecuciones realizadas, laspropiedades geológicas (comportamiento de la presiónde flujo del pozo) son diferentes para cada pozo delreservorio. Más aún, los coeficientes de costos varían nosólo para cada pozo, sino que también lo hacen en cadaperíodo de tiempo.
En el ejemplo en estudio se trabaja con unreservorio explotado a través de un número total de 10pozos petroleros. El Anexo 1 (GAMS Oilfield ProductionOptimization Programming) contiene la programaciónejecutada en el software GAMS. Allí se detalla elpropósito de los distintos segmentos de laprogramación.
Para facilitar el ingreso de datos a GAMS así comotambién su egreso y posterior visualización se recurre aun software con una interface más interactiva yasequible a cualquier tipo de usuario tal como lo es MSExcel . Este software permite cargar los datos de ingresoen cómodas tablas. Una vez ejecutada la programaciónen GAMS también posibilita el acceso a los resultados através de tablas, así como también la construcción degráficos para su interpretación. El procedimiento paragenerar la interfaz MS Excel - GAMS para la carga dedatos es descripto en el Anexo 2 (MS Excel - GAMS
interfaz), mientras que la construcción de la interfazGAMS - MS Excel para la extracción de resultados y suvisualización en este último se describe en el Anexo 3 (GAMS - MS Excel interfaz). Cabe recordar que enambos casos es el software GAMS el que se encuentra“a cargo” de la ejecución y que MS Excel sólo atiende alas órdenes de éste.
CONCLUSIÓN
Es posible resolver el modelo satisfactoriamenteutilizando el solver DICOPT . Para el caso particularmostrado, éste halla el punto óptimo de operación entan sólo 4 iteraciones y 0.015 s de tiempo de resolución.Sin embargo, si bien el modelo pudo ser resuelto bajolos valores de prueba propuestos, éste es altamente no-lineal, por lo que la modificación de estos valores hallevado en la mayoría de los casos a la incapacidad delsolver DICOPT para dar con la solución. Es por ello que
en el futuro, deberán implementarse métodos capacesde lidiar con estas no-linealidades, lo cual seguramentemejorará mucho el desempeño de la programación.
Además, la aplicación del solver BARON haresultado inútil dado los extensos tiempos deresolución. A continuación se presenta las gráficasobtenidas de los resultados del ejemplo numéricopropuesto.
Gorrini, Federico Alberto ____________________________________________________________________________________10
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
13/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
5,860
5,880
5,900
5,920
5,940
5,960
5,980
6,0006,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [ p s i ]
5,860
5,880
5,900
5,920
5,940
5,960
5,980
6,0006,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [ p s i ]
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
W e l l B
o r e P r e s s u r e [ p s i ]
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
W e l l B o r e P r e s s u r e [ p s i ]
RESULTADOS. PERFORMANCE DE LA PRESIÓN EN CADA POZO
Estos gráficos contienen la evolución de la presiónde cada pozo del reservorio en el tiempo. En todos loscasos ésta ha prevalecido por encima de la mínimapresión admisible, además de haberse recuperado alfinal de cada ciclo hasta alcanzar la misma presión delreservorio. En el caso del pozo 5 en el período 1 se
observa que la presión del pozo logra recuperarse antesde la culminación de cada ciclo.
En los casos en que el pozo permaneció cerrado yfuera de operación durante todo un período, su presiónha 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 _____________________________________________________________________________________11
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
14/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
5,860
5,880
5,900
5,920
5,940
5,960
5,980
6,0006,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [ p s i ]
5,860
5,880
5,900
5,920
5,940
5,960
5,980
6,0006,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [ p s i ]
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
W e l l B o r e P r e s s u r e [ p s i ]
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
W e l l B o r e P r e s s u r e [ p s i ]
5,860
5,880
5,900
5,920
5,940
5,9605,980
6,000
6,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [
p s i ]
5,860
5,880
5,900
5,920
5,940
5,9605,980
6,000
6,020
0 15 30 45 60 75 90 105 120
W e l l B o r e P r e s s u r e [
p s i ]
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 _____________________________________________________________________________________12
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
15/36
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
P r o d u c t i o n [ b b l ]
0
2,000
4,000
6,000
8,000
10,000
12,000
0 15 30 45 60 75 90 105 120
P r o d u c t i o n [ b b l ]
0
5,000
10,000
15,000
20,000
25,000
0 15 30 45 60 75 90 105 120
P r o d u
c t i o n [ b b l ]
0
200
400
600
800
1,000
1,200
0 15 30 45 60 75 90 105 120
P r o d u
c t i o n [ b b l ]
RESULTADOS. PRODUCCIÓN ACUMULADA DE CADA POZO EN FUNCIÓN DEL TIEMPO
La evolución de la producción acumulada de cadapozo se encuentra en éstos gráficos. Aquí puede verseque la producción de cada pozo aumenta de maneralineal mientras éste se mantiene en operación, productode que su caudal de flujo sea constante; mientras que seestanca cuando el pozo permanece cerrado yrecuperando presión.
Sin embargo, que el caudal de producción de cadapozo sea constante no implica que estecomportamiento se replique para la completitud delreservorio, de hecho, el caudal de petróleo brindado porel reservorio completo es variable en el tiempo y hastallega 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 ____________________________________________________________________________________13
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
16/36
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
P r o d u c t i o n [ b b l ]
0
2,000
4,000
6,000
8,000
10,000
12,000
0 15 30 45 60 75 90 105 120
P r o d u c t i o n [ b b l ]
0
500
1,000
1,500
2,000
2,500
3,000
0 15 30 45 60 75 90 105 120
P r o
d u c t i o n [ b b 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
P r o d u c t i o n [ b b
l ]
0
2,000
4,000
6,000
8,000
10,000
12,00014,000
16,000
18,000
20,000
0 15 30 45 60 75 90 105 120
P r o d u c t i o n [ b b l ]
0
100
200
300
400
500
600
700
800
900
1,000
0 15 30 45 60 75 90 105 120
P r o
d u c t i o n [ b b 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 ____________________________________________________________________________________14
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
17/36
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 primerodefinirse 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 indicardentro 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 variabl es 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 ____________________________________________________________________________________15
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
18/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
de las variables. Esto reduce el tiempo de cómputo yaumenta 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 deresolució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 deDICOPT
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 ySNOPT . 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 empleode 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 ____________________________________________________________________________________16
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
19/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
1 $TITLE Oilfield Explotation Process Optimization2
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 Plow25 $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;
3637 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 ____________________________________________________________________________________17
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
20/36
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);
8182 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 ____________________________________________________________________________________18
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
21/36
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 ____________________________________________________________________________________19
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
22/36
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;
158159 * 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 Options171
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 ____________________________________________________________________________________20
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
23/36
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 have216 * 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 ____________________________________________________________________________________21
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
24/36
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
248249 $CALL GDXXRW.EXE Results.gdx Index=Index!A1
250
Gorrini, Federico Alberto ____________________________________________________________________________________22
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
25/36
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, loscuales 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, silo 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 quepermite 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 finalmenteserá:
$ 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 ____________________________________________________________________________________23
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
26/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
En itemslist debe especificarse las variables de lascuales 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 detablas. 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 ladisposició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 ____________________________________________________________________________________24
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
27/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
Tabla A.2.3. Especificación de datos en el archivo Data.xls x de MS Excel, solapa “Data”.
g mm lf
P up
[psi] Demand C 1 C 1rec
1 2 1 2
w1 6,009 1 75,000 w1 0.05457 w1 27.285 w1 2.916 3.500 w1 50.05 22.75
w2 6,009 2 50,000 w2 0.11079 w2 33.237 w2 5.833 6.708 w2 75.83 85.93
w3 6,009 w3 0.06512 w3 26.056 w3 3.215 4.256 w3 60.26 20.32
w4 6,009 w4 0.83125 w4 25.265 w4 5.219 4.566 w4 42.23 30.86
w5 6,009 w5 0.10658 w5 36.215 w5 6.226 3.265 w5 96.26 50.64w6 6,009 w6 0.12569 w6 42.259 w6 5.232 7.626 w6 21.26 45.26
w7 6,009 w7 0.72652 w7 26.266 w7 9.265 8.265 w7 35.47 52.14
w8 6,009 w8 0.23523 w8 21.265 w8 4.226 5.265 w8 65.26 50.82
w9 6,009 w9 0.15832 w9 18.265 w9 1.261 2.265 w9 82.26 70.46
w10 6,009 w10 0.09535 w10 29.215 w10 2.265 3.266 w10 24.15 54.87
elt
P low
[psi] T cycle [days] 60 C 2 C 2rec
1 2
w1 5,880 w1 0.28742 w1 0.28742 w1 71.75 76.53
w2 5,880 w2 0.23786 w2 0.23786 w2 95.66 102.84
w3 5,880 w3 0.25035 w3 0.25035 w3 84.64 70.25
w4 5,880 w4 0.33265 w4 0.33265 w4 24.26 45.26
w5 5,880 w5 0.28351 w5 0.28351 w5 42.32 42.24
w6 5,880 w6 0.24862 w6 0.24862 w6 15.73 34.89
w7 5,880 w7 0.35542 w7 0.35542 w7 56.25 46.65
w8 5,880 w8 0.35156 w8 0.35156 w8 51.25 75.25
w9 5,880 w9 0.29556 w9 0.29556 w9 65.82 61.25
w10 5,880 w10 0.21518 w10 0.21518 w10 49.25 27.13
Gorrini, Federico Alberto __________________________________________________________________________________________________________________________________________25
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
28/36
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
29/36
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 programarsela 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, silo 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 deGAMS 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 tressolapas: “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 ____________________________________________________________________________________26
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
30/36
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,949w6 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.00w4 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 ____________________________________________________________________________________27
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
31/36
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 decada 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 encada 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 puntosde 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 eltiempo 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 ____________________________________________________________________________________28
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
32/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Planning.
0 to
60
1 2
0 30 6030 + to
to
1 2 3 4
0 to
20 20 + to
40 6040 + to
21 3 4 5 6
Time [days]
Gorrini, Federico Alberto ____________________________________________________________________________________29
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
33/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization
0 to
60
1 2
0 30 6030 + to
to
1 2 3 4
0 to
20 20 + to
40 6040 + to
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 realizaruna 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 esté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 ____________________________________________________________________________________30
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
34/36
UNIVERSIDAD NACIONAL DEL SUR Oilfield Production Optimization
0 to
60
1 2
0 30 6030 + to
to
1 2 3 4
0 to
20 20 + to
40 6040 + to
21 3 4 5 6
Production [bbl]
Gorrini, Federico Alberto ____________________________________________________________________________________31
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
35/36
-
8/18/2019 Oilfield Production Planning - Federico Gorrini
36/36
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