Motivación
Uno de los componentes más importantes de la optimización de la productividad de campos de petróleo y gas es el análisis de datos históricos de producción. Técnicas de análisis de datos de producción sólidas, como el análisis de la curva de declinación (DCA), ayudan a los equipos de ingeniería de producción a evaluar métricas de productividad de pozos, tasas de declinación, tasas promedio de producción y producción acumulada. Más importante aún es que estas técnicas permiten predecir la producción futura de petróleo y gas para evaluar con precisión el rendimiento financiero actual y la viabilidad a largo plazo de un activo.
Las técnicas de análisis de datos de producción emplean modelos matemáticos basados en parámetros de rendimiento de pozos para ajustar datos históricos de producción de petróleo y gas a través de análisis de regresión. El DCA, por ejemplo, utiliza funciones matemáticas que muestran declinación exponencial. La ecuación de Arps es posiblemente el enfoque de DCA más popular y ampliamente adoptado en la industria del petróleo y gas. Al igual que la mayoría de los modelos de DCA, Arps aporta varias ventajas importantes respecto de técnicas más complejas, como el análisis de transientes de tasa. En primer lugar, el DCA tiene baja carga computacional y es fácil de implementar. En segundo lugar, el DCA emplea un pequeño número de parámetros, de modo que los resultados de la regresión son más fáciles de interpretar. En tercer lugar, el DCA puede gestionar conjuntos de datos de gran tamaño, como datos históricos densos de producción de pozos únicos o múltiples. No obstante, al igual que con otros modelos, la calidad de los datos de entrada resulta fundamental para obtener un modelo de DCA físicamente válido para análisis de datos, predicción de producción y análisis económico de petróleo.
En este white paper, explicamos cómo utilizar MATLAB® para desarrollar y desplegar un flujo de trabajo de análisis de datos de producción de petróleo y gas basado en DCA. Examinamos cómo dar formato y preprocesar conjuntos de datos históricos de producción, crear modelos de regresión personalizados, generar una predicción de producción, y realizar un análisis económico de petróleo. El objetivo principal es demostrar cómo MATLAB ayuda a resumir y abordar las complejidades del flujo de trabajo aplicando prácticas de desarrollo de software simples y sólidas. Con fines de demostración, utilizaremos informes históricos de producción de petróleo y gas disponibles públicamente en el sitio web de la Comisión de Ferrocarriles de Texas (TRRC).
App web de análisis de datos de producción
Detallaremos los principales pasos del flujo de trabajo para realizar análisis de datos de producción de petróleo y gas en MATLAB, junto con algunas prácticas recomendadas útiles en el desarrollo e implementación de software para diseñar y personalizar aplicaciones de software más fiables y mantenibles para producción de petróleo y gas.
Aunque la app se despliega online, usuarios finales pueden interactuar con la app web de la misma forma que con una aplicación de escritorio tradicional. La figura 1 muestra la pestaña Import de la app donde se pueden arrastrar y soltar registros históricos de producción. Una vez que se agrega un conjunto de datos, la app efectúa diversas operaciones de preprocesamiento de datos y representa los datos resultantes en las gráficas correspondientes. Los procesos relativos a la importación y preprocesamiento de datos se explican en detalle en las secciones Importación de datos y Preprocesamiento de datos, respectivamente.
Después de importar los datos, se pueden realizar análisis de regresión en DCA. La figura 2 muestra la pestaña Regression donde se puede ajustar la configuración de regresión y seleccionar la tasa promedio de producción o los datos de producción acumulada de una fase de fluido en particular, ya sea petróleo o gas, para ajustar el modelo. Tenga en cuenta que la app también permite seleccionar los puntos de inicio y fin del intervalo de regresión, lo que hace el análisis más flexible para crear regresiones en DCA para periodos de tiempo específicos de interés y evaluar el comportamiento de la producción, por ejemplo, antes y después de una operación de intervención en un pozo. Una vez definidos todos los parámetros, se puede hacer clic en la opción Fit Data del algoritmo de optimización subyacente para estimar el conjunto de parámetros de DCA que mejor se ajuste al conjunto de datos. Luego, la app muestra un resumen de los parámetros utilizados, junto con el coeficiente de determinación (R2) de cada fase de fluido. Ofrecemos más detalles sobre el proceso de DCA en la sección Análisis de la curva de declinación.
Para crear una proyección de producción de petróleo y gas basada en el modelo de DCA, simplemente se define cuántos años se desean predecir, y la app calcula el promedio de las tasas de producción y la producción total para ambas fases de fluido por separado. Como se aprecia en la figura 3, la app permite especificar el tiempo de la predicción en años utilizando un control deslizante o un campo de texto numérico. A medida que se modifica la opción de tiempo de predicción preferida, las tasas de producción promedio y las gráficas de producción acumulada se actualizan automáticamente.
Realizar un análisis económico de petróleo basado en datos de predicción de producción es la etapa final de este flujo de trabajo de análisis de datos de producción. Gestores de activos utilizan el análisis económico de petróleo para tomar decisiones bien fundamentadas en cada etapa, desde el análisis en nivel del campo hasta el análisis de pozos individuales. Para crear una nueva predicción en la app, los datos se transfieren instantáneamente a la pestaña Economics, donde se pueden modificar parámetros de impuestos, gastos de capital (CAPEX), gastos operativos (OPEX), y precios del petróleo y gas. Luego, la app actualiza automáticamente la curva de valor actual neto (VAN) en la gráfica calculando internamente el VAN, punto de equilibrio, punto de recesión (si corresponde), tasa interna de retorno y rentabilidad sobre la inversión. La figura 4 muestra un ejemplo de curva de VAN que pasa de negativo a positivo (punto de equilibrio), alcanza un valor máximo (VAN máximo) y comienza a descender, lo que sugiere que operar el pozo será demasiado costoso a partir de ese momento. La app también muestra el VAN más alto previsto, junto con la fecha estimada en que tendrá lugar. Estos detalles de implementación se desarrollan en la sección Análisis económico.
Examinemos algunas prestaciones de desarrollo de software de MATLAB utilizadas en la app web que desarrollamos para ejecutar el flujo de trabajo de análisis de datos de producción de petróleo y gas.
Arquitectura de software
Los componentes de la app presentan una relación lineal, donde la entrada de un componente depende de la salida de otro componente. Observe cómo, por ejemplo, la pestaña DCA depende de los datos que proporciona la pestaña Import, que, a su vez, depende del conjunto de datos proporcionados. La pestaña Economics depende de la predicción de producción suministrada por la pestaña Forecast, del mismo modo que esta depende del modelo de DCA proporcionado por la pestaña DCA. Este es un ejemplo clásico de patrón de arquitectura de software de tuberías y filtros. Dado que esta arquitectura de software es muy común, basamos la lógica de la aplicación en conceptos de patrones de diseño. La tabla 1 detalla los componentes, o filtros, junto con sus funciones, entradas y salidas.
Componente | Funciones | Entradas | Salidas |
Importación de datos |
|
|
|
Preprocesamiento de datos |
|
|
|
Análisis de la curva de declinación |
|
|
|
Predicción de producción |
|
|
|
Análisis económico |
|
|
|
Además de estos componentes, establecimos dos módulos generales: Análisis y Resultados. Combinados, estos elementos del conjunto abarcan las funciones principales de una parte determinada del proceso. La figura 5 muestra la arquitectura de software.
La arquitectura de tuberías y filtros ofrece varias ventajas, como la capacidad de dividir flujos de trabajo complejos en componentes independientes y colaborativos, lo que facilita la depuración y mantenimiento del software. También se puede ampliar la funcionalidad del programa agregando nuevos componentes. El único requisito es que los nuevos componentes deben contar con interfaces de programación de aplicaciones (API) compatibles con las tuberías, es decir, conectores de software. Una forma de ampliar el subsistema Results, por ejemplo, es incluir un componente Reports que utiliza MATLAB Report Generator™ para generar informes que estén diseñados específicamente para profesionales de ingeniería de producción o gestores de activos.
Datos de producción de muestra
Creamos una muestra de 200 pozos de petróleo negro de Eagle Ford Shale, en el sur de Texas, seleccionados al azar utilizando la herramienta Public GIS Viewer de la TRRC.
Sirviéndonos de la herramienta Public GIS Viewer de la TRRC, generamos una muestra de 200 pozos de petróleo negro de Eagle Ford Shale, en el sur de Texas, seleccionados al azar. Luego, creamos la gráfica de burbujas de producción de petróleo acumulada que se muestra en la figura 6 con Mapping Toolbox™.
La producción promedio diaria de petróleo de los pozos de Karnes County de esta muestra, que produce petróleo de la formación Eagle Ford Inferior, se muestra en la figura 7. Observe la disminución de la tasa de producción diaria de petróleo, que se asemeja mucho a un decrecimiento de ley de potencias, exactamente lo que describe el DCA de Arps.
Para el método de análisis de datos de producción de este white paper, seleccionamos aleatoriamente un pozo de la cantidad total de pozos mencionada anteriormente. Para mantener su anonimato, simplemente nos referiremos a este pozo como el “pozo de muestra” a lo largo de este white paper. No se mencionarán los metadatos, como operador y ubicación.
Flujo de trabajo de análisis de datos de producción
En la sección anterior se han sentado las bases del flujo de trabajo de análisis de datos de producción adoptado en la app web. Esta sección se centra en la implementación de software de los componentes mencionados en la sección Arquitectura de software, y explica detalladamente cómo utilizar MATLAB para crear la funcionalidad requerida para cada componente. Asumimos que los lectores tienen un conocimiento básico de programación informática, e incluimos enlaces a recursos adicionales con más detalles sobre estos pasos.
El flujo de trabajo se divide en cinco secciones distintas. Importación de datos describe el proceso de importación de conjuntos de datos de la TRRC en MATLAB, y algunos de los desafíos que implica este tipo específico de estructura de datos. Preprocesamiento de datos explora las distintas opciones disponibles en MATLAB para depuración de datos y detección de valores atípicos, y analiza cómo automatizar este proceso. Análisis de la curva de declinación y Predicción de producción destallan la definición de modelos de regresión personalizados en MATLAB, como DCA de Arps, y su aplicación a la predicción de producción, respectivamente. Análisis económico explica cómo utilizar indicadores económicos definidos por usuarios para obtener información financiera a partir de predicciones de producción de petróleo y gas.
Importación de datos
Las sólidas prestaciones de importación de datos de MATLAB facilitan el uso de tipos de datos típicos, como hojas de cálculo de Excel®, archivos de valores separados por comas (CSV), archivos de imagen, archivos de audio y vídeo, y muchos otros. Aunque nos centramos en datos almacenados localmente, debemos señalar que MATLAB incluye interfaces integradas para servicios en la nube como Amazon® Web Services, Microsoft® Azure® y Google Cloud Platform™ (consulte Uso de MATLAB y Simulink en la nube), además de bases de datos relacionales y NoSQL a través de Database Toolbox™.
Cómo preparar un conjunto de datos de un pozo de muestra
El registro de producción de petróleo y gas del pozo de muestra se almacena en un archivo CSV local que utiliza el formato de plantilla de la TRRC. Aunque las tablas de archivos CSV se pueden leer e importar directamente en MATLAB, esta plantilla en particular presenta algunas dificultades. En primer lugar, incluye una mezcla de datos numéricos, como producción neta de petróleo y gas, y metadatos, como nombre del operador y ubicación, entre otros. En segundo lugar, ciertos puntos de datos están incompletos y aparecen etiquetados como NO RPT
. Por último, el formato de fecha y hora es un tanto inusual, ya que no indica el día exacto en que se ha registrado un determinado informe. La figura 8 muestra el conjunto de datos del pozo de muestra.
A pesar de estas dificultades, MATLAB puede procesar este conjunto de datos con Import Tool. Se trata de una aplicación gráfica que permite personalizar aún más los parámetros de importación indicando los tipos de datos que corresponden a cada columna, definiendo el intervalo de datos de interés, y seleccionando si se deben incluir filas donde faltan datos.
En este ejemplo, seleccionamos Number
como el tipo de datos apropiado, y resaltamos los datos de producción de petróleo y gas de la tabla. Después, definimos un tipo de fecha y hora personalizado para la columna 1 de modo que MATLAB pueda leer y procesar las fechas de los informes correctamente. Luego, cambiamos el nombre de las columnas 1, 2 y 4, el conjunto de datos de interés, por reportDates
, netOil
y netGas
, respectivamente.
Cómo crear una función de importación personalizada
Después de seguir los pasos para preparar e importar correctamente el conjunto de datos del pozo de muestra, utilizamos funcionalidades de generación de código en MATLAB para crear la función wellDataParser
, que realiza automáticamente los pasos de preparación de datos descritos anteriormente. La función wellDataParser
se puede utilizar para importar conjuntos de datos de la TRRC procedentes de archivos CSV directamente desde la línea de comandos de MATLAB. Esta función devuelve una tabla que contiene datos no procesados que se pueden utilizar en un análisis, como se detalla en la sección Arquitectura de software.
Dado que wellDataParser
se crea como una función de caja blanca, puede modificarla para que admita más funcionalidades. En este caso, por ejemplo, calculamos el último día de la fecha de un informe dado y refactorizamos todas las fechas de los informes en reportDates
, como muestra la figura 9.
Sugerencia: Puede utilizar almacenes de datos junto con Parallel Computing Toolbox™ para importar cientos o miles de conjuntos de datos de la TRRC simultáneamente.
Preprocesamiento de datos
Como hemos visto en la última sección, los conjuntos de datos a veces contienen elementos no válidos o incompletos, como valores Inf
o NaN
. Estos elementos se pueden eliminar fácilmente aplicando la función integrada de MATLAB rmmissing
al conjunto de datos. Pero los datos también pueden contener anomalías que son difíciles de identificar con una inspección visual.
Cómo depurar un conjunto de datos de producción
Los datos irregulares se pueden depurar con la app Data Cleaner. Esta app explora y visualiza datos, y define reglas para detectar valores atípicos. La figura 10 muestra la app Data Cleaner con un análisis visual de netOil
y netGas
del pozo de muestra. Después de definir las acciones necesarias para purgar el conjunto de datos, utilizamos la app Data Cleaner para crear la función personalizada wellDataCleaner
, que contiene las acciones de preprocesamiento que habíamos realizado en la app.
Cómo ampliar datos
El conjunto de datos ya se ha depurado. El siguiente paso es definir las variables para realizar análisis de regresión en DCA; concretamente, tiempo operativo (es decir, tiempo de flujo), tasas promedio diarias de petróleo y gas, y producción acumulada de petróleo y gas. Dado que wellDataCleaner
es una función de caja blanca, agregamos el código necesario para calcular las características ausentes flowTime
, oilRate
, gasRate
, cumOil
y cumGas
, y las insertamos en la tabla de salida para cumplir con el requisito del plan de arquitectura de software. La figura 11 muestra la tabla preprocesada del pozo de muestra.
Progreso de la arquitectura de software
El desarrollo de la cadena de tareas de análisis de datos de producción se ilustra en la figura 12, donde las funciones de MATLAB personalizadas wellDataParser
y wellDataCleaner
representan los componentes de software para importación y preprocesamiento de datos. La flecha azul representa la tabla no procesada, que es el resultado de la función anterior y se utiliza como entrada para la siguiente función. En MATLAB, la relación entre estas dos partes se define de la siguiente manera:
>> well = wellDataParser("sampleWellData.csv"); >> well = wellDataCleaner(well);
El código anterior ilustra claramente la conexión entre los componentes de importación y preprocesamiento de datos. Observe que wellDataCleaner
utiliza eficazmente la memoria modificando el objeto well directamente en lugar de devolver uno nuevo.
Sugerencia: MATLAB ofrece numerosos ejemplos de uso de la app Data Cleaner. Consulte la documentación de MATLAB para obtener más información.
Análisis de la curva de declinación
Un gran número de profesionales consideran las ecuaciones de Arps como modelo estándar para el DCA en el análisis de datos de producción de petróleo y gas. La ecuación más popular es la declinación hiperbólica basada en la tasa de producción que describe el decrecimiento de la producción promedio diaria a lo largo del tiempo como una función de tres parámetros de regresión —tasa inicial \( q_{i} \) (volumen/día), tasa de declinación \( D \) (1/día) y factor \( b \)— y con respecto a un tiempo de referencia \( t_{i} \) (días). Esta ecuación se define como se indica a continuación:
\( q(t; t_{i}) = \frac{q_{i}}{[1 \ + \ bD(t \ - \ t_{i})]^{\frac{1}{b}}} \)
donde \( q(t; t_{i}) \) representa la tasa de producción cuando \( t > t_{i} \). La segunda ecuación relacionada con la producción acumulada se obtiene después de integrar la ecuación 1 a lo largo del tiempo, desde el tiempo de referencia \( t_{i} \) hasta el tiempo \(t\) > \( t_{i} \). Como resultado, la ecuación de Arps basada en la producción se define como se indica a continuación:
\( Q(t; t_{i}) = Q_{i} + \frac{q_{i}^{b}}{D(b \ - \ 1)}(q^{1-b}(t; t_{i}) - q_{i}^{1-b}) \)
donde \( Q(t;t_{i}) \) representa la producción acumulada cuando \( t>t_{i} \). Observe que la ecuación 2 incorpora la producción acumulada inicial \( Q(t_{i}) ≡ Q_{i} \) como parámetro. Este parámetro puede obtenerse a partir del registro de producción de un pozo o definirse como parámetro de regresión adicional. La tabla 2 resume las unidades que adoptamos para el análisis DCA.
Fluido | Tasa de producción | Producción acumulada |
Petróleo | Barriles por día (bbl/día) |
Barriles (bbl) |
Gas | Millones de pies cúbicos estándar por día (MMscf/día) |
Millones de pies cúbicos estándar (MMscf) |
Cómo crear modelos de regresión en DCA
Creamos modelos de regresión en DCA personalizados basados en las ecuaciones 1 y 2 para cada fase de fluido de manera independiente con la app Curve Fitter de Curve Fitting Toolbox™. Asumiendo que la tabla well
está en el área de trabajo, explicaremos paso a paso las cuatro etapas para desarrollar una regresión en DCA basada en la tasa de producción promedio diaria de petróleo:
- Paso 1: Importe
well
, y asigne datos de x e y awell.flowTime
ywell.oilRate
, respectivamente. Observe que la tasa de producción de petróleo alcanza su punto máximo y luego comienza a disminuir aproximadamente a los 120 días; por lo tanto, no debe incluir ningún dato antes de este punto. - Paso 2: Utilice la opción Custom Equation para crear el modelo de DCA basado en la tasa de producción. MATLAB intentará efectuar la regresión de la manera correcta, pero probablemente fallará, debido a problemas de convergencia provocados por uno o varios parámetros de regresión que se acercan demasiado a cero, o que se vuelven negativos o extremadamente grandes. Este problema se puede resolver definiendo límites físicos relevantes para cada parámetro. Una buena estimación inicial para cada parámetro también ayudará a que el algoritmo converja más rápidamente.
- Paso 3: Compruebe las estadísticas sumarias de la operación, y asegúrese de que los parámetros de regresión resultantes sean razonables y estén dentro de los límites especificados. MATLAB mostrará los valores y un intervalo de confianza del 95%. La suma de errores al cuadrado resultante, R2, y el error cuadrático medio (RMSE) permiten comprender mejor si la regresión es válida. MATLAB se refiere a estas estadísticas sumarias como precisión del ajuste (
gof
). - Paso 4: Utilice la opción Export para generar una función que contenga el modelo de regresión resultante junto con las estadísticas
gof
.
Repetimos los mismos pasos para crear el resto de las regresiones en DCA. De este modo, creamos y modificamos las funciones getDCAParamRate
y getDCAParamProd
para ejecutar regresiones en DCA para las fases de petróleo y gas, respectivamente, basadas en las ecuaciones 1 y 2. La figura 13 muestra la app Curve Fitter que indica dónde comenzar cada paso.
La tabla 3 muestra los parámetros de regresión y \( R^{2} \) de cada regresión en DCA y fase de fluido del pozo de muestra. Dado que, por lo general, los datos de producción acumulada son más suaves que las tasas promedio diarias, no es sorprendente que el DCA basado en la producción genere las puntuaciones \( R^{2} \) más altas.
DCA basado en la tasa | DCA basado en la producción | |||
Petróleo | Gas | Petróleo | Gas | |
\( Q_{i} \) | 192095 | 84475.5 | 192095 | 84475.5 |
\( q_{i} \) | 1530.6 | 984.06 | 1098.68 | 698.46 |
\( b \) | 1.1398 | 1.279 | 0.9388 | 0.7806 |
\( D \) | 0.0089 | 0.004 | 0.0045 | 0.0015 |
Puntuación \( R^{2} \) | 0.945 | 0.784 | 0.999 | 0.997 |
Asignamos a las funciones getDCAParamRate
y getDCAParamProd
la única responsabilidad de calcular los parámetros de DCA de las ecuaciones 1 y 2. Dado que no pueden predecir productividad acumulada ni producción promedio diaria, es necesario poner en funcionamiento modelos de DCA desarrollando funciones de MATLAB que puedan aceptar los parámetros de regresión en DCA como entradas y generar como salida el resultado requerido, por ejemplo, tasa de flujo o volumen.
A tal fin, agregamos dos funciones a la arquitectura, flowRate(t,dcaParam)
y cumulProd(t,dcaParam)
, donde t
es un escalar positivo o un vector de escalares positivos, y dcaParam
es una estructura de MATLAB que contiene \( q_{i} \), \(Q_{i} \), \( b \), \(D \) y \( t_{i} \). Estas dos funciones son funciones de utilidad, lo que significa que no dependen necesariamente de un conjunto de datos específico, sino de parámetros de regresión en DCA. En adelante, flowRate
y cumulProd
se pueden empaquetar juntas en un paquete de utilidad independiente.
Empleamos estas dos funciones para comparar la regresión en DCA del conjunto de datos basada en la producción y en la tasa. En las figuras 14a y 14b se presenta una comparación de los métodos de DCA basados en la producción y en la tasa para examinar la producción promedio diaria de petróleo y gas. Ambos modelos de regresión funcionan bien para estimar tasas de producción, y generan resultados que son bastante comparables.
Las figuras 15a y 15b comparan la producción acumulada de petróleo y gas prevista, respectivamente, con la producción histórica informada. Al igual que con las tasas promedio diarias, ambos modelos de DCA predicen la producción acumulada muy bien y muestran un resultado muy similar.
Progreso de la arquitectura de software
La figura 16 ilustra el estado actual del flujo de trabajo. La adición de un componente de software de utilidad, que el componente de DCA utiliza para calcular los valores esperados de tasa promedio y producción acumulada, es un punto clave que debemos señalar.
Podríamos haber incluido este paquete de utilidad directamente en el componente. Sin embargo, dado que la mantenibilidad y responsabilidad eran la base del diseño, decidimos mantenerlo por separado. Este enfoque aumentó significativamente la mantenibilidad, ya que los componentes se pueden crear y mantener separadamente siempre que sus firmas de función no cambien. Asimismo, agregamos flexibilidad para poder incorporar otros modelos de DCA en el futuro sin perturbar el flujo de trabajo.
Además, mantener las funciones de utilidad separadas permite que el código sea más legible en general, de modo que, si otra persona desea trabajar en él, sabrá exactamente de qué tarea se encarga cada parte, lo que reduce el tiempo de codificación.
Un diseño de software modular, como el que se sugiere aquí, es mucho más fácil de mantener y desarrollar que comprimir cientos o miles de líneas de código en funciones “todopoderosas” que son difíciles de probar y administrar, aunque pueda parecer más costoso en un principio.
Predicción de producción
Para este componente de software, utilizamos parámetros de regresión derivados del componente de DCA para estimar la producción futura de petróleo y gas empleando las funciones de utilidad flowRate
y cumulProd
analizadas en la sección anterior. Dado que todas las funciones necesarias para generar una predicción de producción ya estaban disponibles, tuvimos que escribir el código para invocarlas.
Al hacerlo, creamos la función generateForecast
, que toma los parámetros de regresión en DCA well
de cada fluido y solicita el tiempo de predicción como argumentos de entrada, para generar una predicción de producción completa efectuando las siguientes tareas internas:
- Generación de un vector de tiempos de flujo futuros
- Generación de un vector de fechas futuras
- Cálculo de tasas de declinación de petróleo y gas
- Cálculo de producción acumulada de petróleo y gas
Como resultado, generateForecast
devuelve una nueva tabla con el mismo formato que la tabla de entrada original, con la salvedad de que las métricas de producción son valores prospectivos generados con el modelo de DCA.
La siguiente sección describe cómo funciona generateForecast
. Asumimos que la predicción de producción comienza un mes calendario después de la última fecha informada, y que se informará mensualmente hasta que alcance el tiempo previsto.
Generación de predicción de producción
La figura 17 muestra la predicción de petróleo y gas resultante del pozo de muestra para los próximos 50 años, comenzando el 31 de enero de 2024. En comparación con el DCA basado en la tasa, el modelo de DCA basado en la producción prevé una disminución ligeramente más pronunciada en la producción de petróleo a lo largo del tiempo, como se observa en la figura 17a. No obstante, la figura 17b muestra que la diferencia de las proyecciones parece ser más pronunciada para la producción promedio diaria de gas.
La diferencia entre los modelos de predicción se hace más significativa para la producción acumulada de petróleo y gas, como muestran las figuras 18a y 18b. Tenga en cuenta que la diferencia en la producción acumulada prevista es de más de 50.000 barriles de petróleo y 300 millones de pies cúbicos estándar de gas, lo que puede introducir incertidumbres en la evaluación económica de la previsión.
Dado que diferentes modelos pueden producir diferentes estimaciones de producción, es fundamental experimentar con diferentes modelos de DCA y seleccionar el que más se acerque al comportamiento de la producción del campo que se está estudiando. Una forma de tomar esta decisión es emplear los datos de producción de pozos existentes para facilitar la comparación de los modelos. Con este fin, se pueden agregar más modelos de DCA al componente de DCA, pero esto aumentará la complejidad de las funciones. Para evitarlo, puede recurrir a un diseño orientado a objetos donde cada objeto corresponda a un modelo de DCA. De esta manera, aumenta la mantenibilidad y fiabilidad del sistema, ya que estos objetos se pueden gestionar por separado, al igual que la propia arquitectura de software de tuberías y filtros.
Progreso de la arquitectura de software
La figura 19 muestra el progreso de la arquitectura de software. Como mencionamos anteriormente, el componente de predicción de producción emplea el paquete de utilidad de DCA creado en la sección anterior para generar una previsión de producción de petróleo y gas.
Análisis económico
El último paso del flujo de trabajo es convertir una predicción de producción en métricas financieras. Gestores de activos suelen utilizar el análisis económico de petróleo para decidir si es rentable mantener un pozo en funcionamiento, o retirar las inversiones en un pozo. Los inversores utilizan este análisis para evaluar la viabilidad de adquirir pozos existentes. No obstante, la fiabilidad de todo análisis económico de petróleo depende en gran medida de la precisión de la predicción de producción y las métricas financieras asociadas.
Ejemplo de evaluación
Supongamos que un inversor está interesado en comprar un pozo. El propietario del activo acepta venderlo por 1,8 millones de dólares (USD). El objetivo es determinar si esta inversión es sólida desde un punto de vista financiero. Para ayudar a tomar una mejor decisión, el propietario ofrece información adicional:
- Coste de operación del pozo (OPEX): 2000 dólares/mes
- Impuesto a la producción de petróleo: 36%
- Impuesto a la producción de gas: 16%
Además, el departamento de finanzas recomienda considerar una tasa de descuento del 10%, y unos precios promedio de petróleo y gas de 80 dólares/barril y 2,78 dólares/mil pies cúbicos, respectivamente, para el análisis. También resultaría interesante introducir la variabilidad de los precios del petróleo y gas para comprender mejor la resiliencia de la inversión cuando se enfrente a fuertes fluctuaciones del mercado.
Incluimos la funcionalidad de variabilidad de precios en la función econAnalysis
de MATLAB, que creamos para realizar todo el análisis económico. Esta función toma una tabla de predicciones y una estructura de MATLAB que contiene los parámetros financieros requeridos, tasas de descuento, CAPEX, OPEX y tasas de impuestos, entre otros, y calcula el flujo de caja neto y acumulado, los puntos de recesión y umbral de rentabilidad, y la tasa interna de retorno (TIR). Para calcular la TIR, usamos xirr
de Financial Toolbox™ .
Resultados del análisis económico de petróleo
La figura 21 muestra el VAN resultante para este proyecto, del que se pueden extraer varias conclusiones. En primer lugar, si decide continuar con el proyecto, podría alcanzar el umbral de rentabilidad para o alrededor del 11 de febrero de 2026. La TIR es otro gran indicador de salud de un proyecto. Otro dato interesante es que ganará cerca de 5 millones de dólares USD si mantiene el proyecto por lo menos hasta diciembre de 2053, es decir, durante casi 30 años. Tenga en cuenta que este análisis no considera ningún gasto futuro relacionado con mantenimiento o aumento de costes operativos, de modo que la rentabilidad optimista puede ser errónea. No obstante, la curva de VAN muestra que podría ganar alrededor de 3 millones de dólares USD para el 31 de diciembre de 2031, es decir, ocho años después de comenzar el proyecto, lo que representaría una rentabilidad sobre la inversión del 166,7%.
Progreso de la arquitectura de software
El análisis económico marca la finalización del flujo de trabajo de análisis de datos de producción. Como muestra la figura 22, la arquitectura se mantuvo sin cambios en esta etapa, ya que la función de análisis económico de petróleo no requirió desarrollar o integrar ningún componente de utilidad externo. No obstante, es posible agregar módulos complementarios y paquetes de utilidad.
Resumen
En este white paper hemos desarrollado una arquitectura de software de tuberías y filtros para automatizar el análisis de datos de producción de petróleo y gas. Hemos examinado minuciosamente y detallado a fondo cada paso del flujo de trabajo, para mostrar cómo usamos MATLAB para realizar tareas complejas que habrían necesitado horas de codificación en otro lenguaje de programación.
También hemos demostrado cómo crear automáticamente funciones de MATLAB que pueden ejecutar tareas complejas con una sola llamada a función. Asimismo, hemos expuesto las ventajas de usar un diseño de software modular en términos de mantenibilidad y fiabilidad, y que, en el futuro, se podrían necesitar formatos de datos adicionales, técnicas de depuración, modelos de DCA y otros paquetes de utilidad para crear gráficas y figuras.
Por último, cabe señalar que hemos decidido deliberadamente no analizar prácticas avanzadas de diseño de software, como el diseño orientado a objetos, ya que este white paper se ha creado como material introductorio. No obstante, MATLAB es un lenguaje de programación orientada a objetos, y puede aplicar lo aprendido en este white paper para crear arquitecturas de software adaptadas a casos prácticos específicos, como despliegue en la nube y generación de código C/C++.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)