universidad central del ecuador facultad de … · al doctor rolando sáenz, tutor de tesis por su...

125
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA INSTITUTO DE INVESTIGACIÓN Y POSGRADO (IIP) SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO PARA UNA CORRIENTE DE HIDROCARBUROS JUAN CARLOS PROAÑO CÁRDENAS TUTOR: DR. PhD. ROLANDO SÁENZ ANDRADE Trabajo presentado como requisito parcial para la obtención del grado de: MAGÍSTER EN PROCESOS INDUSTRIALES Quito Ecuador 2015

Upload: dangmien

Post on 18-Sep-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA

INSTITUTO DE INVESTIGACIÓN Y POSGRADO (IIP)

SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO

PARA UNA CORRIENTE DE HIDROCARBUROS

JUAN CARLOS PROAÑO CÁRDENAS

TUTOR: DR. PhD. ROLANDO SÁENZ ANDRADE

Trabajo presentado como requisito parcial para la obtención del grado de:

MAGÍSTER EN PROCESOS INDUSTRIALES

Quito – Ecuador

2015

ii

DEDICATORIA

Al terminar una etapa más en la vida, quiero dedicar éste trabajo a mis padres, Héctor Alfredo

y Blanca Lucila. A mi esposa Dora Irene, a mis hijas Emilia Simone y Milagros Valentina.

A mis hermanos: Nancy Carlota, Ana Guadalupe, Héctor Oswaldo (+), Héctor Alfredo y Luis

Roberto, que supieron apoyarme en cada una de las decisiones tomadas.

Juan Carlos Proaño Cárdenas

iii

AGRADECIMIENTOS

A la UNIVERSIDAD CENTRAL DEL ECUADOR en especial al Instituto Superior de

Posgrado e Investigación.

A nuestros maestros quienes supieron transmitir sus conocimientos y experiencias.

Al Doctor Rolando Sáenz, tutor de tesis por su asesoramiento científico y su predisposición

permanente en aclarar cada una de las dudas y por sus substanciales sugerencias durante la

redacción de la misma.

A mis amigos y compañeros de trabajo en Andespetroleum. Ing. Fabián Freire, por aquellas

travesías vividas cada mañana en los viajes que realizábamos desde la ciudad de Ambato para

asistir a clases, sus consejos y su apoyo incondicional en cada una de las experiencias

subsistidas.

Al Ing. Tony Barahona, por su apoyo y colaboración en las materias de procesamiento de

crudo para su comprensión.

Al Ing. Galo Rodríguez, por su apoyo valioso en la parte de control automático.

Finalmente, a todas aquellas personas, colegas y amigos que me brindaron su apoyo, tiempo e

información para el logro de este trabajo.

Juan Carlos Proaño Cárdenas

iv

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, PROAÑO CARDENAS JUAN CARLOS en calidad de autor del trabajo de investigación

o tesis realizada sobre SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN

TRIFÁSICO PARA UNA CORRIENTE DE HIDROCARBUROS, por la presente autorizo a

la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los contenidos que me

pertenecen o de parte de los que contiene esta obra, con fines estrictamente académicos o de

investigación.

Los derechos que como autor me corresponden, con excepción de la presente autorización,

seguiraán vigentes a mi favor, de conformidad con lo establecido en los artículos 5, 6, 8, 19 y

demás pertinentes de la Ley de Propiedad Intectual y su Reglamento.

Quito, 20 de Abril de 2015

JUAN CARLOS PROAÑO CÁRDENAS

C.C. 1803439916

v

CERTIFICACIÓN

Certifico que el presente trabajo fue realizado en su totalidad por el Sr. Ing. JUAN CARLOS

PROAÑO CÁRDENAS como requisito parcial a la obtención del título de MAGISTER EN

PROCESOS INDUSTRIALES

Quito, 23 de Abril de 2015

Dr. Phd. Rolando Sáenz Andrade

R

vi

CONTENIDO

1. EL PROBLEMA ...............................................................................................................2 1.1 TEMA DE INVESTIGACIÓN ................................................................................... 2

1.2 PLANTEAMIENTO DEL PROBLEMA ................................................................... 2

1.3 HIPÓTESIS ................................................................................................................. 2

1.4 ANTECEDENTES ...................................................................................................... 2

1.5 OBJETIVOS................................................................................................................ 3

1.5.1 Objetivo general. .................................................................................................. 3

1.5.2 Objetivos específicos. .......................................................................................... 3

1.6 JUSTIFICACION........................................................................................................ 3

2. MARCO TEÓRICO .........................................................................................................4 2.1. El petróleo. .................................................................................................................. 4

2.2. Flujo multifásico. ........................................................................................................ 4

2.3. Patrones de flujo. ......................................................................................................... 4

2.4. Facilidades de superficie. ............................................................................................ 7

2.4.1. Manifold. .............................................................................................................. 7

2.4.2. Separadores. ......................................................................................................... 8

2.4.3. Botas desgasificadoras. ........................................................................................ 8

2.4.4. Tanques. ............................................................................................................... 9

2.4.5. Tratadores. ......................................................................................................... 10

2.4.6. Unidades recuperadoras de vapor. ..................................................................... 10

2.4.7. Bombas. ............................................................................................................. 11

2.4.8. Válvulas de control. ........................................................................................... 11

2.5. Coeficiente de Flujo. ................................................................................................. 13

2.6. Procesos de separación .............................................................................................. 13

2.6.1. Tipos de procesos de separación. ....................................................................... 13

2.6.2. Separación por creación de fase. ........................................................................ 15

3. MODELO MATEMATICO SEPARADOR TRIFASICO .........................................20 3.1. Propiedades de los fluidos. ........................................................................................ 20

3.1.1. Propiedades del petróleo. ................................................................................... 20

3.1.2. Propiedades del gas. ........................................................................................... 22

3.1.3. Propiedades del agua.......................................................................................... 24

3.2. Factor de compresibilidad del gas, ecuación de estado de Peng - Robinson. .......... 25

3.3. Proceso del sistema de separación ............................................................................ 27

3.3.1. Optimización del sistema. .................................................................................. 27

3.4. Leyes fundamentales del modelamiento ................................................................... 28

3.5. Métodos de simulación.............................................................................................. 31

3.6. Descripción del modelo ............................................................................................. 31

3.7. Área del segmento circular. ....................................................................................... 33

3.8. Volumen del segmento circular del separador. ......................................................... 33

4. MODELO NUMERICO SEPARADOR TRIFASICO ...............................................36 4.1. Evaluación del proceso.............................................................................................. 36

4.2. Desarrollo del modelo ............................................................................................... 37

vii

4.2.1. Cálculo del volumen en el separador. ............................................................... 40

4.3. Flujo de crudo en el vertedero. .................................................................................. 41

4.4. Sistema de control ..................................................................................................... 42

4.4.1. Flujo de salida para líquidos y gases.................................................................. 43

4.5. Parámetros de variación. ........................................................................................... 44

5. PROGRAMA COMPUTACIONAL Y VERIFICACION .........................................46 5.1. Algoritmo de programación. ..................................................................................... 46

5.1.1. Algoritmo de programación propiedades del petróleo. ...................................... 46

5.1.2. Algoritmo de programación propiedades del gas. ............................................. 47

5.1.3. Algoritmo programación factor de compresibilidad del gas. ............................. 49

5.1.4. Algoritmo de programación propiedades del agua. ........................................... 51

5.2. Estrategia de control del nivel de cámara de crudo. ................................................. 52

5.3. Estrategia de control del nivel colchón de agua cámara separación. ........................ 52

5.4. Estrategia de control de la presión del separador. ..................................................... 52

5.5. Diagrama general estrategia de control del separador trifásico. ............................... 54

5.6. Lenguaje de programación ........................................................................................ 55

5.7. Resultados obtenidos en la simulación...................................................................... 55

5.8. Datos de entrada. ....................................................................................................... 55

5.9. Perturbaciones. .......................................................................................................... 56

5.9.1. Perturbación de la fase gas. ................................................................................ 56

5.9.2. Perturbación del agua. ........................................................................................ 58

5.9.3. Perturbación crudo. ............................................................................................ 58

5.10. Verificación de resultados ......................................................................................... 61

5.10.1. Propiedades físico químicas. .............................................................................. 61

5.10.2. Caudales proporcionados por el programa. ....................................................... 63

6. CONCLUSIONES Y RECOMENDACIONES ...........................................................66 6.1. Conclusiones ............................................................................................................. 66

6.2. Recomendaciones ...................................................................................................... 66

BIBLIOGRAFÍA ................................................................................................................67

viii

LISTADO DE TABLAS

Tabla 2.1 Coeficiente de flujo Cv…………………………………………….........……...…14

Tabla 3.1 Coeficientes de la densidad del agua.……………………...…...…………………25

Tabla 5.1 Cromatografía del gas……………………………...……………………………...55

Tabla 5.2 Parámetros mecánicos del separador………………...…………………….……...52

Tabla 5.3 Parámetros de ls válvulas de control………………...…………….……………...56

Tabla 5.4 Perturbación fase gas…………………………………...……………………...….56

Tabla 5.5 Perturbación del colchón de agua……………………...……………………....….58

Tabla 5.6 Perturbación del nivel de crudo………………………...……………….…….…..58

Tabla 5.7 Comparación densidad del gas……………………………………………………62

ix

LISTADO DE FIGURAS

Figura 2.1 Flujo tipo burbuja……………………………………………..……………..……..5

Figura 2.2 Flujo intermitente tipo pistón….…………………………………………..…...….5

Figura 2.3 Flujo estratificado suave……………………………………………..………….…6

Figura 2.4 Flujo estratificado ondulante………………………………………………….……6

Figura 2.5 Flujo intermitente tipo tapón…………………………………………………….…6

Figura 2.6 Flujo anular……………………………………………………………………..….7

Figura 2.7 Flujo tipo rocío……………………………………………………………………..7

Figura 2.8 Manifold de distribución…………………………………………………………...7

Figura 2.9 Separadores tipo horizontal y vertical……………………………………………...8

Figura 2.10 Bota desgasificadora……………………………………………………………...8

Figura 2.11 Clases de tanques.………………..........……… ....………………..………..……...9

Figura 2.12 Tratadores de fuego……………………………………………………………...10

Figura 2.13 Unidad recuperadora de vapores………………………………………………...10

Figura 2.14 Válvula de control…………………………………………………………….…12

Figura 2.15 Características de flujo de las válvulas de control………………………………12

Figura 2.16 Separación por creación de fase…………………………………………………14

Figura 2.17 Separación por adición de fase……………………………………………….…14

Figura 2.18 Separación por barrido…………………………………………………………..15

Figura 2.19 Separación por acción de un agente sólido……………………………………...15

Figura 2.20 Clasificación de los separadores………………………………………………...16

Figura 2.21 Separador líquido gas……………………………………………………………16

Figura 2.22 Separador gas-líquido-líquido………………………………………………..….17

x

Figura 2.23 Suposición de flujo en un separador trifásico...………………………………....17

Figura 2.24 Trayectoria crítica real de las gotas y burbujas en un separador trifásico…....…18

Figura 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifásico….…..……..18

Figura 2.26 Control de nivel en un separador trifásico………………………………………19

Figura 3.1 Volumen de control arbitrario para la aplicación de la ecuación del balance de

momentum……………………………………………………………………..…30

Figura 3.2 Variables presentes en un separador trifásico……………………………..……...32

Figura 5.1 Algoritmo propiedades del crudo..……………………………………………….46

Figura 5.2 Algoritmo densidad del gas……………………………………………………....47

Figura 5.3 Algoritmo viscosidad del gas…………………………………………………….48

Figura 5.4 Algoritmo factor de compresibilidad Z del gas…………………………………..49

Figura 5.5 Algoritmo propiedades del agua…………………..……………………………...51

Figura 5.6 Control de nivel cámara de crudo………………………………………...………52

Figura 5.7 Control de nivel cámara de separación…………………………………………...52

Figura 5.8 Control de presión del separador…………………………………………………53

Figura 5.9 Control del separador trifásico……………………………………………………54

Figura 5.10 Caudal de ingreso y salida de gas…….………………………………………....57

Figura 5.11 Presión del sistema………………………….……………………..…………….57

Figura 5.12 Caudal de ingeso y salida de agua………………………………………………59

Figura 5.13 Altura del colchón de agua de la cámara de separación………………………...59

Figura 5.14 Caudal de ingreso y salida de crudo…………………………………………….60

Figura 5.15 Altura de la cámara de crudo………………………………………………...….60

Figura 5.16 Interfase gráfica de las propiedades del fluido………………………………….61

xi

Figura 5.17 Caudales de salida de crudo a distintas presiones…………………….…………63

Figura 5.18 Caudales de salida de gas a diferentes presiones………………………………..64

Figura 5.19 Nomograma del caudal de recuperación de crudo y gas………………………..65

xii

ANEXOS

Anexo A. Constantes físicas de los gases ........................................................................... 70

Anexo.B. Cromatografía gases............................................................................................ 72

Anexo.C. Coeficiente Cv de las válvulas de control tipo globo ......................................... 73

Anexo D. Coeficientes presión óptima. ............................................................................... 74

Anexo E. Variación de niveles en el separador trifásico. ..................................................... 75

Anexo F. Desarrollo de la solución en Matlab. ................................................................... 77

Anexo G. Propiedades del separador. ................................................................................ 106

Anexo H. Caudal recuperado a distintos cortes de agua. ................................................... 107

xiii

RESUMEN

SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO

PARA UNA CORRIENTE DE HIDROCARBUROS

Una de las principales etapas de la producción de hidrocarburos es la separación de primaria

de petróleo, agua y gas.

En el análisis del comportamiento de los separadores trifásicos, se diseño un programa

computacional que permite predecir el comportamiento del fluido y sus propiedades físico-

químicas con el uso de correlaciones.

Se realizó un programa computacional que permite evaluar el desempeño del separador,

tomando en cuenta los parámetros de operación, tales como: presión, temperatura, gravedades

específicas y tasas de fluidos provenientes del pozo.

El programa de evaluación implementado en SIMULINK - MATLAB, permite efectuar las

diversas simulaciones cuyos resultados son presentados en el siguiente trabajo.

DESCRIPTORES:

CORRIENTE DE HIDROCARBUROS / SEPARADORES TRIFASICOS /

PROPIEDADES FISICO-QUÍMICAS / PATRONES DE FLUJO / PROCESOS DE

SEPARACIÓN / FACTOR DE COMPRESIBILIDAD DEL GAS.

xiv

ABSTRACT

NUMERICAL SIMULATION OF A THREE PHASE BREAKUP PROCESS FOR A

HYDROCARBON STREAM

One of the most important stages of the hydrocarbons production is the primary breakup of

oil, water and gas.

In the behavioral analysis of three phase of separators, a computing programme was designed

which allows to predict the fluid behaviour and its physics and chemistry properties using

correlations.

A computing programme was made to evaluate the separator performance, keeping in mind

the operating parameters, such as: pressure, temperature, specific gravities and fluid rates

coming from well.

The implemented evaluation program in SIMULINK - MATLAB, allows achieving various

simulations whose results were introduced in the following search.

DESCRIPTORS:

HIDROCARBON STREAM / THREE PHASE BREAKUP / PHYSICS AND CHEMISTRY

PROPERTIES / FLOW PATTERNS / BREAKUP PROCESS / GAS COMPRESSIBILITY

FACTOR.

xv

CERTIFICACIÓN DE TRADUCCIÓN

Yo, Alfredo Homero Albán Bautista, en mi calidad de profesor de inglés de la Universidad de

las Fuerzas Armadas-ESPE Extensión Latacunga, certifico que el RESÚMEN

“SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO PARA

UNA CORRIENTE DE HIDROCARBUROS” ha sido traducido al idioma inglés en forma

completa, conforme consta su versión en el idioma español.

Latacunga, 11 de Noviembre del 2014

Lic. Alfredo H. Albán B.

xvi

1

INTRODUCCIÓN

El petróleo extraído está acompañado con agua en forma de emulsión la misma que requiere

un tratamiento, el contenido de agua incrementa con el tiempo y varía desde 1% hasta más

allá del 90%.

La función de las facilidades de producción es separar las corrientes multifásicas,

provenientes de los yacimientos a través de los pozos de producción, en sus tres componentes

o fases (gas, crudo y agua).

El flujo multifásico está caracterizado por patrones de flujo que son la distribución de cada

una de las fases en el interior de las tuberías y por ende en los equipos de superficie, donde la

presión es uno de los factores importantes dentro de un sistema multifásico.

La separación física de estas fases es una de las operaciones esenciales en la producción,

tratamiento, transporte de crudos y gases. Si la calidad de una de las corrientes producidas es

deficiente, las corrientes que salen del proceso generan diversos problemas como formación

de líquidos en el transporte de gas, vaporización de livianos durante el transporte del petróleo,

altos costos en el tratamiento del agua en los residuales de aceite.

De ésta separación depende el incremento de los costos de transportación, tratamiento del

agua, almacenamiento y el tiempo útil de los equipos.

Por tal razón se ha desarrollado un simulador matemático para el análisis del flujo multifásico

en base de un modelo de ecuaciones diferenciales y utilizando el programa Matlab para la

discretización numérica. Puesto que éste es un software de acceso libre, el usuario tiene

accesibilidad al código fuente y puede realizar cambios al programa, con la finalidad de

optimizar y obtener un programa más confiable.

Bajo esta premisa es necesario lograr la caracterización de los sistemas existentes mediante el

modelado, el cual depende en gran medida de la información obtenida del proceso. Teniendo

a disposición las leyes físicas y dinámicas que gobiernan dicho proceso, así como datos

fidedignos del proceso.

Para lo cuál es necesario un conocimiento de las leyes físicas del proceso de separación, la

conservación de la masa, gases ideales y la disponibilidad de los datos geométricos del

separador. Donde la interactuación de todos estos elementos permite efectuar de manera

precisa el modelaje del comportamiento de dicho proceso.

2

CAPÍTULO I

1 EL PROBLEMA

Resumen

Éste capítulo está orientado a la búsqueda de una modelación del proceso de separación

trifásico para corrientes de hidrocarburos.

1.1 TEMA DE INVESTIGACIÓN

Simulación numérica de un proceso de separación trifásico para una corriente de

hidrocarburos.

1.2 PLANTEAMIENTO DEL PROBLEMA

La industria del petróleo ha llevado a que las etapas de separación en superficie adquiera una

gran importancia ya que permiten aumentar la calidad del crudo.

Una fase muy importante dentro de la deshidratación de crudo es la separación de cada una

de las corrientes producidas, y de esta manera maximizar la recuperación de hidrocarburos

líquidos.

Los resultados presentados en la simulación servirán como punto de partida para el diseño y

posteriormente como comparativo entre el estado real de la planta con el de su diseño.

1.3 HIPÓTESIS

La información relativa a la separación trifásica de petróleo debe ser consolidada de modo

que permita evaluar y estimar el comportamiento de cada una de las corrientes presentes a

partir de la información existente.

1.4 ANTECEDENTES

Existen publicaciones referentes a la separación trifásica de hidrocarburos. A continuación se

describen las más relevantes:

a) Estrategias de Controle Contra Intermitencia Severa na Alimentacao de Separadores

Offshore, Autor Diego Domenico. Este trabajo muestra el desarrollo de modelos para la

separación de cada una de las tres fases presentes en la emulsión (agua-gas-aceite), por

medio de la separación de un hidrociclón, separador trifásico y bi-fásico.

3

b) Correlaciones Numéricas PVT, Autor: Carlos Banzer. En el presente trabajo describe una

revisión de las propiedades físicas de los fluidos y las correlaciones aplicadas para la

detrminación de las mismas., tanto para elsubsuelo como en superficie.

c) API 12J., Specification and Oil and Gas Separators. Séptima Edición.

d) ISA-75.01.01-2007. Flow Equations for Sizing Control Valves.

Estas normas presentan criterios en el dimensionamiento y selección de válvulas.

1.5 OBJETIVOS

1.5.1 Objetivo general.

Simular el proceso de separación de una corriente de hidrocarburos.

1.5.2 Objetivos específicos.

a) Caracterizar las condiciones operativas del proceso de separación y estabilización de una

corriente de hidrocarburos.

b) Realizar un algoritmo computacional para la evaluación del equipo de separación.

c) Determinar las condiciones operativas del sistema.

1.6 JUSTIFICACION

El presente trabajo es un aporte a la industria del petróleo, en especial al proceso de

deshidratación. En el cual se recopila la información existente pertinente a la separación

trifásica de hidrocarburos. Además se muestran relaciones matemáticas, derivadas de cada

una de las correlaciones PVT para las distintas fases presentes.

Lo cual nos permite predecir de una manera más acertada las propiedades físico-químicas en

cada una de las corrientes presentes, y como complemento a la utilización de la simulación

numérica hace de este trabajo una herramienta útil que facilita el análisis de los distintos

equipos de separación.

4

CAPÍTULO II

2. MARCO TEÓRICO

Resumen

En este capítulo se describe una breve reseña histórica de los primeros pozos petroleros

perforados en el Ecuador. Los principales equipos que conforman las plantas de

procesamiento primario en superficie y cada uno de los diferentes tipos de procesos de

separación.

2.1. El petróleo.

El petróleo es una mezcla homogénea de compuestos orgánicos insolubles en agua, en

condiciones normales es un fluido bituminoso que presenta una gran variedad en sus

características como: color, viscosidad, densidad, entre otras.

En el Ecuador, el primer pozo petrolero lo perfora la compañía Anglo Ecuadorian Limited en

1911 en la península de Santa Elena, llamándolo Ancón-1, el cual dio una producción de 42

barriles diarios.

En la región oriental fue la compañía Shell la que perforó el primer pozo exploratorio en el

año 1946, el Vuano-1 y encontró petróleo no comerciable. Desde esa fecha inicia la industria

petrolera en el Ecuador.

Los reservorios de petróleo producen una mezcla (emulsión) entre el petróleo y el agua, que

tiene características no newtonianas cuyas tipologías físico-químicas depende de las

condiciones de presión y temperatura.

2.2. Flujo multifásico.

El flujo de fluido multifásico es un fluido simultáneo de gas libre y líquidos a través de una

tubería, donde el gas puede estar mezclado en forma homogénea con el líquido o puede

coexistir formando oleajes en el que el gas empuja al líquido, o el gas y el líquido fluyen en

forma paralela.

2.3. Patrones de flujo.

En el flujo multifásico existe un tipo de flujo para cualquier instante de tiempo, los patrones

de flujo se clasifican:

5

a) Flujo tipo burbuja

b) Flujo intermitente tipo pistón

c) Flujo estratificado suave

d) Flujo estratificado ondulante

e) Flujo intermitente tipo tapón

f) Flujo anular

g) Flujo tipo rocío

Flujo tipo burbuja.

El líquido ocupa el volumen de la sección transversal y el flujo de gas forma burbujas a lo

largo del tope de la tubería, las velocidades del gas y líquido son iguales, para mayores

detalles referirse a [7], páginas 126-130. En la figura que sigue se ilustra este tipo de flujo.

Figura. 2.1 Flujo tipo burbuja.

Flujo intermitente tipo pistón.

A mayor cantidad de gas las burbujas se unen y forman secciones alternadas de gas y líquido

a lo largo de la tubería, con una fase continua de líquido en el fondo. En la figura 2.2 se

muestra este tipo de flujo. Mayor información podrá encontrarse en [7], páginas 126-130.

Figura. 2.2 Flujo intermitente tipo pistón.

Flujo estratificado suave.

En este tipo de fluido el gas fluye a lo largo de la tubería en el tope y el líquido en el fondo.

La fase es relativamente suave y la fracción ocupada por cada fase tiende a permanecer

constante, para mayor referencia consultar [7], páginas 126-130. En la siguiente figura se

muestra este tipo de flujo.

6

Figura. 2.3 Flujo estratificado suave.

Flujo estratificado ondulante.

Cuando el flujo de gas es mucho mayor que el de líquido, el gas se mueve más rápido que el

líquido y la fricción entre estos dos fluidos forman olas de líquido, en la figura 2.4 se ilustra

esta clase de fluido. Mayor detalle consultar [7], páginas 126-130.

Figura. 2.4 Flujo estratificado ondulante.

Flujo intermitente tipo tapón.

Cuando el gas alcanza cierto valor crítico, las crestas de las olas de líquido forman tapones

espumosos. En la estructura del tapón de gas el líquido es presionado de manera que el gas

ocupa la mayor parte del área de flujo, como se muestra en la figura 2.5. Mayor referencia

[7], páginas 126-130.Figura 2.1 Flujo intermitente tipo tapón

Figura. 2.5 Flujo intermitente tipo tapón

Flujo anular.

El líquido fluye como una película anular a lo largo de la tubería, mientras que el gas fluye

como un núcleo a alta velocidad en el centro de la misma, mayor referencia ver [7], páginas

126 -130. En la siguiente figura se muestra este tipo de flujo.

7

Figura. 2.6 Flujo anular.

Flujo tipo rocío.

Cuando la velocidad del gas es lo suficientemente alta, toda la película de líquido se separa

de la pared y es arrastrada por el gas como gotas. La figura 2.7 ilustra este tipo de flujo.

Mayor información ver [7], páginas 126-130.

Figura. 2.7 Flujo tipo rocío.

2.4. Facilidades de superficie.

Una facilidad de producción tiene como finalidad recolectar, direccionar, medir, procesar,

distribuir y transportar la producción de los pozos productores.

2.4.1. Manifold.

El manifold de distribución es un arreglo de tuberías donde converger cada uno de los pozos

productores, cuya función es direccionar la producción de los pozos hacia los diferentes

procesos del sistema, donde la presión es ecualizada al ingreso de los separadores.

Cada uno de los pozos puede ser direccionado a un separador de prueba con la finalidad de

ser evaluados en su capacidad de producción. En la figura 2.8 se ilustra el manifold de

distribución, mayor detalle ver referencia bibliográfica [8].

Figura. 2.8 Manifold de distribución.

8

2.4.2. Separadores.

La separación de mezclas constituye uno de los procesos más complejos debido a los

múltiples componentes de los que están constituidos los flujos multifásicos, y a las

diferencias de densidades presiones de vapor y otras características físicas.

La separación de cada una de las fases es una operación básica en el procesamiento,

producción y tratamiento del petróleo, incluye enriquecimiento, concentración y purificación

que son los procesos químicos más importantes. Para mayor detalle ver [8]. En la siguiente

figura se muestra este tipo de separadores.

Figura. 2.9 Separadores tipo horizontal y vertical.

2.4.3. Botas desgasificadoras.

Son elementos que sirven para separar el gas disuelto en el petróleo, es un cilindro provisto

de deflectores donde se realiza la etapa de separación. Mayor detalle ver referencia

bibliográfica [8]. En la figura 2.10 se muestra este tipo de equipo.

Figura. 2.10 Bota desgasificadora.

9

2.4.4. Tanques.

Tanque de lavado.

Los tanques de lavado o decantación, son equipos donde la presión de trabajo está cercana a

la atmosférica y son utilizados para completar el proceso de deshidratación de crudo

proveniente de los separadores.

Tanques de almacenamiento.

Los tanques de almacenamiento reciben el crudo proveniente de los tanques de lavado, y

albergan el producto hasta ser transferido al oleoducto de transferencia. En la figura 2.11 se

ilustra la clasificación de los tanques, para mayor referencia consultar [8].

En la industria del petróleo los tanques de almacenamiento de hidrocarburos líquidos se

clasifican en tres grupos:

a) Por su construcción: soldados y empernados.

b) Por su forma: cilíndricos y esféricos.

c) Por su función: techo fijo y techo flotante.

(a) (b)

(c)

Figura. 2.11 Clases de tanques: (a) por su construcción (soldado), (b) por su forma (esférico)

y (c) por su función (techo flotante).

10

2.4.5. Tratadores.

Los tratadores térmicos son equipos estáticos, empleados para separar emulsiones petróleo

agua. El tratamiento térmico se realiza a los fluidos emulsionados con la finalidad de reducir

la viscosidad del petróleo y aumentar la coalescencia de las gotas de agua. En la figura 2.12

se muestra este tipo de equipo, mayor información referirse a [8].

Figura. 2.12 Tratador de fuego.

2.4.6. Unidades recuperadoras de vapor.

Una unidad recuperadora de vapor (VRU), recolecta los vapores producidos en los tanques de

almacenamiento de petróleo donde son comprimidos y reutilizados en las operaciones de la

planta. Mayor detalle referirse a [8]. En la figura 2.13 se ilustra este tipo de equipo.

Figura. 2.13 Unidad recuperadora de vapores.

11

2.4.7. Bombas.

Las bombas son máquinas que absorben energía mecánica y transfieren al fluido que las

atraviesa en energía hidráulica, sirven para impulsar toda clase de líquidos.

La clasificación de estas se encuentran en dos grandes grupos como son las rotodinámicas y

las de desplazamiento positivo.

Bombas rotodinámicas.- Llamadas así porque su movimiento es rotativo y la dinámica de

la corriente es esencial en la transmisión de la energía, se clasifican en:

a) Según la dirección de flujo: bombas de flujo radial, de flujo axial y de flujo radioaxial.

b) Según la posición del eje: bombas de eje horizontal, de eje vertical y de eje inclinado.

c) Según la presión engendrada: bombas de baja presión, de media presión y de alta presión.

d) Según el número de flujos en la bomba: de simple aspiración y de doble aspiración.

e) Según el número de rodetes: de un escalonamiento o de varios escalonamientos.

Bombas de desplazamiento positivo.- Estas se clasifican según dos criterios:

a) Primer criterio: según el tipo de movimiento del desplazador en alternativas y rotativas.

b) Segundo criterio: según la variabilidad del desplazamiento en desplazamiento fijo y

desplazamiento variable.

2.4.8. Válvulas de control.

La válvula automática de control generalmente constituye el último elemento en un lazo de

control instalado en la línea de proceso, y se comporta como un orificio cuya sección de paso

varia continuamente con la finalidad de controlar un caudal en una forma determinada.

Las válvulas son unos de los instrumentos de control más esenciales en la industria. Éstas

pueden abrir y cerrar, conectar y desconectar, regular, modular o aislar una enorme serie de

líquidos y gases.

Las válvulas de control constan de dos partes que son el actuador y el cuerpo, en la figura

2.14 puede verse una válvula de control típica. Para mayor detalle [9] páginas 365-366.

El cuerpo de la válvula contiene en su interior el obturador y los asientos. El obturador es

quien realiza la acción de control de paso del fluido.

Las características de linealidad se encuentran relacionadas entre el flujo de salida y la

posición.

12

Figura. 2.14 Válvula de control.

Dependiendo del tipo de aplicación tenemos válvulas de apertura rápida, lineal, parabólica e

igual porcentaje, para mayor información ver [9] páginas 380-381, en la figura 2.15 se

muestra los modelos de control de estas válvulas.

Existen tres modelos de control, el de acción proporcional (P) donde la señal de error

actuante es proporcional a la señal de error, de acción integral (I) donde la señal de error es

proporcional al tiempo integral y el de acción derivativa (D) donde la señal actuante es

proporcional al tiempo derivativo de la señal de error.

Figura.2.15 Características de flujo de las válvulas de control.

Basado en los tres modelos de control tenemos:

13

Acciones Básicas de Control Combinación Acciones Básicas

Proporcional (P) Proporcional-Integral (PI)

Derivador (D) Proporcional-Derivativo (PD)

Integrador (I) Proporcional-integral-Derivativo (PID)

La forma matemática general de un controlador PID esta dado por:

( ) ( ) ∫ ( )

( )

donde , , son las constantes proporcional, integral y derivativa respectivamente, y

( ) es el error. Mayor detalle referirse a [21] página 271.

Esta es una ecuación integral diferencial, siendo la función incógnita e.

2.5. Coeficiente de Flujo.

El coeficiente de flujo Cv de una válvula es la tasa de flujo de agua que atraviesa cuando se

encuentra completamente abierta, con una pérdida de presión de 1 psi.

En la siguiente tabla se muestra valores típicos para válvulas de bola, para mayor detalle ver

[2] página 176.

En el Anexo C se muestra los coeficientes para cada tipo de apertura.

Tabla 2.1. Coeficiente de flujo Cv.

Tipo de apertura Tamaño de la válvula

Diámetro 1” 1 ½ “ 2” 2 ½ “ 3” 4” 6” 8”

Lineal 20.1 34.9 65.3 86.5 135 212 417 836

2.6. Procesos de separación

2.6.1. Tipos de procesos de separación.

En la ingeniería de procesos, la separación se usa para transformar una mezcla de substancias

en dos o más productos. Por lo general, las dos fases son parcialmente miscibles entre sí. El

par de fases pueden ser gas-líquido, gas-sólido, líquido-líquido, o líquido-sólido.

14

Durante el contacto, los componentes de la mezcla se redistribuyen entre las fases y se

separan por cualquier método físico simple.

Seleccionando las condiciones y fases apropiadas, una fase se enriquece mientras que la otra

se empobrece en uno o más componentes.

Separación por creación de fase.

Las mezclas usualmente son separadas en fases homogéneas, si se encuentran en forma de

líquidos inmiscibles generalmente son separados por acción de la gravedad, fuerzas

centrífugas, reducción de la presión. Cada una de los componentes del fluido tendrá una

técnica de separación.

Un proceso general de separación se muestra en la figura 2.16, donde el flujo de entrada

puede ser líquido, gaseoso o una combinación de ambos. Para obtener dos o más productos

de salida. Para mayor detalle referirse a [22] páginas 5-7.

Separación por adición de fase.

La separación es influenciada por un agente de separación adicionado que toma la forma de

otra corriente como agente separador de masa (MSA) o un agente separador de energía (ESA)

En la figura 2.17 se muestra este tipo de separación, para mayor detalle dirigirse a [22]

páginas 6-7.

Figura. 2.16 Separación por creación de fase.

Figura. 2.17 Separación por adición de fase.

15

Separación por barrido.

La separación por barrido utiliza micro-poros y membranas no porosas para un proceso a

diferentes tasas de difusión. En la figura 2.18 se puede ver este tipo de separación, mayor

detalle ver [22] páginas 5-14.

Figura. 2.18 Separación por barrido.

Separación por acción de un agente sólido.

En las operaciones de separación donde se utiliza una masa como agente sólido, usualmente

el agente se encuentra en forma granular, este agente se encarga de absorber o entrar en

contacto directo en la operación de separación de forma selectiva y reaccionar químicamente

con el flujo. En la figura 2.19 se muestra la acción del agente solido en la etapa de

separación, mayor detalle consultar [22] páginas 6-16.

Figura. 2.19 Separación por acción de un agente sólido.

2.6.2. Separación por creación de fase.

En la producción del petróleo generalmente se obtienen tres fluidos de manera simultánea:

gas, petróleo, agua y algunas impurezas como arenas, etc.

Luego de ser levantado a la superficie, el fluido es direccionado por medio de tuberías a las

plantas de tratamiento para separar de una manera adecuada las impurezas y el agua presente,

ésta luego es inyectada a los pozos inyectores. La complejidad de una planta de

procesamiento depende del tipo de separación a realizar.

16

Para la clasificación de los separadores por creación de fase se ha elaborado el siguiente

mapa conceptual.

Figura. 2.20 Clasificación de los separadores.

Separador de dos fases o bi-fásicos.

Son recipientes capaces de separar el gas y el líquido inmiscibles como se muestra en la

figura 2.2, se emplean para dejar lo más libre posible los componentes gaseosos y líquidos a

una determinada presión y temperatura. Cuando una mezcla de hidrocarburos se deposita en

el fondo del recipiente, el fluido tiene una presión de vapor igual a la presión de operación.

Mayor información referirse a [3] páginas 1-2.

Figura. 2.21 Separador líquido gas.

Separador de tres fases.

Son recipientes capaces de separar el gas y las dos fases de líquidos inmiscibles en un solo

equipo en la figura 2.22 se ilustra este tipo de separador. Mayor detalle ver [2] páginas 7-9.

Clasificación

de los

Separadores

Bi-fásico

Tri-fásico

Horizontales

Verticales

Construcción

Producción

Prueba

Tipo de

Separación

Utilización

17

Todos los separadores verticales y horizontales pueden ser usados para la separación trifásica,

independientemente de la forma. En este caso el agua es la impureza que prevalece en la

mezcla y debe ser retirada antes de liberar los productos finales. Se debe evitar la emulsión

de agua con alguno de los otros fluidos. Si éste se emulsiona será necesario el uso de

químicos, calor u otro método para romperla.

Figura. 2.22 Separador gas líquido- líquido.

El comportamiento del fluido en un separador trifásico se idealiza como flujo tipo pistón,

donde el patrón de flujo se muestra en la Fig.2.23. Mayor detalle referirse a [13], páginas 1-7.

El flujo tipo pistón es asumido teóricamente como caminos lineales para que estos puedan ser

simulados numéricamente. El tamaño, la forma y la distribución de las partículas son

fundamentales en el análisis de un separador.

Figura. 2.23 Suposición de flujo en un separador trifásico.

Trayectoria crítica.

La trayectoria crítica que deben seguir las gotas y burbujas para atravesar cada una de las

fases contínuas de separación, dependen directamente de la velocidad de flujo de entrada, las

18

cuales cambian la trayectoria del flujo de gotas y burbujas. Fig.2.24., éstas son idealizadas

para simplificar la trayectoria crítica Fig.2.25. Mayor detalle referirse a [13], páginas 1-7.

Figura. 2.24 Trayectoria crítica real de las gotas y burbujas en un separador trifásico.

Figura. 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifásico.

Niveles de fase.

Los equipos se encuentran diseñados para flujos promedios que incluyen niveles mínimos y

máximos en función de los sets de nivel, los cuales están basados en las condiciones de

operación del sistema. Mayor detalle referirse a [13], páginas 1-7.

19

Figura. 2.26 Control de nivel en un separador trifásico.

donde: HHLL es high high liquid level (nivel líquido alto alto), HLL es high liquid level

(nivel líquido alto), NLL es normal liquid level (nivel normal líquido), LLL es low liquid

level (bajo nivel líquido ), LLLL es low low liquid level (nivel liquido bajo bajo), HHIL es

high high linterface level (nivel interface alto alto), HIL es high interface level (nivel

interface alto), NIL es normal interface level (nivel normal interface), LIL es low interface

level (nivel interface bajo), LLIL es low low interface level (nivel interfase bajo bajo).

20

CAPÍTULO III

3. MODELO MATEMATICO SEPARADOR TRIFASICO

Resumen

En este capítulo se consideran algunos conceptos muy elementales de las propiedades de los

fluidos presentes en la etapa de separación como son: gravedad específica, densidad, peso

molecular, viscosidad y el factor de compresibilidad para la fase gaseosa. Además se expone

la ecuación para el cambio de volumen en el separador.

3.1. Propiedades de los fluidos.

En un reservorio natural de petróleo, antes de comenzar la explotación, se encuentran dos

fases como mínimo. Ellas son petróleo y agua, con frecuencia, pero no siempre, puede existir

la fase gaseosa la cual constituye el casquete gasífero.

Estas tres fases se ubican de acuerdo a sus densidades: zona acuífera, petrolífera y gasífera.

Las propiedades de un fluido multifásico (petróleo, gas y agua) no es fácil de determinar,

debido que las condiciones como la presión, temperatura y flujo al cual está sometido el

conjunto de partículas que se encuentran unidas entre sí por fuerzas cohesivas.

La estimación de las propiedades del petróleo debe ser confiable, entre los datos mínimos

requeridos tenemos:

a) Gravedad API.

b) Corte de agua.

c) Caudal de producción.

d) Temperatura de operación.

e) Presión de operación.

f) Cromatografía del gas.

3.1.1. Propiedades del petróleo.

El petróleo de la formación está constituido principalmente por hidrocarburos de la serie

parafínica (CnH2n+2), con menores cantidades de la serie cíclica nafténica (CnH2n) y aromática

(CnH2n-6).

21

Pero mediante los análisis químicos se ha determinado que posee miles de distintos

compuestos pertenecientes a 18 series de hidrocarburos.

Por eso se realizan análisis químicos simplificados, se miden las fracciones parafinas desde

C1 hasta C5. Las más pesadas se agrupan como fracciones compuestas denominada C6+,

caracterizadas por su peso molecular.

El petróleo tiene dos propiedades importantes que lo caracterizan, la densidad API y la

viscosidad.

Gravedad Específica.

La gravedad específica del petróleo se define como la razón entre la densidad del petróleo y

la densidad del agua.

S o

. (1)

La gravedad específica generalmente es reportada a condiciones estándar 60o/60

o, para el

petróleo es común utilizar la gravedad API.

S o 141.5

API 131.5 (2)

donde: es la gravedad específica del petróleo (adimensional), API es la gravedad API del

petróleo en [oAPI] (unidades de campo), es la densidad del agua medida en [kg/m

3]

(unidades en S.I.), es la densidad del petróleo medida en [kg/m3]

(unidades en S.I.).

Viscosidad.

La viscosidad de un fluido es una medida de la fricción interna o resistencia que ofrecen sus

moléculas a fluir, en el caso del petróleo se determina mediante la correlación de Beggs y

Robinson. Mayor detalle referencia bibliográfica [5] páginas 48-99.

o 10

-1 (3)

donde:

103.0324-0.02023S oTa

-1.163 . (4)

22

es la viscosidad del petróleo medida en [cp] (unidades de campo) [Pa-s] (unidades S.I.),

Ta es la temperatura del yacimiento en [ºF] (unidades de campo) [K] (unidades S.I.).

3.1.2. Propiedades del gas.

El gas de formación o gas natural contiene típicamente 0.6 a 0.8 porcentaje molar de metano,

con hidrocarburos C2 a C5 cada vez en menor proporción, además puede contener impurezas

como nitrógeno, dióxido de carbono y sulfuro de hidrógeno. Los dos últimos son corrosivos

en presencia de agua.

Las propiedades del gas se las calculan a partir de su composición, donde es indispensable

contar con un análisis cromatográfico del mismo. Las propiedades relacionadas con el gas se

describen a continuación.

Peso molecular.

El peso molecular de un gas está determinado con las fracciones molares de los componentes

del gas. Ver referencia bibliográfica [5] páginas 2-3.

∑ , (5)

donde: Mi es el peso molecular del componente i en la mezcla [grs/gr-mol] (unidades S.I.),

es la fracción molar del componente i en la mezcla, Nc es el número de componentes en la

mezcla.

Densidad del gas.

La densidad del gas se estima en función del peso molecular, la constante universal de los

gases, la presión y temperatura de operación. Mayor detalle referirse a [5] páginas 2-3.

g

PM

RT (6)

donde: es la densidad del gas, medida en lb/ft3 (unidades de campo) [Kg/m

3] (unidades

S.I.), P es la presión medida en [psia] (unidades de campo) [Pa] (unidades S.I.),

T es la temperatura medida en [ºR] (unidades de campo) [K] (unidades S.I.), z es el factor de

compresibilidad (adimensional), R es la constante universal de los gases 10.7314 [psia-

ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m

3/Kgmol-K] (unidades S.I.).

23

Viscosidad del gas.

La viscosidad de un gas en general es más baja que la de un líquido, ya que las distancias

intermoleculares de un gas son mayores que las de un líquido. Además, todos los gases

tienen un comportamiento reológico newtoniano y se rigen por la ley de viscosidad de

Newton. Mayor detalle referencia bibliográfica [5] página 39.

Los factores que afectan la viscosidad de un gas son:

a) A bajas presiones (menores a 1000 psia) a medida que aumenta la temperatura aumenta la

viscosidad del gas debido al incremento de la energía cinética de las moléculas que

producen gran número de choches intermoleculares.

b) A elevadas presiones (mayores a 1000 psia) a medida que aumenta la temperatura

disminuye la viscosidad del gas debido a la expansión térmica donde las distancias

intermoleculares son pequeñas.

c) A cualquier temperatura, la viscosidad de un gas aumenta con el incremento de presión.

d) Cuando un gas es más pesado, sus moléculas serán más grandes y su viscosidad mayor.

La viscosidad de un gas puede determinarse experimentalmente o por medio de ecuaciones,

correlaciones gráficas o numéricas.

Experimentalmente la viscosidad de los gases puede ser determinada mediante el método de

Stiel y Thodos. Mayor detalle ver [5] página 363, a partir de sus datos experimentales

obtuvieron la siguiente ecuación:

g 0.00046

N M1 2⁄ PC2 3⁄

TC1 6⁄

. 7

Si Tr 1.5 tenemos:

N 0.00034 Tr0.94 . 8

Si Tr 1.5 tenemos:

N 0.0001778 (4.58 Tr-1.67)0.625

. 9

En el cual:

Tr [59 (Top 32)] 273

TC

10

24

TC ∑ yiTiC 11

PC ∑ yiPiC 12

donde: es la viscosidad del gas en [cp] (unidades de campo) [Pa-s] (unidades S.I.), M es el

peso molecular [lb-mol] (unidades de campo) [Kg-mol] (unidades S.I.), Tc es la temperatura

crítica medida en [oK] (unidades S.I.), Top es la temperatura operación [

oF] (unidades de

campo) [oK] (unidades S.I.), Tr es la temperatura reducida medida en [

oK] (unidades S.I.),

yi es la fracción molar (adimensional), Pc es la presión critica medida en [Pa] (unidades S.I.).

Las propiedades de los gases típicos que se encuentran en los pozos petroleros se presentan

en el Anexo A.

3.1.3. Propiedades del agua.

Sin importar a que campo o bloque de perforación se refiera, el agua normalmente se

encuentra presente en los yacimientos de hidrocarburos. El agua de formación se encuentra

tanto en la zona acuífera como en la petrolífera. La zona acuífera es conocida como acuífera

inactiva cuando no contribuye al proceso de producción, y como acuífera activa cuando es

capaz de producir un barrido lento y gradual del petróleo hacia la superficie.

Además, existe agua en la zona petrolífera y en el casquete de gas, conocida como connata

(agua fósil o agua subterránea que ha permanecido en un acuífero por milenios), intersticial

o irreducible. Esta saturación de agua en la zona de hidrocarburos ocupa entre 10% a 30%

del volumen poral.

Densidad.

La densidad del agua en función de la temperatura se estima mediante la ecuación de Rackett,

referencia bibliográfica [20] página 98.

[ ( ) ]

( )

donde : es la densidad del agua en [lb/ft3] (unidades de campo) [kg/m

3] (unidades S.I.),

T es la temperatura medida en [K].

25

Tabla 3.1 Coeficientes de la densidad del agua.

Temperatura [ K ] 273.16 a 333.15 333.15 a 403,15 403.15 a 647.13

C1

C2

C3

C4

5.459

0.30542

647.13

0.081

4.9669

0.27788

647.13

0.1874

4.391

0.2487

647.13

0.2534

Viscosidad.

La viscosidad del agua se determina por medio de la correlación de Van Wingen, donde la

viscosidad del agua está en función de la temperatura, referencia bibliográfica [5] página 127.

e1.003 1.479 10

2T 1.982 10

5T2 14

donde: es la viscosidad del gas en [cp] (unidades de campo) [Pa-s] (unidades S.I.), T es la

temperatura medida en [oK] (unidades S.I.).

3.2. Factor de compresibilidad del gas, ecuación de estado de Peng - Robinson.

El factor de compresibilidad, conocido también como factor de compresión, es la razón del

volumen molar de un gas con relación al volumen molar de un gas ideal a la misma

temperatura y presión. Los valores del factor de compresibilidad se obtiene mediante

cálculos de las ecuaciones de estado, este puede ser determinado por varios métodos, siendo

el más utilizado la correlación de Peng-Robinson, en cuya ecuación se relacionan las

variables P-V-T para predecir el comportamiento termodinámico del sistema. Mayor detalle

referirse a [16], páginas 30-32.

v

v(v ) (v ) ( )

Tenemos que predecir el comportamiento termodinámico de la mezcla multicomponente de

hidrocarburos, para lo cual definiremos los parámetros para cada uno de los componentes.

El factor adimensional α para un componente en una me cla es una función de la temperatura

reducida y del factor acéntrico del componente. Las expresiones que describen son:

26

( )

( )

[ ( )]

( )

donde:

. (19)

Para obtener los parámetros y de una mezcla multicomponente se relaciona los

parámetros de cada componente a través de las reglas de mezclado de Van der Waals,

referirse a [16], páginas 30-32.

∑∑[ ( ) ( )] ( )

∑ ( )

donde: P es la presión del sistema en [psi] (unidades de campo) [Pa] (unidades del S.I.),

T es la temperatura del sistema en [oR] (unidades de campo) [K] (unidades S.I.), a es el

parámetro de atracción de la mezcla en [lb ft5/s

2 mol

2], es el factor adimensional, b es el

parámetro de repulsión de la mezcla [lb ft5/s

2 mol

2], v es el volumen molar [ft

3/lbmol], es

el coeficiente de interacción binaria entre los componentes i,j, R es la constante universal de

los gases 10.7314 [psia-ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m

3/Kgmol-K]

(unidades S.I.), Pc :es la presión crítica en [psi] (unidades de campo) [Pa] (unidades S.I.),

Tc es la temperatura crítica [oR] (unidades de campo) [K] (unidades S.I.), i es el componente

enésimo de la mezcla.

De la ecuación de estado de Peng Robinson, mayor detalle ver referencia [17], páginas 23-27,

se obtiene una expresión que permite determinar el factor de compresibilidad z el cual está

dado por la siguiente ecuación cúbica:

3 (B 1) 2 (A 3B2 2B) (B3 B2 AB) 0 22

27

la misma que será desarrollada por el método de Newton Raphson, referirse a [23], páginas

88-90, para determinar su solución. Es decir, si:

i 1 i f( i)

f( i) f( i 1) i i 1

23

se puede hacer que:

i 1 i f( i)

f ( i) 24

donde las variables A y B se definen de la siguiente manera:

A aP

(RT)2 25

B bP

RT . 2

Para obtener el factor de compresibilidad de una mezcla multicomponente, las constantes a y

b son los parámetros de la mezcla.

3.3. Proceso del sistema de separación

En el proceso de separación de cada una de las fases presentes en los hidrocarburos, se debe

determinar las condiciones más adecuadas de operación. Siendo la más importante la presión

de funcionamiento del separador, para la recuperación de líquidos a las condiciones de

almacenamiento del hidrocarburo. Teóricamente para obtener mayor cantidad de líquidos

recuperados se debe disponer de varias etapas de separación.

Generalmente dentro de la industria de petrolera se pueden evidenciar sistemas de dos y tres

etapas de separación. Mayor detalle [17], página 196.

3.3.1. Optimización del sistema.

El proceso de separación del crudo, gas y agua se lo realiza a temperatura ambiente y se

determina mediante la ecuación de Organick y Hollingsworth, referencia [14], páginas

129-133. Mediante la cuál se determina la mejor presión de separación.

( )

donde,

28

( )

( )

( )

( )

Los coeficientes de cálculo para la presión óptima se muestran en el anexo D, donde: Pk es la

presión óptima en [psi] (unidades de campo), A,B,C,D : coeficientes de cálculo presión

óptima.

3.4. Leyes fundamentales del modelamiento

Los modelos numéricos son la representación matemática de un sistema por medio de la

aplicación principios fundamentales. La base de los modelos matemáticos son las leyes

físicas y químicas (leyes de conservación de masa, energía y momentum) y las ecuaciones de

transporte. Mayor detalle referirse a [18] páginas 89-98.

Las leyes fundamentales que gobiernan a los procesos químicos son:

a) Ley de la conservación de la masa.

b) Ley de la conservación de la energía.

c) Ley de la conservación del momentum.

Ley de la conservación de la masa.

Según el principio de conservación de la masa si un fluido tiene varios componentes con

concentraciones diferentes en distintos puntos, existe un proceso de intercambio en el sistema

de la zona de más alta concentración a la más baja.

Existen dos procesos de transferencia de masa: convectiva (por diferencia de temperatura) y

la molecular (por diferencia de presiones y densidades). Mayor detalle referirse a [6] páginas

1-12.

Denotemos A una especie en el fluido. La concentración de la masa de la especie A se define

como:

( )

donde: es la masa de la especie A en el volumen total V.

Sea ( ) un volumen de control con ( ) su frontera. Entonces

29

( ) ∫ ( ) ( )

( )

El balance de masa nos conduce a la siguiente expresión:

{

}

{

}

{

}

Por el teorema del transporte Reynolds se tiene que:

∫ [

( )] ( )

∫ ( )

( )

donde fA representa las fuentes o sumideros.

De la arbitrariedad de los volúmenes de control, se sigue que:

( ) ] [ ( )

La ley de Fick o de la difusión tiene la forma: donde sobre

[ ]. Entonces:

( ) ] [ ( )

Que se conoce como ecuación de transferencia de masa (convectiva o difusiva). Mayor

detalle referirse a [6] páginas 1-12.

La expresión matemática definitiva de conservación de la masa en su forma integral es:

∫ [

( ) ( ) ] ( )

( )

donde: es el flujo en la frontera ( )de ( ) es la fuente o sumidero, ( ) es la

velocidad, C es la magnitud objeto de balance.

En nuestro caso para definir el balance de masa se selecciona las fronteras del sistema, se

identifica las corrientes de entrada y salida, que atraviesan la frontera del sistema y se tiene:

( )

donde: es el caudal de ingreso en [BFPD] (unidades de campo) o [m3/s] (unidades S.I.),

es el caudal de salida de crudo en [BFPD] (unidades de campo) o [m3/s] (unidades

S.I.), es el caudal de salida de agua en [BFPD] (unidades de campo) o [m3/s] (unidades

S.I.), es el caudal de salida de gas en [SCFPD] (unidades de campo) [m3/s] (unidades

S.I.).

30

Ley de la conservación de la energía.

La primera ley de la termodinámica establece el principio de la conservación de la energía, la

cual establece que si se realiza un trabajo sobre un sistema o existe el intercambio de calor

con otro la energía interna del sistema cambiará.

La ecuación general de la conservación de la energía es la siguiente:

, (39)

donde: Ein es la energía de ingreso al sistema, Eout es la energía de salida del Sistema y Esis es

el cambio de energía.

De la ecuación (39), aplicada a la termodinámica nos conduce a la siguiente expresión:

U 40

donde: U es la energía interna del sistema (aislado), Q es la cantidad de calor aportado al

sistema y W es el trabajo realizado por el sistema.

Ley de la conservación del momentum.

Dado que el impulso es una cantidad vectorial, el balance de momento es una ecuación

vectorial. Donde la gravedad es la única fuerza que actúa sobre el cuerpo, el principio de

momento lineal, aplicado a un volumen de control arbitrario nos proporciona la siguiente

expresión, como se muestra en la figura 3.1.

∫ ∫ ( )

∫ ∫

( )

donde, g es el vector gravedad, tn es la fuerza por unidad de área del fluido circundante en el

volumen de control, Va es el volumen de control, Aa es la superficie de control, n vector

normal, w es la velocidad límite y v es la velocidad del fluido. Mayor detalle ver [20],

capítulo 6, página 6.

Figura. 3.1 Volumen de control arbitrario para la aplicación de la ecuación

del balance de momentum.

31

3.5. Métodos de simulación.

Los métodos de simulación deben ser resueltos por un algoritmo de solución. Para un proceso

en estado estacionario el modelo numérico está constituido por sistemas de ecuaciones

no-lineales que pueden ser resueltas mediante: método modular secuencial, método orientado

a ecuaciones y el método modular simultáneo.

Método modular secuencial.

Este método implica la interpretación del diagrama de flujo del proceso como un grupo de

unidades de proceso (equipos), para cada uno de los cuales existen subrutinas de cálculo.

Cada subrutina calcula las variables de las corrientes de salida de dicha unidad de proceso

con base al modelo matemático correspondiente. Mayor detalle referirse a [18], página 50.

Método orientado a ecuaciones.

Este modelo representa una solución simultánea de las ecuaciones que describen el proceso,

mediante el cual permite resolver las ecuaciones algebraicas no lineales que constituyen el

modelo del sistema. Mayor detalle referirse a [18], páginas 51-52

Método modular simultáneo.

Este método fusiona las ventajas de los dos métodos anteriormente descritos, tienen un

manejo más eficiente de las ecuaciones donde se requiere múltiples ciclos. Mayor detalle

referirse a [18], páginas 59-61.

3.6. Descripción del modelo

Los modelos matemáticos de un proceso como este (objeto de nuestro estudio) son el

elemento esencial para explicar algún tipo de fenómeno e identificar tanto cualitativamente

como cuantitativamente el proceso estudiado a fin de obtener las características del sistema.

Para la obtención del modelo del separador trifásico se realiza las siguientes suposiciones:

a) Se desprecia los efectos térmicos por intercambio de calor entre el separador y el medio

ambiente (el separador se encuentra aislado térmicamente).

b) Se desprecia la influencia de agentes químicos (no influyen en cambio alguno en las

propiedades físico-químicas).

c) No existe arrastre de líquido en la fase gaseosa (trampas de condensados).

32

El primer paso es definir las propiedades y las condiciones de los fluidos, las propiedades se

determinan a partir de la prueba assay (compilación de datos de laboratorio que define las

propiedades de un crudo) que determinan las propiedades del crudo y el análisis PVT que

determina las propiedades del gas.

El segundo paso es establecer las condiciones de operación como son: presión de trabajo en

[psi], temperatura en [oF] y caudales en [BPD]. Donde la presión de trabajo debe garantizar el

flujo hacia los demás equipos utilizados en el proceso de deshidratación.

En la figura 3.2, se muestra un separador trifásico controlado por dos válvulas controladoras

de nivel (colchón agua y crudo) y una para el control de la presión del separador (gas), que

son retroalimentadas y de esta manera obtener el porcentaje de apertura de las mismas.

Variación de niveles en un separador trifásico.

La presencia del vertedero entre la cámara de separación y la cámara de crudo generará los

diferentes niveles que conforman la separación trifásica, para lo cual se ha desarrollado la

figura 3.2.

En la cual el vertedero aislará una cámara de la otra y de esta manera se obtendrá un crudo

limpio (bajo en porcentaje de BSW).

Figura. 3.2 Variables presentes en un separador trifásico.

donde: P es la presión del separador en [psi] (medida de campo), Gin es el flujo de entrada

en fase gaseosa en [mscfd] (medida de campo), Ein es el flujo de entrada en fase emulsionada

en [BPD] (medida de campo), Win es el flujo de entrada en fase acuosa en [BPD] (medida de

campo), Gout es el volumen de salida fase gaseosa en [mscfd ] (medida de campo),

Oout es el volumen de salida fase oleosa en [BPD] (medida de campo), Wout es el volumen

de salida fase acuosa en [BPD] (medida de campo), hl es la altura fase oleosa en la cámara de

33

crudo en [m] (medida de campo), ht es la altura total de líquido en la cámara de separación en

[m] (medida de campo), hw es la altura fase acuosa en la cámara de separación en [m]

(medida de campo), Sg es la fracción de abertura de la válvula de gas (adimensional), So es la

fracción de abertura de la válvula de crudo (adimensional), Sw es la fracción de abertura de la

válvula de agua en (adimensional).

3.7. Área del segmento circular.

Para el presente trabajo la geometría del separador se la aproximará a la de un cilindro, y el

área de los segmentos circulares se presenta en la siguiente ecuación, mayor detalle ver [24]

páginas 84-86. Anexo E.

(

)

√ ( ) ( )

3.8. Volumen del segmento circular del separador.

El volumen del líquido ocupado en el cilindro es:

( )

( )

donde: A es el área del segmento circular ocupado por el líquido, L es la longitud del líquido

ocupado en el separador y D el diámetro del separador.

De la relación (42) en (43) se obtiene

[

(

)

√ ( )] ( )

De (44) en (45) resulta

[

(

)

√ ( )] ( )

[ (

)

( )√ ( )

] ( )

V es una función de h. Derivando el volumen en función de la altura, tenemos

34

√ ( ) ( )

tomando en consideración VT dado como

( )

y reemplazando en (49), se obtiene

√ ( ) ( )

Aplicando la regla de la cadena:

( )

se concluye

√ ( )

( )

3.9. Resumen de ecuaciones

A continuación se presenta un resumen de las ecuaciones utilizadas para determinar las

propiedades físico-químicas de cada una de las corrientes presentes en el flujo.

Propiedades físicas del petróleo.

Gravedad específica: S o 141.5

API 131.5 .

Viscosidad : o 10

-1 .

Propiedades físicas del gas.

Peso molecular : ∑ .

Densidad : g

PM

RT .

Viscosidad: g 0.00046

N M1 2⁄ PC2 3⁄

TC1 6⁄ .

35

Propiedades físicas del agua.

Densidad:

[ ( ) ]

.

Viscosidad: e1.003-1.479 10

-2T 1.982 10

-5T2.

36

CAPÍTULO IV

4. MODELO NUMERICO SEPARADOR TRIFASICO

Resumen.

En esta sección tratamos el balance de masa como evaluación del proceso presentando en

ecuaciones básicas de balance de fluidos: petróleo, agua y gas. Y se detalla la secuencia de

cálculo para determinar las propiedades físicas de dichos fluidos.

Además se detalla el desarrollo del modelo, allí analizamos el balance de los fluidos en cada

una de las secciones del separador trifásico que son necesarios para comprender el

comportamiento del proceso de separación.

4.1. Evaluación del proceso

Para desarrollar el modelo numérico del separador trifásico se debe tener un entendimiento de

la física del sistema de separación, con lo cual se pueda representar el mismo mediante

ecuaciones diferenciales ordinarias.

Las ecuaciones a desarrollar son tanto para el lazo de nivel como para el lazo de presión.

Considerando el balance general de masa del líquido en el separador para el lazo de nivel se

tiene:

( )

Donde : es el área del segment circular en [m] (unidades del S.I.), es la altura de líquido

en [m] (unidades del S.I.), t es el tiempo en [s] (unidades del S.I.), es el caudal de líquido

de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.) y es el caudal de

líquido de salida en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.).

De manera análoga al lazo de nivel, se presenta para para el lazo de presión cuya ecuación se

deduce más adelante, la cual proviene de la ecuación de los gases ideales:

( )

( )

donde: es la presión del separador en [psi] (unidades de campo) [Pa] (unidades del S.I.),

es el caudal de líquido de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del

37

S.I.), es el caudal de líquido de salida en [BFPD] (unidades de campo) [m3/s] (unidades

del S.I.), es el caudal de gas de ingreso en [SCFPD] (unidades de campo), es el

caudal de gas de salida en [SCFPD] (unidades de campo), es el volumen del separador en

[m3] (unidades S.I.), es el volumen cámara de separación en [m

3] (unidades S.I.) y es el

volumen cámara de crudo en [m3] (unidades S.I.).

4.2. Desarrollo del modelo

Antes de iniciar el análisis de la parte dinámica, es preciso determinar las propiedades físico-

químicas de los fluidos las cuáles fueron calculadas en el capítulo precedente mediante

principios físicos fundamentales o a través de correlaciones empíricas y datos de laboratorio

necesarios.

Luego de lo cuál se ingresa las propiedades geométricas del separador como longitud y

diámetro. Posteriormente se ingresará los niveles de trabajo tanto de la cámara de crudo como

de la cámara de separación o set point y los coeficientes de flujo de las válvulas de control.

Finalmente se obtiene la caracterización del separador trifásico de tipo horizontal bajo las

condiciones establecidas.

Balance de líquido en la cámara de separación.

Aplicando el balance de masa en la cámara de separación se tiene

( )

Se obtiene la variación de altura del líquido (crudo+agua) en la cámara de separación,

√ ( ) ( )

donde: es el caudal de emulsión de ingreso en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de flujo del vertedero en [BPD] (unidades de campo)

[m3/s] (unidades S.I.), es el diámetro del separador en [m] (unidades S.I.), es la

longitude de la cámara de separación [m] (unidades S.I.) y es la altura total del líquido en

la cámara de separación [m] (unidades S.I.).

38

Balance de petróleo en la cámara de crudo.

La variación de altura en la cámara de crudo está dada por:

( )

donde es el caudalde crudo que atraviesa el vertedero hacia la cámara de crudo, es

el caudal de crudo saliente.

√ ( ) ( )

con altura de la cámara de crudo, diámetro del separador y la longitud de la cámara

de crudo.

Balance de agua en la cámara de separación.

La variación de altura de agua en la cámara de separación está dada por,

( )

√ ( ) ( )

donde: Win es el caudal de ingreso de agua, Wout es el caudal de salida de agua, Lcs longitud

de la cámara de separación, hw altura del agua en la cámara de separación y D el diámetro

del separador.

Balance de gas.

Tomando en consideración la ecuación de los gases ideales que se expresa como:

( )

donde P es la presión medida en [psi] (unidades de campo) o [Pa] (unidades S.I.), Vg es el

volumen del casquete de gas medida en [ft3] (unidades de campo) o [m

3] (unidades S.I.), n es

número de moles de gas en [mol] (unidades S.I.), T la temperatura del separador en [oF]

(unidades de campo) [K] (unidades S.I.), y R la constante universal de los gases 10.7314

[psia-ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m

3/Kgmol-K] (unidades S.I.).

de esta ecuación obtenemos:

39

( )

y tomando en cuenta el volumen del separador, de la cámara de separación y la cámara de

crudo, notados por Vt, Vcs, Vcc, resulta,

( ) ( )

que es una función dependiente del tiempo. Derivando respecto de t, obtenemos la relación

(

)

( )

( )

De la ecuaciones (57) y (59) en (64) obtenemos, mayor detalle ver [24] páginas 10-15,

( )

( )

( )

donde es el caudal de emulsión de ingreso en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el caudal de salida de crudo en [BPD] (unidades de campo) [m3/s]

(unidades S.I.), es el volumen del separador en [m3] (unidades S.I.), es el volumen de la

cámara de separación en [m3] (unidades S.I.), es el volumen de la cámara de crudo en

[m3] (unidades S.I.), n es el número de moles de gas en [mol] (unidades S.I.) y t es el tiempo

[s] (unidades S.I.).

El flujo molar del gas de entrada y salida están representadas por las siguientes ecuaciones:

( )

( )

el balance de masa en el casquete de gas del separador es

( )

De las ecuaciones (66) y (67) en (68) se obtiene:

40

( )

donde

( ) ( )

Igualando las ecuaciones (65) y (70), se obtiene el comportamiento dinámico de la presión en

el separador como se muestra en la siguiente ecuación,

( )

( )

4.2.1. Cálculo del volumen en el separador.

El volumen ocupado por el fluido en cada una de las cámaras tanto en la de separación como

en la de crudo se describe a continuación.

Volumen de líquido en la cámara de separación.

El volumen de líquido en la cámara de separación está dado por las siguientes ecuaciones,

[ (

)

( )√ ( )

] ( )

[(

) (

)

( )√ ( )] ( )

donde: es el volumen de la cámara de separación en [m3] (unidades S.I), es la

longitud de la cámara de separación en [m] (unidades S.I), la altura total del líquido en la

cámara de separación medido en [m] (unidades S.I), y D el diámetro del separador en [m]

(unidades S.I).

Volumen de petróleo en la cámara de crudo.

El volumen de petróleo en la cámara de crudo está representado por las siguientes

ecuaciones,

[ (

)

( )√ ( )

] ( )

41

[(

) (

)

( )√ ( )] ( )

donde: es el volumen cámara de crudo en [m3] (unidades S.I), es la longitud de la

cámara de crudo en [m] (unidades S.I) y es la altura de líquido en la cámara de crudo en

[m] (unidades S.I).

Volumen de agua en la cámara de separación.

[ (

)

( )√ ( )

] ( )

[(

) (

)

( )√ ( )] ( )

donde: es el volumen de agua en la cámara de separación medido en [m

3] (unidades

S.I), es la longitud de la cámara de separación en [m] (unidades S.I), y la altura del

colchón de agua en la cámara de separación en [m] (unidades S.I).

Volumen de crudo en la cámara de separación.

El volumen de crudo presente en la cámara de separación se muestra en la siguiente ecuación:

( )

donde: es el volumen de crudo en la cámara de separación, es el volumen en la

cámara de separación y es el volumen de agua en la cámara de separación.

4.3. Flujo de crudo en el vertedero.

Para determinar el flujo de líquido que sale a través del vertedero se utiliza la fórmula de

presa, referirse a [20] capítulo-10, página 19, para el modelo del separador es:

√ [ ( )]( ) ⁄ ( )

√ ( ) ( )

donde: es el caudal del vertedero, es la altura del vertedero, es la altura total

del líquido en la cámara de separación, D el diámetro del separador y g es la gravedad.

42

4.4. Sistema de control

El sistema de control requiere normalmente de desarrollos teóricos y de simulaciones

dinámicas, que deben basarse en un modelo matemático del proceso a controlar. Dicho

modelo debe representar con cierto grado de aproximación el comportamiento dinámico de

las principales variables de interés.

Los modelos matemáticos pueden ser determinísticos o estocásticos. Un modelo es

determinístico cuando asume nulos los ruidos típicos del proceso y de la medición, donde la

evolución del modelo puede ser determinado en forma precisa. En cambio, en un modelo

estocástico las componentes aleatorias propias del proceso y de la medición se asumen de

estadística conocida y usualmente se las considera como ruidos. Mayor detalle dirigirse a

[23], páginas 643 – 649.

En nuestro caso de estudio se considerará al separador trifásico como un modelo

determinístico.

En el sistema de control el controlador es el componente activo que recibe las señales de “set

point” y las mediciones y efectúa las acciones de control para ajustar los valores de las

variables manipuladas. Internamente, en un controlador puede implementarse una ley de

control muy sencilla (por ejemplo, sólo un efecto proporcional), o lineales con acciones

proporcional, integral y derivativa (PID).

El modelo del sistema final de control básicamente consiste en el balance de flujo entre la

corriente de entrada y las corrientes de salida, que son operadas por las válvulas dentro de un

conjunto de valores de la variable medida.

El controlador constituye el elemento fundamental en un sistema de control, pues determina

el comportamiento del bucle, ya que condiciona la acción del elemento actuador en función

del error obtenido. La forma en que el regulador genera la señal de control se denomina

acción de control.

Todo el proceso interactúa a través de las variables de salida cuyo valor se desea conocer; las

variables manipuladas, que pueden ser modificadas durante el proceso; y las perturbaciones.

Las variables controladas en el separador son los niveles de la interface en la cámara de

separación, nivel de la cámara de crudo y la presión interna del separador.

43

El controlador compensa la señal de error que es la derivación del nivel actual de fluido

respecto al set point, y genera una señal que actúa sobre la válvula de control.

4.4.1. Flujo de salida para líquidos y gases.

Las válvulas de salida de los fluidos crudo, agua y gas son modeladas en función de flujo

unidireccional. Para mayor detalle referirse a [9], páginas 428 – 465.

Flujo de salida de crudo.

El caudal de salida de crudo por la válvula. Mayor detalle ver [11], paginas 41-42, viene dado

por :

( )

donde: es el caudal de salida de crudo en [BPD] (unidades de campo) o [m3/s] (unidades

S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la

válvula de crudo (adimensional), es la presión aguas arriba de la válvula en [psi]

(unidades de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades

de campo) o [Pa] (unidades S.I.), es la gravedad específica del crudo (adimensional),

es la densidad del crudo en [lb/ft3] (unidades de campo) o [Kg/m

3] (unidades S.I.), es la

altura de fluido en la cámara de crudo en [ft] (unidades de campo) o [m] (unidades S.I.) y

es la gravedad en [ft/s2] (unidades de campo) o [m/s

2] (unidades S.I.).

Flujo de salida de agua.

De manera análoga al flujo de salida de crudo se realiza el balance de masa para la cámara de

separación. Mayor detalle ver [11], paginas 41-42,

El caudal de salida por la válvula viene dado por:

√ [ ( )]

( )

donde: es el caudal de salida de agua en [BPD] (unidades de campo) o [m3/s] (unidades

S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la

válvula de agua (adimensional), es la presión aguas arriba de la válvula de agua en [psi]

(unidades de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades

44

de campo) o [Pa] (unidades S.I.), es la gravedad específica del crudo (adimensional),

es ladensidad del agua en [lb/ft3] (unidades de campo) o [kg/m

3] (unidades S.I.), es la

altura del colchón de agua en la cámara de separación en [ft] (unidades de campo) o [m]

(unidades S.I.) y es la gravedad en [ft/s2] (unidades de campo) o [m/s

2] (unidades S.I.).

Flujo de salida de gas.

El flujo de gas que atraviesa por la válvula de control esta dada por la siguiente expresión

√( ) ( ) (

)

( )

donde: es el caudal de salida de gas en [SCFD] (unidades de campo) o [m3/s] (unidades

S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la

válvula de gas (adimensional), es la presión aguas arriba de la válvula en [psi] (unidades

de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades de campo) o

[Pa] (unidades S.I.), es el peso molecular del aire en [lb/mol] (unidades de campo) o

[g/mol] (unidades S.I.) y es el peso molecular del gas en [lb/mol] (unidades de campo) o

[g/mol] (unidades S.I.).

4.5. Parámetros de variación.

Para la evaluación de un separador trifásico, generalmente no se dispone de información por

lo cual es necesario implementar procedimientos para estimar las propiedades y/o

condiciones no conocidas a partir de las propiedades fisicoquímicas, tablas, etc.

Como primer paso se definen las condiciones y propiedades involucradas en el cálculo a

partir de la información primaria de campo que generalmente es:

a) Gravedad API del Crudo a 60◦F,

b) %BSW, (Bottom Sedimentation ,Water),

c) Caudal de producción en [BPD],

d) Temperatura y presión de operación,

e) Datos cromatográficos del gas y/o análisis PVT arena.

Además de las variables primarias de campo tenemos las variables del separador trifásico que

también son susceptibles de variación.

45

Temperatura del separador.

Los distintos componentes de la mezcla tienen diferentes temperaturas de evaporación por lo

cual cualquier cambio relevante en la temperatura determinará el estado de fase líquido o

gaseoso en el separador.

Presión del separador.

De manera análoga a la temperatura, el estado de fases de los componentes se encuentran

ligados íntimamente con la variación de presión.

El control de variación de la presión es el parámetro más accesible para estimar cada uno de

los sub-productos obtenidos.

Set point.

Con la variación de dicho parámetro se obtiene una variación en el tiempo de residencia de

cada una de las fases presentes.

Constantes de proporcionalidad e integral de la válvula de control.

Las constantes de las válvulas de control generalmente no son modificables puesto que una

vez realizada las sintonizaciones estas permanecerán constantes.

Cualquier variación en dichas variables puede incurrir en una inestabilización del sistema.

46

CAPÍTULO V

5. PROGRAMA COMPUTACIONAL Y VERIFICACION

Resumen.

En este capítulo se ejecuta los diagramas de flujo de cada una de las propiedades de los

fluidos detalladas en el tercer capítulo, se implementará un código de cálculo que permita

estimar estas propiedades en el proceso de la separación trifásica.

5.1. Algoritmo de programación.

Debido a la naturaleza del proceso, la solución de las ecuaciones que componen el modelo

matemático proporcionará una buena estimación de las variables involucradas.

De acuerdo a las ecuaciones presentadas en el resumen de los capítulos anteriores se elabora

los respectivos algoritmos que se presenta a continuación.

5.1.1. Algoritmo de programación propiedades del petróleo.

En base a las ecuaciones (2) y (3) se elabora el siguiente algoritmo.

Figura.5.1 Algoritmo Propiedades del Crudo.

𝐴𝑃𝐼 𝑇𝑎

PARAMETROS DE

ENTRADA

𝑆𝐺𝑂

𝐴𝑃𝐼

GRAVEDAD ESPECIFICA VISCOSIDAD

𝜇𝑂 [ ( 0 0 0 0 𝑆𝐺𝑂) 𝑇𝑎

6 ] -1

PROPIEDADES DEL

CRUDO

𝑆𝐺𝑂 𝜇𝑂

47

5.1.2. Algoritmo de programación propiedades del gas.

Algoritmo programación densidad del gas.

En base a las ecuaciones (5) y (6) se elabora el siguiente algoritmo.

Figura.5.2 Algoritmo Densidad del Gas.

𝑀𝑖 𝑇 𝑅 𝑃𝑂𝑃 𝑦𝑖

PARAMETROS DE ENTRADA

𝑀 ∑ 𝑦𝑖 𝑀𝑖

PESO MOLECULAR MEZCLA

𝜌𝑔 𝑃 𝑀

𝑍 𝑅 𝑇

DENSIDAD

PROPIEDADES DEL GAS

𝑍

𝜌𝑔

48

Algoritmo programación viscosidad del gas.

En base a la ecuación (7), (8) y (9) se elabora el siguiente algoritmo.

Figura.5.3 Algoritmo Viscosidad del Gas.

𝑇𝑟𝑚 [ (𝑇𝑂𝑃 )]

𝑇𝐶𝑚

TEMPERATURA REDUCIDA

𝑁 ( 𝑇𝑟𝑚 )

𝑇𝑂𝑃 𝑇𝐶 𝑃𝑂𝑃 𝑦𝑖

PARAMETROS DE ENTRADA

𝑃𝐶𝑚 ∑𝑦𝑖 𝑃𝑖𝑐

PRESION CRÍTICA

𝑁 𝑇𝑟𝑚 9

𝑇𝑟𝑚 N

O

S

I

𝜇𝑔 𝑁 𝑀𝑚

𝑃𝑐𝑚

𝑇𝐶𝑚

6

𝑇𝐶𝑚 ∑𝑦𝑖 𝑇𝑖𝑐

TEMPERATURA CRÍTICA

VISCOSIDAD DEL GAS

𝜇𝑔

49

5.1.3. Algoritmo programación factor de compresibilidad del gas.

En base a las ecuaciones (22), (25) y (26) se elabora el siguiente algoritmo.

𝑇𝑂𝑃 𝑇𝐶 𝑅 𝑃𝐶 𝑤𝑖 𝐾𝐼𝐽 𝑦𝑖

PARAMETROS DE ENTRADA

𝑇𝐶𝑖 𝑦𝑖 𝑇𝑖𝑐

TEMPERATURA CRÍTICA

𝑃𝐶𝑖 𝑦𝑖 𝑃𝑖𝑐

PRESION CRÍTICA

𝑎𝑖 𝑅 𝑇𝑐𝑖

𝑃𝑐𝑖

PARAMETRO DE

ATRACCION

FACTOR DE

COMPRESIBILIDAD Z

𝑏𝑖 𝑅 𝑇𝑐𝑖𝑃𝑐𝑖

PARAMETRO DE REPULSION

𝑚𝑖 𝑤𝑖 𝑤𝑖

FACTOR ADIMENSIONAL

𝛼𝑖 [ 𝑚𝑖( 𝑇𝑟𝑖 )]

𝑇𝑟 [ (𝑇𝑂𝑃 )]

𝑇𝐶

TEMPERATURA REDUCIDA

2 3

1

50

Figura.5.4 Algoritmo Factor Compresibilidad Z del Gas.

Z

3 1

𝑏𝑚 ∑𝑦𝑖 𝑏𝑖

PARAMETRO DE REPULSION MEZCLA

𝑎𝑚 ∑∑[𝑦𝑖𝑦𝑗(𝑎𝑖𝑎𝑗𝛼𝑖𝛼𝑗) ( 𝐾𝑖𝑗)]

𝑚

𝑗

𝑛

𝑖

PARAMETRO DE ATRACCION MEZCLA

2

𝐵 𝑏𝑚𝑃

𝑅𝑇

PARAMETRO DE REPULSION MEZCLA

𝐴 𝑎𝑚𝑃

(𝑅𝑇)

PARAMETRO DE ATRACCION MEZCLA

𝑧 (𝐵 ) 𝑧 (𝐴 𝐵 𝐵) 𝑧 (𝐵 𝐵 𝐴𝐵)

UTILIZAMOS EL MÉTODO DE NEWTON RAPSON

FACTOR

COMPRESIBILIDAD

51

5.1.4. Algoritmo de programación propiedades del agua.

En base a las ecuaciones (13) y (14) se elabora el siguiente algoritmo.

Figura.5.5 Algoritmo Propiedades del Agua.

PRESION

CRÍTICA

PARAMETRO DE

REPULSION

3

𝐶 𝐶 𝐶 𝐶 𝑇

PARAMETROS DE ENTRADA

𝜌𝑤 𝐶

𝐶 [ (

𝑇𝑂𝑃𝐶 ) 𝐶 ]

DENSIDAD

𝜇𝑤 𝑒 79𝑥 𝑇𝑜𝑝 9 𝑥

5𝑇𝑜𝑝

VISCOSIDAD

𝜇𝑤 𝜌𝑤

PROPIEDADES DEL AGUA

52

5.2. Estrategia de control del nivel de cámara de crudo.

La figura 5.6 muestra el modelo realizado en Simulink del controlador de nivel, donde K es

el conversor de señal analógico a digital (0,75 psig/mA), e K1 representa la ganancia del

actuador de la válvula. Mayor detalle se puede consultar en [23], página 773.

5.3. Estrategia de control del nivel colchón de agua cámara separación.

La figura 5.7 muestra el modelo elaborado en Simulink del controlador de nivel, del colchón

de agua en la cámara de separación, donde K es el conversor de señal analógico a digital

(0,75 psig/mA), y K1 representa la ganancia del actuador de la válvula, y las constantes del

controlador respectivamente.

5.4. Estrategia de control de la presión del separador.

La figura 5.8 muestra el modelo ejecutado en Simulink del controlador de presión, del

casquete de gas en el separador, donde K es el conversor de señal analógico a digital (0,75

psig/mA), y K1 representa la ganancia del actuador de la válvula, y las constantes del

controlador respectivamente.

Figura. 5.6 Control de nivel cámara de crudo.

Figura. 5.7 Control de nivel cámara de separación.

53

Figura. 5.8 Control de presión separador.

54

5.5. Diagrama general estrategia de control del separador trifásico.

La figura 5.9 muestra el sistema de control del separador trifásico.

Figura.5.9 Control del separador trifásico.

55

5.6. Lenguaje de programación

En el Anexo F se encuentra el desarrollo de solución del programa.

5.7. Resultados obtenidos en la simulación

La aplicación del diseño se realizó sobre un caso de estudio real, donde el punto de partida es

la información suministrada por campo.

5.8. Datos de entrada.

Para el caso en estudio se toman los datos otorgadas por los análisis cromatográficos del gas

tabla 5.1 (Anexo B), y condiciones pre-establecidas tabla 5.2 (Anexo G).

Para un crudo de densidad 200

API y un caudal de 2000 BFPD, se tiene los correspondientes

valores de componentes mostrados en la tabla 5.1.

Tabla. 5.1 Cromatografía del gas.

VALORES CROMATOGRAFICOS

COMPONENTE % MOLAR

VAPOR DE AGUA 12.9813

NITROGENO 3.9604

DIOXIDO DE CARBONO 51.5352

METANO 15.0215

ETANO 3.3403

PROPANO 6.5507

ISO-BUTANO 1.5202

N-BUTANO 3.0903

ISO-PENTANO 1.1901

N-PENTANO 0.6001

N-HEXANO 0.16

N-HEPTANO 0.0500

TOTAL 100

56

Tabla. 5.2 Parámetros mecánicos del separador.

PARAMETRO UNIDAD VALOR

Diámetro m 1.83 72”

Longitud cámara separación m 6.1 20’

Longitud cámara crudo m 1.22 4’

Altura del vertedero m 1.0 43”

Para la dinámica de la válvula se consideró su apertura es de tipo lineal (Anexo C) como se

muestra en la tabla 5.3.

Tabla 5.3 Parámetros de las válvulas de control

VALVULA CRUDO AGUA GAS

Tipo Lineal Lineal Lineal

Diámetro de la válvula 4 in 4in 6in

Constante Cv 212 212 417

5.9. Perturbaciones.

5.9.1. Perturbación de la fase gas.

La primera perturbación la realizamos al flujo de ingreso y en el control de la presión del

separador, con una variación tipo sinusoidal y escalón respectivamente, tabla 5.4

Tabla 5.4 Perturbación fase gas.

PERTURBACION AMPLITUD

Sinusoidal 0.7 Flujo

Tiempo 500

Escalón 10 Set point

Tiempo 1200

57

Resultado de la perturbación de presión.

Como se aprecia en las figuras 5.10 y 5.11, el sistema inicia con un flujo de caudal de salida

cero hasta los 420 segundos donde la presión empieza a sobrepasar el set point.

Luego a los 500 segundos sufre un incremento de caudal de gas con una perturbación

sinusoidal donde con el incremento repentino la presión llega hasta los 80 psi, el tiempo de

respuesta de la válvula de control es de 300 segundos hasta estabilizar el sistema.

Posteriormente con el incremento de la presión en su set, bajo las mismas condiciones de

caudal el tiempo de respuesta de la válvula es de 300 segundos y el sistema ha sido

estabilizado.

Figura.5.10 Caudal de ingreso y salida de gas.

Figura.5.11 Presión de sistema.

58

5.9.2. Perturbación del agua.

La segunda perturbación la realizamos en el flujo de ingreso y el control del colchón de agua

en la cámara de separación con una variación tipo sinusoidal y escalón, tabla 5.5.

Tabla 5.5 Perturbación del colchón de agua.

PERTURBACION AMPLITUD

Sinusoidal 0.4 Flujo

Tiempo 1000

Escalón 0.2 Set point

Tiempo 1200

Resultado la perturbación de agua en la cámara de separación.

De manera análoga a la perturbación en el control de la presión del sistema en las figuras 5.12

y 5.13, se describe el proceso de estabilización a los cambios descritos en la tabla 5.5.

5.9.3. Perturbación crudo.

La tercera perturbación la realizamos en la cámara de crudo, en su set point, y su respectiva

perturbación en el flujo de ingreso, tabla 5.6.

Tabla 5.6 Perturbación del nivel de crudo.

PERTURBACION AMPLITUD

Sinusoidal 0.02 Flujo

Tiempo 300

Escalón -0.2 Set point

Tiempo 1500

Resultado perturbación cámara de crudo.

Como se muestra en las figuras 5.14 y 5.15, el sistema a los 400 segundos experimenta un

pico de flujo de salida debido que la altura de la cámara de crudo tiene a subir muy

rápidamente, debe permanecer por debajo de 1 metro de altura porque a ésta se encuentra el

rebose del vertedero.

59

Figura.5.12 Caudal ingreso y salida de agua.

Figura.5.13 Altura del colchón de agua de la cámara separación.

60

Figura.5.14 Caudal de ingreso y salida de crudo.

Figura.5.15 Altura de la cámara de crudo.

61

5.10. Verificación de resultados

5.10.1. Propiedades físico químicas.

En esta ventana como se muestra en la figura 5.16. se ingresa los datos de la cromatografía del gas, presión y temperatura de operación además

de los datos mecánicos del separador.

Figura.5.16. Interface gráfica de las propiedades del fluido.

62

Se han relacionado los datos de la densidad (Anexo B), cuya variable es subsecuente para la

determinación de la simulación, con los obtenidos en laboratorio.

Tabla. 5.7 comparación densidad del gas

Temperatura presión densidad

(cromatografía)

densidad

(programa) error

F psi Kg/m3 Kg/m3

158 30 2.6389 2.43 0.07916177

32 14.7 1.6478 1.5 0.08969535

59 14.7 1.5593 1.37 0.12140063

77 14.7 1.5057 1.32 0.12333134

140 14.7 1.5598 1.18 0.24349276

63

5.10.2. Caudales proporcionados por el programa.

Se puede determinar que a mayor presión de operación del sistema se puede recuperar mayor volumen de hidrocarburos así:

Se recuperan 0.0125 m^3/s (6793 BOPD) a una presión de trabajo de 40 psi.

Se recuperan 0.0143 m^3/s (7771 BOPD) a una presión de trabajo de 80 psi.

Se recuperan 0.0158 m^3/s (8586 BOPD) a una presión de trabajo de 120 psi.

Se establece que el porcentaje de recuperación de livianos es de 45 BOPD/PSI

Figura. 5.17 Caudales de salida de crudo a distintas presiones.

64

De la Figura 5.18 se determina:

Se recuperan 0.006 m^3/s (3260 BGPD) a una presión de trabajo de 60 psi.

Se recuperan 0.006 m^3/s (3260 BGPD) a una presión de trabajo de 80 psi.

Al tener la misma capacidad de recuperación en caudal de gas se determina que la presión óptima de trabajo se encuentra 60 a 80 psi.

Figura. 5.18 Caudales de salida de gas a diferentes presiones.

Así como se ha determinado el comportamiento del separador para distintos escenarios con cada una de las perturbaciones mencionadas en

función del tiempo, también se ha podido desarrollar nomogramas como los mostrados en la Figura 5.19., en función del corte de agua y la

presión de separación.

65

Figura. 5.19 Nomograma caudal de recuperación de crudo y gas.

El anexo G muestra el caudal de líquido y gas recuperado para un vasto rango de presiones a distintos cortes de agua.

0,0

200,0

400,0

600,0

800,0

1000,0

1200,0

1400,0

1600,0

1800,0

0,000

0,500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

5,000

0 50 100 150 200 250 300 350 400 450 500 550

Crudo [BPD] Gas [MCFPD]

Caudal vs. Presión

gas 15% gas 30% gas 50% gas 80% oil 15% oil 30% oil 50% oil 80%

66

CAPÍTULO VI

6. CONCLUSIONES Y RECOMENDACIONES

6.1. Conclusiones

a) El modelo desarrollado en este trabajo es de utilidad en estudios de dinámica, control

y optimización. Como el sistema es complejo es necesario realizar ciertas

suposiciones con el objetivo de despreciar fenómenos no dominantes, para hacer que

el problema sea manejable desde un punto de vista numérico.

b) Mediante el algoritmo de simulación del proceso de separación se ha determinado las

condiciones de operación del sistema, el mismo que se encuentra entre los 55 a 65

psi.

c) El presente trabajo permite analizar con mínima información la presión idónea de

operación del equipo, con lo cual tanto el método como el programa son versátiles y

adaptables a diversas situaciones de operación.

d) Las correlaciones utilizadas en la simulación para la predicción de las propiedades

químicas de los sistemas de hidrocarburos son satisfactorias.

e) La simulación numérica nos proporcionan una visión futurista del comportamiento del

proceso de separación.

6.2. Recomendaciones

a) Elaborar más nomogramas que permitan determinar las condiciones óptimas de

separación dentro de la diversidad de crudos existentes en el país, para lograr obtener

un recobro máximo de líquidos.

b) Estudiar la hidrodinámica del separador, con la cuál se puede representar los efectos

de mezclado entre fases.

c) El modelo puede ser perfeccionado insertando correlaciones termodinámicas más

rigurosas para la determinación los coeficientes y propiedades de los fluidos.

d) Se recomienda realizar un estudio específico de los eliminadores de niebla para

determinar el efecto de éste en la recuperación de gas.

67

BIBLIOGRAFÍA

[1] API 12J., Specification and Oil and Gas Separators. Séptima Edición. Washington1989.

[2] ANDRADE, Francisco. Desarrollo de Herramienta de Simulación para Equipos

Separadores de Agua Libre. Trabajo de Grado. Master en Automatización Industrial.

Universidad Nacional de Colombia. Facultad de Ingemiería. Bogota, 2012.

[3] ARNOLD, Ken y STEWART, Maurice. Emulsions and Oil Treating Equipment, Editorial

Elsevier, Oxford, 2009.

[4] BANCO CENTRAL DEL ECUADOR, La actividad petrolera en el Ecuador en la década

de los 80, División técnica, Subgerencia financiera.

[5] BANZER, Carlos, Correlaciones Numéricas PVT [en línea], 1996, [fecha de

consulta: 10 de Julio2013], disponible en:

<http://oilproduction.net/cms/files/correlaciones%20PVT-Carlos%20Banzer.pdf>.

[6] BENALCAZAR, Hernán, Resultados Fundamentales del Análisis Vectorial. (2ª, 2010,

Quito, Ecuador). Universidad Central del Ecuador. Quito, 2010.

[7] BRENNEN, Christopher, Fundamentals of Multiphase Flow. Editorial Cambridge, New

York, 2005.

[8] CONFERENCIA Termodinámica y Procesos de Separación (2ª, 2010, Quito, Ecuador).

Generalidades de Separación. Universidad Central del Ecuador. Quito, 2011.

[9] CREUS, Antonio, Instrumentación Industrial, Sexta Edición, Editorial Alfaomega,

Barcelona, 1997.

[10] DIONNE, Marc. The Simulation of a Three Phase Separator. Trabajo de Grado. Master

en Ciencias en Ingeniería Química. Universidad de Calgary. Departamento de Ingeniería

Química y Petróleo. Ottawa. CA, 1998.

[11] DOMENICO, Diego. Estrategias de Controle Contra Intermitencia Severa na

Alimentacao de Separadores Offshore. Trabajo de Grado. Master en Ciencias en Ingeniería

Química. Universidad Federal do Rio de Janeiro. Escola de Química. Rio de Janeiro. 2009.

68

[12] GONZALES, Raúl, Apuntes de Simulación y Optimización: Estrategias de Solución en

el Modelado de Procesos, 12(80): 12-18, Abril 1995.

[13] GRODAL, Evert y REALFF, Matthew, Optimal Design of Two-and Three-Phase

Separators [en línea]. Georgia Institute of Technology, Houston, Texas. 1999,

[fecha de consulta: 8 de Mayo 2013], disponible en: < https://www.onepetro.org/conference-

paper/SPE-56645-MS>.

[14] HINCAPIE, Benjamín. Estudio y Diseño de Separadores Horizontales y Verticales de

Dos y Tres Fases. Trabajo de Grado. Ingeniero en Petróleo. Escuela Superior Politécnica del

Litoral. Facultad de Geología, Minas y Petróleos. Guayaquil. 1987.

[15] ISA-75.01.01-2007. Flow Equations for Sizing Control Valves. Carolina del Norte.

2007.

[16] MALDONADO, Daniel. Modelación del Proceso de Separación de Gas Crudo en la

Industria Petrolera. Trabajo de Grado. Ingeniero en Petróleos. Universidad ISTMO. Santo

Domingo Tehuantepec, 2010.

[17] MARTÍNEZ, Marcías y PEREZ, Ramiro. Características y Comportamiento de los

Hidrocarburos. Editorial Edwards, Maracaibo, 1975.

[18] MARTÍNEZ, Víctor, et all. Simulación de Procesos en Ingeniería Química. Editorial

Plaza y Valdés, Cuernavaca, 2000.

[19] MELO, Gonzales, LOPEZ, C. y CAMACHO, C., Simulación Dinámica de Sistemas

una Herramienta para el Análisis del Performance de Sistemas y Procesos en la Industria

Petrolera Metodología y Resultados [en línea]. Instituto Mexicano del Petróleo, Regional

Marina. 2009, [fecha de consulta: 8 de Enero 2013], disponible en:

<http://imiq.com.mx/convencion/web/SESIONES/JM-8-2.pdf>.

[20] PERRY Robert y REEN Do n. Perry’s Chemical Engineer’s Handbook. Séptima

Edición, Editorial Mc Graw Hill, 1999.

[21] RODRIGUEZ, Susana y VEGA, Aurelio. Simulación y Optimización Avanzadas en la

Industria Química y de Procesos. Tercera Edición, Editorial Oviedo, Oviedo 2005.

69

[22] SEADER, J. y HENLEY, E, Separation Process Principles, Chapter 1, Editorial

Hamilton 1998.

[23] SCENNA, Nicolás, et all, Modelado, Simulación y Optimización de Procesos Químicos

[en línea]. 1999, [fecha de consulta: 8 de Enero 2013], disponible en:

<http://nhmeed.cc.tx.us/1re/ke/peniche.html>.

[24] TANNUS, Nathalia, Modelagem Análise e Controle de um Processo de Separação Óleo

Água. Trabajo de Grado. Maestro en Ingeniería Química. Universidad Federal do Rio de

Janeiro. Río de Janeiro.2005.

[25] VERON, Smith y ARNOLD, Kenneth, Emulsion and Oil Treating an Equipment,

Editorial Elsevier, Oxford, 2009.

70

ANEXOS

Anexo A. Constantes físicas de los gases

71

72

Anexo.B. Cromatografía gases

73

Anexo.C. Coeficiente Cv de las válvulas de control tipo globo

Valve Size (in) Flow Characteristic Cv

1/2 Equal Percent

Quick Opening

4.20

6.27

1

Equal Percent

Linear

Quick Opening

17.4

20.1

21.4

1-1/2

Equal Percent

Linear

Quick Opening

33.4

34.9

38.0

2

Equal Percent

Linear

Quick Opening

56.2

65.3

67.2

2-1/2

Equal Percent

Linear

Quick Opening

87.2

86.5

93.1

3

Equal Percent

Linear

Quick Opening

121

135

150

4

Equal Percent

Linear

Quick Opening

203

212

235

6

Equal Percent

Linear

Quick Opening

357

417

469

8

Equal Percent

Linear

Quick Opening

808

836

875

10 Modifield Parabolic

Quick Opening

987

1360

12 Modifield Parabolic

Quick Opening

1180

1700

74

Anexo D. Coeficientes presión óptima.

Coeficientes Cálculo Presión Óptima

A1 1.7970640x100 B1 3.9836405x10

-3

A2 2.1987547x10-3

B2 3.9836405x10-6

A3 1.6185399x10-6

B3 -5.5610874x10-8

A4 9.331717x10-9

B4 4.5029573x10-11

C1 -5.2867215x10-5

D1 38.234458x100

C2 1.2446502x10-7

D2 -5.0398134x10-2

C3 -5.3578971x10-11

D3 -1.8534164x10-5

C4 -2.7626487x10-14

D4 3.2528255x10-8

75

Anexo E. Variación de niveles en el separador trifásico.

( ( )) ( )

donde A es el área del segmento circular ocupado por el líquido, h es la altura del líquido

ocupado, r es el radio del separador y es el ángulo central.

Como: , se tiene

( ( )) ( )

y de la relación ( ) , se obtiene:

( ( ) ( )) ( )

Teniendo en cuenta el diámetro, resulta:

( ( ) ( )) ( )

donde:

( )

( )

(

) ( )

√ ( )

De las ecuaciones (f) y (g) en (d) deducimos

( (

) (

) √ ) ( )

76

De la ecuación (e) en (h) se obtiene

A D2

4ar cos (1

2h

D)

D2

4

(

(1 2h

D) √1 (1

2h

D)2

)

(

)

√ ( ) ( )

77

Anexo F. Desarrollo de la solución en Matlab.

A continuación se presenta la codificación del programa:

% PROGRAMA PARA CALCULAR LAS PROPIEDADES FISICO QUIMICAS DEL

PETROLEO Y SU COMPORTAMIENTO EN UN SEPARADOR TRIFASICO %

function varargout = CalculoT(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @CalculoT_OpeningFcn, ...

'gui_OutputFcn', @CalculoT_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

%carga de datos a simulink

try

fname = 'PRUEBAquinta';

format long;

% pregunta si existe el modelo de control en simulink, caso contario cierra el programa

if exist(fname,'file') == 4

% If it does then check whether it's open

if bdIsLoaded(fname)

else

open_system(fname,'window')

end

end

catch

close(0);

end

handles.model_name=fname;

%Ingreso de las propiedades fisicoquímicas

handles.colgdc_nombre=1; % nombre del elemento

handles.colgdc_abrev=2; % abreviatura del elemento

handles.colgdc_formula=3; % formula quimica

handles.colgdc_fractM=4; % fracción molar

78

handles.colgdc_factorA=5; % factor acéntrico pag. 184 Perry

handles.colgdc_PresionMpa=6; % presión critica elemento pg. 184 Perry

handles.colgdc_PresionPsi=7; % Transformacion de presión

handles.colgdc_TempCritica=8; % temperatura critica pg. 184 Perry handles.colgdc_cuno=9;

% constante C1 pg. 102 Perry

handles.colgdc_cdos=10; % constante C2 pg. 102 Perry

handles.colgdc_ctres=11; constante C3 pg. 102 Perry y

handles.colgdc_ccuatro=12; constante C4 pg. 102 Perry handles.colgdc_ccinco=13; %

constante C5 pg. 102 Perry pg. 102 Perry

handles.colgdc_PresVPa=14; % presión vapor en Pa

handles.colgdc_PresVPsi=15; % presión vapor en psi

handles.colgdc_Salida=16; % condición de estado

handles.colgdc_Estado=17;

handles.output = hObject;

handles.C=12; % peso atómico carbón

handles.N=14; % peso atómico nitrógeno

handles.O=16; % peso atómico oxigeno

handles.H=1; % peso atómico hidrógeno

% carga de valores Ingresados

if exist('values.dat','file')==0

defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];

%get(handles.ParametrosConstantes,'data');

dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')

%currData = get(handles.ParametrosConstantes,'data');

%disp(currData);

end

valuesData=dlmread('values.dat',';');

set(handles.temp_F,'string',valuesData(1));

set(handles.presion_psi,'string',valuesData(4));

set(handles.api,'string',valuesData(6));

set(handles.temp_yacimiento,'string',valuesData(7));

set(handles.const_gas_r,'string',valuesData(8));

% Update handles structure

guidata(hObject, handles);

function varargout = CalculoT_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function slider1_Callback(hObject, eventdata, handles)

function slider1_CreateFcn(hObject, eventdata, handles)

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 .9 .9]);

end

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

function totalyipsi_Callback(hObject, eventdata, handles)

function totalyipsi_CreateFcn(hObject, eventdata, handles)

79

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function totalyitr_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all properties.

function totalyitr_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function varA_Callback(hObject, eventdata, handles)

function varA_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function varB_Callback(hObject, eventdata, handles)

function varB_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function factam_Callback(hObject, eventdata, handles)

function factam_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function repm_Callback(hObject, eventdata, handles)

function repm_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function zfact_Callback(hObject, eventdata, handles)

function zfact_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function densidad_Callback(hObject, eventdata, handles)

function densidad_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function viscosidad_Callback(hObject, eventdata, handles)

80

function viscosidad_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function pushbutton4_Callback(hObject, eventdata, handles)

function pushbutton5_Callback(hObject, eventdata, handles)

function frac_moral_Callback(hObject, eventdata, handles)

function frac_moral_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function grav_espec_Callback(hObject, eventdata, handles)

function grav_espec_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

funtion visco_Callback(hObject, eventdata, handles)

function visco_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function Actualizar_Callback(hObject, eventdata, handles) %actualizar datos

ActualizarData(hObject, eventdata, handles);

function const_gas_r_Callback(hObject, eventdata, handles)

function const_gas_r_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function const_gas_f_Callback(hObject, eventdata, handles)

function const_gas_f_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function const_gas_k_Callback(hObject, eventdata, handles)

function const_gas_k_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function api_Callback(hObject, eventdata, handles)

function api_CreateFcn(hObject, eventdata, handles)

.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

81

set(hObject,'BackgroundColor','white');

end

function temp_yacimiento_Callback(hObject, eventdata, handles)

function temp_yacimiento_CreateFcn(hObject, eventdata, handles)

.if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function presion_psi_Callback(hObject, eventdata, handles)

function presion_psi_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function presion_pa_Callback(hObject, eventdata, handles)

function presion_pa_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function temp_F_Callback(hObject, eventdata, handles)

function temp_F_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function temp_K_Callback(hObject, eventdata, handles)

function temp_K_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function temp_R_Callback(hObject, eventdata, handles)

function temp_R_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function viscom_Callback(hObject, eventdata, handles)

function viscom_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function pesom_Callback(hObject, eventdata, handles)

function pesom_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

82

function temprm_Callback(hObject, eventdata, handles)

function temprm_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function densg_Callback(hObject, eventdata, handles)

function densg_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function densgmtres_Callback(hObject, eventdata, handles)

function densgmtres_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function viscompas_Callback(hObject, eventdata, handles)

function viscompas_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function tempsr_Callback(hObject, eventdata, handles)

function tempsr_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function factz_Callback(hObject, eventdata, handles)

function factz_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function presioncmpsi_Callback(hObject, eventdata, handles)

function presioncmpsi_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function factorn_Callback(hObject, eventdata, handles)

function factorn_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function guardar_Callback(hObject, eventdata, handles) % guarda cambios

SaveWorkspace(hObject, eventdata, handles);

83

display('guardado');

function ActualizarData(hObject, eventdata, handles)

RecalcularGrilla(hObject, eventdata, handles);

RecalcularTodo(hObject, eventdata, handles);

%ActualizaC(hObject, eventdata, handles);

SaveWorkspace(hObject, eventdata, handles);

function CalculosIngreso(hObject, eventdata, handles)

caudal=str2double(get(handles.ccaudal,'string'));

PORBSW=str2double(get(handles.cbsw,'string'));

ppsi=str2double(get(handles.presion_psi,'string'));

agua_flujo= (caudal*PORBSW)/100;

gas_flujo=(caudal-agua_flujo)*0.4946*2.7182^(-0.0082*ppsi);

crudo_flujo=(caudal-agua_flujo)-gas_flujo;

set(handles.ccrudo,'string',crudo_flujo)

set(handles.cagua,'string',agua_flujo)

set(handles.cgas,'string',gas_flujo)

function CalcularAceite(hObject, eventdata, handles)

GravEsp=get(handles.grav_espec,'string');

dencA=str2double(GravEsp)*1000;

set(handles.denc,'string',dencA);

%Actualiza los datos en el simulink

function SaveWorkspace(hObject, eventdata,handles)

try

gData=get(handles.GrillaData,'data');

fileID = fopen('saved.dat','w');

for i=1:size(gData,1)

try

v13=gData{i,handles.colgdc_Salida};

v13 = strrep(v13, '<html><span style="color: #FF0000; font-weight: bold;">',

v13 = strrep(v13, '</span></html>','');

v1=gData{i,handles.colgdc_nombre};

v2=gData{i,handles.colgdc_abrev};

v3=gData{i,handles.colgdc_formula};

v4=gData{i,handles.colgdc_fractM};

v5=gData{i,handles.colgdc_factorA};

v6=gData{i,handles.colgdc_PresionKpa};

v7=gData{i,handles.colgdc_PresionPsi};

v8=gData{i,handles.colgdc_TempCritica};

v9=gData{i,handles.colgdc_cuno};

v10=gData{i,handles.colgdc_cdos};

v11=gData{i,handles.colgdc_ctres};

v12=gData{i,handles.colgdc_ccuatro};

v14=gData{i,handles.colgdc_ccinco};

v15=gData{i,handles.colgdc_PresVPa};

v16=gData{i,handles.colgdc_PresVPsi};

v17=gData{i,handles.colgdc_Estado};

fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1

84

2.12f;%12.12f;%12.12f;%12.12f;%12.12f;%s;%d\n',v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12

,v14,v15,v16,v13,v17);

catch

errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor

incorrecto','modal')

fclose(fileID);

try

delete('saved.dat');

catch

end

return;

end

end

fclose(fileID);

% carga de valores Ingresados

defaultData = zeros(1,12);

defaultData(1,1)=str2num(get(handles.temp_F,'string'));

defaultData(1,2)=str2num(get(handles.temp_K,'string'));

defaultData(1,3)=str2num(get(handles.temp_R,'string'));

defaultData(1,4)=str2num(get(handles.presion_psi,'string'));

defaultData(1,5)=str2num(get(handles.presion_pa,'string'));

defaultData(1,6)=str2num(get(handles.api,'string'));

defaultData(1,7)=str2num(get(handles.temp_yacimiento,'string'));

defaultData(1,8)=str2num(get(handles.const_gas_r,'string'));

defaultData(1,9)=str2num(get(handles.const_gas_f,'string'));

defaultData(1,10)=str2num(get(handles.const_gas_k,'string'));

defaultData(1,11)=str2num(get(handles.grav_espec,'string'));

defaultData(1,12)=str2num(get(handles.visco,'string'));

dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')

catch

errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor

incorrecto','modal')

return ;

end

function string = cell2str(cellstr)

if nargin~=1

error('CELL2STR:Nargin','Takes 1 input argument.');

end

if ischar(cellstr)

string = ['''' strrep(cellstr,'''','''''') ''''];

return

end

if ~iscellstr(cellstr)

error('CELL2STR:Class','Input argument must be cell array of strings.');

end

if ndims(cellstr)>2

error('CELL2STR:TwoDInput','Input cell array must be 2-D.');

end

ncols = size(cellstr,2);

for i=1:ncols-1

85

cellstr(:,i) = cellfun(@(x)['''' strrep(x,'''','''''') ''','],...

cellstr(:,i),'UniformOutput',false);

end

if ncols>0

cellstr(:,ncols) = cellfun(@(x)['''' strrep(x,'''','''''') ''';'],...

cellstr(:,ncols),'UniformOutput',false);

end

cellstr = cellstr';

string = ['{' cellstr{:} '}'];

function LoadGrillaCalculos(hObject, eventdata, handles)

gData=get(handles.GrillaData,'data');

%carga de datos guardados

% carga de constantes

if exist('dataconst.dat','file')==0

defaultData = [0.343 22064 3200.1 647.1 73.649 -7258.2 -7.3037 4.1653E-06 2;

0.037 3396 492.5 126.19 58.282 -1084.1 -8.3144 0.044127 1;

0.224 7377 1069.9 304.13 140.54 -4735 -21.268 0.040909 1;

0.011 4599 667.0 190.56 39.205 -1324.4 -3.4366 0.000031019 2;

0.098 4872 706.6 305.33 51.857 -2598.7 -5.1285 0.000014913 2;

0.149 4244 615.5 369.77 59.078 -3492.6 -6.0669 0.000010919 2;

0.197 3640 527.9 407.82 66.343 -4363.2 -7.046 9.4509E-06 2;

0.197 3798 550.9 425.12 66.343 -4363.2 -7.046 9.4509E-06 2;

0.251 3381 490.4 460.4 78.741 -5420.3 -8.8253 9.6171E-07 2;

0.251 3370 488.8 469.7 78.741 -5420.3 -8.8253 9.6171E-07 2;

0.304 3012 436.9 433.7 104.65 -6995.5 -12.702 0.000012381 2;

0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;

0.999666333 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;

0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;

0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;

0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;

0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2];

%get(handles.ParametrosConstantes,'data');

dlmwrite('dataconst.dat',defaultData,'precision',12,'delimiter',';')

%currData = get(handles.ParametrosConstantes,'data');

%disp(currData);

end

constData=dlmread('dataconst.dat',';');

%carga de grilla guardada

if exist('saved.dat','file') == 0

defaultNames={'agua';'nitrogeno';'monoxido carb';'metano';'etano';'propano';'i-butano';'n-

butano';'i-pentano';'n-pentano';'hexano';'heptano';'octano';'nonano';'decano';'un

decano';'dodecano';' tridecano';'AC SULFURICO'};

defaultAbrev={'H2O';'N2';'CO2';'CO2';'C2';'C3';'IC4';'NC4';'IC5';'NC5';'NC6';'NC7';'NC8';'N

C9';'NC10';'NC11';'NC12';'NC13';'H2S'};

defaultForms={'H*2+O';'N*2';'C+O*2';'C+H*4';'C*2+H*6';'C*3+H*8';'C*4+H*10';'C*4+H*

10';'C*5+H*12';'C*5+H*12';'C*6+H*14';'C*7+H*16';'C*8+H*18';'C*9+H*20';'C*10+H*22';

'C*11+H*24';'C*12+H*26';'C*13+H*28';'H*2+C'};

defaultData = [1 1 1 0.1298 0.343 21.94 3182.13 647.10 73.65 -7258.20 -7.304 4.1650E-06

2.00 2.51E+03 3.63E-01;

86

1 1 1 0.0396 0.037 3.39 491.68 126.19 58.28 -1084.10 -8.314 4.4127E-02 1.00 6.68E+08

9.69E+04;

1 1 1 0.5154 0.224 7.39 1071.83 304.13 140.54 -4735.00 -21.268 4.0909E-02 1.00 5.89E+06

8.55E+02;

1 1 1 0.1502 0.011 4.59 665.72 190.56 39.21 -1324.40 -3.437 3.1019E-05 2.00 5.68E+07

8.24E+03;

1 1 1 0.0334 0.098 4.85 703.43 305.33 51.86 -2598.70 -5.128 1.4913E-05 2.00 3.86E+06

5.59E+02;

1 1 1 0.0655 0.149 4.21 610.61 369.77 59.08 -3492.60 -6.067 1.0919E-05 2.00 8.62E+05

1.25E+02;

1 1 1 0.0152 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05

3.13E+01;

1 1 1 0.0309 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05

3.13E+01;

1 1 1 0.0119 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04

8.57E+00;

1 1 1 0.006 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04

8.57E+00;

1 1 1 1.60E-03 0.304 3.04 440.91 507.60 104.65 -6995.50 -12.702 1.2381E-05 2.00

1.71E+04 2.48E+00;

1 1 1 0.0005 0.346 2.72 394.50 540.20 87.83 -6996.40 -9.880 7.2099E-06 2.00 4.98E+03

7.22E-01;

1 1 1 0 0.396 2.47 358.24 568.70 96.08 -7900.20 -11.003 7.1802E-06 2.00 1.50E+03 2.17E-

01;

1 1 1 0.00E+00 0.446 2.31 335.04 594.60 109.35 -9030.40 -12.882 7.8544E-06 2.00

4.52E+02 6.56E-02;

1 1 1 0 0.488 2.09 303.13 617.70 112.73 -9749.60 -13.245 7.1266E-06 2.00 1.38E+02 1.99E-

02;

1 1 1 0 0.530 1.95 282.82 639.00 131.00 -11143.00 -15.855 8.1871E-06 2.00 4.10E+01

5.95E-03;

1 1 1 0 0.577 1.82 263.97 658.00 137.47 -11976.00 -16.698 8.0906E-06 2.00 1.28E+01

1.86E-03;

1 1 1 0 0.617 1.68 243.66 675.00 137.45 -12549.00 -16.543 7.1275E-06 2.00 3.99E+00

5.78E-04;

1 1 1 0 0.096 9.00 1305.34 373.53 85.58 -3839.90 -11.199 1.8848E-02 1.00 1.83E+06

2.66E+02;];

fileID = fopen('saved.dat','w');

for i=1:size(defaultNames,1)

try

fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1

2.12f;%12.12f;%12.12f;%12.12f;%12.12f;%s;%d\n',defaultNames{i},defaultAbrev{i},defaul

tForms{i},defaultData(i,handles.colgdc_fractM),defaultData(i,handles.colgdc_factorA),defau

ltData(i,handles.colgdc_PresionKpa),defaultData(i,handles.colgdc_PresionPsi),defaultData(i,

handles.colgdc_TempCritica),defaultData(i,handles.colgdc_cuno),defaultData(i,handles.colg

dc_cdos),defaultData(i,handles.colgdc_ctres),defaultData(i,handles.colgdc_ccuatro),defaultD

ata(i,handles.colgdc_ccinco),defaultData(i,handles.colgdc_PresVPa),defaultData(i,handles.co

lgdc_PresVPsi),'LIQUIDO',1);

catch

87

errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor

incorrecto','modal')

fclose(fileID);

try

delete('saved.dat');

catch

end

close(0);

return

end

end

fclose(fileID);

end

fileID = fopen('saved.dat','r');

try

TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s

%d','delimiter',';','EmptyValue',0);

catch

errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')

fclose(fileID);

try

delete('saved.dat');

catch

end

close(0);

return

end

fclose(fileID);

try

rows=size(TVals{1},1);

cols=size(gData,2);

for i=1:rows

for j=1:cols

if j==handles.colgdc_nombre || j == handles.colgdc_abrev || j == handles.colgdc_formula || j

== handles.colgdc_Salida

Valor=TVals{j};

gData{i,j}=Valor{i};

elseif j==handles.colgdc_Estado

Valor=TVals{j};

if Valor(i)==1

gData{i,j}=true;

else

gData{i,j}=false;

end

else

Valor=TVals{j};

gData{i,j}=Valor(i);

end

end

end

88

set(handles.GrillaData,'data',gData);

catch

try

delete('saved.dat');

catch

end

errordlg('No es posible cargar los datos guardados pueden que estos esten

corruptos.','Valor incorrecto','modal')

close(0);

end

function RecalcularTodo(hObject, eventdata, handles)

%calculo temperatura F K R

valor_F = str2num(get(handles.temp_F,'string'));

if isnan(valor_F)

errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')

uicontrol(handles.temp_F)

return

end

resultado=(5*(valor_F-32)/9)+273.15;

set(handles.temp_K,'string',resultado);

resultado=(valor_F-32)+491.67;

set(handles.temp_R,'string',resultado);

%calculo presión en Pascales

valor_psi = str2num(get(handles.presion_psi,'string'));

if isnan(valor_psi)

errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')

uicontrol(handles.presion_psi)

return

end

resultado=valor_psi*6894.75;

set(handles.presion_pa,'string',resultado);

%calculo const_gas

valor_gr = str2num(get(handles.const_gas_r,'string'));

if isnan(valor_gr)

errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')

uicontrol(handles.const_gas_r)

return

end

resultado=(valor_gr*2.2*460.67)/1000;

set(handles.const_gas_f,'string',resultado);

resultado=resultado/255.9278;

set(handles.const_gas_k,'string',resultado);

%GRAVEDAD ESPECIFICA GAS

api=str2num(get(handles.api,'string'));

grav_espec=141.5/(131.5+api);

set(handles.grav_espec,'string',grav_espec);

%VISCOSIDAD GAS

temp_yacimiento=str2num(get(handles.temp_yacimiento,'string'));

visco=(10^((10^(3.0324-0.02023*grav_espec))*(temp_yacimiento^-1.163)))-1;

89

set(handles.visco,'string',visco);

function RecalcularGrilla(hObject, eventdata, handles)

data=get(handles.GrillaData,'data');

rows=size(data,1);

temp_K=str2num(get(handles.temp_K,'string'));

suma_frac=0;

for i=1:rows

%calculo presión de vapor

if isnumeric(data{i,handles.colgdc_cuno})

c1=data{i,handles.colgdc_cuno};

else

c1=str2num(data{i,handles.colgdc_cuno});

end

if isnumeric(data{i,handles.colgdc_cdos})

c2=data{i,handles.colgdc_cdos};

else

c2=str2num(data{i,handles.colgdc_cdos});

end

if isnumeric(data{i,handles.colgdc_ctres})

c3=data{i,handles.colgdc_ctres};

else

c3=str2num(data{i,handles.colgdc_ctres});

end

if isnumeric(data{i,handles.colgdc_ccuatro})

c4=data{i,handles.colgdc_ccuatro};

else

c4=str2num(data{i,handles.colgdc_ccuatro});

end

if isnumeric(data{i,handles.colgdc_ccinco})

c5=data{i,handles.colgdc_ccinco};

else

c5=str2num(data{i,handles.colgdc_ccinco});

end

if isnumeric(data{i,handles.colgdc_fractM})

valorFM=data{i,handles.colgdc_fractM};

else

valorFM=str2num(data{i,handles.colgdc_fractM});

end

if data{i,handles.colgdc_Estado}==0

salidatipo='APAGADO';

else

suma_frac=suma_frac+valorFM;

vapor_pa=c1+(c2/temp_K)+(c3*log(temp_K))+(c4*(temp_K^c5));

vapor_pa=exp(vapor_pa);

if isinf(vapor_pa)

valor_pa=0;

end

data{i,handles.colgdc_PresVPa}=vapor_pa;

psi = vapor_pa / 6894.75;

presion_psi_val=str2num(get(handles.presion_psi,'string'));

90

salidatipo='LIQUIDO';

if psi>=presion_psi_val

salidatipo='GAS';

end

end

data{i,handles.colgdc_Salida}=strcat('<html><span style="color: #FF0000; font-weight:

bold;">', salidatipo,'</span></html>');

end

set(handles.GrillaData,'data',data);

set(handles.frac_moral,'string',suma_frac);

if suma_frac>1.1 | suma_frac<0.9

h = msgbox('Los Valores Frac. Molar estan fuera de rango', 'Error','error','modal');

set(handles.guardar,'enable','off');

else

set(handles.guardar,'enable','on');

end

function GrillaData_CellEditCallback(hObject, eventdata, handles)

data=get(hObject,'Data');

cols=get(hObject,'ColumnFormat');

if strcmp(cols(eventdata.Indices(2)),'logical')

if eventdata.EditData

data{eventdata.Indices(1),eventdata.Indices(2)}=true;

else

data{eventdata.Indices(1),eventdata.Indices(2)}=false;

end

set(hObject,'Data',data);

else

col = size(eventdata.Indices,2);

if col==handles.colgdc_nombre || handles.colgdc_abrev==col ||

handles.colgdc_formula==col

if col==handles.colgdc_formula

H=1;

N=1;

O=1;

C=1;

try

m=eval(eventdata.NewData);

catch

data=get(handles.GrillaData,'data');

data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;

set(handles.GrillaData,'data',data);

end

else

end

else

if isnan(str2double(eventdata.EditData))

data=get(handles.GrillaData,'data');

data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;

set(handles.GrillaData,'data',data);

91

end

end

end

RecalcularGrilla(hObject, eventdata, handles);

RecalcularTodo(hObject, eventdata, handles);

function cargar_Infoz(hObject, eventdata, handles)

if exist('values.dat','file')==0

defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];

dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')

end

valuesData=dlmread('values.dat',';');

handles.vtemp_F=valuesData(1);

handles.vtemp_K=valuesData(2);

handles.vtemp_R=valuesData(3);

handles.vpresion_psi=valuesData(4);

handles.vpresion_pa=valuesData(5);

handles.vapi=valuesData(6);

handles.vtemp_yacimiento=valuesData(7);

handles.vconst_gas_r=valuesData(8);

handles.vconst_gas_f=valuesData(9);

handles.vconst_gas_k=valuesData(10);

handles.vgrav_espec=valuesData(11);

handles.vvisco=valuesData(12);

if exist('tperiod.dat','file')==0

elementoNombre={'H';'N';'O';'C'};

elementoValor=[1;14;16;12];

fileID = fopen('tperiod.dat','w');

for index = 1:numel(elementoNombre)

try

nombre=elementoNombre{index};

valor=elementoValor(index);

fprintf(fileID,'%s;%12.12f\n',nombre,valor);

catch

errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor

incorrecto','modal')

fclose(fileID);

close();

end

end

fclose(fileID);

end

fileID = fopen('tperiod.dat','r');

T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);

fclose(fileID);

ce=T{2};

handles.H=ce(1);

handles.N=ce(2);

handles.O=ce(3);

handles.C=ce(4);

H=ce(1);

92

N=ce(2);

O=ce(3);

C=ce(4);

bTrue=true;

disp(exist('saved.dat','file'));

if exist('saved.dat','file')==2

fileID = fopen('saved.dat','r');

try

TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s

%d','delimiter',';','EmptyValue',0);

handles.TVals=TVals;

catch

errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')

fclose(fileID);

try

delete('saved.dat');

catch

end

close(0);

return

end

fclose(fileID);

else

errordlg('No existen los valores necesarios para realizar el calculo.','Valor

incorrecto','modal')

close(0);

return;

nd

TData_col=size(TVals,2);

TData_row=size(TVals{1},1);

tNombres = TVals{handles.colgdc_nombre};

tAbrev = TVals{handles.colgdc_abrev};

tFormula = TVals{handles.colgdc_formula};

tyi = TVals{handles.colgdc_fractM};

tfa = TVals{handles.colgdc_factorA};

tpre_kpa = TVals{handles.colgdc_PresionKpa};

tpre_psi = TVals{handles.colgdc_PresionPsi};

ttempc_k = TVals{handles.colgdc_TempCritica};

tc1 = TVals{handles.colgdc_cuno};

tc2 = TVals{handles.colgdc_cdos};

tc3 = TVals{handles.colgdc_ctres};

tc4 = TVals{handles.colgdc_ccuatro};

tc5 = TVals{handles.colgdc_ccinco};

tprevap_pa = TVals{handles.colgdc_PresVPa};

tprevap_psi = TVals{handles.colgdc_PresVPsi};

tSalidas = TVals{handles.colgdc_Salida};

tEstados = TVals{handles.colgdc_Estado};

aac=get(handles.const_gas_r,'string');

aad=get(handles.temp_R,'string');

cgr=str2num(get(handles.const_gas_r,'string'));

93

tmpr=str2num(get(handles.temp_R,'string'));

fileID = fopen('zconst.dat','w');

for bIndex = 1:numel(tNombres)

nombre=tNombres{bIndex};

abrev=tAbrev{bIndex};

formula=tFormula{bIndex};

if (strcmpi(strtrim(tSalidas{bIndex}),'LIQUIDO')==true) | tEstados(bIndex)==0

M=0;

yi=0;

Myi=0;

fa=0;

pre_kpa=0;

pre_psi=0;

yipre_psi=0;

tempc_k=0;

tempc_r=0;

yitempc_r=0;

tempr_r=0;

factorA=0;

factorR=0;

mi=0;

coeAlpha=0;

yiR=0;

c1=0;

c2=0;

c3=0;

c4=0;

c5=0;

prevap_pa=0;

prevap_psi=0;

estado='';

else

try

disp(eval(formula));

M=eval(formula);

catch

M=0;

end

yi=tyi(bIndex,1);

Myi=M*yi;

fa=tfa(bIndex);

pre_kpa=tpre_kpa(bIndex);

pre_psi=tpre_psi(bIndex);

yipre_psi=yi*pre_psi;

tempc_k=ttempc_k(bIndex);

tempc_r=(9/5)*tempc_k;

yitempc_r=yi*tempc_r;

%tempr_r=handles.temp_R/tempc_r;

tempr_r=handles.vtemp_R/tempc_r;

factorA=0.45724*(((cgr^2)*(tempc_r^2))/(pre_psi));

94

factorR=0.0778*((cgr*tempc_r)/pre_psi);

mi=0.37464+1.54226*fa-0.26992*(fa^2);

coeAlpha=(1+mi*(1-(tmpr/tempc_r)^0.5))^2;

yiR=yi*tempr_r;

c1=tc1(bIndex);

c2=tc2(bIndex);

c3=tc3(bIndex);

c4=tc4(bIndex);

c5=tc5(bIndex);

prevap_pa=tprevap_pa(bIndex);

prevap_psi=tprevap_psi(bIndex);

estado=tSalidas{bIndex};

end

try

fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1

2.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',nombre,abrev,formula,yi,pre_kpa,pre_psi,yipre_

psi,tempc_k,tempc_r,yitempc_r,fa,factorA,factorR,coeAlpha,mi);

catch

fclose(fileID);

close();

end

end

fclose(fileID);

dgvcol_Nombres=1;

dgvcol_Abrev=2;

dgvcol_Formula=3;

dgvcol_yi=4;

dgvcol_prekpa=5;

dgvcol_prepsi=6;

dgvcol_yiprepsi=7;

dgvcol_tempk=8;

dgvcol_tempr=9;

dgvcol_yitempr=10;

dgvcol_fa=11;

dgvcol_factA=12;

dgvcol_factR=13;

dgvcol_coeAlpha=14;

dgvcol_mi=15;

fileID = fopen('zconst.dat','r');

try

TValsZ = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f

%f','delimiter',';','EmptyValue',0);

VData = get(handles.GrillaDataZ,'data');

[vRows,vCols]=size(VData);

tNombres=TValsZ{dgvcol_Nombres};

tAbrev=TValsZ{dgvcol_Abrev};

tFormula=TValsZ{dgvcol_Formula};

tyi=TValsZ{dgvcol_yi};

tpre_kpa=TValsZ{dgvcol_prekpa};

95

tpre_psi=TValsZ{dgvcol_prepsi};

tyipre_psi=TValsZ{dgvcol_yiprepsi};

ttempc_k=TValsZ{dgvcol_tempk};

ttempc_r=TValsZ{dgvcol_tempr};

tyitempc_r=TValsZ{dgvcol_yitempr};

tfa=TValsZ{dgvcol_fa};

tfactorA=TValsZ{dgvcol_factA};

tfactorR=TValsZ{dgvcol_coeAlpha};

tcoeAlpha=TValsZ{dgvcol_coeAlpha};

tmi=TValsZ{dgvcol_mi};

VData = [tNombres tAbrev tFormula num2cell(tyi) num2cell(tpre_kpa)

num2cell(tpre_psi) num2cell(tyipre_psi) num2cell(ttempc_k) num2cell(ttempc_r)

num2cell(tyitempc_r) num2cell(tfa) num2cell(tfactorA) num2cell(tfactorR)

num2cell(tcoeAlpha) num2cell(tmi)];

set(handles.GrillaDataZ,'data',VData);

[xRows,XCols] = size(TVals{1});

suma=0;

suma1=0;

suma2=0;

suma3=0;

for i=1:xRows

suma1=suma1+(tyi(i)*tpre_psi(i));

suma3=suma3+(tyi(i)*ttempc_r(i));

suma2=suma2 + (tyi(i)*tfactorR(i));

for j=i+1:xRows

suma = suma + ((tyi(i)*tyi(j)) * (tfactorA(i) * tfactorA(j) * tcoeAlpha(i) * tcoeAlpha(j) )

^ 0.5);

end

end

va=(suma*handles.vpresion_psi)/((handles.vconst_gas_r*handles.vtemp_R)^2);

vb=(suma2*handles.vpresion_psi)/(handles.vconst_gas_r*handles.vtemp_R)

for z=-1:0.15:2.75

if z>-1

zgraf=[zgraf ValueZ(z,va,vb)];

ejezG=[ejezG z];

else

ejezG=z;

zgraf=ValueZ(z,va,vb);

end

end

handles.ejex=ejezG;

y1=zgraf;

plot(handles.ejex,y1,'LineWidth',1);grid on;

axis([min(ejezG) max(ejezG) -2 1]);

set(handles.varA,'string',va);

set(handles.varB,'string',vb);

set(handles.factam,'string',suma);

set(handles.totalyipsi,'string',suma1);

set(handles.totalyitr,'string',suma3);

96

set(handles.repm,'string',suma2);

catch errorObj

errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');

fclose(fileID);

close();

end

fclose(fileID);

% CALCULO DE FACTOR Z METODO NEWTON RAPHSON

vb=0.002269757;

va=0.004557599;

fnz0=1;

fnz1=vb-1;

fnz2=va-3*vb^2-2*vb;

fnz3=vb^3+vb^2-va*vb;

fzrn2=3;

fzrn1=2*fnz1;

fzrn0=fnz2;

zn=0;

fz=0;

fz1=0;

zn1=0;

fzerror=0;

zFact=0;

for i=0:8

if i<1

zn=0;

fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;

fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;

zn1=zn-(fz/fz1);

fzerror=(zn1-zn)/zn1;

if abs(fzerror)<0.000001

zFact=zn;

end

table_z=[zn fz fz1 zn1 fzerror];

else

zn=table_z(i,4);

fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;

fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;

zn1=zn-(fz/fz1);

fzerror=(zn1-zn)/zn1;

if abs(fzerror)<0.000001

zFact=zn;

end

table_z=[table_z; zn fz fz1 zn1 fzerror];

end

end

disp(table_z);

disp(zFact);

set(handles.zfact,'string',zFact);

97

try

fileID = fopen('zdatafact.dat','w');

[torows,tocols]=size(table_z);

for tc=1:torows

printf(fileID,'%12.12f;%12.12f%12.12f;%12.12f;%12.12f;\n',table_z(tc,1),table_z(tc,2),table

_z(tc,3),table_z(tc,4),table_z(tc,5));

end

catch errorObj

errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');

fclose(fileID);

close();

end

fclose(fileID);

try

fileID = fopen('zvalues.dat','w');

[torows,tocols]=size(zgraf);

for tc=1:tocols

fprintf(fileID,'%12.12f;%12.12f\n',ejezG(tc),zgraf(tc));

end

catch errorObj

errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');

fclose(fileID);

close();

end

fclose(fileID);

try

fileID = fopen('zdatavalues.dat','w');

fprintf(fileID,'%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',suma,suma2

,suma1,suma3,va,vb,zFact);

catch errorObj

errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');

fclose(fileID);

close();

end

fclose(fileID);

function valorZ=ValueZNRampshon(z,a,b)

valorZ=(3*(z^2))+((2*(b-1)*z)+(a-(3*(b^2)))-(2*b));

function valorZ=ValueZ(z,a,b)

valorZ=(z^3)+((b-1)*z^2)+(a-3*b^2-2*b)*z+(b^3+b^2-a*b);

function CalcularAgua(hObject, eventdata, handles)

if exist('tabla32.dat','file')==0

defaultData = [5.459 4.9669 4.391;0.30542 0.27788 0.2487;647.13 647.13 647.13;0.081

0.1874 0.2534];

dlmwrite('tabla32.dat',defaultData,'precision',12,'delimiter',';')

end

constCri=dlmread('tabla32.dat',';');

cValue=zeros(4,1);

valuesData=dlmread('values.dat',';');

if handles.temp_K >=273.16 && handles.temp_K <333.15

98

cValue(1)=constCri(1,1);

cValue(2)=constCri(2,1);

cValue(3)=constCri(3,1);

cValue(4)=constCri(4,1);

elseif handles.temp_K >=333.15 && handles.temp_K <403.15

cValue(1)=constCri(1,2);

cValue(2)=constCri(2,2);

cValue(3)=constCri(3,2);

cValue(4)=constCri(4,2);

else

cValue(1)=constCri(1,3);

cValue(2)=constCri(2,3);

cValue(3)=constCri(3,3);

cValue(4)=constCri(4,3);

end

%set(handles.temp_fc,'data',cValue);

c1=cValue(1);

c2=cValue(2);

c3=cValue(3);

c4=cValue(4);

temp_k=valuesData(2);

t=1.003-(0.01479*temp_k)+(0.00001982*(temp_k^2));

viscosidadx=exp(1)^t;

densidadx=(18.015*c1)/(16.01846*(c2^(1+(1-(temp_k/c3))*c4)));

set(handles.densidad,'string',densidadx);

set(handles.densidadA,'string',densidadx/0.062282);

set(handles.viscosidad,'string',viscosidadx);

function CalcularGas(hObject, eventdata, handles)

if exist('zdatavalues.dat','file')==0

defaultData = [0 0 0 0 0 0];

dlmwrite('zdatavalues.dat',defaultData,'precision',12,'delimiter',';')

end

zData=dlmread('zdatavalues.dat',';');

valuesData=dlmread('values.dat',';');

handles.vtemp_F=valuesData(1);

handles.vtemp_K=valuesData(2);

handles.vtemp_R=valuesData(3);

handles.vpresion_psi=valuesData(4);

handles.vpresion_pa=valuesData(5);

handles.vapi=valuesData(6);

handles.vtemp_yacimiento=valuesData(7);

handles.vconst_gas_r=valuesData(8);

handles.vconst_gas_f=valuesData(9);

handles.vconst_gas_k=valuesData(10);

handles.vgrav_espec=valuesData(11);

handles.vvisco=valuesData(12);

handles.factam=zData(1);

handles.repm=zData(2);

handles.tyipsi=zData(3);

handles.tyitr=zData(4);

99

handles.va=zData(5);

handles.vb=zData(6);

handles.zfact=zData(7);

if exist('tperiod.dat','file')==0

elementoNombre={'H';'N';'O';'C'};

elementoValor=[1;14;16;12];

fileID = fopen('tperiod.dat','w');

for index = 1:numel(elementoNombre)

try

nombre=elementoNombre{index};

valor=elementoValor(index);

fprintf(fileID,'%s;%f\n',nombre,valor);

catch

errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor

incorrecto','modal')

fclose(fileID);

close();

end

end

fclose(fileID);

end

fileID = fopen('tperiod.dat','r');

T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);

fclose(fileID);

Data=get(handles.tabla_periodica,'data');

ce=T{2};

for index = 1:4

Data{index,1}= T{1}{index} ;

Data(index,2)=num2cell(ce(index));

end

set(handles.tabla_periodica,'data',Data);

handles.H=ce(1);

handles.N=ce(2);

handles.O=ce(3);

handles.C=ce(4);

H=ce(1);

N=ce(2);

O=ce(3);

C=ce(4);

bTrue=false;

fileID = fopen('saved.dat','r');

try

TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s

%d','delimiter',';','EmptyValue',0);

catch

try

delete('saved.dat');

catch

end

close(0);

100

return

end

fclose(fileID);

handles.TVals=TVals;

tNames = TVals{handles.colgdc_nombre};

tAbrev = TVals{handles.colgdc_abrev};

tFormula = TVals{handles.colgdc_formula};

tyi = TVals{handles.colgdc_fractM};

tfa = TVals{handles.colgdc_factorA};

tpre_kpa = TVals{handles.colgdc_PresionKpa};

tpre_psi = TVals{handles.colgdc_PresionPsi};

ttempc_k = TVals{handles.colgdc_TempCritica};

tc1 = TVals{handles.colgdc_cuno};

tc2 = TVals{handles.colgdc_cdos};

tc3 = TVals{handles.colgdc_ctres};

tc4 = TVals{handles.colgdc_ccuatro};

tc5 = TVals{handles.colgdc_ccinco};

tprevap_pa = TVals{handles.colgdc_PresVPa};

tprevap_psi = TVals{handles.colgdc_PresVPsi};

tSalida = TVals{handles.colgdc_Salida};

tEstados = TVals{handles.colgdc_Estado};

syipsi=0;

syitr=0;

for index = 1:numel(tNames)

nombre=tNames{index};

abrev=tAbrev{index};

formula=tFormula{index};

if tEstados(index)==0 || strcmpi(strtrim(tSalida{index}),'LIQUIDO')==true

M=0;

yi=0;

Myi=0;

fa=0;

pre_kpa=0;

pre_psi=0;

tempc_k=0;

tempc_r=0;

tempr_r=0;

yiR=0;

c1=0;

c2=0;

c3=0;

c4=0;

c5=0;

prevap_pa=0;

prevap_psi=0;

estado='';

else

101

try

M=eval(formula);

catch

M=0;

end

yi=tyi(index);

Myi=M*yi;

fa=tfa(index);

pre_kpa=tpre_kpa(index);

pre_psi=tpre_psi(index);

tempc_k=ttempc_k(index);

tempc_r=(9/5)*tempc_k;

tempr_r=handles.vtemp_R/tempc_r;

yiR=yi*tempr_r;

c1=tc1(index);

c2=tc2(index);

c3=tc3(index);

c4=tc4(index);

c5=tc5(index);

prevap_pa=tprevap_pa(index);

prevap_psi=tprevap_psi(index);

estado=tSalida{index};

end

syipsi=syipsi+Myi;

syitr=syitr+yiR;

if index==1

gData={nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)

num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)

num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)

num2str(prevap_pa) num2str(prevap_psi) num2str(estado)};

else

gData=[gData;{nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)

num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)

num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)

num2str(prevap_pa) num2str(prevap_psi) num2str(estado)}];

end

end

try

set(handles.GrillaDataG,'data',gData);

catch

end

val_factorn=0;

if handles.temprm<=1.5

val_factorn=(0.00034*(syitr^0.94));

else

val_factorn=(0.0001778*(((4.58*syitr)-1.67)^0.625));

end

set(handles.factorn,'string',val_factorn);

val_factz=handles.zfact;

set(handles.temprm,'string',syitr);

102

set(handles.pesom,'string',syipsi);

set(handles.presioncmpsi,'string',handles.tyipsi);

set(handles.tempsr,'string',handles.tyitr);

val_viscom=0.00046*(val_factorn*(syipsi^0.5))*(handles.tyipsi^(2/3))/(handles.tyitr^(1/6));

set(handles.viscom,'string',val_viscom);

set(handles.viscompas,'string',val_viscom*0.001);

val_densg=(handles.vpresion_psi*syipsi)/(val_factz*handles.vconst_gas_r*handles.vtemp_R

);

set(handles.densg,'string',val_densg);

set(handles.densgmtres,'string',val_densg/(2.2*0.028831));

set(handles.factz,'string',val_factz);

valores=zeros(1,9);

valores(1,1)=str2num(get(handles.temprm,'string'));

valores(1,2)=str2num(get(handles.pesom,'string'));

valores(1,3)=str2num(get(handles.presioncmpsi,'string'));

valores(1,4)=str2num(get(handles.tempsr,'string'));

valores(1,5)=str2num(get(handles.viscom,'string'));

valores(1,6)=str2num(get(handles.viscompas,'string'));

valores(1,7)=str2num(get(handles.densg,'string'));

valores(1,8)=str2num(get(handles.densgmtres,'string'));

valores(1,9)=str2num(get(handles.factz,'string'));

dlmwrite('propgas.dat',valores,'precision',12,'delimiter',';')

function viscocidad_Callback(hObject, eventdata, handles)

function viscocidad_CreateFcn(hObject, ~, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function diametro_separdor_Callback(hObject, eventdata, handles)

function diametro_separdor_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function lcc_Callback(hObject, eventdata, handles)

function lcc_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function lcs_Callback(hObject, eventdata, handles)

function lcs_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function hvert_Callback(hObject, eventdata, handles)

function hvert_CreateFcn(hObject, eventdata, handles)

.

103

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function setagua_Callback(hObject, eventdata, handles)

.function setagua_CreateFcn(hObject, eventdata, handles)

.if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function setcrudo_Callback(hObject, eventdata, handles)

.function setcrudo_CreateFcn(hObject, eventdata, handles)

.if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function setgpres_Callback(hObject, eventdata, handles)

.function setgpres_CreateFcn(hObject, eventdata, handles)

.if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function denc_Callback(hObject, eventdata, handles)

function denc_CreateFcn(hObject, eventdata, handles)

.if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function CCaudal_Callback(hObject, eventdata, handles)

function CCaudal_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cBSW_Callback(hObject, eventdata, handles)

function cBSW_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function ccrudo_Callback(hObject, eventdata, handles)

function ccrudo_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cagua_Callback(hObject, eventdata, handles)

function cagua_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

104

set(hObject,'BackgroundColor','white');

end

function cgas_Callback(hObject, eventdata, handles)

function cgas_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function ccaudal_Callback(hObject, eventdata, handles)

function ccaudal_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cbsw_Callback(hObject, eventdata, handles)

function cbsw_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit52_Callback(hObject, eventdata, handles)

function edit52_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit53_Callback(hObject, eventdata, handles)

function edit53_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function edit54_Callback(hObject, eventdata, handles)

function edit54_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function btnActsys_Callback(hObject, eventdata, handles)

handles.aux_simtime=str2double(get(handles.simtime,'string'));

find_system('Name',handles.model_name);

%INGRESO DEL TIEMPO DE SIMULACION

set_param(handles.model_name,'StopTime',(get(handles.simtime,'string')));

ccrudoval=(str2double(get(handles.ccrudo,'String'))*0.15899)/86400;

set_param(strcat(handles.model_name,'/Crudo Entrada'),'Value',num2str(ccrudoval));

cgasval=(str2double(get(handles.cgas,'String'))*0.15899)/86400;

set_param(strcat(handles.model_name,'/Gas Entrada'),'Value',num2str(cgasval));

caguaval=(str2double(get(handles.cagua,'String'))*0.15899)/86400;

set_param(strcat(handles.model_name,'/Agua Entrada'),'Value',num2str(caguaval));

105

set_param(strcat(handles.model_name,'/h chic'),'Value',(get(handles.hvert,'String')));

set_param(strcat(handles.model_name,'/diametro'),'Value',(get(handles.diametro_separdor,'St

ring')));

set_param(strcat(handles.model_name,'/Ccl'),'Value',num2str((get(handles.lcc,'String'))));

set_param(strcat(handles.model_name,'/Css_cs'),'Value',(get(handles.lcs,'String')));

set_param(strcat(handles.model_name,'/densidad

agua'),'Value',(get(handles.densidadA,'String')));

set_param(strcat(handles.model_name,'/densidad crudo'),'Value',(get(handles.denc,'String')));

set_param(strcat(handles.model_name,'/Cv gas'),'Value',(get(handles.cvgas,'String')));

set_param(strcat(handles.model_name,'/CvCrudo'),'Value',(get(handles.cvcrudo,'String')));

set_param(strcat(handles.model_name,'/Cv agua'),'Value',(get(handles.cvagua,'String')));

set_param(strcat(handles.model_name,'/crudo/set

oil'),'Value',(get(handles.setcrudo,'String')));

set_param(strcat(handles.model_name,'/agua/set

water'),'Value',(get(handles.setagua,'String')));

vb=num2str((get(handles.setgpres,'String')));

set_param(strcat(handles.model_name,'/set Presion G'),'Value',vb);

set_param(strcat(handles.model_name,'/MW gas'),'Value',(get(handles.pesom,'String')));

set_param(strcat(handles.model_name,'/temperatura'),'Value',(get(handles.temp_F,'String')));

function simtime_Callback(hObject, eventdata, handles)

function simtime_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cvagua_Callback(hObject, eventdata, handles)

function cvagua_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cvcrudo_Callback(hObject, eventdata, handles)

function cvcrudo_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function cvgas_Callback(hObject, eventdata, handles)

function cvgas_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function densidadA_Callback(hObject, eventdata, handles)

function densidadA_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

106

Anexo G. Propiedades del separador.

107

Anexo H. Caudal recuperado a distintos cortes de agua.

Presión 2000BFPD @ 15% 2000BFPD @ 30%

oil gas oil gas oil gas oil gas

PSI MCD MCD BPD MCFD MCD MCD BPD MCFD

0 0.0016 0.0015 869.5 4.577 0.0013 0.0013 706.5 3.967

20 0.0018 0.0013 978.2 3.967 0.0015 0.0011 815.1 3.356

40 0.0020 0.00110 1086.9 3.356 0.0017 0.00091 923.8 2.777

60 0.0022 0.00090 1195.5 2.746 0.0018 0.00078 978.2 2.380

80 0.0023 0.00080 1249.9 2.441 0.0019 0.00066 1032.5 2.014

100 0.0025 0.00070 1358.6 2.136 0.002 0.00056 1086.9 1.709

120 0.0025 0.00060 1358.6 1.831 0.0021 0.0005 1141.2 1.526

150 0.0027 0.00050 1467.3 1.526 0.0022 0.00037 1195.5 1.129

180 0.0028 0.00040 1521.6 1.220 0.0023 0.00029 1249.9 0.885

200 0.0028 0.00030 1521.6 0.915 0.0023 0.00025 1249.9 0.763

250 0.0029 0.00020 1575.9 0.610 0.0024 0.00016 1304.2 0.488

300 0.0030 0.00010 1630.3 0.305 0.0025 0.00011 1358.6 0.336

350 0.0030 0.00009 1630.3 0.275 0.0025 0.00007 1358.6 0.214

400 0.0030 0.00006 1630.3 0.183 0.0025 0.00005 1358.6 0.153

500 0.0031 0.00003 1684.6 0.092 0.0026 0.00002 1412.9 0.061

108

Presión 2000BFPD 50% 2000BFPD 80%

oil gas oil gas oil gas oil gas

PSI MCD MCD BPD MCFD MCD MCD BPD MCFD

0 0.0009 0.00091 505.4 2.777 0.00037 0.00036 201.1 1.098

20 0.0011 0.00077 597.8 2.349 0.00043 0.00031 233.7 0.946

40 0.0012 0.00065 652.1 1.983 0.00047 0.00026 255.4 0.793

60 0.0013 0.00056 706.5 1.709 0.00051 0.00022 277.1 0.671

80 0.0014 0.00047 760.8 1.434 0.00055 0.00019 298.9 0.580

100 0.0014 0.0004 760.8 1.220 0.00058 0.00016 315.2 0.488

120 0.0015 0.00034 815.1 1.037 0.0006 0.00014 326.1 0.427

150 0.0016 0.00027 869.5 0.824 0.00063 0.00011 342.4 0.336

180 0.0016 0.0002 869.5 0.610 0.00065 8.3E-05 353.2 0.253

200 0.0017 0.00018 923.8 0.549 0.00067 0.00007 364.1 0.214

250 0.0017 0.00012 923.8 0.366 0.00069 4.7E-05 375.0 0.143

300 0.0018 7.8E-05 978.2 0.238 0.0007 3.1E-05 380.4 0.095

350 0.0018 5.2E-05 978.2 0.159 0.00072 2.1E-05 391.3 0.064

400 0.0018 3.4E-05 978.2 0.104 0.00072 1.3E-05 391.3 0.040

500 0.0018 1.5E-05 978.2 0.046 0.00073 6E-06 396.7 0.018

109

BIOGRAFIA DEL AUTOR

JUAN CARLOS PROAÑO CARDENAS

Nació en la ciudad de Ambato el 23 de diciembre de 1981. Donde cursó sus estudios

primarios en la escuela fiscal México y porteriormente la secundaria en el colegio técnico

Atahualpa, obteniendo el título de bachiller técnico en Mecánica Industrial en el año 1999. En

ese mismo año migra a la ciudad de Riobamba para continuar con sus estudios en la Escuela

Superior Politécnica de Chimborazo logrando obtener el grado de Ingeniero Mecánico en el

año 2005.

Se presenta al concurso para el cargo de asistente de cátedra del área de materiales llegando a

ser el mejor puntuado y presta su colaboración el departamento de metalúrgia bajo la

dirección del Ing. Msc. Mario Edmundo Pástor Rodas.

Donde permanece por el lapso de un año, seguidamente se vincula a la industria de la

extracción de hidrocarburos en la empresa Perenco Ecuador Limited en el departamento de

proyectos y el departamento de producción hasta abril el año 2009.

En el año 2010 ingresa a la Universidad Central del Ecuador al programa de posgrado en

Procesos Industriales, y seguidamente se vincula a la empresa Andes Petroleum al

departamento de producción hasta la fecha.

Contacto: [email protected] / [email protected]