Sunteți pe pagina 1din 5

Conducción del calor en un

cilindro muy largo (I)


En esta página, estudiamos la conducción del calor a lo largo de la dirección radial de
un clindro muy largo de radio R con la condición de contorno: la temperatura en la
superficie del cilindro es constante e igual a la del baño térmico

El cilindro se calienta a una temperatura uniforme T0 y se deja enfriar


sumergiéndolo en un baño térmico a temperatura Ts.

En el estado estacionario, después de un tiempo t→∞, la temperatura final del


cilindro será T(r,∞)=Ts, la temperatura del baño térmico.

La ecuación de la conducción del calor apropiada para resolver este problema


es

1α∂T∂t=∂2T∂r2+1r∂T∂r0≤r<R,t>01α∂T∂t=∂2T∂r2+1r∂T∂r 0≤r<R,
t>0

r es la distancia radial desde el eje del cilindro.

La condición de contorno es T(R,t)=Ts

La distribución inicial de temperaturas es T(r,0)=T0

Solución de la ecuación de la conducción


del calor
Definimos la función u(r,t)=T(r,t)-T(r,∞), en términos de esta nueva función, la
ecuación de la conducción del calor, las condición inicial en el instante t=0, y
las condiciones de contorno en r=R se escriben

1α∂u∂t=∂2u∂r2+1r∂u∂r0<r<Rt>0⋅contorno⇒u(R,t)=0⋅inicial⇒u(x,0)=T0−Ts1
α∂u∂t=∂2u∂r2+1r∂u∂r 0<r<R t>0· contorno⇒
u(R,t)=0· inicial⇒ u(x,0)=T0−Ts

Buscamos la solución mediante el procedimiento de separación de variables, de


la forma u(r,t)=F(r)·G(t)

FαdGdt=G(d2Fd2r+1rdFdr)1F(d2Fd2r+1rdFdr)=1α1GdGdt=−k2R2FαdGdt=G(d2Fd2r+1
rdFdr)1F(d2Fd2r+1rdFdr)=1α1GdGdt=−k2R2

Resolvemos la ecuación diferencial de la derecha


dGdt+k2αR2G=0G(t)=G(0)exp(−k2αR2t)dGdt+k2αR2G=0G(t)=G(0)exp
(−k2αR2t)

Resolvemos la ecuación diferencial de la izquierda

1F(d2Fd2r+1rdFdr)=−k2R21F(d2Fd2r+1rdFdr)=−k2R2

F(r)=J0(kr/R), J0 es la función de Bessel de primera especie y de orden cero.

Condiciones de contorno
La condición de contorno en r=R es T(R,t)=Ts, o bien, u(R,t)=F(R)·G(t)=0. Las
raíces kn, son los valores de k que cumplen la ecuación transcendente J0(k)=0

La solución completa u(r,t) es la superposición de los productos Fn(r)·Gn(t)

u(r,t)=∞∑n=1AnJ0(knrR)exp(−k2nαR2t)u(r,t)=∑n=1∞AnJ0(knrR)exp
(−kn2αR2t)

Condición inicial
Los coeficientes An se determinan a partir de la distribución inicial de
temperaturas u(r,0)

u(r,0)=T0−Ts=∞∑n=1AnJ0(knrR)u(r,0)=T0−Ts=∑n=1∞AnJ0(knrR)

Despejamos An utilizando las relaciones de ortogonalidad de las funciones de


Bessel, más abajo

(T0−Ts)R∫0rJ0(kmrR)dr=∞∑n=1AnR∫0rJ0(kmrR)J0(knrR)dr(T0−Ts)R∫0rJ0(
kmrR)dr=AmR∫0rJ20(kmrR)dr(T0−Ts)∫0RrJ0(kmrR)dr=∑n=1∞An∫0
RrJ0(kmrR)J0(knrR)dr(T0−Ts)∫0RrJ0(kmrR)dr=Am∫0RrJ02(kmr
R)dr

Haciendo el cambio de variable x=r/R y teniendo en cuenta los resultados de


las integrales

(T0−Ts)1∫0xJ0(kmx)dx=Am1∫0xJ20(kmx)dx(T0−Ts)J1(km)km=12Am(J20(km)
+J21(km))Am=2(T0−Ts)J1(km)(J20(km)+J21(km))km(T0−Ts)∫01xJ0(kmx)dx=A
m∫01xJ02(kmx)dx(T0−Ts)J1(km)km=12Am(J02(km)+J12(km))
Am=2(T0−Ts)J1(km)(J02(km)+J12(km))km

>> syms x k;
>> int('x*besselj(0,k*x)^2',x,0,1)
ans= besselj(0, k)^2/2 + besselj(1, k)^2/2
>> int('x*besselj(0,k*x)',x,0,1)
ans =besselj(1, k)/k
Cambiando m por n y teniendo en cuenta que kn son las raíces de la ecuación
transcendente J0(k)=0. Los coeficientes An valen

An=2(T0−Ts)knJ1(kn)An=2(T0−Ts)knJ1(kn)

Solución completa
u(r,t)=2(T0−Ts)∞∑n=11knJ1(kn)J0(knrR)exp(−k2nαR2t)T(r,t)=u(r,t)+T(
r,∞)=Ts+2(T0−Ts)∞∑n=11knJ1(kn)J0(knrR)exp(−k2nαR2t)u(r,t)=2(T0−T
s)∑n=1∞1knJ1(kn)J0(knrR)exp(−kn2αR2t)T(r,t)=u(r,t)+T(r,∞)
=Ts+2(T0−Ts)∑n=1∞1knJ1(kn)J0(knrR)exp(−kn2αR2t)

Ejemplo
Representamos gráficamente la función J0(x), para estimar aproximadamente
donde se encuentran las raíces de la ecuación transcendente J0(x)=0.

>> f=@(x) besselj(0,x);


>> fplot(f,[0,100])
>> xlabel('x')
>> ylabel('J_0(x)')
>> title('Función J_0(x)')
>> grid on

La función raices calcula las raíces múltiples de la función f(x) buscando los
intervalos en los que dicha función cambia de signo y utilizando la función
MATLAB fzero para encontrarlas
function r = raices(f, x)
y=f(x);
indices=find(y(1:end-1).*y(2:end)<0);
r=zeros(1,length(indices));
for k=1:length(indices)
r(k)=fzero(f, [x(indices(k)), x(indices(k)+1)]);
end
end
Definimos la función temperatura_5 para calcular la distribución de
temperaturas a lo largo de de la dirección radial del cilindro en el instante t

function [r,T]=temperatura_5(T0,Ts,R,k,a2,t)
r=linspace(0,R,100);
if(t==0)
T=T0*ones(1,length(r));
return;
end

T=Ts*ones(1,length(r));
for n=1:length(k)
an=2*(T0-Ts)/(k(n)*besselj(1,k(n)));
T=T+an*exp(-k(n)^2*t/(a2*R^2))*besselj(0,(k(n)*r/R));
end
end
Creamos un script en el que establecemos la temperatura inicial T0, la
temperatura ambiente Ts, el radio R de un cilindro muy largo, el material del
cual está hecho el cilindro, (parámetro α). El script calcula un número elevado
de raíces kn de la ecuación transcendente y representa la distribución radial de
temperaturas del cilindro en varios instantes.

T0=100; %temperatura inicial


Ts=0; %temperatura ambiente
alfa=11352; %Coeficiente, 1/alfa del aluminio
R=1; % radio del cilindro

%raíces
x=linspace(0,100,100);
f=@(x) besselj(0,x);
k=raices(f,x);

hold on
axis([0 1 -5 100]);
for t=[10 500 1000 2000]
[x,T]=temperatura_5(T0,Ts,R,k,alfa,t);
plot(x,T,'displayName',num2str(t));
end
title('Evolución de la temperatura de un cilindro')
xlabel('r')
ylabel('Temperatura')
legend('-DynamicLegend','location','southwest')
grid on
hold off
Una vez obtenidas las raíces kn de la ecuación transcendente, J0(k)=0,
comprobamos las relaciones de ortogonalidad que hemos utilizado para calcular
los coeficientes An

1∫0xJ0(kmx)J0(knx)dx=0m≠n∫01xJ0(kmx)J0(knx)dx=0 m≠n

>> f=@(x) x.*(besselj(0,k(1)*x).*besselj(0,k(2)*x));


>> integral(f,0,1)
ans = 8.9311e-18

FUENTE: http://www.sc.ehu.es/sbweb/fisica3/transporte/cilindro/cilindro.html

S-ar putea să vă placă și