Вы находитесь на странице: 1из 13

UNIVERSIDAD DON BOSCO

FACULTAD DE INGENIERÍA
ESCUELA DE MECÁNICA

Transferencia de calor

ANALISIS EN REGIMEN TRANSITORIO

DOCENTE:
Ing. Gustavo Salomón Torres

ALUMNO:
Zúniga Aldana, Jonathan Josué ZA162371

Soyapango, San Salvador, miércoles 7 de marzo del 2018


Índice
Introducción.......................................................................................................................................3
Conducción bidimensional de calor en régimen transitorio...............................................................4
Ejemplo de aplicación:.......................................................................................................................6
Bibliografía.........................................................................................................................................8
Nexos..................................................................................................................................................9
Introducción
La conducción de calor implica un almacenamiento de energía térmica dentro de un cuerpo o un
espacio, por ejemplo, en el calentamiento de un sartén, hay que suministrar calor suficiente para
elevar la temperatura de las paredes del recipiente hasta alcanzar la temperatura deseada y
aportar el calor que compense las pérdidas en régimen permanente para el funcionamiento
normal.

Para análisis reales de transferencia de calor se analizan los cuerpos en régimen transitorio, esto se
hace en forma de una malla (matriz) y dependiendo de la forma geométrica del cuerpo así serán
los diferentes tipos de mallas que se puedan presentar; para cada punto de la malla se le asigna
una ecuación la cual representa el comportamiento de transferencia de calor para dicho punto, la
cual depende de todos los puntos alrededor de este, para la resolución de dichas ecuaciones se
hará uso del software Matlab en las siguientes páginas.
Conducción bidimensional de calor en régimen
transitorio
Considere una región rectangular en la que la conducción de calor es
significativa en las direcciones x y x , y considere una profundidad
unitaria de ∆ z=1 en la dirección z . Se puede generar calor en el
medio con una velocidad de é (x , y , t) , la cual puede vaiar con el tiempo
y la posición, si se supone que la conductividad térmica k del medio es
constante. Ahora divida el plano x− y de la región en una malla
rectangular de puntos nodales espaciados con una separación ∆ x y ∆ y en las direcciones
x y y , respectivamente, y considere un nodo interior general (m ,n) cuyas
coordenadas son x=m ∆ x y y=n ∆ y , como se muestra en la figura 1. Dado que el
elemente de volumen centrado en torno del nodo interior general (m ,n) comprende
conducción de calor desde los cuatro lados (derecho, izquierdo, superior e inferior), y el elemento
de volumen es V elemento =∆ x∗∆ y∗1=∆ x ∆ y , y la formulación den diferencias finitas en
régimen transitorio para un nodo de ese tipo se puede expresar como:

Cuando se toma una malla cuadrada (∆ x=∆ x=l) y se divide cada termino entre k ,
simplificando nos queda como resultado:

Donde, α =k / ρC p es la Difusividad térmica del material y τ =α ∆t /l 2 es el numero


adimensional de malla de Fourier. Esto también se puede expresar en términos de las
temperaturas e los nodos vecinos en la siguiente forma:

El primero miembro de esta ecuación es simplemente la formulación en diferencias finitas para el


caso de estado estacionario. Asimismo, todavía no se ha presentado la formulación explícita o
implícita, puesto que no se indicó el intervalo de tiempo en el primer miembro de la ecuación.
Ahora se obtiene la formulación explicita en diferencias finitas al expresar el primer miembro en el
paso i de tiempo como:
Si se expresa el primer miembro en el intervalo de tiempo i+ 1 en lugar del i , daría la
formulación implícita. Esta ecuación se puede resolver explícitamente para la nueva temperatura
i +1
T nodo , lo que resulta:

Para los nodos interiores m=1, 2,3, … , M −1 y n=1, 2,3, … , N−1 , en el


(m ,n) , donde
1
medio. En el caso de que no haya generación de calor y τ = , la formulación explicita en
4
diferencias finitas para nodo un interior general se reduce a
i +1 i i i i
T =(T
nodo +T
izquierda +T
derecha T )/ 4 , la cual tiene la interpretación de que la
superior inferior
temperatura de un nodo interior en el nuevo intervalo de tiempo es simplemente el promedio de
las temperaturas de los nodos vecinos en el intervalo de tiempo anterior.
i i
El criterio de estabilidad que requiere que el coeficiente de T m en la expresión T m sea
mayor o igual a cero para todos los nodos es igualmente valido para los casos bidimensionales y
limita en forma severa el tamaño de intervalo de tiempo ∆ t que se puede usar con el método
explícito. En el caso de transferencia de calor bidimensional en régimen transitorio, en
i i +1
coordenadas rectangulares, el coeficiente de T m en la expresión T m es 1−4 τ y, por
tanto, e este caso el criterio de estabilidad para todos los nodos interiores es 1−4 τ >0 , o bien

Donde ∆ x=∆ x =l . Cuando se conoce el material del medio y, por tanto, su Difusividad
térmica α y se especifica el calor del tamaño l de malla, se puede determinar el valor mas
grande admisible del intervalo de tiempo ∆ t a partir de la relación antes dada. Los nodos de
frontera en los que interviene convección y radiación son más restrictivos que los interiores y, por
consiguiente, requieren intervalos de tiempo más pequeños. Por lo tanto, debe usarse el nodo de
frontera más restrictivo en la determinación del intervalo de tiempo máximo admisible ∆ t
cuando se resuelve un problema en régimen transitorio con el método explícito.
Ejemplo de aplicación:
Se tiene una placa cuadra de 1x1 m, la cual está hecha de plata y tiene una temperatura inicial de
15°K, a esta se le aplican 300°K en la parte superior, 20°K en la parte inferior, 35°K en la parte
lateral izquierda y 50°K en la parte lateral derecha.

Determine el tiempo en el cual se estabilizará la transferencia de calor y las temperaturas en los


nodos realizando una malla de 3x3.

Solución:

Corrida en Matlab:
Bibliografía

https://es.scribd.com/document/354616038/Aplicacion-Del-Matlab-en-Transferencia-de-Calor

https://juanrodriguezprieto.files.wordpress.com/2014/02/tc_cap5.pdf

http://eprints.uanl.mx/8587/1/APLICACION%20DEL%20MATLAB.pdf

Yunus A Cengel, TRANSFERENCIA DE CALOR Y MASA Editorial MacGraw Hill, Tercera Edición.

J.P. Holman, TRANSFERENCIA DE CALOR Editorial CECSA, México 1970, Décima edición
Nexos

Código de Matlab
clear; close all; clc;
name=input('Itroduzca el nombre del material: ','s');
conductivity =input('Introduzca el valor de la conductividad térmica en
W/m.K: ');
spacific_heat = input('Itroduzca el valor del calor especifico en J/kg K:
');
denisty = input('Digite el valor de densidad en kg/m^3: ');
Lx= input('Introduzca la longitud en x: ');
Ly= input('Introduzca la longitud en y: ');
Nx=3;
Ny=3;
T_initial= input ('Introduzca el valor de temperatura inicial: ');
T_east = input('Introduzca el valor de temperatura de la derecha: ');
T_west = input('Introduzca el valor de temperatura de la izquierda:
') ;
T_north = input('Introduzca el valor de temperatura de la parte
superior: ') ;
T_south = input('Introduzca el valor de temperatura de la parte
inferior: ') ;
t_end=input('Introduzca el valor de tiempo final: ') ;
dt=input('Introduzca el valor de paso de tiempo: ') ;
tolerence = input('Introdzca el valor de la tolerancia: ');
tolerence_ss=0.001;
k=1;
err_SS_max(k)=1;
err_SS_min(k)=1;
dx=Lx/Nx;
dy=Ly/Ny;
n_time=round(t_end/dt);
alpha = conductivity/(spacific_heat*denisty);
T_max=max([T_east T_west T_north T_south T_initial]);
T_min=min([T_east T_west T_north T_south T_initial]);
Solution_type=questdlg('Con que metodo desea
resolverlo ?','Question','Euler','2nd order Runge-Kutte','Euler');
if dt<= 1/(2*alpha*((1/dx^2)+(1/dy^2)))
else
fprintf('Error, no se conoce la condicion de estado estable\nRegrese
a "Seccion de introduccion de datos" y escoja un valor de "dt" mas
pequeño %f \n',1/(2*alpha*((1/dx^2)+(1/dy^2))))
return
end
message=msgbox('Resolviendo..... ');
T=zeros(Nx+2,Ny+2,75000);
T(:,1,:)=T_south;
T(:,Ny+1,:)=T_north;
T(:,Ny+2,:)=T_north;
T(Nx+1,:,:)=T_east;
T(Nx+2,:,:)=T_east;
T(1,:,:)=T_west;
T(:,:,1)=T_initial;
Tss=zeros(Nx+2,Ny+2); Tss2=zeros(Nx+2,Ny+2);
Tss(:,1)=T_south; Tss2(:,1)=T_south;
Tss(:,Ny+1)=T_north; Tss2(:,Ny+1)=T_north;
Tss(:,Ny+2)=T_north; Tss2(:,Ny+2)=T_north;
Tss(Nx+1,:)=T_east; Tss2(Nx+1,:)=T_east;
Tss(Nx+2,:)=T_east; Tss2(Nx+2,:)=T_east;
Tss(1,:)=T_west; Tss2(1,:)=T_west;

while err_SS_max(k)>=tolerence_ss || err_SS_min(k)>=tolerence_ss


for i=2:Nx
for j=2:Ny
Tss2(i,j)=0.25*(Tss(i+1,j)+Tss(i,j+1)+Tss(i-1,j)+Tss(i,j-1));
end
end
k=k+1;
err_SS_max(k)=abs(max(max(Tss2-Tss)));
err_SS_min(k)=abs(min(min(Tss2-Tss)));
Tss=Tss2;
end
k=1;
switch Solution_type
case '2nd order Runge-Kutte'
err_R_k_max(k)=100;
err_R_k_min(k)=100;
while err_R_k_max(k)>=tolerence || err_R_k_min(k)>=tolerence
for i=2:Nx
for j=2:Ny
k1=alpha*(((T(i-1,j,k)-2*T(i,j,k)+T(i+1,j,k))/dx^2)+((T(i,j-
1,k)-2*T(i,j,k)+T(i,j+1,k))/dy^2));
Tk=T(:,:,k)+k1*dt;
k2=alpha*(((Tk(i-1,j)-2*Tk(i,j)+Tk(i+1,j))/dx^2)+((Tk(i,j-1)-
2*Tk(i,j)+Tk(i,j+1))/dy^2));
T(i,j,k+1) =T(i,j,k)+(dt/2)*(k1+k2);
end
end
k=k+1;
err_R_k_max(k)=abs(max(max(T(:,:,k)-Tss)));
err_R_k_min(k)=abs(min(min(T(:,:,k)-Tss)));
if round(err_R_k_max(k),5)==round(err_R_k_max(k-1),5) &&
err_R_k_max(k)~= 0
errordlg('La solucion no converge, Elegir un mayor rango de
tolerancia','Tolerence Error');
close(message)
return
end
if round(err_R_k_min(k),5)==round(err_R_k_min(k-1),5) &&
err_R_k_min(k)~= 0
errordlg('La solución no converge, Elegir un mayor rango de
tolerancia','Tolerence Error');
close(message)
return
end
end
case'Euler'
err_E_max(k)=100;
err_E_min(k)=100;
while err_E_max(k)>=tolerence || err_E_min(k)>=tolerence
for i=2:Nx
for j=2:Ny
T(i,j,k+1) =T(i,j,k)+dt*alpha*(((T(i-1,j,k)-2*T(i,j,k)
+T(i+1,j,k))/dx^2)+((T(i,j-1,k)-2*T(i,j,k)+T(i,j+1,k))/dy^2));
end
end
k=k+1;
err_E_max(k)=abs(max(max(T(:,:,k)-Tss)));
err_E_min(k)=abs(min(min(T(:,:,k)-Tss)));
if round(err_E_max(k),5)==round(err_E_max(k-1),5) && err_E_max(k)~=
0
errordlg('La solución no converge, Elegir un mayor rango de
tolerancia','Tolerence Error');
close(message)
return
end
if round(err_E_min(k),5)==round(err_E_min(k-1),5) && err_E_min(k)~=
0
errordlg('La solución no converge, Elegir un mayor rango de
tolerancia','Tolerence Error');
close(message)
return
end
end
case []
close(message)
msgbox('Error, Corra el codigo de nuevo y elija Euler o 2nd order
Runge-Kutte para continuar la solucion')
return
end
T=T(:,:,1:k);
SStime=k*dt;
close(message)

fprintf(' La solucion a la transferencia de calor a travéz de una


superficie de %i X %i del material es %s \n',Lx,Ly,name);
fprintf('T(x,0,t)=%i , T(x,%i,t)=%i , T(0,y,t)=%i , T(%i,y,t)=%i ,
T(x,y,0)=%i \n',T_south,Ly,T_north,T_west,Lx,T_east,T_initial)
fprintf('Toma alrededor de %i segundos para alcanzar una temperatura
estable con una tolerancia de %0.2f \n',round(SStime),tolerence);
x=zeros(1,Nx+2);y=zeros(1,Ny+2);
for i = 1:Nx+2
x(i) =(i-1)*dx;
end
for i = 1:Ny+2
y(i) =(i-1)*dy;
end
subplot(2,2,3)
hold on
title(sprintf('Temperatura estable en : %i segundos ',round(SStime)))
surf(x,y,Tss)
plot3( Lx/3, Ly/3,T_max,'ko','markerfacecolor','r')
plot3( 2*Lx/3,Ly/3,T_max,'ko','markerfacecolor','r')
plot3( Lx, Ly/3,T_max,'ko','markerfacecolor','r')
plot3( Lx/3, 2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( 2*Lx/3, 2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( Lx,2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( Lx/3 , Ly,T_max,'ko','markerfacecolor','b')
plot3( 2*Lx/3 , Ly,T_max,'ko','markerfacecolor','b')
plot3( Lx , Ly,T_max,'ko','markerfacecolor','b')
plot3( Lx/3, Ly/3,T_min,'ko','markerfacecolor','r')
plot3( 2*Lx/3,Ly/3,T_min,'ko','markerfacecolor','r')
plot3( Lx, Ly/3,T_min,'ko','markerfacecolor','r')
plot3( Lx/3, 2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( 2*Lx/3, 2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( Lx,2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( Lx/3 , Ly,T_min,'ko','markerfacecolor','b')
plot3( 2*Lx/3 , Ly,T_min,'ko','markerfacecolor','b')
plot3( Lx , Ly,T_min,'ko','markerfacecolor','b')
cb=colorbar;
caxis([T_min T_max]);
view(90,-90);
xlim([0 Lx+dx]); xlabel('Longitud');
ylim([0 Ly+dy]); ylabel('Ancho');
zlim([T_min T_max]); zlabel('Temperatura');
drawnow
hold off
subplot(2,2,4)
hold on
title(sprintf('La temperatura es estable en los : %i segundos
',round(SStime)))
scatter(k,Tss(floor(Nx/3),floor(Ny/3)),'ko','markerfacecolor','r');
val=(sprintf(' T(3,1) = %0.2f ',Tss(floor(Nx/3),floor(Ny/3))));
text(k,Tss(floor(Nx/3),floor(Ny/3)),val,'HorizontalAlignment','right');
scatter(k,Tss(floor(2*Nx/3),floor(2*Ny/3)),'ko','markerfacecolor','g');
val=(sprintf(' T(2,2) = %0.2f ',Tss(floor(2*Nx/3),floor(2*Ny/3))));
text(k,Tss(floor(2*Nx/3),floor(2*Ny/3)),val,'HorizontalAlignment','left')
;
scatter(k,Tss(floor(Nx),floor(Ny)),'ko','markerfacecolor','b');
val=(sprintf(' T(1,3) = %0.2f ',Tss(floor(Nx),floor(Ny))));
text(k,Tss(floor(3*Nx/4),floor(Ny)),val,'HorizontalAlignment','right');
fprintf('\n El valor de temperatura para el nodo (1,1) es:
%.2f',Tss(floor(Nx/3),floor(Ny/3)));
fprintf('\n El valor de temperatura para el nodo (1,2) es:
%.2f',Tss(floor(2*Nx/3),floor(Ny/3)));
fprintf('\n El valor de temperatura para el nodo (1,3) es:
%.2f',Tss(floor(Nx),floor(Ny/3)));
fprintf('\n El valor de temperatura para el nodo (2,1) es:
%.2f',Tss(floor(Nx/3),floor(2*Ny/3)));
fprintf('\n El valor de temperature para el nodo(2,2) es:
%.2f',Tss(floor(2*Nx/3),floor(2*Ny/3)));
fprintf('\n El valor de temperatura para el nodo (2,3) es:
%.2f',Tss(floor(Nx),floor(2*Ny/3)));
fprintf('\n El valor de temperatura para el nodo (3,1) es:
%.2f',Tss(floor(Nx),floor(Ny)));
fprintf('\n El valor de temperatura para el nodo (3,2) es:
%.2f',Tss(floor(2*Nx/3),floor(Ny)));
fprintf('\n El valor de temperatura para el nodo (3,3) es: %.2f
\n\n',Tss(floor(Nx/3),floor(Ny)));
axis tight; xlabel('Timepo de iteraciones');
ylim([T_min T_max]); ylabel('Temperatura');
legend('Puntos izquierdos','Puntos medios','Puntos derechos
','Location','northwest')
drawnow
hold off
for j=1:n_time
subplot(2,2,1)
surf(x,y,T(:,:,j))
hold on
title(sprintf('Temperatura en el tiempo de : %i segundos ',round(j*dt)))
plot3( Lx/3, Ly/3,T_max,'ko','markerfacecolor','r')
plot3( 2*Lx/3,Ly/3,T_max,'ko','markerfacecolor','r')
plot3( Lx, Ly/3,T_max,'ko','markerfacecolor','r')
plot3( Lx/3, 2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( 2*Lx/3, 2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( Lx,2*Ly/3,T_max,'ko','markerfacecolor','g')
plot3( Lx/3 , Ly,T_max,'ko','markerfacecolor','b')
plot3( 2*Lx/3 , Ly,T_max,'ko','markerfacecolor','b')
plot3( Lx , Ly,T_max,'ko','markerfacecolor','b')
plot3( Lx/3, Ly/3,T_min,'ko','markerfacecolor','r')
plot3( 2*Lx/3,Ly/3,T_min,'ko','markerfacecolor','r')
plot3( Lx, Ly/3,T_min,'ko','markerfacecolor','r')
plot3( Lx/3, 2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( 2*Lx/3, 2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( Lx,2*Ly/3,T_min,'ko','markerfacecolor','g')
plot3( Lx/3 , Ly,T_min,'ko','markerfacecolor','b')
plot3( 2*Lx/3 , Ly,T_min,'ko','markerfacecolor','b')
plot3( Lx , Ly,T_min,'ko','markerfacecolor','b')
cb=colorbar;
caxis([T_min T_max]);
view(90,-90);
xlim([0 Lx+dx]); xlabel('Longitud');
ylim([0 Ly+dy]); ylabel('Ancho');
zlim([T_min T_max]); zlabel('Temperatura');
drawnow
hold off
subplot(2,2,2)
hold on
title(sprintf('Temperatura en el tiempo de : %i segundos ',round(j*dt)))
scatter(j,T(floor((Nx+2)/4),floor((Ny+2)/4),j),'r.');
scatter(j,T(ceil((Nx+2)/2),ceil((Ny+2)/2),j),'g.');
scatter(j,T(ceil(3*(Nx+2)/4),ceil(3*(Ny+2)/4),j),'b.');
axis tight; xlabel('Tiempo de iteracion');
axis tight; ylabel('Temperatura');
legend('Puntos izquierdos','Puntos medios','Puntos derechos
','Location','northwest')
drawnow
hold off
end

Вам также может понравиться