> restart:#"m11_p68"

Una chapa de 2 cm de espesor, de acero inoxidable, inicialmente a 20 ºC, se introduce súbitamente en agua hirviendo. Suponiendo un coeficiente convectivo de 3000 W/(m2•K), se pide:
a) Perfil esperado de temperaturas en la chapa en un instante genérico.
b) Tomar tres nodos (uno en cada cara y otro central) y plantear los balances energéticos en un instante genérico.
c) Determinar el valor máximo estable para el incremento de tiempo en la solución explícita por diferencias finitas.
d) Calcular por diferencias finitas los tres primeros pasos de la evolución.

Datos:

> read`../therm_eq.m`:read`../therm_const.m`:read`../therm_proc.m`:with(therm_proc):

> su:="Acero_inox":dat:=[Lt=0.02*m_,T0=(20+273.15)*K_,Tinf=(100+273.15)*K_,h=3000*W_/(m_^2*K_)];

[Lt = `+`(`*`(0.2e-1, `*`(m_))), T0 = `+`(`*`(293.15, `*`(K_))), Tinf = `+`(`*`(373.15, `*`(K_))), h = `+`(`/`(`*`(3000, `*`(W_)), `*`(`^`(m_, 2), `*`(K_))))]

Image

Eqs. const.:

> sdat:=[get_sol_data(su)]:dat:=op(dat),op(subs(epsilon=epsilon_,sdat)),Const,SI2,SI1:k=subs(dat,k);

k = `+`(`/`(`*`(18., `*`(W_)), `*`(m_, `*`(K_))))

a) Perfil esperado de temperaturas en la chapa en un instante genérico.

(Ver figura.)
El tiempo de relajación hasta el estado estacionario será:

> Dt_cond:=L^2/a;Dt_cond_:=subs(L=Lt/2,a=k/(rho*c),dat,%);Dt_conv:=rho*c*L/h;Dt_conv_:=subs(L=Lt/2,dat,%);

`/`(`*`(`^`(L, 2)), `*`(a))
`+`(`*`(21.666666666666666667, `*`(s_)))
`/`(`*`(rho, `*`(c, `*`(L))), `*`(h))
`+`(`*`(13.000000000000000000, `*`(s_)))

i.e. tardará unos 22 s en alcanzar el estado cercano al estacionario.

b) Tomar tres nodos (uno en cada cara y otro central) y plantear los balances energéticos en un instante genérico.

> eq11_24;eq_0:=subs(T0=Tinf,phi=0,h[lat]=0,epsilon[lat]=0,h0=h,epsilon0=0,E0=0,eq11_24_0);eq_i:=subs(phi=0,h[lat]=0,epsilon[lat]=0,eq11_24_gen);eq_N:=subs(TN=Tinf,phi=0,h[lat]=0,epsilon[lat]=0,hN=h,epsilonN=0,EN=0,eq11_24_N);eq_0:=subs(T0=Tinf,phi=0,h[lat]=0,epsilon[lat]=0,h0=h,epsilon0=0,E0=0,eq11_24_0_);eq_i:=subs(phi=0,h[lat]=0,epsilon[lat]=0,eq11_24_gen_);eq_N:=subs(TN=Tinf,phi=0,h[lat]=0,epsilon[lat]=0,hN=h,epsilonN=0,EN=0,eq11_24_N_);

`/`(`*`(Dm, `*`(c, `*`(DT))), `*`(Dt)) = Qnet
`+`(`/`(`*`(`/`(1, 2), `*`(rho, `*`(A, `*`(Dx, `*`(c, `*`(`+`(T[0, `+`(j, 1)], `-`(T[0, j])))))))), `*`(Dt))) = `+`(`/`(`*`(k, `*`(A, `*`(`+`(T[1, j], `-`(T[0, j]))))), `*`(Dx)), `-`(`*`(A, `*`(h, `*`...
`/`(`*`(rho, `*`(A, `*`(Dx, `*`(c, `*`(`+`(T[i, `+`(j, 1)], `-`(T[i, j]))))))), `*`(Dt)) = `+`(`/`(`*`(k, `*`(A, `*`(`+`(T[`+`(i, 1), j], `-`(T[i, j]))))), `*`(Dx)), `-`(`/`(`*`(k, `*`(A, `*`(`+`(T[i,...
`+`(`/`(`*`(`/`(1, 2), `*`(rho, `*`(A, `*`(Dx, `*`(c, `*`(`+`(T[N, `+`(j, 1)], `-`(T[N, j])))))))), `*`(Dt))) = `+`(`/`(`*`(k, `*`(A, `*`(`+`(T[`+`(N, `-`(1)), j], `-`(T[N, j]))))), `*`(Dx)), `-`(`*`(...
T[0, `+`(j, 1)] = `+`(T[0, j], `*`(2, `*`(Fo, `*`(`+`(T[1, j], `-`(T[0, j]))))), `-`(`/`(`*`(2, `*`(Dt, `*`(h, `*`(`+`(T[0, j], `-`(Tinf)))))), `*`(rho, `*`(c, `*`(Dx))))))
T[i, `+`(j, 1)] = `+`(T[i, j], `*`(Fo, `*`(`+`(T[`+`(i, 1), j], `-`(`*`(2, `*`(T[i, j]))), T[`+`(i, `-`(1)), j]))))
T[N, `+`(j, 1)] = `+`(T[N, j], `*`(2, `*`(Fo, `*`(`+`(T[`+`(N, `-`(1)), j], `-`(T[N, j]))))), `-`(`/`(`*`(2, `*`(Dt, `*`(h, `*`(`+`(T[N, j], `-`(Tinf)))))), `*`(rho, `*`(c, `*`(Dx))))))

c) Determinar el valor máximo estable para el incremento de tiempo en la solución explícita por diferencias finitas.

Ha de ser Fo*(1+Bi)<1/2.

> eqFo:=Fo=a*Dt/Dx^2;eqa:=eq11_5;eqa_:=subs(dat,%);eqDx:=Dx=L/N;N=2;eqBi:=Bi=h*Dx/k;eqBi_N2:=subs(eqDx,N=2,L=Lt/2,dat,%);eqEstab:=Fo*(1+Bi)<1/2;eqDt:=Dt=solve(subs(eqFo,eqa,eqDx,eqBi,Fo*(1+Bi)=1/2),Dt);eqDt_N2:=subs(eqDx,N=2,L=Lt,dat,%);

Fo = `/`(`*`(a, `*`(Dt)), `*`(`^`(Dx, 2)))
a = `/`(`*`(k), `*`(rho, `*`(c)))
a = `+`(`/`(`*`(0.46153846153846153847e-5, `*`(`^`(m_, 2))), `*`(s_)))
Dx = `/`(`*`(L), `*`(N))
N = 2
Bi = `/`(`*`(h, `*`(Dx)), `*`(k))
Bi = .83333333333333333334
`<`(`*`(Fo, `*`(`+`(1, Bi))), `/`(1, 2))
Dt = `+`(`/`(`*`(`/`(1, 2), `*`(rho, `*`(c, `*`(`^`(L, 2))))), `*`(`^`(N, 2), `*`(`+`(k, `*`(h, `*`(Dx)))))))
Dt = `+`(`*`(4.0624999999999999999, `*`(s_)))

i.e. ha de ser Dt<4 s.

d) Calcular por diferencias finitas los tres primeros pasos de la evolución.

Para los valores numéricos, además de los datos, se elige un valor de N del orden de 10 (i.e. aproximar una curva por diez puntos intermedios), de donde se deduce Dx y Dt (para que sea estable). Para llegar hasta el régimen estacionario, o bien se compara a cada paso la solución para ver cuándo ya no varía apreciablemente, o se estima por otro método el tiempo de relajación, o simplemente se calcula un número grande de pasos y después se ve si se había estabilizado.

> N:=2;M:=12;L:=Lt;datnum0:=op(subs(SI0,[Dt=subs(eqDx,dat,rhs(eqDt)),Dx=subs(dat,rhs(eqDx)),Fo=subs(Dt=rhs(eqDt),eqa,eqDx,dat,rhs(eqFo)),dat])):Dt=subs(datnum0,Dt);Fo=subs(datnum0,Fo);subs(eqDx,L=Lt/2,dat,eqBi);

2
12
Lt
Dt = 4.0624999999999999999
Fo = .18750000000000000000
Bi = .83333333333333333334

Inicialización: T[i , j=0]=T0.

> j:=0:for i from 0 to N do T[i,j]:=subs(datnum0,T0):od:

Iteraciones.

> for j from 0 to M-1 do eq_0_:=subs(datnum0,eq_0);assign(%);for i from 1 to N-1 do eq_i_:=subs(datnum0,eq_i);assign(%);od; eq_N_:=subs(TN=T0,datnum0,eq_N);assign(%);od:for j from 0 to M-1 do print(`j=`,j,seq(T[i,j]-273.15,i=0..N)) od;

`j=`, 0, 20.00, 20.00, 20.00
`j=`, 1, 70.00000000000000000, 20.00, 70.00000000000000000
`j=`, 2, 70.00000000000000000, 38.75000000000000000, 70.00000000000000000
`j=`, 3, 77.03125000000000000, 50.46875000000000000, 77.03125000000000000
`j=`, 4, 81.42578125000000000, 60.42968750000000000, 81.42578125000000000
`j=`, 5, 85.16113281250000000, 68.30322265625000000, 85.16113281250000000
`j=`, 6, 88.11370849609375000, 74.62493896484375000, 88.11370849609375000
`j=`, 7, 90.48435211181640625, 79.68322753906250000, 90.48435211181640625
`j=`, 8, 92.38121032714843750, 83.73364925384521484, 92.38121032714843750
`j=`, 9, 93.90011847019195556, 86.97648465633392334, 93.90011847019195556
`j=`, 10, 95.11618174612522126, 89.57284733653068542, 95.11618174612522126
`j=`, 11, 96.08981775119900703, 91.65159774012863636, 96.08981775119900703

Gráfica:

> Mdis:=10:pl:=subs(datnum0,[seq([seq([L*(i/N),T[i,jdis*trunc(M/Mdis)]-273],i=0..N)],jdis=0..Mdis)]):plot(pl,0..0.02,0..100,color=black);plot(subs(Dt=subs(eqDx,dat,rhs(eqDt)),SI0,{[seq([j*Dt,T[0,j]-273],j=1..M)],[seq([j*Dt,T[N/2,j]-273],j=1..M)]}),0..50,0..100,color=black);

Plot_2d
Plot_2d

Y si aumentamos la resolución:

> T:='T':eq_0_:='eq_0_':eq_i_:='eq_i_':eq_N_:='eq_N_':N:=10;M:=150;L:=Lt;datnum0:=op(subs(SI0,[Dt=subs(eqDx,dat,rhs(eqDt)),Dx=subs(dat,rhs(eqDx)),Fo=subs(Dt=rhs(eqDt),eqa,eqDx,dat,rhs(eqFo)),dat])):Dt=subs(datnum0,Dt);Fo=subs(datnum0,Fo);subs(eqDx,L=Lt/2,dat,eqBi);j:=0:for i from 0 to N do T[i,j]:=subs(datnum0,T0):od:for j from 0 to M-1 do eq_0_:=subs(datnum0,eq_0);assign(%);for i from 1 to N-1 do eq_i_:=subs(datnum0,eq_i);assign(%);od; eq_N_:=subs(TN=T0,datnum0,eq_N);assign(%);od:Mdis:=10:pl:=subs(datnum0,[seq([seq([L*(i/N),T[i,jdis*trunc(M/Mdis)]],i=0..N)],jdis=0..Mdis)]):plot(pl,color=black);plot(subs(Dt=subs(eqDx,dat,rhs(eqDt)),SI0,{[seq([j*Dt,T[0,j]-273],j=1..M)],[seq([j*Dt,T[N/2,j]-273],j=1..M)]}),0..50,0..100,color=black);

10
150
Lt
Dt = .32500000000000000000
Fo = .37500000000000000000
Bi = .16666666666666666667
Plot_2d
Plot_2d

Este problema también admite solución analítica en variables separadas (ver Heat conduction. Table 7. Slab. Immersion in a fluid with constant-h).

>