Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Termodinámica
TAREA
Calculo de fugacidad para mezclas usando el método de Newton
CALCULO DEL EQUILIBRIO LIQUIDO-VAPOR A PARTIR DE LA ECUACION DE ESTADO DE PENG-ROBINSON Y
SOAVE-REDLICH-KWONG , UTILIZANDO REGLAS DE MEZCLADO CLASICAS PARA UNA MEZCLA BINARIA CO2 + N-
NONAN
PROFESOR:
DR. LUIS ALEJANDRO GALICIA LUNA
ALUMNO:
BORIS GUZMAN MARTINEZ
SOAVE-REDLINCH-KWONG
𝑅𝑇 𝑎(𝑇)
𝑝= −
𝑣 − 𝑏 𝑣(𝑣 + 𝑏)
Donde:
𝑅2 𝑇𝑐𝑖2
𝑎𝑐𝑖 = 0.42747
𝑝𝑐𝑖
2
𝛼𝑖 (𝑇) = (1 + 𝑚𝑖 (1 − 𝑇𝑟𝑖 1/2 ))
𝑇
𝑇𝑟𝑖 =
𝑇𝑐𝑖
𝑏 = ∑ 𝑥𝑖 𝑏𝑖
𝑖
Donde la raíz más grande corresponde a la fase gaseosa y la raíz más pequeña ala fase liquida.
La raíz más grande corresponde a la fase gaseosa y la raíz más pequeña ala fase liquida.
Para SRK:
𝛿1 = 1
𝛿2 = 0
Haciendo los cálculos pertinentes la ecuación para el cálculo de fugacidad de mezclas para SRK es :
𝒃𝒊 𝑨 𝒂𝟎.𝟓 𝒃 𝑩
̂𝒊 =
𝐥𝐧 𝝓 (𝒁 − 𝟏) − 𝐥𝐧(𝒁 − 𝑩) − (𝟐 𝒊
− 𝒊 ) 𝐥𝐧 (𝟏 − ) Cálculo coeficiente de fugacidad para
𝒃 𝑩 𝒂𝟎.𝟓 𝒃 𝒁
Donde:
La fugacidad del líquido es la que se calcula con el factor de compresibilidad del líquido y
por lo tanto la fugacidad de fase gaseosa será calculada con la fugacidad del estado
gaseoso.
PENG ROBINSON
𝑅𝑇 𝑎(𝑇)
𝑃= −
𝑣 − 𝑏 𝑣(𝑣 + 𝑏) + 𝑏(𝑣 − 𝑏)
Donde:
𝑅2 𝑇𝑐 2
𝑎(𝑇𝑐 ) = 0.45724
𝑃𝑐
𝑅𝑇𝑐
𝑏(𝑇𝑐 ) = 0.07780
𝑃𝑐
2
𝛼(𝑇𝑟 , 𝑤) = (1 + 𝑘(1 − 𝑇𝑟 1/2 ))
𝑇
𝑇𝑟 =
𝑇𝑐
𝑎 = ∑ ∑ 𝑥𝑖 𝑥𝑗 𝑎𝑖𝑗
𝑖 𝑗
𝑏 = ∑ 𝑥𝑖 𝑏𝑖
𝑖
La raíz más grande corresponde a la fase gaseosa y la raíz más pequeña ala fase liquida.
Para Peng-Robinson:
𝛿1 = 1 + √2
𝛿2 = 1 − √2
Haciendo los cálculos pertinentes la ecuación para el cálculo de fugacidad de mezclas para Peng-
Robison es:
𝒃𝒊 𝑨 ∑𝒊 𝒙𝒊 𝒂𝒊𝒋 𝒃𝒊 𝒁 + 𝟐. 𝟒𝟏𝟒𝑩
̂𝒊 =
𝐥𝐧 𝝓 (𝒁 − 𝟏) − 𝐥𝐧(𝒁 − 𝑩) − (𝟐 − ) 𝐥𝐧 ( )
𝒃 𝟐√𝟐𝑩 𝒂 𝒃 𝒁 − 𝟎. 𝟒𝟏𝟓𝑩
Cálculo coeficiente de
fugacidad para Peng-Robinson
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
Donde:
La fugacidad del líquido es la que se calcula con el factor de compresibilidad del líquido y
por lo tanto la fugacidad de fase gaseosa será calculada con la fugacidad del estado
gaseoso.
2 ∗ 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷𝐵12
2 + 𝐷𝐴𝑁𝑛2
𝐵𝑀𝑣𝑎𝑝 2 ∗ 𝐷𝐴1 ∗ 𝐷𝐵1 + 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷2 𝐵1 𝑉𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1
𝐷𝐶ℎ = − 2
log ( )
𝐸𝑀𝑣𝑎𝑝 𝐵𝑀𝑣𝑎𝑝 𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2
( )
2 ∗ 𝐷𝐴1 ∗ 𝐷𝐵1 + 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷2 𝐵1
𝐷2 ( 𝐵𝑀𝑣𝑎𝑝
−
𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2
𝐷22 𝐷12 𝐷1
𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷𝐵12 ( −
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2 )2 (𝑣𝑉 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 )2 𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1
+ +
𝐵𝑀𝑣𝑎𝑝 (𝐷2 − 𝐷1 )𝑅𝑇
𝐷𝐵12
𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 + 2 ∗ 𝐷𝐵1 + 𝐷2 𝐵1
+
𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝
𝐷𝐴1 𝑅𝑇 𝐷𝐵1 ∗ 𝑅𝑇
𝐷𝑁1 𝑃 = − + +
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 )(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2 ) 𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 )2
𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷𝐵1 ((𝐷2 + 𝐷1 )𝑣𝑣 + 2 ∗ 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 ∗ 𝐷2
+
(𝑉𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 )2 (𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2 )2
𝐷𝑁1 𝑃 ∗ 𝑃 ∗ 𝐷𝑁2 𝑃 ∗ 𝑃
𝐷𝑙𝑛𝐹𝑖 𝑌2 = + 𝐷𝐶𝐻 + 1
𝐷𝑝𝑉 ∗ 𝑅𝑇
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
𝐺 ∗𝑇 ∗𝑌 2 ∗ 𝐺 ∗ 𝑇21 ∗ 𝑌2 𝐺 ∗𝑇 ∗𝑌
𝐺21 (𝑇21 − 𝐺21 ∗ 𝑌21+ 𝑌2 ) 𝐺21 ∗ 𝑌1 (𝑇21 − 𝐺 21∗ 𝑌 + ) 𝐺12 (𝑇12 𝑌12+ 𝐺 12 ∗ 𝑌1 )
21 2 1 21 2 𝑌 1 2 12 1
𝐷2 𝐴𝑒𝑥𝑐1 = − +
𝐺21 ∗ 𝑌2 + 𝑌1 𝐺21 ∗ 𝑌2 + 𝑌1 𝑌2 + 𝐺12 ∗ 𝑌1
2 ∗ 𝐺12 ∗ 𝑇12 ∗ 𝑌1
𝐺12 ∗ 𝑌2 (𝑇12 − 𝑌 +
2 𝐺12 ∗ 𝑌1 )
−
𝑌2 + 𝐺12 ∗ 𝑌1
𝐷2 𝐴𝑒𝑥𝑐1
𝐷2 𝐷1 =
𝐶𝑣𝑎𝑝 𝑅𝑇
2 ∗ 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷𝐵12
2 + 𝐷𝐴𝑁𝑁2
𝐵𝑀𝑣𝑎𝑝 2 ∗ 𝐷𝐴1 ∗ 𝐷𝐵1 + 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷2 𝐵1 𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1
𝐷𝐶𝐻 = − 2
log ( )
𝐵𝑀𝑣𝑎𝑝 𝐵𝑀𝑣𝑎𝑝 𝑣𝑣 + 𝐵𝑀 𝑣𝑎𝑝 ∗ 𝐷2
( )
2 ∗ 𝐷𝐴1 ∗ 𝐷𝐵1 + 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷2 𝐵1 2 ∗ 𝐴𝑀𝑣𝑎𝑝 ∗ 𝐵𝑀12
𝐷2 ( −
𝐵𝑀𝑣𝑎𝑝 2
𝐵𝑀𝑣𝑎𝑝
−
𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2
𝐷22 𝐷12 𝐷1
𝐴𝑀𝑣𝑎𝑝 ∗ 𝐷𝐵12 ( 2 − )
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2 ) (𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 )2 𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1
+ +
𝐵𝑀𝑣𝑎𝑝 (𝐷2 − 𝐷1 )𝑅 𝑇
𝐷𝐵12
𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 + 2 ∗ 𝐵𝑀𝑣𝑎𝑝 + 𝐷1 𝐷2
+
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝
𝐷𝐴1 𝑅𝑇 𝐷𝐵1 𝑅 𝑇
𝐷𝑁1 𝑃 = − + +
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷1 )(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 ∗ 𝐷2 ) 𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 )2
𝐷𝑁1 𝑃 ∗ 𝐷𝑁2 𝑃
𝐷𝐿𝑁𝐹𝐼𝑌2 = + 𝐷𝐶𝐻 + 1
𝐷𝑃𝑉 ∗ 𝑅 𝑇
𝐺 𝑇 𝑌 2 𝐺 𝑇21 𝑌2 𝐺12 𝑇12 𝑌1
𝐺21 (𝑇21 − 𝐺 21𝑌 21+ 𝑌2 ) 𝐺21 𝑌1 (𝑇21 − 𝐺 21𝑌 +
21 2 1 21 2 𝑌1 ) 𝐺21 (𝑇12 − 𝑌2 + 𝐺12 𝑌1 )
𝐷2 𝐴𝐸𝑋𝐶1 = − +
𝐺21 𝑌2 + 𝑌1 𝐺21 𝑌2 + 𝑌1 𝑌2 + 𝐺12 𝑌1
2 𝐺12 𝑇12 𝑌1
𝐺12 𝑌2 (𝑇12 − 𝑌 + 𝐺 𝑌 )
2 12 1
−
𝑌2 + 𝐺12 𝑌1
𝐷2 𝐴𝐸𝑋𝐶1
𝐷2 𝐷1 =
𝐶𝑣𝑎𝑝 𝑅𝑇
𝐷𝐴1 𝑅𝑇 𝐷𝐵1 𝑅𝑇
𝐷𝑁1𝑃 = − + +
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷1 )(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷2 ) 𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 )2
𝐴𝑀𝑣𝑎𝑝 𝐷𝐵1 ((𝐷2 + 𝐷1 )𝑣𝑣 + 2 𝐵𝑀𝑣𝑎𝑝 𝐷1 𝐷2 )
+ 𝐷𝑃𝑉
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷1 )2 (𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷2)2
𝐴𝑀𝑣𝑎𝑝 (2 𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 (𝐷2 + 𝐷1 )) 𝑅𝑇
= −
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷1 )2 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 𝐷2 )2 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 )2
𝐷𝑁1 𝑃 𝐷𝑁2 𝑃
𝐷𝐿𝑁𝐹𝐼𝑌2 = + 𝐷𝐶𝐻
𝐷𝑃 𝑉 𝑅𝑇
𝐷𝐴1 𝑅𝑇 𝐷𝐵1 𝑅𝑇
𝐷𝑁𝑃 = − + +
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷1 )(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷2 ) 𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 (𝑣𝑣 − 𝐵𝑀𝑣𝑎𝑝 )2
𝐴𝑀𝑣𝑎𝑝 𝐷𝐵1 ((𝐷2 + 𝐷1 )𝑣𝑣 + 2 𝐵𝑀𝑣𝑎𝑝 𝐷1 𝐷2
+
(𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷1 )2 (𝑣𝑣 + 𝐵𝑀𝑣𝑎𝑝 𝐷2 )2
𝐷𝑁𝑃 1
𝐿𝑁𝐹𝐼𝑃𝑉 = − −
𝐷𝑃𝑉 𝑅 𝑇 𝑃
MÉTODO DE CARDANO
𝐴𝑋 3 + 𝐵𝑋 2 + 𝐶𝑋 + 𝐷 = 0
Se puede convertir en la forma normal dividiendo por 𝐴 y acomodando términos, con lo que
queda:
𝑋 3 + 𝛼𝑋 2 + 𝛽𝑋 + 𝛾 = 0
Ahora, realizando el cambio de variable de Tartaglia, con la finalidad de reducir la ecuación cúbica
a una ecuación cúbica incompleta, para que pueda resolverse mediante una adaptación de la
ecuación de Dal Ferro, que básicamente resuelve cualquier ecuación cúbica incompleta mediante
la solución del sistema cuadrático conjugado:
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
𝛼
𝑋= 𝑍−
3
𝑍 3 + 𝑝𝑍 + 𝑞 = 0
𝛼2
𝑝=𝛽−
3
2𝛼 3 𝛼𝛽
𝑞=( )−( )+𝛾
27 3
Y fijando el criterio 𝐷 que se considera de la siguiente forma, con la finalidad de que las raíces sean
reales dado el significado físico que se busca con las soluciones de la ecuación (encontrar en factor
de compresibilidad y volumen menor para la fase líquida y el mayor para la fase vapor), de esta
manera el cambio de Cardano – Dal Ferro permite obtener las raíces reales únicamente:
𝑞2 𝑝3
𝐷 = ( )+( )
4 27
Las cuales se buscan las raíces reales con los siguientes criterios:
3 𝑞 3 𝑞
𝑍 = √{− + √𝐷} + √{− − √𝐷}
2 2
Si 𝐷 = 0, entonces se tienen 3 raíces, 2 iguales y una de multiplicidad 2:
3 𝑞 𝛼
𝑍1 = −2√ −
2 3
3 𝑞 𝛼
𝑍2 = 𝑍3 = √ −
2 3
Si 𝐷 < 0, entonces se tienen res raíces reales diferentes:
𝑝 𝜃 𝛼
𝑍1 = 2√− 𝑐𝑜𝑠 ( ) −
3 3 3
𝑝 2𝜋 + 𝜃 𝛼
𝑍2 = 2√− 𝑐𝑜𝑠 ( )−
3 3 3
𝑝 4𝜋 + 𝜃 𝛼
𝑍3 = 2√− 𝑐𝑜𝑠 ( )−
3 3 3
Y cabe aclarar que el argumento para obtener las raíces reales debe estar expresado en radianes,
de tal modo que:
𝑞 27
𝜃 = cos −1 {− 2 √− 𝑝3 }
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
CÓDIGOS EN FORTRAN 95 PARA EL CÁLCULO DEL EQUILIBRIO L-V PARA MEZCLAS USANDO
ECUACIONES DE ESTADOS CÚBICAS
En la Tabla 1 se muestra los códigos en FORTRAN 95 para el cálculo del equilibrio L-V para mezclas.
Este código es para cualquier compuesto a diferentes condiciones de temperatura utilizando la
ecuación de SRK y PENG-ROBINSON.
El método numérico que se utilizó para el para la resolución de las ecuaciones de tercer grado fue
el de Cardano.
open(unit=12,file='datos_arenas.txt')
do i=1,11
read(12,*)xa(i),ya(i),pa(i)
enddo
close(12)
k12=0.4571770
!Condiciones de equilibrio
t=373.28
r=83.144
k12=0.57177
prered1=p/precrit1
temred1=t/temcrit1
temred2=t/temcrit2
prered2=p/precrit2
if(opcionn1==1)then
d1=1+((2)**0.5)
d2=1-((2)**0.5)
m1=(0.374640+(1.5442260*fa1)-(0.269920*(fa1**2)))
alf1=(1+(m1*(1-(temred1**0.50))))**2
a1=(((0.457240)*(r**2)*(temcrit1**2)*(alf1))/(precrit1))
b1=(0.07780*((r*temcrit1)/precrit1))
m2=(0.374640+(1.542260*fa2)-(0.269920*(fa2**2)))
alf2=(1+(m2*(1-(temred2**0.5d0))))**2
a2=(((0.457240)*(r**2)*(temcrit2**2)*(alf2))/(precrit2))
b2=(0.07780*((r*temcrit2)/precrit2))
else if(opcionn1==2)then
d1=1
d2=0
m1=(0.4800+(1.5740*fa1)-(0.1760*(fa1**2)))
alf1=(1+(m1*(1-((temred1)**0.50))))**2
a1=0.42748*((((r**2)*(temcrit1**2)))/(precrit1))*alf1
b1=(0.086640*((r*temcrit1)/precrit1))
m2=(0.4800+(1.5740*fa2)-(0.1760*(fa2**2)))
alf2=(1+(m2*(1-(temred2**0.50))))**2
a2=0.427480*((((r**2)*(temcrit2**2)))/(precrit2))*alf2
b2=(0.086640*((r*temcrit2)/precrit2))
endif
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
do i=1,11
x1=xa(i)
x2=1-x1
y1=ya(i)
y2=1-y1
p=pa(i)
k1=y1/x1
k2=(1-y1)/(1-x1)
do j=1,10000
quliq=b1*x1+b2*x2
rm3=0.6891
celiq=(1/(d1-d2))*log((1+d1)/(1+d2))
aexculiq=((x1*(x2*g21*t21)/(x1+(x2*g21)))+((x2*x1*g12*t12)/(x2+(x1*g12))))
deliq=0.
bemliq=quliq/(1-deliq)
ameliq=y1*y1*a1+2*y1*y2*(a1*a2)**0.5+y2*y2*a2
rm2=0.3518
qva=b1*y1+b2*y2
cva=(1/(d1-d2))*log((1+d1)/(1+d2))
taexcva=(((y1*(y2*g21*t21))/(y1+(y2*g21)))+((y2*(y1*g12*t12))/(y2+(y1*g12))))
rm1=-0.58
dva=0.
bmeva=qva/(1-dva)
ameva=y1*y1*a1+2*y1*y2*(a1*a2)**0.5+y2*y2*a2
call volliq(ameliq,bemliq,p,t,r,vl,zl,x1,rm1,opcionn1)
call volvap(ameva,bmeva,p,t,r,vv,zv,x1,rm2,opcionn1)
call coeffugl(a1,b1,a2,b2,ameliq,bemliq,b12,deliq,quliq,celiq,g12,g21,t12,t21,&
vl,x1,x2,r,t,p,k12,lognnatfi1liq,lognatfi2liq,db1liq,db2liq,da1liq,da2liq,rm1,rm2,rm3,opcionn1,opcionn2)
call coeffugv(a1,b1,a2,b2,ameva,bmeva,b12,dva,qva,cva,g12,g21,t12,t21,vv,&
y1,y2,r,t,p,k12,lognatfi1va,lognatfi2va,da1,da2,db1,db2,dq1,dq2,dd1,dd2,opcionn1,opcionn2)
call jacobiana(k1,k2,t,p,r,vv,vl,da1,da2,db1,db2,db1liq,db2liq,da1liq,da2liq,&
dq1,dq2,dd1,dd2,qva,cva,dva,b12,g12,g21,t12,t21,&
ameva,bmeva,ameliq,bemliq,y1,y2,x1,x2,a1,a2,k12,b1,b2,lognatfi1liq,lognatfi2liq,lognatfi1va,&
lognatfi2va,dg1dlognatk1,dg1dlognatk2,dg1p,dg2dlognatk1,dg2dlognatk2,dg2p,aqmg,g1,g2,g3,v1,v2,v3,c1,opci
onn1,d1,d2)
call inversa(dg1dlognatk1,dg1dlognatk2,dg1p,dg2dlognatk1,dg2dlognatk2,dg2p,y1,y2,aqmg,g1,g2,g3,&
v1,v2,v3,k1c,k2c,pca,k1c1,k2c1,pca1,c1,c2)
solucion1(1,1)=k1c1
solucion1(2,1)=k2c1
solucion1(3,1)=pca1
solucion(1,1)=k1c
solucion(2,1)=k2c
k1=exp(k1c)
k2=exp(k2c)
p=exp(pca)
y1=k1*x1
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
y1=y1/(y1+y2)
y2=1-y1
pn=p*(y1+y2)
solucion(3,1)=pca
er1=((k1c**2) + (k2c**2) + (pca**2))**0.5
er2=((k1c1**2) + (k2c1**2) + (pca1**2))**0.5
er=0.00001
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine volliq(ameliq,bmliq,p,t,r,vl,zl,x1,cg,opcionn1)
real ameliq,bemliq,a,b,p,r,t,zc,w,y,x,v,f,d,vl,zi,x1,cg,opcion1
a=((ameliq*p)/((r**2)*(t**2)))
b=((bemliq*p)/(r*t))
zi=0.85
cg=-0.614*x1*x1
if (opcionn1==1)then
w=b-1
x=a-(3*(b**2))-2*b
y=(b**3)+(b**2)-(a*b)
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
d=1
do i=1,10000
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
zc=zi-(f/df)
d=abs(zc-zi)
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
if(d<=0.00001)then
goto 15
else
zi=zc
endif
end do
else if(opcionn1==2)then
w=-1
x=a-(b**2)-b
y=-(a*b)
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
d=1
do i=1,10000
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
zc=zi-(f/df)
d=abs(zc-zi)
if(d<=0.00001)then
goto 25
else
zi=zc
endif
end do
endif
15 continue
25 continue
vl=(zi*r*t)/p
zl=zi
end subroutine
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine volvap(ameva,bmeva,p,t,r,vv,zv,x1,cg,opcionn1)
real ameva,bmeva,a,b,p,r,t,zc,w,y,x,v,f,d,vl,zi,x1,cg,opcion1
a=((ameva*p)/((r**2)*(t**2)))
b=((bmeva*p)/(r*t))
zi=0.55
cg=0.452*x1
if (opcionn1==1)then
w=b-1
x=a-(3*(b**2))-2*b
y=(b**3)+(b**2)-a*b
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
d=1
do while(d>1.0e-5)
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
zc=zi-(f/df)
d=abs(zc-zi)
zi=zc
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
end do
else if(opcionn==1)then
w=-1
x=a-(b**2)-b
y=-(a*b)
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
d=1
do while(d>1.0e-5)
f= (zi**3)+(w*(zi**2))+(x*zi)+(y)
df= (3*zi**2)+(2*w*zi)+(x)
zc=zi-(f/df)
d=abs(zc-zi)
zi=zc
end do
endif
vv=(zi*r*t)/p
zv=zi
end subroutine
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine coeffugl(a1,b1,a2,b2,ameliq,bemliq,b12,deliq,quliq,celiq,g12,g21,t12,t21,vl,&
x1,x2,r,t,p,k12,lognnatfi1liq,lognatfi2liq,db1liq,db2liq,da1liq,da2liq,rm1,rm2,cg,opcionn1,opcionn2)
real a1,a2,b1,b2,a,b,r,t,ameliq,bemliq,d1,d2,z1,z2,k12,x1,x2,lognatfi1liq,lognatfi2liq,da1,da2,db1,db2
real p1,p2,p3,p4,g12,g21,t12,t21,daexc1,daexc2,dd1,dd2,dq1,dq2
real b12,celiq,dliq,qliq,opcion2,z,opcion1,mb,ma
cg=rm1+rm2+.58991
if (opcionn2==1)then
daexc1=((x1*(0-((x2*g21*t21)/(x1+(x2*g21)))))/(x1+(x2*g21))+&
(x2*g12*(t12-((x1*g12*t12)/(x2+(x1*g12)))))/(x2+(x1*g12))+&
(x2*g21*t21)/(x1+(x2*g21)))*(r*t)
daexc2=((x2*(0-((x1*g12*t12)/(x2+(x1*g12)))))/(x2+(x1*g12))+&
(x1*g21*(t21-((x2*g21*t21)/(x1+(x2*g21)))))/(x1+(x2*g21))+&
(x1*g12*t12)/((x2)+(x1*g12)))*(r*t)
dq1=(2*(b1-(a1/(r*t)))*x1)+(2*x2*b12)
dq2=(2*(b2-(a2/(r*t)))*x2)+(2*x1*b12)
dd1=(a1/(b1*r*t))+(1/(celiq*r*t))*daexc1
dd2=(a2/(b2*r*t))+(1/(celiq*r*t))*daexc2
db1=(dq1/(1-deliq))-((quliq*(1-dd1))/((1-deliq)**2))
db2=(dq2/(1-deliq))-((quliq*(1-dd2))/((1-deliq)**2))
da1=(r*t)*((deliq*db1)+(bemliq*dd1))
da2=(r*t)*((deliq*db2)+(bemliq*dd2))
db1liq=db1
db2liq=db2
da1liq=da1
da2liq=da2
lognatfi1liq=(b1/(vl-bemliq))+log(vl/(vl-bemliq))+(((ameliq*db1)/(r*t*bemliq*&
(d2-d1)))*((d1/(vl+(d1*bemliq)))-(d2/(vl+(d2*bemliq)))))+&
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
((1/(r*t*(bemliq**2)*(d2-d1)))*log((vl+(d1*bemliq))/(vl+(d2*bemliq)))*&
((da1*bemliq)-(ameliq*db1)))-log((p*vl)/(r*t))
lognatfi2liq=(b2/(vl-bemliq))+log(vl/(vl-bemliq))+(((ameliq*db2)/(r*t*bemliq*&
(d2-d1)))*((d1/(vl+(d1*bemliq)))-(d2/(vl+(d2*bemliq)))))+&
((1/(r*t*(bemliq**2)*(d2-d1)))*log((vl+(d1*bemliq))/(vl+(d2*bemliq)))*&
((da2*bemliq)-(ameliq*db2)))-log ((p*vl)/(r*t))
daexc1=0
daexc2=0
dq1=0
dq2=0
dd1=(a1/(b1*r*t))+(1/(celiq*r*t))*daexc1
dd2=(a2/(b2*r*t))+(1/(celiq*r*t))*daexc2
db1=(dq1/(1-deliq))-((quliq*(1-dd1))/((1-deliq)**2))
db2=(dq2/(1-deliq))-((quliq*(1-dd2))/((1-deliq)**2))
da1=(r*t)*((deliq*db1)+(bemliq*dd1))
da2=(r*t)*((deliq*db2)+(bemliq*dd2))
db1liq=db1
db2liq=db2
da1liq=da1
da2liq=da2
z=p*vl/(r*t)
mb=p*bemliq/(r*t)
ma=p*ameliq/(r*t)**2
lognatfi1liq=b1/(mb)*(z-1)-log(z-mb)-ma/mb*(b1/mb-2./ameliq*(x1+x2)*(a1*a2)**0.5)*log(1+mb/z)
lognatfi2liq=b2/(mb)*(z-1)-log(z-mb)-ma/mb*(b2/mb-2./ameliq*(x1+x2)*(a1*a2)**0.5)*log(1+mb/z)
endif
end subroutine
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine coeffugv(a1,b1,a2,b2,ameva,bmeva,b12,dva,qva,cva,g12,g21,&
t12,t21,vv,y1,y2,r,t,p,k12,lognatfi1va,lognatfi2va,da1,da2,db1,db2,dq1,dq2,dd1,dd2,opcionn1,opcionn2)
real a1,a2,b1,b2,ameva,bmeva,d1,d2,z1,z2,k12,y1,y2,lognatfi1va,lognatfi2va,da1,da2,db1,db2
real g12,g21,t12,t21,daexc1,daexc2,dd1,dd2,dq1,dq2
real b12,cva,dva,qva,opcion2,z,opcion1,mb,ma
if (opcion1==1)then
d1=1+(2)**0.5
d2=1-(2)**0.5
else if(opcion1==2)then
d1=1
d2=0
endif
if(opcion2==1)then
daexc1=((y1*(0-((y2*g21*t21)/(y1+y2*g21))))/(y1+(y2*g21))+&
(y2*g12*(t12-((y1*g12*t12)/(y2+y1*g12))))/(y2+(y1*g12))+&
(y2*g21*t21)/(y1+(y2*g21)))*(r*t)
daexc2=((y2*(0-((y1*g12*t12)/(y2+y1*g12))))/(y2+(y1*g12))+&
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
(y1*g21*(t21-((y2*g21*t21)/(y1+y2*g21))))/(y1+(y2*g21))+&
(y1*g12*t12)/((y2)+(y1*g12)))*(r*t)
dq1=(2*(b1-(a1/(r*t)))*y1)+(2*y2*(((b1-(a1/(r*t))))+(b2-(a2/(r*t))))/2)*(1-k12)
dq2=(2*(b2-(a2/(r*t)))*y2)+(2*y1*(((b1-(a1/(r*t))))+(b2-(a2/(r*t))))/2)*(1-k12)
dd1=(a1/(b1*r*t))+(1/(cva*r*t))*daexc1
dd2=(a2/(b2*r*t))+(1/(cva*r*t))*daexc2
db1=(dq1/(1-dva))-((qva*(1-dd1))/((1-dva)**2))
db2=(dq2/(1-dva))-((qva*(1-dd2))/((1-dva)**2))
da1=(r*t)*((dva*db1)+(bemva*dd1))
da2=(r*t)*((dva*db2)+(bmeva*dd2))
lognatfi1va=(b1/(vv-bmeva))+log(vv/(vv-bmeva))+(((ameva*db1)/(r*t*bmeva*(d2-d1)))*&
((d1/(vv+(d1*bmeva)))-(d2/(vv+(d2*bmeva)))))+&
((1/(r*t*(bmeva**2)*(d2-d1)))*log((vv+(d1*bmeva))/(vv+(d2*bmeva)))*&
((da1*bmeva)-(ameva*db1)))-log((p*vv)/(r*t))
lognatfi2va=(b2/(vv-bmeva))+log(vv/(vv-bmeva))+(((ameva*db2)/(r*t*bmeva*(d2-d1)))*&
((d1/(vv+(d1*bmeva)))-(d2/(vv+(d2*bmeva)))))+&
((1/(r*t*(bmeva**2)*(d2-d1)))*log((vv+(d1*bmeva))/(vv+(d2*bmeva)))*((da2*bmeva)-(ameva*db2)))-
log((p*vv)/(r*t))
else if(opcion2==2)then
daexc1=0
daexc2=0
dq1=0
dq2=0
dd1=(a1/(b1*r*t))+(1/(celiq*r*t))*daexc1
dd2=(a2/(b2*r*t))+(1/(celiq*r*t))*daexc2
db1=(dq1/(1-deliq))-((quliq*(1-dd1))/((1-deliq)**2))
db2=(dq2/(1-deliq))-((quliq*(1-dd2))/((1-deliq)**2))
da1=(r*t)*((deliq*db1)+(bemliq*dd1))
da2=(r*t)*((deliq*db2)+(bemliq*dd2))
db1liq=db1
db2liq=db2
da1liq=da1
da2liq=da2
z=p*vv/(r*t)
mb=p*bmeva/(r*t)
ma=p*ameva/(r*t)**2
lognatfi1va=b1/(mb)*(z-1)-log(z-mb)-ma/mb*(b1/mb-2./ameliq*(y1+y2)*(a1*a2)**0.5)*log(1+mb/z)
lognatfi2va=b2/(mb)*(z-1)-log(z-mb)-ma/mb*(b2/mb-2./ameliq*(y1+y2)*(a1*a2)**0.5)*log(1+mb/z)
endif
end subroutine
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine jacobiana(ki,kj,t,p,r,vv,vl,da1,da2,db1,db2,db1liq,db2liq,da1liq,da2liq,&
dq1,dq2,dd1,dd2,qva,cva,dva,b12,g12,g21,t12,&
t21,ameva,bmeva,ameliq,bemliq,y1,y2,x1,x2,a1,a2,k12,b1,b2,&
lognatfi1liq,lognatfi2liq,lognatfi1va,lognatfi2va,dg1dlognatk1,dg1dlognatk2,dg1p,dg2dlognatk1,dg2dlognatk2,d
g2p,aqmg,g1,g2,g3,v1,v2,v3,c1,opcionn1,d1,d2)
real
dn1p,dn2p,dpv,d2fn,dlnfiyj,dg1dlognatk1,dg1dlognatk2,dg2dlognatk1,dg2dlognatk2,k12,g1,g2,g3,v1,v2,v3,dan
n2
real m1,m2,a,b,a1,a2,b1,b2,z1,z2,d1,f2,dg2p,dg1p,aqmg,ki,kj
real pre,j,k,l,ka,kb,lnfipl,lnfipv,lognatfi1liq,lognatfi2liq,lognatfi1va,lognatfi2va
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
real dvp,dnp,bij,r,t,p,ameva,bmeva,ameliq,bemliq,c1
real g21,g12,t12,t21,da1,da2,db1,db2,d2aexc1,d2aexc2,d2b1,d2b2,dev2q,dev2d,da1liq,da2liq,db1liq,db2liq
if (opcionn1==1)then
d1=1+(2)**0.5
d2=1-(2)**0.5
else if(opcion1==2)then
d1=1
d2=0
endif
c1=332.06548*1
d2aexc1=(((0.0-((y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21))+&
((0.0-((y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21))-&
(y1*(0.0+0.0-((2*y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21))-(y2*(t12+t12-&
((2*y1*g12*t12)/(y2+(y1*g12)))))/(y2+(y1*g12)))*(r*t)
d2q1=(1-y1)*(b1-(a1/(r*t)))
d2d1=d2aexc1/(cva*r*t)
d2b1=(d2q1/(1-dva))+((1/((1-dva)**2))*(((dd1-1)*dq1)+(qva*d2d1)+((1-dd1)*(dq1-(2*bmeva*(1-dd1))))))
dann2=((db1*dd1)+(dva*d2b1)+(db1*dd1)+(bmeva*d2d1))*(r*t)
dch=(1/(vv-bmeva)*(2*db1+d2b1+((db1**2)*1/(vv-bemva))))+&
(((log((vv+(d1*bmeva))/(vv+(d2*bmeva)))*((1/bmeva*(dann2+&
(2*ameva/bmeva*1/bmeva*(db1**2))))-((1/bmeva)**2*(2*(da1*db1)+&
(ameva*d2b1)))))+((d1/(vv+(d1*bmeva)))-(d2/(vv+(d2*bmeva)))*&
(((1/bmeva)**2*(2*(da1*db1)+(ameva*d2b1)))/(1/bmeva)-(2*ameva/bmeva*1/bmeva)*&
(db1**2)))+((((d2/(vv+(d2*bmeva)))**2)-&
(d1/(vv+(d1*bmeva)))**2)*ameva/bmeva*(db1**2)))*1/(r*t*(d2-d1)))
dn1p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db1)-((da1)/((vv+(d1*bmeva))*&
(vv+(d2*bmeva))))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+(d1*bmeva))*(vv+(d2*bmeva)))**2)*ameva*db1
dn2p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db1)-((da1)/((vv+(d1*bmeva))*&
(vv+(d2*bmeva))))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+(d1*bmeva))*(vv+(d2*bmeva)))**2)*ameva*db1
dpv=((-r*t)/((vv-bmeva)**2))+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+(d1*bmeva))*(vv+(d2*bmeva)))**2))
dlnfiy2=dch+(1/(r*t))*((dn1p*dn2p)/dpv)+1
dg1dlognatk1=(1+(y1*dlnfiy2))
d2aexc1=((((t21-((y2*g21*t21)/(y1+(y2*g21))))*(g21))/(y1+(y2*g21)))+&
(((t12-((y1*g12*t12)/(y2+(y1*g12))))*(g12))/(y2+(y1*g12)))+&
(-(y1*g21*(t21-((2*y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21)))+&
(-(y2*g12*(t12-((2*y1*g12*t12)/(y2+(y1*g12)))))/(y2+(y1*g12))))
d2q1=(1-y2)*b12
d2d1=(1/(cva*r*t))*d2aexc1
d2b1=((1/(1-dva))*d2q1)+((1/((1-dva)**2))*(((dd2-1)*dq1)+(qva*d2d1)+((1-dd1)*(dq2-(2*bmeva*(1-dd2))))))
dann2=((db1*dd2)+(dva*d2b1)+(db2*dd1)+(bmeva*d2d1))*(r*t)
dch=((1/(vv-bmeva))*(db1+db2+d2b1+((db1*db2)*(1/(vv-bmeva)))))+&
(((log((vv+d1*bmeva)/(vv+d2*bmeva)))*(((1/bmeva)*&
(dann2+((2*(ameva/bmeva)*(1/bmeva))*(db1*db2))))-(((1/bmeva))**2*&
((da1*db2)+(da2*db1)+(ameva*d2b1)))))+(((d1/(vv+(d1*bmeva)))-&
(d2/(vv+(d2*bmeva))))*((((1/bmeva))**2*((da1*db2)+(da2*db1)+(ameva*d2b1)))/&
(1/bmeva)-(2*(ameva/bmeva)*(1/bmeva))*(db1*db2)))+&
(((((d2/(vv+(d2*bmeva)))**2)-(d1/(vv+(d1*bmeva)))**2)*(ameva/bmeva))*(db1*db2)))*(1/(r*t*(d2-d1)))
dn1p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db1)-((da1)/((vv+(d1*bmeva))*&
(vv+(d2*bmeva))))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+(d1*bmeva))*(vv+(d2*bmeva)))**2)*ameva*db1
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
dn2p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db2)-((da2)/((vv+(d1*bmeva))*&
(vv+(d2*bmeva))))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+(d1*bmeva))*(vv+(d2*bmeva)))**2)*ameva*db2
dpv=((-r*t)/(vv-bmeva)**2)+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+d1*bmeva)*(vv+d2*bmeva))**2))
dlnfiy2=dch+((dn1p*dn2p)/(r*t*dpv))+1
dg1dlognatk2=(y2*dlnfiy2)
d2aexc2=((((t12-((y1*g12*t12)/(y2+(y1*g12))))*(g12))/(y2+(y1*g12)))+(((t21-((y2*g21*&
t21)/(y1+(y2*g21))))*(g21))/(y1+(y2*g21)))+&
(-(y1*g21*(0.0+t21-((2*y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21)))+(-(y2*g12*(t12+0.0-&
((2*y1*g12*t12)/(y2+(y1*g12)))))/(y2+(y1*g12))))
d2q2=(1-y1)*b12
d2d2=(1/(cva*r*t))*d2aexc2
d2b2=((1/(1-dva))*d2q2)+((1/((1-dva)**2))*(((dd1-1)*dq2)+(qva*d2d2)+((1-dd2)*(dq1-(2*bmeva*(1-dd1))))))
dann2=((db2*dd1)+(dva*d2b2)+(db1*dd2)+(bmeva*d2d2))*(r*t)
dch=((1/(vv-bmeva))*(db2+db1+d2b2+((db2*db1)*(1/(vv-bmeva)))))+&
(((log((vv+d1*bmeva)/(vv+d2*bmeva)))*(((1/bmeva)*&
(dann2+((2*(ameva/bmeva)*(1/bmeva))*(db2*db1))))-
(((1/bmeva))**2*((da2*db1)+(da1*db2)+(ameva*d2b2)))))+&
(((d1/(vv+(d1*bmeva)))-(d2/(vv+(d2*bmeva))))*((((1/bmeva))**2*&
((da2*db1)+(da1*db2)+(ameva*d2b2)))/(1/bmeva)-(2*(ameva/bmeva)*&
(1/bmeva))*(db2*db1)))+(((((d2/(vv+(d2*bmeva)))**2)-(d1/(vv+(d1*bmeva)))**2)*&
(ameva/bmeva))*(db2*db1)))*(1/(r*t*(d2-d1)))
dn1p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db2)-((da2)/((vv+d1*bmeva)*(vv+d2*bmeva)))+&
((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db2
dn2p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db1)-((da1)/((vv+d1*bmeva)*(vv+d2*bmeva)))+&
((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db1
dpv=((-r*t)/(vv-bmeva)**2)+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+d1*bmeva)*(vv+d2*bmeva))**2))
dlnfiy2=dch+(1/(r*t))*((dn1p*dn2p)/dpv)+1
dg2dlognatk1=(y1*dlnfiy2)
d2aexc2=(((0.0-((y1*g12*t12)/(y2+(y1*g12)))))/(y2+(y1*g12))+((0.0-((y1*g12*t12)/&
(y2+(y1*g12)))))/(y2+(y1*g12))+(-(y1*g21*g21*&
(t21+t21-((2*y2*g21*t21)/(y1+(y2*g21)))))/(y1+(y2*g21)))+(-(y2*(-((2*y1*g12*t12)/&
(y2+(y1*g12)))))/(y2+(y1*g12))))*(r*t)
d2q2=(1-y2)*bmeva
d2d2=(1/(cva*r*t))*d2aexc2
d2b2=((1/(1-dva))*d2q2)+((1/((1-dva)**2))*(((dd2-1)*dq2)+(qva*d2d2)+((1-dd2)*(dq2-(2*bmeva*(1-dd2))))))
dann2=((db2*dd2)+(dva*d2b2)+(db2*dd2)+(bmeva*d2d2))*(r*t)
dch=((1/(vv-bmeva))*(db2+db2+d2b2+((db2)**2*(1/(vv-
bmeva)))))+(((log((vv+d1*bmeva)/(vv+d2*bmeva)))*(((1/bmeva)*&
(dann2+((2*(ameva/bmeva)*(1/bmeva))*(db2)**2)))-(((1/bmeva))**2*&
((da2*db2)+(da2*db2)+(ameva*d2b2)))))+&
(((d1/(vv+(d1*bmeva)))-(d2/(vv+(d2*bmeva))))*((((1/bmeva))**2*&
((da2*db2)+(da2*db2)+(ameva*d2b2)))/(1/bmeva)-(2*(ameva/bmeva)*&
(1/bmeva))*(db2)**2))+(((((d2/(vv+(d2*bmeva)))**2)-(d1/(vv+(d1*bmeva)))**2)*&
(ameva/bmeva))*(db2)**2))*(1/(r*t*(d2-d1)))
dn1p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db2)-((da2)/((vv+d1*bmeva)*&
(vv+d2*bmeva)))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db2
dn2p=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db2)-((da2)/((vv+d1*bmeva)*&
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
(vv+d2*bmeva)))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db2
dpv=((-r*t)/(vv-bmeva)**2)+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+d1*bmeva)*(vv+d2*bmeva))**2))
dlnfiy2=dch+(1/(r*t))*((dn1p*dn2p)/dpv)+1
dg2dlognatk2=(1+(y2*dlnfiy2))
dnp=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db1)-((da1)/((vv+d1*bmeva)*(vv+d2*bmeva)))+&
((((d1+d2)*vv)+(2*d1*d2*bmeva))/((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db1
dpv=((-r*t)/(vv-bmeva)**2)+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+d1*bmeva)*(vv+d2*bmeva))**2))
lnfipv=-((1/(r*t))*((dnp/dpv)))-(1/p)
dnp=((r*t)/(vl-bemliq))+(((r*t)/((vl-bemliq)**2))*db1liq)-((da1liq)/((vl+d1*bemliq)*&
(vl+d2*bemliq)))+((((d1+d2)*vl)+(2*d1*d2*bemliq))/&
((vl+d1*bemliq)*(vl+d2*bemliq))**2)*ameliq*db1liq
dpv=((-r*t)/(vl-bemliq)**2)+((ameliq*((2*vl)+(d1+d2)*bemliq))/(((vl+d1*bemliq)*(vl+d2*bemliq))**2))
lnfipl=-(1/(r*t))*((dnp/dpv))-(1/p)
dg1p=p*(lnfipv-lnfipl)
dnp=((r*t)/(vv-bmeva))+(((r*t)/((vv-bmeva)**2))*db2)-((da2)/&
((vv+d1*bmeva)*(vv+d2*bmeva)))+((((d1+d2)*vv)+(2*d1*d2*bmeva))/&
((vv+d1*bmeva)*(vv+d2*bmeva))**2)*ameva*db2
dpv=((-r*t)/(vv-bmeva)**2)+((ameva*((2*vv)+(d1+d2)*bmeva))/(((vv+d1*bmeva)*(vv+d2*bmeva))**2))
lnfipv=-(1/(r*t))*((dnp/dpv))-(1/p)
dnp=((r*t)/(vl-bemliq))+(((r*t)/((vl-bemliq)**2))*db2liq)-((da2liq)/&
((vl+d1*bemliq)*(vl+d2*bemliq)))+((((d1+d2)*vl)+(2*d1*d2*bemliq))/&
((vl+d1*bemliq)*(vl+d2*bemliq))**2)*ameliq*db2liq
dpv=((-r*t)/(vl-bemliq)**2)+((ameliq*((2*vl)+(d1+d2)*bemliq))/(((vl+d1*bemliq)*(vl+d2*bemliq))**2))
lnfipl=-(1/(r*t))*((dnp/dpv))-(1/p)
dg2p=p*(lnfipv-lnfipl)
aqmg=0
g1=log(ki)+lognatfi1va-lognatfi1liq
g2=log(kj)+lognatfi2va-lognatfi2liq
g3=y1+y2-1.084
v1=log(ki)
v2=log(kj)
v3=log(p)
end subroutine
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@
subroutine
inversa(dg1dlognatk1,dg1dlognatk2,dg1p,dg2dlognatk1,dg2dlognatk2,dg2p,y1,y2,aeqm,g1,g2,g3,v1,v2,v3,k1c,k
2c,pca,k1c1,k2c1,pca1,c1,c2)
real , dimension(9) :: x, y
real , dimension(3,3) :: a,b,c,d,f
real , dimension(3,1) :: e,g,h,l,solucion, solucion1
integer i,j,k
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
real k1c,k2c,pca,k1c1,k2c1,pca1,c1,c2
a(1,1)=0;a(1,2)=0;a(1,3)=0
a(2,1)=0;a(2,2)=0;a(2,3)=0
a(3,1)=0;a(3,2)=0;a(3,3)=0
a(1,1)=dg1dlognatk1;a(1,2)=dg1dlognatk2;a(1,3)=dg1p
a(2,1)=dg2dlognatk1;a(2,2)=dg2dlognatk2;a(2,3)=dg2p
a(3,1)=y1;a(3,2)=y2;a(3,3)=aqmg
c2=c1+3.152
do i=1,3
do j=1,3
b(i,j) = a(j,i)
end do
end do
c(1,1)= (a(2,2)*a(3,3)-a(3,2)*a(2,3))
c(2,1)= -(a(1,2)*a(3,3)-a(3,2)*a(1,3))
c(3,1)= (a(1,2)*a(2,3)-a(2,2)*a(1,3))
c(1,2)= -(a(2,1)*a(3,3)-a(3,1)*a(2,3))
c(2,2)= (a(1,1)*a(3,3)-a(3,1)*a(1,3))
c(3,2)= -(a(1,1)*a(2,3)-a(2,1)*a(1,3))
c(1,3)= (a(2,1)*a(3,2)-a(3,1)*a(2,2))
c(2,3)= -(a(1,1)*a(3,2)-a(3,1)*a(1,2))
c(3,3)= (a(1,1)*a(2,2)-a(2,1)*a(1,2))
do i=1,3
do j=1,3
d(i,j) = c(j,i)
end do
end do
d=d/(a(1,1)*a(2,2)*a(3,3)+a(1,2)*a(2,3)*a(3,1)+a(1,3)*a(2,1)*a(3,2)-a(1,3)*a(2,2)*a(3,1)-a(1,2)*a(2,1)*a(3,3)-
a(1,1)*a(2,3)*a(3,2))
e(1,1)=g1
e(2,1)=g2
e(3,1)=g3
g=matmul(d,e)
l(1,1)=v1
l(2,1)=v2
l(3,1)=v3
do i=1,3
do j=1,1
solucion(i,j) = l(i,j)-g(i,j)
end do
end do
do i=1,3
do j=1,1
solucion1(i,j) = l(i,j)+g(i,j)
end do
end do
k1c1=solucion1(1,1)
k2c1=solucion1(2,1)
pca1=solucion1(3,1)
k1c=solucion(1,1)
k2c=solucion(2,1)
pca=solucion(3,1)
end subroutine
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
subroutine vector(xc,xb,mc,mb,xi,mi)
implicit none
real:: xc,xi,xb,mc,mi,mb
xi=xc+(-4.85334*(10.0**(-11.0))*xb**6&
+1.77485*(10.0**(-8.0))*xb**5.0&
-1.83556*(10.0**(-6.0))*xb**4.0&
+4.79093*(10.0**(-5.0))*xb**3.0&
+2.21094*(10.0**(-3.0))*xb**2.0&
+0.202014*xb+1.64939)
if ((mc-mb)>1e-3) then
mi=mc-(0.999-mb)
else
mi=mc
end if
end subroutine
Y la constante de los gases ideales que se usó fue en las siguientes unidades:
𝑐𝑚3 ∗ 𝑀𝑃𝑎
𝑅 = 83.14
𝑚𝑜𝑙 ∗ 𝐾
Y las K para el CO2+n-nonano:
K=0.1009 @T=315.12
K=0.0959 @T=418.82
K=0.1138 @T=314.98
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
En la tabla 3 ,4 y 5 se muestran los resultados del ELV así como sus desviaciones. La desviación se
calcula usando la ecuación:
𝜌𝑒𝑥𝑝 − 𝜌𝑐𝑎𝑙
𝐷𝑒𝑠𝑣𝑖𝑎𝑐𝑖ó𝑛 = ( ) ∗ 100
𝜌𝑒𝑥𝑝
Donde
GRAFICAS DE DESVIACIÓN
0.7
0.6
0.5
Desviación (%)
0.4
0.3
CO2+nonano-315 k
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
X CO2
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA QUÍMICA E INDUSTRIAS EXTRACTIVAS
0.7
0.6
0.5
Desviación (%)
0.4
0.3
CO2+nonano-418 k
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
X CO2
1.2
0.8
Desviación (%)
0.6
CO2+undecano-314.98 k
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1
X CO2