> restart:#"m11_p95"

Calcular el campo de temperaturas en un sólido cúbico de 0,1 m de lado y conductividad térmica k=10 W/(m·K), con una disipación de energía interna uniforme de  =10 W, estando aislado térmicamente por todas sus caras menos una, y con Tm=100 ºC en la cara opuesta.).

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

> dat:=[L=0.1*m_,k=10*W_/(m_*K_),Wdis=10*W_,Tm=(100+273.15)*K_];dat:=op(dat),Const,SI2,SI1:

Typesetting:-mprintslash([dat := [L = `+`(`*`(.1, `*`(m_))), k = `+`(`/`(`*`(10, `*`(W_)), `*`(m_, `*`(K_)))), Wdis = `+`(`*`(10, `*`(W_))), Tm = `+`(`*`(373.15, `*`(K_)))]], [[L = `+`(`*`(.1, `*`(m_)...

Image

Se trata de un sencillo problema de trasmisión de calor unidimensional plano. Tomando el eje x en la dirección del flujo (la T no varía en las otras direcciones por estar aislado lateralmente). La ecuación del calor y su solución estacionaria son:

> eqH:=rho*c*Diff(T(x,t),t)=k*Diff(T(x,t),x,x)+phi;eqphi:=phi=Wdis/L^3;eqH_:=0=k*diff(T(x),x,x)+phi;eqBC1:=T(x)[x=0]=Tm;eqBC2:=diff(T(x),x)[x=0]=0;sol:=dsolve({eqH_,T(0)=Tm,D(T)(0)=0},T(x));sol_:=subs(eqphi,sol);TL=T(x)[x=L];TL_:=subs(x=L,rhs(sol_));

Typesetting:-mprintslash([eqH := `*`(rho, `*`(c, `*`(Diff(T(x, t), t)))) = `+`(`*`(k, `*`(Diff(T(x, t), `$`(x, 2)))), phi)], [`*`(rho, `*`(c, `*`(Diff(T(x, t), t)))) = `+`(`*`(k, `*`(Diff(T(x, t), x, ...
Typesetting:-mprintslash([eqphi := phi = `/`(`*`(Wdis), `*`(`^`(L, 3)))], [phi = `/`(`*`(Wdis), `*`(`^`(L, 3)))])
Typesetting:-mprintslash([eqH_ := 0 = `+`(`*`(k, `*`(diff(T(x), `$`(x, 2)))), phi)], [0 = `+`(`*`(k, `*`(diff(diff(T(x), x), x))), phi)])
Typesetting:-mprintslash([eqBC1 := T(x)[x = 0] = Tm], [T(x)[x = 0] = Tm])
Typesetting:-mprintslash([eqBC2 := (diff(T(x), x))[x = 0] = 0], [(diff(T(x), x))[x = 0] = 0])
Typesetting:-mprintslash([sol := T(x) = `+`(`-`(`/`(`*`(`/`(1, 2), `*`(phi, `*`(`^`(x, 2)))), `*`(k))), Tm)], [T(x) = `+`(`-`(`/`(`*`(`/`(1, 2), `*`(phi, `*`(`^`(x, 2)))), `*`(k))), Tm)])
Typesetting:-mprintslash([sol_ := T(x) = `+`(`-`(`/`(`*`(`/`(1, 2), `*`(Wdis, `*`(`^`(x, 2)))), `*`(`^`(L, 3), `*`(k)))), Tm)], [T(x) = `+`(`-`(`/`(`*`(`/`(1, 2), `*`(Wdis, `*`(`^`(x, 2)))), `*`(`^`(L...
TL = T(x)[x = L]
Typesetting:-mprintslash([TL_ := `+`(`-`(`/`(`*`(`/`(1, 2), `*`(Wdis)), `*`(L, `*`(k)))), Tm)], [`+`(`-`(`/`(`*`(`/`(1, 2), `*`(Wdis)), `*`(L, `*`(k)))), Tm)]) (1)

que con los valores dados es:

> TL__:=subs(dat,TL_);'TL__'=TKC(%);sol__:=subs(dat,SI0,sol_);plot(subs(x=x_m,rhs(%)-273.15),x_m=0..0.1,T_C=90..100);

Typesetting:-mprintslash([TL__ := `+`(`*`(368.1500000, `*`(K_)))], [`+`(`*`(368.1500000, `*`(K_)))])
TL__ = `+`(`*`(95.0000000, `*`(ºC)))
Typesetting:-mprintslash([sol__ := T(x) = `+`(`-`(`*`(500.0000000, `*`(`^`(x, 2)))), 373.15)], [T(x) = `+`(`-`(`*`(500.0000000, `*`(`^`(x, 2)))), 373.15)])
Plot_2d

Este sencillo ejercicio está continuado aparte, donde se estudia con diferentes métodos numéricos el régimen transitorio.

>