universidad central del ecuador facultad de … · al doctor rolando sáenz, tutor de tesis por su...
TRANSCRIPT
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA
INSTITUTO DE INVESTIGACIÓN Y POSGRADO (IIP)
SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO
PARA UNA CORRIENTE DE HIDROCARBUROS
JUAN CARLOS PROAÑO CÁRDENAS
TUTOR: DR. PhD. ROLANDO SÁENZ ANDRADE
Trabajo presentado como requisito parcial para la obtención del grado de:
MAGÍSTER EN PROCESOS INDUSTRIALES
Quito – Ecuador
2015
ii
DEDICATORIA
Al terminar una etapa más en la vida, quiero dedicar éste trabajo a mis padres, Héctor Alfredo
y Blanca Lucila. A mi esposa Dora Irene, a mis hijas Emilia Simone y Milagros Valentina.
A mis hermanos: Nancy Carlota, Ana Guadalupe, Héctor Oswaldo (+), Héctor Alfredo y Luis
Roberto, que supieron apoyarme en cada una de las decisiones tomadas.
Juan Carlos Proaño Cárdenas
iii
AGRADECIMIENTOS
A la UNIVERSIDAD CENTRAL DEL ECUADOR en especial al Instituto Superior de
Posgrado e Investigación.
A nuestros maestros quienes supieron transmitir sus conocimientos y experiencias.
Al Doctor Rolando Sáenz, tutor de tesis por su asesoramiento científico y su predisposición
permanente en aclarar cada una de las dudas y por sus substanciales sugerencias durante la
redacción de la misma.
A mis amigos y compañeros de trabajo en Andespetroleum. Ing. Fabián Freire, por aquellas
travesías vividas cada mañana en los viajes que realizábamos desde la ciudad de Ambato para
asistir a clases, sus consejos y su apoyo incondicional en cada una de las experiencias
subsistidas.
Al Ing. Tony Barahona, por su apoyo y colaboración en las materias de procesamiento de
crudo para su comprensión.
Al Ing. Galo Rodríguez, por su apoyo valioso en la parte de control automático.
Finalmente, a todas aquellas personas, colegas y amigos que me brindaron su apoyo, tiempo e
información para el logro de este trabajo.
Juan Carlos Proaño Cárdenas
iv
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL
Yo, PROAÑO CARDENAS JUAN CARLOS en calidad de autor del trabajo de investigación
o tesis realizada sobre SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN
TRIFÁSICO PARA UNA CORRIENTE DE HIDROCARBUROS, por la presente autorizo a
la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los contenidos que me
pertenecen o de parte de los que contiene esta obra, con fines estrictamente académicos o de
investigación.
Los derechos que como autor me corresponden, con excepción de la presente autorización,
seguiraán vigentes a mi favor, de conformidad con lo establecido en los artículos 5, 6, 8, 19 y
demás pertinentes de la Ley de Propiedad Intectual y su Reglamento.
Quito, 20 de Abril de 2015
JUAN CARLOS PROAÑO CÁRDENAS
C.C. 1803439916
v
CERTIFICACIÓN
Certifico que el presente trabajo fue realizado en su totalidad por el Sr. Ing. JUAN CARLOS
PROAÑO CÁRDENAS como requisito parcial a la obtención del título de MAGISTER EN
PROCESOS INDUSTRIALES
Quito, 23 de Abril de 2015
Dr. Phd. Rolando Sáenz Andrade
R
vi
CONTENIDO
1. EL PROBLEMA ...............................................................................................................2 1.1 TEMA DE INVESTIGACIÓN ................................................................................... 2
1.2 PLANTEAMIENTO DEL PROBLEMA ................................................................... 2
1.3 HIPÓTESIS ................................................................................................................. 2
1.4 ANTECEDENTES ...................................................................................................... 2
1.5 OBJETIVOS................................................................................................................ 3
1.5.1 Objetivo general. .................................................................................................. 3
1.5.2 Objetivos específicos. .......................................................................................... 3
1.6 JUSTIFICACION........................................................................................................ 3
2. MARCO TEÓRICO .........................................................................................................4 2.1. El petróleo. .................................................................................................................. 4
2.2. Flujo multifásico. ........................................................................................................ 4
2.3. Patrones de flujo. ......................................................................................................... 4
2.4. Facilidades de superficie. ............................................................................................ 7
2.4.1. Manifold. .............................................................................................................. 7
2.4.2. Separadores. ......................................................................................................... 8
2.4.3. Botas desgasificadoras. ........................................................................................ 8
2.4.4. Tanques. ............................................................................................................... 9
2.4.5. Tratadores. ......................................................................................................... 10
2.4.6. Unidades recuperadoras de vapor. ..................................................................... 10
2.4.7. Bombas. ............................................................................................................. 11
2.4.8. Válvulas de control. ........................................................................................... 11
2.5. Coeficiente de Flujo. ................................................................................................. 13
2.6. Procesos de separación .............................................................................................. 13
2.6.1. Tipos de procesos de separación. ....................................................................... 13
2.6.2. Separación por creación de fase. ........................................................................ 15
3. MODELO MATEMATICO SEPARADOR TRIFASICO .........................................20 3.1. Propiedades de los fluidos. ........................................................................................ 20
3.1.1. Propiedades del petróleo. ................................................................................... 20
3.1.2. Propiedades del gas. ........................................................................................... 22
3.1.3. Propiedades del agua.......................................................................................... 24
3.2. Factor de compresibilidad del gas, ecuación de estado de Peng - Robinson. .......... 25
3.3. Proceso del sistema de separación ............................................................................ 27
3.3.1. Optimización del sistema. .................................................................................. 27
3.4. Leyes fundamentales del modelamiento ................................................................... 28
3.5. Métodos de simulación.............................................................................................. 31
3.6. Descripción del modelo ............................................................................................. 31
3.7. Área del segmento circular. ....................................................................................... 33
3.8. Volumen del segmento circular del separador. ......................................................... 33
4. MODELO NUMERICO SEPARADOR TRIFASICO ...............................................36 4.1. Evaluación del proceso.............................................................................................. 36
4.2. Desarrollo del modelo ............................................................................................... 37
vii
4.2.1. Cálculo del volumen en el separador. ............................................................... 40
4.3. Flujo de crudo en el vertedero. .................................................................................. 41
4.4. Sistema de control ..................................................................................................... 42
4.4.1. Flujo de salida para líquidos y gases.................................................................. 43
4.5. Parámetros de variación. ........................................................................................... 44
5. PROGRAMA COMPUTACIONAL Y VERIFICACION .........................................46 5.1. Algoritmo de programación. ..................................................................................... 46
5.1.1. Algoritmo de programación propiedades del petróleo. ...................................... 46
5.1.2. Algoritmo de programación propiedades del gas. ............................................. 47
5.1.3. Algoritmo programación factor de compresibilidad del gas. ............................. 49
5.1.4. Algoritmo de programación propiedades del agua. ........................................... 51
5.2. Estrategia de control del nivel de cámara de crudo. ................................................. 52
5.3. Estrategia de control del nivel colchón de agua cámara separación. ........................ 52
5.4. Estrategia de control de la presión del separador. ..................................................... 52
5.5. Diagrama general estrategia de control del separador trifásico. ............................... 54
5.6. Lenguaje de programación ........................................................................................ 55
5.7. Resultados obtenidos en la simulación...................................................................... 55
5.8. Datos de entrada. ....................................................................................................... 55
5.9. Perturbaciones. .......................................................................................................... 56
5.9.1. Perturbación de la fase gas. ................................................................................ 56
5.9.2. Perturbación del agua. ........................................................................................ 58
5.9.3. Perturbación crudo. ............................................................................................ 58
5.10. Verificación de resultados ......................................................................................... 61
5.10.1. Propiedades físico químicas. .............................................................................. 61
5.10.2. Caudales proporcionados por el programa. ....................................................... 63
6. CONCLUSIONES Y RECOMENDACIONES ...........................................................66 6.1. Conclusiones ............................................................................................................. 66
6.2. Recomendaciones ...................................................................................................... 66
BIBLIOGRAFÍA ................................................................................................................67
viii
LISTADO DE TABLAS
Tabla 2.1 Coeficiente de flujo Cv…………………………………………….........……...…14
Tabla 3.1 Coeficientes de la densidad del agua.……………………...…...…………………25
Tabla 5.1 Cromatografía del gas……………………………...……………………………...55
Tabla 5.2 Parámetros mecánicos del separador………………...…………………….……...52
Tabla 5.3 Parámetros de ls válvulas de control………………...…………….……………...56
Tabla 5.4 Perturbación fase gas…………………………………...……………………...….56
Tabla 5.5 Perturbación del colchón de agua……………………...……………………....….58
Tabla 5.6 Perturbación del nivel de crudo………………………...……………….…….…..58
Tabla 5.7 Comparación densidad del gas……………………………………………………62
ix
LISTADO DE FIGURAS
Figura 2.1 Flujo tipo burbuja……………………………………………..……………..……..5
Figura 2.2 Flujo intermitente tipo pistón….…………………………………………..…...….5
Figura 2.3 Flujo estratificado suave……………………………………………..………….…6
Figura 2.4 Flujo estratificado ondulante………………………………………………….……6
Figura 2.5 Flujo intermitente tipo tapón…………………………………………………….…6
Figura 2.6 Flujo anular……………………………………………………………………..….7
Figura 2.7 Flujo tipo rocío……………………………………………………………………..7
Figura 2.8 Manifold de distribución…………………………………………………………...7
Figura 2.9 Separadores tipo horizontal y vertical……………………………………………...8
Figura 2.10 Bota desgasificadora……………………………………………………………...8
Figura 2.11 Clases de tanques.………………..........……… ....………………..………..……...9
Figura 2.12 Tratadores de fuego……………………………………………………………...10
Figura 2.13 Unidad recuperadora de vapores………………………………………………...10
Figura 2.14 Válvula de control…………………………………………………………….…12
Figura 2.15 Características de flujo de las válvulas de control………………………………12
Figura 2.16 Separación por creación de fase…………………………………………………14
Figura 2.17 Separación por adición de fase……………………………………………….…14
Figura 2.18 Separación por barrido…………………………………………………………..15
Figura 2.19 Separación por acción de un agente sólido……………………………………...15
Figura 2.20 Clasificación de los separadores………………………………………………...16
Figura 2.21 Separador líquido gas……………………………………………………………16
Figura 2.22 Separador gas-líquido-líquido………………………………………………..….17
x
Figura 2.23 Suposición de flujo en un separador trifásico...………………………………....17
Figura 2.24 Trayectoria crítica real de las gotas y burbujas en un separador trifásico…....…18
Figura 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifásico….…..……..18
Figura 2.26 Control de nivel en un separador trifásico………………………………………19
Figura 3.1 Volumen de control arbitrario para la aplicación de la ecuación del balance de
momentum……………………………………………………………………..…30
Figura 3.2 Variables presentes en un separador trifásico……………………………..……...32
Figura 5.1 Algoritmo propiedades del crudo..……………………………………………….46
Figura 5.2 Algoritmo densidad del gas……………………………………………………....47
Figura 5.3 Algoritmo viscosidad del gas…………………………………………………….48
Figura 5.4 Algoritmo factor de compresibilidad Z del gas…………………………………..49
Figura 5.5 Algoritmo propiedades del agua…………………..……………………………...51
Figura 5.6 Control de nivel cámara de crudo………………………………………...………52
Figura 5.7 Control de nivel cámara de separación…………………………………………...52
Figura 5.8 Control de presión del separador…………………………………………………53
Figura 5.9 Control del separador trifásico……………………………………………………54
Figura 5.10 Caudal de ingreso y salida de gas…….………………………………………....57
Figura 5.11 Presión del sistema………………………….……………………..…………….57
Figura 5.12 Caudal de ingeso y salida de agua………………………………………………59
Figura 5.13 Altura del colchón de agua de la cámara de separación………………………...59
Figura 5.14 Caudal de ingreso y salida de crudo…………………………………………….60
Figura 5.15 Altura de la cámara de crudo………………………………………………...….60
Figura 5.16 Interfase gráfica de las propiedades del fluido………………………………….61
xi
Figura 5.17 Caudales de salida de crudo a distintas presiones…………………….…………63
Figura 5.18 Caudales de salida de gas a diferentes presiones………………………………..64
Figura 5.19 Nomograma del caudal de recuperación de crudo y gas………………………..65
xii
ANEXOS
Anexo A. Constantes físicas de los gases ........................................................................... 70
Anexo.B. Cromatografía gases............................................................................................ 72
Anexo.C. Coeficiente Cv de las válvulas de control tipo globo ......................................... 73
Anexo D. Coeficientes presión óptima. ............................................................................... 74
Anexo E. Variación de niveles en el separador trifásico. ..................................................... 75
Anexo F. Desarrollo de la solución en Matlab. ................................................................... 77
Anexo G. Propiedades del separador. ................................................................................ 106
Anexo H. Caudal recuperado a distintos cortes de agua. ................................................... 107
xiii
RESUMEN
SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO
PARA UNA CORRIENTE DE HIDROCARBUROS
Una de las principales etapas de la producción de hidrocarburos es la separación de primaria
de petróleo, agua y gas.
En el análisis del comportamiento de los separadores trifásicos, se diseño un programa
computacional que permite predecir el comportamiento del fluido y sus propiedades físico-
químicas con el uso de correlaciones.
Se realizó un programa computacional que permite evaluar el desempeño del separador,
tomando en cuenta los parámetros de operación, tales como: presión, temperatura, gravedades
específicas y tasas de fluidos provenientes del pozo.
El programa de evaluación implementado en SIMULINK - MATLAB, permite efectuar las
diversas simulaciones cuyos resultados son presentados en el siguiente trabajo.
DESCRIPTORES:
CORRIENTE DE HIDROCARBUROS / SEPARADORES TRIFASICOS /
PROPIEDADES FISICO-QUÍMICAS / PATRONES DE FLUJO / PROCESOS DE
SEPARACIÓN / FACTOR DE COMPRESIBILIDAD DEL GAS.
xiv
ABSTRACT
NUMERICAL SIMULATION OF A THREE PHASE BREAKUP PROCESS FOR A
HYDROCARBON STREAM
One of the most important stages of the hydrocarbons production is the primary breakup of
oil, water and gas.
In the behavioral analysis of three phase of separators, a computing programme was designed
which allows to predict the fluid behaviour and its physics and chemistry properties using
correlations.
A computing programme was made to evaluate the separator performance, keeping in mind
the operating parameters, such as: pressure, temperature, specific gravities and fluid rates
coming from well.
The implemented evaluation program in SIMULINK - MATLAB, allows achieving various
simulations whose results were introduced in the following search.
DESCRIPTORS:
HIDROCARBON STREAM / THREE PHASE BREAKUP / PHYSICS AND CHEMISTRY
PROPERTIES / FLOW PATTERNS / BREAKUP PROCESS / GAS COMPRESSIBILITY
FACTOR.
xv
CERTIFICACIÓN DE TRADUCCIÓN
Yo, Alfredo Homero Albán Bautista, en mi calidad de profesor de inglés de la Universidad de
las Fuerzas Armadas-ESPE Extensión Latacunga, certifico que el RESÚMEN
“SIMULACIÓN NUMÉRICA DE UN PROCESO DE SEPARACIÓN TRIFÁSICO PARA
UNA CORRIENTE DE HIDROCARBUROS” ha sido traducido al idioma inglés en forma
completa, conforme consta su versión en el idioma español.
Latacunga, 11 de Noviembre del 2014
Lic. Alfredo H. Albán B.
1
INTRODUCCIÓN
El petróleo extraído está acompañado con agua en forma de emulsión la misma que requiere
un tratamiento, el contenido de agua incrementa con el tiempo y varía desde 1% hasta más
allá del 90%.
La función de las facilidades de producción es separar las corrientes multifásicas,
provenientes de los yacimientos a través de los pozos de producción, en sus tres componentes
o fases (gas, crudo y agua).
El flujo multifásico está caracterizado por patrones de flujo que son la distribución de cada
una de las fases en el interior de las tuberías y por ende en los equipos de superficie, donde la
presión es uno de los factores importantes dentro de un sistema multifásico.
La separación física de estas fases es una de las operaciones esenciales en la producción,
tratamiento, transporte de crudos y gases. Si la calidad de una de las corrientes producidas es
deficiente, las corrientes que salen del proceso generan diversos problemas como formación
de líquidos en el transporte de gas, vaporización de livianos durante el transporte del petróleo,
altos costos en el tratamiento del agua en los residuales de aceite.
De ésta separación depende el incremento de los costos de transportación, tratamiento del
agua, almacenamiento y el tiempo útil de los equipos.
Por tal razón se ha desarrollado un simulador matemático para el análisis del flujo multifásico
en base de un modelo de ecuaciones diferenciales y utilizando el programa Matlab para la
discretización numérica. Puesto que éste es un software de acceso libre, el usuario tiene
accesibilidad al código fuente y puede realizar cambios al programa, con la finalidad de
optimizar y obtener un programa más confiable.
Bajo esta premisa es necesario lograr la caracterización de los sistemas existentes mediante el
modelado, el cual depende en gran medida de la información obtenida del proceso. Teniendo
a disposición las leyes físicas y dinámicas que gobiernan dicho proceso, así como datos
fidedignos del proceso.
Para lo cuál es necesario un conocimiento de las leyes físicas del proceso de separación, la
conservación de la masa, gases ideales y la disponibilidad de los datos geométricos del
separador. Donde la interactuación de todos estos elementos permite efectuar de manera
precisa el modelaje del comportamiento de dicho proceso.
2
CAPÍTULO I
1 EL PROBLEMA
Resumen
Éste capítulo está orientado a la búsqueda de una modelación del proceso de separación
trifásico para corrientes de hidrocarburos.
1.1 TEMA DE INVESTIGACIÓN
Simulación numérica de un proceso de separación trifásico para una corriente de
hidrocarburos.
1.2 PLANTEAMIENTO DEL PROBLEMA
La industria del petróleo ha llevado a que las etapas de separación en superficie adquiera una
gran importancia ya que permiten aumentar la calidad del crudo.
Una fase muy importante dentro de la deshidratación de crudo es la separación de cada una
de las corrientes producidas, y de esta manera maximizar la recuperación de hidrocarburos
líquidos.
Los resultados presentados en la simulación servirán como punto de partida para el diseño y
posteriormente como comparativo entre el estado real de la planta con el de su diseño.
1.3 HIPÓTESIS
La información relativa a la separación trifásica de petróleo debe ser consolidada de modo
que permita evaluar y estimar el comportamiento de cada una de las corrientes presentes a
partir de la información existente.
1.4 ANTECEDENTES
Existen publicaciones referentes a la separación trifásica de hidrocarburos. A continuación se
describen las más relevantes:
a) Estrategias de Controle Contra Intermitencia Severa na Alimentacao de Separadores
Offshore, Autor Diego Domenico. Este trabajo muestra el desarrollo de modelos para la
separación de cada una de las tres fases presentes en la emulsión (agua-gas-aceite), por
medio de la separación de un hidrociclón, separador trifásico y bi-fásico.
3
b) Correlaciones Numéricas PVT, Autor: Carlos Banzer. En el presente trabajo describe una
revisión de las propiedades físicas de los fluidos y las correlaciones aplicadas para la
detrminación de las mismas., tanto para elsubsuelo como en superficie.
c) API 12J., Specification and Oil and Gas Separators. Séptima Edición.
d) ISA-75.01.01-2007. Flow Equations for Sizing Control Valves.
Estas normas presentan criterios en el dimensionamiento y selección de válvulas.
1.5 OBJETIVOS
1.5.1 Objetivo general.
Simular el proceso de separación de una corriente de hidrocarburos.
1.5.2 Objetivos específicos.
a) Caracterizar las condiciones operativas del proceso de separación y estabilización de una
corriente de hidrocarburos.
b) Realizar un algoritmo computacional para la evaluación del equipo de separación.
c) Determinar las condiciones operativas del sistema.
1.6 JUSTIFICACION
El presente trabajo es un aporte a la industria del petróleo, en especial al proceso de
deshidratación. En el cual se recopila la información existente pertinente a la separación
trifásica de hidrocarburos. Además se muestran relaciones matemáticas, derivadas de cada
una de las correlaciones PVT para las distintas fases presentes.
Lo cual nos permite predecir de una manera más acertada las propiedades físico-químicas en
cada una de las corrientes presentes, y como complemento a la utilización de la simulación
numérica hace de este trabajo una herramienta útil que facilita el análisis de los distintos
equipos de separación.
4
CAPÍTULO II
2. MARCO TEÓRICO
Resumen
En este capítulo se describe una breve reseña histórica de los primeros pozos petroleros
perforados en el Ecuador. Los principales equipos que conforman las plantas de
procesamiento primario en superficie y cada uno de los diferentes tipos de procesos de
separación.
2.1. El petróleo.
El petróleo es una mezcla homogénea de compuestos orgánicos insolubles en agua, en
condiciones normales es un fluido bituminoso que presenta una gran variedad en sus
características como: color, viscosidad, densidad, entre otras.
En el Ecuador, el primer pozo petrolero lo perfora la compañía Anglo Ecuadorian Limited en
1911 en la península de Santa Elena, llamándolo Ancón-1, el cual dio una producción de 42
barriles diarios.
En la región oriental fue la compañía Shell la que perforó el primer pozo exploratorio en el
año 1946, el Vuano-1 y encontró petróleo no comerciable. Desde esa fecha inicia la industria
petrolera en el Ecuador.
Los reservorios de petróleo producen una mezcla (emulsión) entre el petróleo y el agua, que
tiene características no newtonianas cuyas tipologías físico-químicas depende de las
condiciones de presión y temperatura.
2.2. Flujo multifásico.
El flujo de fluido multifásico es un fluido simultáneo de gas libre y líquidos a través de una
tubería, donde el gas puede estar mezclado en forma homogénea con el líquido o puede
coexistir formando oleajes en el que el gas empuja al líquido, o el gas y el líquido fluyen en
forma paralela.
2.3. Patrones de flujo.
En el flujo multifásico existe un tipo de flujo para cualquier instante de tiempo, los patrones
de flujo se clasifican:
5
a) Flujo tipo burbuja
b) Flujo intermitente tipo pistón
c) Flujo estratificado suave
d) Flujo estratificado ondulante
e) Flujo intermitente tipo tapón
f) Flujo anular
g) Flujo tipo rocío
Flujo tipo burbuja.
El líquido ocupa el volumen de la sección transversal y el flujo de gas forma burbujas a lo
largo del tope de la tubería, las velocidades del gas y líquido son iguales, para mayores
detalles referirse a [7], páginas 126-130. En la figura que sigue se ilustra este tipo de flujo.
Figura. 2.1 Flujo tipo burbuja.
Flujo intermitente tipo pistón.
A mayor cantidad de gas las burbujas se unen y forman secciones alternadas de gas y líquido
a lo largo de la tubería, con una fase continua de líquido en el fondo. En la figura 2.2 se
muestra este tipo de flujo. Mayor información podrá encontrarse en [7], páginas 126-130.
Figura. 2.2 Flujo intermitente tipo pistón.
Flujo estratificado suave.
En este tipo de fluido el gas fluye a lo largo de la tubería en el tope y el líquido en el fondo.
La fase es relativamente suave y la fracción ocupada por cada fase tiende a permanecer
constante, para mayor referencia consultar [7], páginas 126-130. En la siguiente figura se
muestra este tipo de flujo.
6
Figura. 2.3 Flujo estratificado suave.
Flujo estratificado ondulante.
Cuando el flujo de gas es mucho mayor que el de líquido, el gas se mueve más rápido que el
líquido y la fricción entre estos dos fluidos forman olas de líquido, en la figura 2.4 se ilustra
esta clase de fluido. Mayor detalle consultar [7], páginas 126-130.
Figura. 2.4 Flujo estratificado ondulante.
Flujo intermitente tipo tapón.
Cuando el gas alcanza cierto valor crítico, las crestas de las olas de líquido forman tapones
espumosos. En la estructura del tapón de gas el líquido es presionado de manera que el gas
ocupa la mayor parte del área de flujo, como se muestra en la figura 2.5. Mayor referencia
[7], páginas 126-130.Figura 2.1 Flujo intermitente tipo tapón
Figura. 2.5 Flujo intermitente tipo tapón
Flujo anular.
El líquido fluye como una película anular a lo largo de la tubería, mientras que el gas fluye
como un núcleo a alta velocidad en el centro de la misma, mayor referencia ver [7], páginas
126 -130. En la siguiente figura se muestra este tipo de flujo.
7
Figura. 2.6 Flujo anular.
Flujo tipo rocío.
Cuando la velocidad del gas es lo suficientemente alta, toda la película de líquido se separa
de la pared y es arrastrada por el gas como gotas. La figura 2.7 ilustra este tipo de flujo.
Mayor información ver [7], páginas 126-130.
Figura. 2.7 Flujo tipo rocío.
2.4. Facilidades de superficie.
Una facilidad de producción tiene como finalidad recolectar, direccionar, medir, procesar,
distribuir y transportar la producción de los pozos productores.
2.4.1. Manifold.
El manifold de distribución es un arreglo de tuberías donde converger cada uno de los pozos
productores, cuya función es direccionar la producción de los pozos hacia los diferentes
procesos del sistema, donde la presión es ecualizada al ingreso de los separadores.
Cada uno de los pozos puede ser direccionado a un separador de prueba con la finalidad de
ser evaluados en su capacidad de producción. En la figura 2.8 se ilustra el manifold de
distribución, mayor detalle ver referencia bibliográfica [8].
Figura. 2.8 Manifold de distribución.
8
2.4.2. Separadores.
La separación de mezclas constituye uno de los procesos más complejos debido a los
múltiples componentes de los que están constituidos los flujos multifásicos, y a las
diferencias de densidades presiones de vapor y otras características físicas.
La separación de cada una de las fases es una operación básica en el procesamiento,
producción y tratamiento del petróleo, incluye enriquecimiento, concentración y purificación
que son los procesos químicos más importantes. Para mayor detalle ver [8]. En la siguiente
figura se muestra este tipo de separadores.
Figura. 2.9 Separadores tipo horizontal y vertical.
2.4.3. Botas desgasificadoras.
Son elementos que sirven para separar el gas disuelto en el petróleo, es un cilindro provisto
de deflectores donde se realiza la etapa de separación. Mayor detalle ver referencia
bibliográfica [8]. En la figura 2.10 se muestra este tipo de equipo.
Figura. 2.10 Bota desgasificadora.
9
2.4.4. Tanques.
Tanque de lavado.
Los tanques de lavado o decantación, son equipos donde la presión de trabajo está cercana a
la atmosférica y son utilizados para completar el proceso de deshidratación de crudo
proveniente de los separadores.
Tanques de almacenamiento.
Los tanques de almacenamiento reciben el crudo proveniente de los tanques de lavado, y
albergan el producto hasta ser transferido al oleoducto de transferencia. En la figura 2.11 se
ilustra la clasificación de los tanques, para mayor referencia consultar [8].
En la industria del petróleo los tanques de almacenamiento de hidrocarburos líquidos se
clasifican en tres grupos:
a) Por su construcción: soldados y empernados.
b) Por su forma: cilíndricos y esféricos.
c) Por su función: techo fijo y techo flotante.
(a) (b)
(c)
Figura. 2.11 Clases de tanques: (a) por su construcción (soldado), (b) por su forma (esférico)
y (c) por su función (techo flotante).
10
2.4.5. Tratadores.
Los tratadores térmicos son equipos estáticos, empleados para separar emulsiones petróleo
agua. El tratamiento térmico se realiza a los fluidos emulsionados con la finalidad de reducir
la viscosidad del petróleo y aumentar la coalescencia de las gotas de agua. En la figura 2.12
se muestra este tipo de equipo, mayor información referirse a [8].
Figura. 2.12 Tratador de fuego.
2.4.6. Unidades recuperadoras de vapor.
Una unidad recuperadora de vapor (VRU), recolecta los vapores producidos en los tanques de
almacenamiento de petróleo donde son comprimidos y reutilizados en las operaciones de la
planta. Mayor detalle referirse a [8]. En la figura 2.13 se ilustra este tipo de equipo.
Figura. 2.13 Unidad recuperadora de vapores.
11
2.4.7. Bombas.
Las bombas son máquinas que absorben energía mecánica y transfieren al fluido que las
atraviesa en energía hidráulica, sirven para impulsar toda clase de líquidos.
La clasificación de estas se encuentran en dos grandes grupos como son las rotodinámicas y
las de desplazamiento positivo.
Bombas rotodinámicas.- Llamadas así porque su movimiento es rotativo y la dinámica de
la corriente es esencial en la transmisión de la energía, se clasifican en:
a) Según la dirección de flujo: bombas de flujo radial, de flujo axial y de flujo radioaxial.
b) Según la posición del eje: bombas de eje horizontal, de eje vertical y de eje inclinado.
c) Según la presión engendrada: bombas de baja presión, de media presión y de alta presión.
d) Según el número de flujos en la bomba: de simple aspiración y de doble aspiración.
e) Según el número de rodetes: de un escalonamiento o de varios escalonamientos.
Bombas de desplazamiento positivo.- Estas se clasifican según dos criterios:
a) Primer criterio: según el tipo de movimiento del desplazador en alternativas y rotativas.
b) Segundo criterio: según la variabilidad del desplazamiento en desplazamiento fijo y
desplazamiento variable.
2.4.8. Válvulas de control.
La válvula automática de control generalmente constituye el último elemento en un lazo de
control instalado en la línea de proceso, y se comporta como un orificio cuya sección de paso
varia continuamente con la finalidad de controlar un caudal en una forma determinada.
Las válvulas son unos de los instrumentos de control más esenciales en la industria. Éstas
pueden abrir y cerrar, conectar y desconectar, regular, modular o aislar una enorme serie de
líquidos y gases.
Las válvulas de control constan de dos partes que son el actuador y el cuerpo, en la figura
2.14 puede verse una válvula de control típica. Para mayor detalle [9] páginas 365-366.
El cuerpo de la válvula contiene en su interior el obturador y los asientos. El obturador es
quien realiza la acción de control de paso del fluido.
Las características de linealidad se encuentran relacionadas entre el flujo de salida y la
posición.
12
Figura. 2.14 Válvula de control.
Dependiendo del tipo de aplicación tenemos válvulas de apertura rápida, lineal, parabólica e
igual porcentaje, para mayor información ver [9] páginas 380-381, en la figura 2.15 se
muestra los modelos de control de estas válvulas.
Existen tres modelos de control, el de acción proporcional (P) donde la señal de error
actuante es proporcional a la señal de error, de acción integral (I) donde la señal de error es
proporcional al tiempo integral y el de acción derivativa (D) donde la señal actuante es
proporcional al tiempo derivativo de la señal de error.
Figura.2.15 Características de flujo de las válvulas de control.
Basado en los tres modelos de control tenemos:
13
Acciones Básicas de Control Combinación Acciones Básicas
Proporcional (P) Proporcional-Integral (PI)
Derivador (D) Proporcional-Derivativo (PD)
Integrador (I) Proporcional-integral-Derivativo (PID)
La forma matemática general de un controlador PID esta dado por:
( ) ( ) ∫ ( )
( )
donde , , son las constantes proporcional, integral y derivativa respectivamente, y
( ) es el error. Mayor detalle referirse a [21] página 271.
Esta es una ecuación integral diferencial, siendo la función incógnita e.
2.5. Coeficiente de Flujo.
El coeficiente de flujo Cv de una válvula es la tasa de flujo de agua que atraviesa cuando se
encuentra completamente abierta, con una pérdida de presión de 1 psi.
En la siguiente tabla se muestra valores típicos para válvulas de bola, para mayor detalle ver
[2] página 176.
En el Anexo C se muestra los coeficientes para cada tipo de apertura.
Tabla 2.1. Coeficiente de flujo Cv.
Tipo de apertura Tamaño de la válvula
Diámetro 1” 1 ½ “ 2” 2 ½ “ 3” 4” 6” 8”
Lineal 20.1 34.9 65.3 86.5 135 212 417 836
2.6. Procesos de separación
2.6.1. Tipos de procesos de separación.
En la ingeniería de procesos, la separación se usa para transformar una mezcla de substancias
en dos o más productos. Por lo general, las dos fases son parcialmente miscibles entre sí. El
par de fases pueden ser gas-líquido, gas-sólido, líquido-líquido, o líquido-sólido.
14
Durante el contacto, los componentes de la mezcla se redistribuyen entre las fases y se
separan por cualquier método físico simple.
Seleccionando las condiciones y fases apropiadas, una fase se enriquece mientras que la otra
se empobrece en uno o más componentes.
Separación por creación de fase.
Las mezclas usualmente son separadas en fases homogéneas, si se encuentran en forma de
líquidos inmiscibles generalmente son separados por acción de la gravedad, fuerzas
centrífugas, reducción de la presión. Cada una de los componentes del fluido tendrá una
técnica de separación.
Un proceso general de separación se muestra en la figura 2.16, donde el flujo de entrada
puede ser líquido, gaseoso o una combinación de ambos. Para obtener dos o más productos
de salida. Para mayor detalle referirse a [22] páginas 5-7.
Separación por adición de fase.
La separación es influenciada por un agente de separación adicionado que toma la forma de
otra corriente como agente separador de masa (MSA) o un agente separador de energía (ESA)
En la figura 2.17 se muestra este tipo de separación, para mayor detalle dirigirse a [22]
páginas 6-7.
Figura. 2.16 Separación por creación de fase.
Figura. 2.17 Separación por adición de fase.
15
Separación por barrido.
La separación por barrido utiliza micro-poros y membranas no porosas para un proceso a
diferentes tasas de difusión. En la figura 2.18 se puede ver este tipo de separación, mayor
detalle ver [22] páginas 5-14.
Figura. 2.18 Separación por barrido.
Separación por acción de un agente sólido.
En las operaciones de separación donde se utiliza una masa como agente sólido, usualmente
el agente se encuentra en forma granular, este agente se encarga de absorber o entrar en
contacto directo en la operación de separación de forma selectiva y reaccionar químicamente
con el flujo. En la figura 2.19 se muestra la acción del agente solido en la etapa de
separación, mayor detalle consultar [22] páginas 6-16.
Figura. 2.19 Separación por acción de un agente sólido.
2.6.2. Separación por creación de fase.
En la producción del petróleo generalmente se obtienen tres fluidos de manera simultánea:
gas, petróleo, agua y algunas impurezas como arenas, etc.
Luego de ser levantado a la superficie, el fluido es direccionado por medio de tuberías a las
plantas de tratamiento para separar de una manera adecuada las impurezas y el agua presente,
ésta luego es inyectada a los pozos inyectores. La complejidad de una planta de
procesamiento depende del tipo de separación a realizar.
16
Para la clasificación de los separadores por creación de fase se ha elaborado el siguiente
mapa conceptual.
Figura. 2.20 Clasificación de los separadores.
Separador de dos fases o bi-fásicos.
Son recipientes capaces de separar el gas y el líquido inmiscibles como se muestra en la
figura 2.2, se emplean para dejar lo más libre posible los componentes gaseosos y líquidos a
una determinada presión y temperatura. Cuando una mezcla de hidrocarburos se deposita en
el fondo del recipiente, el fluido tiene una presión de vapor igual a la presión de operación.
Mayor información referirse a [3] páginas 1-2.
Figura. 2.21 Separador líquido gas.
Separador de tres fases.
Son recipientes capaces de separar el gas y las dos fases de líquidos inmiscibles en un solo
equipo en la figura 2.22 se ilustra este tipo de separador. Mayor detalle ver [2] páginas 7-9.
Clasificación
de los
Separadores
Bi-fásico
Tri-fásico
Horizontales
Verticales
Construcción
Producción
Prueba
Tipo de
Separación
Utilización
17
Todos los separadores verticales y horizontales pueden ser usados para la separación trifásica,
independientemente de la forma. En este caso el agua es la impureza que prevalece en la
mezcla y debe ser retirada antes de liberar los productos finales. Se debe evitar la emulsión
de agua con alguno de los otros fluidos. Si éste se emulsiona será necesario el uso de
químicos, calor u otro método para romperla.
Figura. 2.22 Separador gas líquido- líquido.
El comportamiento del fluido en un separador trifásico se idealiza como flujo tipo pistón,
donde el patrón de flujo se muestra en la Fig.2.23. Mayor detalle referirse a [13], páginas 1-7.
El flujo tipo pistón es asumido teóricamente como caminos lineales para que estos puedan ser
simulados numéricamente. El tamaño, la forma y la distribución de las partículas son
fundamentales en el análisis de un separador.
Figura. 2.23 Suposición de flujo en un separador trifásico.
Trayectoria crítica.
La trayectoria crítica que deben seguir las gotas y burbujas para atravesar cada una de las
fases contínuas de separación, dependen directamente de la velocidad de flujo de entrada, las
18
cuales cambian la trayectoria del flujo de gotas y burbujas. Fig.2.24., éstas son idealizadas
para simplificar la trayectoria crítica Fig.2.25. Mayor detalle referirse a [13], páginas 1-7.
Figura. 2.24 Trayectoria crítica real de las gotas y burbujas en un separador trifásico.
Figura. 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifásico.
Niveles de fase.
Los equipos se encuentran diseñados para flujos promedios que incluyen niveles mínimos y
máximos en función de los sets de nivel, los cuales están basados en las condiciones de
operación del sistema. Mayor detalle referirse a [13], páginas 1-7.
19
Figura. 2.26 Control de nivel en un separador trifásico.
donde: HHLL es high high liquid level (nivel líquido alto alto), HLL es high liquid level
(nivel líquido alto), NLL es normal liquid level (nivel normal líquido), LLL es low liquid
level (bajo nivel líquido ), LLLL es low low liquid level (nivel liquido bajo bajo), HHIL es
high high linterface level (nivel interface alto alto), HIL es high interface level (nivel
interface alto), NIL es normal interface level (nivel normal interface), LIL es low interface
level (nivel interface bajo), LLIL es low low interface level (nivel interfase bajo bajo).
20
CAPÍTULO III
3. MODELO MATEMATICO SEPARADOR TRIFASICO
Resumen
En este capítulo se consideran algunos conceptos muy elementales de las propiedades de los
fluidos presentes en la etapa de separación como son: gravedad específica, densidad, peso
molecular, viscosidad y el factor de compresibilidad para la fase gaseosa. Además se expone
la ecuación para el cambio de volumen en el separador.
3.1. Propiedades de los fluidos.
En un reservorio natural de petróleo, antes de comenzar la explotación, se encuentran dos
fases como mínimo. Ellas son petróleo y agua, con frecuencia, pero no siempre, puede existir
la fase gaseosa la cual constituye el casquete gasífero.
Estas tres fases se ubican de acuerdo a sus densidades: zona acuífera, petrolífera y gasífera.
Las propiedades de un fluido multifásico (petróleo, gas y agua) no es fácil de determinar,
debido que las condiciones como la presión, temperatura y flujo al cual está sometido el
conjunto de partículas que se encuentran unidas entre sí por fuerzas cohesivas.
La estimación de las propiedades del petróleo debe ser confiable, entre los datos mínimos
requeridos tenemos:
a) Gravedad API.
b) Corte de agua.
c) Caudal de producción.
d) Temperatura de operación.
e) Presión de operación.
f) Cromatografía del gas.
3.1.1. Propiedades del petróleo.
El petróleo de la formación está constituido principalmente por hidrocarburos de la serie
parafínica (CnH2n+2), con menores cantidades de la serie cíclica nafténica (CnH2n) y aromática
(CnH2n-6).
21
Pero mediante los análisis químicos se ha determinado que posee miles de distintos
compuestos pertenecientes a 18 series de hidrocarburos.
Por eso se realizan análisis químicos simplificados, se miden las fracciones parafinas desde
C1 hasta C5. Las más pesadas se agrupan como fracciones compuestas denominada C6+,
caracterizadas por su peso molecular.
El petróleo tiene dos propiedades importantes que lo caracterizan, la densidad API y la
viscosidad.
Gravedad Específica.
La gravedad específica del petróleo se define como la razón entre la densidad del petróleo y
la densidad del agua.
S o
. (1)
La gravedad específica generalmente es reportada a condiciones estándar 60o/60
o, para el
petróleo es común utilizar la gravedad API.
S o 141.5
API 131.5 (2)
donde: es la gravedad específica del petróleo (adimensional), API es la gravedad API del
petróleo en [oAPI] (unidades de campo), es la densidad del agua medida en [kg/m
3]
(unidades en S.I.), es la densidad del petróleo medida en [kg/m3]
(unidades en S.I.).
Viscosidad.
La viscosidad de un fluido es una medida de la fricción interna o resistencia que ofrecen sus
moléculas a fluir, en el caso del petróleo se determina mediante la correlación de Beggs y
Robinson. Mayor detalle referencia bibliográfica [5] páginas 48-99.
o 10
-1 (3)
donde:
103.0324-0.02023S oTa
-1.163 . (4)
22
es la viscosidad del petróleo medida en [cp] (unidades de campo) [Pa-s] (unidades S.I.),
Ta es la temperatura del yacimiento en [ºF] (unidades de campo) [K] (unidades S.I.).
3.1.2. Propiedades del gas.
El gas de formación o gas natural contiene típicamente 0.6 a 0.8 porcentaje molar de metano,
con hidrocarburos C2 a C5 cada vez en menor proporción, además puede contener impurezas
como nitrógeno, dióxido de carbono y sulfuro de hidrógeno. Los dos últimos son corrosivos
en presencia de agua.
Las propiedades del gas se las calculan a partir de su composición, donde es indispensable
contar con un análisis cromatográfico del mismo. Las propiedades relacionadas con el gas se
describen a continuación.
Peso molecular.
El peso molecular de un gas está determinado con las fracciones molares de los componentes
del gas. Ver referencia bibliográfica [5] páginas 2-3.
∑ , (5)
donde: Mi es el peso molecular del componente i en la mezcla [grs/gr-mol] (unidades S.I.),
es la fracción molar del componente i en la mezcla, Nc es el número de componentes en la
mezcla.
Densidad del gas.
La densidad del gas se estima en función del peso molecular, la constante universal de los
gases, la presión y temperatura de operación. Mayor detalle referirse a [5] páginas 2-3.
g
PM
RT (6)
donde: es la densidad del gas, medida en lb/ft3 (unidades de campo) [Kg/m
3] (unidades
S.I.), P es la presión medida en [psia] (unidades de campo) [Pa] (unidades S.I.),
T es la temperatura medida en [ºR] (unidades de campo) [K] (unidades S.I.), z es el factor de
compresibilidad (adimensional), R es la constante universal de los gases 10.7314 [psia-
ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m
3/Kgmol-K] (unidades S.I.).
23
Viscosidad del gas.
La viscosidad de un gas en general es más baja que la de un líquido, ya que las distancias
intermoleculares de un gas son mayores que las de un líquido. Además, todos los gases
tienen un comportamiento reológico newtoniano y se rigen por la ley de viscosidad de
Newton. Mayor detalle referencia bibliográfica [5] página 39.
Los factores que afectan la viscosidad de un gas son:
a) A bajas presiones (menores a 1000 psia) a medida que aumenta la temperatura aumenta la
viscosidad del gas debido al incremento de la energía cinética de las moléculas que
producen gran número de choches intermoleculares.
b) A elevadas presiones (mayores a 1000 psia) a medida que aumenta la temperatura
disminuye la viscosidad del gas debido a la expansión térmica donde las distancias
intermoleculares son pequeñas.
c) A cualquier temperatura, la viscosidad de un gas aumenta con el incremento de presión.
d) Cuando un gas es más pesado, sus moléculas serán más grandes y su viscosidad mayor.
La viscosidad de un gas puede determinarse experimentalmente o por medio de ecuaciones,
correlaciones gráficas o numéricas.
Experimentalmente la viscosidad de los gases puede ser determinada mediante el método de
Stiel y Thodos. Mayor detalle ver [5] página 363, a partir de sus datos experimentales
obtuvieron la siguiente ecuación:
g 0.00046
N M1 2⁄ PC2 3⁄
TC1 6⁄
. 7
Si Tr 1.5 tenemos:
N 0.00034 Tr0.94 . 8
Si Tr 1.5 tenemos:
N 0.0001778 (4.58 Tr-1.67)0.625
. 9
En el cual:
Tr [59 (Top 32)] 273
TC
10
24
TC ∑ yiTiC 11
PC ∑ yiPiC 12
donde: es la viscosidad del gas en [cp] (unidades de campo) [Pa-s] (unidades S.I.), M es el
peso molecular [lb-mol] (unidades de campo) [Kg-mol] (unidades S.I.), Tc es la temperatura
crítica medida en [oK] (unidades S.I.), Top es la temperatura operación [
oF] (unidades de
campo) [oK] (unidades S.I.), Tr es la temperatura reducida medida en [
oK] (unidades S.I.),
yi es la fracción molar (adimensional), Pc es la presión critica medida en [Pa] (unidades S.I.).
Las propiedades de los gases típicos que se encuentran en los pozos petroleros se presentan
en el Anexo A.
3.1.3. Propiedades del agua.
Sin importar a que campo o bloque de perforación se refiera, el agua normalmente se
encuentra presente en los yacimientos de hidrocarburos. El agua de formación se encuentra
tanto en la zona acuífera como en la petrolífera. La zona acuífera es conocida como acuífera
inactiva cuando no contribuye al proceso de producción, y como acuífera activa cuando es
capaz de producir un barrido lento y gradual del petróleo hacia la superficie.
Además, existe agua en la zona petrolífera y en el casquete de gas, conocida como connata
(agua fósil o agua subterránea que ha permanecido en un acuífero por milenios), intersticial
o irreducible. Esta saturación de agua en la zona de hidrocarburos ocupa entre 10% a 30%
del volumen poral.
Densidad.
La densidad del agua en función de la temperatura se estima mediante la ecuación de Rackett,
referencia bibliográfica [20] página 98.
[ ( ) ]
( )
donde : es la densidad del agua en [lb/ft3] (unidades de campo) [kg/m
3] (unidades S.I.),
T es la temperatura medida en [K].
25
Tabla 3.1 Coeficientes de la densidad del agua.
Temperatura [ K ] 273.16 a 333.15 333.15 a 403,15 403.15 a 647.13
C1
C2
C3
C4
5.459
0.30542
647.13
0.081
4.9669
0.27788
647.13
0.1874
4.391
0.2487
647.13
0.2534
Viscosidad.
La viscosidad del agua se determina por medio de la correlación de Van Wingen, donde la
viscosidad del agua está en función de la temperatura, referencia bibliográfica [5] página 127.
e1.003 1.479 10
2T 1.982 10
5T2 14
donde: es la viscosidad del gas en [cp] (unidades de campo) [Pa-s] (unidades S.I.), T es la
temperatura medida en [oK] (unidades S.I.).
3.2. Factor de compresibilidad del gas, ecuación de estado de Peng - Robinson.
El factor de compresibilidad, conocido también como factor de compresión, es la razón del
volumen molar de un gas con relación al volumen molar de un gas ideal a la misma
temperatura y presión. Los valores del factor de compresibilidad se obtiene mediante
cálculos de las ecuaciones de estado, este puede ser determinado por varios métodos, siendo
el más utilizado la correlación de Peng-Robinson, en cuya ecuación se relacionan las
variables P-V-T para predecir el comportamiento termodinámico del sistema. Mayor detalle
referirse a [16], páginas 30-32.
v
v(v ) (v ) ( )
Tenemos que predecir el comportamiento termodinámico de la mezcla multicomponente de
hidrocarburos, para lo cual definiremos los parámetros para cada uno de los componentes.
El factor adimensional α para un componente en una me cla es una función de la temperatura
reducida y del factor acéntrico del componente. Las expresiones que describen son:
26
( )
( )
[ ( )]
( )
donde:
. (19)
Para obtener los parámetros y de una mezcla multicomponente se relaciona los
parámetros de cada componente a través de las reglas de mezclado de Van der Waals,
referirse a [16], páginas 30-32.
∑∑[ ( ) ( )] ( )
∑ ( )
donde: P es la presión del sistema en [psi] (unidades de campo) [Pa] (unidades del S.I.),
T es la temperatura del sistema en [oR] (unidades de campo) [K] (unidades S.I.), a es el
parámetro de atracción de la mezcla en [lb ft5/s
2 mol
2], es el factor adimensional, b es el
parámetro de repulsión de la mezcla [lb ft5/s
2 mol
2], v es el volumen molar [ft
3/lbmol], es
el coeficiente de interacción binaria entre los componentes i,j, R es la constante universal de
los gases 10.7314 [psia-ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m
3/Kgmol-K]
(unidades S.I.), Pc :es la presión crítica en [psi] (unidades de campo) [Pa] (unidades S.I.),
Tc es la temperatura crítica [oR] (unidades de campo) [K] (unidades S.I.), i es el componente
enésimo de la mezcla.
De la ecuación de estado de Peng Robinson, mayor detalle ver referencia [17], páginas 23-27,
se obtiene una expresión que permite determinar el factor de compresibilidad z el cual está
dado por la siguiente ecuación cúbica:
3 (B 1) 2 (A 3B2 2B) (B3 B2 AB) 0 22
27
la misma que será desarrollada por el método de Newton Raphson, referirse a [23], páginas
88-90, para determinar su solución. Es decir, si:
i 1 i f( i)
f( i) f( i 1) i i 1
23
se puede hacer que:
i 1 i f( i)
f ( i) 24
donde las variables A y B se definen de la siguiente manera:
A aP
(RT)2 25
B bP
RT . 2
Para obtener el factor de compresibilidad de una mezcla multicomponente, las constantes a y
b son los parámetros de la mezcla.
3.3. Proceso del sistema de separación
En el proceso de separación de cada una de las fases presentes en los hidrocarburos, se debe
determinar las condiciones más adecuadas de operación. Siendo la más importante la presión
de funcionamiento del separador, para la recuperación de líquidos a las condiciones de
almacenamiento del hidrocarburo. Teóricamente para obtener mayor cantidad de líquidos
recuperados se debe disponer de varias etapas de separación.
Generalmente dentro de la industria de petrolera se pueden evidenciar sistemas de dos y tres
etapas de separación. Mayor detalle [17], página 196.
3.3.1. Optimización del sistema.
El proceso de separación del crudo, gas y agua se lo realiza a temperatura ambiente y se
determina mediante la ecuación de Organick y Hollingsworth, referencia [14], páginas
129-133. Mediante la cuál se determina la mejor presión de separación.
( )
donde,
28
( )
( )
( )
( )
Los coeficientes de cálculo para la presión óptima se muestran en el anexo D, donde: Pk es la
presión óptima en [psi] (unidades de campo), A,B,C,D : coeficientes de cálculo presión
óptima.
3.4. Leyes fundamentales del modelamiento
Los modelos numéricos son la representación matemática de un sistema por medio de la
aplicación principios fundamentales. La base de los modelos matemáticos son las leyes
físicas y químicas (leyes de conservación de masa, energía y momentum) y las ecuaciones de
transporte. Mayor detalle referirse a [18] páginas 89-98.
Las leyes fundamentales que gobiernan a los procesos químicos son:
a) Ley de la conservación de la masa.
b) Ley de la conservación de la energía.
c) Ley de la conservación del momentum.
Ley de la conservación de la masa.
Según el principio de conservación de la masa si un fluido tiene varios componentes con
concentraciones diferentes en distintos puntos, existe un proceso de intercambio en el sistema
de la zona de más alta concentración a la más baja.
Existen dos procesos de transferencia de masa: convectiva (por diferencia de temperatura) y
la molecular (por diferencia de presiones y densidades). Mayor detalle referirse a [6] páginas
1-12.
Denotemos A una especie en el fluido. La concentración de la masa de la especie A se define
como:
( )
donde: es la masa de la especie A en el volumen total V.
Sea ( ) un volumen de control con ( ) su frontera. Entonces
29
( ) ∫ ( ) ( )
( )
El balance de masa nos conduce a la siguiente expresión:
{
}
{
}
{
}
Por el teorema del transporte Reynolds se tiene que:
∫ [
( )] ( )
∫ ( )
( )
donde fA representa las fuentes o sumideros.
De la arbitrariedad de los volúmenes de control, se sigue que:
( ) ] [ ( )
La ley de Fick o de la difusión tiene la forma: donde sobre
[ ]. Entonces:
( ) ] [ ( )
Que se conoce como ecuación de transferencia de masa (convectiva o difusiva). Mayor
detalle referirse a [6] páginas 1-12.
La expresión matemática definitiva de conservación de la masa en su forma integral es:
∫ [
( ) ( ) ] ( )
( )
donde: es el flujo en la frontera ( )de ( ) es la fuente o sumidero, ( ) es la
velocidad, C es la magnitud objeto de balance.
En nuestro caso para definir el balance de masa se selecciona las fronteras del sistema, se
identifica las corrientes de entrada y salida, que atraviesan la frontera del sistema y se tiene:
( )
donde: es el caudal de ingreso en [BFPD] (unidades de campo) o [m3/s] (unidades S.I.),
es el caudal de salida de crudo en [BFPD] (unidades de campo) o [m3/s] (unidades
S.I.), es el caudal de salida de agua en [BFPD] (unidades de campo) o [m3/s] (unidades
S.I.), es el caudal de salida de gas en [SCFPD] (unidades de campo) [m3/s] (unidades
S.I.).
30
Ley de la conservación de la energía.
La primera ley de la termodinámica establece el principio de la conservación de la energía, la
cual establece que si se realiza un trabajo sobre un sistema o existe el intercambio de calor
con otro la energía interna del sistema cambiará.
La ecuación general de la conservación de la energía es la siguiente:
, (39)
donde: Ein es la energía de ingreso al sistema, Eout es la energía de salida del Sistema y Esis es
el cambio de energía.
De la ecuación (39), aplicada a la termodinámica nos conduce a la siguiente expresión:
U 40
donde: U es la energía interna del sistema (aislado), Q es la cantidad de calor aportado al
sistema y W es el trabajo realizado por el sistema.
Ley de la conservación del momentum.
Dado que el impulso es una cantidad vectorial, el balance de momento es una ecuación
vectorial. Donde la gravedad es la única fuerza que actúa sobre el cuerpo, el principio de
momento lineal, aplicado a un volumen de control arbitrario nos proporciona la siguiente
expresión, como se muestra en la figura 3.1.
∫ ∫ ( )
∫ ∫
( )
donde, g es el vector gravedad, tn es la fuerza por unidad de área del fluido circundante en el
volumen de control, Va es el volumen de control, Aa es la superficie de control, n vector
normal, w es la velocidad límite y v es la velocidad del fluido. Mayor detalle ver [20],
capítulo 6, página 6.
Figura. 3.1 Volumen de control arbitrario para la aplicación de la ecuación
del balance de momentum.
31
3.5. Métodos de simulación.
Los métodos de simulación deben ser resueltos por un algoritmo de solución. Para un proceso
en estado estacionario el modelo numérico está constituido por sistemas de ecuaciones
no-lineales que pueden ser resueltas mediante: método modular secuencial, método orientado
a ecuaciones y el método modular simultáneo.
Método modular secuencial.
Este método implica la interpretación del diagrama de flujo del proceso como un grupo de
unidades de proceso (equipos), para cada uno de los cuales existen subrutinas de cálculo.
Cada subrutina calcula las variables de las corrientes de salida de dicha unidad de proceso
con base al modelo matemático correspondiente. Mayor detalle referirse a [18], página 50.
Método orientado a ecuaciones.
Este modelo representa una solución simultánea de las ecuaciones que describen el proceso,
mediante el cual permite resolver las ecuaciones algebraicas no lineales que constituyen el
modelo del sistema. Mayor detalle referirse a [18], páginas 51-52
Método modular simultáneo.
Este método fusiona las ventajas de los dos métodos anteriormente descritos, tienen un
manejo más eficiente de las ecuaciones donde se requiere múltiples ciclos. Mayor detalle
referirse a [18], páginas 59-61.
3.6. Descripción del modelo
Los modelos matemáticos de un proceso como este (objeto de nuestro estudio) son el
elemento esencial para explicar algún tipo de fenómeno e identificar tanto cualitativamente
como cuantitativamente el proceso estudiado a fin de obtener las características del sistema.
Para la obtención del modelo del separador trifásico se realiza las siguientes suposiciones:
a) Se desprecia los efectos térmicos por intercambio de calor entre el separador y el medio
ambiente (el separador se encuentra aislado térmicamente).
b) Se desprecia la influencia de agentes químicos (no influyen en cambio alguno en las
propiedades físico-químicas).
c) No existe arrastre de líquido en la fase gaseosa (trampas de condensados).
32
El primer paso es definir las propiedades y las condiciones de los fluidos, las propiedades se
determinan a partir de la prueba assay (compilación de datos de laboratorio que define las
propiedades de un crudo) que determinan las propiedades del crudo y el análisis PVT que
determina las propiedades del gas.
El segundo paso es establecer las condiciones de operación como son: presión de trabajo en
[psi], temperatura en [oF] y caudales en [BPD]. Donde la presión de trabajo debe garantizar el
flujo hacia los demás equipos utilizados en el proceso de deshidratación.
En la figura 3.2, se muestra un separador trifásico controlado por dos válvulas controladoras
de nivel (colchón agua y crudo) y una para el control de la presión del separador (gas), que
son retroalimentadas y de esta manera obtener el porcentaje de apertura de las mismas.
Variación de niveles en un separador trifásico.
La presencia del vertedero entre la cámara de separación y la cámara de crudo generará los
diferentes niveles que conforman la separación trifásica, para lo cual se ha desarrollado la
figura 3.2.
En la cual el vertedero aislará una cámara de la otra y de esta manera se obtendrá un crudo
limpio (bajo en porcentaje de BSW).
Figura. 3.2 Variables presentes en un separador trifásico.
donde: P es la presión del separador en [psi] (medida de campo), Gin es el flujo de entrada
en fase gaseosa en [mscfd] (medida de campo), Ein es el flujo de entrada en fase emulsionada
en [BPD] (medida de campo), Win es el flujo de entrada en fase acuosa en [BPD] (medida de
campo), Gout es el volumen de salida fase gaseosa en [mscfd ] (medida de campo),
Oout es el volumen de salida fase oleosa en [BPD] (medida de campo), Wout es el volumen
de salida fase acuosa en [BPD] (medida de campo), hl es la altura fase oleosa en la cámara de
33
crudo en [m] (medida de campo), ht es la altura total de líquido en la cámara de separación en
[m] (medida de campo), hw es la altura fase acuosa en la cámara de separación en [m]
(medida de campo), Sg es la fracción de abertura de la válvula de gas (adimensional), So es la
fracción de abertura de la válvula de crudo (adimensional), Sw es la fracción de abertura de la
válvula de agua en (adimensional).
3.7. Área del segmento circular.
Para el presente trabajo la geometría del separador se la aproximará a la de un cilindro, y el
área de los segmentos circulares se presenta en la siguiente ecuación, mayor detalle ver [24]
páginas 84-86. Anexo E.
(
)
√ ( ) ( )
3.8. Volumen del segmento circular del separador.
El volumen del líquido ocupado en el cilindro es:
( )
( )
donde: A es el área del segmento circular ocupado por el líquido, L es la longitud del líquido
ocupado en el separador y D el diámetro del separador.
De la relación (42) en (43) se obtiene
[
(
)
√ ( )] ( )
De (44) en (45) resulta
[
(
)
√ ( )] ( )
[ (
)
( )√ ( )
] ( )
V es una función de h. Derivando el volumen en función de la altura, tenemos
34
√ ( ) ( )
tomando en consideración VT dado como
( )
y reemplazando en (49), se obtiene
√ ( ) ( )
Aplicando la regla de la cadena:
( )
se concluye
√ ( )
( )
3.9. Resumen de ecuaciones
A continuación se presenta un resumen de las ecuaciones utilizadas para determinar las
propiedades físico-químicas de cada una de las corrientes presentes en el flujo.
Propiedades físicas del petróleo.
Gravedad específica: S o 141.5
API 131.5 .
Viscosidad : o 10
-1 .
Propiedades físicas del gas.
Peso molecular : ∑ .
Densidad : g
PM
RT .
Viscosidad: g 0.00046
N M1 2⁄ PC2 3⁄
TC1 6⁄ .
36
CAPÍTULO IV
4. MODELO NUMERICO SEPARADOR TRIFASICO
Resumen.
En esta sección tratamos el balance de masa como evaluación del proceso presentando en
ecuaciones básicas de balance de fluidos: petróleo, agua y gas. Y se detalla la secuencia de
cálculo para determinar las propiedades físicas de dichos fluidos.
Además se detalla el desarrollo del modelo, allí analizamos el balance de los fluidos en cada
una de las secciones del separador trifásico que son necesarios para comprender el
comportamiento del proceso de separación.
4.1. Evaluación del proceso
Para desarrollar el modelo numérico del separador trifásico se debe tener un entendimiento de
la física del sistema de separación, con lo cual se pueda representar el mismo mediante
ecuaciones diferenciales ordinarias.
Las ecuaciones a desarrollar son tanto para el lazo de nivel como para el lazo de presión.
Considerando el balance general de masa del líquido en el separador para el lazo de nivel se
tiene:
( )
Donde : es el área del segment circular en [m] (unidades del S.I.), es la altura de líquido
en [m] (unidades del S.I.), t es el tiempo en [s] (unidades del S.I.), es el caudal de líquido
de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.) y es el caudal de
líquido de salida en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.).
De manera análoga al lazo de nivel, se presenta para para el lazo de presión cuya ecuación se
deduce más adelante, la cual proviene de la ecuación de los gases ideales:
( )
( )
donde: es la presión del separador en [psi] (unidades de campo) [Pa] (unidades del S.I.),
es el caudal de líquido de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del
37
S.I.), es el caudal de líquido de salida en [BFPD] (unidades de campo) [m3/s] (unidades
del S.I.), es el caudal de gas de ingreso en [SCFPD] (unidades de campo), es el
caudal de gas de salida en [SCFPD] (unidades de campo), es el volumen del separador en
[m3] (unidades S.I.), es el volumen cámara de separación en [m
3] (unidades S.I.) y es el
volumen cámara de crudo en [m3] (unidades S.I.).
4.2. Desarrollo del modelo
Antes de iniciar el análisis de la parte dinámica, es preciso determinar las propiedades físico-
químicas de los fluidos las cuáles fueron calculadas en el capítulo precedente mediante
principios físicos fundamentales o a través de correlaciones empíricas y datos de laboratorio
necesarios.
Luego de lo cuál se ingresa las propiedades geométricas del separador como longitud y
diámetro. Posteriormente se ingresará los niveles de trabajo tanto de la cámara de crudo como
de la cámara de separación o set point y los coeficientes de flujo de las válvulas de control.
Finalmente se obtiene la caracterización del separador trifásico de tipo horizontal bajo las
condiciones establecidas.
Balance de líquido en la cámara de separación.
Aplicando el balance de masa en la cámara de separación se tiene
( )
Se obtiene la variación de altura del líquido (crudo+agua) en la cámara de separación,
√ ( ) ( )
donde: es el caudal de emulsión de ingreso en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de flujo del vertedero en [BPD] (unidades de campo)
[m3/s] (unidades S.I.), es el diámetro del separador en [m] (unidades S.I.), es la
longitude de la cámara de separación [m] (unidades S.I.) y es la altura total del líquido en
la cámara de separación [m] (unidades S.I.).
38
Balance de petróleo en la cámara de crudo.
La variación de altura en la cámara de crudo está dada por:
( )
donde es el caudalde crudo que atraviesa el vertedero hacia la cámara de crudo, es
el caudal de crudo saliente.
√ ( ) ( )
con altura de la cámara de crudo, diámetro del separador y la longitud de la cámara
de crudo.
Balance de agua en la cámara de separación.
La variación de altura de agua en la cámara de separación está dada por,
( )
√ ( ) ( )
donde: Win es el caudal de ingreso de agua, Wout es el caudal de salida de agua, Lcs longitud
de la cámara de separación, hw altura del agua en la cámara de separación y D el diámetro
del separador.
Balance de gas.
Tomando en consideración la ecuación de los gases ideales que se expresa como:
( )
donde P es la presión medida en [psi] (unidades de campo) o [Pa] (unidades S.I.), Vg es el
volumen del casquete de gas medida en [ft3] (unidades de campo) o [m
3] (unidades S.I.), n es
número de moles de gas en [mol] (unidades S.I.), T la temperatura del separador en [oF]
(unidades de campo) [K] (unidades S.I.), y R la constante universal de los gases 10.7314
[psia-ft3/lbmol-ºR] (unidades de campo) o 8314.34 [ Pa-m
3/Kgmol-K] (unidades S.I.).
de esta ecuación obtenemos:
39
( )
y tomando en cuenta el volumen del separador, de la cámara de separación y la cámara de
crudo, notados por Vt, Vcs, Vcc, resulta,
( ) ( )
que es una función dependiente del tiempo. Derivando respecto de t, obtenemos la relación
(
)
( )
( )
De la ecuaciones (57) y (59) en (64) obtenemos, mayor detalle ver [24] páginas 10-15,
( )
( )
( )
donde es el caudal de emulsión de ingreso en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de ingreso de agua en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el caudal de salida de crudo en [BPD] (unidades de campo) [m3/s]
(unidades S.I.), es el volumen del separador en [m3] (unidades S.I.), es el volumen de la
cámara de separación en [m3] (unidades S.I.), es el volumen de la cámara de crudo en
[m3] (unidades S.I.), n es el número de moles de gas en [mol] (unidades S.I.) y t es el tiempo
[s] (unidades S.I.).
El flujo molar del gas de entrada y salida están representadas por las siguientes ecuaciones:
( )
( )
el balance de masa en el casquete de gas del separador es
( )
De las ecuaciones (66) y (67) en (68) se obtiene:
40
( )
donde
( ) ( )
Igualando las ecuaciones (65) y (70), se obtiene el comportamiento dinámico de la presión en
el separador como se muestra en la siguiente ecuación,
( )
( )
4.2.1. Cálculo del volumen en el separador.
El volumen ocupado por el fluido en cada una de las cámaras tanto en la de separación como
en la de crudo se describe a continuación.
Volumen de líquido en la cámara de separación.
El volumen de líquido en la cámara de separación está dado por las siguientes ecuaciones,
[ (
)
( )√ ( )
] ( )
[(
) (
)
( )√ ( )] ( )
donde: es el volumen de la cámara de separación en [m3] (unidades S.I), es la
longitud de la cámara de separación en [m] (unidades S.I), la altura total del líquido en la
cámara de separación medido en [m] (unidades S.I), y D el diámetro del separador en [m]
(unidades S.I).
Volumen de petróleo en la cámara de crudo.
El volumen de petróleo en la cámara de crudo está representado por las siguientes
ecuaciones,
[ (
)
( )√ ( )
] ( )
41
[(
) (
)
( )√ ( )] ( )
donde: es el volumen cámara de crudo en [m3] (unidades S.I), es la longitud de la
cámara de crudo en [m] (unidades S.I) y es la altura de líquido en la cámara de crudo en
[m] (unidades S.I).
Volumen de agua en la cámara de separación.
[ (
)
( )√ ( )
] ( )
[(
) (
)
( )√ ( )] ( )
donde: es el volumen de agua en la cámara de separación medido en [m
3] (unidades
S.I), es la longitud de la cámara de separación en [m] (unidades S.I), y la altura del
colchón de agua en la cámara de separación en [m] (unidades S.I).
Volumen de crudo en la cámara de separación.
El volumen de crudo presente en la cámara de separación se muestra en la siguiente ecuación:
( )
donde: es el volumen de crudo en la cámara de separación, es el volumen en la
cámara de separación y es el volumen de agua en la cámara de separación.
4.3. Flujo de crudo en el vertedero.
Para determinar el flujo de líquido que sale a través del vertedero se utiliza la fórmula de
presa, referirse a [20] capítulo-10, página 19, para el modelo del separador es:
√ [ ( )]( ) ⁄ ( )
√ ( ) ( )
donde: es el caudal del vertedero, es la altura del vertedero, es la altura total
del líquido en la cámara de separación, D el diámetro del separador y g es la gravedad.
42
4.4. Sistema de control
El sistema de control requiere normalmente de desarrollos teóricos y de simulaciones
dinámicas, que deben basarse en un modelo matemático del proceso a controlar. Dicho
modelo debe representar con cierto grado de aproximación el comportamiento dinámico de
las principales variables de interés.
Los modelos matemáticos pueden ser determinísticos o estocásticos. Un modelo es
determinístico cuando asume nulos los ruidos típicos del proceso y de la medición, donde la
evolución del modelo puede ser determinado en forma precisa. En cambio, en un modelo
estocástico las componentes aleatorias propias del proceso y de la medición se asumen de
estadística conocida y usualmente se las considera como ruidos. Mayor detalle dirigirse a
[23], páginas 643 – 649.
En nuestro caso de estudio se considerará al separador trifásico como un modelo
determinístico.
En el sistema de control el controlador es el componente activo que recibe las señales de “set
point” y las mediciones y efectúa las acciones de control para ajustar los valores de las
variables manipuladas. Internamente, en un controlador puede implementarse una ley de
control muy sencilla (por ejemplo, sólo un efecto proporcional), o lineales con acciones
proporcional, integral y derivativa (PID).
El modelo del sistema final de control básicamente consiste en el balance de flujo entre la
corriente de entrada y las corrientes de salida, que son operadas por las válvulas dentro de un
conjunto de valores de la variable medida.
El controlador constituye el elemento fundamental en un sistema de control, pues determina
el comportamiento del bucle, ya que condiciona la acción del elemento actuador en función
del error obtenido. La forma en que el regulador genera la señal de control se denomina
acción de control.
Todo el proceso interactúa a través de las variables de salida cuyo valor se desea conocer; las
variables manipuladas, que pueden ser modificadas durante el proceso; y las perturbaciones.
Las variables controladas en el separador son los niveles de la interface en la cámara de
separación, nivel de la cámara de crudo y la presión interna del separador.
43
El controlador compensa la señal de error que es la derivación del nivel actual de fluido
respecto al set point, y genera una señal que actúa sobre la válvula de control.
4.4.1. Flujo de salida para líquidos y gases.
Las válvulas de salida de los fluidos crudo, agua y gas son modeladas en función de flujo
unidireccional. Para mayor detalle referirse a [9], páginas 428 – 465.
Flujo de salida de crudo.
El caudal de salida de crudo por la válvula. Mayor detalle ver [11], paginas 41-42, viene dado
por :
√
( )
donde: es el caudal de salida de crudo en [BPD] (unidades de campo) o [m3/s] (unidades
S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la
válvula de crudo (adimensional), es la presión aguas arriba de la válvula en [psi]
(unidades de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades
de campo) o [Pa] (unidades S.I.), es la gravedad específica del crudo (adimensional),
es la densidad del crudo en [lb/ft3] (unidades de campo) o [Kg/m
3] (unidades S.I.), es la
altura de fluido en la cámara de crudo en [ft] (unidades de campo) o [m] (unidades S.I.) y
es la gravedad en [ft/s2] (unidades de campo) o [m/s
2] (unidades S.I.).
Flujo de salida de agua.
De manera análoga al flujo de salida de crudo se realiza el balance de masa para la cámara de
separación. Mayor detalle ver [11], paginas 41-42,
El caudal de salida por la válvula viene dado por:
√ [ ( )]
( )
donde: es el caudal de salida de agua en [BPD] (unidades de campo) o [m3/s] (unidades
S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la
válvula de agua (adimensional), es la presión aguas arriba de la válvula de agua en [psi]
(unidades de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades
44
de campo) o [Pa] (unidades S.I.), es la gravedad específica del crudo (adimensional),
es ladensidad del agua en [lb/ft3] (unidades de campo) o [kg/m
3] (unidades S.I.), es la
altura del colchón de agua en la cámara de separación en [ft] (unidades de campo) o [m]
(unidades S.I.) y es la gravedad en [ft/s2] (unidades de campo) o [m/s
2] (unidades S.I.).
Flujo de salida de gas.
El flujo de gas que atraviesa por la válvula de control esta dada por la siguiente expresión
√( ) ( ) (
)
( )
donde: es el caudal de salida de gas en [SCFD] (unidades de campo) o [m3/s] (unidades
S.I.), es el coeficiente de caudal (adimensional), es el porcentaje de abertura de la
válvula de gas (adimensional), es la presión aguas arriba de la válvula en [psi] (unidades
de campo) o [Pa] (unidades S.I.), P es la presión del separador en [psi] (unidades de campo) o
[Pa] (unidades S.I.), es el peso molecular del aire en [lb/mol] (unidades de campo) o
[g/mol] (unidades S.I.) y es el peso molecular del gas en [lb/mol] (unidades de campo) o
[g/mol] (unidades S.I.).
4.5. Parámetros de variación.
Para la evaluación de un separador trifásico, generalmente no se dispone de información por
lo cual es necesario implementar procedimientos para estimar las propiedades y/o
condiciones no conocidas a partir de las propiedades fisicoquímicas, tablas, etc.
Como primer paso se definen las condiciones y propiedades involucradas en el cálculo a
partir de la información primaria de campo que generalmente es:
a) Gravedad API del Crudo a 60◦F,
b) %BSW, (Bottom Sedimentation ,Water),
c) Caudal de producción en [BPD],
d) Temperatura y presión de operación,
e) Datos cromatográficos del gas y/o análisis PVT arena.
Además de las variables primarias de campo tenemos las variables del separador trifásico que
también son susceptibles de variación.
45
Temperatura del separador.
Los distintos componentes de la mezcla tienen diferentes temperaturas de evaporación por lo
cual cualquier cambio relevante en la temperatura determinará el estado de fase líquido o
gaseoso en el separador.
Presión del separador.
De manera análoga a la temperatura, el estado de fases de los componentes se encuentran
ligados íntimamente con la variación de presión.
El control de variación de la presión es el parámetro más accesible para estimar cada uno de
los sub-productos obtenidos.
Set point.
Con la variación de dicho parámetro se obtiene una variación en el tiempo de residencia de
cada una de las fases presentes.
Constantes de proporcionalidad e integral de la válvula de control.
Las constantes de las válvulas de control generalmente no son modificables puesto que una
vez realizada las sintonizaciones estas permanecerán constantes.
Cualquier variación en dichas variables puede incurrir en una inestabilización del sistema.
46
CAPÍTULO V
5. PROGRAMA COMPUTACIONAL Y VERIFICACION
Resumen.
En este capítulo se ejecuta los diagramas de flujo de cada una de las propiedades de los
fluidos detalladas en el tercer capítulo, se implementará un código de cálculo que permita
estimar estas propiedades en el proceso de la separación trifásica.
5.1. Algoritmo de programación.
Debido a la naturaleza del proceso, la solución de las ecuaciones que componen el modelo
matemático proporcionará una buena estimación de las variables involucradas.
De acuerdo a las ecuaciones presentadas en el resumen de los capítulos anteriores se elabora
los respectivos algoritmos que se presenta a continuación.
5.1.1. Algoritmo de programación propiedades del petróleo.
En base a las ecuaciones (2) y (3) se elabora el siguiente algoritmo.
Figura.5.1 Algoritmo Propiedades del Crudo.
𝐴𝑃𝐼 𝑇𝑎
PARAMETROS DE
ENTRADA
𝑆𝐺𝑂
𝐴𝑃𝐼
GRAVEDAD ESPECIFICA VISCOSIDAD
𝜇𝑂 [ ( 0 0 0 0 𝑆𝐺𝑂) 𝑇𝑎
6 ] -1
PROPIEDADES DEL
CRUDO
𝑆𝐺𝑂 𝜇𝑂
47
5.1.2. Algoritmo de programación propiedades del gas.
Algoritmo programación densidad del gas.
En base a las ecuaciones (5) y (6) se elabora el siguiente algoritmo.
Figura.5.2 Algoritmo Densidad del Gas.
𝑀𝑖 𝑇 𝑅 𝑃𝑂𝑃 𝑦𝑖
PARAMETROS DE ENTRADA
𝑀 ∑ 𝑦𝑖 𝑀𝑖
PESO MOLECULAR MEZCLA
𝜌𝑔 𝑃 𝑀
𝑍 𝑅 𝑇
DENSIDAD
PROPIEDADES DEL GAS
𝑍
𝜌𝑔
48
Algoritmo programación viscosidad del gas.
En base a la ecuación (7), (8) y (9) se elabora el siguiente algoritmo.
Figura.5.3 Algoritmo Viscosidad del Gas.
𝑇𝑟𝑚 [ (𝑇𝑂𝑃 )]
𝑇𝐶𝑚
TEMPERATURA REDUCIDA
𝑁 ( 𝑇𝑟𝑚 )
𝑇𝑂𝑃 𝑇𝐶 𝑃𝑂𝑃 𝑦𝑖
PARAMETROS DE ENTRADA
𝑃𝐶𝑚 ∑𝑦𝑖 𝑃𝑖𝑐
PRESION CRÍTICA
𝑁 𝑇𝑟𝑚 9
𝑇𝑟𝑚 N
O
S
I
𝜇𝑔 𝑁 𝑀𝑚
𝑃𝑐𝑚
𝑇𝐶𝑚
6
𝑇𝐶𝑚 ∑𝑦𝑖 𝑇𝑖𝑐
TEMPERATURA CRÍTICA
VISCOSIDAD DEL GAS
𝜇𝑔
49
5.1.3. Algoritmo programación factor de compresibilidad del gas.
En base a las ecuaciones (22), (25) y (26) se elabora el siguiente algoritmo.
𝑇𝑂𝑃 𝑇𝐶 𝑅 𝑃𝐶 𝑤𝑖 𝐾𝐼𝐽 𝑦𝑖
PARAMETROS DE ENTRADA
𝑇𝐶𝑖 𝑦𝑖 𝑇𝑖𝑐
TEMPERATURA CRÍTICA
𝑃𝐶𝑖 𝑦𝑖 𝑃𝑖𝑐
PRESION CRÍTICA
𝑎𝑖 𝑅 𝑇𝑐𝑖
𝑃𝑐𝑖
PARAMETRO DE
ATRACCION
FACTOR DE
COMPRESIBILIDAD Z
𝑏𝑖 𝑅 𝑇𝑐𝑖𝑃𝑐𝑖
PARAMETRO DE REPULSION
𝑚𝑖 𝑤𝑖 𝑤𝑖
FACTOR ADIMENSIONAL
𝛼𝑖 [ 𝑚𝑖( 𝑇𝑟𝑖 )]
𝑇𝑟 [ (𝑇𝑂𝑃 )]
𝑇𝐶
TEMPERATURA REDUCIDA
2 3
1
50
Figura.5.4 Algoritmo Factor Compresibilidad Z del Gas.
Z
3 1
𝑏𝑚 ∑𝑦𝑖 𝑏𝑖
PARAMETRO DE REPULSION MEZCLA
𝑎𝑚 ∑∑[𝑦𝑖𝑦𝑗(𝑎𝑖𝑎𝑗𝛼𝑖𝛼𝑗) ( 𝐾𝑖𝑗)]
𝑚
𝑗
𝑛
𝑖
PARAMETRO DE ATRACCION MEZCLA
2
𝐵 𝑏𝑚𝑃
𝑅𝑇
PARAMETRO DE REPULSION MEZCLA
𝐴 𝑎𝑚𝑃
(𝑅𝑇)
PARAMETRO DE ATRACCION MEZCLA
𝑧 (𝐵 ) 𝑧 (𝐴 𝐵 𝐵) 𝑧 (𝐵 𝐵 𝐴𝐵)
UTILIZAMOS EL MÉTODO DE NEWTON RAPSON
FACTOR
COMPRESIBILIDAD
51
5.1.4. Algoritmo de programación propiedades del agua.
En base a las ecuaciones (13) y (14) se elabora el siguiente algoritmo.
Figura.5.5 Algoritmo Propiedades del Agua.
PRESION
CRÍTICA
PARAMETRO DE
REPULSION
3
𝐶 𝐶 𝐶 𝐶 𝑇
PARAMETROS DE ENTRADA
𝜌𝑤 𝐶
𝐶 [ (
𝑇𝑂𝑃𝐶 ) 𝐶 ]
DENSIDAD
𝜇𝑤 𝑒 79𝑥 𝑇𝑜𝑝 9 𝑥
5𝑇𝑜𝑝
VISCOSIDAD
𝜇𝑤 𝜌𝑤
PROPIEDADES DEL AGUA
52
5.2. Estrategia de control del nivel de cámara de crudo.
La figura 5.6 muestra el modelo realizado en Simulink del controlador de nivel, donde K es
el conversor de señal analógico a digital (0,75 psig/mA), e K1 representa la ganancia del
actuador de la válvula. Mayor detalle se puede consultar en [23], página 773.
5.3. Estrategia de control del nivel colchón de agua cámara separación.
La figura 5.7 muestra el modelo elaborado en Simulink del controlador de nivel, del colchón
de agua en la cámara de separación, donde K es el conversor de señal analógico a digital
(0,75 psig/mA), y K1 representa la ganancia del actuador de la válvula, y las constantes del
controlador respectivamente.
5.4. Estrategia de control de la presión del separador.
La figura 5.8 muestra el modelo ejecutado en Simulink del controlador de presión, del
casquete de gas en el separador, donde K es el conversor de señal analógico a digital (0,75
psig/mA), y K1 representa la ganancia del actuador de la válvula, y las constantes del
controlador respectivamente.
Figura. 5.6 Control de nivel cámara de crudo.
Figura. 5.7 Control de nivel cámara de separación.
54
5.5. Diagrama general estrategia de control del separador trifásico.
La figura 5.9 muestra el sistema de control del separador trifásico.
Figura.5.9 Control del separador trifásico.
55
5.6. Lenguaje de programación
En el Anexo F se encuentra el desarrollo de solución del programa.
5.7. Resultados obtenidos en la simulación
La aplicación del diseño se realizó sobre un caso de estudio real, donde el punto de partida es
la información suministrada por campo.
5.8. Datos de entrada.
Para el caso en estudio se toman los datos otorgadas por los análisis cromatográficos del gas
tabla 5.1 (Anexo B), y condiciones pre-establecidas tabla 5.2 (Anexo G).
Para un crudo de densidad 200
API y un caudal de 2000 BFPD, se tiene los correspondientes
valores de componentes mostrados en la tabla 5.1.
Tabla. 5.1 Cromatografía del gas.
VALORES CROMATOGRAFICOS
COMPONENTE % MOLAR
VAPOR DE AGUA 12.9813
NITROGENO 3.9604
DIOXIDO DE CARBONO 51.5352
METANO 15.0215
ETANO 3.3403
PROPANO 6.5507
ISO-BUTANO 1.5202
N-BUTANO 3.0903
ISO-PENTANO 1.1901
N-PENTANO 0.6001
N-HEXANO 0.16
N-HEPTANO 0.0500
TOTAL 100
56
Tabla. 5.2 Parámetros mecánicos del separador.
PARAMETRO UNIDAD VALOR
Diámetro m 1.83 72”
Longitud cámara separación m 6.1 20’
Longitud cámara crudo m 1.22 4’
Altura del vertedero m 1.0 43”
Para la dinámica de la válvula se consideró su apertura es de tipo lineal (Anexo C) como se
muestra en la tabla 5.3.
Tabla 5.3 Parámetros de las válvulas de control
VALVULA CRUDO AGUA GAS
Tipo Lineal Lineal Lineal
Diámetro de la válvula 4 in 4in 6in
Constante Cv 212 212 417
5.9. Perturbaciones.
5.9.1. Perturbación de la fase gas.
La primera perturbación la realizamos al flujo de ingreso y en el control de la presión del
separador, con una variación tipo sinusoidal y escalón respectivamente, tabla 5.4
Tabla 5.4 Perturbación fase gas.
PERTURBACION AMPLITUD
Sinusoidal 0.7 Flujo
Tiempo 500
Escalón 10 Set point
Tiempo 1200
57
Resultado de la perturbación de presión.
Como se aprecia en las figuras 5.10 y 5.11, el sistema inicia con un flujo de caudal de salida
cero hasta los 420 segundos donde la presión empieza a sobrepasar el set point.
Luego a los 500 segundos sufre un incremento de caudal de gas con una perturbación
sinusoidal donde con el incremento repentino la presión llega hasta los 80 psi, el tiempo de
respuesta de la válvula de control es de 300 segundos hasta estabilizar el sistema.
Posteriormente con el incremento de la presión en su set, bajo las mismas condiciones de
caudal el tiempo de respuesta de la válvula es de 300 segundos y el sistema ha sido
estabilizado.
Figura.5.10 Caudal de ingreso y salida de gas.
Figura.5.11 Presión de sistema.
58
5.9.2. Perturbación del agua.
La segunda perturbación la realizamos en el flujo de ingreso y el control del colchón de agua
en la cámara de separación con una variación tipo sinusoidal y escalón, tabla 5.5.
Tabla 5.5 Perturbación del colchón de agua.
PERTURBACION AMPLITUD
Sinusoidal 0.4 Flujo
Tiempo 1000
Escalón 0.2 Set point
Tiempo 1200
Resultado la perturbación de agua en la cámara de separación.
De manera análoga a la perturbación en el control de la presión del sistema en las figuras 5.12
y 5.13, se describe el proceso de estabilización a los cambios descritos en la tabla 5.5.
5.9.3. Perturbación crudo.
La tercera perturbación la realizamos en la cámara de crudo, en su set point, y su respectiva
perturbación en el flujo de ingreso, tabla 5.6.
Tabla 5.6 Perturbación del nivel de crudo.
PERTURBACION AMPLITUD
Sinusoidal 0.02 Flujo
Tiempo 300
Escalón -0.2 Set point
Tiempo 1500
Resultado perturbación cámara de crudo.
Como se muestra en las figuras 5.14 y 5.15, el sistema a los 400 segundos experimenta un
pico de flujo de salida debido que la altura de la cámara de crudo tiene a subir muy
rápidamente, debe permanecer por debajo de 1 metro de altura porque a ésta se encuentra el
rebose del vertedero.
59
Figura.5.12 Caudal ingreso y salida de agua.
Figura.5.13 Altura del colchón de agua de la cámara separación.
61
5.10. Verificación de resultados
5.10.1. Propiedades físico químicas.
En esta ventana como se muestra en la figura 5.16. se ingresa los datos de la cromatografía del gas, presión y temperatura de operación además
de los datos mecánicos del separador.
Figura.5.16. Interface gráfica de las propiedades del fluido.
62
Se han relacionado los datos de la densidad (Anexo B), cuya variable es subsecuente para la
determinación de la simulación, con los obtenidos en laboratorio.
Tabla. 5.7 comparación densidad del gas
Temperatura presión densidad
(cromatografía)
densidad
(programa) error
F psi Kg/m3 Kg/m3
158 30 2.6389 2.43 0.07916177
32 14.7 1.6478 1.5 0.08969535
59 14.7 1.5593 1.37 0.12140063
77 14.7 1.5057 1.32 0.12333134
140 14.7 1.5598 1.18 0.24349276
63
5.10.2. Caudales proporcionados por el programa.
Se puede determinar que a mayor presión de operación del sistema se puede recuperar mayor volumen de hidrocarburos así:
Se recuperan 0.0125 m^3/s (6793 BOPD) a una presión de trabajo de 40 psi.
Se recuperan 0.0143 m^3/s (7771 BOPD) a una presión de trabajo de 80 psi.
Se recuperan 0.0158 m^3/s (8586 BOPD) a una presión de trabajo de 120 psi.
Se establece que el porcentaje de recuperación de livianos es de 45 BOPD/PSI
Figura. 5.17 Caudales de salida de crudo a distintas presiones.
64
De la Figura 5.18 se determina:
Se recuperan 0.006 m^3/s (3260 BGPD) a una presión de trabajo de 60 psi.
Se recuperan 0.006 m^3/s (3260 BGPD) a una presión de trabajo de 80 psi.
Al tener la misma capacidad de recuperación en caudal de gas se determina que la presión óptima de trabajo se encuentra 60 a 80 psi.
Figura. 5.18 Caudales de salida de gas a diferentes presiones.
Así como se ha determinado el comportamiento del separador para distintos escenarios con cada una de las perturbaciones mencionadas en
función del tiempo, también se ha podido desarrollar nomogramas como los mostrados en la Figura 5.19., en función del corte de agua y la
presión de separación.
65
Figura. 5.19 Nomograma caudal de recuperación de crudo y gas.
El anexo G muestra el caudal de líquido y gas recuperado para un vasto rango de presiones a distintos cortes de agua.
0,0
200,0
400,0
600,0
800,0
1000,0
1200,0
1400,0
1600,0
1800,0
0,000
0,500
1,000
1,500
2,000
2,500
3,000
3,500
4,000
4,500
5,000
0 50 100 150 200 250 300 350 400 450 500 550
Crudo [BPD] Gas [MCFPD]
Caudal vs. Presión
gas 15% gas 30% gas 50% gas 80% oil 15% oil 30% oil 50% oil 80%
66
CAPÍTULO VI
6. CONCLUSIONES Y RECOMENDACIONES
6.1. Conclusiones
a) El modelo desarrollado en este trabajo es de utilidad en estudios de dinámica, control
y optimización. Como el sistema es complejo es necesario realizar ciertas
suposiciones con el objetivo de despreciar fenómenos no dominantes, para hacer que
el problema sea manejable desde un punto de vista numérico.
b) Mediante el algoritmo de simulación del proceso de separación se ha determinado las
condiciones de operación del sistema, el mismo que se encuentra entre los 55 a 65
psi.
c) El presente trabajo permite analizar con mínima información la presión idónea de
operación del equipo, con lo cual tanto el método como el programa son versátiles y
adaptables a diversas situaciones de operación.
d) Las correlaciones utilizadas en la simulación para la predicción de las propiedades
químicas de los sistemas de hidrocarburos son satisfactorias.
e) La simulación numérica nos proporcionan una visión futurista del comportamiento del
proceso de separación.
6.2. Recomendaciones
a) Elaborar más nomogramas que permitan determinar las condiciones óptimas de
separación dentro de la diversidad de crudos existentes en el país, para lograr obtener
un recobro máximo de líquidos.
b) Estudiar la hidrodinámica del separador, con la cuál se puede representar los efectos
de mezclado entre fases.
c) El modelo puede ser perfeccionado insertando correlaciones termodinámicas más
rigurosas para la determinación los coeficientes y propiedades de los fluidos.
d) Se recomienda realizar un estudio específico de los eliminadores de niebla para
determinar el efecto de éste en la recuperación de gas.
67
BIBLIOGRAFÍA
[1] API 12J., Specification and Oil and Gas Separators. Séptima Edición. Washington1989.
[2] ANDRADE, Francisco. Desarrollo de Herramienta de Simulación para Equipos
Separadores de Agua Libre. Trabajo de Grado. Master en Automatización Industrial.
Universidad Nacional de Colombia. Facultad de Ingemiería. Bogota, 2012.
[3] ARNOLD, Ken y STEWART, Maurice. Emulsions and Oil Treating Equipment, Editorial
Elsevier, Oxford, 2009.
[4] BANCO CENTRAL DEL ECUADOR, La actividad petrolera en el Ecuador en la década
de los 80, División técnica, Subgerencia financiera.
[5] BANZER, Carlos, Correlaciones Numéricas PVT [en línea], 1996, [fecha de
consulta: 10 de Julio2013], disponible en:
<http://oilproduction.net/cms/files/correlaciones%20PVT-Carlos%20Banzer.pdf>.
[6] BENALCAZAR, Hernán, Resultados Fundamentales del Análisis Vectorial. (2ª, 2010,
Quito, Ecuador). Universidad Central del Ecuador. Quito, 2010.
[7] BRENNEN, Christopher, Fundamentals of Multiphase Flow. Editorial Cambridge, New
York, 2005.
[8] CONFERENCIA Termodinámica y Procesos de Separación (2ª, 2010, Quito, Ecuador).
Generalidades de Separación. Universidad Central del Ecuador. Quito, 2011.
[9] CREUS, Antonio, Instrumentación Industrial, Sexta Edición, Editorial Alfaomega,
Barcelona, 1997.
[10] DIONNE, Marc. The Simulation of a Three Phase Separator. Trabajo de Grado. Master
en Ciencias en Ingeniería Química. Universidad de Calgary. Departamento de Ingeniería
Química y Petróleo. Ottawa. CA, 1998.
[11] DOMENICO, Diego. Estrategias de Controle Contra Intermitencia Severa na
Alimentacao de Separadores Offshore. Trabajo de Grado. Master en Ciencias en Ingeniería
Química. Universidad Federal do Rio de Janeiro. Escola de Química. Rio de Janeiro. 2009.
68
[12] GONZALES, Raúl, Apuntes de Simulación y Optimización: Estrategias de Solución en
el Modelado de Procesos, 12(80): 12-18, Abril 1995.
[13] GRODAL, Evert y REALFF, Matthew, Optimal Design of Two-and Three-Phase
Separators [en línea]. Georgia Institute of Technology, Houston, Texas. 1999,
[fecha de consulta: 8 de Mayo 2013], disponible en: < https://www.onepetro.org/conference-
paper/SPE-56645-MS>.
[14] HINCAPIE, Benjamín. Estudio y Diseño de Separadores Horizontales y Verticales de
Dos y Tres Fases. Trabajo de Grado. Ingeniero en Petróleo. Escuela Superior Politécnica del
Litoral. Facultad de Geología, Minas y Petróleos. Guayaquil. 1987.
[15] ISA-75.01.01-2007. Flow Equations for Sizing Control Valves. Carolina del Norte.
2007.
[16] MALDONADO, Daniel. Modelación del Proceso de Separación de Gas Crudo en la
Industria Petrolera. Trabajo de Grado. Ingeniero en Petróleos. Universidad ISTMO. Santo
Domingo Tehuantepec, 2010.
[17] MARTÍNEZ, Marcías y PEREZ, Ramiro. Características y Comportamiento de los
Hidrocarburos. Editorial Edwards, Maracaibo, 1975.
[18] MARTÍNEZ, Víctor, et all. Simulación de Procesos en Ingeniería Química. Editorial
Plaza y Valdés, Cuernavaca, 2000.
[19] MELO, Gonzales, LOPEZ, C. y CAMACHO, C., Simulación Dinámica de Sistemas
una Herramienta para el Análisis del Performance de Sistemas y Procesos en la Industria
Petrolera Metodología y Resultados [en línea]. Instituto Mexicano del Petróleo, Regional
Marina. 2009, [fecha de consulta: 8 de Enero 2013], disponible en:
<http://imiq.com.mx/convencion/web/SESIONES/JM-8-2.pdf>.
[20] PERRY Robert y REEN Do n. Perry’s Chemical Engineer’s Handbook. Séptima
Edición, Editorial Mc Graw Hill, 1999.
[21] RODRIGUEZ, Susana y VEGA, Aurelio. Simulación y Optimización Avanzadas en la
Industria Química y de Procesos. Tercera Edición, Editorial Oviedo, Oviedo 2005.
69
[22] SEADER, J. y HENLEY, E, Separation Process Principles, Chapter 1, Editorial
Hamilton 1998.
[23] SCENNA, Nicolás, et all, Modelado, Simulación y Optimización de Procesos Químicos
[en línea]. 1999, [fecha de consulta: 8 de Enero 2013], disponible en:
<http://nhmeed.cc.tx.us/1re/ke/peniche.html>.
[24] TANNUS, Nathalia, Modelagem Análise e Controle de um Processo de Separação Óleo
Água. Trabajo de Grado. Maestro en Ingeniería Química. Universidad Federal do Rio de
Janeiro. Río de Janeiro.2005.
[25] VERON, Smith y ARNOLD, Kenneth, Emulsion and Oil Treating an Equipment,
Editorial Elsevier, Oxford, 2009.
73
Anexo.C. Coeficiente Cv de las válvulas de control tipo globo
Valve Size (in) Flow Characteristic Cv
1/2 Equal Percent
Quick Opening
4.20
6.27
1
Equal Percent
Linear
Quick Opening
17.4
20.1
21.4
1-1/2
Equal Percent
Linear
Quick Opening
33.4
34.9
38.0
2
Equal Percent
Linear
Quick Opening
56.2
65.3
67.2
2-1/2
Equal Percent
Linear
Quick Opening
87.2
86.5
93.1
3
Equal Percent
Linear
Quick Opening
121
135
150
4
Equal Percent
Linear
Quick Opening
203
212
235
6
Equal Percent
Linear
Quick Opening
357
417
469
8
Equal Percent
Linear
Quick Opening
808
836
875
10 Modifield Parabolic
Quick Opening
987
1360
12 Modifield Parabolic
Quick Opening
1180
1700
74
Anexo D. Coeficientes presión óptima.
Coeficientes Cálculo Presión Óptima
A1 1.7970640x100 B1 3.9836405x10
-3
A2 2.1987547x10-3
B2 3.9836405x10-6
A3 1.6185399x10-6
B3 -5.5610874x10-8
A4 9.331717x10-9
B4 4.5029573x10-11
C1 -5.2867215x10-5
D1 38.234458x100
C2 1.2446502x10-7
D2 -5.0398134x10-2
C3 -5.3578971x10-11
D3 -1.8534164x10-5
C4 -2.7626487x10-14
D4 3.2528255x10-8
75
Anexo E. Variación de niveles en el separador trifásico.
( ( )) ( )
donde A es el área del segmento circular ocupado por el líquido, h es la altura del líquido
ocupado, r es el radio del separador y es el ángulo central.
Como: , se tiene
( ( )) ( )
y de la relación ( ) , se obtiene:
( ( ) ( )) ( )
Teniendo en cuenta el diámetro, resulta:
( ( ) ( )) ( )
donde:
( )
( )
(
) ( )
√ ( )
De las ecuaciones (f) y (g) en (d) deducimos
( (
) (
) √ ) ( )
76
De la ecuación (e) en (h) se obtiene
A D2
4ar cos (1
2h
D)
D2
4
(
(1 2h
D) √1 (1
2h
D)2
)
(
)
√ ( ) ( )
77
Anexo F. Desarrollo de la solución en Matlab.
A continuación se presenta la codificación del programa:
% PROGRAMA PARA CALCULAR LAS PROPIEDADES FISICO QUIMICAS DEL
PETROLEO Y SU COMPORTAMIENTO EN UN SEPARADOR TRIFASICO %
function varargout = CalculoT(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @CalculoT_OpeningFcn, ...
'gui_OutputFcn', @CalculoT_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%carga de datos a simulink
try
fname = 'PRUEBAquinta';
format long;
% pregunta si existe el modelo de control en simulink, caso contario cierra el programa
if exist(fname,'file') == 4
% If it does then check whether it's open
if bdIsLoaded(fname)
else
open_system(fname,'window')
end
end
catch
close(0);
end
handles.model_name=fname;
%Ingreso de las propiedades fisicoquímicas
handles.colgdc_nombre=1; % nombre del elemento
handles.colgdc_abrev=2; % abreviatura del elemento
handles.colgdc_formula=3; % formula quimica
handles.colgdc_fractM=4; % fracción molar
78
handles.colgdc_factorA=5; % factor acéntrico pag. 184 Perry
handles.colgdc_PresionMpa=6; % presión critica elemento pg. 184 Perry
handles.colgdc_PresionPsi=7; % Transformacion de presión
handles.colgdc_TempCritica=8; % temperatura critica pg. 184 Perry handles.colgdc_cuno=9;
% constante C1 pg. 102 Perry
handles.colgdc_cdos=10; % constante C2 pg. 102 Perry
handles.colgdc_ctres=11; constante C3 pg. 102 Perry y
handles.colgdc_ccuatro=12; constante C4 pg. 102 Perry handles.colgdc_ccinco=13; %
constante C5 pg. 102 Perry pg. 102 Perry
handles.colgdc_PresVPa=14; % presión vapor en Pa
handles.colgdc_PresVPsi=15; % presión vapor en psi
handles.colgdc_Salida=16; % condición de estado
handles.colgdc_Estado=17;
handles.output = hObject;
handles.C=12; % peso atómico carbón
handles.N=14; % peso atómico nitrógeno
handles.O=16; % peso atómico oxigeno
handles.H=1; % peso atómico hidrógeno
% carga de valores Ingresados
if exist('values.dat','file')==0
defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];
%get(handles.ParametrosConstantes,'data');
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
%currData = get(handles.ParametrosConstantes,'data');
%disp(currData);
end
valuesData=dlmread('values.dat',';');
set(handles.temp_F,'string',valuesData(1));
set(handles.presion_psi,'string',valuesData(4));
set(handles.api,'string',valuesData(6));
set(handles.temp_yacimiento,'string',valuesData(7));
set(handles.const_gas_r,'string',valuesData(8));
% Update handles structure
guidata(hObject, handles);
function varargout = CalculoT_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function slider1_Callback(hObject, eventdata, handles)
function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
function totalyipsi_Callback(hObject, eventdata, handles)
function totalyipsi_CreateFcn(hObject, eventdata, handles)
79
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function totalyitr_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function totalyitr_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function varA_Callback(hObject, eventdata, handles)
function varA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function varB_Callback(hObject, eventdata, handles)
function varB_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factam_Callback(hObject, eventdata, handles)
function factam_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function repm_Callback(hObject, eventdata, handles)
function repm_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function zfact_Callback(hObject, eventdata, handles)
function zfact_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densidad_Callback(hObject, eventdata, handles)
function densidad_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscosidad_Callback(hObject, eventdata, handles)
80
function viscosidad_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton4_Callback(hObject, eventdata, handles)
function pushbutton5_Callback(hObject, eventdata, handles)
function frac_moral_Callback(hObject, eventdata, handles)
function frac_moral_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function grav_espec_Callback(hObject, eventdata, handles)
function grav_espec_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
funtion visco_Callback(hObject, eventdata, handles)
function visco_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Actualizar_Callback(hObject, eventdata, handles) %actualizar datos
ActualizarData(hObject, eventdata, handles);
function const_gas_r_Callback(hObject, eventdata, handles)
function const_gas_r_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function const_gas_f_Callback(hObject, eventdata, handles)
function const_gas_f_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function const_gas_k_Callback(hObject, eventdata, handles)
function const_gas_k_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function api_Callback(hObject, eventdata, handles)
function api_CreateFcn(hObject, eventdata, handles)
.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
81
set(hObject,'BackgroundColor','white');
end
function temp_yacimiento_Callback(hObject, eventdata, handles)
function temp_yacimiento_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presion_psi_Callback(hObject, eventdata, handles)
function presion_psi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presion_pa_Callback(hObject, eventdata, handles)
function presion_pa_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_F_Callback(hObject, eventdata, handles)
function temp_F_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_K_Callback(hObject, eventdata, handles)
function temp_K_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_R_Callback(hObject, eventdata, handles)
function temp_R_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscom_Callback(hObject, eventdata, handles)
function viscom_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pesom_Callback(hObject, eventdata, handles)
function pesom_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
82
function temprm_Callback(hObject, eventdata, handles)
function temprm_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densg_Callback(hObject, eventdata, handles)
function densg_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densgmtres_Callback(hObject, eventdata, handles)
function densgmtres_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscompas_Callback(hObject, eventdata, handles)
function viscompas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function tempsr_Callback(hObject, eventdata, handles)
function tempsr_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factz_Callback(hObject, eventdata, handles)
function factz_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presioncmpsi_Callback(hObject, eventdata, handles)
function presioncmpsi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factorn_Callback(hObject, eventdata, handles)
function factorn_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function guardar_Callback(hObject, eventdata, handles) % guarda cambios
SaveWorkspace(hObject, eventdata, handles);
83
display('guardado');
function ActualizarData(hObject, eventdata, handles)
RecalcularGrilla(hObject, eventdata, handles);
RecalcularTodo(hObject, eventdata, handles);
%ActualizaC(hObject, eventdata, handles);
SaveWorkspace(hObject, eventdata, handles);
function CalculosIngreso(hObject, eventdata, handles)
caudal=str2double(get(handles.ccaudal,'string'));
PORBSW=str2double(get(handles.cbsw,'string'));
ppsi=str2double(get(handles.presion_psi,'string'));
agua_flujo= (caudal*PORBSW)/100;
gas_flujo=(caudal-agua_flujo)*0.4946*2.7182^(-0.0082*ppsi);
crudo_flujo=(caudal-agua_flujo)-gas_flujo;
set(handles.ccrudo,'string',crudo_flujo)
set(handles.cagua,'string',agua_flujo)
set(handles.cgas,'string',gas_flujo)
function CalcularAceite(hObject, eventdata, handles)
GravEsp=get(handles.grav_espec,'string');
dencA=str2double(GravEsp)*1000;
set(handles.denc,'string',dencA);
%Actualiza los datos en el simulink
function SaveWorkspace(hObject, eventdata,handles)
try
gData=get(handles.GrillaData,'data');
fileID = fopen('saved.dat','w');
for i=1:size(gData,1)
try
v13=gData{i,handles.colgdc_Salida};
v13 = strrep(v13, '<html><span style="color: #FF0000; font-weight: bold;">',
v13 = strrep(v13, '</span></html>','');
v1=gData{i,handles.colgdc_nombre};
v2=gData{i,handles.colgdc_abrev};
v3=gData{i,handles.colgdc_formula};
v4=gData{i,handles.colgdc_fractM};
v5=gData{i,handles.colgdc_factorA};
v6=gData{i,handles.colgdc_PresionKpa};
v7=gData{i,handles.colgdc_PresionPsi};
v8=gData{i,handles.colgdc_TempCritica};
v9=gData{i,handles.colgdc_cuno};
v10=gData{i,handles.colgdc_cdos};
v11=gData{i,handles.colgdc_ctres};
v12=gData{i,handles.colgdc_ccuatro};
v14=gData{i,handles.colgdc_ccinco};
v15=gData{i,handles.colgdc_PresVPa};
v16=gData{i,handles.colgdc_PresVPsi};
v17=gData{i,handles.colgdc_Estado};
fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1
84
2.12f;%12.12f;%12.12f;%12.12f;%12.12f;%s;%d\n',v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12
,v14,v15,v16,v13,v17);
catch
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
return;
end
end
fclose(fileID);
% carga de valores Ingresados
defaultData = zeros(1,12);
defaultData(1,1)=str2num(get(handles.temp_F,'string'));
defaultData(1,2)=str2num(get(handles.temp_K,'string'));
defaultData(1,3)=str2num(get(handles.temp_R,'string'));
defaultData(1,4)=str2num(get(handles.presion_psi,'string'));
defaultData(1,5)=str2num(get(handles.presion_pa,'string'));
defaultData(1,6)=str2num(get(handles.api,'string'));
defaultData(1,7)=str2num(get(handles.temp_yacimiento,'string'));
defaultData(1,8)=str2num(get(handles.const_gas_r,'string'));
defaultData(1,9)=str2num(get(handles.const_gas_f,'string'));
defaultData(1,10)=str2num(get(handles.const_gas_k,'string'));
defaultData(1,11)=str2num(get(handles.grav_espec,'string'));
defaultData(1,12)=str2num(get(handles.visco,'string'));
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
catch
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
return ;
end
function string = cell2str(cellstr)
if nargin~=1
error('CELL2STR:Nargin','Takes 1 input argument.');
end
if ischar(cellstr)
string = ['''' strrep(cellstr,'''','''''') ''''];
return
end
if ~iscellstr(cellstr)
error('CELL2STR:Class','Input argument must be cell array of strings.');
end
if ndims(cellstr)>2
error('CELL2STR:TwoDInput','Input cell array must be 2-D.');
end
ncols = size(cellstr,2);
for i=1:ncols-1
85
cellstr(:,i) = cellfun(@(x)['''' strrep(x,'''','''''') ''','],...
cellstr(:,i),'UniformOutput',false);
end
if ncols>0
cellstr(:,ncols) = cellfun(@(x)['''' strrep(x,'''','''''') ''';'],...
cellstr(:,ncols),'UniformOutput',false);
end
cellstr = cellstr';
string = ['{' cellstr{:} '}'];
function LoadGrillaCalculos(hObject, eventdata, handles)
gData=get(handles.GrillaData,'data');
%carga de datos guardados
% carga de constantes
if exist('dataconst.dat','file')==0
defaultData = [0.343 22064 3200.1 647.1 73.649 -7258.2 -7.3037 4.1653E-06 2;
0.037 3396 492.5 126.19 58.282 -1084.1 -8.3144 0.044127 1;
0.224 7377 1069.9 304.13 140.54 -4735 -21.268 0.040909 1;
0.011 4599 667.0 190.56 39.205 -1324.4 -3.4366 0.000031019 2;
0.098 4872 706.6 305.33 51.857 -2598.7 -5.1285 0.000014913 2;
0.149 4244 615.5 369.77 59.078 -3492.6 -6.0669 0.000010919 2;
0.197 3640 527.9 407.82 66.343 -4363.2 -7.046 9.4509E-06 2;
0.197 3798 550.9 425.12 66.343 -4363.2 -7.046 9.4509E-06 2;
0.251 3381 490.4 460.4 78.741 -5420.3 -8.8253 9.6171E-07 2;
0.251 3370 488.8 469.7 78.741 -5420.3 -8.8253 9.6171E-07 2;
0.304 3012 436.9 433.7 104.65 -6995.5 -12.702 0.000012381 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.999666333 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2];
%get(handles.ParametrosConstantes,'data');
dlmwrite('dataconst.dat',defaultData,'precision',12,'delimiter',';')
%currData = get(handles.ParametrosConstantes,'data');
%disp(currData);
end
constData=dlmread('dataconst.dat',';');
%carga de grilla guardada
if exist('saved.dat','file') == 0
defaultNames={'agua';'nitrogeno';'monoxido carb';'metano';'etano';'propano';'i-butano';'n-
butano';'i-pentano';'n-pentano';'hexano';'heptano';'octano';'nonano';'decano';'un
decano';'dodecano';' tridecano';'AC SULFURICO'};
defaultAbrev={'H2O';'N2';'CO2';'CO2';'C2';'C3';'IC4';'NC4';'IC5';'NC5';'NC6';'NC7';'NC8';'N
C9';'NC10';'NC11';'NC12';'NC13';'H2S'};
defaultForms={'H*2+O';'N*2';'C+O*2';'C+H*4';'C*2+H*6';'C*3+H*8';'C*4+H*10';'C*4+H*
10';'C*5+H*12';'C*5+H*12';'C*6+H*14';'C*7+H*16';'C*8+H*18';'C*9+H*20';'C*10+H*22';
'C*11+H*24';'C*12+H*26';'C*13+H*28';'H*2+C'};
defaultData = [1 1 1 0.1298 0.343 21.94 3182.13 647.10 73.65 -7258.20 -7.304 4.1650E-06
2.00 2.51E+03 3.63E-01;
86
1 1 1 0.0396 0.037 3.39 491.68 126.19 58.28 -1084.10 -8.314 4.4127E-02 1.00 6.68E+08
9.69E+04;
1 1 1 0.5154 0.224 7.39 1071.83 304.13 140.54 -4735.00 -21.268 4.0909E-02 1.00 5.89E+06
8.55E+02;
1 1 1 0.1502 0.011 4.59 665.72 190.56 39.21 -1324.40 -3.437 3.1019E-05 2.00 5.68E+07
8.24E+03;
1 1 1 0.0334 0.098 4.85 703.43 305.33 51.86 -2598.70 -5.128 1.4913E-05 2.00 3.86E+06
5.59E+02;
1 1 1 0.0655 0.149 4.21 610.61 369.77 59.08 -3492.60 -6.067 1.0919E-05 2.00 8.62E+05
1.25E+02;
1 1 1 0.0152 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05
3.13E+01;
1 1 1 0.0309 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05
3.13E+01;
1 1 1 0.0119 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04
8.57E+00;
1 1 1 0.006 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04
8.57E+00;
1 1 1 1.60E-03 0.304 3.04 440.91 507.60 104.65 -6995.50 -12.702 1.2381E-05 2.00
1.71E+04 2.48E+00;
1 1 1 0.0005 0.346 2.72 394.50 540.20 87.83 -6996.40 -9.880 7.2099E-06 2.00 4.98E+03
7.22E-01;
1 1 1 0 0.396 2.47 358.24 568.70 96.08 -7900.20 -11.003 7.1802E-06 2.00 1.50E+03 2.17E-
01;
1 1 1 0.00E+00 0.446 2.31 335.04 594.60 109.35 -9030.40 -12.882 7.8544E-06 2.00
4.52E+02 6.56E-02;
1 1 1 0 0.488 2.09 303.13 617.70 112.73 -9749.60 -13.245 7.1266E-06 2.00 1.38E+02 1.99E-
02;
1 1 1 0 0.530 1.95 282.82 639.00 131.00 -11143.00 -15.855 8.1871E-06 2.00 4.10E+01
5.95E-03;
1 1 1 0 0.577 1.82 263.97 658.00 137.47 -11976.00 -16.698 8.0906E-06 2.00 1.28E+01
1.86E-03;
1 1 1 0 0.617 1.68 243.66 675.00 137.45 -12549.00 -16.543 7.1275E-06 2.00 3.99E+00
5.78E-04;
1 1 1 0 0.096 9.00 1305.34 373.53 85.58 -3839.90 -11.199 1.8848E-02 1.00 1.83E+06
2.66E+02;];
fileID = fopen('saved.dat','w');
for i=1:size(defaultNames,1)
try
fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1
2.12f;%12.12f;%12.12f;%12.12f;%12.12f;%s;%d\n',defaultNames{i},defaultAbrev{i},defaul
tForms{i},defaultData(i,handles.colgdc_fractM),defaultData(i,handles.colgdc_factorA),defau
ltData(i,handles.colgdc_PresionKpa),defaultData(i,handles.colgdc_PresionPsi),defaultData(i,
handles.colgdc_TempCritica),defaultData(i,handles.colgdc_cuno),defaultData(i,handles.colg
dc_cdos),defaultData(i,handles.colgdc_ctres),defaultData(i,handles.colgdc_ccuatro),defaultD
ata(i,handles.colgdc_ccinco),defaultData(i,handles.colgdc_PresVPa),defaultData(i,handles.co
lgdc_PresVPsi),'LIQUIDO',1);
catch
87
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
end
fclose(fileID);
end
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
catch
errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
fclose(fileID);
try
rows=size(TVals{1},1);
cols=size(gData,2);
for i=1:rows
for j=1:cols
if j==handles.colgdc_nombre || j == handles.colgdc_abrev || j == handles.colgdc_formula || j
== handles.colgdc_Salida
Valor=TVals{j};
gData{i,j}=Valor{i};
elseif j==handles.colgdc_Estado
Valor=TVals{j};
if Valor(i)==1
gData{i,j}=true;
else
gData{i,j}=false;
end
else
Valor=TVals{j};
gData{i,j}=Valor(i);
end
end
end
88
set(handles.GrillaData,'data',gData);
catch
try
delete('saved.dat');
catch
end
errordlg('No es posible cargar los datos guardados pueden que estos esten
corruptos.','Valor incorrecto','modal')
close(0);
end
function RecalcularTodo(hObject, eventdata, handles)
%calculo temperatura F K R
valor_F = str2num(get(handles.temp_F,'string'));
if isnan(valor_F)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.temp_F)
return
end
resultado=(5*(valor_F-32)/9)+273.15;
set(handles.temp_K,'string',resultado);
resultado=(valor_F-32)+491.67;
set(handles.temp_R,'string',resultado);
%calculo presión en Pascales
valor_psi = str2num(get(handles.presion_psi,'string'));
if isnan(valor_psi)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.presion_psi)
return
end
resultado=valor_psi*6894.75;
set(handles.presion_pa,'string',resultado);
%calculo const_gas
valor_gr = str2num(get(handles.const_gas_r,'string'));
if isnan(valor_gr)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.const_gas_r)
return
end
resultado=(valor_gr*2.2*460.67)/1000;
set(handles.const_gas_f,'string',resultado);
resultado=resultado/255.9278;
set(handles.const_gas_k,'string',resultado);
%GRAVEDAD ESPECIFICA GAS
api=str2num(get(handles.api,'string'));
grav_espec=141.5/(131.5+api);
set(handles.grav_espec,'string',grav_espec);
%VISCOSIDAD GAS
temp_yacimiento=str2num(get(handles.temp_yacimiento,'string'));
visco=(10^((10^(3.0324-0.02023*grav_espec))*(temp_yacimiento^-1.163)))-1;
89
set(handles.visco,'string',visco);
function RecalcularGrilla(hObject, eventdata, handles)
data=get(handles.GrillaData,'data');
rows=size(data,1);
temp_K=str2num(get(handles.temp_K,'string'));
suma_frac=0;
for i=1:rows
%calculo presión de vapor
if isnumeric(data{i,handles.colgdc_cuno})
c1=data{i,handles.colgdc_cuno};
else
c1=str2num(data{i,handles.colgdc_cuno});
end
if isnumeric(data{i,handles.colgdc_cdos})
c2=data{i,handles.colgdc_cdos};
else
c2=str2num(data{i,handles.colgdc_cdos});
end
if isnumeric(data{i,handles.colgdc_ctres})
c3=data{i,handles.colgdc_ctres};
else
c3=str2num(data{i,handles.colgdc_ctres});
end
if isnumeric(data{i,handles.colgdc_ccuatro})
c4=data{i,handles.colgdc_ccuatro};
else
c4=str2num(data{i,handles.colgdc_ccuatro});
end
if isnumeric(data{i,handles.colgdc_ccinco})
c5=data{i,handles.colgdc_ccinco};
else
c5=str2num(data{i,handles.colgdc_ccinco});
end
if isnumeric(data{i,handles.colgdc_fractM})
valorFM=data{i,handles.colgdc_fractM};
else
valorFM=str2num(data{i,handles.colgdc_fractM});
end
if data{i,handles.colgdc_Estado}==0
salidatipo='APAGADO';
else
suma_frac=suma_frac+valorFM;
vapor_pa=c1+(c2/temp_K)+(c3*log(temp_K))+(c4*(temp_K^c5));
vapor_pa=exp(vapor_pa);
if isinf(vapor_pa)
valor_pa=0;
end
data{i,handles.colgdc_PresVPa}=vapor_pa;
psi = vapor_pa / 6894.75;
presion_psi_val=str2num(get(handles.presion_psi,'string'));
90
salidatipo='LIQUIDO';
if psi>=presion_psi_val
salidatipo='GAS';
end
end
data{i,handles.colgdc_Salida}=strcat('<html><span style="color: #FF0000; font-weight:
bold;">', salidatipo,'</span></html>');
end
set(handles.GrillaData,'data',data);
set(handles.frac_moral,'string',suma_frac);
if suma_frac>1.1 | suma_frac<0.9
h = msgbox('Los Valores Frac. Molar estan fuera de rango', 'Error','error','modal');
set(handles.guardar,'enable','off');
else
set(handles.guardar,'enable','on');
end
function GrillaData_CellEditCallback(hObject, eventdata, handles)
data=get(hObject,'Data');
cols=get(hObject,'ColumnFormat');
if strcmp(cols(eventdata.Indices(2)),'logical')
if eventdata.EditData
data{eventdata.Indices(1),eventdata.Indices(2)}=true;
else
data{eventdata.Indices(1),eventdata.Indices(2)}=false;
end
set(hObject,'Data',data);
else
col = size(eventdata.Indices,2);
if col==handles.colgdc_nombre || handles.colgdc_abrev==col ||
handles.colgdc_formula==col
if col==handles.colgdc_formula
H=1;
N=1;
O=1;
C=1;
try
m=eval(eventdata.NewData);
catch
data=get(handles.GrillaData,'data');
data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;
set(handles.GrillaData,'data',data);
end
else
end
else
if isnan(str2double(eventdata.EditData))
data=get(handles.GrillaData,'data');
data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;
set(handles.GrillaData,'data',data);
91
end
end
end
RecalcularGrilla(hObject, eventdata, handles);
RecalcularTodo(hObject, eventdata, handles);
function cargar_Infoz(hObject, eventdata, handles)
if exist('values.dat','file')==0
defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
end
valuesData=dlmread('values.dat',';');
handles.vtemp_F=valuesData(1);
handles.vtemp_K=valuesData(2);
handles.vtemp_R=valuesData(3);
handles.vpresion_psi=valuesData(4);
handles.vpresion_pa=valuesData(5);
handles.vapi=valuesData(6);
handles.vtemp_yacimiento=valuesData(7);
handles.vconst_gas_r=valuesData(8);
handles.vconst_gas_f=valuesData(9);
handles.vconst_gas_k=valuesData(10);
handles.vgrav_espec=valuesData(11);
handles.vvisco=valuesData(12);
if exist('tperiod.dat','file')==0
elementoNombre={'H';'N';'O';'C'};
elementoValor=[1;14;16;12];
fileID = fopen('tperiod.dat','w');
for index = 1:numel(elementoNombre)
try
nombre=elementoNombre{index};
valor=elementoValor(index);
fprintf(fileID,'%s;%12.12f\n',nombre,valor);
catch
errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor
incorrecto','modal')
fclose(fileID);
close();
end
end
fclose(fileID);
end
fileID = fopen('tperiod.dat','r');
T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);
fclose(fileID);
ce=T{2};
handles.H=ce(1);
handles.N=ce(2);
handles.O=ce(3);
handles.C=ce(4);
H=ce(1);
92
N=ce(2);
O=ce(3);
C=ce(4);
bTrue=true;
disp(exist('saved.dat','file'));
if exist('saved.dat','file')==2
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
handles.TVals=TVals;
catch
errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
fclose(fileID);
else
errordlg('No existen los valores necesarios para realizar el calculo.','Valor
incorrecto','modal')
close(0);
return;
nd
TData_col=size(TVals,2);
TData_row=size(TVals{1},1);
tNombres = TVals{handles.colgdc_nombre};
tAbrev = TVals{handles.colgdc_abrev};
tFormula = TVals{handles.colgdc_formula};
tyi = TVals{handles.colgdc_fractM};
tfa = TVals{handles.colgdc_factorA};
tpre_kpa = TVals{handles.colgdc_PresionKpa};
tpre_psi = TVals{handles.colgdc_PresionPsi};
ttempc_k = TVals{handles.colgdc_TempCritica};
tc1 = TVals{handles.colgdc_cuno};
tc2 = TVals{handles.colgdc_cdos};
tc3 = TVals{handles.colgdc_ctres};
tc4 = TVals{handles.colgdc_ccuatro};
tc5 = TVals{handles.colgdc_ccinco};
tprevap_pa = TVals{handles.colgdc_PresVPa};
tprevap_psi = TVals{handles.colgdc_PresVPsi};
tSalidas = TVals{handles.colgdc_Salida};
tEstados = TVals{handles.colgdc_Estado};
aac=get(handles.const_gas_r,'string');
aad=get(handles.temp_R,'string');
cgr=str2num(get(handles.const_gas_r,'string'));
93
tmpr=str2num(get(handles.temp_R,'string'));
fileID = fopen('zconst.dat','w');
for bIndex = 1:numel(tNombres)
nombre=tNombres{bIndex};
abrev=tAbrev{bIndex};
formula=tFormula{bIndex};
if (strcmpi(strtrim(tSalidas{bIndex}),'LIQUIDO')==true) | tEstados(bIndex)==0
M=0;
yi=0;
Myi=0;
fa=0;
pre_kpa=0;
pre_psi=0;
yipre_psi=0;
tempc_k=0;
tempc_r=0;
yitempc_r=0;
tempr_r=0;
factorA=0;
factorR=0;
mi=0;
coeAlpha=0;
yiR=0;
c1=0;
c2=0;
c3=0;
c4=0;
c5=0;
prevap_pa=0;
prevap_psi=0;
estado='';
else
try
disp(eval(formula));
M=eval(formula);
catch
M=0;
end
yi=tyi(bIndex,1);
Myi=M*yi;
fa=tfa(bIndex);
pre_kpa=tpre_kpa(bIndex);
pre_psi=tpre_psi(bIndex);
yipre_psi=yi*pre_psi;
tempc_k=ttempc_k(bIndex);
tempc_r=(9/5)*tempc_k;
yitempc_r=yi*tempc_r;
%tempr_r=handles.temp_R/tempc_r;
tempr_r=handles.vtemp_R/tempc_r;
factorA=0.45724*(((cgr^2)*(tempc_r^2))/(pre_psi));
94
factorR=0.0778*((cgr*tempc_r)/pre_psi);
mi=0.37464+1.54226*fa-0.26992*(fa^2);
coeAlpha=(1+mi*(1-(tmpr/tempc_r)^0.5))^2;
yiR=yi*tempr_r;
c1=tc1(bIndex);
c2=tc2(bIndex);
c3=tc3(bIndex);
c4=tc4(bIndex);
c5=tc5(bIndex);
prevap_pa=tprevap_pa(bIndex);
prevap_psi=tprevap_psi(bIndex);
estado=tSalidas{bIndex};
end
try
fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1
2.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',nombre,abrev,formula,yi,pre_kpa,pre_psi,yipre_
psi,tempc_k,tempc_r,yitempc_r,fa,factorA,factorR,coeAlpha,mi);
catch
fclose(fileID);
close();
end
end
fclose(fileID);
dgvcol_Nombres=1;
dgvcol_Abrev=2;
dgvcol_Formula=3;
dgvcol_yi=4;
dgvcol_prekpa=5;
dgvcol_prepsi=6;
dgvcol_yiprepsi=7;
dgvcol_tempk=8;
dgvcol_tempr=9;
dgvcol_yitempr=10;
dgvcol_fa=11;
dgvcol_factA=12;
dgvcol_factR=13;
dgvcol_coeAlpha=14;
dgvcol_mi=15;
fileID = fopen('zconst.dat','r');
try
TValsZ = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f
%f','delimiter',';','EmptyValue',0);
VData = get(handles.GrillaDataZ,'data');
[vRows,vCols]=size(VData);
tNombres=TValsZ{dgvcol_Nombres};
tAbrev=TValsZ{dgvcol_Abrev};
tFormula=TValsZ{dgvcol_Formula};
tyi=TValsZ{dgvcol_yi};
tpre_kpa=TValsZ{dgvcol_prekpa};
95
tpre_psi=TValsZ{dgvcol_prepsi};
tyipre_psi=TValsZ{dgvcol_yiprepsi};
ttempc_k=TValsZ{dgvcol_tempk};
ttempc_r=TValsZ{dgvcol_tempr};
tyitempc_r=TValsZ{dgvcol_yitempr};
tfa=TValsZ{dgvcol_fa};
tfactorA=TValsZ{dgvcol_factA};
tfactorR=TValsZ{dgvcol_coeAlpha};
tcoeAlpha=TValsZ{dgvcol_coeAlpha};
tmi=TValsZ{dgvcol_mi};
VData = [tNombres tAbrev tFormula num2cell(tyi) num2cell(tpre_kpa)
num2cell(tpre_psi) num2cell(tyipre_psi) num2cell(ttempc_k) num2cell(ttempc_r)
num2cell(tyitempc_r) num2cell(tfa) num2cell(tfactorA) num2cell(tfactorR)
num2cell(tcoeAlpha) num2cell(tmi)];
set(handles.GrillaDataZ,'data',VData);
[xRows,XCols] = size(TVals{1});
suma=0;
suma1=0;
suma2=0;
suma3=0;
for i=1:xRows
suma1=suma1+(tyi(i)*tpre_psi(i));
suma3=suma3+(tyi(i)*ttempc_r(i));
suma2=suma2 + (tyi(i)*tfactorR(i));
for j=i+1:xRows
suma = suma + ((tyi(i)*tyi(j)) * (tfactorA(i) * tfactorA(j) * tcoeAlpha(i) * tcoeAlpha(j) )
^ 0.5);
end
end
va=(suma*handles.vpresion_psi)/((handles.vconst_gas_r*handles.vtemp_R)^2);
vb=(suma2*handles.vpresion_psi)/(handles.vconst_gas_r*handles.vtemp_R)
for z=-1:0.15:2.75
if z>-1
zgraf=[zgraf ValueZ(z,va,vb)];
ejezG=[ejezG z];
else
ejezG=z;
zgraf=ValueZ(z,va,vb);
end
end
handles.ejex=ejezG;
y1=zgraf;
plot(handles.ejex,y1,'LineWidth',1);grid on;
axis([min(ejezG) max(ejezG) -2 1]);
set(handles.varA,'string',va);
set(handles.varB,'string',vb);
set(handles.factam,'string',suma);
set(handles.totalyipsi,'string',suma1);
set(handles.totalyitr,'string',suma3);
96
set(handles.repm,'string',suma2);
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
% CALCULO DE FACTOR Z METODO NEWTON RAPHSON
vb=0.002269757;
va=0.004557599;
fnz0=1;
fnz1=vb-1;
fnz2=va-3*vb^2-2*vb;
fnz3=vb^3+vb^2-va*vb;
fzrn2=3;
fzrn1=2*fnz1;
fzrn0=fnz2;
zn=0;
fz=0;
fz1=0;
zn1=0;
fzerror=0;
zFact=0;
for i=0:8
if i<1
zn=0;
fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;
fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;
zn1=zn-(fz/fz1);
fzerror=(zn1-zn)/zn1;
if abs(fzerror)<0.000001
zFact=zn;
end
table_z=[zn fz fz1 zn1 fzerror];
else
zn=table_z(i,4);
fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;
fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;
zn1=zn-(fz/fz1);
fzerror=(zn1-zn)/zn1;
if abs(fzerror)<0.000001
zFact=zn;
end
table_z=[table_z; zn fz fz1 zn1 fzerror];
end
end
disp(table_z);
disp(zFact);
set(handles.zfact,'string',zFact);
97
try
fileID = fopen('zdatafact.dat','w');
[torows,tocols]=size(table_z);
for tc=1:torows
printf(fileID,'%12.12f;%12.12f%12.12f;%12.12f;%12.12f;\n',table_z(tc,1),table_z(tc,2),table
_z(tc,3),table_z(tc,4),table_z(tc,5));
end
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
try
fileID = fopen('zvalues.dat','w');
[torows,tocols]=size(zgraf);
for tc=1:tocols
fprintf(fileID,'%12.12f;%12.12f\n',ejezG(tc),zgraf(tc));
end
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
try
fileID = fopen('zdatavalues.dat','w');
fprintf(fileID,'%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',suma,suma2
,suma1,suma3,va,vb,zFact);
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
function valorZ=ValueZNRampshon(z,a,b)
valorZ=(3*(z^2))+((2*(b-1)*z)+(a-(3*(b^2)))-(2*b));
function valorZ=ValueZ(z,a,b)
valorZ=(z^3)+((b-1)*z^2)+(a-3*b^2-2*b)*z+(b^3+b^2-a*b);
function CalcularAgua(hObject, eventdata, handles)
if exist('tabla32.dat','file')==0
defaultData = [5.459 4.9669 4.391;0.30542 0.27788 0.2487;647.13 647.13 647.13;0.081
0.1874 0.2534];
dlmwrite('tabla32.dat',defaultData,'precision',12,'delimiter',';')
end
constCri=dlmread('tabla32.dat',';');
cValue=zeros(4,1);
valuesData=dlmread('values.dat',';');
if handles.temp_K >=273.16 && handles.temp_K <333.15
98
cValue(1)=constCri(1,1);
cValue(2)=constCri(2,1);
cValue(3)=constCri(3,1);
cValue(4)=constCri(4,1);
elseif handles.temp_K >=333.15 && handles.temp_K <403.15
cValue(1)=constCri(1,2);
cValue(2)=constCri(2,2);
cValue(3)=constCri(3,2);
cValue(4)=constCri(4,2);
else
cValue(1)=constCri(1,3);
cValue(2)=constCri(2,3);
cValue(3)=constCri(3,3);
cValue(4)=constCri(4,3);
end
%set(handles.temp_fc,'data',cValue);
c1=cValue(1);
c2=cValue(2);
c3=cValue(3);
c4=cValue(4);
temp_k=valuesData(2);
t=1.003-(0.01479*temp_k)+(0.00001982*(temp_k^2));
viscosidadx=exp(1)^t;
densidadx=(18.015*c1)/(16.01846*(c2^(1+(1-(temp_k/c3))*c4)));
set(handles.densidad,'string',densidadx);
set(handles.densidadA,'string',densidadx/0.062282);
set(handles.viscosidad,'string',viscosidadx);
function CalcularGas(hObject, eventdata, handles)
if exist('zdatavalues.dat','file')==0
defaultData = [0 0 0 0 0 0];
dlmwrite('zdatavalues.dat',defaultData,'precision',12,'delimiter',';')
end
zData=dlmread('zdatavalues.dat',';');
valuesData=dlmread('values.dat',';');
handles.vtemp_F=valuesData(1);
handles.vtemp_K=valuesData(2);
handles.vtemp_R=valuesData(3);
handles.vpresion_psi=valuesData(4);
handles.vpresion_pa=valuesData(5);
handles.vapi=valuesData(6);
handles.vtemp_yacimiento=valuesData(7);
handles.vconst_gas_r=valuesData(8);
handles.vconst_gas_f=valuesData(9);
handles.vconst_gas_k=valuesData(10);
handles.vgrav_espec=valuesData(11);
handles.vvisco=valuesData(12);
handles.factam=zData(1);
handles.repm=zData(2);
handles.tyipsi=zData(3);
handles.tyitr=zData(4);
99
handles.va=zData(5);
handles.vb=zData(6);
handles.zfact=zData(7);
if exist('tperiod.dat','file')==0
elementoNombre={'H';'N';'O';'C'};
elementoValor=[1;14;16;12];
fileID = fopen('tperiod.dat','w');
for index = 1:numel(elementoNombre)
try
nombre=elementoNombre{index};
valor=elementoValor(index);
fprintf(fileID,'%s;%f\n',nombre,valor);
catch
errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor
incorrecto','modal')
fclose(fileID);
close();
end
end
fclose(fileID);
end
fileID = fopen('tperiod.dat','r');
T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);
fclose(fileID);
Data=get(handles.tabla_periodica,'data');
ce=T{2};
for index = 1:4
Data{index,1}= T{1}{index} ;
Data(index,2)=num2cell(ce(index));
end
set(handles.tabla_periodica,'data',Data);
handles.H=ce(1);
handles.N=ce(2);
handles.O=ce(3);
handles.C=ce(4);
H=ce(1);
N=ce(2);
O=ce(3);
C=ce(4);
bTrue=false;
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
catch
try
delete('saved.dat');
catch
end
close(0);
100
return
end
fclose(fileID);
handles.TVals=TVals;
tNames = TVals{handles.colgdc_nombre};
tAbrev = TVals{handles.colgdc_abrev};
tFormula = TVals{handles.colgdc_formula};
tyi = TVals{handles.colgdc_fractM};
tfa = TVals{handles.colgdc_factorA};
tpre_kpa = TVals{handles.colgdc_PresionKpa};
tpre_psi = TVals{handles.colgdc_PresionPsi};
ttempc_k = TVals{handles.colgdc_TempCritica};
tc1 = TVals{handles.colgdc_cuno};
tc2 = TVals{handles.colgdc_cdos};
tc3 = TVals{handles.colgdc_ctres};
tc4 = TVals{handles.colgdc_ccuatro};
tc5 = TVals{handles.colgdc_ccinco};
tprevap_pa = TVals{handles.colgdc_PresVPa};
tprevap_psi = TVals{handles.colgdc_PresVPsi};
tSalida = TVals{handles.colgdc_Salida};
tEstados = TVals{handles.colgdc_Estado};
syipsi=0;
syitr=0;
for index = 1:numel(tNames)
nombre=tNames{index};
abrev=tAbrev{index};
formula=tFormula{index};
if tEstados(index)==0 || strcmpi(strtrim(tSalida{index}),'LIQUIDO')==true
M=0;
yi=0;
Myi=0;
fa=0;
pre_kpa=0;
pre_psi=0;
tempc_k=0;
tempc_r=0;
tempr_r=0;
yiR=0;
c1=0;
c2=0;
c3=0;
c4=0;
c5=0;
prevap_pa=0;
prevap_psi=0;
estado='';
else
101
try
M=eval(formula);
catch
M=0;
end
yi=tyi(index);
Myi=M*yi;
fa=tfa(index);
pre_kpa=tpre_kpa(index);
pre_psi=tpre_psi(index);
tempc_k=ttempc_k(index);
tempc_r=(9/5)*tempc_k;
tempr_r=handles.vtemp_R/tempc_r;
yiR=yi*tempr_r;
c1=tc1(index);
c2=tc2(index);
c3=tc3(index);
c4=tc4(index);
c5=tc5(index);
prevap_pa=tprevap_pa(index);
prevap_psi=tprevap_psi(index);
estado=tSalida{index};
end
syipsi=syipsi+Myi;
syitr=syitr+yiR;
if index==1
gData={nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)
num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)
num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)
num2str(prevap_pa) num2str(prevap_psi) num2str(estado)};
else
gData=[gData;{nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)
num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)
num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)
num2str(prevap_pa) num2str(prevap_psi) num2str(estado)}];
end
end
try
set(handles.GrillaDataG,'data',gData);
catch
end
val_factorn=0;
if handles.temprm<=1.5
val_factorn=(0.00034*(syitr^0.94));
else
val_factorn=(0.0001778*(((4.58*syitr)-1.67)^0.625));
end
set(handles.factorn,'string',val_factorn);
val_factz=handles.zfact;
set(handles.temprm,'string',syitr);
102
set(handles.pesom,'string',syipsi);
set(handles.presioncmpsi,'string',handles.tyipsi);
set(handles.tempsr,'string',handles.tyitr);
val_viscom=0.00046*(val_factorn*(syipsi^0.5))*(handles.tyipsi^(2/3))/(handles.tyitr^(1/6));
set(handles.viscom,'string',val_viscom);
set(handles.viscompas,'string',val_viscom*0.001);
val_densg=(handles.vpresion_psi*syipsi)/(val_factz*handles.vconst_gas_r*handles.vtemp_R
);
set(handles.densg,'string',val_densg);
set(handles.densgmtres,'string',val_densg/(2.2*0.028831));
set(handles.factz,'string',val_factz);
valores=zeros(1,9);
valores(1,1)=str2num(get(handles.temprm,'string'));
valores(1,2)=str2num(get(handles.pesom,'string'));
valores(1,3)=str2num(get(handles.presioncmpsi,'string'));
valores(1,4)=str2num(get(handles.tempsr,'string'));
valores(1,5)=str2num(get(handles.viscom,'string'));
valores(1,6)=str2num(get(handles.viscompas,'string'));
valores(1,7)=str2num(get(handles.densg,'string'));
valores(1,8)=str2num(get(handles.densgmtres,'string'));
valores(1,9)=str2num(get(handles.factz,'string'));
dlmwrite('propgas.dat',valores,'precision',12,'delimiter',';')
function viscocidad_Callback(hObject, eventdata, handles)
function viscocidad_CreateFcn(hObject, ~, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function diametro_separdor_Callback(hObject, eventdata, handles)
function diametro_separdor_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function lcc_Callback(hObject, eventdata, handles)
function lcc_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function lcs_Callback(hObject, eventdata, handles)
function lcs_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function hvert_Callback(hObject, eventdata, handles)
function hvert_CreateFcn(hObject, eventdata, handles)
.
103
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setagua_Callback(hObject, eventdata, handles)
.function setagua_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setcrudo_Callback(hObject, eventdata, handles)
.function setcrudo_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setgpres_Callback(hObject, eventdata, handles)
.function setgpres_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function denc_Callback(hObject, eventdata, handles)
function denc_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function CCaudal_Callback(hObject, eventdata, handles)
function CCaudal_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cBSW_Callback(hObject, eventdata, handles)
function cBSW_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function ccrudo_Callback(hObject, eventdata, handles)
function ccrudo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cagua_Callback(hObject, eventdata, handles)
function cagua_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
104
set(hObject,'BackgroundColor','white');
end
function cgas_Callback(hObject, eventdata, handles)
function cgas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function ccaudal_Callback(hObject, eventdata, handles)
function ccaudal_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cbsw_Callback(hObject, eventdata, handles)
function cbsw_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit52_Callback(hObject, eventdata, handles)
function edit52_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit53_Callback(hObject, eventdata, handles)
function edit53_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit54_Callback(hObject, eventdata, handles)
function edit54_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function btnActsys_Callback(hObject, eventdata, handles)
handles.aux_simtime=str2double(get(handles.simtime,'string'));
find_system('Name',handles.model_name);
%INGRESO DEL TIEMPO DE SIMULACION
set_param(handles.model_name,'StopTime',(get(handles.simtime,'string')));
ccrudoval=(str2double(get(handles.ccrudo,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Crudo Entrada'),'Value',num2str(ccrudoval));
cgasval=(str2double(get(handles.cgas,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Gas Entrada'),'Value',num2str(cgasval));
caguaval=(str2double(get(handles.cagua,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Agua Entrada'),'Value',num2str(caguaval));
105
set_param(strcat(handles.model_name,'/h chic'),'Value',(get(handles.hvert,'String')));
set_param(strcat(handles.model_name,'/diametro'),'Value',(get(handles.diametro_separdor,'St
ring')));
set_param(strcat(handles.model_name,'/Ccl'),'Value',num2str((get(handles.lcc,'String'))));
set_param(strcat(handles.model_name,'/Css_cs'),'Value',(get(handles.lcs,'String')));
set_param(strcat(handles.model_name,'/densidad
agua'),'Value',(get(handles.densidadA,'String')));
set_param(strcat(handles.model_name,'/densidad crudo'),'Value',(get(handles.denc,'String')));
set_param(strcat(handles.model_name,'/Cv gas'),'Value',(get(handles.cvgas,'String')));
set_param(strcat(handles.model_name,'/CvCrudo'),'Value',(get(handles.cvcrudo,'String')));
set_param(strcat(handles.model_name,'/Cv agua'),'Value',(get(handles.cvagua,'String')));
set_param(strcat(handles.model_name,'/crudo/set
oil'),'Value',(get(handles.setcrudo,'String')));
set_param(strcat(handles.model_name,'/agua/set
water'),'Value',(get(handles.setagua,'String')));
vb=num2str((get(handles.setgpres,'String')));
set_param(strcat(handles.model_name,'/set Presion G'),'Value',vb);
set_param(strcat(handles.model_name,'/MW gas'),'Value',(get(handles.pesom,'String')));
set_param(strcat(handles.model_name,'/temperatura'),'Value',(get(handles.temp_F,'String')));
function simtime_Callback(hObject, eventdata, handles)
function simtime_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvagua_Callback(hObject, eventdata, handles)
function cvagua_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvcrudo_Callback(hObject, eventdata, handles)
function cvcrudo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvgas_Callback(hObject, eventdata, handles)
function cvgas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densidadA_Callback(hObject, eventdata, handles)
function densidadA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
107
Anexo H. Caudal recuperado a distintos cortes de agua.
Presión 2000BFPD @ 15% 2000BFPD @ 30%
oil gas oil gas oil gas oil gas
PSI MCD MCD BPD MCFD MCD MCD BPD MCFD
0 0.0016 0.0015 869.5 4.577 0.0013 0.0013 706.5 3.967
20 0.0018 0.0013 978.2 3.967 0.0015 0.0011 815.1 3.356
40 0.0020 0.00110 1086.9 3.356 0.0017 0.00091 923.8 2.777
60 0.0022 0.00090 1195.5 2.746 0.0018 0.00078 978.2 2.380
80 0.0023 0.00080 1249.9 2.441 0.0019 0.00066 1032.5 2.014
100 0.0025 0.00070 1358.6 2.136 0.002 0.00056 1086.9 1.709
120 0.0025 0.00060 1358.6 1.831 0.0021 0.0005 1141.2 1.526
150 0.0027 0.00050 1467.3 1.526 0.0022 0.00037 1195.5 1.129
180 0.0028 0.00040 1521.6 1.220 0.0023 0.00029 1249.9 0.885
200 0.0028 0.00030 1521.6 0.915 0.0023 0.00025 1249.9 0.763
250 0.0029 0.00020 1575.9 0.610 0.0024 0.00016 1304.2 0.488
300 0.0030 0.00010 1630.3 0.305 0.0025 0.00011 1358.6 0.336
350 0.0030 0.00009 1630.3 0.275 0.0025 0.00007 1358.6 0.214
400 0.0030 0.00006 1630.3 0.183 0.0025 0.00005 1358.6 0.153
500 0.0031 0.00003 1684.6 0.092 0.0026 0.00002 1412.9 0.061
108
Presión 2000BFPD 50% 2000BFPD 80%
oil gas oil gas oil gas oil gas
PSI MCD MCD BPD MCFD MCD MCD BPD MCFD
0 0.0009 0.00091 505.4 2.777 0.00037 0.00036 201.1 1.098
20 0.0011 0.00077 597.8 2.349 0.00043 0.00031 233.7 0.946
40 0.0012 0.00065 652.1 1.983 0.00047 0.00026 255.4 0.793
60 0.0013 0.00056 706.5 1.709 0.00051 0.00022 277.1 0.671
80 0.0014 0.00047 760.8 1.434 0.00055 0.00019 298.9 0.580
100 0.0014 0.0004 760.8 1.220 0.00058 0.00016 315.2 0.488
120 0.0015 0.00034 815.1 1.037 0.0006 0.00014 326.1 0.427
150 0.0016 0.00027 869.5 0.824 0.00063 0.00011 342.4 0.336
180 0.0016 0.0002 869.5 0.610 0.00065 8.3E-05 353.2 0.253
200 0.0017 0.00018 923.8 0.549 0.00067 0.00007 364.1 0.214
250 0.0017 0.00012 923.8 0.366 0.00069 4.7E-05 375.0 0.143
300 0.0018 7.8E-05 978.2 0.238 0.0007 3.1E-05 380.4 0.095
350 0.0018 5.2E-05 978.2 0.159 0.00072 2.1E-05 391.3 0.064
400 0.0018 3.4E-05 978.2 0.104 0.00072 1.3E-05 391.3 0.040
500 0.0018 1.5E-05 978.2 0.046 0.00073 6E-06 396.7 0.018
109
BIOGRAFIA DEL AUTOR
JUAN CARLOS PROAÑO CARDENAS
Nació en la ciudad de Ambato el 23 de diciembre de 1981. Donde cursó sus estudios
primarios en la escuela fiscal México y porteriormente la secundaria en el colegio técnico
Atahualpa, obteniendo el título de bachiller técnico en Mecánica Industrial en el año 1999. En
ese mismo año migra a la ciudad de Riobamba para continuar con sus estudios en la Escuela
Superior Politécnica de Chimborazo logrando obtener el grado de Ingeniero Mecánico en el
año 2005.
Se presenta al concurso para el cargo de asistente de cátedra del área de materiales llegando a
ser el mejor puntuado y presta su colaboración el departamento de metalúrgia bajo la
dirección del Ing. Msc. Mario Edmundo Pástor Rodas.
Donde permanece por el lapso de un año, seguidamente se vincula a la industria de la
extracción de hidrocarburos en la empresa Perenco Ecuador Limited en el departamento de
proyectos y el departamento de producción hasta abril el año 2009.
En el año 2010 ingresa a la Universidad Central del Ecuador al programa de posgrado en
Procesos Industriales, y seguidamente se vincula a la empresa Andes Petroleum al
departamento de producción hasta la fecha.
Contacto: [email protected] / [email protected]