Вы находитесь на странице: 1из 125

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERA, CIENCIAS FSICAS Y MATEMTICA

INSTITUTO DE INVESTIGACIN Y POSGRADO (IIP)

SIMULACIN NUMRICA DE UN PROCESO DE SEPARACIN TRIFSICO


PARA UNA CORRIENTE DE HIDROCARBUROS

JUAN CARLOS PROAO CRDENAS

TUTOR: DR. PhD. ROLANDO SENZ ANDRADE

Trabajo presentado como requisito parcial para la obtencin del grado de:

MAGSTER EN PROCESOS INDUSTRIALES

Quito Ecuador

2015
DEDICATORIA

Al terminar una etapa ms en la vida, quiero dedicar ste trabajo a mis padres, Hctor Alfredo
y Blanca Lucila. A mi esposa Dora Irene, a mis hijas Emilia Simone y Milagros Valentina.

A mis hermanos: Nancy Carlota, Ana Guadalupe, Hctor Oswaldo (+), Hctor Alfredo y Luis
Roberto, que supieron apoyarme en cada una de las decisiones tomadas.

Juan Carlos Proao Crdenas

ii
AGRADECIMIENTOS

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


Posgrado e Investigacin.

A nuestros maestros quienes supieron transmitir sus conocimientos y experiencias.

Al Doctor Rolando Senz, tutor de tesis por su asesoramiento cientfico y su predisposicin


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

A mis amigos y compaeros de trabajo en Andespetroleum. Ing. Fabin Freire, por aquellas
travesas vividas cada maana en los viajes que realizbamos 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 colaboracin en las materias de procesamiento de


crudo para su comprensin.

Al Ing. Galo Rodrguez, por su apoyo valioso en la parte de control automtico.

Finalmente, a todas aquellas personas, colegas y amigos que me brindaron su apoyo, tiempo e
informacin para el logro de este trabajo.

Juan Carlos Proao Crdenas

iii
AUTORIZACIN DE LA AUTORA INTELECTUAL

Yo, PROAO CARDENAS JUAN CARLOS en calidad de autor del trabajo de investigacin
o tesis realizada sobre SIMULACIN NUMRICA DE UN PROCESO DE SEPARACIN
TRIFSICO 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 acadmicos o de
investigacin.

Los derechos que como autor me corresponden, con excepcin de la presente autorizacin,
seguiran vigentes a mi favor, de conformidad con lo establecido en los artculos 5, 6, 8, 19 y
dems pertinentes de la Ley de Propiedad Intectual y su Reglamento.

Quito, 20 de Abril de 2015

JUAN CARLOS PROAO CRDENAS

C.C. 1803439916

iv
CERTIFICACIN

Certifico que el presente trabajo fue realizado en su totalidad por el Sr. Ing. JUAN CARLOS
PROAO CRDENAS como requisito parcial a la obtencin del ttulo de MAGISTER EN
PROCESOS INDUSTRIALES

Quito, 23 de Abril de 2015

Dr. Phd. Rolando Senz Andrade

v
CONTENIDO
1. EL PROBLEMA...............................................................................................................2
1.1 TEMA DE INVESTIGACIN ................................................................................... 2
1.2 PLANTEAMIENTO DEL PROBLEMA ................................................................... 2
1.3 HIPTESIS ................................................................................................................. 2
1.4 ANTECEDENTES ...................................................................................................... 2
1.5 OBJETIVOS................................................................................................................ 3
1.5.1 Objetivo general. .................................................................................................. 3
1.5.2 Objetivos especficos. .......................................................................................... 3
1.6 JUSTIFICACION........................................................................................................ 3
2. MARCO TERICO.........................................................................................................4
2.1. El petrleo. .................................................................................................................. 4
2.2. Flujo multifsico. ........................................................................................................ 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. Vlvulas de control. ........................................................................................... 11
2.5. Coeficiente de Flujo. ................................................................................................. 13
2.6. Procesos de separacin .............................................................................................. 13
2.6.1. Tipos de procesos de separacin. ....................................................................... 13
2.6.2. Separacin por creacin de fase. ........................................................................ 15
3. MODELO MATEMATICO SEPARADOR TRIFASICO .........................................20
3.1. Propiedades de los fluidos. ........................................................................................ 20
3.1.1. Propiedades del petrleo. ................................................................................... 20
3.1.2. Propiedades del gas. ........................................................................................... 22
3.1.3. Propiedades del agua.......................................................................................... 24
3.2. Factor de compresibilidad del gas, ecuacin de estado de Peng - Robinson. .......... 25
3.3. Proceso del sistema de separacin ............................................................................ 27
3.3.1. Optimizacin del sistema. .................................................................................. 27
3.4. Leyes fundamentales del modelamiento ................................................................... 28
3.5. Mtodos de simulacin.............................................................................................. 31
3.6. Descripcin 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. Evaluacin del proceso.............................................................................................. 36
4.2. Desarrollo del modelo ............................................................................................... 37

vi
4.2.1. Clculo 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 lquidos y gases.................................................................. 43
4.5. Parmetros de variacin. ........................................................................................... 44
5. PROGRAMA COMPUTACIONAL Y VERIFICACION .........................................46
5.1. Algoritmo de programacin. ..................................................................................... 46
5.1.1. Algoritmo de programacin propiedades del petrleo....................................... 46
5.1.2. Algoritmo de programacin propiedades del gas. ............................................. 47
5.1.3. Algoritmo programacin factor de compresibilidad del gas.............................. 49
5.1.4. Algoritmo de programacin propiedades del agua. ........................................... 51
5.2. Estrategia de control del nivel de cmara de crudo. ................................................. 52
5.3. Estrategia de control del nivel colchn de agua cmara separacin. ........................ 52
5.4. Estrategia de control de la presin del separador. ..................................................... 52
5.5. Diagrama general estrategia de control del separador trifsico. ............................... 54
5.6. Lenguaje de programacin ........................................................................................ 55
5.7. Resultados obtenidos en la simulacin...................................................................... 55
5.8. Datos de entrada. ....................................................................................................... 55
5.9. Perturbaciones. .......................................................................................................... 56
5.9.1. Perturbacin de la fase gas. ................................................................................ 56
5.9.2. Perturbacin del agua. ........................................................................................ 58
5.9.3. Perturbacin crudo. ............................................................................................ 58
5.10. Verificacin de resultados ......................................................................................... 61
5.10.1. Propiedades fsico qumicas. .............................................................................. 61
5.10.2. Caudales proporcionados por el programa. ....................................................... 63
6. CONCLUSIONES Y RECOMENDACIONES ...........................................................66
6.1. Conclusiones ............................................................................................................. 66
6.2. Recomendaciones ...................................................................................................... 66
BIBLIOGRAFA ................................................................................................................67

vii
LISTADO DE TABLAS

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

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

Tabla 5.1 Cromatografa del gas......55

Tabla 5.2 Parmetros mecnicos del separador.......52

Tabla 5.3 Parmetros de ls vlvulas de control.......56

Tabla 5.4 Perturbacin fase gas.......56

Tabla 5.5 Perturbacin del colchn de agua........58

Tabla 5.6 Perturbacin del nivel de crudo.......58

Tabla 5.7 Comparacin densidad del gas62

viii
LISTADO DE FIGURAS

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

Figura 2.2 Flujo intermitente tipo pistn.......5

Figura 2.3 Flujo estratificado suave...6

Figura 2.4 Flujo estratificado ondulante.6

Figura 2.5 Flujo intermitente tipo tapn.6

Figura 2.6 Flujo anular...7

Figura 2.7 Flujo tipo roco..7

Figura 2.8 Manifold de distribucin...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 Vlvula de control.12

Figura 2.15 Caractersticas de flujo de las vlvulas de control12

Figura 2.16 Separacin por creacin de fase14

Figura 2.17 Separacin por adicin de fase.14

Figura 2.18 Separacin por barrido..15

Figura 2.19 Separacin por accin de un agente slido...15

Figura 2.20 Clasificacin de los separadores...16

Figura 2.21 Separador lquido gas16

Figura 2.22 Separador gas-lquido-lquido...17

ix
Figura 2.23 Suposicin de flujo en un separador trifsico.......17

Figura 2.24 Trayectoria crtica real de las gotas y burbujas en un separador trifsico....18

Figura 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifsico.....18

Figura 2.26 Control de nivel en un separador trifsico19

Figura 3.1 Volumen de control arbitrario para la aplicacin de la ecuacin del balance de
momentum..30

Figura 3.2 Variables presentes en un separador trifsico.....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 cmara de crudo...52

Figura 5.7 Control de nivel cmara de separacin...52

Figura 5.8 Control de presin del separador53

Figura 5.9 Control del separador trifsico54

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

Figura 5.11 Presin del sistema....57

Figura 5.12 Caudal de ingeso y salida de agua59

Figura 5.13 Altura del colchn de agua de la cmara de separacin...59

Figura 5.14 Caudal de ingreso y salida de crudo.60

Figura 5.15 Altura de la cmara de crudo....60

Figura 5.16 Interfase grfica de las propiedades del fluido.61

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

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

Figura 5.19 Nomograma del caudal de recuperacin de crudo y gas..65

xi
ANEXOS

Anexo A. Constantes fsicas de los gases ........................................................................... 70


Anexo.B. Cromatografa gases............................................................................................ 72
Anexo.C. Coeficiente Cv de las vlvulas de control tipo globo ......................................... 73
Anexo D. Coeficientes presin ptima. ............................................................................... 74
Anexo E. Variacin de niveles en el separador trifsico...................................................... 75
Anexo F. Desarrollo de la solucin en Matlab. ................................................................... 77
Anexo G. Propiedades del separador. ................................................................................ 106
Anexo H. Caudal recuperado a distintos cortes de agua. ................................................... 107

xii
RESUMEN

SIMULACIN NUMRICA DE UN PROCESO DE SEPARACIN TRIFSICO


PARA UNA CORRIENTE DE HIDROCARBUROS

Una de las principales etapas de la produccin de hidrocarburos es la separacin de primaria


de petrleo, agua y gas.

En el anlisis del comportamiento de los separadores trifsicos, se diseo un programa


computacional que permite predecir el comportamiento del fluido y sus propiedades fsico-
qumicas con el uso de correlaciones.

Se realiz un programa computacional que permite evaluar el desempeo del separador,


tomando en cuenta los parmetros de operacin, tales como: presin, temperatura, gravedades
especficas y tasas de fluidos provenientes del pozo.

El programa de evaluacin 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-QUMICAS / PATRONES DE FLUJO / PROCESOS DE
SEPARACIN / FACTOR DE COMPRESIBILIDAD DEL GAS.

xiii
ABSTRACT

NUMERICAL SIMULATION OF A THREE PHASE BREAKUP PROCESS FOR A


HYDROCARBON STREAM

One of the most important stages of the hydrocarbons production is the primary breakup of
oil, water and gas.

In the behavioral analysis of three phase of separators, a computing programme was designed
which allows to predict the fluid behaviour and its physics and chemistry properties using
correlations.

A computing programme was made to evaluate the separator performance, keeping in mind
the operating parameters, such as: pressure, temperature, specific gravities and fluid rates
coming from well.

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


simulations whose results were introduced in the following search.

DESCRIPTORS:

HIDROCARBON STREAM / THREE PHASE BREAKUP / PHYSICS AND CHEMISTRY


PROPERTIES / FLOW PATTERNS / BREAKUP PROCESS / GAS COMPRESSIBILITY
FACTOR.

xiv
CERTIFICACIN DE TRADUCCIN

Yo, Alfredo Homero Albn Bautista, en mi calidad de profesor de ingls de la Universidad de


las Fuerzas Armadas-ESPE Extensin Latacunga, certifico que el RESMEN
SIMULACIN NUMRICA DE UN PROCESO DE SEPARACIN TRIFSICO PARA
UNA CORRIENTE DE HIDROCARBUROS ha sido traducido al idioma ingls en forma
completa, conforme consta su versin en el idioma espaol.

Latacunga, 11 de Noviembre del 2014

Lic. Alfredo H. Albn B.

xv
xvi
INTRODUCCIN

El petrleo extrado est acompaado con agua en forma de emulsin la misma que requiere
un tratamiento, el contenido de agua incrementa con el tiempo y vara desde 1% hasta ms
all del 90%.

La funcin de las facilidades de produccin es separar las corrientes multifsicas,


provenientes de los yacimientos a travs de los pozos de produccin, en sus tres componentes
o fases (gas, crudo y agua).

El flujo multifsico est caracterizado por patrones de flujo que son la distribucin de cada
una de las fases en el interior de las tuberas y por ende en los equipos de superficie, donde la
presin es uno de los factores importantes dentro de un sistema multifsico.

La separacin fsica de estas fases es una de las operaciones esenciales en la produccin,


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 formacin
de lquidos en el transporte de gas, vaporizacin de livianos durante el transporte del petrleo,
altos costos en el tratamiento del agua en los residuales de aceite.

De sta separacin depende el incremento de los costos de transportacin, tratamiento del


agua, almacenamiento y el tiempo til de los equipos.
Por tal razn se ha desarrollado un simulador matemtico para el anlisis del flujo multifsico
en base de un modelo de ecuaciones diferenciales y utilizando el programa Matlab para la
discretizacin numrica. Puesto que ste es un software de acceso libre, el usuario tiene
accesibilidad al cdigo fuente y puede realizar cambios al programa, con la finalidad de
optimizar y obtener un programa ms confiable.

Bajo esta premisa es necesario lograr la caracterizacin de los sistemas existentes mediante el
modelado, el cual depende en gran medida de la informacin obtenida del proceso. Teniendo
a disposicin las leyes fsicas y dinmicas que gobiernan dicho proceso, as como datos
fidedignos del proceso.

Para lo cul es necesario un conocimiento de las leyes fsicas del proceso de separacin, la
conservacin de la masa, gases ideales y la disponibilidad de los datos geomtricos del
separador. Donde la interactuacin de todos estos elementos permite efectuar de manera
precisa el modelaje del comportamiento de dicho proceso.

1
CAPTULO I

1 EL PROBLEMA

Resumen

ste captulo est orientado a la bsqueda de una modelacin del proceso de separacin
trifsico para corrientes de hidrocarburos.

1.1 TEMA DE INVESTIGACIN

Simulacin numrica de un proceso de separacin trifsico para una corriente de


hidrocarburos.

1.2 PLANTEAMIENTO DEL PROBLEMA

La industria del petrleo ha llevado a que las etapas de separacin en superficie adquiera una
gran importancia ya que permiten aumentar la calidad del crudo.

Una fase muy importante dentro de la deshidratacin de crudo es la separacin de cada una
de las corrientes producidas, y de esta manera maximizar la recuperacin de hidrocarburos
lquidos.

Los resultados presentados en la simulacin servirn como punto de partida para el diseo y
posteriormente como comparativo entre el estado real de la planta con el de su diseo.

1.3 HIPTESIS

La informacin relativa a la separacin trifsica de petrleo debe ser consolidada de modo


que permita evaluar y estimar el comportamiento de cada una de las corrientes presentes a
partir de la informacin existente.

1.4 ANTECEDENTES

Existen publicaciones referentes a la separacin trifsica de hidrocarburos. A continuacin se


describen las ms 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
separacin de cada una de las tres fases presentes en la emulsin (agua-gas-aceite), por
medio de la separacin de un hidrocicln, separador trifsico y bi-fsico.

2
b) Correlaciones Numricas PVT, Autor: Carlos Banzer. En el presente trabajo describe una
revisin de las propiedades fsicas de los fluidos y las correlaciones aplicadas para la
detrminacin de las mismas., tanto para elsubsuelo como en superficie.
c) API 12J., Specification and Oil and Gas Separators. Sptima Edicin.

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

Estas normas presentan criterios en el dimensionamiento y seleccin de vlvulas.

1.5 OBJETIVOS
1.5.1 Objetivo general.

Simular el proceso de separacin de una corriente de hidrocarburos.

1.5.2 Objetivos especficos.

a) Caracterizar las condiciones operativas del proceso de separacin y estabilizacin de una


corriente de hidrocarburos.
b) Realizar un algoritmo computacional para la evaluacin del equipo de separacin.
c) Determinar las condiciones operativas del sistema.

1.6 JUSTIFICACION

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


deshidratacin. En el cual se recopila la informacin existente pertinente a la separacin
trifsica de hidrocarburos. Adems se muestran relaciones matemticas, derivadas de cada
una de las correlaciones PVT para las distintas fases presentes.

Lo cual nos permite predecir de una manera ms acertada las propiedades fsico-qumicas en
cada una de las corrientes presentes, y como complemento a la utilizacin de la simulacin
numrica hace de este trabajo una herramienta til que facilita el anlisis de los distintos
equipos de separacin.

3
CAPTULO II

2. MARCO TERICO

Resumen

En este captulo se describe una breve resea histrica 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
separacin.

2.1. El petrleo.

El petrleo es una mezcla homognea de compuestos orgnicos insolubles en agua, en


condiciones normales es un fluido bituminoso que presenta una gran variedad en sus
caractersticas como: color, viscosidad, densidad, entre otras.
En el Ecuador, el primer pozo petrolero lo perfora la compaa Anglo Ecuadorian Limited en
1911 en la pennsula de Santa Elena, llamndolo Ancn-1, el cual dio una produccin de 42
barriles diarios.
En la regin oriental fue la compaa Shell la que perfor el primer pozo exploratorio en el
ao 1946, el Vuano-1 y encontr petrleo no comerciable. Desde esa fecha inicia la industria
petrolera en el Ecuador.
Los reservorios de petrleo producen una mezcla (emulsin) entre el petrleo y el agua, que
tiene caractersticas no newtonianas cuyas tipologas fsico-qumicas depende de las
condiciones de presin y temperatura.

2.2. Flujo multifsico.

El flujo de fluido multifsico es un fluido simultneo de gas libre y lquidos a travs de una
tubera, donde el gas puede estar mezclado en forma homognea con el lquido o puede
coexistir formando oleajes en el que el gas empuja al lquido, o el gas y el lquido fluyen en
forma paralela.

2.3. Patrones de flujo.

En el flujo multifsico existe un tipo de flujo para cualquier instante de tiempo, los patrones
de flujo se clasifican:

4
a) Flujo tipo burbuja
b) Flujo intermitente tipo pistn
c) Flujo estratificado suave
d) Flujo estratificado ondulante
e) Flujo intermitente tipo tapn
f) Flujo anular
g) Flujo tipo roco

Flujo tipo burbuja.

El lquido ocupa el volumen de la seccin transversal y el flujo de gas forma burbujas a lo


largo del tope de la tubera, las velocidades del gas y lquido son iguales, para mayores
detalles referirse a [7], pginas 126-130. En la figura que sigue se ilustra este tipo de flujo.

Figura. 2.1 Flujo tipo burbuja.

Flujo intermitente tipo pistn.

A mayor cantidad de gas las burbujas se unen y forman secciones alternadas de gas y lquido
a lo largo de la tubera, con una fase continua de lquido en el fondo. En la figura 2.2 se
muestra este tipo de flujo. Mayor informacin podr encontrarse en [7], pginas 126-130.

Figura. 2.2 Flujo intermitente tipo pistn.

Flujo estratificado suave.

En este tipo de fluido el gas fluye a lo largo de la tubera en el tope y el lquido en el fondo.
La fase es relativamente suave y la fraccin ocupada por cada fase tiende a permanecer
constante, para mayor referencia consultar [7], pginas 126-130. En la siguiente figura se
muestra este tipo de flujo.

5
Figura. 2.3 Flujo estratificado suave.

Flujo estratificado ondulante.

Cuando el flujo de gas es mucho mayor que el de lquido, el gas se mueve ms rpido que el
lquido y la friccin entre estos dos fluidos forman olas de lquido, en la figura 2.4 se ilustra
esta clase de fluido. Mayor detalle consultar [7], pginas 126-130.

Figura. 2.4 Flujo estratificado ondulante.

Flujo intermitente tipo tapn.

Cuando el gas alcanza cierto valor crtico, las crestas de las olas de lquido forman tapones
espumosos. En la estructura del tapn de gas el lquido 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], pginas 126-130. Figura 2.1 Flujo intermitente tipo tapn

Figura. 2.5 Flujo intermitente tipo tapn

Flujo anular.

El lquido fluye como una pelcula anular a lo largo de la tubera, mientras que el gas fluye
como un ncleo a alta velocidad en el centro de la misma, mayor referencia ver [7], pginas
126 -130. En la siguiente figura se muestra este tipo de flujo.

6
Figura. 2.6 Flujo anular.
Flujo tipo roco.
Cuando la velocidad del gas es lo suficientemente alta, toda la pelcula de lquido se separa
de la pared y es arrastrada por el gas como gotas. La figura 2.7 ilustra este tipo de flujo.
Mayor informacin ver [7], pginas 126-130.

Figura. 2.7 Flujo tipo roco.

2.4. Facilidades de superficie.

Una facilidad de produccin tiene como finalidad recolectar, direccionar, medir, procesar,
distribuir y transportar la produccin de los pozos productores.

2.4.1. Manifold.
El manifold de distribucin es un arreglo de tuberas donde converger cada uno de los pozos
productores, cuya funcin es direccionar la produccin de los pozos hacia los diferentes
procesos del sistema, donde la presin 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 produccin. En la figura 2.8 se ilustra el manifold de
distribucin, mayor detalle ver referencia bibliogrfica [8].

Figura. 2.8 Manifold de distribucin.

7
2.4.2. Separadores.
La separacin de mezclas constituye uno de los procesos ms complejos debido a los
mltiples componentes de los que estn constituidos los flujos multifsicos, y a las
diferencias de densidades presiones de vapor y otras caractersticas fsicas.

La separacin de cada una de las fases es una operacin bsica en el procesamiento,


produccin y tratamiento del petrleo, incluye enriquecimiento, concentracin y purificacin
que son los procesos qumicos ms 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 petrleo, es un cilindro provisto
de deflectores donde se realiza la etapa de separacin. Mayor detalle ver referencia
bibliogrfica [8]. En la figura 2.10 se muestra este tipo de equipo.

Figura. 2.10 Bota desgasificadora.

8
2.4.4. Tanques.

Tanque de lavado.
Los tanques de lavado o decantacin, son equipos donde la presin de trabajo est cercana a
la atmosfrica y son utilizados para completar el proceso de deshidratacin 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 clasificacin de los tanques, para mayor referencia consultar [8].

En la industria del petrleo los tanques de almacenamiento de hidrocarburos lquidos se


clasifican en tres grupos:
a) Por su construccin: soldados y empernados.
b) Por su forma: cilndricos y esfricos.
c) Por su funcin: techo fijo y techo flotante.

(a) (b)

(c)

Figura. 2.11 Clases de tanques: (a) por su construccin (soldado), (b) por su forma (esfrico)
y (c) por su funcin (techo flotante).

9
2.4.5. Tratadores.

Los tratadores trmicos son equipos estticos, empleados para separar emulsiones petrleo
agua. El tratamiento trmico se realiza a los fluidos emulsionados con la finalidad de reducir

la viscosidad del petrleo y aumentar la coalescencia de las gotas de agua. En la figura 2.12
se muestra este tipo de equipo, mayor informacin 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 petrleo donde son comprimidos y reutilizados en las operaciones de la
planta. Mayor detalle referirse a [8]. En la figura 2.13 se ilustra este tipo de equipo.

Figura. 2.13 Unidad recuperadora de vapores.

10
2.4.7. Bombas.

Las bombas son mquinas que absorben energa mecnica y transfieren al fluido que las
atraviesa en energa hidrulica, sirven para impulsar toda clase de lquidos.

La clasificacin de estas se encuentran en dos grandes grupos como son las rotodinmicas y
las de desplazamiento positivo.

Bombas rotodinmicas.- Llamadas as porque su movimiento es rotativo y la dinmica de


la corriente es esencial en la transmisin de la energa, se clasifican en:

a) Segn la direccin de flujo: bombas de flujo radial, de flujo axial y de flujo radioaxial.
b) Segn la posicin del eje: bombas de eje horizontal, de eje vertical y de eje inclinado.
c) Segn la presin engendrada: bombas de baja presin, de media presin y de alta presin.
d) Segn el nmero de flujos en la bomba: de simple aspiracin y de doble aspiracin.
e) Segn el nmero de rodetes: de un escalonamiento o de varios escalonamientos.

Bombas de desplazamiento positivo.- Estas se clasifican segn dos criterios:

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


b) Segundo criterio: segn la variabilidad del desplazamiento en desplazamiento fijo y
desplazamiento variable.

2.4.8. Vlvulas de control.

La vlvula automtica de control generalmente constituye el ltimo elemento en un lazo de


control instalado en la lnea de proceso, y se comporta como un orificio cuya seccin de paso
varia continuamente con la finalidad de controlar un caudal en una forma determinada.

Las vlvulas son unos de los instrumentos de control ms esenciales en la industria. stas
pueden abrir y cerrar, conectar y desconectar, regular, modular o aislar una enorme serie de
lquidos y gases.

Las vlvulas de control constan de dos partes que son el actuador y el cuerpo, en la figura
2.14 puede verse una vlvula de control tpica. Para mayor detalle [9] pginas 365-366.

El cuerpo de la vlvula contiene en su interior el obturador y los asientos. El obturador es


quien realiza la accin de control de paso del fluido.

Las caractersticas de linealidad se encuentran relacionadas entre el flujo de salida y la


posicin.

11
Figura. 2.14 Vlvula de control.

Dependiendo del tipo de aplicacin tenemos vlvulas de apertura rpida, lineal, parablica e
igual porcentaje, para mayor informacin ver [9] pginas 380-381, en la figura 2.15 se
muestra los modelos de control de estas vlvulas.

Existen tres modelos de control, el de accin proporcional (P) donde la seal de error
actuante es proporcional a la seal de error, de accin integral (I) donde la seal de error es
proporcional al tiempo integral y el de accin derivativa (D) donde la seal actuante es
proporcional al tiempo derivativo de la seal de error.

Figura.2.15 Caractersticas de flujo de las vlvulas de control.

Basado en los tres modelos de control tenemos:

12
Acciones Bsicas de Control Combinacin Acciones Bsicas
Proporcional (P) Proporcional-Integral (PI)
Derivador (D) Proporcional-Derivativo (PD)
Integrador (I) Proporcional-integral-Derivativo (PID)

La forma matemtica 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] pgina 271.
Esta es una ecuacin integral diferencial, siendo la funcin incgnita e.

2.5. Coeficiente de Flujo.

El coeficiente de flujo Cv de una vlvula es la tasa de flujo de agua que atraviesa cuando se
encuentra completamente abierta, con una prdida de presin de 1 psi.

En la siguiente tabla se muestra valores tpicos para vlvulas de bola, para mayor detalle ver
[2] pgina 176.

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

Tabla 2.1. Coeficiente de flujo Cv.

Tipo de apertura Tamao de la vlvula

Dimetro 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 separacin

2.6.1. Tipos de procesos de separacin.

En la ingeniera de procesos, la separacin se usa para transformar una mezcla de substancias


en dos o ms productos. Por lo general, las dos fases son parcialmente miscibles entre s. El
par de fases pueden ser gas-lquido, gas-slido, lquido-lquido, o lquido-slido.

13
Durante el contacto, los componentes de la mezcla se redistribuyen entre las fases y se
separan por cualquier mtodo fsico simple.

Seleccionando las condiciones y fases apropiadas, una fase se enriquece mientras que la otra
se empobrece en uno o ms componentes.

Separacin por creacin de fase.

Las mezclas usualmente son separadas en fases homogneas, si se encuentran en forma de


lquidos inmiscibles generalmente son separados por accin de la gravedad, fuerzas
centrfugas, reduccin de la presin. Cada una de los componentes del fluido tendr una
tcnica de separacin.
Un proceso general de separacin se muestra en la figura 2.16, donde el flujo de entrada
puede ser lquido, gaseoso o una combinacin de ambos. Para obtener dos o ms productos
de salida. Para mayor detalle referirse a [22] pginas 5-7.

Separacin por adicin de fase.


La separacin es influenciada por un agente de separacin adicionado que toma la forma de
otra corriente como agente separador de masa (MSA) o un agente separador de energa (ESA)
En la figura 2.17 se muestra este tipo de separacin, para mayor detalle dirigirse a [22]
pginas 6-7.

Figura. 2.16 Separacin por creacin de fase.

Figura. 2.17 Separacin por adicin de fase.

14
Separacin por barrido.
La separacin por barrido utiliza micro-poros y membranas no porosas para un proceso a
diferentes tasas de difusin. En la figura 2.18 se puede ver este tipo de separacin, mayor
detalle ver [22] pginas 5-14.

Figura. 2.18 Separacin por barrido.

Separacin por accin de un agente slido.


En las operaciones de separacin donde se utiliza una masa como agente slido, usualmente
el agente se encuentra en forma granular, este agente se encarga de absorber o entrar en
contacto directo en la operacin de separacin de forma selectiva y reaccionar qumicamente
con el flujo. En la figura 2.19 se muestra la accin del agente solido en la etapa de
separacin, mayor detalle consultar [22] pginas 6-16.

Figura. 2.19 Separacin por accin de un agente slido.

2.6.2. Separacin por creacin de fase.

En la produccin del petrleo generalmente se obtienen tres fluidos de manera simultnea:


gas, petrleo, agua y algunas impurezas como arenas, etc.
Luego de ser levantado a la superficie, el fluido es direccionado por medio de tuberas 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 separacin a realizar.

15
Para la clasificacin de los separadores por creacin de fase se ha elaborado el siguiente
mapa conceptual.
Horizontales

Construccin

Verticales

Bi-fsico
Clasificacin
Tipo de
de los
Separacin
Separadores
Tri-fsico

Produccin
Utilizacin
Prueba
Figura. 2.20 Clasificacin de los separadores.

Separador de dos fases o bi-fsicos.

Son recipientes capaces de separar el gas y el lquido inmiscibles como se muestra en la


figura 2.2, se emplean para dejar lo ms libre posible los componentes gaseosos y lquidos a
una determinada presin y temperatura. Cuando una mezcla de hidrocarburos se deposita en
el fondo del recipiente, el fluido tiene una presin de vapor igual a la presin de operacin.
Mayor informacin referirse a [3] pginas 1-2.

Figura. 2.21 Separador lquido gas.

Separador de tres fases.


Son recipientes capaces de separar el gas y las dos fases de lquidos inmiscibles en un solo
equipo en la figura 2.22 se ilustra este tipo de separador. Mayor detalle ver [2] pginas 7-9.

16
Todos los separadores verticales y horizontales pueden ser usados para la separacin trifsica,
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 emulsin
de agua con alguno de los otros fluidos. Si ste se emulsiona ser necesario el uso de
qumicos, calor u otro mtodo para romperla.

Figura. 2.22 Separador gas lquido- lquido.

El comportamiento del fluido en un separador trifsico se idealiza como flujo tipo pistn,
donde el patrn de flujo se muestra en la Fig.2.23. Mayor detalle referirse a [13], pginas 1-7.
El flujo tipo pistn es asumido tericamente como caminos lineales para que estos puedan ser
simulados numricamente. El tamao, la forma y la distribucin de las partculas son
fundamentales en el anlisis de un separador.

Figura. 2.23 Suposicin de flujo en un separador trifsico.

Trayectoria crtica.

La trayectoria crtica que deben seguir las gotas y burbujas para atravesar cada una de las
fases contnuas de separacin, dependen directamente de la velocidad de flujo de entrada, las

17
cuales cambian la trayectoria del flujo de gotas y burbujas. Fig.2.24., stas son idealizadas
para simplificar la trayectoria crtica Fig.2.25. Mayor detalle referirse a [13], pginas 1-7.

Figura. 2.24 Trayectoria crtica real de las gotas y burbujas en un separador trifsico.

Figura. 2.25 Trayectoria ideal de las gotas y burbujas en un separador trifsico.

Niveles de fase.

Los equipos se encuentran diseados para flujos promedios que incluyen niveles mnimos y
mximos en funcin de los sets de nivel, los cuales estn basados en las condiciones de
operacin del sistema. Mayor detalle referirse a [13], pginas 1-7.

18
Figura. 2.26 Control de nivel en un separador trifsico.

donde: HHLL es high high liquid level (nivel lquido alto alto), HLL es high liquid level
(nivel lquido alto), NLL es normal liquid level (nivel normal lquido), LLL es low liquid
level (bajo nivel lquido ), LLLL es low low liquid level (nivel liquido bajo bajo), HHIL es
high high linterface level (nivel interface alto alto), HIL es high interface level (nivel
interface alto), NIL es normal interface level (nivel normal interface), LIL es low interface
level (nivel interface bajo), LLIL es low low interface level (nivel interfase bajo bajo).

19
CAPTULO III

3. MODELO MATEMATICO SEPARADOR TRIFASICO

Resumen

En este captulo se consideran algunos conceptos muy elementales de las propiedades de los
fluidos presentes en la etapa de separacin como son: gravedad especfica, densidad, peso
molecular, viscosidad y el factor de compresibilidad para la fase gaseosa. Adems se expone
la ecuacin para el cambio de volumen en el separador.

3.1. Propiedades de los fluidos.

En un reservorio natural de petrleo, antes de comenzar la explotacin, se encuentran dos


fases como mnimo. Ellas son petrleo y agua, con frecuencia, pero no siempre, puede existir
la fase gaseosa la cual constituye el casquete gasfero.
Estas tres fases se ubican de acuerdo a sus densidades: zona acufera, petrolfera y gasfera.
Las propiedades de un fluido multifsico (petrleo, gas y agua) no es fcil de determinar,
debido que las condiciones como la presin, temperatura y flujo al cual est sometido el
conjunto de partculas que se encuentran unidas entre s por fuerzas cohesivas.
La estimacin de las propiedades del petrleo debe ser confiable, entre los datos mnimos
requeridos tenemos:
a) Gravedad API.
b) Corte de agua.
c) Caudal de produccin.
d) Temperatura de operacin.
e) Presin de operacin.
f) Cromatografa del gas.

3.1.1. Propiedades del petrleo.

El petrleo de la formacin est constituido principalmente por hidrocarburos de la serie


parafnica (CnH2n+2), con menores cantidades de la serie cclica naftnica (CnH2n) y aromtica
(CnH2n-6).

20
Pero mediante los anlisis qumicos se ha determinado que posee miles de distintos
compuestos pertenecientes a 18 series de hidrocarburos.

Por eso se realizan anlisis qumicos simplificados, se miden las fracciones parafinas desde
C1 hasta C5. Las ms pesadas se agrupan como fracciones compuestas denominada C6+,
caracterizadas por su peso molecular.

El petrleo tiene dos propiedades importantes que lo caracterizan, la densidad API y la


viscosidad.

Gravedad Especfica.

La gravedad especfica del petrleo se define como la razn entre la densidad del petrleo y
la densidad del agua.

S o . (1)

La gravedad especfica generalmente es reportada a condiciones estndar 60o/60o, para el


petrleo es comn utilizar la gravedad API.

141.5
S o (2)
API 131.5

donde: es la gravedad especfica del petrleo (adimensional), API es la gravedad API del
petrleo en [oAPI] (unidades de campo), es la densidad del agua medida en [kg/m3]
(unidades en S.I.), es la densidad del petrleo medida en [kg/m3] (unidades en S.I.).

Viscosidad.

La viscosidad de un fluido es una medida de la friccin interna o resistencia que ofrecen sus
molculas a fluir, en el caso del petrleo se determina mediante la correlacin de Beggs y
Robinson. Mayor detalle referencia bibliogrfica [5] pginas 48-99.

o
10 -1 (3)

donde:

103.0324-0.02023S o Ta -1.163 . (4)

21
es la viscosidad del petrleo 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 formacin o gas natural contiene tpicamente 0.6 a 0.8 porcentaje molar de metano,
con hidrocarburos C2 a C5 cada vez en menor proporcin, adems puede contener impurezas
como nitrgeno, dixido de carbono y sulfuro de hidrgeno. Los dos ltimos son corrosivos
en presencia de agua.
Las propiedades del gas se las calculan a partir de su composicin, donde es indispensable
contar con un anlisis cromatogrfico del mismo. Las propiedades relacionadas con el gas se
describen a continuacin.

Peso molecular.

El peso molecular de un gas est determinado con las fracciones molares de los componentes
del gas. Ver referencia bibliogrfica [5] pginas 2-3.

, (5)

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


es la fraccin molar del componente i en la mezcla, Nc es el nmero de componentes en la
mezcla.

Densidad del gas.

La densidad del gas se estima en funcin del peso molecular, la constante universal de los
gases, la presin y temperatura de operacin. Mayor detalle referirse a [5] pginas 2-3.

PM
g
(6)
RT

donde: es la densidad del gas, medida en lb/ft3 (unidades de campo) [Kg/m3] (unidades
S.I.), P es la presin 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-m3/Kgmol-K] (unidades S.I.).

22
Viscosidad del gas.

La viscosidad de un gas en general es ms baja que la de un lquido, ya que las distancias


intermoleculares de un gas son mayores que las de un lquido. Adems, todos los gases
tienen un comportamiento reolgico newtoniano y se rigen por la ley de viscosidad de
Newton. Mayor detalle referencia bibliogrfica [5] pgina 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 energa cintica de las molculas que
producen gran nmero 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 expansin trmica donde las distancias
intermoleculares son pequeas.
c) A cualquier temperatura, la viscosidad de un gas aumenta con el incremento de presin.
d) Cuando un gas es ms pesado, sus molculas sern ms grandes y su viscosidad mayor.

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


correlaciones grficas o numricas.

Experimentalmente la viscosidad de los gases puede ser determinada mediante el mtodo de


Stiel y Thodos. Mayor detalle ver [5] pgina 363, a partir de sus datos experimentales
obtuvieron la siguiente ecuacin:

N M12 PC 23
0.00046 . 7
g
TC 16
Si Tr 1.5 tenemos:
N 0.00034 Tr 0.94 . 8
Si Tr 1.5 tenemos:
0.625
N 0.0001778 (4.58 Tr -1.67) . 9

En el cual:

5
[9 (Top 32)] 273
Tr 10
TC

23
TC yi TiC 11

PC yi PiC 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
crtica medida en [oK] (unidades S.I.), Top es la temperatura operacin [oF] (unidades de
campo) [oK] (unidades S.I.), Tr es la temperatura reducida medida en [oK] (unidades S.I.),
yi es la fraccin molar (adimensional), Pc es la presin critica medida en [Pa] (unidades S.I.).

Las propiedades de los gases tpicos 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 perforacin se refiera, el agua normalmente se


encuentra presente en los yacimientos de hidrocarburos. El agua de formacin se encuentra
tanto en la zona acufera como en la petrolfera. La zona acufera es conocida como acufera
inactiva cuando no contribuye al proceso de produccin, y como acufera activa cuando es
capaz de producir un barrido lento y gradual del petrleo hacia la superficie.
Adems, existe agua en la zona petrolfera y en el casquete de gas, conocida como connata
(agua fsil o agua subterrnea que ha permanecido en un acufero por milenios), intersticial
o irreducible. Esta saturacin de agua en la zona de hidrocarburos ocupa entre 10% a 30%
del volumen poral.

Densidad.

La densidad del agua en funcin de la temperatura se estima mediante la ecuacin de Rackett,


referencia bibliogrfica [20] pgina 98.

( )
[ ( ) ]

donde : es la densidad del agua en [lb/ft3] (unidades de campo) [kg/m3] (unidades S.I.),
T es la temperatura medida en [K].

24
Tabla 3.1 Coeficientes de la densidad del agua.

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


C1 5.459 4.9669 4.391
C2 0.30542 0.27788 0.2487
C3 647.13 647.13 647.13
C4 0.081 0.1874 0.2534

Viscosidad.

La viscosidad del agua se determina por medio de la correlacin de Van Wingen, donde la
viscosidad del agua est en funcin de la temperatura, referencia bibliogrfica [5] pgina 127.

10 2 T 1.982 10 5 T2
e1.003 1.479 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, ecuacin de estado de Peng - Robinson.

El factor de compresibilidad, conocido tambin como factor de compresin, es la razn del


volumen molar de un gas con relacin al volumen molar de un gas ideal a la misma
temperatura y presin. Los valores del factor de compresibilidad se obtiene mediante
clculos de las ecuaciones de estado, este puede ser determinado por varios mtodos, siendo
el ms utilizado la correlacin de Peng-Robinson, en cuya ecuacin se relacionan las
variables P-V-T para predecir el comportamiento termodinmico del sistema. Mayor detalle
referirse a [16], pginas 30-32.

( )
v v(v ) (v )

Tenemos que predecir el comportamiento termodinmico de la mezcla multicomponente de


hidrocarburos, para lo cual definiremos los parmetros para cada uno de los componentes.

El factor adimensional para un componente en una me cla es una funcin de la temperatura


reducida y del factor acntrico del componente. Las expresiones que describen son:

25
( )

( )

[ ( )] ( )

donde:
. (19)

Para obtener los parmetros y de una mezcla multicomponente se relaciona los


parmetros de cada componente a travs de las reglas de mezclado de Van der Waals,
referirse a [16], pginas 30-32.

[ ( ) ( )] ( )

( )

donde: P es la presin 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
parmetro de atraccin de la mezcla en [lb ft5/s2 mol2], es el factor adimensional, b es el
parmetro de repulsin de la mezcla [lb ft5/s2 mol2], v es el volumen molar [ft3/lbmol], es
el coeficiente de interaccin binaria entre los componentes i,j, R es la constante universal de
los gases 10.7314 [psia-ft3/lbmol-R] (unidades de campo) o 8314.34 [ Pa-m3/Kgmol-K]
(unidades S.I.), Pc :es la presin crtica en [psi] (unidades de campo) [Pa] (unidades S.I.),
Tc es la temperatura crtica [oR] (unidades de campo) [K] (unidades S.I.), i es el componente
ensimo de la mezcla.

De la ecuacin de estado de Peng Robinson, mayor detalle ver referencia [17], pginas 23-27,
se obtiene una expresin que permite determinar el factor de compresibilidad z el cual est
dado por la siguiente ecuacin cbica:

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

26
la misma que ser desarrollada por el mtodo de Newton Raphson, referirse a [23], pginas
88-90, para determinar su solucin. Es decir, si:

f( i )
i 1 i 23
f( i ) f( i 1 )
i i1

se puede hacer que:


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

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

aP
A 25
(RT)2

bP
B . 2
RT

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


b son los parmetros de la mezcla.

3.3. Proceso del sistema de separacin

En el proceso de separacin de cada una de las fases presentes en los hidrocarburos, se debe
determinar las condiciones ms adecuadas de operacin. Siendo la ms importante la presin
de funcionamiento del separador, para la recuperacin de lquidos a las condiciones de
almacenamiento del hidrocarburo. Tericamente para obtener mayor cantidad de lquidos
recuperados se debe disponer de varias etapas de separacin.

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


etapas de separacin. Mayor detalle [17], pgina 196.

3.3.1. Optimizacin del sistema.


El proceso de separacin del crudo, gas y agua se lo realiza a temperatura ambiente y se
determina mediante la ecuacin de Organick y Hollingsworth, referencia [14], pginas
129-133. Mediante la cul se determina la mejor presin de separacin.

( )

donde,

27
( )
( )
( )
( )

Los coeficientes de clculo para la presin ptima se muestran en el anexo D, donde: Pk es la


presin ptima en [psi] (unidades de campo), A,B,C,D : coeficientes de clculo presin
ptima.

3.4. Leyes fundamentales del modelamiento

Los modelos numricos son la representacin matemtica de un sistema por medio de la


aplicacin principios fundamentales. La base de los modelos matemticos son las leyes
fsicas y qumicas (leyes de conservacin de masa, energa y momentum) y las ecuaciones de
transporte. Mayor detalle referirse a [18] pginas 89-98.

Las leyes fundamentales que gobiernan a los procesos qumicos son:


a) Ley de la conservacin de la masa.
b) Ley de la conservacin de la energa.
c) Ley de la conservacin del momentum.

Ley de la conservacin de la masa.

Segn el principio de conservacin 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 ms alta concentracin a la ms 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] pginas
1-12.

Denotemos A una especie en el fluido. La concentracin de la masa de la especie A se define


como:

( )

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


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

28
( ) ( ) ( )
( )

El balance de masa nos conduce a la siguiente expresin:

{ } { }

{ }
Por el teorema del transporte Reynolds se tiene que:

[ ( )] ( )
( ) ( )

donde fA representa las fuentes o sumideros.


De la arbitrariedad de los volmenes de control, se sigue que:

( ) ] [ ( )

La ley de Fick o de la difusin tiene la forma: donde sobre


[ ]. Entonces:

( ) ] [ ( )

Que se conoce como ecuacin de transferencia de masa (convectiva o difusiva). Mayor


detalle referirse a [6] pginas 1-12.

La expresin matemtica definitiva de conservacin 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.).

29
Ley de la conservacin de la energa.

La primera ley de la termodinmica establece el principio de la conservacin de la energa, la


cual establece que si se realiza un trabajo sobre un sistema o existe el intercambio de calor
con otro la energa interna del sistema cambiar.
La ecuacin general de la conservacin de la energa es la siguiente:

, (39)

donde: Ein es la energa de ingreso al sistema, Eout es la energa de salida del Sistema y Esis es
el cambio de energa.
De la ecuacin (39), aplicada a la termodinmica nos conduce a la siguiente expresin:

U 40

donde: U es la energa 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 conservacin del momentum.

Dado que el impulso es una cantidad vectorial, el balance de momento es una ecuacin
vectorial. Donde la gravedad es la nica fuerza que acta sobre el cuerpo, el principio de
momento lineal, aplicado a un volumen de control arbitrario nos proporciona la siguiente
expresin, 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 lmite y v es la velocidad del fluido. Mayor detalle ver [20],
captulo 6, pgina 6.

Figura. 3.1 Volumen de control arbitrario para la aplicacin de la ecuacin


del balance de momentum.

30
3.5. Mtodos de simulacin.

Los mtodos de simulacin deben ser resueltos por un algoritmo de solucin. Para un proceso
en estado estacionario el modelo numrico est constituido por sistemas de ecuaciones
no-lineales que pueden ser resueltas mediante: mtodo modular secuencial, mtodo orientado
a ecuaciones y el mtodo modular simultneo.

Mtodo modular secuencial.

Este mtodo implica la interpretacin del diagrama de flujo del proceso como un grupo de
unidades de proceso (equipos), para cada uno de los cuales existen subrutinas de clculo.
Cada subrutina calcula las variables de las corrientes de salida de dicha unidad de proceso
con base al modelo matemtico correspondiente. Mayor detalle referirse a [18], pgina 50.

Mtodo orientado a ecuaciones.


Este modelo representa una solucin simultnea 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], pginas 51-52

Mtodo modular simultneo.

Este mtodo fusiona las ventajas de los dos mtodos anteriormente descritos, tienen un
manejo ms eficiente de las ecuaciones donde se requiere mltiples ciclos. Mayor detalle
referirse a [18], pginas 59-61.

3.6. Descripcin del modelo

Los modelos matemticos de un proceso como este (objeto de nuestro estudio) son el
elemento esencial para explicar algn tipo de fenmeno e identificar tanto cualitativamente
como cuantitativamente el proceso estudiado a fin de obtener las caractersticas del sistema.

Para la obtencin del modelo del separador trifsico se realiza las siguientes suposiciones:
a) Se desprecia los efectos trmicos por intercambio de calor entre el separador y el medio
ambiente (el separador se encuentra aislado trmicamente).
b) Se desprecia la influencia de agentes qumicos (no influyen en cambio alguno en las
propiedades fsico-qumicas).
c) No existe arrastre de lquido en la fase gaseosa (trampas de condensados).

31
El primer paso es definir las propiedades y las condiciones de los fluidos, las propiedades se
determinan a partir de la prueba assay (compilacin de datos de laboratorio que define las
propiedades de un crudo) que determinan las propiedades del crudo y el anlisis PVT que
determina las propiedades del gas.
El segundo paso es establecer las condiciones de operacin como son: presin de trabajo en
[psi], temperatura en [oF] y caudales en [BPD]. Donde la presin de trabajo debe garantizar el
flujo hacia los dems equipos utilizados en el proceso de deshidratacin.
En la figura 3.2, se muestra un separador trifsico controlado por dos vlvulas controladoras
de nivel (colchn agua y crudo) y una para el control de la presin del separador (gas), que
son retroalimentadas y de esta manera obtener el porcentaje de apertura de las mismas.

Variacin de niveles en un separador trifsico.

La presencia del vertedero entre la cmara de separacin y la cmara de crudo generar los
diferentes niveles que conforman la separacin trifsica, para lo cual se ha desarrollado la
figura 3.2.

En la cual el vertedero aislar una cmara 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 trifsico.

donde: P es la presin 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 cmara de

32
crudo en [m] (medida de campo), ht es la altura total de lquido en la cmara de separacin en
[m] (medida de campo), hw es la altura fase acuosa en la cmara de separacin en [m]
(medida de campo), Sg es la fraccin de abertura de la vlvula de gas (adimensional), So es la
fraccin de abertura de la vlvula de crudo (adimensional), Sw es la fraccin de abertura de la
vlvula de agua en (adimensional).

3.7. rea del segmento circular.

Para el presente trabajo la geometra del separador se la aproximar a la de un cilindro, y el


rea de los segmentos circulares se presenta en la siguiente ecuacin, mayor detalle ver [24]
pginas 84-86. Anexo E.

( ) ( ) ( )

3.8. Volumen del segmento circular del separador.

El volumen del lquido ocupado en el cilindro es:

( )

( )

donde: A es el rea del segmento circular ocupado por el lquido, L es la longitud del lquido
ocupado en el separador y D el dimetro del separador.

De la relacin (42) en (43) se obtiene

[ ( ) ( )] ( )

De (44) en (45) resulta

[ ( ) ( )] ( )

( ) ( )
[ ( ) ] ( )

V es una funcin de h. Derivando el volumen en funcin de la altura, tenemos

33
( ) ( )

tomando en consideracin VT dado como

( )

y reemplazando en (49), se obtiene

( ) ( )

Aplicando la regla de la cadena:

( )

se concluye

( ) ( )

3.9. Resumen de ecuaciones

A continuacin se presenta un resumen de las ecuaciones utilizadas para determinar las


propiedades fsico-qumicas de cada una de las corrientes presentes en el flujo.

Propiedades fsicas del petrleo.

141.5
Gravedad especfica: S o .
API 131.5

Viscosidad : o
10 -1 .

Propiedades fsicas del gas.

Peso molecular : .

PM
Densidad : g
.
RT

N M12 PC 23
Viscosidad: 0.00046 .
g TC 16

34
Propiedades fsicas del agua.

Densidad: .
[ ( ) ]

10-2 T 1.982 10-5 T2


Viscosidad: e1.003-1.479 .

35
CAPTULO IV

4. MODELO NUMERICO SEPARADOR TRIFASICO

Resumen.

En esta seccin tratamos el balance de masa como evaluacin del proceso presentando en
ecuaciones bsicas de balance de fluidos: petrleo, agua y gas. Y se detalla la secuencia de
clculo para determinar las propiedades fsicas de dichos fluidos.

Adems se detalla el desarrollo del modelo, all analizamos el balance de los fluidos en cada
una de las secciones del separador trifsico que son necesarios para comprender el
comportamiento del proceso de separacin.

4.1. Evaluacin del proceso

Para desarrollar el modelo numrico del separador trifsico se debe tener un entendimiento de
la fsica del sistema de separacin, 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 presin.
Considerando el balance general de masa del lquido 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 lquido
en [m] (unidades del S.I.), t es el tiempo en [s] (unidades del S.I.), es el caudal de lquido
de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.) y es el caudal de
lquido de salida en [BFPD] (unidades de campo) [m3/s] (unidades del S.I.).

De manera anloga al lazo de nivel, se presenta para para el lazo de presin cuya ecuacin se
deduce ms adelante, la cual proviene de la ecuacin de los gases ideales:

( )
( )

donde: es la presin del separador en [psi] (unidades de campo) [Pa] (unidades del S.I.),
es el caudal de lquido de ingreso en [BFPD] (unidades de campo) [m3/s] (unidades del

36
S.I.), es el caudal de lquido 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 cmara de separacin en [m3] (unidades S.I.) y es el
volumen cmara de crudo en [m3] (unidades S.I.).

4.2. Desarrollo del modelo

Antes de iniciar el anlisis de la parte dinmica, es preciso determinar las propiedades fsico-
qumicas de los fluidos las cules fueron calculadas en el captulo precedente mediante
principios fsicos fundamentales o a travs de correlaciones empricas y datos de laboratorio
necesarios.
Luego de lo cul se ingresa las propiedades geomtricas del separador como longitud y
dimetro. Posteriormente se ingresar los niveles de trabajo tanto de la cmara de crudo como
de la cmara de separacin o set point y los coeficientes de flujo de las vlvulas de control.
Finalmente se obtiene la caracterizacin del separador trifsico de tipo horizontal bajo las
condiciones establecidas.

Balance de lquido en la cmara de separacin.

Aplicando el balance de masa en la cmara de separacin se tiene

( )

Se obtiene la variacin de altura del lquido (crudo+agua) en la cmara de separacin,

( )
( )

donde: es el caudal de emulsin 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 dimetro del separador en [m] (unidades S.I.), es la
longitude de la cmara de separacin [m] (unidades S.I.) y es la altura total del lquido en
la cmara de separacin [m] (unidades S.I.).

37
Balance de petrleo en la cmara de crudo.

La variacin de altura en la cmara de crudo est dada por:

( )

donde es el caudalde crudo que atraviesa el vertedero hacia la cmara de crudo, es


el caudal de crudo saliente.

( )
( )

con altura de la cmara de crudo, dimetro del separador y la longitud de la cmara


de crudo.

Balance de agua en la cmara de separacin.

La variacin de altura de agua en la cmara de separacin est dada por,

( )

( )
( )

donde: Win es el caudal de ingreso de agua, Wout es el caudal de salida de agua, Lcs longitud
de la cmara de separacin, hw altura del agua en la cmara de separacin y D el dimetro
del separador.

Balance de gas.

Tomando en consideracin la ecuacin de los gases ideales que se expresa como:


( )

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


volumen del casquete de gas medida en [ft3] (unidades de campo) o [m3] (unidades S.I.), n es
nmero de moles de gas en [mol] (unidades S.I.), T la temperatura del separador en [ oF]
(unidades de campo) [K] (unidades S.I.), y R la constante universal de los gases 10.7314
[psia-ft3/lbmol-R] (unidades de campo) o 8314.34 [ Pa-m3/Kgmol-K] (unidades S.I.).

de esta ecuacin obtenemos:

38
( )

y tomando en cuenta el volumen del separador, de la cmara de separacin y la cmara de


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

( ) ( )

que es una funcin dependiente del tiempo. Derivando respecto de t, obtenemos la relacin

( )
( ) ( )

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

( )
( ) ( )

donde es el caudal de emulsin 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
cmara de separacin en [m3] (unidades S.I.), es el volumen de la cmara de crudo en
[m3] (unidades S.I.), n es el nmero 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 estn representadas por las siguientes ecuaciones:

( )

( )

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

( )

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

39
( )

donde

( ) ( )

Igualando las ecuaciones (65) y (70), se obtiene el comportamiento dinmico de la presin en


el separador como se muestra en la siguiente ecuacin,

( )
( )

4.2.1. Clculo del volumen en el separador.


El volumen ocupado por el fluido en cada una de las cmaras tanto en la de separacin como
en la de crudo se describe a continuacin.

Volumen de lquido en la cmara de separacin.

El volumen de lquido en la cmara de separacin est dado por las siguientes ecuaciones,

( ) ( )
[ ( ) ] ( )

[( ) ( ) ( ) ( )] ( )

donde: es el volumen de la cmara de separacin en [m3] (unidades S.I), es la


longitud de la cmara de separacin en [m] (unidades S.I), la altura total del lquido en la
cmara de separacin medido en [m] (unidades S.I), y D el dimetro del separador en [m]
(unidades S.I).

Volumen de petrleo en la cmara de crudo.

El volumen de petrleo en la cmara de crudo est representado por las siguientes


ecuaciones,

( ) ( )
[ ( ) ] ( )

40
[( ) ( ) ( ) ( )] ( )

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


cmara de crudo en [m] (unidades S.I) y es la altura de lquido en la cmara de crudo en
[m] (unidades S.I).

Volumen de agua en la cmara de separacin.

( ) ( )
[ ( ) ] ( )

[( ) ( ) ( ) ( )] ( )

donde: es el volumen de agua en la cmara de separacin medido en [m3] (unidades


S.I), es la longitud de la cmara de separacin en [m] (unidades S.I), y la altura del
colchn de agua en la cmara de separacin en [m] (unidades S.I).

Volumen de crudo en la cmara de separacin.

El volumen de crudo presente en la cmara de separacin se muestra en la siguiente ecuacin:

( )

donde: es el volumen de crudo en la cmara de separacin, es el volumen en la


cmara de separacin y es el volumen de agua en la cmara de separacin.

4.3. Flujo de crudo en el vertedero.

Para determinar el flujo de lquido que sale a travs del vertedero se utiliza la frmula de
presa, referirse a [20] captulo-10, pgina 19, para el modelo del separador es:


[ ( )]( ) ( )

( ) ( )

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


del lquido en la cmara de separacin, D el dimetro del separador y g es la gravedad.

41
4.4. Sistema de control

El sistema de control requiere normalmente de desarrollos tericos y de simulaciones


dinmicas, que deben basarse en un modelo matemtico del proceso a controlar. Dicho
modelo debe representar con cierto grado de aproximacin el comportamiento dinmico de
las principales variables de inters.

Los modelos matemticos pueden ser determinsticos o estocsticos. Un modelo es


determinstico cuando asume nulos los ruidos tpicos del proceso y de la medicin, donde la
evolucin del modelo puede ser determinado en forma precisa. En cambio, en un modelo
estocstico las componentes aleatorias propias del proceso y de la medicin se asumen de
estadstica conocida y usualmente se las considera como ruidos. Mayor detalle dirigirse a
[23], pginas 643 649.
En nuestro caso de estudio se considerar al separador trifsico como un modelo
determinstico.
En el sistema de control el controlador es el componente activo que recibe las seales de set
point y las mediciones y efecta 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, slo un efecto proporcional), o lineales con acciones
proporcional, integral y derivativa (PID).
El modelo del sistema final de control bsicamente consiste en el balance de flujo entre la
corriente de entrada y las corrientes de salida, que son operadas por las vlvulas 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 accin del elemento actuador en funcin
del error obtenido. La forma en que el regulador genera la seal de control se denomina
accin de control.

Todo el proceso interacta a travs 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 cmara de


separacin, nivel de la cmara de crudo y la presin interna del separador.

42
El controlador compensa la seal de error que es la derivacin del nivel actual de fluido
respecto al set point, y genera una seal que acta sobre la vlvula de control.

4.4.1. Flujo de salida para lquidos y gases.

Las vlvulas de salida de los fluidos crudo, agua y gas son modeladas en funcin de flujo
unidireccional. Para mayor detalle referirse a [9], pginas 428 465.

Flujo de salida de crudo.

El caudal de salida de crudo por la vlvula. 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
vlvula de crudo (adimensional), es la presin aguas arriba de la vlvula en [psi]
(unidades de campo) o [Pa] (unidades S.I.), P es la presin del separador en [psi] (unidades
de campo) o [Pa] (unidades S.I.), es la gravedad especfica del crudo (adimensional),
es la densidad del crudo en [lb/ft3] (unidades de campo) o [Kg/m3] (unidades S.I.), es la
altura de fluido en la cmara de crudo en [ft] (unidades de campo) o [m] (unidades S.I.) y
es la gravedad en [ft/s2] (unidades de campo) o [m/s2] (unidades S.I.).

Flujo de salida de agua.

De manera anloga al flujo de salida de crudo se realiza el balance de masa para la cmara de
separacin. Mayor detalle ver [11], paginas 41-42,

El caudal de salida por la vlvula 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
vlvula de agua (adimensional), es la presin aguas arriba de la vlvula de agua en [psi]
(unidades de campo) o [Pa] (unidades S.I.), P es la presin del separador en [psi] (unidades

43
de campo) o [Pa] (unidades S.I.), es la gravedad especfica del crudo (adimensional),
es ladensidad del agua en [lb/ft3] (unidades de campo) o [kg/m3] (unidades S.I.), es la
altura del colchn de agua en la cmara de separacin en [ft] (unidades de campo) o [m]
(unidades S.I.) y es la gravedad en [ft/s2] (unidades de campo) o [m/s2] (unidades S.I.).

Flujo de salida de gas.

El flujo de gas que atraviesa por la vlvula de control esta dada por la siguiente expresin

( )( ) ( )

( )

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
vlvula de gas (adimensional), es la presin aguas arriba de la vlvula en [psi] (unidades
de campo) o [Pa] (unidades S.I.), P es la presin 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. Parmetros de variacin.


Para la evaluacin de un separador trifsico, generalmente no se dispone de informacin por
lo cual es necesario implementar procedimientos para estimar las propiedades y/o
condiciones no conocidas a partir de las propiedades fisicoqumicas, tablas, etc.
Como primer paso se definen las condiciones y propiedades involucradas en el clculo a
partir de la informacin primaria de campo que generalmente es:

a) Gravedad API del Crudo a 60F,


b) %BSW, (Bottom Sedimentation ,Water),
c) Caudal de produccin en [BPD],
d) Temperatura y presin de operacin,
e) Datos cromatogrficos del gas y/o anlisis PVT arena.

Adems de las variables primarias de campo tenemos las variables del separador trifsico que
tambin son susceptibles de variacin.

44
Temperatura del separador.

Los distintos componentes de la mezcla tienen diferentes temperaturas de evaporacin por lo


cual cualquier cambio relevante en la temperatura determinar el estado de fase lquido o
gaseoso en el separador.

Presin del separador.

De manera anloga a la temperatura, el estado de fases de los componentes se encuentran


ligados ntimamente con la variacin de presin.
El control de variacin de la presin es el parmetro ms accesible para estimar cada uno de
los sub-productos obtenidos.

Set point.

Con la variacin de dicho parmetro se obtiene una variacin en el tiempo de residencia de


cada una de las fases presentes.

Constantes de proporcionalidad e integral de la vlvula de control.

Las constantes de las vlvulas de control generalmente no son modificables puesto que una
vez realizada las sintonizaciones estas permanecern constantes.

Cualquier variacin en dichas variables puede incurrir en una inestabilizacin del sistema.

45
CAPTULO V

5. PROGRAMA COMPUTACIONAL Y VERIFICACION

Resumen.

En este captulo se ejecuta los diagramas de flujo de cada una de las propiedades de los
fluidos detalladas en el tercer captulo, se implementar un cdigo de clculo que permita
estimar estas propiedades en el proceso de la separacin trifsica.

5.1. Algoritmo de programacin.

Debido a la naturaleza del proceso, la solucin de las ecuaciones que componen el modelo
matemtico proporcionar una buena estimacin de las variables involucradas.
De acuerdo a las ecuaciones presentadas en el resumen de los captulos anteriores se elabora
los respectivos algoritmos que se presenta a continuacin.

5.1.1. Algoritmo de programacin propiedades del petrleo.

En base a las ecuaciones (2) y (3) se elabora el siguiente algoritmo.

PROPIEDADES DEL
CRUDO

PARAMETROS DE
ENTRADA

GRAVEDAD ESPECIFICA VISCOSIDAD

( 0 00 0 ) 6
[ ]

-1

Figura.5.1 Algoritmo Propiedades del Crudo.

46
5.1.2. Algoritmo de programacin propiedades del gas.

Algoritmo programacin densidad del gas.


En base a las ecuaciones (5) y (6) se elabora el siguiente algoritmo.

PROPIEDADES DEL GAS

PARAMETROS DE ENTRADA

PESO MOLECULAR MEZCLA

DENSIDAD

Figura.5.2 Algoritmo Densidad del Gas.

47
Algoritmo programacin viscosidad del gas.
En base a la ecuacin (7), (8) y (9) se elabora el siguiente algoritmo.

VISCOSIDAD DEL GAS

PARAMETROS DE ENTRADA

TEMPERATURA CRTICA PRESION CRTICA

TEMPERATURA REDUCIDA

[ ( )]


N
O

S
I
9
( )

Figura.5.3 Algoritmo Viscosidad del Gas.

48
5.1.3. Algoritmo programacin factor de compresibilidad del gas.
En base a las ecuaciones (22), (25) y (26) se elabora el siguiente algoritmo.

FACTOR DE
COMPRESIBILIDAD Z

PARAMETROS DE ENTRADA

FACTOR ADIMENSIONAL TEMPERATURA REDUCIDA TEMPERATURA CRTICA PRESION CRTICA

[ ( )]

PARAMETRO DE PARAMETRO DE REPULSION


[ ( )]
ATRACCION





1
2 3

49
1 2 3

PARAMETRO DE ATRACCION MEZCLA PARAMETRO DE REPULSION MEZCLA




[ ( ) ( )]

PARAMETRO DE ATRACCION MEZCLA PARAMETRO DE REPULSION MEZCLA



()

( ) ( ) ( )

UTILIZAMOS EL MTODO DE NEWTON RAPSON

FACTOR
COMPRESIBILIDAD
Z

Figura.5.4 Algoritmo Factor Compresibilidad Z del Gas.

50
5.1.4. Algoritmo de programacin propiedades del agua.
En base a las ecuaciones (13) y (14) se elabora el siguiente algoritmo.

PROPIEDADES DEL AGUA

PARAMETROS DE ENTRADA

DENSIDAD



[ ( ) ]

VISCOSIDAD

79 9 5

Figura.5.5 Algoritmo Propiedades del Agua.

51
5.2. Estrategia de control del nivel de cmara de crudo.

La figura 5.6 muestra el modelo realizado en Simulink del controlador de nivel, donde K es
el conversor de seal analgico a digital (0,75 psig/mA), e K1 representa la ganancia del
actuador de la vlvula. Mayor detalle se puede consultar en [23], pgina 773.

5.3. Estrategia de control del nivel colchn de agua cmara separacin.

La figura 5.7 muestra el modelo elaborado en Simulink del controlador de nivel, del colchn
de agua en la cmara de separacin, donde K es el conversor de seal analgico a digital
(0,75 psig/mA), y K1 representa la ganancia del actuador de la vlvula, y las constantes del
controlador respectivamente.

5.4. Estrategia de control de la presin del separador.

La figura 5.8 muestra el modelo ejecutado en Simulink del controlador de presin, del
casquete de gas en el separador, donde K es el conversor de seal analgico a digital (0,75
psig/mA), y K1 representa la ganancia del actuador de la vlvula, y las constantes del
controlador respectivamente.

Figura. 5.6 Control de nivel cmara de crudo.

Figura. 5.7 Control de nivel cmara de separacin.

52
Figura. 5.8 Control de presin separador.

53
5.5. Diagrama general estrategia de control del separador trifsico.

La figura 5.9 muestra el sistema de control del separador trifsico.

Figura.5.9 Control del separador trifsico.

54
5.6. Lenguaje de programacin

En el Anexo F se encuentra el desarrollo de solucin del programa.

5.7. Resultados obtenidos en la simulacin

La aplicacin del diseo se realiz sobre un caso de estudio real, donde el punto de partida es
la informacin suministrada por campo.

5.8. Datos de entrada.

Para el caso en estudio se toman los datos otorgadas por los anlisis cromatogrficos 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 Cromatografa del gas.

VALORES CROMATOGRAFICOS
COMPONENTE % MOLAR
VAPOR DE AGUA 12.9813
NITROGENO 3.9604
DIOXIDO DE CARBONO 51.5352
METANO 15.0215
ETANO 3.3403
PROPANO 6.5507
ISO-BUTANO 1.5202
N-BUTANO 3.0903
ISO-PENTANO 1.1901
N-PENTANO 0.6001
N-HEXANO 0.16
N-HEPTANO 0.0500
TOTAL 100

55
Tabla. 5.2 Parmetros mecnicos del separador.

PARAMETRO UNIDAD VALOR


Dimetro m 1.83 72
Longitud cmara separacin m 6.1 20
Longitud cmara crudo m 1.22 4
Altura del vertedero m 1.0 43

Para la dinmica de la vlvula se consider su apertura es de tipo lineal (Anexo C) como se


muestra en la tabla 5.3.

Tabla 5.3 Parmetros de las vlvulas de control

VALVULA CRUDO AGUA GAS


Tipo Lineal Lineal Lineal
Dimetro de la vlvula 4 in 4in 6in
Constante Cv 212 212 417

5.9. Perturbaciones.

5.9.1. Perturbacin de la fase gas.

La primera perturbacin la realizamos al flujo de ingreso y en el control de la presin del


separador, con una variacin tipo sinusoidal y escaln respectivamente, tabla 5.4

Tabla 5.4 Perturbacin fase gas.


PERTURBACION AMPLITUD
Sinusoidal 0.7
Flujo
Tiempo 500
Escaln 10
Set point
Tiempo 1200

56
Resultado de la perturbacin de presin.
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 presin empieza a sobrepasar el set point.
Luego a los 500 segundos sufre un incremento de caudal de gas con una perturbacin
sinusoidal donde con el incremento repentino la presin llega hasta los 80 psi, el tiempo de
respuesta de la vlvula de control es de 300 segundos hasta estabilizar el sistema.
Posteriormente con el incremento de la presin en su set, bajo las mismas condiciones de
caudal el tiempo de respuesta de la vlvula es de 300 segundos y el sistema ha sido
estabilizado.

Figura.5.10 Caudal de ingreso y salida de gas.

Figura.5.11 Presin de sistema.

57
5.9.2. Perturbacin del agua.
La segunda perturbacin la realizamos en el flujo de ingreso y el control del colchn de agua
en la cmara de separacin con una variacin tipo sinusoidal y escaln, tabla 5.5.

Tabla 5.5 Perturbacin del colchn de agua.

PERTURBACION AMPLITUD
Sinusoidal 0.4
Flujo
Tiempo 1000
Escaln 0.2
Set point
Tiempo 1200

Resultado la perturbacin de agua en la cmara de separacin.


De manera anloga a la perturbacin en el control de la presin del sistema en las figuras 5.12
y 5.13, se describe el proceso de estabilizacin a los cambios descritos en la tabla 5.5.

5.9.3. Perturbacin crudo.

La tercera perturbacin la realizamos en la cmara de crudo, en su set point, y su respectiva


perturbacin en el flujo de ingreso, tabla 5.6.

Tabla 5.6 Perturbacin del nivel de crudo.

PERTURBACION AMPLITUD
Sinusoidal 0.02 Flujo
Tiempo 300
Escaln -0.2 Set point
Tiempo 1500

Resultado perturbacin cmara 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 cmara de crudo tiene a subir muy
rpidamente, debe permanecer por debajo de 1 metro de altura porque a sta se encuentra el
rebose del vertedero.

58
Figura.5.12 Caudal ingreso y salida de agua.

Figura.5.13 Altura del colchn de agua de la cmara separacin.

59
Figura.5.14 Caudal de ingreso y salida de crudo.

Figura.5.15 Altura de la cmara de crudo.

60
5.10. Verificacin de resultados
5.10.1. Propiedades fsico qumicas.
En esta ventana como se muestra en la figura 5.16. se ingresa los datos de la cromatografa del gas, presin y temperatura de operacin adems
de los datos mecnicos del separador.

Figura.5.16. Interface grfica de las propiedades del fluido.

61
Se han relacionado los datos de la densidad (Anexo B), cuya variable es subsecuente para la
determinacin de la simulacin, con los obtenidos en laboratorio.

Tabla. 5.7 comparacin densidad del gas

densidad densidad
Temperatura presin error
(cromatografa) (programa)
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

62
5.10.2. Caudales proporcionados por el programa.

Se puede determinar que a mayor presin de operacin del sistema se puede recuperar mayor volumen de hidrocarburos as:

Se recuperan 0.0125 m^3/s (6793 BOPD) a una presin de trabajo de 40 psi.

Se recuperan 0.0143 m^3/s (7771 BOPD) a una presin de trabajo de 80 psi.

Se recuperan 0.0158 m^3/s (8586 BOPD) a una presin de trabajo de 120 psi.

Se establece que el porcentaje de recuperacin de livianos es de 45 BOPD/PSI

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

63
De la Figura 5.18 se determina:
Se recuperan 0.006 m^3/s (3260 BGPD) a una presin de trabajo de 60 psi.
Se recuperan 0.006 m^3/s (3260 BGPD) a una presin de trabajo de 80 psi.

Al tener la misma capacidad de recuperacin en caudal de gas se determina que la presin 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
funcin del tiempo, tambin se ha podido desarrollar nomogramas como los mostrados en la Figura 5.19., en funcin del corte de agua y la
presin de separacin.

64
Caudal vs. Presin
Crudo [BPD] Gas [MCFPD]
5,000 1800,0

4,500 1600,0
4,000 1400,0
3,500
1200,0
3,000
1000,0
2,500
800,0
2,000
600,0
1,500

1,000 400,0

0,500 200,0

0,000 0,0
0 50 100 150 200 250 300 350 400 450 500 550

gas 15% gas 30% gas 50% gas 80% oil 15% oil 30% oil 50% oil 80%

Figura. 5.19 Nomograma caudal de recuperacin de crudo y gas.

El anexo G muestra el caudal de lquido y gas recuperado para un vasto rango de presiones a distintos cortes de agua.

65
CAPTULO VI

6. CONCLUSIONES Y RECOMENDACIONES

6.1. Conclusiones

a) El modelo desarrollado en este trabajo es de utilidad en estudios de dinmica, control


y optimizacin. Como el sistema es complejo es necesario realizar ciertas
suposiciones con el objetivo de despreciar fenmenos no dominantes, para hacer que
el problema sea manejable desde un punto de vista numrico.
b) Mediante el algoritmo de simulacin del proceso de separacin se ha determinado las
condiciones de operacin del sistema, el mismo que se encuentra entre los 55 a 65
psi.
c) El presente trabajo permite analizar con mnima informacin la presin idnea de
operacin del equipo, con lo cual tanto el mtodo como el programa son verstiles y
adaptables a diversas situaciones de operacin.
d) Las correlaciones utilizadas en la simulacin para la prediccin de las propiedades
qumicas de los sistemas de hidrocarburos son satisfactorias.
e) La simulacin numrica nos proporcionan una visin futurista del comportamiento del
proceso de separacin.

6.2. Recomendaciones

a) Elaborar ms nomogramas que permitan determinar las condiciones ptimas de


separacin dentro de la diversidad de crudos existentes en el pas, para lograr obtener
un recobro mximo de lquidos.
b) Estudiar la hidrodinmica del separador, con la cul se puede representar los efectos
de mezclado entre fases.
c) El modelo puede ser perfeccionado insertando correlaciones termodinmicas ms
rigurosas para la determinacin los coeficientes y propiedades de los fluidos.
d) Se recomienda realizar un estudio especfico de los eliminadores de niebla para
determinar el efecto de ste en la recuperacin de gas.

66
BIBLIOGRAFA

[1] API 12J., Specification and Oil and Gas Separators. Sptima Edicin. Washington1989.

[2] ANDRADE, Francisco. Desarrollo de Herramienta de Simulacin para Equipos


Separadores de Agua Libre. Trabajo de Grado. Master en Automatizacin Industrial.
Universidad Nacional de Colombia. Facultad de Ingemiera. 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 dcada


de los 80, Divisin tcnica, Subgerencia financiera.

[5] BANZER, Carlos, Correlaciones Numricas PVT [en lnea], 1996, [fecha de
consulta: 10 de Julio2013], disponible en:
<http://oilproduction.net/cms/files/correlaciones%20PVT-Carlos%20Banzer.pdf>.

[6] BENALCAZAR, Hernn, Resultados Fundamentales del Anlisis 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 Termodinmica y Procesos de Separacin (2, 2010, Quito, Ecuador).


Generalidades de Separacin. Universidad Central del Ecuador. Quito, 2011.

[9] CREUS, Antonio, Instrumentacin Industrial, Sexta Edicin, Editorial Alfaomega,


Barcelona, 1997.

[10] DIONNE, Marc. The Simulation of a Three Phase Separator. Trabajo de Grado. Master
en Ciencias en Ingeniera Qumica. Universidad de Calgary. Departamento de Ingeniera
Qumica y Petrleo. Ottawa. CA, 1998.

[11] DOMENICO, Diego. Estrategias de Controle Contra Intermitencia Severa na


Alimentacao de Separadores Offshore. Trabajo de Grado. Master en Ciencias en Ingeniera
Qumica. Universidad Federal do Rio de Janeiro. Escola de Qumica. Rio de Janeiro. 2009.

67
[12] GONZALES, Ral, Apuntes de Simulacin y Optimizacin: Estrategias de Solucin 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 lnea]. 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, Benjamn. Estudio y Diseo de Separadores Horizontales y Verticales de


Dos y Tres Fases. Trabajo de Grado. Ingeniero en Petrleo. Escuela Superior Politcnica del
Litoral. Facultad de Geologa, Minas y Petrleos. Guayaquil. 1987.

[15] ISA-75.01.01-2007. Flow Equations for Sizing Control Valves. Carolina del Norte.
2007.

[16] MALDONADO, Daniel. Modelacin del Proceso de Separacin de Gas Crudo en la


Industria Petrolera. Trabajo de Grado. Ingeniero en Petrleos. Universidad ISTMO. Santo
Domingo Tehuantepec, 2010.

[17] MARTNEZ, Marcas y PEREZ, Ramiro. Caractersticas y Comportamiento de los


Hidrocarburos. Editorial Edwards, Maracaibo, 1975.

[18] MARTNEZ, Vctor, et all. Simulacin de Procesos en Ingeniera Qumica. Editorial


Plaza y Valds, Cuernavaca, 2000.

[19] MELO, Gonzales, LOPEZ, C. y CAMACHO, C., Simulacin Dinmica de Sistemas


una Herramienta para el Anlisis del Performance de Sistemas y Procesos en la Industria
Petrolera Metodologa y Resultados [en lnea]. Instituto Mexicano del Petrleo, 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. Perrys Chemical Engineers Handbook. Sptima


Edicin, Editorial Mc Graw Hill, 1999.

[21] RODRIGUEZ, Susana y VEGA, Aurelio. Simulacin y Optimizacin Avanzadas en la


Industria Qumica y de Procesos. Tercera Edicin, Editorial Oviedo, Oviedo 2005.

68
[22] SEADER, J. y HENLEY, E, Separation Process Principles, Chapter 1, Editorial
Hamilton 1998.

[23] SCENNA, Nicols, et all, Modelado, Simulacin y Optimizacin de Procesos Qumicos


[en lnea]. 1999, [fecha de consulta: 8 de Enero 2013], disponible en:
<http://nhmeed.cc.tx.us/1re/ke/peniche.html>.

[24] TANNUS, Nathalia, Modelagem Anlise e Controle de um Processo de Separao leo


gua. Trabajo de Grado. Maestro en Ingeniera Qumica. Universidad Federal do Rio de
Janeiro. Ro de Janeiro.2005.

[25] VERON, Smith y ARNOLD, Kenneth, Emulsion and Oil Treating an Equipment,
Editorial Elsevier, Oxford, 2009.

69
ANEXOS

Anexo A. Constantes fsicas de los gases

70
71
Anexo.B. Cromatografa gases

72
Anexo.C. Coeficiente Cv de las vlvulas de control tipo globo

Valve Size (in) Flow Characteristic Cv


Equal Percent 4.20
1/2
Quick Opening 6.27
Equal Percent 17.4
1 Linear 20.1
Quick Opening 21.4
Equal Percent 33.4
1-1/2 Linear 34.9
Quick Opening 38.0
Equal Percent 56.2
2 Linear 65.3
Quick Opening 67.2
Equal Percent 87.2
2-1/2 Linear 86.5
Quick Opening 93.1
Equal Percent 121
3 Linear 135
Quick Opening 150
Equal Percent 203
4 Linear 212
Quick Opening 235
Equal Percent 357
6 Linear 417
Quick Opening 469
Equal Percent 808
8 Linear 836
Quick Opening 875
Modifield Parabolic 987
10
Quick Opening 1360
Modifield Parabolic 1180
12
Quick Opening 1700

73
Anexo D. Coeficientes presin ptima.

Coeficientes Clculo Presin ptima


A1 1.7970640x100 B1 3.9836405x10-3
A2 2.1987547x10-3 B2 3.9836405x10-6
A3 1.6185399x10-6 B3 -5.5610874x10-8
A4 9.331717x10-9 B4 4.5029573x10-11
C1 -5.2867215x10-5 D1 38.234458x100
C2 1.2446502x10-7 D2 -5.0398134x10-2
C3 -5.3578971x10-11 D3 -1.8534164x10-5
C4 -2.7626487x10-14 D4 3.2528255x10-8

74
Anexo E. Variacin de niveles en el separador trifsico.

( ( )) ( )

donde A es el rea del segmento circular ocupado por el lquido, h es la altura del lquido
ocupado, r es el radio del separador y es el ngulo central.

Como: , se tiene

( ( )) ( )

y de la relacin ( ) , se obtiene:

( ( ) ( )) ( )

Teniendo en cuenta el dimetro, resulta:

( ( ) ( )) ( )

donde:

( ) ( )

( ) ( )

( )

De las ecuaciones (f) y (g) en (d) deducimos

( ( ) ( ) ) ( )

75
De la ecuacin (e) en (h) se obtiene

D2 2h D2 2h 2h 2
A ar cos (1 ) (1
) 1 (1 )
4 D 4 D D
( )

( ) ( ) ()

76
Anexo F. Desarrollo de la solucin en Matlab.

A continuacin se presenta la codificacin 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 fisicoqumicas

handles.colgdc_nombre=1; % nombre del elemento


handles.colgdc_abrev=2; % abreviatura del elemento
handles.colgdc_formula=3; % formula quimica
handles.colgdc_fractM=4; % fraccin molar

77
handles.colgdc_factorA=5; % factor acntrico pag. 184 Perry
handles.colgdc_PresionMpa=6; % presin critica elemento pg. 184 Perry
handles.colgdc_PresionPsi=7; % Transformacion de presin
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; % presin vapor en Pa
handles.colgdc_PresVPsi=15; % presin vapor en psi
handles.colgdc_Salida=16; % condicin de estado
handles.colgdc_Estado=17;
handles.output = hObject;
handles.C=12; % peso atmico carbn
handles.N=14; % peso atmico nitrgeno
handles.O=16; % peso atmico oxigeno
handles.H=1; % peso atmico hidrgeno
% carga de valores Ingresados
if exist('values.dat','file')==0
defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];
%get(handles.ParametrosConstantes,'data');
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
%currData = get(handles.ParametrosConstantes,'data');
%disp(currData);
end
valuesData=dlmread('values.dat',';');
set(handles.temp_F,'string',valuesData(1));
set(handles.presion_psi,'string',valuesData(4));
set(handles.api,'string',valuesData(6));
set(handles.temp_yacimiento,'string',valuesData(7));
set(handles.const_gas_r,'string',valuesData(8));
% Update handles structure
guidata(hObject, handles);
function varargout = CalculoT_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function slider1_Callback(hObject, eventdata, handles)
function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
function totalyipsi_Callback(hObject, eventdata, handles)
function totalyipsi_CreateFcn(hObject, eventdata, handles)

78
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function totalyitr_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function totalyitr_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function varA_Callback(hObject, eventdata, handles)
function varA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function varB_Callback(hObject, eventdata, handles)
function varB_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factam_Callback(hObject, eventdata, handles)
function factam_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function repm_Callback(hObject, eventdata, handles)


function repm_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function zfact_Callback(hObject, eventdata, handles)
function zfact_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densidad_Callback(hObject, eventdata, handles)
function densidad_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscosidad_Callback(hObject, eventdata, handles)

79
function viscosidad_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton4_Callback(hObject, eventdata, handles)
function pushbutton5_Callback(hObject, eventdata, handles)
function frac_moral_Callback(hObject, eventdata, handles)
function frac_moral_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function grav_espec_Callback(hObject, eventdata, handles)
function grav_espec_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
funtion visco_Callback(hObject, eventdata, handles)
function visco_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Actualizar_Callback(hObject, eventdata, handles) %actualizar datos
ActualizarData(hObject, eventdata, handles);
function const_gas_r_Callback(hObject, eventdata, handles)
function const_gas_r_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function const_gas_f_Callback(hObject, eventdata, handles)
function const_gas_f_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function const_gas_k_Callback(hObject, eventdata, handles)
function const_gas_k_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function api_Callback(hObject, eventdata, handles)
function api_CreateFcn(hObject, eventdata, handles)
.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))

80
set(hObject,'BackgroundColor','white');
end
function temp_yacimiento_Callback(hObject, eventdata, handles)
function temp_yacimiento_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presion_psi_Callback(hObject, eventdata, handles)
function presion_psi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presion_pa_Callback(hObject, eventdata, handles)
function presion_pa_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_F_Callback(hObject, eventdata, handles)
function temp_F_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_K_Callback(hObject, eventdata, handles)
function temp_K_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function temp_R_Callback(hObject, eventdata, handles)
function temp_R_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscom_Callback(hObject, eventdata, handles)
function viscom_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pesom_Callback(hObject, eventdata, handles)
function pesom_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

81
function temprm_Callback(hObject, eventdata, handles)
function temprm_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densg_Callback(hObject, eventdata, handles)
function densg_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densgmtres_Callback(hObject, eventdata, handles)
function densgmtres_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function viscompas_Callback(hObject, eventdata, handles)
function viscompas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function tempsr_Callback(hObject, eventdata, handles)
function tempsr_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factz_Callback(hObject, eventdata, handles)
function factz_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function presioncmpsi_Callback(hObject, eventdata, handles)
function presioncmpsi_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function factorn_Callback(hObject, eventdata, handles)
function factorn_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function guardar_Callback(hObject, eventdata, handles) % guarda cambios
SaveWorkspace(hObject, eventdata, handles);

82
display('guardado');
function ActualizarData(hObject, eventdata, handles)
RecalcularGrilla(hObject, eventdata, handles);
RecalcularTodo(hObject, eventdata, handles);
%ActualizaC(hObject, eventdata, handles);
SaveWorkspace(hObject, eventdata, handles);
function CalculosIngreso(hObject, eventdata, handles)
caudal=str2double(get(handles.ccaudal,'string'));
PORBSW=str2double(get(handles.cbsw,'string'));
ppsi=str2double(get(handles.presion_psi,'string'));
agua_flujo= (caudal*PORBSW)/100;
gas_flujo=(caudal-agua_flujo)*0.4946*2.7182^(-0.0082*ppsi);
crudo_flujo=(caudal-agua_flujo)-gas_flujo;
set(handles.ccrudo,'string',crudo_flujo)
set(handles.cagua,'string',agua_flujo)
set(handles.cgas,'string',gas_flujo)
function CalcularAceite(hObject, eventdata, handles)
GravEsp=get(handles.grav_espec,'string');
dencA=str2double(GravEsp)*1000;
set(handles.denc,'string',dencA);
%Actualiza los datos en el simulink
function SaveWorkspace(hObject, eventdata,handles)
try
gData=get(handles.GrillaData,'data');
fileID = fopen('saved.dat','w');
for i=1:size(gData,1)
try
v13=gData{i,handles.colgdc_Salida};
v13 = strrep(v13, '<html><span style="color: #FF0000; font-weight: bold;">',
v13 = strrep(v13, '</span></html>','');

v1=gData{i,handles.colgdc_nombre};
v2=gData{i,handles.colgdc_abrev};
v3=gData{i,handles.colgdc_formula};
v4=gData{i,handles.colgdc_fractM};
v5=gData{i,handles.colgdc_factorA};
v6=gData{i,handles.colgdc_PresionKpa};
v7=gData{i,handles.colgdc_PresionPsi};
v8=gData{i,handles.colgdc_TempCritica};
v9=gData{i,handles.colgdc_cuno};
v10=gData{i,handles.colgdc_cdos};
v11=gData{i,handles.colgdc_ctres};
v12=gData{i,handles.colgdc_ccuatro};
v14=gData{i,handles.colgdc_ccinco};
v15=gData{i,handles.colgdc_PresVPa};
v16=gData{i,handles.colgdc_PresVPsi};
v17=gData{i,handles.colgdc_Estado};

fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1

83
2.12f;%12.12f;%12.12f;%12.12f;%12.12f;%s;%d\n',v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12
,v14,v15,v16,v13,v17);
catch
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
return;
end
end
fclose(fileID);
% carga de valores Ingresados
defaultData = zeros(1,12);
defaultData(1,1)=str2num(get(handles.temp_F,'string'));
defaultData(1,2)=str2num(get(handles.temp_K,'string'));
defaultData(1,3)=str2num(get(handles.temp_R,'string'));
defaultData(1,4)=str2num(get(handles.presion_psi,'string'));
defaultData(1,5)=str2num(get(handles.presion_pa,'string'));
defaultData(1,6)=str2num(get(handles.api,'string'));
defaultData(1,7)=str2num(get(handles.temp_yacimiento,'string'));
defaultData(1,8)=str2num(get(handles.const_gas_r,'string'));
defaultData(1,9)=str2num(get(handles.const_gas_f,'string'));
defaultData(1,10)=str2num(get(handles.const_gas_k,'string'));
defaultData(1,11)=str2num(get(handles.grav_espec,'string'));
defaultData(1,12)=str2num(get(handles.visco,'string'));
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
catch
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
return ;
end
function string = cell2str(cellstr)
if nargin~=1
error('CELL2STR:Nargin','Takes 1 input argument.');
end
if ischar(cellstr)
string = ['''' strrep(cellstr,'''','''''') ''''];
return
end
if ~iscellstr(cellstr)
error('CELL2STR:Class','Input argument must be cell array of strings.');
end
if ndims(cellstr)>2
error('CELL2STR:TwoDInput','Input cell array must be 2-D.');
end
ncols = size(cellstr,2);
for i=1:ncols-1

84
cellstr(:,i) = cellfun(@(x)['''' strrep(x,'''','''''') ''','],...
cellstr(:,i),'UniformOutput',false);
end
if ncols>0
cellstr(:,ncols) = cellfun(@(x)['''' strrep(x,'''','''''') ''';'],...
cellstr(:,ncols),'UniformOutput',false);
end
cellstr = cellstr';
string = ['{' cellstr{:} '}'];
function LoadGrillaCalculos(hObject, eventdata, handles)
gData=get(handles.GrillaData,'data');
%carga de datos guardados
% carga de constantes
if exist('dataconst.dat','file')==0
defaultData = [0.343 22064 3200.1 647.1 73.649 -7258.2 -7.3037 4.1653E-06 2;
0.037 3396 492.5 126.19 58.282 -1084.1 -8.3144 0.044127 1;
0.224 7377 1069.9 304.13 140.54 -4735 -21.268 0.040909 1;
0.011 4599 667.0 190.56 39.205 -1324.4 -3.4366 0.000031019 2;
0.098 4872 706.6 305.33 51.857 -2598.7 -5.1285 0.000014913 2;
0.149 4244 615.5 369.77 59.078 -3492.6 -6.0669 0.000010919 2;
0.197 3640 527.9 407.82 66.343 -4363.2 -7.046 9.4509E-06 2;
0.197 3798 550.9 425.12 66.343 -4363.2 -7.046 9.4509E-06 2;
0.251 3381 490.4 460.4 78.741 -5420.3 -8.8253 9.6171E-07 2;
0.251 3370 488.8 469.7 78.741 -5420.3 -8.8253 9.6171E-07 2;
0.304 3012 436.9 433.7 104.65 -6995.5 -12.702 0.000012381 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.999666333 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2;
0.346 2736 396.8 540.3 87.829 -6996.4 -9.8802 7.2099E-06 2];
%get(handles.ParametrosConstantes,'data');
dlmwrite('dataconst.dat',defaultData,'precision',12,'delimiter',';')
%currData = get(handles.ParametrosConstantes,'data');
%disp(currData);
end
constData=dlmread('dataconst.dat',';');
%carga de grilla guardada
if exist('saved.dat','file') == 0
defaultNames={'agua';'nitrogeno';'monoxido carb';'metano';'etano';'propano';'i-butano';'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;

85
1 1 1 0.0396 0.037 3.39 491.68 126.19 58.28 -1084.10 -8.314 4.4127E-02 1.00 6.68E+08
9.69E+04;
1 1 1 0.5154 0.224 7.39 1071.83 304.13 140.54 -4735.00 -21.268 4.0909E-02 1.00 5.89E+06
8.55E+02;
1 1 1 0.1502 0.011 4.59 665.72 190.56 39.21 -1324.40 -3.437 3.1019E-05 2.00 5.68E+07
8.24E+03;
1 1 1 0.0334 0.098 4.85 703.43 305.33 51.86 -2598.70 -5.128 1.4913E-05 2.00 3.86E+06
5.59E+02;
1 1 1 0.0655 0.149 4.21 610.61 369.77 59.08 -3492.60 -6.067 1.0919E-05 2.00 8.62E+05
1.25E+02;
1 1 1 0.0152 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05
3.13E+01;
1 1 1 0.0309 0.197 3.77 546.79 425.12 66.34 -4363.20 -7.046 9.4500E-06 2.00 2.16E+05
3.13E+01;
1 1 1 0.0119 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04
8.57E+00;
1 1 1 0.006 0.251 3.36 487.33 469.70 78.74 -5420.30 -8.825 9.6171E-06 2.00 5.91E+04
8.57E+00;
1 1 1 1.60E-03 0.304 3.04 440.91 507.60 104.65 -6995.50 -12.702 1.2381E-05 2.00
1.71E+04 2.48E+00;
1 1 1 0.0005 0.346 2.72 394.50 540.20 87.83 -6996.40 -9.880 7.2099E-06 2.00 4.98E+03
7.22E-01;
1 1 1 0 0.396 2.47 358.24 568.70 96.08 -7900.20 -11.003 7.1802E-06 2.00 1.50E+03 2.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

86
errordlg('Ocurrio un error al guardar los datos intentelo mas tarde.','Valor
incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
end
fclose(fileID);
end
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
catch
errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
fclose(fileID);
try
rows=size(TVals{1},1);
cols=size(gData,2);
for i=1:rows
for j=1:cols
if j==handles.colgdc_nombre || j == handles.colgdc_abrev || j == handles.colgdc_formula || j
== handles.colgdc_Salida
Valor=TVals{j};
gData{i,j}=Valor{i};
elseif j==handles.colgdc_Estado
Valor=TVals{j};
if Valor(i)==1
gData{i,j}=true;
else
gData{i,j}=false;
end
else
Valor=TVals{j};
gData{i,j}=Valor(i);
end
end
end

87
set(handles.GrillaData,'data',gData);
catch
try
delete('saved.dat');
catch
end
errordlg('No es posible cargar los datos guardados pueden que estos esten
corruptos.','Valor incorrecto','modal')
close(0);
end
function RecalcularTodo(hObject, eventdata, handles)
%calculo temperatura F K R
valor_F = str2num(get(handles.temp_F,'string'));
if isnan(valor_F)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.temp_F)
return
end
resultado=(5*(valor_F-32)/9)+273.15;
set(handles.temp_K,'string',resultado);
resultado=(valor_F-32)+491.67;
set(handles.temp_R,'string',resultado);
%calculo presin en Pascales
valor_psi = str2num(get(handles.presion_psi,'string'));
if isnan(valor_psi)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.presion_psi)
return
end
resultado=valor_psi*6894.75;
set(handles.presion_pa,'string',resultado);
%calculo const_gas
valor_gr = str2num(get(handles.const_gas_r,'string'));
if isnan(valor_gr)
errordlg('Es necesario ingresar un valor numerico','Valor incorrecto','modal')
uicontrol(handles.const_gas_r)
return
end
resultado=(valor_gr*2.2*460.67)/1000;
set(handles.const_gas_f,'string',resultado);
resultado=resultado/255.9278;
set(handles.const_gas_k,'string',resultado);

%GRAVEDAD ESPECIFICA GAS


api=str2num(get(handles.api,'string'));
grav_espec=141.5/(131.5+api);
set(handles.grav_espec,'string',grav_espec);
%VISCOSIDAD GAS
temp_yacimiento=str2num(get(handles.temp_yacimiento,'string'));
visco=(10^((10^(3.0324-0.02023*grav_espec))*(temp_yacimiento^-1.163)))-1;

88
set(handles.visco,'string',visco);
function RecalcularGrilla(hObject, eventdata, handles)
data=get(handles.GrillaData,'data');
rows=size(data,1);
temp_K=str2num(get(handles.temp_K,'string'));
suma_frac=0;
for i=1:rows
%calculo presin de vapor
if isnumeric(data{i,handles.colgdc_cuno})
c1=data{i,handles.colgdc_cuno};
else
c1=str2num(data{i,handles.colgdc_cuno});
end
if isnumeric(data{i,handles.colgdc_cdos})
c2=data{i,handles.colgdc_cdos};
else
c2=str2num(data{i,handles.colgdc_cdos});
end
if isnumeric(data{i,handles.colgdc_ctres})
c3=data{i,handles.colgdc_ctres};
else
c3=str2num(data{i,handles.colgdc_ctres});
end
if isnumeric(data{i,handles.colgdc_ccuatro})
c4=data{i,handles.colgdc_ccuatro};
else
c4=str2num(data{i,handles.colgdc_ccuatro});
end
if isnumeric(data{i,handles.colgdc_ccinco})
c5=data{i,handles.colgdc_ccinco};
else
c5=str2num(data{i,handles.colgdc_ccinco});
end
if isnumeric(data{i,handles.colgdc_fractM})
valorFM=data{i,handles.colgdc_fractM};
else
valorFM=str2num(data{i,handles.colgdc_fractM});
end
if data{i,handles.colgdc_Estado}==0
salidatipo='APAGADO';
else
suma_frac=suma_frac+valorFM;
vapor_pa=c1+(c2/temp_K)+(c3*log(temp_K))+(c4*(temp_K^c5));
vapor_pa=exp(vapor_pa);
if isinf(vapor_pa)
valor_pa=0;
end
data{i,handles.colgdc_PresVPa}=vapor_pa;
psi = vapor_pa / 6894.75;
presion_psi_val=str2num(get(handles.presion_psi,'string'));

89
salidatipo='LIQUIDO';
if psi>=presion_psi_val
salidatipo='GAS';
end
end

data{i,handles.colgdc_Salida}=strcat('<html><span style="color: #FF0000; font-weight:


bold;">', salidatipo,'</span></html>');
end
set(handles.GrillaData,'data',data);
set(handles.frac_moral,'string',suma_frac);
if suma_frac>1.1 | suma_frac<0.9
h = msgbox('Los Valores Frac. Molar estan fuera de rango', 'Error','error','modal');
set(handles.guardar,'enable','off');
else
set(handles.guardar,'enable','on');
end
function GrillaData_CellEditCallback(hObject, eventdata, handles)
data=get(hObject,'Data');
cols=get(hObject,'ColumnFormat');
if strcmp(cols(eventdata.Indices(2)),'logical')
if eventdata.EditData
data{eventdata.Indices(1),eventdata.Indices(2)}=true;
else
data{eventdata.Indices(1),eventdata.Indices(2)}=false;
end
set(hObject,'Data',data);
else
col = size(eventdata.Indices,2);
if col==handles.colgdc_nombre || handles.colgdc_abrev==col ||
handles.colgdc_formula==col
if col==handles.colgdc_formula
H=1;
N=1;
O=1;
C=1;
try
m=eval(eventdata.NewData);
catch
data=get(handles.GrillaData,'data');
data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;
set(handles.GrillaData,'data',data);
end
else
end
else
if isnan(str2double(eventdata.EditData))
data=get(handles.GrillaData,'data');
data{eventdata.Indices(1),eventdata.Indices(2)}=eventdata.PreviousData;
set(handles.GrillaData,'data',data);

90
end
end
end
RecalcularGrilla(hObject, eventdata, handles);
RecalcularTodo(hObject, eventdata, handles);
function cargar_Infoz(hObject, eventdata, handles)
if exist('values.dat','file')==0
defaultData = [158 0 0 30 0 20 190 10.7314 0 0 0 0];
dlmwrite('values.dat',defaultData,'precision',12,'delimiter',';')
end
valuesData=dlmread('values.dat',';');
handles.vtemp_F=valuesData(1);
handles.vtemp_K=valuesData(2);
handles.vtemp_R=valuesData(3);
handles.vpresion_psi=valuesData(4);
handles.vpresion_pa=valuesData(5);
handles.vapi=valuesData(6);
handles.vtemp_yacimiento=valuesData(7);
handles.vconst_gas_r=valuesData(8);
handles.vconst_gas_f=valuesData(9);
handles.vconst_gas_k=valuesData(10);
handles.vgrav_espec=valuesData(11);
handles.vvisco=valuesData(12);
if exist('tperiod.dat','file')==0
elementoNombre={'H';'N';'O';'C'};
elementoValor=[1;14;16;12];
fileID = fopen('tperiod.dat','w');
for index = 1:numel(elementoNombre)
try
nombre=elementoNombre{index};
valor=elementoValor(index);
fprintf(fileID,'%s;%12.12f\n',nombre,valor);
catch
errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor
incorrecto','modal')
fclose(fileID);
close();
end
end
fclose(fileID);
end
fileID = fopen('tperiod.dat','r');
T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);
fclose(fileID);
ce=T{2};
handles.H=ce(1);
handles.N=ce(2);
handles.O=ce(3);
handles.C=ce(4);
H=ce(1);

91
N=ce(2);
O=ce(3);
C=ce(4);
bTrue=true;
disp(exist('saved.dat','file'));
if exist('saved.dat','file')==2
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
handles.TVals=TVals;
catch
errordlg('Ocurrio un error al cargar los datos intentelo mas tarde.','Valor incorrecto','modal')
fclose(fileID);
try
delete('saved.dat');
catch
end
close(0);
return
end
fclose(fileID);
else
errordlg('No existen los valores necesarios para realizar el calculo.','Valor
incorrecto','modal')
close(0);
return;
nd
TData_col=size(TVals,2);
TData_row=size(TVals{1},1);
tNombres = TVals{handles.colgdc_nombre};
tAbrev = TVals{handles.colgdc_abrev};
tFormula = TVals{handles.colgdc_formula};
tyi = TVals{handles.colgdc_fractM};
tfa = TVals{handles.colgdc_factorA};
tpre_kpa = TVals{handles.colgdc_PresionKpa};
tpre_psi = TVals{handles.colgdc_PresionPsi};
ttempc_k = TVals{handles.colgdc_TempCritica};
tc1 = TVals{handles.colgdc_cuno};
tc2 = TVals{handles.colgdc_cdos};
tc3 = TVals{handles.colgdc_ctres};
tc4 = TVals{handles.colgdc_ccuatro};
tc5 = TVals{handles.colgdc_ccinco};
tprevap_pa = TVals{handles.colgdc_PresVPa};
tprevap_psi = TVals{handles.colgdc_PresVPsi};
tSalidas = TVals{handles.colgdc_Salida};
tEstados = TVals{handles.colgdc_Estado};
aac=get(handles.const_gas_r,'string');
aad=get(handles.temp_R,'string');
cgr=str2num(get(handles.const_gas_r,'string'));

92
tmpr=str2num(get(handles.temp_R,'string'));
fileID = fopen('zconst.dat','w');
for bIndex = 1:numel(tNombres)
nombre=tNombres{bIndex};
abrev=tAbrev{bIndex};
formula=tFormula{bIndex};
if (strcmpi(strtrim(tSalidas{bIndex}),'LIQUIDO')==true) | tEstados(bIndex)==0
M=0;
yi=0;
Myi=0;
fa=0;
pre_kpa=0;
pre_psi=0;
yipre_psi=0;
tempc_k=0;
tempc_r=0;
yitempc_r=0;
tempr_r=0;
factorA=0;
factorR=0;
mi=0;
coeAlpha=0;
yiR=0;
c1=0;
c2=0;
c3=0;
c4=0;
c5=0;
prevap_pa=0;
prevap_psi=0;
estado='';
else
try
disp(eval(formula));
M=eval(formula);
catch
M=0;
end
yi=tyi(bIndex,1);
Myi=M*yi;
fa=tfa(bIndex);
pre_kpa=tpre_kpa(bIndex);
pre_psi=tpre_psi(bIndex);
yipre_psi=yi*pre_psi;
tempc_k=ttempc_k(bIndex);
tempc_r=(9/5)*tempc_k;
yitempc_r=yi*tempc_r;
%tempr_r=handles.temp_R/tempc_r;
tempr_r=handles.vtemp_R/tempc_r;
factorA=0.45724*(((cgr^2)*(tempc_r^2))/(pre_psi));

93
factorR=0.0778*((cgr*tempc_r)/pre_psi);
mi=0.37464+1.54226*fa-0.26992*(fa^2);
coeAlpha=(1+mi*(1-(tmpr/tempc_r)^0.5))^2;
yiR=yi*tempr_r;
c1=tc1(bIndex);
c2=tc2(bIndex);
c3=tc3(bIndex);
c4=tc4(bIndex);
c5=tc5(bIndex);
prevap_pa=tprevap_pa(bIndex);
prevap_psi=tprevap_psi(bIndex);
estado=tSalidas{bIndex};
end
try

fprintf(fileID,'%s;%s;%s;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%1
2.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',nombre,abrev,formula,yi,pre_kpa,pre_psi,yipre_
psi,tempc_k,tempc_r,yitempc_r,fa,factorA,factorR,coeAlpha,mi);
catch
fclose(fileID);
close();
end
end
fclose(fileID);
dgvcol_Nombres=1;
dgvcol_Abrev=2;
dgvcol_Formula=3;
dgvcol_yi=4;
dgvcol_prekpa=5;
dgvcol_prepsi=6;
dgvcol_yiprepsi=7;
dgvcol_tempk=8;
dgvcol_tempr=9;
dgvcol_yitempr=10;
dgvcol_fa=11;
dgvcol_factA=12;
dgvcol_factR=13;
dgvcol_coeAlpha=14;
dgvcol_mi=15;
fileID = fopen('zconst.dat','r');
try
TValsZ = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f
%f','delimiter',';','EmptyValue',0);
VData = get(handles.GrillaDataZ,'data');
[vRows,vCols]=size(VData);
tNombres=TValsZ{dgvcol_Nombres};
tAbrev=TValsZ{dgvcol_Abrev};
tFormula=TValsZ{dgvcol_Formula};
tyi=TValsZ{dgvcol_yi};
tpre_kpa=TValsZ{dgvcol_prekpa};

94
tpre_psi=TValsZ{dgvcol_prepsi};
tyipre_psi=TValsZ{dgvcol_yiprepsi};
ttempc_k=TValsZ{dgvcol_tempk};
ttempc_r=TValsZ{dgvcol_tempr};
tyitempc_r=TValsZ{dgvcol_yitempr};
tfa=TValsZ{dgvcol_fa};
tfactorA=TValsZ{dgvcol_factA};
tfactorR=TValsZ{dgvcol_coeAlpha};
tcoeAlpha=TValsZ{dgvcol_coeAlpha};
tmi=TValsZ{dgvcol_mi};
VData = [tNombres tAbrev tFormula num2cell(tyi) num2cell(tpre_kpa)
num2cell(tpre_psi) num2cell(tyipre_psi) num2cell(ttempc_k) num2cell(ttempc_r)
num2cell(tyitempc_r) num2cell(tfa) num2cell(tfactorA) num2cell(tfactorR)
num2cell(tcoeAlpha) num2cell(tmi)];

set(handles.GrillaDataZ,'data',VData);
[xRows,XCols] = size(TVals{1});
suma=0;
suma1=0;
suma2=0;
suma3=0;
for i=1:xRows
suma1=suma1+(tyi(i)*tpre_psi(i));
suma3=suma3+(tyi(i)*ttempc_r(i));
suma2=suma2 + (tyi(i)*tfactorR(i));
for j=i+1:xRows
suma = suma + ((tyi(i)*tyi(j)) * (tfactorA(i) * tfactorA(j) * tcoeAlpha(i) * tcoeAlpha(j) )
^ 0.5);
end
end
va=(suma*handles.vpresion_psi)/((handles.vconst_gas_r*handles.vtemp_R)^2);
vb=(suma2*handles.vpresion_psi)/(handles.vconst_gas_r*handles.vtemp_R)
for z=-1:0.15:2.75
if z>-1
zgraf=[zgraf ValueZ(z,va,vb)];
ejezG=[ejezG z];
else
ejezG=z;
zgraf=ValueZ(z,va,vb);
end
end
handles.ejex=ejezG;
y1=zgraf;
plot(handles.ejex,y1,'LineWidth',1);grid on;
axis([min(ejezG) max(ejezG) -2 1]);
set(handles.varA,'string',va);
set(handles.varB,'string',vb);
set(handles.factam,'string',suma);
set(handles.totalyipsi,'string',suma1);
set(handles.totalyitr,'string',suma3);

95
set(handles.repm,'string',suma2);
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);

% CALCULO DE FACTOR Z METODO NEWTON RAPHSON


vb=0.002269757;
va=0.004557599;
fnz0=1;
fnz1=vb-1;
fnz2=va-3*vb^2-2*vb;
fnz3=vb^3+vb^2-va*vb;
fzrn2=3;
fzrn1=2*fnz1;
fzrn0=fnz2;
zn=0;
fz=0;
fz1=0;
zn1=0;
fzerror=0;
zFact=0;
for i=0:8
if i<1
zn=0;
fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;
fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;
zn1=zn-(fz/fz1);
fzerror=(zn1-zn)/zn1;
if abs(fzerror)<0.000001
zFact=zn;
end
table_z=[zn fz fz1 zn1 fzerror];
else
zn=table_z(i,4);
fz=zn^3+fnz1*zn^2+fnz2*zn+fnz3;
fz1=(fzrn2*zn^2)+fzrn1*zn+fzrn0;
zn1=zn-(fz/fz1);
fzerror=(zn1-zn)/zn1;
if abs(fzerror)<0.000001
zFact=zn;
end
table_z=[table_z; zn fz fz1 zn1 fzerror];
end
end
disp(table_z);
disp(zFact);
set(handles.zfact,'string',zFact);

96
try
fileID = fopen('zdatafact.dat','w');
[torows,tocols]=size(table_z);
for tc=1:torows

printf(fileID,'%12.12f;%12.12f%12.12f;%12.12f;%12.12f;\n',table_z(tc,1),table_z(tc,2),table
_z(tc,3),table_z(tc,4),table_z(tc,5));
end
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
try
fileID = fopen('zvalues.dat','w');
[torows,tocols]=size(zgraf);
for tc=1:tocols
fprintf(fileID,'%12.12f;%12.12f\n',ejezG(tc),zgraf(tc));
end
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
try
fileID = fopen('zdatavalues.dat','w');
fprintf(fileID,'%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f;%12.12f\n',suma,suma2
,suma1,suma3,va,vb,zFact);
catch errorObj
errordlg(getReport(errorObj,'extended','hyperlinks','off'),'Error');
fclose(fileID);
close();
end
fclose(fileID);
function valorZ=ValueZNRampshon(z,a,b)
valorZ=(3*(z^2))+((2*(b-1)*z)+(a-(3*(b^2)))-(2*b));
function valorZ=ValueZ(z,a,b)
valorZ=(z^3)+((b-1)*z^2)+(a-3*b^2-2*b)*z+(b^3+b^2-a*b);
function CalcularAgua(hObject, eventdata, handles)
if exist('tabla32.dat','file')==0
defaultData = [5.459 4.9669 4.391;0.30542 0.27788 0.2487;647.13 647.13 647.13;0.081
0.1874 0.2534];
dlmwrite('tabla32.dat',defaultData,'precision',12,'delimiter',';')
end
constCri=dlmread('tabla32.dat',';');
cValue=zeros(4,1);
valuesData=dlmread('values.dat',';');
if handles.temp_K >=273.16 && handles.temp_K <333.15

97
cValue(1)=constCri(1,1);
cValue(2)=constCri(2,1);
cValue(3)=constCri(3,1);
cValue(4)=constCri(4,1);
elseif handles.temp_K >=333.15 && handles.temp_K <403.15
cValue(1)=constCri(1,2);
cValue(2)=constCri(2,2);
cValue(3)=constCri(3,2);
cValue(4)=constCri(4,2);
else
cValue(1)=constCri(1,3);
cValue(2)=constCri(2,3);
cValue(3)=constCri(3,3);
cValue(4)=constCri(4,3);
end
%set(handles.temp_fc,'data',cValue);
c1=cValue(1);
c2=cValue(2);
c3=cValue(3);
c4=cValue(4);
temp_k=valuesData(2);
t=1.003-(0.01479*temp_k)+(0.00001982*(temp_k^2));
viscosidadx=exp(1)^t;
densidadx=(18.015*c1)/(16.01846*(c2^(1+(1-(temp_k/c3))*c4)));
set(handles.densidad,'string',densidadx);
set(handles.densidadA,'string',densidadx/0.062282);
set(handles.viscosidad,'string',viscosidadx);
function CalcularGas(hObject, eventdata, handles)
if exist('zdatavalues.dat','file')==0
defaultData = [0 0 0 0 0 0];
dlmwrite('zdatavalues.dat',defaultData,'precision',12,'delimiter',';')
end
zData=dlmread('zdatavalues.dat',';');
valuesData=dlmread('values.dat',';');
handles.vtemp_F=valuesData(1);
handles.vtemp_K=valuesData(2);
handles.vtemp_R=valuesData(3);
handles.vpresion_psi=valuesData(4);
handles.vpresion_pa=valuesData(5);
handles.vapi=valuesData(6);
handles.vtemp_yacimiento=valuesData(7);
handles.vconst_gas_r=valuesData(8);
handles.vconst_gas_f=valuesData(9);
handles.vconst_gas_k=valuesData(10);
handles.vgrav_espec=valuesData(11);
handles.vvisco=valuesData(12);
handles.factam=zData(1);
handles.repm=zData(2);
handles.tyipsi=zData(3);
handles.tyitr=zData(4);

98
handles.va=zData(5);
handles.vb=zData(6);
handles.zfact=zData(7);
if exist('tperiod.dat','file')==0
elementoNombre={'H';'N';'O';'C'};
elementoValor=[1;14;16;12];
fileID = fopen('tperiod.dat','w');
for index = 1:numel(elementoNombre)
try
nombre=elementoNombre{index};
valor=elementoValor(index);
fprintf(fileID,'%s;%f\n',nombre,valor);
catch
errordlg('Ocurrio un error al intentar cargar los datos requeridos.','Valor
incorrecto','modal')
fclose(fileID);
close();
end
end
fclose(fileID);
end
fileID = fopen('tperiod.dat','r');
T = textscan(fileID,'%s %f','delimiter',';','EmptyValue',0);
fclose(fileID);
Data=get(handles.tabla_periodica,'data');
ce=T{2};
for index = 1:4
Data{index,1}= T{1}{index} ;
Data(index,2)=num2cell(ce(index));
end
set(handles.tabla_periodica,'data',Data);
handles.H=ce(1);
handles.N=ce(2);
handles.O=ce(3);
handles.C=ce(4);
H=ce(1);
N=ce(2);
O=ce(3);
C=ce(4);
bTrue=false;
fileID = fopen('saved.dat','r');
try
TVals = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f %s
%d','delimiter',';','EmptyValue',0);
catch
try
delete('saved.dat');
catch
end
close(0);

99
return
end
fclose(fileID);
handles.TVals=TVals;
tNames = TVals{handles.colgdc_nombre};
tAbrev = TVals{handles.colgdc_abrev};
tFormula = TVals{handles.colgdc_formula};
tyi = TVals{handles.colgdc_fractM};
tfa = TVals{handles.colgdc_factorA};
tpre_kpa = TVals{handles.colgdc_PresionKpa};
tpre_psi = TVals{handles.colgdc_PresionPsi};
ttempc_k = TVals{handles.colgdc_TempCritica};
tc1 = TVals{handles.colgdc_cuno};
tc2 = TVals{handles.colgdc_cdos};
tc3 = TVals{handles.colgdc_ctres};
tc4 = TVals{handles.colgdc_ccuatro};
tc5 = TVals{handles.colgdc_ccinco};
tprevap_pa = TVals{handles.colgdc_PresVPa};
tprevap_psi = TVals{handles.colgdc_PresVPsi};
tSalida = TVals{handles.colgdc_Salida};
tEstados = TVals{handles.colgdc_Estado};

syipsi=0;
syitr=0;

for index = 1:numel(tNames)


nombre=tNames{index};
abrev=tAbrev{index};
formula=tFormula{index};
if tEstados(index)==0 || strcmpi(strtrim(tSalida{index}),'LIQUIDO')==true
M=0;
yi=0;
Myi=0;
fa=0;
pre_kpa=0;
pre_psi=0;
tempc_k=0;
tempc_r=0;
tempr_r=0;
yiR=0;
c1=0;
c2=0;
c3=0;
c4=0;
c5=0;
prevap_pa=0;
prevap_psi=0;
estado='';
else

100
try
M=eval(formula);
catch
M=0;
end
yi=tyi(index);
Myi=M*yi;
fa=tfa(index);
pre_kpa=tpre_kpa(index);
pre_psi=tpre_psi(index);
tempc_k=ttempc_k(index);
tempc_r=(9/5)*tempc_k;
tempr_r=handles.vtemp_R/tempc_r;
yiR=yi*tempr_r;
c1=tc1(index);
c2=tc2(index);
c3=tc3(index);
c4=tc4(index);
c5=tc5(index);
prevap_pa=tprevap_pa(index);
prevap_psi=tprevap_psi(index);
estado=tSalida{index};
end
syipsi=syipsi+Myi;
syitr=syitr+yiR;
if index==1
gData={nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)
num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)
num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)
num2str(prevap_pa) num2str(prevap_psi) num2str(estado)};
else
gData=[gData;{nombre abrev formula num2str(M) num2str(yi) num2str(Myi) num2str(fa)
num2str(pre_kpa) num2str(pre_psi) num2str(tempc_k) num2str(tempc_r) num2str(tempr_r)
num2str(yiR) num2str(c1) num2str(c2) num2str(c3) num2str(c4) num2str(c5)
num2str(prevap_pa) num2str(prevap_psi) num2str(estado)}];
end
end
try
set(handles.GrillaDataG,'data',gData);
catch
end
val_factorn=0;
if handles.temprm<=1.5
val_factorn=(0.00034*(syitr^0.94));
else
val_factorn=(0.0001778*(((4.58*syitr)-1.67)^0.625));
end
set(handles.factorn,'string',val_factorn);
val_factz=handles.zfact;
set(handles.temprm,'string',syitr);

101
set(handles.pesom,'string',syipsi);
set(handles.presioncmpsi,'string',handles.tyipsi);
set(handles.tempsr,'string',handles.tyitr);
val_viscom=0.00046*(val_factorn*(syipsi^0.5))*(handles.tyipsi^(2/3))/(handles.tyitr^(1/6));
set(handles.viscom,'string',val_viscom);
set(handles.viscompas,'string',val_viscom*0.001);
val_densg=(handles.vpresion_psi*syipsi)/(val_factz*handles.vconst_gas_r*handles.vtemp_R
);
set(handles.densg,'string',val_densg);
set(handles.densgmtres,'string',val_densg/(2.2*0.028831));
set(handles.factz,'string',val_factz);
valores=zeros(1,9);
valores(1,1)=str2num(get(handles.temprm,'string'));
valores(1,2)=str2num(get(handles.pesom,'string'));
valores(1,3)=str2num(get(handles.presioncmpsi,'string'));
valores(1,4)=str2num(get(handles.tempsr,'string'));
valores(1,5)=str2num(get(handles.viscom,'string'));
valores(1,6)=str2num(get(handles.viscompas,'string'));
valores(1,7)=str2num(get(handles.densg,'string'));
valores(1,8)=str2num(get(handles.densgmtres,'string'));
valores(1,9)=str2num(get(handles.factz,'string'));
dlmwrite('propgas.dat',valores,'precision',12,'delimiter',';')
function viscocidad_Callback(hObject, eventdata, handles)
function viscocidad_CreateFcn(hObject, ~, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function diametro_separdor_Callback(hObject, eventdata, handles)
function diametro_separdor_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function lcc_Callback(hObject, eventdata, handles)
function lcc_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function lcs_Callback(hObject, eventdata, handles)
function lcs_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function hvert_Callback(hObject, eventdata, handles)
function hvert_CreateFcn(hObject, eventdata, handles)
.

102
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setagua_Callback(hObject, eventdata, handles)
.function setagua_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setcrudo_Callback(hObject, eventdata, handles)
.function setcrudo_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function setgpres_Callback(hObject, eventdata, handles)
.function setgpres_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function denc_Callback(hObject, eventdata, handles)
function denc_CreateFcn(hObject, eventdata, handles)
.if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function CCaudal_Callback(hObject, eventdata, handles)
function CCaudal_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cBSW_Callback(hObject, eventdata, handles)
function cBSW_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function ccrudo_Callback(hObject, eventdata, handles)
function ccrudo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cagua_Callback(hObject, eventdata, handles)
function cagua_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))

103
set(hObject,'BackgroundColor','white');
end
function cgas_Callback(hObject, eventdata, handles)
function cgas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function ccaudal_Callback(hObject, eventdata, handles)
function ccaudal_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cbsw_Callback(hObject, eventdata, handles)
function cbsw_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit52_Callback(hObject, eventdata, handles)
function edit52_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit53_Callback(hObject, eventdata, handles)

function edit53_CreateFcn(hObject, eventdata, handles)


if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit54_Callback(hObject, eventdata, handles)
function edit54_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function btnActsys_Callback(hObject, eventdata, handles)
handles.aux_simtime=str2double(get(handles.simtime,'string'));
find_system('Name',handles.model_name);
%INGRESO DEL TIEMPO DE SIMULACION
set_param(handles.model_name,'StopTime',(get(handles.simtime,'string')));
ccrudoval=(str2double(get(handles.ccrudo,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Crudo Entrada'),'Value',num2str(ccrudoval));
cgasval=(str2double(get(handles.cgas,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Gas Entrada'),'Value',num2str(cgasval));
caguaval=(str2double(get(handles.cagua,'String'))*0.15899)/86400;
set_param(strcat(handles.model_name,'/Agua Entrada'),'Value',num2str(caguaval));

104
set_param(strcat(handles.model_name,'/h chic'),'Value',(get(handles.hvert,'String')));
set_param(strcat(handles.model_name,'/diametro'),'Value',(get(handles.diametro_separdor,'St
ring')));
set_param(strcat(handles.model_name,'/Ccl'),'Value',num2str((get(handles.lcc,'String'))));
set_param(strcat(handles.model_name,'/Css_cs'),'Value',(get(handles.lcs,'String')));
set_param(strcat(handles.model_name,'/densidad
agua'),'Value',(get(handles.densidadA,'String')));
set_param(strcat(handles.model_name,'/densidad crudo'),'Value',(get(handles.denc,'String')));
set_param(strcat(handles.model_name,'/Cv gas'),'Value',(get(handles.cvgas,'String')));
set_param(strcat(handles.model_name,'/CvCrudo'),'Value',(get(handles.cvcrudo,'String')));
set_param(strcat(handles.model_name,'/Cv agua'),'Value',(get(handles.cvagua,'String')));
set_param(strcat(handles.model_name,'/crudo/set
oil'),'Value',(get(handles.setcrudo,'String')));
set_param(strcat(handles.model_name,'/agua/set
water'),'Value',(get(handles.setagua,'String')));
vb=num2str((get(handles.setgpres,'String')));
set_param(strcat(handles.model_name,'/set Presion G'),'Value',vb);
set_param(strcat(handles.model_name,'/MW gas'),'Value',(get(handles.pesom,'String')));
set_param(strcat(handles.model_name,'/temperatura'),'Value',(get(handles.temp_F,'String')));
function simtime_Callback(hObject, eventdata, handles)
function simtime_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvagua_Callback(hObject, eventdata, handles)
function cvagua_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvcrudo_Callback(hObject, eventdata, handles)
function cvcrudo_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function cvgas_Callback(hObject, eventdata, handles)
function cvgas_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function densidadA_Callback(hObject, eventdata, handles)
function densidadA_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

105
Anexo G. Propiedades del separador.

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

2000BFPD @ 15% 2000BFPD @ 30%


Presin
oil gas oil gas oil gas oil gas
PSI MCD MCD BPD MCFD MCD MCD BPD MCFD
0 0.0016 0.0015 869.5 4.577 0.0013 0.0013 706.5 3.967
20 0.0018 0.0013 978.2 3.967 0.0015 0.0011 815.1 3.356
40 0.0020 0.00110 1086.9 3.356 0.0017 0.00091 923.8 2.777
60 0.0022 0.00090 1195.5 2.746 0.0018 0.00078 978.2 2.380
80 0.0023 0.00080 1249.9 2.441 0.0019 0.00066 1032.5 2.014
100 0.0025 0.00070 1358.6 2.136 0.002 0.00056 1086.9 1.709
120 0.0025 0.00060 1358.6 1.831 0.0021 0.0005 1141.2 1.526
150 0.0027 0.00050 1467.3 1.526 0.0022 0.00037 1195.5 1.129
180 0.0028 0.00040 1521.6 1.220 0.0023 0.00029 1249.9 0.885
200 0.0028 0.00030 1521.6 0.915 0.0023 0.00025 1249.9 0.763
250 0.0029 0.00020 1575.9 0.610 0.0024 0.00016 1304.2 0.488
300 0.0030 0.00010 1630.3 0.305 0.0025 0.00011 1358.6 0.336
350 0.0030 0.00009 1630.3 0.275 0.0025 0.00007 1358.6 0.214
400 0.0030 0.00006 1630.3 0.183 0.0025 0.00005 1358.6 0.153
500 0.0031 0.00003 1684.6 0.092 0.0026 0.00002 1412.9 0.061

107
2000BFPD 50% 2000BFPD 80%
Presin
oil gas oil gas oil gas oil gas
PSI MCD MCD BPD MCFD MCD MCD BPD MCFD
0 0.0009 0.00091 505.4 2.777 0.00037 0.00036 201.1 1.098
20 0.0011 0.00077 597.8 2.349 0.00043 0.00031 233.7 0.946
40 0.0012 0.00065 652.1 1.983 0.00047 0.00026 255.4 0.793
60 0.0013 0.00056 706.5 1.709 0.00051 0.00022 277.1 0.671
80 0.0014 0.00047 760.8 1.434 0.00055 0.00019 298.9 0.580
100 0.0014 0.0004 760.8 1.220 0.00058 0.00016 315.2 0.488
120 0.0015 0.00034 815.1 1.037 0.0006 0.00014 326.1 0.427
150 0.0016 0.00027 869.5 0.824 0.00063 0.00011 342.4 0.336
180 0.0016 0.0002 869.5 0.610 0.00065 8.3E-05 353.2 0.253
200 0.0017 0.00018 923.8 0.549 0.00067 0.00007 364.1 0.214
250 0.0017 0.00012 923.8 0.366 0.00069 4.7E-05 375.0 0.143
300 0.0018 7.8E-05 978.2 0.238 0.0007 3.1E-05 380.4 0.095
350 0.0018 5.2E-05 978.2 0.159 0.00072 2.1E-05 391.3 0.064
400 0.0018 3.4E-05 978.2 0.104 0.00072 1.3E-05 391.3 0.040
500 0.0018 1.5E-05 978.2 0.046 0.00073 6E-06 396.7 0.018

108
BIOGRAFIA DEL AUTOR

JUAN CARLOS PROAO CARDENAS

Naci en la ciudad de Ambato el 23 de diciembre de 1981. Donde curs sus estudios


primarios en la escuela fiscal Mxico y porteriormente la secundaria en el colegio tcnico
Atahualpa, obteniendo el ttulo de bachiller tcnico en Mecnica Industrial en el ao 1999. En
ese mismo ao migra a la ciudad de Riobamba para continuar con sus estudios en la Escuela
Superior Politcnica de Chimborazo logrando obtener el grado de Ingeniero Mecnico en el
ao 2005.

Se presenta al concurso para el cargo de asistente de ctedra del rea de materiales llegando a
ser el mejor puntuado y presta su colaboracin el departamento de metalrgia bajo la
direccin del Ing. Msc. Mario Edmundo Pstor Rodas.

Donde permanece por el lapso de un ao, seguidamente se vincula a la industria de la


extraccin de hidrocarburos en la empresa Perenco Ecuador Limited en el departamento de
proyectos y el departamento de produccin hasta abril el ao 2009.

En el ao 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 produccin hasta la fecha.

Contacto: juan.proano@andespetro.com / jc_proao@yahoo.es

109

Вам также может понравиться