Está en la página 1de 2

PI-216 TERMODINÁMICA PARA INGENIERÍA QUÍMICA I FIQT-UNI

DEPARTAMENTO ACADÉMICO DE INGENIERÍA QUÍMICA 05/06/2020

SEMINARIO N° 01: CÁLCULO DE PROPIEDADES TERMODINÁMICAS CON VBA

Desarrolle un proyecto en Visual Basic para Aplicaciones (VBA), que permita calcular: el factor de
compresibilidad y el volumen molar, de un gas monocomponente, a partir de su información PVT
(Presión-Volumen-Temperatura) y la ecuación de estado de Peng-Robinson.

Utilice las macros y funciones creadas por usted, para calcular las propiedades del siguiente sistema:
propano a 2 °C y 2 bar.

SOLUCIÓN

'Constante de los gases ideales


'-------------------------------------------------------
Private R As Double

'Propiedades de la especie química


'-------------------------------------------------------
Private Tc As Double
Private Pc As Double
Private w As Double

'Parámetros para la ecuación cúbica de estado (Peng-Rob.)


'-------------------------------------------------------
Private epsilon As Double
Private sigma As Double
Private omega As Double
Private psi As Double

Sub MACRO_PRINCIPAL()
'-------------------------------------------------------
'DATOS
'-------------------------------------------------------
R = 8.314 'J mol^-1 K^-1

Tc = 369.8 'K
Pc = 4248000 'Pa
w = 0.152

A = 1.213
B = 28.785 * 10 ^ (-3)
C = -8.824 * 10 ^ (-6)
D = 0

omega = 0.0778
sigma = 1 + Sqr(2)
epsilon = 1 - Sqr(2)
psi = 0.45724

'-------------------------------------------------------
'CÁLCULOS
'-------------------------------------------------------
'Condiciones a las cuales se harán los cálculos
T1 = 2 + 273.15 'K
P1 = 200000 'Pa

© 2020 Neil Carrasco, Lima - Perú ncarrascob@uni.edu.pe


PI-216 TERMODINÁMICA PARA INGENIERÍA QUÍMICA I FIQT-UNI
DEPARTAMENTO ACADÉMICO DE INGENIERÍA QUÍMICA 05/06/2020

'Resultados
Z1 = Z(T1, P1)
V1 = V(T1, P1)
Debug.Print "Factor de compresibilidad, Z = " & Z1
Debug.Print "Volumen molar, V (m^3/gmol) = " & V1

End Sub

'-------------------------------------------------------
'DEFINICIÓN DE FUNCIONES
'-------------------------------------------------------
Function Tr(T)
Tr = T / Tc
End Function

Function Pr(P)
Pr = P / Pc
End Function

Function beta(T, P) 'reemplaza al b minúscula


beta = omega * Pr(P) / Tr(T)
End Function

Function m()
m = 0.37464 + 1.5422 * w - 0.26992 * w ^ 2
End Function

Function alpha(T)
alpha = (1 + m() * (1 - Tr(T) ^ 0.5)) ^ 2
End Function

Function q(T)
q = (psi / omega) * alpha(T) / Tr(T)
End Function

Function Z(T, P, Optional Z_ini = 0.999, Optional tolerancia = 0.001, Optional


max_n_iter = 20)
Z_old = Z_ini 'inicialización de la variable desconocida
e_max = tolerancia 'tolerancia para la convergencia
n_max = max_n_iter 'número máximo de iteraciones a realizar
n_ite = 0
Do
Z_new = 1 + beta(T, P) - q(T) * beta(T, P) * (Z_old - beta(T, P)) / _
((Z_old + epsilon * beta(T, P)) * (Z_old + sigma * beta(T, P)))
e_abs = Abs(Z_new - Z_old)
Z_old = Z_new
n_ite = n_ite + 1
Loop While e_abs >= e_max And n_ite < n_max
If e_abs < e_max Then
Z = Z_new
Else
MsgBox "No se encontró la solución"
End If
End Function

Function V(T, P)
V = Z(T, P) * R * T / P
End Function

© 2020 Neil Carrasco, Lima - Perú ncarrascob@uni.edu.pe

También podría gustarte