Nilai y dapat dihitung dengan penerapan beberapa korelasi empirik untuk prediksi aktivitas
komponen campuran cairan dengan tahapan sebagai berikut:
1. Pilih persamaan aktivitas yang digunakan untuk memprediksi y dari data percobaan.
2. Buat tebakan awal tentang konstanta masing-masing persamaan (misalkan A’ dan B’ untuk
van Laar, 12 dan 21 untuk Wilson, dll.)
3. Hitung aktivitas dan tekanan parsial masing-masing komponen uap, dan tekanan uap
total:
Pi xi i Pi
sat
n
P xi i Pi
sat
i 1
(n=banyaknya komponen)
4. Hitung deviasi hasil perhitungan data percobaan(tunjukkan sebagai residual sum of
squares):
j
Pj calc Pj exp / Pj exp
2
j 1
i 1
Dalam tugas ini, persamaan digunakan untuk memodelkan aktivitas campuran biner:
1. Two-Suffix Margules (Symmetrical)
ln 1 Ax 2
2
ln 2 Ax1
2
2. Three-Suffix Margules
ln 1 x 2 A12 2 A21 A12 x1
2
3. van Laar
A'
ln 1 2
A' x1
1
B' x2
B'
ln 2 2
B' x2
1
A' x1
4. Wilson
12 21
ln 1 ln( x1 x 2 12 x 2
x1 x 2 12 x 2 x1 21
12 21
ln 2 ln( x 2 x1 21 x1
x
1 x
2 12 x 2 x
1 21
clear all;
[A2margules,feval]=fminsearch('Twomargules',[1]);
[A3margules,feval]=fminsearch('Threemargules',[0,0]);
[Avanlaar,feval]=fminsearch('vanlaar',[1,1]);
[Awilson,feval]=fminsearch('Wilson',[0,0]);
% Display Parameter
disp('Paramter Two-Suffix Margules')
Amargules2=A2margules
disp(' ')
disp('Parameter Three-Suffix Margules')
A1margules3=A3margules(1)
A2margules3=A3margules(2)
disp(' ')
disp('Parameter van Laar')
A=Avanlaar(1)
B=Avanlaar(2)
disp(' ')
disp('Parameter Wilson')
A12=Awilson(1)
A21=Awilson(2)
function [x1,Pdata,Psat1,Psat2]=data;
x1=[0:.01:.1 .45:.05:1 ];
Pdata=[57.795 58.462 58.928 59.315 59.648 59.902 60.115 60.302 60.462 60.595
60.688...
56.862 55.462 53.796 52.129 49.596 46.796 43.463 39.730 35.463 31.064
26.664 23.038 ];
Psat1=23.038;
Psat2=57.795;
Sub Rutin:
function optimmarg=Twomargules(a);
[x1,Pdata,Psat1,Psat2]=data;
optimmarg=0;
for i=1:length(Pdata);
x2(i)=1-x1(i);
Pcalc(i)=x1(i)*exp(a*x2(i)^2)*Psat1+x2(i)*exp(a*x1(i)^2)*Psat2;
optimmarg=optimmarg+((Pcalc(i)-Pdata(i))/Pdata(i))^2;
end
function optimmarg=Threemargules(inguess);
[x1,Pdata,Psat1,Psat2]=data;
optimmarg=0;
a=inguess(1);
b=inguess(2);
for i=1:length(Pdata);
x2(i)=1-x1(i);
Pcalc(i)=x1(i)*exp(x2(i)^2*(a+2*(b-
a)*x1(i)))*Psat1+x2(i)*exp(x1(i)^2*(b+2*(a-b)*x2(i)))*Psat2;
optimmarg=optimmarg+((Pcalc(i)-Pdata(i))/Pdata(i))^2;
end
function optimvlaar=vanlaar(inguess);
[x1,Pdata,Psat1,Psat2]=data;
optimvlaar=0;
a=inguess(1);
b=inguess(2);
for i=2:(length(Pdata)-1);
x2(i)=1-x1(i);
Pcalc(i)=x1(i)*exp(a/(1+a/b*(x1(i)/x2(i)))^2)*Psat1+x2(i)*exp(b/(1+b/a*(x2(i)/x1
(i)))^2)*Psat2;
optimvlaar=optimvlaar+((Pcalc(i)-Pdata(i))/Pdata(i))^2;
end
function optimwilson=Wilson(inguess);
[x1,Pdata,Psat1,Psat2]=data;
optimwilson=0;
a12=inguess(1);
a21=inguess(2);
for i=2:(length(Pdata)-1);
x2(i)=1-x1(i);
Pcalc(i)=x1(i)*exp(-log(x1(i)+a12*x2(i))+x2(i)*(a12/(x1(i)+a12*x2(i))-a21/
(a21*x1(i)+x2(i))))*Psat1...
+x2(i)*exp(-log(x2(i)+a21*x1(i))-x1(i)*(a12/(x1(i)+a12*x2(i))-a21/
(a21*x1(i)+x2(i))))*Psat2;
optimwilson=optimwilson+((Pcalc(i)-Pdata(i))/Pdata(i))^2;
end
options=optimset('MaxFunEvals',1e8);
[A2margules,feval]=fminsearch('Twomargules',[1],options);
[A3margules,feval]=fminsearch('Threemargules',[0,0],options);
A12m=A3margules(1);
A21m=A3margules(2);
[Avanlaar,feval]=fminsearch('vanlaar',[1,1],options);
a=Avanlaar(1);
b=Avanlaar(2);
[Awilson,feval]=fminsearch('Wilson',[1,1],options);
a12=Awilson(1);
a21=Awilson(2);
[x1,Pdata,Psat1,Psat2]=data;
x1c(1)=0;x1c(101)=1;
y2margules(1)=0;y3margules(1)=0;yvanlaar(1)=0;ywilson(1)=0;
y2margules(101)=1;y3margules(101)=1;yvanlaar(101)=1;ywilson(101)=1;
for iter=2:100
x1c(iter)=.01*(iter-1);
x2c(iter)=(1-x1c(iter));
y2margules(iter)=x1c(iter)*exp(A2margules*x2c(iter)^2)*Psat1/(x1c(iter)*exp(A2ma
rgules*x2c(iter)^2)*Psat1+x2c(iter)*exp(A2margules*x1c(iter)^2)*Psat2);
y3margules(iter)=x1c(iter)*exp(x2c(iter)^2*(A12m+2*(A21m-
A12m)*x1c(iter)))*Psat1/(x1c(iter)*exp(x2c(iter)^2*(A12m+2*(A21m-
A12m)*x1c(iter)))*Psat1+x2c(iter)*exp(x1c(iter)^2*(A21m+2*(A12m-
A21m)*x2c(iter)))*Psat2);
yvanlaar(iter)=x1c(iter)*exp(a/(1+a/b*(x1c(iter)/x2c(iter)))^2)*Psat1/
(x1c(iter)*exp(a/(1+a/b*(x1c(iter)/x2c(iter)))^2)*Psat1+x2c(iter)*exp(b/
(1+b/a*(x2c(iter)/x1c(iter)))^2)*Psat2);
ywilson(iter)=x1c(iter)*exp(-log(x1c(iter)+a12*x2c(iter))+x2c(iter)*(a12/
(x1c(iter)+a12*x2c(iter))-a21/(a21*x1c(iter)+x2c(iter))))*Psat1/...
(x1c(iter)*exp(-log(x1c(iter)+a12*x2c(iter))+x2c(iter)*(a12/(x1c(iter)
+a12*x2c(iter))-a21/(a21*x1c(iter)+x2c(iter))))*Psat1+...
x2c(iter)*exp(-log(x2c(iter)+a21*x1c(iter))+x1c(iter)*(a12/(x1c(iter)
+a12*x2c(iter))-a21/(a21*x1c(iter)+x2c(iter))))*Psat2);
end
plot(x1c,y2margules,x1c,y3margules,x1c,yvanlaar,x1c,ywilson);
axis([0 1 0 1]);
title('Kurva y-x sistem ethyl-alcohol(1) - chloroform(2)');
legend('Two-Suffix Margules','Three-Suffix Margules','van-Laar','Wilson');
xlabel('x1 (fraksi mol dari ethyl-alcohol dalam cairan)')
ylabel('y1 (fraksi mol dari ethyl-alcohol dalam uap)')
clear all;
[A2margules,feval]=fminsearch('Twomargules',[1]);
[A3margules,feval]=fminsearch('Threemargules',[0,0]);
[Avanlaar,feval]=fminsearch('vanlaar',[1,1]);
[Awilson,feval]=fminsearch('Wilson',[0,0]);
A2margules=A2margules
A12m=A3margules(1)
A21m=A3margules(2)
a=Avanlaar(1)
b=Avanlaar(2)
a12=Awilson(1)
a21=Awilson(2)
x1=[0 0.0134 0.0242 0.0323 0.0443 0.0837 0.0875 0.09 0.1148 0.1794 0.2852 0.3717
0.4595 ...
0.486 0.5561 0.5985 0.6702 0.6884 0.7431 0.7989 0.8003 0.874 0.9288 0.9524
0.9811 0.9843 1];
ydata=[0 0.0273 0.0421 0.0546 0.0681 0.1026 0.1054 0.1067 0.1217 0.1484 0.1809
0.2046 0.2297...
0.2397 0.266 0.2857 0.3286 0.3443 0.394 0.4605 0.4634 0.6026 0.7533 0.8283
0.9284 0.94 1];
Psat1=172.76;
Psat2=433.54;
a12=0.117094661;
a21=1.144453812;
y2margules(1)=0;y3margules(1)=0;yvanlaar(1)=0;ywilson(1)=0;
y2margules(length(x1))=1;y3margules(length(x1))=1;yvanlaar(length(x1))=1;ywilson
(length(x1))=1;
for iter=2:(length(x1)-1)
x2(iter)=1-x1(iter);
y2margules(iter)=x1(iter)*exp(A2margules*x2(iter)^2)*Psat1/(x1(iter)*exp(A2margu
les*x2(iter)^2)*Psat1+x2(iter)*exp(A2margules*x1(iter)^2)*Psat2);
y3margules(iter)=x1(iter)*exp(x2(iter)^2*(A12m+2*(A21m-
A12m)*x1(iter)))*Psat1/(x1(iter)*exp(x2(iter)^2*(A12m+2*(A21m-
A12m)*x1(iter)))*Psat1+x2(iter)*exp(x1(iter)^2*(A21m+2*(A12m-
A21m)*x2(iter)))*Psat2);
yvanlaar(iter)=x1(iter)*exp(a/(1+a/b*(x1(iter)/x2(iter)))^2)*Psat1/
(x1(iter)*exp(a/(1+a/b*(x1(iter)/x2(iter)))^2)*Psat1+x2(iter)*exp(b/
(1+b/a*(x2(iter)/x1(iter)))^2)*Psat2);
ywilson(iter)=x1(iter)*exp(-1*log(x1(iter)+a12*x2(iter))+x2(iter)*(a12/
(x1(iter)+a12*x2(iter))-a21/(a21*x1(iter)+x2(iter))))*Psat1/...
(x1(iter)*exp(-1*log(x1(iter)+a12*x2(iter))+x2(iter)*(a12/(x1(iter)
+a12*x2(iter))-a21/(a21*x1(iter)+x2(iter))))*Psat1+...
x2(iter)*exp(-1*log(x2(iter)+a21*x1(iter))-x1(iter)*(a12/(x1(iter)
+a12*x2(iter))-a21/(a21*x1(iter)+x2(iter))))*Psat2);
end
disp('Hasil Perhitungan')
result=[x1' ydata' y2margules' y3margules' yvanlaar' ywilson'];
disp(result)
plot(x1,ydata,x1,y2margules,x1,y3margules,x1,yvanlaar,x1,ywilson);
axis([0 1 0 1]);
title('Kurva y-x system ethyl-alcohol(1) - chloroform(2)');
legend('Percobaan','Two-Suffix Margules','Three-Suffix Margules','van-
Laar','Wilson');
xlabel('x1 (Fraksi mol dari ethyl-alcohol dalam cairan)')
ylabel('y1 (Fraksi mol dari ethyl-alcohol dalam uap)')
» vle1
A2margules3 =
0.5183
B =
0.7147
Parameter Wilson
A12 =
0.1171
A21 =
1.1445
Nilai y dihitung dari empat persamaan menggunakan koefisien hasil perhitungan di atas, bersama
dengan data percobaan isotermal (45 oC) yang diperoleh Schatchard dan Raymond, 1938 (J. Am.
Chem. Soc, 60, 1278) ditunjukkan dalam tabel berikut ini:
x y
experiment 2 Suffix-Margules 3 Suffix-Margules van Laar Wilson
0 0 0 0 0 0
0.0134 0.0273 0.014118 0.023742 0.029739 0.032213
0.0242 0.0421 0.024951 0.040318 0.048401 0.050637
0.0323 0.0546 0.032776 0.051473 0.060074 0.061603
0.0443 0.0681 0.043926 0.066261 0.074539 0.074733
0.0837 0.1026 0.077219 0.103561 0.106636 0.10309
0.0875 0.1054 0.080188 0.106441 0.108899 0.105115
0.09 0.1067 0.082121 0.108279 0.110332 0.106403
0.1148 0.1217 0.10043 0.124374 0.122541 0.117654
0.1794 0.1484 0.141921 0.153333 0.144438 0.13989
0.2852 0.1809 0.196332 0.181319 0.171269 0.170365
0.3717 0.2046 0.233534 0.199686 0.194781 0.19674
0.4595 0.2297 0.268656 0.221642 0.224237 0.228142
0.486 0.2397 0.279267 0.229745 0.23468 0.23895
0.5561 0.266 0.308549 0.256238 0.266831 0.271544
0.5985 0.2857 0.327872 0.276946 0.29019 0.294793
0.6702 0.3286 0.365557 0.323274 0.338634 0.342389
0.6884 0.3443 0.376564 0.337911 0.353161 0.356567
0.7431 0.394 0.414828 0.391065 0.4039 0.405934
0.7989 0.4605 0.465472 0.463424 0.469949 0.470128
0.8003 0.4634 0.46695 0.465529 0.471841 0.471969
0.874 0.6026 0.566814 0.601953 0.593925 0.591251
0.9288 0.7533 0.688022 0.744553 0.726208 0.722125
0.9524 0.8283 0.763407 0.819646 0.800387 0.796424
0.9811 0.9284 0.887696 0.923582 0.910951 0.908503
0.9843 0.94 0.904631 0.936068 0.924996 0.922859
1 1 1 1 1 1
Kurva y-x (percobaan, 2-and 3-Suffix Margules, van Laar, and Wilson) ditunjukkan dibawah ini:
0.9
0.8
0.7 y=x
0.6 y experimental
y 2-Margules.
0.5
y
y 3-Margules
0.4 y van Laar
0.3 y Wilson
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
x