Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Departamento de Mecatrônica
- PMR 2420 -
Mecânica Computacional
11/Maio/2009
Índice
Introdução..............................................................................3
Equacionamento ...................................................................4
Gráficos ...........................................................
Glossário..................................................................
Bibliografia ...........................................................
2
Introdução
0,08 Material B
u =0
0,03
Etileno n
glicol n
n
0=0,7rad un =0
20 C 0,015
óleo r
Ae 120 C As
tubo
0,07
u =0
3
Considerando coordenadas cilindricas na seção do problema, discretizamos as
equações que regem os fenomenos tanto de corrente e temperatura em função
de “r” (raio) e “fi” (ângulo).
Equacionamento
O equacionamento foi feito baseando-se na figura abaixo.
4
Figura2.Pontos e regiões da seção do trocador de calor
Corrente
Para a região 1 do trocador foi obtida a seguinte equação:
5
Analisando só para a entrada (R = 0.03), o PSI vai variar só com FI, já que o raio
é constante. É conhecido a taxa de variação de PSI em relação a FI na entrada
(pois é conhecido o delPSI/delFI = R*uR (1)) .
Sendo assim foi possível obter uma expressão que relaciona PSI com FI (PSI =
f(FI)). Com a equação (1) e isolando o delPSI obtivemos delPSI = R*uR*delFI.
function f = vazao_glicol(fi)
f = 0.000018*(1-(fi/0.7).^2);
6
Temperatura
Onde alpha=2*(Dr^2+Dfi^2*r(i))/(Dr^2*Dfi^2*r(i)^2)
K= (rho*cp)/k
TN(i,j)*alpha =TN(i,j+1)*(2/r(i)^2*Dfi^2)+TN(i+1,j)*(1/Dr^2)+TN(i-1,j)*(1/Dr^2)
As Ae
qadvec c p ur s Ts dAs ur e Te dAe
0
2 c p ru rT r 0,11 ru rT r 0,03 d
0
7
Os parâmetros do etileno glicol são rho =1100Kg/m^3 e cp=2460 J/Kg*K. As
temperaturas T na entrada e na saída são 20 graus e 80 graus respectivamente.
Assim a variação de energia armazenada é dado por:
%%Inicio
clear all
n=45;
echo off;
Dr=0.08/n; % calcula os valores de Dr, Dfi e m tais que a discretização use
células aproximadamente quadradas.
Dfi=Dr/0.07;
aprox = 0.7/Dfi;
if aprox >= 0.5 + floor(aprox)
m=ceil(aprox);
else
m=floor(aprox);
end;
Dfi=0.7/m;
PSI = zeros(n+1,m+1);
r = [0.03:Dr:n*Dr+0.03];% cria os vetores r e fi a partir de Dr, n, Dfi e m
fi = [0:Dfi:m*Dfi];
for j = 1:m+1
PSI(1,j) = (0.000009*fi(j)-(3/490000)*fi(j)^3); %define PSI para a entrada do
trocador.
if fi(j)*0.07 <= 0.015
8
alpha = sqrt((0.14*cos(fi(j)))^2-4*(0.07^2-0.015^2));% calcula às
coordenadas r das bordas do tubo em função de fi.
rtubo1(j) = (0.14*cos(fi(j))-alpha)/2; % esses valores serão usados
para definir o tipo de equação aplicada a cada ponto.
rtubo2(j) = (0.14*cos(fi(j))+alpha)/2;
else
rtubo1(j) = 1; % valor qualquer maior do que a o r máximo.
rtubo2(j) = 1; % valor qualquer maior do que a o r máximo.
end;
end;
for i = 1:n+1
PSI(i,m+1) = 0.000009*0.7-(3/490000)*0.7^3; %define os valores de PSI
constantes para a borda superior do trocador.
end;
PSIN = PSI;
epsilon = 1e-7; % determina o erro máximo desejado.
imax = 5000;
k = 1; % valor inicial do indice que conta as iterações.
% loop
while k <= imax
for j = 2:m
for i = 2:n+1
if i == n+1 % calcula os valores na saida do trocador
betha = Dr^2/(2*(Dr^2+r(i)*Dfi^2));
gama = 2*r(i)^2*Dfi^2/(2*(Dr^2+r(i)^2*Dfi^2));
PSIN(i,j) = gama*PSIN(i-1,j)+betha*PSIN(i,j+1)+betha*PSIN(i,j-1);
elseif (r(i)>=rtubo1(j)) && (r(i)<=rtubo2(j)) % coloca PSI igual a zero para
pontos dentro do tubo.
PSI(i,j)=0;
elseif abs(-r(i)+rtubo1(j))<Dr % calcula PSI usando Taylor no contorno
irregular proximo da lateral esquerda do tubo.
x = abs(r(i)-rtubo1(j));
I = Dr^2+x^2;
G = (Dr-x)/(Dr+x);
9
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*(2*r(i)^2*Dfi^2+I));
PSIN(i,j) = betha*PSIN(i-
1,j)+gama*PSIN(i+1,j)+delta*PSIN(i,j+1)+delta*PSIN(i,j-1);
elseif abs(r(i)-rtubo2(j))<Dr % calcula PSI usando Taylor no contorno
irregular proximo da lateral direita do tubo.
x = abs(r(i)-rtubo2(j));
I = Dr^2+x^2;
G = (x-Dr)/(Dr+x);
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*(2*r(i)^2*Dfi^2+I));
PSIN(i,j) = betha*PSIN(i-
1,j)+gama*PSIN(i+1,j)+delta*PSIN(i,j+1)+delta*PSIN(i,j-1);
elseif abs(fi(j)-asin(0.015/0.07))<Dfi % calcula PSI usando Taylor no
contorno irregular próximo da parte superior do tubo.
y = abs(fi(j)-asin(0.015/0.07));
I = Dfi^2+y^2;
G=(Dfi-y)/(Dfi+y);
betha = r(i)*I*(2*r(i)*Dr+Dr^2)/(4*Dr*(r(i)^2*I+2*Dr^2));
gama = r(i)*I*(2*r(i)*Dr-Dr^2)/(4*Dr*(r(i)^2*I+2*Dr^2));
delta = 2*Dr^2*(1-G)/(2*(r(i)^2*I+2*Dr^2));
digama = 2*Dr^2*(1+G)/(2*(r(i)^2*I+2*Dr^2));
PSIN(i,j)= betha*PSIN(i+1,j)+gama*PSIN(i-1,j)+delta*PSIN(i,j-
1)+digama*PSIN(i,j+1);
else % calcula PSI normalmente para os pontos no meio do trocador
através do Método Explicito.
betha = r(i)*Dfi^2*(Dr^2+2*Dr*r(i))/(Dr*4*(r(i)^2*Dfi^2+Dr^2));
gama = r(i)*Dfi^2*(2*r(i)*Dr-Dr^2)/(4*Dr*(r(i)^2*Dfi^2+Dr^2));
delta = Dr^2/(2*(r(i)^2*Dfi^2+Dr^2));
PSIN(i,j) = betha*PSIN(i+1,j)+gama*PSIN(i-
1,j)+delta*PSIN(i,j+1)+delta*PSIN(i,j-1);
end;
10
end;
end;
err = abs(PSIN-PSI);
errmax = max(max(err));
if errmax < epsilon
PSI=PSIN;
for j = 1:m
for i = 2:n+1
if (r(i)>=rtubo1(j)) && (r(i)<=rtubo2(j))
PSIN(i,j)=NaN;
end;
end;
end;
[r,fi] = meshgrid(r,fi);
[X,Y] = pol2cart(fi,r); % passa as coordenadas polares para coordenadas
cartesianas.
figure(1);
contour(X,Y,PSIN',20); axis([0.02 0.12 -0.073
0.073]);xlabel('x');ylabel('y');hold on
contour(X,-Y,PSIN',20);hold off
title('Solução da Equação de Laplace - Método Explicito'); % plota curvas
de nivel
figure(2);pcolor(X,Y,PSIN');axis([0.02 0.12 -0.073
0.073]);xlabel('x');ylabel('y');zlabel('PSI(r,fi)');hold on
pcolor(X,-Y,PSIN'); hold off
title('Solução da Equação de Laplace - Método Explicito'); % plota
superficie colorida
[UR,UFI]=gradient(PSI,Dr,Dfi);
[UX,UY]=pol2cart(UR,UFI);
figure(3);quiver(X,Y,UX',UY');axis([0.02 0.12 -0.073
0.073]);xlabel('x');ylabel('y');hold on
quiver(X,-Y,UX',UY'); hold off
title('Vetor de Velocidade U(r,fi)'); % plota vetores
fprintf('Convergence achieved after %i iterations.\n',k);
11
fprintf('See the following figures:\n');
fprintf('==========================\n');
fprintf('Figure 1 - contour plot of temperature \n');
fprintf('Figure 2 - surface plot of temperature \n');
return
end;
PSIN = 1.75*PSIN+(1-1.75)*PSI; % sobrerelaxação.
PSI = PSIN; % escreve os novos valores na matriz PSI.
k = k + 1; % incrementa contagem de iterações.
end;
fprintf('\n Não houve convergência após %i iterações.',k);
%%inicio do programa
clear all
n=40;
echo off;
Dr=0.08/n; % calcula os valores de Dr, Dfi e m tais que a discretização use
células aproximadamente quadradas.
Dfi=Dr/0.07;
aprox = 0.7/Dfi;
if aprox >= 0.5 + floor(aprox)
m=ceil(aprox);
else
m=floor(aprox);
end;
Dfi=0.7/m;
T = 50*ones(n+1,m+1);
r = [0.03:Dr:n*Dr+0.03];% cria os vetores r e fi a partir de Dr, n, Dfi e m
fi = [0:Dfi:m*Dfi];
for j = 1:m+1
T(n+1,j) = 80; %define T na saída do trocador
T(1,j) = 20; %define T para a entrada do trocador.
12
if fi(j)*0.07 <= 0.015
alpha = sqrt((0.14*cos(fi(j)))^2-4*(0.07^2-0.015^2));% calcula às
coordenadas r das bordas do tubo em função de fi.
rtubo1(j) = (0.14*cos(fi(j))-alpha)/2; % esses valores serão usados
para definir o tipo de equação aplicada a cada ponto.
rtubo2(j) = (0.14*cos(fi(j))+alpha)/2;
else
rtubo1(j) = 1; % valor qualquer maior do que a o r máximo.
rtubo2(j) = 1; % valor qualquer maior do que a o r máximo.
end;
for i = 2:n
if (r(i)>=rtubo1(j)) && (r(i)<=rtubo2(j)) % coloca T igual a zero para pontos
dentro do tubo.
TN(i,j)=120;
end;
end;
end;
TN = T;
epsilon = 1e-1; % determina o erro máximo desejado.
imax = 5000;
k = 1; % valor inicial do indice que conta as iterações.
% loop
while k <= imax
for j = 1:m+1
for i = 2:n
if (j == 1) && (((r(i)<rtubo1(j))&& abs(-r(i)+rtubo1(j))>Dr) ||
((r(i)>rtubo2(j))&& abs(r(i)-rtubo2(j))>Dr)) % calcula os valores de T na linha de
simetria do trocador
betha = Dr^2/(Dr^2+r(i)^2*Dfi^2);
gama = r(i)*Dfi^2*(r(i)*Dr*2-Dr^2)/(2*Dr*(2*(Dr^2+r(i)^2*Dfi^2)));
delta = r(i)*Dfi^2*(r(i)*Dr*2+Dr^2)/(2*Dr*(2*(Dr^2+r(i)^2*Dfi^2)));
TN(i,j) = gama*TN(i-1,j)+delta*TN(i+1,j)+betha*TN(i,j+1);
elseif (j == 1) && ((r(i)<rtubo1(j))&& abs(-r(i)+rtubo1(j))<Dr)
x = abs(r(i)-rtubo1(j));
13
I = Dr^2+x^2;
G = (Dr-x)/(Dr+x);
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*r(i)^2*Dfi^2+I);
TN(i,j) = betha*TN(i-1,j)+gama*TN(i+1,j)+delta*TN(i,j+1);
elseif (j == 1) && ((r(i)>rtubo2(j))&& abs(r(i)-rtubo2(j))<Dr)
x = abs(r(i)-rtubo2(j));
I = Dr^2+x^2;
G = (x-Dr)/(Dr+x);
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*r(i)^2*Dfi^2+I);
TN(i,j) = betha*TN(i-1,j)+gama*TN(i+1,j)+delta*TN(i,j+1);
elseif j == m+1 % calcula os valores de T na parede superior do
trocador
betha = Dr^2/(Dr^2+r(i)^2*Dfi^2);
gama = r(i)*Dfi^2*(r(i)*Dr*2-Dr^2)/(2*Dr*(2*(Dr^2+r(i)^2*Dfi^2)));
delta = r(i)*Dfi^2*(r(i)*Dr*2+Dr^2)/(2*Dr*(2*(Dr^2+r(i)^2*Dfi^2)));
TN(i,j) = gama*TN(i-1,j)+delta*TN(i+1,j)+betha*TN(i,j-1);
elseif (r(i)>=rtubo1(j)) && (r(i)<=rtubo2(j)) % coloca T igual a 120 para
pontos dentro do tubo.
TN(i,j)=120;
elseif abs(-r(i)+rtubo1(j))<Dr % calcula T usando Taylor no contorno
irregular proximo da lateral esquerda do tubo.
x = abs(r(i)-rtubo1(j));
I = Dr^2+x^2;
G = (Dr-x)/(Dr+x);
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*(2*r(i)^2*Dfi^2+I));
TN(i,j) = betha*TN(i-1,j)+gama*TN(i+1,j)+delta*TN(i,j+1)+delta*TN(i,j-
1);
elseif abs(r(i)-rtubo2(j))<Dr
14
x = abs(r(i)-rtubo2(j));
I = Dr^2+x^2;
G = (x-Dr)/(Dr+x);
betha = r(i)*Dfi^2*(2*r(i)*(1-G)*(x+Dr)-I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
gama = r(i)*Dfi^2*(2*r(i)*(1+G)*(x+Dr)+I)/((x+Dr)*(4*r(i)^2*Dfi^2+2*I));
delta = I/(2*(2*r(i)^2*Dfi^2+I));
TN(i,j) = betha*TN(i-1,j)+gama*TN(i+1,j)+delta*TN(i,j+1)+delta*TN(i,j-
1);
elseif abs(fi(j)-asin(0.015/0.07))<Dfi % calcula T usando Taylor no
contorno irregular próximo da parte superior do tubo.
y = abs(fi(j)-asin(0.015/0.07));
I = Dfi^2+y^2;
G=(Dfi-y)/(Dfi+y);
betha = r(i)*I*(2*r(i)*Dr+Dr^2)/(4*Dr*(r(i)^2*I+2*Dr^2));
gama = r(i)*I*(2*r(i)*Dr-Dr^2)/(4*Dr*(r(i)^2*I+2*Dr^2));
delta = 2*Dr^2*(1-G)/(2*(r(i)^2*I+2*Dr^2));
digama = 2*Dr^2*(1+G)/(2*(r(i)^2*I+2*Dr^2));
TN(i,j)= betha*TN(i+1,j)+gama*TN(i-1,j)+delta*TN(i,j-
1)+digama*TN(i,j+1);
else % calcula T normalmente para os pontos no meio do trocador
através do Método Explicito.
betha = r(i)*Dfi^2*(Dr^2+2*Dr*r(i))/(Dr*4*(r(i)^2*Dfi^2+Dr^2));
gama = r(i)*Dfi^2*(2*r(i)*Dr-Dr^2)/(4*Dr*(r(i)^2*Dfi^2+Dr^2));
delta = Dr^2/(2*(r(i)^2*Dfi^2+Dr^2));
TN(i,j) = betha*TN(i+1,j)+gama*TN(i-1,j)+delta*TN(i,j+1)+delta*TN(i,j-
1);
end;
end;
end;
err = abs(TN-T);
errmax = max(max(err));
if errmax < epsilon
[r,fi] = meshgrid(r,fi);
15
[X,Y] = pol2cart(fi,r); % passa as coordenadas polares para coordenadas
cartesianas.
figure(1);
contour(X,Y,TN',20); axis([0.02 0.12 -0.073
0.073]);xlabel('x');ylabel('y');hold on
contour(X,-Y,TN',20);hold off
title('Solução da Equação de Laplace - Método Explicito'); % plota curvas
de nivel
figure(2);pcolor(X,Y,TN');axis([0.02 0.12 -0.073
0.073]);xlabel('x');ylabel('y');zlabel('PSI(r,fi)');hold on
pcolor(X,-Y,TN'); hold off
TK=-0.255*T;
[UR,UFI]=gradient(TK,Dr,Dfi);
[UX,UY]=pol2cart(UR,UFI);
figure(3);quiver(X,Y,UX',UY');axis([0.02 0.113 -0.073
0.073]);xlabel('x');ylabel('y');hold on
quiver(X,-Y,UX',UY'); hold off
title('Solução da Equação de Laplace - Método Explicito'); % plota
superficie colorida
fprintf('Convergence achieved after %i iterations.\n',k);
fprintf('See the following figures:\n');
fprintf('==========================\n');
fprintf('Figure 1 - contour plot of temperature \n');
fprintf('Figure 2 - surface plot of temperature \n');
return
end;
TN = 1.75*TN+(1-1.75)*T; % sobrerelaxação.
T = TN; % escreve os novos valores na matriz T.
k = k + 1; % incrementa contagem de iterações.
end;
fprintf('\n Não houve convergência após %i iterações.',k);
16
Gráficos
17
Figura4.Solução de laplace(PSI) para Nr=15(número de células em r)
18
Figura5.Vetor de velocidade para Nr=15(número de células em r)
19
Figura6.Solução de laplace(PSI) para Nr=30(número de células em r)
20
Figura7.Solução de laplace(PSI) para Nr=30(número de células em r)
21
Figura9.Solução de laplace(PSI) para Nr=45(número de células em r)
22
Figura10.Solução de laplace(PSI) para Nr=45(número de células em r)
23
Figura11.Vetor de velocidade para Nr=45(número de células em r)
24
-Distribuição de temperaturas no trocador de calor (sem convecção)
25
Figura13.Distribuição de temperaturas para Nr=40(número de células em r)
26
Figura14.Vetor fluxo de calor para Nr=40(número de células em r)
27
Conclusão
28
Bibliografia
CHAPRA, STEVEN C. Métodos Numéricos para Engenharia. Ed. McGraw Hill, 5a ed, p.
587-646, . 2008.
29