universidad central del ecuador facultad de ingeniería, ciencias

Anuncio
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
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
ii
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
iii
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
iv
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
v
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
vi
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
vii
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
viii
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
ix
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
x
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
xi
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
xii
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ísicoquí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
PROPIEDADES FISICO-QUÍMICAS
/
SEPARADORES
TRIFASICOS
/
/ PATRONES DE FLUJO / PROCESOS DE
SEPARACIÓN / FACTOR DE COMPRESIBILIDAD DEL GAS.
xiii
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.
xiv
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.
xv
xvi
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.
1
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.
2
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.
3
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:
4
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.
5
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.
6
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.
7
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.
8
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).
9
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.
10
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.
11
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:
12
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.
13
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.
14
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
procesamiento depende del tipo de separación a realizar.
15
complejidad de una planta de
Para la clasificación de los separadores por creación de fase se ha elaborado el siguiente
mapa conceptual.
Horizontales
Construcción
Verticales
Clasificación
de los
Separadores
Bi-fásico
Tipo de
Separación
Tri-fásico
Producción
Utilización
Prueba
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.
16
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
17
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.
18
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).
19
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).
20
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/60o, para el
petróleo es común utilizar la gravedad API.
S
donde:
141.5
o
API 131.5
(2)
es la gravedad específica del petróleo (adimensional), API es la gravedad API del
petróleo en [oAPI] (unidades de campo),
(unidades en S.I.),
es la densidad del agua medida en [kg/m3]
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 o Ta -1.163 .
21
(4)
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.
PM
g
donde:
RT
(6)
es la densidad del gas, medida en lb/ft3 (unidades de campo) [Kg/m3] (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 [psiaft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m3/Kgmol-K] (unidades S.I.).
22
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 PC 2⁄3
TC 1⁄6
.
7
Si Tr 1.5 tenemos:
N 0.00034 Tr 0.94 .
8
Si Tr 1.5 tenemos:
N 0.0001778 (4.58 Tr -1.67)
0.625
.
9
En el cual:
Tr
5
[9 (Top 32)] 273
TC
23
10
donde:
TC
∑ yi TiC
11
PC
∑ yi PiC
12
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/m3] (unidades S.I.),
T es la temperatura medida en [K].
24
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
5.459
4.9669
4.391
C2
0.30542
0.27788
0.2487
C3
647.13
647.13
647.13
C4
0.081
0.1874
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
donde:
10 2 T 1.982 10 5 T2
14
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:
25
[
(
)]
(
)
(
)
(
)
donde:
.
Para obtener los parámetros
y
(19)
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/s2 mol2],
es el factor adimensional, b es el
parámetro de repulsión de la mezcla [lb ft5/s2 mol2], v es el volumen molar [ft3/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-m3/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)
26
(B3 B2 AB)
0
22
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
f( i )
f( i ) f( i 1 )
i
i
23
i1
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
B
aP
(RT)2
25
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,
27
)
(
)
(
)
(
)
(
)
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
28
)
( )
(
∫
)
(
)
(
)
[
(
)
donde
sobre
( )
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:
[
⃗
]. 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:
∫
[
( ⃗)
(
⃗ )
( )
es la fuente o sumidero, ( ⃗ ) es la
]
(
)
( )
donde: ⃗ es el flujo en la frontera ( )de
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.).
29
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.
30
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).
31
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
32
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
33
√ (
)
(
)
(
)
(
)
(
)
(
)
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.
141.5
Gravedad específica: S
Viscosidad :
o
API 131.5
.
10 -1 .
o
Propiedades físicas del gas.
∑
Peso molecular :
Densidad :
Viscosidad:
PM
g
RT
g
.
.
0.00046
N M1⁄2 PC 2⁄3
TC 1⁄6
.
34
Propiedades físicas del agua.
.
Densidad:
[
Viscosidad:
e1.003-1.479
(
)
]
10-2 T 1.982 10-5 T2
.
35
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.),
en [m] (unidades del S.I.), t es el tiempo en [s] (unidades del S.I.),
)
es la altura de líquido
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
36
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),
caudal de gas de salida en [SCFPD] (unidades de campo),
[m3] (unidades S.I.),
es el
es el volumen del separador en
es el volumen cámara de separación en [m3] (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ísicoquí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.),
longitude de la cámara de separación [m] (unidades S.I.) y
la cámara de separación [m] (unidades S.I.).
37
es la
es la altura total del líquido en
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 [m3] (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-m3/Kgmol-K] (unidades S.I.).
de esta ecuación obtenemos:
38
(
)
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.),
cámara de separación en [m3] (unidades S.I.),
es el volumen de la
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:
39
(
)
(
)
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),
longitud de la cámara de separación en [m] (unidades S.I),
(
)
(
)
es la
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,
[
(
)
40
(
)√ (
)
]
(
)
[(
donde:
)
(
(
)
)√ (
es el volumen cámara de crudo en [m3] (unidades S.I),
cámara de crudo en [m] (unidades S.I) y
)]
(
)
es la longitud de la
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:
S.I),
(
)
(
)
(
)
)√
(
(
)
)√
(
]
)]
(
)
(
)
es el volumen de agua en la cámara de separación medido en [m3] (unidades
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,
cámara de separación y
)
es el volumen en la
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.
41
(
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.
42
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:
S.I.),
(
)
es el caudal de salida de crudo en [BPD] (unidades de campo) o [m3/s] (unidades
es el coeficiente de caudal (adimensional),
válvula de crudo (adimensional),
es el porcentaje de abertura de la
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/m3] (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/s2] (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:
S.I.),
[
(
)]
(
)
es el caudal de salida de agua en [BPD] (unidades de campo) o [m3/s] (unidades
es el coeficiente de caudal (adimensional),
válvula de agua (adimensional),
es el porcentaje de abertura de la
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
43
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/m3] (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/s2] (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:
S.I.),
(
)(
)
(
)
(
)
es el caudal de salida de gas en [SCFD] (unidades de campo) o [m3/s] (unidades
es el coeficiente de caudal (adimensional),
válvula de gas (adimensional),
es el porcentaje de abertura de la
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.),
[g/mol] (unidades S.I.) y
es el peso molecular del aire en [lb/mol] (unidades de campo) o
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.
44
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.
45
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.
PROPIEDADES DEL
CRUDO
PARAMETROS DE
ENTRADA
𝐴𝑃𝐼 𝑇𝑎
VISCOSIDAD
GRAVEDAD ESPECIFICA
𝑆𝐺𝑂
𝐴𝑃𝐼
𝜇𝑂
[
( 0
00 0
𝑆𝐺𝑂 ) 𝑇
𝑎
6
]
𝑆𝐺𝑂 𝜇𝑂
Figura.5.1 Algoritmo Propiedades del Crudo.
46
-1
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.
PROPIEDADES DEL GAS
PARAMETROS DE ENTRADA
𝑀𝑖 𝑇 𝑅 𝑃𝑂𝑃 𝑦𝑖
PESO MOLECULAR MEZCLA
𝑀
∑ 𝑦𝑖 𝑀𝑖
𝑍
DENSIDAD
𝜌𝑔
𝑃𝑀
𝑍𝑅𝑇
𝜌𝑔
Figura.5.2 Algoritmo Densidad del Gas.
47
Algoritmo programación viscosidad del gas.
En base a la ecuación (7), (8) y (9) se elabora el siguiente algoritmo.
VISCOSIDAD DEL GAS
PARAMETROS DE ENTRADA
𝑇𝑂𝑃 𝑇𝐶 𝑃𝑂𝑃 𝑦𝑖
PRESION CRÍTICA
TEMPERATURA CRÍTICA
𝑇𝐶𝑚
𝑃𝐶𝑚
∑ 𝑦𝑖 𝑇𝑖𝑐
TEMPERATURA REDUCIDA
𝑇𝑟𝑚
[ (𝑇𝑂𝑃
)]
𝑇𝐶𝑚
N
O
𝑇𝑟𝑚
S
I
𝑁
(
𝑇𝑟𝑚
𝜇𝑔
𝑁
)
𝑇𝑟𝑚
9
𝑁 𝑀𝑚 𝑃𝑐𝑚
6
𝑇𝐶𝑚
𝜇𝑔
Figura.5.3 Algoritmo Viscosidad del Gas.
48
∑ 𝑦𝑖 𝑃𝑖𝑐
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.
FACTOR DE
COMPRESIBILIDAD Z
PARAMETROS DE ENTRADA
𝑇𝑂𝑃 𝑇𝐶 𝑅 𝑃𝐶 𝑤𝑖 𝐾𝐼𝐽 𝑦𝑖
TEMPERATURA REDUCIDA
FACTOR ADIMENSIONAL
𝑚𝑖
𝑤𝑖
𝛼𝑖
[
𝑚𝑖 (
𝑤𝑖
𝑇𝑟
[ (𝑇𝑂𝑃
PRESION CRÍTICA
TEMPERATURA CRÍTICA
𝑇𝐶𝑖
)]
𝑦𝑖 𝑇𝑖𝑐
𝑃𝐶𝑖
𝑦𝑖 𝑃𝑖𝑐
𝑇𝐶
PARAMETRO DE
ATRACCION
𝑇𝑟𝑖 )]
𝑅 𝑇𝑐𝑖
𝑃𝑐𝑖
𝑎𝑖
PARAMETRO DE REPULSION
𝑅 𝑇𝑐𝑖
𝑃𝑐𝑖
𝑏𝑖
1
2
49
3
1
2
3
PARAMETRO DE ATRACCION MEZCLA
𝑛
𝑎𝑚
𝑚
∑ ∑ [𝑦𝑖 𝑦𝑗 (𝑎𝑖 𝑎𝑗 𝛼𝑖 𝛼𝑗 )
𝑖
PARAMETRO DE REPULSION MEZCLA
(
𝑏𝑚
𝐾𝑖𝑗 )]
∑ 𝑦𝑖 𝑏𝑖
𝑗
PARAMETRO DE ATRACCION MEZCLA
𝐴
PARAMETRO DE REPULSION MEZCLA
𝑎𝑚 𝑃
(𝑅𝑇)
𝑧
𝐵
(𝐵
)𝑧
(𝐴
𝐵
𝐵) 𝑧
(𝐵
𝐵
𝑏𝑚 𝑃
𝑅𝑇
𝐴𝐵)
UTILIZAMOS EL MÉTODO DE NEWTON RAPSON
FACTOR
COMPRESIBILIDAD
Z
Figura.5.4 Algoritmo Factor Compresibilidad Z del Gas.
50
5.1.4. Algoritmo de programación propiedades del agua.
En base a las ecuaciones (13) y (14) se elabora el siguiente algoritmo.
PROPIEDADES DEL AGUA
PARAMETROS DE ENTRADA
𝐶 𝐶 𝐶 𝐶
𝑇
DENSIDAD
𝐶
𝜌𝑤
𝐶
[
(
𝑇𝑂𝑃
)𝐶 ]
𝐶
VISCOSIDAD
𝜇𝑤
𝑒
79𝑥
𝑇𝑜𝑝
9
𝑥
5𝑇
𝑜𝑝
𝜇𝑤 𝜌𝑤
Figura.5.5 Algoritmo Propiedades del Agua.
51
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.
52
Figura. 5.8 Control de presión separador.
53
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.
54
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
55
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
Lineal
Lineal
Lineal
Diámetro de la válvula
4 in
4in
6in
Constante Cv
212
212
417
Tipo
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
Tiempo
500
Escalón
10
Tiempo
1200
56
Flujo
Set point
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.
57
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
Sinusoidal
AMPLITUD
0.4
Flujo
Tiempo
1000
Escalón
0.2
Tiempo
1200
Set point
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
Tiempo
300
Escalón
-0.2
Tiempo
1500
Flujo
Set point
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.
58
Figura.5.12 Caudal ingreso y salida de agua.
Figura.5.13 Altura del colchón de agua de la cámara separación.
59
Figura.5.14 Caudal de ingreso y salida de crudo.
Figura.5.15 Altura de la cámara de crudo.
60
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.
61
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
densidad
densidad
(cromatografía)
(programa)
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
Temperatura
presión
F
62
error
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.
63
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.
64
Caudal vs. Presión
Crudo [BPD]
Gas [MCFPD]
5,000
1800,0
4,500
1600,0
4,000
1400,0
3,500
1200,0
3,000
1000,0
2,500
800,0
2,000
600,0
1,500
1,000
400,0
0,500
200,0
0,000
0,0
0
50
gas 15%
100
150
gas 30%
200
gas 50%
250
300
gas 80%
oil 15%
350
400
oil 30%
450
oil 50%
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.
65
500
oil 80%
550
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.
66
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,
consulta:
10
de
Julio2013],
disponible
[fecha de
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.
67
[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/conferencepaper/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.
68
[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.
69
ANEXOS
Anexo A. Constantes físicas de los gases
70
71
Anexo.B.
Cromatografía gases
72
Anexo.C. Coeficiente Cv de las válvulas de control tipo globo
Valve Size (in)
1/2
1
1-1/2
2
2-1/2
3
4
6
8
10
12
Flow Characteristic
Cv
Equal Percent
4.20
Quick Opening
6.27
Equal Percent
17.4
Linear
20.1
Quick Opening
21.4
Equal Percent
33.4
Linear
34.9
Quick Opening
38.0
Equal Percent
56.2
Linear
65.3
Quick Opening
67.2
Equal Percent
87.2
Linear
86.5
Quick Opening
93.1
Equal Percent
121
Linear
135
Quick Opening
150
Equal Percent
203
Linear
212
Quick Opening
235
Equal Percent
357
Linear
417
Quick Opening
469
Equal Percent
808
Linear
836
Quick Opening
875
Modifield Parabolic
987
Quick Opening
1360
Modifield Parabolic
1180
Quick Opening
1700
73
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
74
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
Como:
es el ángulo central.
, 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
(
(
75
) (
)√
)
( )
De la ecuación (e) en (h) se obtiene
D2
2h D2
2h
2h 2
√
A
ar cos (1
)
(1
) 1 (1
)
4
D
4
D
D
(
)
(
76
)
√ (
)
()
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
77
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)
78
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)
79
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'))
80
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
81
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);
82
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
83
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
84
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';'nbutano';'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;
85
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.17E01;
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.99E02;
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
86
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
87
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;
88
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'));
89
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);
90
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);
91
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'));
92
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));
93
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};
94
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);
95
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);
96
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
97
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);
98
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);
99
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
100
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);
101
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)
.
102
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'))
103
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));
104
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
105
Anexo G. Propiedades del separador.
106
Anexo H. Caudal recuperado a distintos cortes de agua.
2000BFPD @ 15%
2000BFPD @ 30%
Presión
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
107
2000BFPD 50%
2000BFPD 80%
Presión
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
108
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]
109
Descargar