In [ ]:
# -*- coding: utf-8 -*-
import numpy as np
def NRTL(nC, T, Xi, Alfa, Aij):
## Alcohol Acetato Agua Acido
Tao = np.matrix([[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0]])
## Alcohol Acetato Agua Acido
G = np.matrix([[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0]])
for j in range(nC):
for i in range(nC):
Tao[i, j] = Aij[i, j] / T
#print "Esta es la Matriz Tao", Tao
for j in range(nC):
for i in range(nC):
G[i, j] = np.exp(-Alfa[i, j] * Tao[i, j])
#print "Esta es la Matriz G", G
#---------------------------------------------------
suma1 = np.zeros([nC, nC], dtype=np.float32)
suma2 = np.zeros([nC, nC], dtype=np.float32)
#---------------------------------------------------
for j in range(nC):
for i in range(nC):
suma1[i, j] = Tao[i, j] * G[i, j] * Xi[0, i]
suma2[i, j] = G[i, j] * Xi[0, i]
#print "Esta es la Matriz suma1", suma1
#print "Esta es la Matriz suma2", suma2
suma11 = sum(suma1)
suma12 = sum(suma2)
#print "Esta es la Matriz suma11", suma11
#print "Esta es la Matriz suma12", suma12
A = np.ones([1, nC], dtype=np.float32)
#print "Esta es el Vector A", A
#print "Esta es el Elemento A[0,0]", A[0, 0]
A = suma11 / suma12
#print "miremos Asa", A
#print "Esta es el Elemento A[0,0]", A[1]
#----------------------------
num1 = np.zeros([nC, nC], dtype=np.float32)
den1 = np.zeros([nC, nC], dtype=np.float32)
num2 = np.zeros([nC, nC], dtype=np.float32)
den2 = np.zeros([nC, nC], dtype=np.float32)
for j in range(nC):
for i in range(nC):
num1[i, j] = G[j, i] * Xi[0, i]
den1[i, j] = G[i, j] * Xi[0, i]
num2[i, j] = Tao[i, j] * G[i, j] * Xi[0, i]
den2[i, j] = G[i, j] * Xi[0, i]
#print "Esta es la Matriz num1", num1
#print "Esta es la Matriz den1", den1
#print "Esta es la Matriz num1", num1
#print "Esta es la Matriz den2", den2
#--------------------------------------
Z = np.zeros([nC, 1], dtype=np.float32)
W = np.zeros([nC, 1], dtype=np.float32)
ln = np.zeros([nC, nC], dtype=np.float32)
lnGamma = np.zeros([nC, 1], dtype=np.float32)
#print "Esta es la Matriz Z", Z
#print "Esta es la Matriz W", W
#print "Esta es la Matriz ln", ln
#print "Esta es la Matriz lnGamma", lnGamma
for i in range(nC):
Z[i, 0] = sum(den1[:, i])
W[i, 0] = sum(num2[:, i])
for j in range(nC):
for i in range(nC):
ln[i, j] = num1[i, j] / Z[i, 0] * (Tao[j, i] - W[i, 0] / Z[i, 0])
#print "Esta es la Matriz ln", ln
for i in range(nC):
lnGamma[i, 0] = A[i] + sum(ln[:, i])
#print "Esta es la Matriz Z", Z
#print "\n"
#print "Esta es la Matriz W", W
#print "\n"
#print "Esta es la Matriz ln", ln
print "\n"
print "Esta es la Matriz lnGamma", "\n", lnGamma
print "\n"
gamma_i = np.exp(lnGamma)
print "Esta es la Matriz gamma_i", "\n", gamma_i
raw_input("Pulsa una tecla para continuar...")
return gamma_i
In [2]:
import numpy as np
import NRTL_3
#-------------------------------------------------------------
#----------------- Definiciones -----------------
#-------------------------------------------------------------
# nC = Numero de componenetes de la mezcla
nC = 4
nD = 0
# T = Temperatura en K
T = 300
#Xi = np.matrix([0.25, 0.25, 0.25, 0.25])
Xi_1 = input("Fraccion molar x1: ")
Xi_2 = input("Fraccion molar x2: ")
Xi_3 = input("Fraccion molar x3: ")
Xi_4 = input("Fraccion molar x4: ")
print ("\n")
Xi = np.matrix([Xi_1, Xi_2, Xi_3, Xi_4])
SmXi = np.sum(Xi)
Xi = Xi / SmXi
print (("Esta es la Matriz Xi =", Xi, "\n"))
## Alcohol Agua Acetato Acido
Alfa = np.array([[0.000, 0.2980, 0.3009, 0.1695],
[.2980, 0.0000, 0.2000, 0.2987],
[0.3009, 0.2000, 0.0000, 0.2000],
[0.1695, 0.2987, 0.2000, 0.0000]])
print (("Matriz Alfa", Alfa))
## Alcohol Acetato Agua Acido
Aij = np.matrix([[0.0000, 100.1, -144.8, 178.3],
[1447.5, 0.0000, 2221.5, 424.018],
[320.6521, 254.47, 0.0000, 214.55],
[-316.8, -110.57, -37.943, 0.000]])
print (("Matriz Aij", Aij))
#for j = 1 : n:
# for i = 1 : n
# G = exp(-Alfa * Tao);
#filas = 4
#colum = 4
CoeAct_1 = NRTL_3.NRTL(nC, T, Xi, Alfa, Aij)
print (CoeAct_1)
In [ ]:
In [ ]: