Sei sulla pagina 1di 36

UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU

FACULTAD DE INGENIERIA QUIMICA

FISICOQUIMICA I

ALGUNOS PROBLEMAS SOLUCIONADOS CON MATLAB

ERZ
2006-II
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU
FACULTAD DE INGENIERIA QUÍMICA

FISICOQUÍMICA I

GASES IDEALES CON MATLAB

2006 – II
PROGRAMA PARA LA LEY DE BOYLE

%Ley de Bolye-Mariotte PV = K
%PV = nR.T n=1 y R=0.08205 t=25+273=298°K
clc
hold off
clear all; clear memory; clear command history; clc
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
hold on; grid on; title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión - atm '); xlabel(' Volúmen - Lts ');
plot(V,P,xox);
end
h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',1); axis([0 60 0 10])

% Para el caso del gráfico (P vs 1/V)


figure; hold on; grid on
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión - atm '); xlabel(' Volúmen (1/V) Lts -1 ');
plot((1./V),P,xox)
end
h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',4); axis([0 0.45 0 10])

% Para el caso del gráfico (P.V vs 1/V )


figure; hold on; grid on
for T=298:100:698;
K = 1.*0.08205.*T ;
P=1:0.01:10;
V = K./P ; PV=P.*V ;
switch T
case 298
xox='-r';
case 398
xox='-k';
case 498
xox='-b';
case 598
xox='-m';
case 698
xox='-.R';
end
title(' Perfiles de la Ley de Boyle - Mariotte ')
ylabel(' Presión*Volumen - atm*L '); xlabel(' Volúmen (1/V) Lts -1 ');
plot((1./V),PV,xox)
end
h = legend('T=298°K','T=398°K','T=498°K','T=598°K','T=698°K',1);

RESULTADOS
PROGRAMA PARA LA LEY DE CHARLES

%Ley de Charles V/T = K Proceso a Presión constante


%PV = nR.T n=1 y R=0.08205 P=1 atm
clc
hold off
clear all; clear memory; clear command history; clc
for P=1:5:21;
K = 1.*0.08205./P ;
V=0.05:0.05:10;
T = V./K ;
switch P
case 1
xox='-r';
case 6
xox='-k';
case 11
xox='-b';
case 16
xox='-m';
case 21
xox='-.R';
end
hold on; grid on; title(' Perfiles de la Ley de Charles ')
ylabel('Volúmen - Lts '); xlabel(' Temperatura °K ');
plot(T,V,xox);
end
h = legend('P=1 atm','P=6 atm','P=11 atm','P=16 atm','P=21 atm',4); axis([0 3000 0 10])

% Para el caso del gráfico (P vs 1/T)


figure; hold on; grid on
for P=1:5:21;
K = 1.*0.08205./P ;
V=0.05:0.05:10;
T = V./K ;
switch P
case 1
xox='-r';
case 6
xox='-k';
case 11
xox='-b';
case 16
xox='-m';
case 21
xox='-.R';
end
hold on; grid on; title(' Perfiles de la Ley de Charles ')
ylabel('Volúmen - Lts '); xlabel(' Temperatura (1/T) °K-1 ');
plot((1./T),V,xox);
end
h = legend('P=1 atm','P=6 atm','P=11 atm','P=16 atm','P=21 atm',1); axis([0 0.035 0 10])

% Para el caso del gráfico (P.V vs 1/V )


figure; hold on; grid on
for P=1:5:21;
K = 1.*0.08205./P ;
V=0.01:0.01:10;
T = V./K ;
switch P
case 1
xox='-r';
case 6
xox='-k';
case 11
xox='-b';
case 16
xox='-m';
case 21
xox='-.R';
end
hold on; grid on; title(' Perfiles de la Ley de Charles ')
ylabel('Volúmen - Lts '); xlabel(' Temperatura (t) °C ');
plot((T-273),V,xox)
end
h = legend('P=1 atm','P=6 atm','P=11 atm','P=16 atm','P=21 atm',4); axis([-500 2500 0 10])

RESULTADOS
PROBLEMA: Para un mol de nitrógeno a 0,00 °C se miden los siguientes volúmenes en
función de la presión:
P/atm 1,00 3,00 5,00
V/cm3 22 405 7 461,4 4 473,1
Calcule y represente PV / nT frente a P para estos tres puntos y extrapole a P=0 para calcular
R - (Tomado del texto de Química-física – IRA LEVINE)

SOLUCION

% Calculo de R
%para una mol de N2 a 0,0 °C se miden los siguientes volumenes
clear all, clear memory; clear command history, clc; format short g;
P=[1 3 5];
V=[22405 7461.40 4473.10];
% Calcular R
T=0+273;
n=1.0; K=V/T;
R = P.*K
plot(P,R,'o-'); axis([0 5 81.90 82.15]); xlabel('Presión - P')
ylabel('R=P*V/T - Constante Universal de Gases')
xx=polyfit(P,R,1);
pendiente=xx(1);
intersecc=xx(2);

figure
PP = 0.0:0.1:5;
RR = PP.*xx(1) + xx(2);
plot(P,R,'o',PP,RR,'.-'); xlabel('Presión - P')
ylabel('R=P*V/T - Constante Universal de Gases')
[PP',RR'],[intersecc']

Gráfico N° 1
Gráfico N° 2

RESULTADOS

R=

82.07 81.993 81.925

ans =

0 82.104
0.1 82.101
0.2 82.097
0.3 82.094
0.4 82.09
0.5 82.086
0.6 82.083
0.7 82.079
0.8 82.076
0.9 82.072
1 82.068

intersecc =

82.104
PROBLEMA: La densidad media de una amina a 0°C en función de la presión es:
P/atm 0,20 0,50 0,80
D/(g/l) 0,2796 0,7080 1,1476
Represente P / D frente a P y extrapole a P=0 para obtener un valor exacto del peso
molecular - (Tomado del texto de Química-física – IRA LEVINE)

SOLUCION

% Densidad de un gas
clear all; clear memory; clear command history; clc;
P=[0.2 0.5 0.8];
densi=[0.2796 0.7080 1.1476];
rr=P./densi;
plot(P,rr,'-or')
axis([0 0.8 0.695 0.73])
xx=polyfit(P,rr,1);
pendiente=xx(1)
intersecc=xx(2)
PP=0:0.05:0.8;
densi1=xx(2)+xx(1).*PP ;
figure
plot(P,rr,'o',PP,densi1,'.-');
PM = 0.08205*273.15/intersecc

GRAFICO N° 1
GRAFICO N° 2

pendiente = -0.030334

intersecc = 0.72138

PM = 31.068
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU
FACULTAD DE INGENIERIA QUÍMICA

FISICOQUÍMICA I

GASES REALES CON MATLAB

2006 – II
PROGRAMA PARA EL CALCULO DEL VOLUMEN CON LA ECUACION DE VAN
DER WAALS

% Calculo del volumen con Ecuación de Van Der Waals Metano


clear all; clear memory; clear command history; clc
T=273; % °K
P=100; % atm
Tc=190.6 % °K
Pc=45.4 % atm
R=0.08205
b=R*Tc/(8*Pc)
a=27*R*R*Tc*Tc / (64*Pc)
Vm=0.1:0.1:100;
PP = ((R.*T./(Vm - b)) - (a./(Vm.*Vm)));
plot(Vm,PP); grid on
nombre_f='( (R.*T./(x - b)) - (a./(x.*x)) )-P';
i=1; delta=0.005; x0=0.05; e=1;
while e>3E-12 & i<=18
x=x0;
fx0=eval(nombre_f);
x=x0-delta;
df1=eval(nombre_f);
x=x0+delta;
df2=eval(nombre_f);
dfx0=(df2-df1)./(2.*delta);
r=x0-(fx0./dfx0);
e=abs((r-x0)./r);
x0=r;
i=i+1;
end
fprintf('la raiz es:%10.9f\n',x0);
axis([0 4 0 120])

RESULTADOS

la raiz es:0.165435983
PROBLEMA: COMPORTAMIENTO IDEAL Y REAL PARA EL GAS ETANO

% problema: Comportamiento Ideal y Real


clear all; clear memory; clear command history; clc
Tc=305.4; Pc=48.2; R=0.08205;
T=310.65; V=0.2; We=74.8;
nE=We/30
Vm=V/nE
P = nE * R * T / V

% Caso de la Ecuación de VAN DER WAALS


b=R*Tc/(8*Pc);
a=27*R*R*Tc*Tc / (64*Pc);
PP=(R*T /(Vm - b)) - (a /(Vm*Vm));

V=0.2:0.05:5;
Vm=V/nE;
P = nE .* R .* T ./ V; % Comportamiento Ideal
PP=(R.*T./(Vm - b)) - (a./(Vm.*Vm)); % Comportamiento Real
plot(V,P,'.-b',V,PP,'-r'); title('COMPORTAMIENTO IDEAL Y REAL PARA EL GAS ETANO')
xlabel('VOLUMEN (V) - Lts'); ylabel('PRESION - atm');
text(2,700,['Vm = ',num2str(Vm(1)),' Lts']); text(2,650,['nE = ',num2str(nE),' mol']);
text(2,600,['Tc = ',num2str(Tc),' °K']); text(2,550,['Pc = ',num2str(Pc),' atm']);
text(2,500,['a = ',num2str(a),' cms']); text(2,450,['b = ',num2str(b),' cms']);
text(2,400,['T = ',num2str(T),' °K']);
text(2,300,['Presión Ideal = ',num2str(P(1)),' atms']);
text(2,250,['Presión Real = ',num2str(PP(1)),' atms']);
text(2,200,['Problema 8.5 - FQ- Ira Levine ']);
h = legend('Comportamiento Ideal','Comportamiento Real',1);

%Simulacion a diferentes condiciones


figure; hold on
for T=310.65:200:1110.65
V=0.2:0.05:5;
Vm=V/nE;
P = nE .* R .* T ./ V; % Comportamiento Ideal
PP=(R.*T./(Vm - b)) - (a./(Vm.*Vm)); % Comportamiento Real
switch T
case 310.65
xox='-r';
case 510.65
xox='-k';
case 710.65
xox='-b';
case 910.65
xox='-m';
case 1110.65
xox='-.R';
end

plot(V,PP,xox); title('COMPORTAMIENTO PARA EL GAS ETANO A DIFERENTES


TEMPERATURAS');
xlabel('VOLUMEN (V) - Lts'); ylabel('PRESION - atm');
end
h = legend('T=310.65°K','T=510.65°K','T=710.65°K','T=910.65°K','T=1110.65°K',1); axis([0 3 0
1000])
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU
FACULTAD DE INGENIERIA QUÍMICA

FISICOQUÍMICA I

TERMOQUIMICA CON MATLAB

2006 – II
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU
FACULTAD DE INGENIERIA QUÍMICA

FISICOQUÍMICA I

Aumenta T

EQUILIBRIO QUIMICO CON MATLAB

2006 – II
% Constante de Equilibrio

clear all; clear memory; clear command history; clc;


t=[600 1000];
t=t+273.15;
t=1./t;
kp=[0.900 0.396];
lnkp=log(kp);
plot(t,kp,'o-'); xlabel('1/T - Temperatura -1'); ylabel('Ln Kp')
title(' GRAFICO DE lnkp vs 1/T ')
xx=polyfit(t,lnkp,1);
pendiente=xx(1);
% COmprobando el valor de la pendiente
m=(log(0.396)-log(0.90))/((1/1273.15)- (1/873.15));
Interseccion=xx(2);
DH=-8.314*pendiente/1000
DG=-8.314*(600+273.15)*log(0.90)/1000 % Unidades kJ/mol
DS=((DH-DG)/(600+273.15))*1000
grid on
% Calculo de la fraccion mol de CO2 en la fase gaseosa a 600°C
% para la reaccion sgte: FeO(s) + CO(g) ---> Fe(s) + CO2(g)
clc;
xx=0.90/1.90;
%clc;
% Respuestas
disp('-------------------------------------------------------------------')
disp('CALCULO DE ENTALPIA - ENERGIA DE GIBBS - ENTROPIA')
disp('A PARTIR DE LOS SIGUINTES DATOS:')
disp('T=[600 1000]°C y kp=[0.900 0.396]')
disp('-------------------------------------------------------------------')
fprintf('Entalpia = %g (kJ/mol)\n',DH)
fprintf('Energía Gibbs = %g (kJ/mol)\n',DG)
fprintf('Entropia = %g ( J/mol)\n',DS)
fprintf('Fraccion Mol de CO2 a 600°C = %g ( J/mol)\n',xx)
disp(' ')
disp('-------------------------------------------------------------------')
RESULTADOS
PROBLEMA DE AMONIACO

%PROGRAMA PARA EL PROCESO DE AMONIACO


clear all; clear memory; clear command history; clc;
ce1 = 2;
ce2 = 3;
ce3 = 1;
T=298; To=298; P=1;
for P=1:1:5;
T1=300:20:700;
a1 = 2.73.*10; b1 = 2.38E-2; c1 = 1.71E-5; d1 = -1.19E-8;
a2 = 2.71.*10; b2 = 9.27E-3; c2 = -1.38E-5; d2 = 7.65E-9;
a3 = 3.12.*10; b3 = -1.36E-2; c3 = 2.68E-5; d3 = -1.17E-8;
H=-45700;
syms T
dCp = (ce1*a1-ce2*a2-ce3*a3)+(ce1*b1-ce2*b2-ce3*b3)*T+(ce1*c1-ce2*c2-
ce3*c3)*T^2+(ce1*d1-ce2*d2-ce3*d3)*T^3;
I=H-((ce1*a1-ce2*a2-ce3*a3)*To+(ce1*b1-ce2*b2-ce3*b3)/2*To^2+(ce1*c1-ce2*c2-
ce3*c3)/3*To^3+(ce1*d1-ce2*d2-ce3*d3)/4*To^4);
DH=I+(ce1*a1-ce2*a2-ce3*a3)*T+(ce1*b1-ce2*b2-ce3*b3)/2*T^2+(ce1*c1-ce2*c2-
ce3*c3)/3*T^3+(ce1*d1-ce2*d2-ce3*d3)/4*T^4;
%DH1=I+(ce1.*a1-ce2.*a2-ce3.*a3).*T1+(ce1.*b1-ce2.*b2-ce3.*b3)./2.*T1.^2+(ce1.*c1-
ce2.*c2-ce3.*c3)./3.*T1.^3+(ce1.*d1-ce2.*d2-ce3.*d3)./4.*T1.^4;
R = 8.314; % En joules
Go = -16160; % En joules
To = 298;
ko = exp(-Go/(R*To));
Ka=exp(33.3398+(3642.8./T1)-6.97.*log(T1)+0.0020086.*T1+0.0000009776.*T1.^2-
0.00000000035041.*T1.^3);
Tc1 = 405.7; Tc2 = 33.19; Tc3 = 126.2;
Pc1 = 111.32; Pc2 = 12.96; Pc3 = 33.55;
Pr1 = P./Pc1; Pr2 = P./Pc2; Pr3 = P./Pc3;
Tr1 = T1./Tc1; Tr2 = T1./Tc2; Tr3 = T1./Tc3;
w1=0.253; w2=-0.216; w3=0.038;
Bo1=0.083-0.422./Tr1.^1.6; Bo2=0.083-0.422./Tr2.^1.6; Bo3=0.083-0.422./Tr3.^1.6;
B11=0.139-0.172./Tr1.^4.2; B12=0.139-0.172./Tr2.^4.2; B13=0.139-0.172./Tr3.^4.2;
Fi1=2.7182.^((Pr1./Tr1).*(Bo1+w1.*B11));
Fi2=2.7182.^((Pr2./Tr2).*(Bo2+w2.*B12));
Fi3=2.7182.^((Pr3./Tr3).*(Bo3+w3.*B13));
Fit=Fi1.^ce1./((Fi2.^ce2).*(Fi3.^ce3));
nombre_f='(4.*Fit.*(x.^2).*(4-2.*x).^2./((1-x).*(P.^2).*(3-3.*x).^3))- Ka';
i=1; delta=0.05; x0=0.88; e=1;
while e>3E-12 & i<=18
x=x0;
fx0=eval(nombre_f);
x=x0-delta;
df1=eval(nombre_f);
x=x0+delta;
df2=eval(nombre_f);
dfx0=(df2-df1)./(2.*delta);
r=x0-(fx0./dfx0);
e=abs((r-x0)./r);
x0=r;
i=i+1;
end
%fprintf('la raiz es:%10.9f\n',x0);
hold on
switch P
case 1
xox='-r';
case 2
xox='-k';
case 3
xox='-b';
case 4
xox='-m';
case 5
xox='-R';
end
plot(T1,x0,xox); h = legend('P=1 atm','P=2 atm','P=3 atm','P=4 atm','P=5 atm',1);
xlabel('Temperatura - °K'); ylabel('Extensión de la reacción');
title('EXTENSION VS TEMPERTAURA PARA EL PROCESO AMONIACO')
axis([250 700 0 1])
grid on
P,[T1' x0' Fit']
end
%fprintf('la raiz es:%10.9f\n',x0)

RESULTADOS
DATA PRESION VS TEMPERATURA VS EXTENSION

P= 1 P= 2 P=3 P=4

300.0000 0.8267 300.0000 0.8771 300.0000 0.8998 300.0000 0.9135


320.0000 0.7710 320.0000 0.8365 320.0000 0.8664 320.0000 0.8845
340.0000 0.7079 340.0000 0.7895 340.0000 0.8274 340.0000 0.8504
360.0000 0.6393 360.0000 0.7368 360.0000 0.7831 360.0000 0.8116
380.0000 0.5677 380.0000 0.6796 380.0000 0.7343 380.0000 0.7683
400.0000 0.4960 400.0000 0.6192 400.0000 0.6818 400.0000 0.7214
420.0000 0.4271 420.0000 0.5575 420.0000 0.6268 420.0000 0.6715
440.0000 0.3633 440.0000 0.4964 440.0000 0.5707 440.0000 0.6198
460.0000 0.3062 460.0000 0.4375 460.0000 0.5149 460.0000 0.5674
480.0000 0.2565 480.0000 0.3824 480.0000 0.4607 480.0000 0.5154
500.0000 0.2142 500.0000 0.3320 500.0000 0.4092 500.0000 0.4649
520.0000 0.1787 520.0000 0.2869 520.0000 0.3615 520.0000 0.4168
540.0000 0.1493 540.0000 0.2473 540.0000 0.3179 540.0000 0.3719
560.0000 0.1251 560.0000 0.2128 560.0000 0.2787 560.0000 0.3306
580.0000 0.1053 580.0000 0.1833 580.0000 0.2440 580.0000 0.2931
600.0000 0.0891 600.0000 0.1581 600.0000 0.2135 600.0000 0.2594
620.0000 0.0758 620.0000 0.1366 620.0000 0.1870 620.0000 0.2295
640.0000 0.0648 640.0000 0.1185 640.0000 0.1640 640.0000 0.2032
660.0000 0.0559 660.0000 0.1031 660.0000 0.1441 660.0000 0.1800
680.0000 0.0485 680.0000 0.0901 680.0000 0.1270 680.0000 0.1598
700.0000 0.0424 700.0000 0.0791 700.0000 0.1122 700.0000 0.1421
1. Encontrar la presión de rocío y la composición en la fase líquida para una mezcla vapor de
55% de acetona (1) y 45% de hexano (2) a la temperatura de 20ºC.

Datos:

Tc (K) Pc Zc Vc ω A B C
(bar) cm3/mol
1 508,1 47,0 0.232 209 0.304 7,11714 1210,595 229,664
2 507.5 30,1 0,264 370 0,299 6,91058 1189,64 226,280

Donde :
B
A, B, C: constantes de Antoine: log(Psat ) = A − , T: ºC y Psat : mmHg.
( T + C)
Los parámetros de Margules son: A12 = 1,7448, A21 = 1,8012.

ALGORITMO
Leer temperatura (T1) y fracción molar gaseosa (Y1) – Constantes

Hacer Φi = 1.0 y Gammai = 1.0

Calcular Psat

Calcular Presión: P = 1 / ∑( Yi * Φi / Gammai* Pisat )

Calcular Xi Xi = ( Yi * Φi * P ) / (Gammai * Pisat )

Evaluar Gammai ( Ecuación de Margules )

Recalcular P P = = 1 / ∑( Yi * Φi / Gammai* Pisat )

Evaluar Φi

Recalcular Xi = ( Yi * Φi * P ) / (Gammai * Pisat )

Como es ∑ Xi

Normalizar Xi Dado lo valores de X1 y X2,


donde Xi = ( Xi / ∑ Xi )

Recalculamos Gammai

No

Es ∆ Gammai < 0

Si
Φ

Calcular Presión: P = 1 / ∑( Yi * Φi / Gammai* Pisat )

γ
No

Es ∆ P < 0

Si

Pi Xi

%Programa para el problema 5


%(1) Acetona (2)Hexano
clear all; clear command history; clc;
y1 = 0.55; y2 = 0.45;
T = 20 + 273;
%Calculo de la Psat Con Constantes de ANTOINE
A1 = 7.11714; B1 = 1210.595; C1 = 229.664;
A2 = 6.91058; B2 = 1189.64; C2 = 226.280;
Psat1 = exp(A1 - B1 / (T + C1));
Psat2 = exp(A2 - B2 / (T + C2));

% Calculo de la presion
fi1=1; fi2=1; gama1=1.0; gama2=1.0;
P=1/( y1*fi1/(gama1*Psat1) + y2*fi2/(gama2*Psat2) )

% Calculo de X1 y X2
x1=y1*fi1*P/(gama1*Psat1);
x2=y2*fi2*P/(gama2*Psat2);

% Calculo de gama1 y gama2 MARGULES


A12 = 1.7448; A21 = 1.8012;
gama1 = exp(x2 ^ 2 * (A12 + 2 * x1 * (A21 - A12)))
gama2 = exp(x1 ^ 2 * (A21 + 2 * x2 * (A12 - A21)))

% Calcular P
PP=1/( y1*fi1/(gama1*Psat1) + y2*fi2/(gama2*Psat2))
gama11=0; gama22=0;
while (PP-P)>0.00001
% Evaluar fi1 y fi2
Tc1 = 508.1; Tc2 = 507.5;
Pc1 = 47. * 750.0617; Pc2 = 30.1 * 750.0617;
w1 = 0.304; w2 = 0.299;
Tr1 = T / Tc1; Tr2 = T / Tc2;
Pr1 = PP / Pc1; Pr2 = PP / Pc2;
B01 = 0.083 - 0.422 / Tr1 ^ (1.6);
B02 = 0.083 - 0.422 / Tr2 ^ (1.6);
B11 = 0.139 - 0.172 / Tr1 ^ (4.2);
B12 = 0.139 - 0.172 / Tr2 ^ (4.2);
fi1 = exp(Pr1 / Tr1 * (B01 + w1 * B11));
fi2 = exp(Pr2 / Tr2 * (B02 + w2 * B12));

while gama11-gama1>0.00000001
%Nuevo calculo de x1 y x2
xx1 = y1*fi1*PP/(gama1*Psat1)
xx2 = y2*fi2*PP/(gama2*Psat2)
xtot = xx1 + xx2
xx1 = xx1/(xx1+xx2); xx2=xx2/(xx1+xx2); %forzando a uno
xtot1 = xx1 + xx2
x1 = xx1
x2 = xx2

%Recalculo de gama1 y gama2


gama1=gama11
gama2=gama22
A12 = 1.7448; A21 = 1.8012;
gama11 = exp(x2 ^ 2 * (A12 + 2 * x1 * (A21 - A12)))
gama22 = exp(x1 ^ 2 * (A21 + 2 * x2 * (A12 - A21)))
end

P=PP
PP = 1/( y1*fi1/(gama1*Psat1) + y2*fi2/(gama2*Psat2))
end
[ x1 x2 P ]'

ans =

0.5048
0.4952
176.6582
176.6582
PROGRAMQ

%TRATAMIENTO TERCIARIO DE AGUAS RESIDUALES CON CARBON ACTIVADO


clc;clear memory;clear command history;clear all
format short g
p1=[0.76 1.52 2.28]; t1=[740 1789 2780];
y1=polyfit(p1,t1,1);
m1=y1(1); %pendiente ;
b1=y1(2); %ordenada al origen
p11=[0.0:0.01:2.40]; %plot(p11,p11*m1+b1);
hold on
%----------------
p2=[0.76 1.52 3.04]; t2=[180 560 1330];
y2=polyfit(p2,t2,1);m2=y2(1); b2=y2(2);
p22=[0.0:0.01:3.10]; %plot(p22,p22*m2+b2);
%--------------
p3=[1.52 3.04 4.56]; t3=[170 500 830];
y3=polyfit(p3,t3,1);m3=y3(1); b3=y3(2);
p33=[0.0:0.01:5.00]; %plot(p33,p33*m3+b3);
%------------------
p4=[1.52 4.56 7.60]; t4=[60 390 730];
y4=polyfit(p4,t4,1); m4=y4(1); b4=y4(2);
p44=[0.0:0.01:8.00]; %plot(p44,p44*m4+b4);
grid on
plot(p11,p11*m1+b1,p22,p22*m2+b2,p33,p33*m3+b3,p44,p44*m4+b4);
text(2.2,2560,'Experimento 1','BackgroundColor',[.7 .9 .7]);text(3,1060,'Experimento
2','BackgroundColor',[.7 .9 .7]);
text(4.7,700,'Experimento 3','BackgroundColor',[.7 .9 .7]), text(5.7,400,'Experimento
4','BackgroundColor',[.7 .9 .7]);
xlabel('Profundidad D (m)'); ylabel('Tiempo t (h)'); title('REPRESENTACION DE TIEMPO-t vs
PROFUNDIDAD DE LECHO-D','BackgroundColor',[.7 .9 .7])
hold off
%---------------------
%Caudal en m3/hr y diametro del lecho de prueba piloto en mts
qa1=0.00248; qa2=0.0049; qa3=0.0099; qa4=0.0198; diamlecho=0.0254;
%Caudal en L/(min*m2) - el factor de conversion de conversion de m3/hr a L/(min*m2) es
21.2207
qa11=(4*1000/(60*pi))*qa1/(diamlecho^2);
qa22=(4*1000/(60*pi))*qa2/(diamlecho^2);
qa33=(4*1000/(60*pi))*qa3/(diamlecho^2);
qa44=(4*1000/(60*pi))*qa4/(diamlecho^2);
%Calculo de la velocidad en mts/hr
v1=0.06*qa11;
v2=0.06*qa22;
v3=0.06*qa33;
v4=0.06*qa44;
%Calculo de la concentracion inicial de contaminante en mg/L - el factor de
%conversion es 0.001 para que este dado en Kg/m3 - debe ingresar con input Coo y Cee
Coo=20; Cee=1;
Co=0.001*Coo; Ce=0.001*Cee;
%Calculo de No en Kg/m3
No1=Co*v1*m1;
No2=Co*v2*m2;
No3=Co*v3*m3;
No4=Co*v4*m4;
%Calculo de la constante de velocidad - m3/(Kg de carbon * hr)
%Se trabaja con Coo=20 y Cee=1 Ambos deben ingresar con imput
k1=-log((Co/Ce)-1)/(b1*Co);
k2=-log((Co/Ce)-1)/(b2*Co);
k3=-log((Co/Ce)-1)/(b3*Co);
k4=-log((Co/Ce)-1)/(b4*Co);
%Calculo de la profundidad crítica (mts)
Do1=log((Co/Ce)-1)*v1 / (k1*No1);
Do2=log((Co/Ce)-1)*v2 / (k2*No2);
Do3=log((Co/Ce)-1)*v3 / (k3*No3);
Do4=log((Co/Ce)-1)*v4 / (k4*No4);
%Grafico de los datos encontrados
figure
Q=[qa11 qa22 qa33 qa44]; KK=[k1 k2 k3 k4]; DD=[Do1 Do2 Do3 Do4]; NN=[No1 No2 No3
No4];
subplot(2,2,1);plot(Q,KK,'*-');xlabel('Caudal-L/(min*m2)');ylabel('K - m3/(Kg*hr)');grid on
subplot(2,2,2);plot(Q,DD,'O-');xlabel('Caudal-L/(min*m2)');ylabel('Do - m)');grid on
subplot(2,2,3);plot(Q,NN,'*-');xlabel('Caudal-L/(min*m2)');ylabel('No - Kg/m3)');grid on
%----
%Ajuste de curva para encontrar la ecuacion de cada una de ellas
Q1Q=[81.5:50:681.5];
k2 =polyfit(Q,KK,2); % ES IGUAL A [p,S] = polyfit(Q,KK,2)
ko2=k2(1).*Q1Q.*Q1Q + k2(2).*Q1Q + k2(3);
cof11=k2(1); cof22=k2(2); cof33=k2(3);
%k3=polyfit(Q,KK,3) %Existe mucha dispersion, por lo que se desecha
%ko3=k3(1).*Q1Q.*Q1Q.*Q1Q + k3(2).*Q1Q.*Q1Q + k3(3).*Q1Q + k3(4)
n2 =polyfit(Q,NN,2); % Es igual a [p,s]=polyfit(Q,NN,2)
no2=n2(1).*Q1Q.*Q1Q + n2(2).*Q1Q + n2(3);
cof1=n2(1); cof2=n2(2); cof3=n2(3);
%n3 =polyfit(Q,NN,3); %Existe mucha dispersion, por lo que se desecha
%no3=n3(1).*Q1Q.*Q1Q.*Q1Q + n3(2).*Q1Q.*Q1Q + n3(3).*Q1Q + n3(4)
%no33=(no2+no3)/2
%plot(Q,NN,'*-',Q1Q,no2,'o-',Q1Q,no3,'*-')
d2 =polyfit(Q,DD,2);
do2=d2(1).*Q1Q.*Q1Q + d2(2).*Q1Q + d2(3);
cof111=d2(1); cof222=d2(2); cof333=d2(3);
%---------INCREMENTADO
figure
subplot(2,2,1);plot(Q1Q,ko2,'*-');xlabel('Caudal-L/(min*m2)');ylabel('K - m3/(Kg*hr)');grid on
subplot(2,2,2);plot(Q1Q,do2,'O-');xlabel('Caudal-L/(min*m2)');ylabel('Do - m)');grid on
subplot(2,2,3);plot(Q1Q,no2,'*-');xlabel('Caudal-L/(min*m2)');ylabel('No - Kg/m3)');grid on
%-------FIN DE INCREMENTO
%DATOS DE PROBLEMA REAL
%Caudal en m3/hr y diametro del lecho de prueba piloto en mts - profundidad - prof en mts
qaa1=4; diamlecho1=0.76; prof=1.82;
%Caudal en L/(min*m2) - el factor de conversion de conversion de m3/hr a L/(min*m2) es
21.2207
qaa11=(4*1000/(60*pi))*qaa1/(diamlecho1^2);
area=(pi/4)*diamlecho1^2;
%Calculo de la velocidad en mts/hr
ve1=0.06*qaa11;
%Modulo para halla K ó ko22 en m3/(kg*hr) y No ó no22 en kg/m3
no22=cof1*qaa11*qaa11 + cof2*qaa11 + cof3;
ko22=cof11*qaa11*qaa11 + cof22*qaa11 + cof33;
do22=cof111*qaa11*qaa11 + cof222*qaa11 + cof333;
%Calculo del tiempo de servicio
t=((no22*prof)/(ve1*Co)) - (log((Co/Ce)-1)/(ko22*Co)); %horas/ciclo
%Parte2:Calculo del numero de cambios de carbon por año y volumen anual de carbon
NumCamCar=365*24 / t ;
VolAnualCarbon = prof*area*NumCamCar ;
%Parte3:Estimacion de eliminacion del soluto (Kg/año)
%Kg soluto separado por ciclo=kg soluto en afluente-Kg soluto en efluente
VolAR=qaa1*t;
%Kg de soluto en el afluente por ciclo
SolutAfluen=VolAR * Co;
%Calculo del soluto residual - Kg de soluto por ciclo
SolutEfluen=VolAR * Ce;
SolutSeparado = SolutAfluen - SolutEfluen;
SolutSepanual = SolutSeparado*NumCamCar;
%Parte4: Rendimiento de la adsorcion
CapTotAdsor=no22*VolAnualCarbon;
rendimiento = (SolutSepanual/CapTotAdsor)*100;
%Rendimiento basandose en Do para un caudal de 148 L/(min*mt2)
Rendimiento = ((prof - do22)/prof)*100;
%Los resultados
disp(' ');
disp('------------------------------------------------------------------')
disp('RESULTADOS ');
disp('------------------------------------------------------------------')
disp(' APLICACION DE LOS DATOS DE LABORATORIO ')
disp(' AL DISEÑO DE UNA PLANTA A ESCALA REAL ')
disp('------------------------------------------------------------------')
disp('PARTE1: CALCULO DEL TIEMPO DE SERVICIO')
disp('------------------------------------------------------------------')
fprintf('Capacidad de Adsorción (No) = %g (Kg/m3)\n' ,no22)
fprintf('Constante de Velocidad (K) = %g (m3/(kg*hr)\n',ko22)
fprintf('Tiempo de servicio (t) = %g (hr/ciclo)\n' ,t)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE2: CAMBIO DE CARBON POR AÑO Y VOLUMEN ANUAL DE CARBON')
disp('-------------------------------------------------------------------')
fprintf('# de Cambios de Carbón / año (NumCamCar) = %g (Ciclo/año)\n',NumCamCar)
fprintf('Volúmen anual de carbón (VolAnualCarbon) = %g (m3)\n',VolAnualCarbon)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE3: ESTIMACION DE LA ELIMINACION DE SOLUTO (kg/año)')
disp('kg de soluto separado=Kg soluto en afluente - Kg soluto en efluente')
disp('-------------------------------------------------------------------')
fprintf('Volúmen de Agua Residual (VolAR) = %g (m3/ciclo)\n',VolAR)
fprintf('Eliminación de soluto (SolutSeparado) = %g (kg/ciclo)\n',SolutSeparado)
fprintf('Soluto separado anual (SolutSepanual) = %g (kg/ciclo)\n',SolutSepanual)
disp(' ')
disp('-------------------------------------------------------------------')
disp('PARTE4: RENDIMIENTO DE LA ADSORCION')
disp('-------------------------------------------------------------------')
disp('Basado en No: Capacidad de adsorción')
fprintf('Capacidad Total de Adsorción (CapTotAdsor) = %g (m3/ciclo)\n',CapTotAdsor)
fprintf('Rendimiento (rendimiento) = %g (kg/ciclo)\n',rendimiento)
disp('Basado en Do: Profundidad Crítica')
fprintf('Rendimiento (Rendimiento) = %g (m3/ciclo)\n',Rendimiento)
disp(' ')
disp('-------------------------------------------------------------------')
disp(' ')
disp(' ')
RESULTADOS
PROGRAMA

%CAPACIDAD DE ADSORCION DE CARBON GRANULADO


clc;clear memory;clear command history;clear all
dc=[0 0.4 0.8 1.6 3.2 9.75];
dcA=[0 0.08 0.16 0.32 0.64 1.95];
dcB=[0 0.08 0.16 0.32 0.64 3.00];
imreA=[400 248 164 92 34 10];
imreB=[400 280 200 120 60 10];
%subplot(1,2,1)
plot(dcA,imreA,'o-',dcB,imreB,'*-')
title('Isoterma de adsorcion');xlabel('Dosage de carbón - gr/200mL'); ylabel('Impurezas
remanentes - mg/L')
text(0.8,110,'O - Carbón A');text(0.8,85,' * - Carbón B');grid on
%subplot(1,2,2)
figure
imreA=[400 248 164 92 34 10];
imreB=[400 280 200 120 60 10];
XMA=[0 380 295 193 114 40];
XMB=[0 300 250 175 106 26];
LnimreA=log(imreA);
LnimreB=log(imreB);
LnXMA=log(XMA);
LnXMB=log(XMB);
%figure
loglog(imreA,XMA,'o-',imreB,XMB,'-*')
title('Isoterma de adsorcion'); xlabel('Impurezas remanentes - mg/L'); ylabel('X/M Impurezas
adosrbidas/peso de carbon usado - mgr/gr');
text(100,50,'O - Carbón A');text(100,40,'* - Carbón B'); grid on
%Determinacion de carga de carbon desde los perfiles de las isotermas a un
%nivel de impureza final deseada - Método de Interpolación
SeA=20 ; SeB=20;
Carga_carA = interp1(imreA,XMA,SeA);
Carga_carB = interp1(imreB,XMB,SeB);
%Cáculo de la impureza eliminada - Se conoce So=400 mg/L y Se=20 Mg/L
SoA=400; SoB=400; % mg/L
Impu_elimA = SoA - SeA;
Impu_elimB = SoB - SeB;
%Promedio de uso de carbon
Prom_uso_carbonA = Impu_elimA / Carga_carA;
Prom_uso_carbonB = Impu_elimB / Carga_carB;
clc;
%Los resultados
disp(' ');
disp('------------------------------------------------------------------')
disp('RESULTADOS ');
disp('------------------------------------------------------------------')
disp('CAPACIDAD DE ADSORCION DE CARBON GRANULADO ')
disp('------------------------------------------------------------------')
disp(' ')
disp('Cálculo de carga de carbón desde las isotermas:')
disp('-----------------------------------------------')
fprintf('Carbón A (X/M) = %g (mg/g)\n' ,Carga_carA) %g es el formato mas corto
fprintf('Carbón B (X/M) = %g (mg/g)\n' ,Carga_carB) %g es el formato mas corto
disp(' ')
disp('Promedio de uso de Carbón :')
disp('---------------------------')
fprintf('Uso de Carbón A = %g (mg/L)\n',Prom_uso_carbonA)
fprintf('Uso de Carbón B = %g (mg/L)\n',Prom_uso_carbonB)
disp(' ')
disp('----------------------------------------------------------------------------')
disp('De los resultados calculados se concluye que se requiere de aproximadamente')
fprintf('%g \n',Prom_uso_carbonB - Prom_uso_carbonA )
disp('mas de carbón B para levar a cabo el mismo tratamiento. El precio unitario ')
disp('de cada tipo de carbón puede ser usado para determinarel mejor caso de ')
disp('costo-efectividad para una aplicación de purificación ')
disp('----------------------------------------------------------------------------')

RESULTADOS
PROGRAMA PARA CONOCER

%solubilidad del oxigeno disuelto en funcion


%de la temperatura y salinidad en KCl - mg/L
clc
clear
clear memory
clear history
xlabel('Temperatura - °C'), ylabel('Cocentracion de oxigeno disuelto, mg/L')
title('solubilidad del oxigeno disuelto en funcion de la temperatura y salinidad en KCl - mg/L')
for cl=0:5:25;
T=273.15:0.5:323.15;
C=-139.344+(1.5757e+5)./T-(6.6423e+7)./(T.^2)+(1.2438e+10)./(T.^3)-(8.6219e+11)./(T.^4)-
cl.*...
(3.1929e-2 -(19.428./T) + 3867.3./(T.^2));
C=exp(C);
hold on
%plot(T-273.15,C,'color','k','linewidth',1)
plot(T-273.15,C)
end
gris

RESULTADOS

Potrebbero piacerti anche