Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Absorção:
% Entrada de Parâmetros
R = 0.7302; % ft3.atm/R.lbmol
% Torre de Absorção
TRtr1 = 545.67; % °R - Temperatura
% Alimentação
V1 = 500; % ft3/min
y1 = 0.2; % fração molar de amônia
% Gás residual
y2 = 0.01; % fração molar de amônia
% Solvente pobre
x2 = 0.001;
2
% p50= [247,179,115,91.1,67.1,44.5,22.2,0];
p50= [91.1,67.1,44.5,22.2,0];
Y30 = p30./(760*1.5);
Y50 = p50./760;
Y30 = Y30./(1-Y30);
Y50 = Y50./(1-Y50);
x30 = [0.3, 0.25, 0.20, 0.15, 0.10, 0.075, 0.05, 0.04, 0.03, 0.02, 0];
% x50 = [0.10, 0.075, 0.05, 0.04, 0.03, 0.02, 0.01, 0];
x50 = [0.04, 0.03, 0.02, 0.01, 0];
% Ajuste
load('C:\Users\pedro\Desktop\HD\UEM\Graduação\4° Ano\Operações Unitárias II\Exercícios\Absorção
xgrf30 = 0:0.0001:0.3;
Ygrf30 = polymonial30_menosxmaiorque1(xgrf30);
N = length(Ygrf30);
% Correção de ajuste (pontos menores que 1 = 0)
for i = 1:N
if Ygrf30(i) < 0
Ygrf30(i) = 0;
end
end
teste = zeros(0,N);
testey = teste;
for i = 1:N
teste(i) = abs(Ygrf30(i) - Y1);
end
[~,k] = min(teste);
X1_min = xgrf30(k);
% Uso do polinômio somente na região de trabalho:
xgrf30 = 0:0.0001:X1_min;
Ygrf30 = polymonial30_menosxmaiorque1(xgrf30);
N = length(Ygrf30);
% Correção de ajuste (pontos menores que 1 = 0)
for i = 1:N
if Ygrf30(i) < 0
Ygrf30(i) = 0;
end
end
figure(1)
plot(xgrf30,Ygrf30, [0, X1_min],[Y1, Y1], 'k:',[xgrf30(k),xgrf30(k)],[Y1, 0], 'k:', [X2,X1_min]
title('Gráfico 1 - Diagrama de equilíbrio NH_3- Água à 30°C (Absorção)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
set(gca, 'MinorGridColor', 'k', 'LineWidth', 1.2 );
legend('Curva de equilíbrio','','','Ls/Gs mínimo','Location','NorthWest')
axis([0 X1_min 0 Y1])
3
coef30 = reta(0,xgrf30(k),Y2,Y1); % Cálculo da inclinação: Ls/Gs
razaomin = coef30(2);
Lsmin = Gs*razaomin; % lbmol/min
figure(2)
plot(xgrf30,Ygrf30, [0, X1_min],[Y1, Y1], 'k:',[X1_min,X1_min],[0 Y1], 'k:', [X2,X1_min],[Y2,Y1
title('Gráfico 2 - Diagrama de equilíbrio NH_3- Água à 30°C (Absorção)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
legend('Curva de equilíbrio','','','Ls/Gs mínimo','Ls/Gs de operação (1,35min)','Location','Nor
axis([0 X1_min 0 Y1])
4
figure(3)
plot(xgrf30,Ygrf30, [0, X1],[Y1, Y1], 'k:',vet_x,reta_RO, 'g',[X1,X1],[0, Y1], 'k:')
title('Gráfico 3 - Diagrama de equilíbrio NH_3- Água à 30°C (Absorção)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
legend('Curva de equilíbrio','','Ls/Gs de operação','Location','NorthWest')
axis([0 X1_min 0 Y1])
5
figure(4)
plot(xgrf30,Ygrf30, [0, X1],[Y1, Y1], 'k:',vet_x,reta_RO, 'g',[X1,X1],[0, Y1], 'k:')
hold on
title('Gráfico 4 - Diagrama de equilíbrio NH_3- Água à 30°C (Absorção)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
6
% x_p(j+1) = vet_x(k);
% plot([x_p(j),x_p(j)],[y_p(j),y_p(j+1)], 'r',[x_p(j+1),x_p(j)],[y_p(j+1),y_p(j+1)], 'r')
% end
k=1;
for j = 1:M
% Andando em X
for i=1:N
testex(i) = abs(y_p(j) - Ygrf30(i));
end
[~,k] = min(testex);
x_p(j+1) = xgrf30(k);
plot([x_p(j),x_p(j+1)],[y_p(j),y_p(j)],'r')
% Andando em Y
for i=1:N
testey(i) = abs(x_p(j+1) - vet_x(i));
end
[~,k] = min(testey);
y_p(j+1) = reta_RO(k);
if (j ~= M)
plot([x_p(j+1),x_p(j+1)],[y_p(j),y_p(j+1)],'r')
end
end
legend('Curva de equilíbrio','','Ls/Gs de operação','','','','N de pratos teóricos = 5','Locati
axis([0 X1_min 0 Y1])
Nesteq = 5;
7
HETPteo = 1.83;
Zteo = Nesteq*HETPteo
Zteo = 9.1500
% Obtendo omegag:
omegag = 1./(reta_RO-Yeq);
figure(5)
plot(reta_RO,omegag,[Y2,Y2],[0,omegag(1)],'k:',[Y1,Y1],[0,omegag(end)],'k:');
title('Gráfico 5 - Diagrama de equilíbrio NH_3- Água à 30°C (Absorção)')
ylabel('ômega = 1/Y-Yeq')
xlabel('Y')
legend('Área abaixo da curva = Nog')
axis([0 (Y1+Y2) 0 omegag(1)])
8
% Integral (Nog regra do trapézio, aproximação muito boa pois existem 1818 pontos)
Nog = trapz(reta_RO,omegag);
% Viscosidades
% 30 °C
miH2O = 0.00080082; % Pa.s
miAr = 1800*10^-7*0.1; % Pa.s
roG = 2.7561
9
Lt= Ls*MMH2O + Ls*X1*MMNH3; % lbm/min
% Conversão para SI
Lt = Lt*0.0075598666666667; % kg/s
Gt = Gt*0.0075598666666667; % kg/s
% eixo x:
axisx = Lt/Gt*sqrt(roG/roL)
axisx = 0.0573
FluxoG = 2.4884e+03
FluxoL = 2.7099e+03
10
Hog = 1.6; % ft
Hog = Hog*0.3048; % m
disp(['Hog obtido = ', num2str(HETPteo),' metros']);
HETP = (Hog*Nog)/Nesteq; % m
Z = Hog*Nog; % m
disp(['HETP dado no enunciado = ', num2str(HETPteo),' metros']);
11
Altura calculada usando o HETP dado e o número de pratos teóricos
disp(' ')
disp('Dados calculados:')
Dados calculados:
12
Stripping
X4 = X1;
X3 = X2;
Y3 = 0;
% Precisamos encontrar X3:
13
xgrf50 = 0:0.0001:X1;
Ygrf50 = ajuste50att(xgrf50);
[~,k] = min(abs(ytang));
p0tg = vet_x(k);
vet_xt = linspace(p0tg,X4,N);
retatan = polyval(p_tang,vet_xt);
14
% Obtendo Ls:
razaomax = p_tang(1);
LsS = GaS*razaomax; % lbmol/min
% Critério: Gs*1,35
razao = razaomax/1.35;
GaSop = Ls/razao;
p_opS = reta2(p0tg,Y3,razao);
vet_x = linspace(p0tg,0.1363,N);
reta_opS = polyval(p_opS,vet_x);
figure(7)
plot(xgrf50,Ygrf50, [X4,X4],[0,Y4],'k:',[0,X4],[Y4,Y4],'k:',vet_xt,retatan,'r',vet_x,reta_opS,'
title('Gráfico 7 - Diagrama de equilíbrio NH_3- Água à 50°C (Stripping)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
legend('Curva de equilíbrio','','','Ls/Gs máx','Ls/Gs de operação (máx/1,35)','Location','North
15
figure(8)
plot(xgrf50,Ygrf50, [X4,X4],[0,Y4],'k:',[0,X4],[Y4,Y4],'k:',vet_x,reta_opS,'g')
title('Gráfico 8 - Diagrama de equilíbrio NH_3- Água à 50°C (Stripping)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
legend('Curva de equilíbrio','','','Ls/Gs de operação','Location','NorthWest')
16
figure(9)
plot(xgrf50,Ygrf50, [X4,X4],[0,Y4],'k:',[0,X4],[Y4,Y4],'k:',vet_x,reta_opS,'g')
hold on
title('Gráfico 9 - Diagrama de equilíbrio NH_3- Água à 50°C (Stripping)')
xlabel('mol de NH_3/mol de H_2O')
ylabel('mol NH_3/mol de ar')
plot([x_p(j),x_p(j+1)],[y_p(j),y_p(j)],'r')
% Andando em Y
for i=1:N
17
testey(i) = abs(x_p(j+1) - xgrf50(i));
end
[~,k] = min(testey);
y_p(j+1) = Ygrf50(k);
if (j ~= M)
plot([x_p(j+1),x_p(j+1)],[y_p(j),y_p(j+1)],'r')
end
end
legend('Curva de equilíbrio','','','Ls/Gs de operação','N° de pratos teóricos = 4','Location','
vet_x = linspace(x_p(2),x_p(end),N);
reta_opS = polyval(p_opS,vet_x);
% Obtendo os valores de Yeq no intervalo da reta de operação
Yeq = ajuste50att(vet_x);
Yeq = Yeq';
% Obtendo omegag:
omegag = 1./(Yeq - reta_opS);
figure(10)
plot(reta_opS,omegag);
ylabel('ômega = 1/Y-Yeq')
xlabel('Y')
legend('Área abaixo da curva = Nog')
title('Gráfico 10 - Curva obtida para cálculo do Nog')
18
NogS = trapz(reta_opS,omegag);
% Conversão para SI
LtS = LtS*0.0075598666666667; % kg/s
GtS = GtS*0.0075598666666667; % kg/s
% eixo x:
axisx = LtS/GtS*sqrt(roG/roL)
axisx = 0.0267
19
axisy = 0.042; % obtido do gráfico acima
G = sqrt(axisy*(9.81*roG*roL^2)/(Fp*(miL^(0.2))*roH2O));
Area = Gt/G; % m2
DS(1) = sqrt(4*Area/(pi)); % m
FluxoG = Gt/Area; % kg/m2s
FluxoL = Lt/Area; % kg/m2s
% Conversão dos fluxos para unidades inglesas do gráfico do Perry:
FluxoG = FluxoG*737.3376 % lbm/ft2h
FluxoG = 1.8030e+03
FluxoL = 1.9635e+03
20
Hog = 1.8; % ft
Hog = Hog*0.3048; % m
disp(['Hog obtido = ', num2str(HETPteo),' metros']);
HETP = (Hog*Nog)/Nesteq; % m
Z = Hog*Nog; % m
disp(['HETP dado no enunciado = ', num2str(HETPteo),' metros']);
21
Número de pratos teóricos (Gráfico 4) = 5
disp(' ')
disp('Dados calculados:')
Dados calculados:
Ar:
22
Extra: usando os outros 2 gráficos para calcular o diâmetro das colunas
(todos deltaP = 1" H2O):
Absorção
NORTON:
C = 10.764; % Unidades do SI
nu = miH2O/roH2O;
23
% eixo x:
axisx = Lt/Gt*sqrt(roG/roL)
axisx = 0.0573
24
DA(2) = sqrt(4*Area/(pi)); % m
STRIGGLE:
Stripping
NORTON:
C = 10.764; % Unidades do SI
nu = miH2O/roH2O;
% eixo x:
axisx = LtS/GtS*sqrt(roG/roL);
25
axisy = 3.2; % obtido do gráfico acima
G = sqrt(axisy*(roG*(roL-roG))/(C*F*nu^(0.1)));
Area = GtS/G; % m2
DS(2) = sqrt(4*Area/(pi)); % m
STRIGGLE:
26
% 32,2 = aceleração gravitacional
F = 240;
G = sqrt(axisy*9.81*(roG*(roL-roG))/(C*F*nu^(0.1)));
Area = GtS/G; % m2
DS(3) = sqrt(4*Area/(pi)); % m
ABSORÇÃO:
Norton = 39.128 cm
STRIPPING:
Norton = 37.4172 cm
function p = reta2(x0,y0,m)
b = m;
a = -m*x0 + y0;
p = [b,a];
end
function p = reta4(x0,x,y0,y)
b = (y-y0)/(x-x0);
a = -b*x0 + y0;
p = [b,a];
27
end
28