La Ecuación de Van Der Waals
La Ecuación de Van Der Waals
La Ecuación de Van Der Waals
En un gas ideal las molculas se consideran masas puntuales que interaccionan entre s mediante colisiones elsticas.
van der Waals introdujo correcciones que tenan en cuenta el volumen finito de las molculas y las fuerzas atractivas que una molcula ejerca sobre otra a distancias muy cercanas
entre ellas.
P es la presin del gas, V es el volumen, T es la temperatura, n es el nmero de moles y R la constante de los gases
Describe aproximadamente la conducta de los gases reales a muy bajas presiones.
La ecuacin de van der Waals tiene en cuenta el volumen finito de las molculas y las fuerzas atractivas que una molcula ejerce sobre otra a
distancias muy cercanas entre ellas.
(P+n2aV2)(Vnb)=nRT(P+n2aV2)(Vnb)=nRT
Las constantes a y b son caractersticos de cada gas y se obtienen a partir de los datos de la presin, Pc, volumen Vc y la
temperatura Tc crtica. El punto crtico es un punto de inflexin de la isoterma Tc en el diagrama P-V de modo que se cumple que
Pc=a27b2Pc=a27b2
Escribimos la ecuacin de van der Waals universal ms simple en trminos de nuevas variables: p=P/Pc, v=V/Vc y t=T/Tc
(p+3v2)(3v1)=8t(p+3v2)(3v1)=8t
p=8t3v13v2p=8t3v13v2
Creamos un script para representar las isotermas de temperaturas t=0.8,0.9,1.0,1.1 y 1.2. Sealamos con una marca el punto crtico tal
como se aprecia en la figura
f=@(t,x) 8*t./(3*x-1)-3./(x.^2);
hold on
axis([0.5 4 0 2])
for t=0.8:0.1:1.2;
v=linspace(0.5,4,100);
p=f(t,v);
plot(v,p)
end
plot(1,1,'ro')
xlabel('V_R')
ylabel('P_R')
grid on
hold off
Examinamos las isotermas por debajo de la temperatura crtica t<1.
En la figura vemos que para una determinada presin p, la recta p=cte corta a la curva en tres puntos A, B y C. Los volmenes v1, v2 y v3 que
corresponden a estos tres puntos se obtienen resolviendo la ecuacin cbica
v38t+p3pv2+3pv1p=0v38t+p3pv2+3pv1p=0
Para obtener las races, utilizamos la funcin roots de MATLAB o la funcin raices_3 que nos calcula las tres races exactas de una ecuacin de
tercer grado.
function x = raices_3(p)
Q=(p(2)*p(2)-3*p(3))/9;
R=(2*p(2)^3-9*p(2)*p(3)+27*p(4))/54;
x=zeros(3,1);
if (R*R)<(Q^3)
tetha=acos(R/sqrt(Q^3));
x(1)=-2*sqrt(Q)*cos(tetha/3)-p(2)/3;
x(2)=-2*sqrt(Q)*cos((tetha+2*pi)/3)-p(2)/3;
x(3)=-2*sqrt(Q)*cos((tetha-2*pi)/3)-p(2)/3;
else
A=-sign(R)*nthroot(abs(R)+sqrt(R*R-Q^3),3);
if A==0
B=0;
else
B=Q/A;
end
x(1)=(A+B)-p(2)/3;
x(2)=-(A+B)/2-p(2)/3+(sqrt(3)*(A-B)/2)*sqrt(-1);
x(3)=-(A+B)/2-p(2)/3-(sqrt(3)*(A-B)/2)*sqrt(-1);
end
end
Ordenamos los valores de las races de menor a mayor mediante la funcin sort de MATLAB.
La isoterma de temperatura t, tiene un mnimo y un mximo local. Determinamos sus coordenadas (vm1, pm1) y (vm2, pm2) calculando la
derivada primera e igualando a cero.
En la zona de transicin entre la fase gaseosa y la fase lquida la presin no oscila, se mantiene constante y el potencial qumico se mantiene
constante. La regla de Maxwell elimina el comportamiento oscilante de la isoterma de la ecuacin de van der Waals y la sustituye por un
segmento horizontal de presin pr tal que el rea comprendida entre el segmento horizontal AB y la isoterma es igual al rea comprendida
entre la isoterma y el segmento horizontal BC, tal como se ve en la figura ms abajo.
v2v3pdvp(v3v2)=83tln3v313v21+3(1v31v2)p(v3v2)v2v3pdvp(v3v2)=83tln3v313v21+3(1v31v2)p(v3v2)
Creamos una funcin denominada igualArea que calcule la diferencia entre las dos reas A1-A2.
function res=igualArea(p,t)
pol=[1 -(p+8*t)/(3*p) 3/p -1/p];
v = sort(raices_3(pol));
area_1 = p*(v(2)-v(1))-8/3*t*log((3*v(2)-1)
/(3*v(1)-1))-3*(v(1)-v(2))/(v(1)*v(2));
area_2 =8/3*t*log((3*v(3)-1)/(3*v(2)-1))+3*(v(2)-v(3))
/(v(2)*v(3))-p*(v(3)-v(2));
res=area_1-area_2;
end
Creamos un script para realizar las siguientes tareas:.
%mximo y mnimo
pol=[1 -9/(4*t) 3/(2*t) -1/(4*t)];
z=sort(raices_3(pol));
plot(z(1),f(z()),z(2),f(z(2)),'k*',z(3),f(z(3)),'k*')
if f(z(2))>0
a=f(z(2))+0.01;
else
a=0.01;
end
b=f(z(3))-0.01;
%calcula p para que las reas sean iguales
f1=@(p)igualArea(p,t);
p=fzero(f1,[a b]);
%igualArea(p,t) %para comprobar que las areas son iguales
plot([0 4],[p p],'k--')
pol=[1 -(p+8*t)/(3*p) 3/p -1/p];
v = sort(raices_3(pol));
plot(v(1),p,'bo',v(2),p,'bo',v(3),p,'bo')
%rellenar la areas
xx = [v(1) Vr(Vr >= v(1) & Vr <= v(2)) v(2)];
yy = [f(v(1)) Pr(Vr >= v(1) & Vr <= v(2)) f(v(2))];
fill(xx,yy,'y')
hold off
Ahora vamos a dibujar varias isotermas por encima y por debajo del punto crtico t=1. Sustituiremos la regin ondulada entre vliquido y vgas a la
presin pr por un segmento y uniremos los puntos que marcan la regin de coexistencia de las dos fases, tal como se muestra en la figura.
Creamos un script para que realice las siguientes tareas.
Vr=linspace(0.1,4,100);
hold on
i=1;
PV=zeros(9,2);
axis([0.4 4 0.2 1.4])
for t=0.8:0.05:1.2;
f=@(x) 8*t./(3*x-1)-3./(x.^2);
if t<1
%calcula mximo y mnimo local de p
pol=[1 -9/(4*t) 3/(2*t) -1/(4*t)];
z=sort(raices_3(pol));
if f(z(2))>0
a=f(z(2))+0.01;
else
a=0.01;
end
b=f(z(3))-0.01;
%calcula p para que las reas sean iguales
f1=@(p)igualArea(p,t);
p=fzero(f1,[a b]);
pol=[1 -(p+8*t)/(3*p) 3/p -1/p];
v = sort(raices_3(pol));
%guarda Vlquido, Vgas y la presin constante p
PV(i,1)=v(1);PV(i,2)=p;
PV(i+1,1)=v(3);PV(i+1,2)=p;
i=i+2;
%grfica
Pr=f(Vr);
Vf = [Vr(Vr <= v(1)) v(1) v(3) Vr(Vr>= v(3))];
Pf = [Pr(Vr <= v(1)) f(v(1)) f(v(3)) Pr(Vr>= v(3))];
plot(Vf,Pf,'r')
else %en el punto crtico y por encima
Pr=f(Vr);
plot(Vr,Pr,'r')
end
end
%une los puntos (p Vlquido), (p Vgas) cambio de fase
PV(i,1)=1; PV(i,2)=1; %punto crtico
PVs=sortrows(PV,1);
plot(PVs(:,1),PVs(:,2),'b')
plot(1,1,'bo') %punto crtico
xlabel('V_R')
ylabel('P_R')
hold off