Conducción del calor en una varilla no homogénea

Estudiaremos una situación en la que los extremos de la varilla se mantienen a temperatura constante T(0,t)=T0 y T(L, t)=TL.

La temperatura inicial de la varilla es T(x ,0)

En un instante t, la distribución de temperaturas en la parte izquierda es T1(x, t) y en la parte derecha, T2(x, t). Soluciones de las ecuaciones diferenciales en derivadas parciales

T 1 (x,t) t = K 1 ρ 1 c 1 2 T 1 (x,t) x 2 ,0x<d T 2 (x,t) t = K 2 ρ 2 c 2 2 T 2 (x,t) x 2 ,dxL

Con las condiciones iniciales y de controno especificadas. En la posición d de contacto de los dos tramos se ha de cumplir

T 1 (d,t)= T 2 (d,t) K 1 T 1 (x,t) x | x=d = K 2 T 2 (x,t) x | x=d

La función T(x,t) es continua y el flujo de calor a través de la sección de la varilla en la posición de contacto d, a uno y otro lado, es el mismo

Una situación similar la encontramos en la propagación de ondas en una cuerda no homogénea

Estado estacionario

El estado estacionario está caracterizado por una temperatura no uniforme en la varilla

Como en una varilla con temperaturas fijas en los extremos, la temperatura varía linealmente entre T0 y Td en la parte izquierda y entre Td y TL en la parte derecha. La ecuación de las rectas es

T1(x,∞)=m1x+b1, parte izquierda
T2(x,∞)=m2x+b2, parte derecha

T 1 (x,)= T d T 0 d x+ T 0 T 2 (x,)= T L T d Ld x+ T d L T L d Ld = T d (Lx)+ T L (xd) Ld

Calculamos la temperatura Td en la posición de contacto, d, mediante la relación

K 1 d T 1 (x,) dx | x=d = K 2 d T 2 (x,) dx | x=d K 1 m 1 = K 2 m 2 T d = K 2 d T L + K 1 (Ld) T 0 K 2 d+ K 1 (Ld)

Ejemplo

Sea la varilla

k1=1; %conductividad térmica
c1=1; %calor específico
r1=1; %densidad
k2=2;
c2=2;
r2=2;

T0=10; %temperatura, extremo izquierdo
TL=0; %extremo derecho
L=1; %longitud varilla
d=L/3; %tramo izquierdo

%temperatura en la posición de contacto
T_d=(TL/(L-d)+k1*T0/(d*k2))/(k1/(k2*d)+1/(L-d)); 
m1=(T_d-T0)/d; %pendiente
b1=T0; %ordenada en el origen
m2=(TL-T_d)/(L-d);
b2=(T_d*L-TL*d)/(L-d);
line([0,d],[T0,T_d])
line([d,L],[T_d,TL])
line([d,d],[0,T_d],'lineStyle','--','color','k')
xlabel('x')
ylabel('T')
grid on
title('Estado estacionario')

Solución de la ecuación de la conducción del calor

Definimos las funciones: u1(x,t)=T1(x,t)-T1(x,∞) y u2(x,t)=T2(x,t)-T2(x,∞). En términos de estas nuevas funciones, las ecuaciones de la conducción del calor se esciben,

u 1 (x,t) t = K 1 ρ 1 c 1 2 u 1 (x,t) x 2 ,0x<d u 2 (x,t) t = K 2 ρ 2 c 2 2 u 2 (x,t) x 2 ,dxL

Variables separadas

Buscamos una solución de la forma u(x,t)=F(xG(t), variables separadas

u(x,t) t =α 2 u(x,t) x 2 F(x) dG(t) dt =αG(t) d 2 F(x) d x 2 1 G(t) dG(t) dt = α F(x) d 2 F(x) d x 2 = ω 2

Integramos la primera ecuación diferencial

dG(t) dt + ω 2 G(t)=0 G(t)=G(0)·exp( ω 2 t)

Integramos la segunda ecuación diferencial

d 2 F(x) d x 2 + ω 2 α F(x)=0 d 2 F(x) d x 2 + μ 2 ω 2 F(x)=0, μ 2 = 1 α F(x)=Asin( μωt )+Bcos( μωt )

Las soluciones de la segunda, para cada una de las tramos de la varilla, son

F 1 (x)= A 1 sin( μ 1 ωx)+ B 1 cos( μ 1 ωx),0x<d F 2 (x)= A 2 sin( μ 2 ωx)+ B 2 cos( μ 2 ωx),dxL

Tenemos un sistema homogéneo de tres ecuaciones con tres incógnitas A1 ,A2 y B2. Despejamos A2 y B2 en función de A1

A 2 = A 1 sin( μ 1 ωd)·cos( μ 2 ωL) sin( μ 2 ω(Ld) ) B 2 = A 1 sin( μ 1 ωd)·sin( μ 2 ωL) sin( μ 2 ω(Ld) )

Las funciones F1(x) y F2(x) se expresan

{ F 1 (x)= A 1 sin( μ 1 ωx) F 2 (x)= A 1 sin( μ 1 ωd)·cos( μ 2 ωL) sin( μ 2 ω(Ld) ) sin( μ 2 ωx)+ A 1 sin( μ 1 ωd)·sin( μ 2 ωL) sin( μ 2 ω(Ld) ) cos( μ 2 ωx) { F 1 (x)= A 1 sin( μ 1 ωx),0x<d F 2 (x)= A 1 sin( μ 1 ωd) sin( μ 2 ω(Ld) ) sin( μ 2 ω(Lx) ),dxL

Además, obtenemos una ecuación transcendente (el determinante de los coeficientes del sistema homogéneo ha de ser nulo)

K 1 μ 1 cot( μ 1 ωd)+ K 2 μ 2 cot( μ 2 ω(Ld) )=0

Representamos la función f(ω)

k1=1; %conductividad térmica
c1=1; %calor específico
r1=1; %densidad
k2=2;
c2=2;
r2=2;

T0=10; %temperatura, extremo izquierdo
TL=0; %extremo derecho
L=1; %longitud varilla
d=L/3; %tramo izquierdo
a1=sqrt(c1*r1/k1);
a2=sqrt(c2*r2/k2);

%f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).
*sin(a1*w*d);
f=@(x) cot(a1*x*d)+(k2*a2/(k1*a1))*cot(a2*x*(L-d));
fplot(f,[0,20])
ylim([-10,10])
xlabel('\omega')
ylabel('f(\omega)')
grid on
title('Raíces de la ecuación transcendente')

Para calcular las raíces, es más conveniente expresar esta ecuación de la forma

K 1 μ 1 cos( μ 1 ωd)sin( μ 2 ω(Ld) )+ K 2 μ 2 cos( μ 2 ω(Ld) )sin( μ 1 ωd)=0

La primera raíz es ω=0

Utilizamos la función raices que llama al procedimiento fzero de MATLAB para calcular las raíces múltiples de la ecuación transcendente.

...
w=linspace(0,20,20);
f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).
*sin(a1*w*d);
raiz=raices(f,w); 
...
>> raiz
raiz =    2.0901    4.9664    7.7754    9.7136   11.9808   14.8978   17.6080   
19.4447

La representación gráfica nos ayuda a establecer el paso de exploración de la función y el intervalo o el número de raíces que deseamos obtener. Es conveniente, comprobar que las raíces obtenidas numéricamente se corresponden con los ceros de la función f(ω)

Solución completa

La solución completa u(x,t) es la superposición de los productos de las funciones Fn(xGn(x) para cada ωn

u 1 (x,t)= n=1 A n sin( μ 1 ω n x)exp( ω n 2 t) ,0x<d u 2 (x,t)= n=1 A n sin( μ 1 ω n d) sin( μ 2 ω n (Ld) ) sin( μ 2 ω n (Lx) )exp( ω n 2 t) ,dxL

La primera raíz ω=0 no contribuye a la suma

De forma abreviada expresamos la superposición

u 1 (x,t)= n=1 A n X 1n (x)exp( ω n 2 t) ,0x<d u 2 (x,t)= n=1 A n X 2n (x)exp( ω n 2 t) ,dxL

Relación de ortogonalidad

Se puede demostar que

c 1 ρ 1 0 d X 1n (x) X 1m (x)dx+ c 2 ρ 2 d L X 2n (x) X 2m (x)dx=0

Evaluamos esta relación, utilizando procedimientos numéricos

k1=1; %conductividad térmica
c1=1; %calor específico
r1=1; %densidad
k2=2;
c2=2;
r2=2;

T0=10; %temperatura, extremo izquierdo
TL=0; %extremo derecho
L=1; %longitud varilla
d=L/3; %tramo izquierdo
a1=sqrt(c1*r1/k1);
a2=sqrt(c2*r2/k2);

w=linspace(0,20,20);
f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).
*sin(a1*w*d);
raiz=raices(f,w); 
w1=raiz(4); 
w2=raiz(5);
X1_1=@(x) sin(a1*w1*x);
X1_2=@(x) sin(a1*w2*x);
X2_1=@(x) sin(a1*w1*d)*sin(a2*w1*(L-x))/sin(a2*w1*(L-d));
X2_2=@(x) sin(a1*w2*d)*sin(a2*w2*(L-x))/sin(a2*w2*(L-d));
Z1=@(x) X1_1(x).*X1_2(x);
Z2=@(x) X2_1(x).*X2_2(x);
res=c1*r1*integral(Z1,0,d)+c2*r2*integral(Z2,d,L);
disp(res)
   1.4710e-15

Coeficientes An

Los coeficientes An se calculan a partir de las distribución inicial de temperatura u(x,0)

u(x,0){ u 1 (x,0)= n=1 A n X 1n ,0x<d u 2 (x,0)= n=1 A n X 2n ,dxL

Multiplicamos la primera ecuación por X1m y la segunda por X2m e integramos entre 0 y d, la primera y entre d y L, la segunda

{ 0 d u 1 (x,0) X 1m dx = 0 d ( n=1 A n X 1n X 1m ) dx d L u 2 (x,0) X 2m dx = d L ( n=1 A n X 2n X 2m ) dx { 0 d u 1 (x,0) X 1m dx = n=1 A n · 0 d ( X 1n X 1m dx ) dx d L u 2 (x,0) X 2m dx = n=1 A n · d L ( X 2n X 2m dx ) dx

Sumamos

ρ 1 c 1 0 d u 1 (x,0) X 1m dx + ρ 2 c 2 d L u 2 (x,0) X 2m dx = n=1 A n ·{ ρ 1 c 1 0 d ( X 1n X 1m dx ) dx+ ρ 2 c 2 d L ( X 2n X 2m dx ) dx } ρ 1 c 1 0 d u 1 (x,0) X 1m dx + ρ 2 c 2 d L u 2 (x,0) X 2m dx = A m { ρ 1 c 1 0 d X 1m 2 dx+ ρ 2 c 2 d L X 2m 2 dx }

Los coeficientes An se pueden calcular de forma analítica, basta resolver integrales por partes, pero es muy tedioso. Por lo que utilizaremos procedimientos numéricos.

Una vez calculados los coeficientes An, se ha completado la función u(x, t). Ahora queda la temperatura de la varilla, T(x, t)=u(x, t)+T(x, ∞)

T 1 (x,t)= n=1 A n sin( μ 1 ω n x)exp( ω n 2 t) + T d T 0 d x+ T 0 ,0x<d T 2 (x,t)= n=1 A n sin( μ 1 ω n d) sin( μ 2 ω n (Ld) ) sin( μ 2 ω n (Lx) )exp( ω n 2 t) + T d (Lx)+ T L (xd) Ld ,dxL

Dado que la exponencial disminuye rápidamente con el tiempo y por otra parte, los valores de las raíces ωn se hacen grandes, basta sumar unos pocos términos a la serie para obtener buenos resultados.

k1=1; %conductividad térmica
c1=1; %calor específico
r1=1; %densidad
k2=2;
c2=2;
r2=2;

T0=10; %temperatura, extremo izquierdo
TL=0; %extremo derecho
Tini=0; %temperatura inicial
L=1; %longitud varilla
d=L/3; %tramo izquierdo
a1=sqrt(c1*r1/k1);
a2=sqrt(c2*r2/k2);

%estado estacionario
T_d=(TL/(L-d)+k1*T0/(d*k2))/(k1/(k2*d)+1/(L-d));
m1=(T_d-T0)/d;
b1=T0;
m2=(TL-T_d)/(L-d);
b2=(T_d*L-TL*d)/(L-d);

%raíces wn
w=linspace(0,40,40);
f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).*
sin(a1*w*d);
raiz=raices(f,w); 

%amplitudes An
A=zeros(1,length(raiz));
for n=1:length(raiz)
    w=raiz(n);
    X1=@(x) sin(a1*w*x);
    X2=@(x) sin(a1*w*d)*sin(a2*w*(L-x))/sin(a2*w*(L-d));
    Z1=@(x) X1(x).^2;
    Z2=@(x) X2(x).^2;
    norm=integral(Z1,0,d)+(r2*c2/(r1*c1))*integral(Z2,d,L);
    Y1=@(x) X1(x).*(Tini-m1*x-b1);
    Y2=@(x) X2(x).*(Tini-m2*x-b2);
    A(n)=(integral(Y1,0,d)+(r2*c2/(r1*c1))*integral(Y2,d,L))/norm; 
end

hold on
x1=linspace(0,d,50);
x2=linspace(d,L,100);
 for t=[0,0.05,0.5,1]
    u1=zeros(1,length(x1));
    u2=zeros(1,length(x2));
    for n=1:length(raiz)
        w=raiz(n);
        u1=u1+A(n)*sin(a1*w*x1)*exp(-w^2*t);
        u2=u2+A(n)*sin(a1*w*d)*sin(a2*w*(L-x2))*exp(-w^2*t)/sin(a2*w*(L-d));
    end
    T=[u1+m1*x1+b1,u2+m2*x2+b2];
    x=[x1,x2];
    plot(x,T, 'displayName',num2str(t))
end
hold off
xlabel('x')
ylabel('T')
grid on
legend('-DynamicLegend','location','best')
title('Conducción del calor, dos barras')

La distribución inicial de temperatura T(x,0)=0 en el instante t=0, requiere de muchos sumandos para que aparezca casi horizontal y luego, vertical, T(0, t)=T0=10. Véase, desarrollo en serie de Fourier

Observamos que en el instante t=1, se ha alcanzado aproximadamente el estado estacionario

Consideremos ahora, una situación más realista que utiliza para la varilla dos sustancias, acero y aluminio que difieren en su conductividad térmica

En primer lugar, representamos la función f(ω), para hacernos una idea de los valores de las raíces ωn

k1=209.3; %aluminio
c1=880;
r1=2700;
k2=45; %acero
c2=460;
r2=7800;
a1=sqrt(c1*r1/k1);
a2=sqrt(c2*r2/k2);

L=1; %longitud de la varilla
d=L/3; %posición de contacto

f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).*
sin(a1*w*d);
w=linspace(0,0.2,50);
raiz=raices(f,w); %calcula las raíces
fplot(f,[0,0.2])
xlabel('\omega')
ylabel('f(\omega)')
grid on
title('Raíces de la ecuación transcendente')

raiz =    0.0150    0.0293    0.0423    0.0551    0.0691    0.0839    
0.0990    0.1136    0.1270    0.1396    0.1532    0.1679    0.1829    0.1977

Comprobamos que las raíces calculadas (14) se corresponden con los ceros de la función f(ω) en el intervalo seleccionado (0, 0.2).

Completamos el programa para representar la distribución de temperaturas en los instantes t: 50, 500, 1000, 10000 s. Las líneas a trazos corresponden al estado estacionario. La parte derecha de la varilla, está hecha de acero y la parte izquierda, de aluminio de conductividad térmica K mucho mayor

k1=209.3; %aluminio
c1=880;
r1=2700;
k2=45; %acero
c2=460;
r2=7800;
a1=sqrt(c1*r1/k1);
a2=sqrt(c2*r2/k2);

T0=100; %temperaturas en los extremos
TL=0;
Tini=0; %temperatura inicial
L=1; %longitud varilla
d=L/3; %posición contacto

%estado estacionario
T_d=(TL/(L-d)+k1*T0/(d*k2))/(k1/(k2*d)+1/(L-d));
m1=(T_d-T0)/d;
b1=T0;
m2=(TL-T_d)/(L-d);
b2=(T_d*L-TL*d)/(L-d);

%raíces wn
w=linspace(0,0.2,50);
f=@(w) cos(a1*w*d).*sin(a2*w*(L-d))+(k2*a2/(k1*a1))*cos(a2*w*(L-d)).
*sin(a1*w*d);
raiz=raices(f,w); 

%amplitudes An
A=zeros(1,length(raiz));
for n=1:length(raiz)
    w=raiz(n);
     X1=@(x) sin(a1*w*x);
     X2=@(x) sin(a1*w*d)*sin(a2*w*(L-x))/sin(a2*w*(L-d));
    Z1=@(x) X1(x).^2;
    Z2=@(x) X2(x).^2;
    norm=integral(Z1,0,d)+(r2*c2/(r1*c1))*integral(Z2,d,L);
    Y1=@(x) X1(x).*(Tini-m1*x-b1);
    Y2=@(x) X2(x).*(Tini-m2*x-b2);
    A(n)=(integral(Y1,0,d)+(r2*c2/(r1*c1))*integral(Y2,d,L))/norm; 
end

hold on
%estado estacionario
line([0,d],[T0,T_d], 'lineStyle','--','color','k')
line([d,L],[T_d,TL],'lineStyle','--','color','k')
line([d,d],[-20,T_d],'lineStyle','--','color','k')
x1=linspace(0,d,50);
x2=linspace(d,L,100);
%estado transitorio
for t=[50,500,1000, 10000]
    u1=zeros(1,length(x1));
    u2=zeros(1,length(x2));
    for n=1:length(raiz)
        w=raiz(n);
        u1=u1+A(n)*sin(a1*w*x1)*exp(-w^2*t);
        u2=u2+A(n)*sin(a1*w*d)*sin(a2*w*(L-x2))*exp(-w^2*t)/sin(a2*w*(L-d));
    end
    T=[u1+m1*x1+b1,u2+m2*x2+b2];
    x=[x1,x2];
    plot(x,T)
end
hold off
xlabel('x')
ylabel('T')
grid on
title('Conducción del calor, dos barras')

Referencias

M. M. Smirnov. problemas de ecuaciones de la física matemática. Editorial Mir Moscú. 1976. Problema 161, enunciado, pág. 49, solución, págs. 131-132