Está en la página 1de 6

clc

clear
close all

%Volumen molar (Metodo de Schroeder)


%Vm = sum(ni*Vmi) + sum(ni_extra*Vmi*extra)
%Contribucion de atomos para hallar el volumen molar
%Atomo (Vmi)
H = 7; C = 7; N = 7; O = 7; S = 21; F = 10.5; Cl = 24.5; Br = 31.5; I
= 38.5;
%Anillo/Enlace (Vmi_extra)
Anillo = -7; Esimple = 0; Edoble = 7; Etriple = 14;

metilamina.wt = 31;
metilamina.pc = 73.6;
metilamina.vc = 140/1000;
metilamina.tc = 430;
metilamina.fa = 0.275;
metilamina.z = 30;
metilamina.aa = 17.2622/760; %Coeficientes de Antoine mmHg
metilamina.ba = 2484.83/760;
metilamina.ca = -32.92/760;
metilamina.vm = (5*H + C + N)/1000; %volumen molar L/mol

acidoacetico.wt = 60;
acidoacetico.pc = 57.1; %Atm % cc/gmol
acidoacetico.vc = 171;
acidoacetico.tc = 594.4; % K
acidoacetico.fa = 0.454;
acidoacetico.z = 100;
acidoacetico.aa = 16.8080/760; %Coeficientes de Antoine
acidoacetico.ba = 3405.57/760;
acidoacetico.ca = -56.34/760;
acidoacetico.vm = (H + 2*O + C)/1000;

etilenglicol.wt = 62;
etilenglicol.pc = 76;
etilenglicol.vc = 186/1000;
etilenglicol.tc = 645;
etilenglicol.fa = 0;
etilenglicol.z = 100;
etilenglicol.aa = 20.2501/760;
etilenglicol.ba = 6022.18/760;
etilenglicol.ca = -28.25/760;
etilenglicol.vm = (6*H + 2*C + 2*O)/1000;

% Ingreso de datos y constantes


T = 500; P = 150; %K atm
R = 0.0821;
Tce = T-273;

% Programa
elementos = {metilamina acidoacetico etilenglicol};

% Condiciones iniciales
for i=1:length(elementos);

PC = elementos{i}.pc;
FA = elementos{i}.fa;
TC = elementos{i}.tc;
AA = elementos{i}.aa;
BA = elementos{i}.ba;
CA = elementos{i}.ca;
VM = elementos{i}.vm;

Z = elementos{i}.z;

zi(i) = Z;
Pisat(i) = exp(log(PC)+log(10)*(7/3)*(1+FA)*(1-T/TC));
PCf(i) = exp((1/(R*(T))).*(VM).*(P-Pisat(i)));%Poynting factor
Ki(i) = exp(log(PC/P)+log(10)*(7/3)*(1+FA)*(1-T/TC));
end

z = zi./sum(zi);
Pdew = 1/(sum(z./Pisat))
Pbubble = sum(Pisat.*z)

% Newton Rhapson
Vin = (Pbubble - P)/(Pbubble - Pdew);
Zl = 1;
Zv = 1;
if Pdew < P && P < Pbubble
Kalm = [];
emax = 100;
cont = 0;
Eqi = Ki;
for contador=1:10

cont = cont+1;
for i=1:50
Xi = z./(Vin.*(Eqi-1)+1);
Yi = Xi.*Eqi;
Pdew = 1./(sum(Yi./Pisat));
Pbubble = sum(Pisat.*Xi);

FV = sum(z.*(Eqi-1)./(Vin.*(Eqi-1)+1));
FVp = -sum(z.*((Eqi-1).^2)./(Vin.*(Eqi-1)+1).^2);
Vnew = Vin-FV./FVp;
Vin = Vnew;
end

for i=1:length(elementos)
w = elementos{i}.fa;
TC = elementos{i}.tc;
PC = elementos{i}.pc;
kie = 0.37464+1.5422.*w-0.2699.*(w.^2);
ki(i) = kie;

alphaie = (1+kie.*(1-sqrt(T./TC))).^2;
alphai(i) = alphaie;

ai(i) = 0.45724.*((R.*TC).^2).*alphaie./PC;
bi(i) = 0.07780.*R.*TC./PC;
end
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
aij = [];
for i=1:length(elementos)
for j=i+1:length(elementos)

Vci = elementos{i}.vc;
Vcj = elementos{j}.vc;

g1 = 2.*sqrt(Vci.^(1/3).*Vcj.^(1/3));
g2 = Vci.^(1/3)+Vcj.^(1/3);
kij = 1-(g1./g2).^3;

Kij(i, j) = kij;
F1 = sqrt(ai(i).*ai(j));
F2 = 1-kij;
aije = F1.*F2;
aij(i, j) = F1.*F2;

Ma(i, j) = aije.*Xi(i).*Xi(j);
end
end

a = sum(sum(Ma));
b = sum(bi.*Xi);

A = a.*P./((R.*T).^2);
B = b.*P./(R.*T);

for i=1:20

FZl = Zl.^(3) - Zl.^(2) + Zl.*(A - B - B.^2) - A.*B;


FZlp = 3.*Zl.^(2) - 2.*Zl + (A - B - B.^2);
Zlnew = Zl - FZl./FZlp;
Zl = Zlnew;
end

aij = [aij; zeros(1, length(elementos))];


for i=1:length(elementos)
S1 = Zl+(1+sqrt(2)).*B;
S2 = Zl+(1-sqrt(2)).*B;
sumatoria = [];
for j=1:length(elementos)
sumatoria(j) = aij(i, j).*Xi(i);
end

fact(i) = 2.*sumatoria(j)/A -bi(i)./b;


Ctt(i) = bi(i).*(Zl-1)./b - log(Zl-B)-
(A.*fact(i)./(2.*sqrt(2).*B)).*log(S1./S2);
phil(i) = exp(Ctt(i));

end

%-----------------------------------------------------------------------

aij = [];
for i=1:length(elementos)
for j=i+1:length(elementos)

Vci = elementos{i}.vc;
Vcj = elementos{j}.vc;

g1 = 2.*sqrt(Vci.^(1/3).*Vcj.^(1/3));
g2 = Vci.^(1/3)+Vcj.^(1/3);
kij = 1-(g1./g2).^3;

Kij(i, j) = kij;
F1 = sqrt(ai(i).*ai(j));
F2 = 1-kij;
aije = F1.*F2;
aij(i, j) = F1.*F2;

Ma(i, j) = aije.*Yi(i).*Yi(j);
end
end

a = sum(sum(Ma));
b = sum(bi.*Yi);

A = a.*P./(R.*T).^2;
B = b.*P./(R.*T);

for i=1:20

FZv = Zv.^(3) - Zv.^(2) + Zv.*(A - B - B.^2) - A.*B;


FZvp = 3.*Zv.^(2) - 2.*Zv + (A - B - B.^2);
Zvnew = Zv - FZv./FZvp;
Zv = Zvnew;
end

aij = [aij; zeros(1, length(elementos))];


for i=1:length(elementos)
S1 = Zv+(1+sqrt(2)).*B;
S2 = Zv+(1-sqrt(2)).*B;
sumatoria = [];
for j=1:length(elementos)
sumatoria(j) = aij(i, j).*Yi(i);

end
fact(i) = 2.*sumatoria(j)./A -bi(i)./b;
Ctt(i) = bi(i).*(Zv-1)./b - log(Zv-B)-
(A.*fact(i)./(2.*sqrt(2).*B)).*log(S1./S2);
phiv(i) = exp(Ctt(i));
end
%--------------------------------------------------------------------
--
%Calculo de actividad
Ze = 10;
ri = [22.3426 26.026 3.3488];
qi = [21.616 24.48 3.48];
li = (Ze/2).*(ri - qi) - (ri-1);
lj = li;
Psi = (Xi.*ri)/(sum(Xi.*ri));
tetai = (Xi.*qi)/(sum(Xi.*qi));
tetaj = tetai;
tetak = tetai;
%Interacciones binarias
u11 = 0;
u12 = 0;
u13 = 1.163;
u22 = 0;
u23 = 1264;

u21 = 0;
u31 = 240.9;
u32 = 318.9;
u33 =0;
%Tao en funcion de la temperatura
Tij(1) = exp(-((u21 - u11)/(R*T)));
Tij(2) = exp(-((u31 - u11)/(R*T)));
Tij(3) = exp(-((u32 - u22)/(R*T)));

Tji(1) = exp(-((u12 - u22)/(R*T)));


Tji(2) = exp(-((u13 - u33)/(R*T)));
Tji(3) = exp(-((u23 - u33)/(R*T)));

Tkj = Tij;
Xj = Xi;
%Coeficiente de actividad
gammaC = exp(log(Psi./Xi) + (Ze/2).*(qi.*log(tetai./Psi)) + li -
(Psi./Xi).*sum(lj.*Xj));
gammaR = exp(qi.*(1 - log(sum(tetaj.*Tji)) -
sum((tetaj.*Tij)./(sum(tetak.*Tkj)))));
gamma = exp(log(gammaC) + log(gammaR));

Kalm(cont,:) = Ki;
Kiant = Ki;
%Ki = phil./phiv;
%Eqi = Ki;

Eqi = (gamma.*phil.*Pisat.*PCf)./(phiv.*P);
emax = sum(abs((Ki-Kiant))*100);

end
Vnew
Xi
Yi
elseif P < Pdew
fprintf('La mezcla es vapor sobrecalentado')
elseif P > Pbubble
fprintf('La mezcla es lquido subenfriado')
end

También podría gustarte