You are on page 1of 2

MODELO TERMODINAMICO DE UNIFAC

T=300;%TEMPERATURA EN kELVIN
disp('Modelo Termodinamico: UNIFAC')
disp(' Gama ');
disp(' -----------')
format short
n=1;
x1=0.101;
x2=1-x1;
for j = 1:n;
x =[x1 x2];
NSG=3;
Rk=[0.9011 1.6724 1.4311];
Qk=[0.848 1.488 1.432]; %praunitz 8.78
v=[1 0;1 0;0 1];
a=[0 476.42 697.2;26.76 0 108.7;16.51 23.39 0];
% parte conbinatoria
r=[0 0];
q=r;
for i=1:2
for k=1:NSG;
r(i)=v(k,i)*Rk(k)+r(i);
q(i)=v(k,i)*Qk(k)+q(i);
end
end
z=10;
l=(z/2)*(r-q)-(r-[1 1]);
S1=0;
S2=S1;S3=S2;
for i=1:2
S1=r(i)*x(i)+S1;
S2=q(i)*x(i)+S2;
S3=x(i)*l(i)+S3;
end
for i=1:2
phi(i)=r(i)*x(i)/S1;
theta(i)=q(i)*x(i)/S2;
LngC(i)=log(phi(i)/x(i))+(z/2)*q(i)*log(theta(i)/phi(i))+l(i)-
phi(i)*S3/x(i);
end
%parte residual
for i=1:2
for k = 1:NSG
Xmi(k,i)=v(k,i)/sum(v(1:NSG,i));
end
end
for i=1:2
for k=1:NSG
Qmi(k,i)=Xmi(k,i)*Qk(k)/sum(Xmi(1:NSG,i)'.*Qk(1:NSG));
end
end
psi=exp(-a/T);
S=sym(zeros(1,NSG));Si=sym(zeros(NSG,2));
for c=1:2
for f=1:NSG
for i =1:NSG
S(i)=Qmi(i,c)*psi(f,i)/sum(Qmi(1:NSG,c).*psi(1:NSG,i))+S(i);
end
Si(f,c)=sum(S);
S=sym(zeros(1,NSG));
end
end
for i=1:2
for k=1:NSG
LnT(k,i)=Qk(k)*(1-log(sum(Qmi(1:NSG,i).*psi(1:NSG,k)))-Si(k,i));
end
end
Xm=v*x'/sum(v*x');
Qm=Xm.*Qk'/sum(Xm.*Qk');
S=sym(zeros(1,NSG));Si=sym(zeros(NSG,1));
for f=1:NSG
for i =1:NSG
S(i)=Qm(i)*psi(f,i)/sum(Qm(1:NSG).*psi(1:NSG,i))+S(i);
end
Si(f)=sum(S);
S=sym(zeros(1,NSG));
end
for k=1:NSG
LnTk(k)=Qk(k)*(1-log(sum(Qm(1:NSG).*psi(1:NSG,k)))-Si(k));
end
LngR=sym(zeros(1,2));
for i=1:2
for k=1:NSG
LngR(i)=LngR(i)+v(k,i)*(LnTk(k)-LnT(k,i));
end
end
gama(j,1:2)=exp(LngC+LngR);
end
disp(vpa(gama(j,1:2),4));

You might also like