Transfert de chaleur dans un matériau

Introduction

Définitions

La chaleur est une forme de l’énergie

La température est la manifestation mesurable de la chaleur stockée

Si l’on met deux corps en contact ayant des températures différentes, un transfert de chaleur aura lieu, transférant la chaleur du corps le plus chaud vers le corps le plus froid.

Il existe plusieurs modes de transfert de chaleur:

La conduction correspond à un échange de chaleur entre deux points d’un solide, d’un liquide ou d’un gaz immobile et opaque.

La convection correspond à un échange de chaleur entre une paroi et un fluide avec un transport de la chaleur par le fluide en mouvement.

Le rayonnement correspond à un échange de chaleur entre deux parois séparées par un milieu transparent.

Les équations de la chaleur

La loi de conduction de la chaleur:

(OverVector[(Subscript[j, T])])=-k(OverVector[grad])(T)

où k est le coefficient de conduction thermique, (OverVector[(Subscript[j, T])]) le flux diffusif thermique

L’équation de la chaleur

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)+div((OverVector[(Subscript[j, T])]))=(Subscript[Q, T])

où ρ est la masse volumique du milieu, (Subscript[C, P]) la chaleur massique, (OverVector[v]) la vitesse du flux de chaleur et (Subscript[Q, T]) un terme source de chaleur.

En combinant les deux équations, on obtient:

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)-div(k(OverVector[grad])(T))=(Subscript[Q, T])

Quelques exemples d’applications

Un mur de maison

On prend comme premier exemple un mur simple d’épaisseur e dans un état thermique stable (((∂T)/(∂t))=0 et (OverVector[v])=0) et sans puissance calorifique ((Subscript[Q, T])=0). On considère un mur mince, avec un flux de chaleur unidirectionnel selon x. Les températures des deux côtés du mur sont différentes ((Subscript[T, 1])<(Subscript[T, 2])). On cherche à déterminer le profil de la température dans ce mur.

Pour ce problème, il est adapté d’utiliser les coordonnées cartésiennes. La température ne change que selon la direction x, et on peut s’attendre à voir une distribution de la température homogène dans les autres directions.

Les conditions de ce problème permettent de simplifier l’équation de la chaleur présentée auparavant.

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)-div(k(OverVector[grad])(T))=(Subscript[Q, T])

devient

(((∂^2)T)/(∂(x^2)))=0

On pose comme conditions aux limites:

T(x=0)=(Subscript[T, 1])

T(x=e)=(Subscript[T, 2])

On pose ce système d’équations et on le résout:

ODEandBCs={T''[x]==0, T[0]==T1, T[e]==T2}

Tsol=T[x]/.DSolve[ODEandBCs,T[x],x, Assumptions-> T1∈Reals&&T2∈Reals][[1]]

Afin d’avoir une solution plus général, ne dépendant pas d’une épaisseur quelconque d’un mur, un changement de variable est effectué: la température n’est plus fonction d’uniquement x mais du rapport x/e, qui varie donc entre 0 et 1. Le système différentiel et sa solution sont les suivants:

ODEandBCsxsure={T''[xsure]==0, T[0]==T1, T[1]==T2}

Tsol=T[xsure]/.DSolve[ODEandBCsxsure,T[xsure],xsure, Assumptions-> T1∈Reals&&T2∈Reals][[1]]

En changeant la disposition de l’équation, on peut voir que l’équation est de la forme

T(x)=(Subscript[T, 1])+((Subscript[T, 2])-(Subscript[T, 1]))(x/e)

Tsol=Tsol/.(T2*xsure-T1*xsure)->xsure*(T2-T1)

On peut généraliser cette expression à l’ensemble des cas en effectuant les transformations suivantes:

((T(x)-(Subscript[T, 1]))/((Subscript[T, 2])-(Subscript[T, 1])))=(x/e)

Tsol=Tsol/.Tsol->(Tsol-T1)/(T2-T1)

Ainsi, le profil de la température pour ce cas a l’allure suivante:

Plot[Tsol,{xsure,0,1}, AxesLabel->{"x/e", "(T(x)-T1)/(T2-T1)"}]

Dans le mur, la température est donc répartie de la manière suivante:

DensityPlot[Tsol,{xsure,0,1},{y,-5,5},ColorFunction->(ColorData["TemperatureMap"]),Axes->True,AxesOrigin->{0,0},  AxesLabel->{"x/e"}]

Un mur qui vient d’être construit!

On prend comme deuxième exemple un mur en béton d’épaisseur e en train de durcir grâce à une réaction chimique exothermique - hydratation du béton. On suppose que les deux surfaces extérieures sont gardées à la même température (Subscript[T, w]). On suppose également que nous somme dans un cas stationnaire et que le béton est immobile (((∂T)/(∂t))=0 et (OverVector[v])=0).

Pour ce problème, il est adapté d’utiliser les coordonnées cartésiennes. La température ne change que selon la direction x, et on peut s’attendre à voir une distribution de la température homogène dans les autres directions.

Les conditions de ce problème permettent de simplifier l’équation de la chaleur présentée auparavant.

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)-div(k(OverVector[grad])(T))=(Subscript[Q, T])

devient

(((∂^2)T)/(∂(x^2)))=-((Subscript[Q, T])/k)

On pose comme conditions limites

T(x=0)=(Subscript[T, w])

T(x=e)=(Subscript[T, w])

On pose ce système d’équations et on le résout:

ODEandBCs={T''[x]==-Q/k, T[0]==Tw, T[e]==Tw}

Tsol=T[x]/.DSolve[ODEandBCs,T[x],x,Assumptions->Q∈Reals && k∈Reals && Tw∈Reals && e∈Reals][[1]]

Afin d’obtenir une réponse générale, utilisable dans un grand nombre de cas, il paraît préférable d’adimensionnaliser ce résultat. Ainsi, on effectue un léger changement de variable en supposant varie non plus avec x, mais avec x/e, ce qui permet de visualiser un résultat pour n’importe quelle épaisseur de mur.

ODEandBCsxsure={T''[xsure]==-Q/k, T[0]==Tw, T[1]==Tw}

Tsolxsure=T[xsure]/.FullSimplify[DSolve[ODEandBCsxsure,T[xsure],xsure,Assumptions->Q∈Reals && k∈Reals && Tw∈Reals][[1]]]

De plus, on passe tous les autres termes du côté gauche de l' équation, ce qui nous donne :

((T(x/e)-(Subscript[T, w]))/((Subscript[Q, T])(e^2)/k))=(1/2)[(x/e)-((((x/e)))^2)]

TsolxsureAdim=Tsolxsure/.Tsolxsure->(Tsolxsure-Tw)/(Q/k)

Ainsi, le profil de la température pour ce cas a l’allure suivante:

Plot[TsolxsureAdim,{xsure,0,1}, AxesLabel->{"x/e", "(T(x)-Tw)/(Q*e^2/k)"}]

Dans le mur, la température est donc répartie de la manière suivante:

DensityPlot[TsolxsureAdim,{xsure,0,1},{y,-5,5},ColorFunction->(ColorData["TemperatureMap"]),Axes->True,AxesOrigin->{0,0},  AxesLabel->{"x/e"}]

Un traitement thermique en continu

Pour cet exemple, on considère une fine barre d’acier effectuant un procédé de traitement thermique en continu: la barre est en effet extraite à la vitesse v d’un four (chauffé à une température (Subscript[T, 0])) puis est trempée, après une distance L dans un bain d’eau maintenu à température (Subscript[T, L]). On cherche à déterminer le profil de température dans la barre entre la sortie du four et l’entrée du bain lorsqu’un régime stationnaire est établi.

Pour ce problème, il est adapté d’utiliser les coordonnées cartésiennes. La barre étant fine, on suppose que la température est uniforme dans une section transversale de la barre, c' est - à - dire que le champ de température T ne dépend que de la position x.

Les conditions de ce problème permettent de simplifier l’équation de la chaleur présentée auparavant.

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)-div(k(OverVector[grad])(T))=(Subscript[Q, T])

devient

(((∂^2)T)/(∂(x^2)))=(((Subscript[ρC, P])v)/k)·((∂T)/(∂x))

On pose comme conditions aux limites:

T(x=0)=(Subscript[T, 0])

T(x=L)=(Subscript[T, L])

On pose ce système d’équations et on le résout:

ODEandBCs={D[T[x],{x,2}]==rho*Cp*v/k*D[T[x],x],
T[0]==T0,
T[L]==TL}

Tsol=T[x]/.FullSimplify[DSolve[ODEandBCs,T[x],x,Assumptions->rho∈Reals&&rho>0&&Cp∈Reals&&Cp>0&&v∈Reals&&T0∈Reals&&TL∈Reals]][[1]][[1]]

Le facteur ((rho*Cp)/k)=(1/α), où α et le coefficient de diffusivité thermique du matériau.

Tsolalpha=Tsol/.Cp*rho/k->1/α

La lecture de cette solution a l’air compliquée, cependant, elle peut paraître plus simple en la réécrivant de la manière suivante:

T(x)=(Subscript[T, 0])+(((Subscript[T, L])-(Subscript[T, 0]))/(exp((vL/α))-1))(exp((v/α)x)-1)

De la même manière que pour les exemples précédents, on cherche à donner une solution générale. Dans cet exemple, celle-ci a la forme suivante:

((T(x)-(Subscript[T, 0]))/((Subscript[T, L])-(Subscript[T, 0])))=((exp((v/α)x)-1)/(exp((vL/α))-1))

TAdim=FullSimplify[Tsolalpha/.Tsolalpha->(Tsolalpha-T0)/(TL-T0)]

Le rapport (vL/α) est en réalité le nombre adimensionnel de Péclet, qui définit le rapport entre les phénomènes d’advection et de diffusion d’un procédé. On peut ainsi le remplacer dans la relation précédente:

TsolPeclet=TAdim/.(v*L/α)->Pe

TsolPecletfinal=TsolPeclet/.(v/α)->(Pe/L)

Finalement, de la même manière que cela a été fait pour les exemples précédents, on effectue un léger changement de variable, en remplaçant x/L par la variable xsurL.

Tsoladimfinal=TsolPecletfinal/.(x/L)->xsurL

On peut essayer de comprendre le fonctionnement du nombre adimensionnel de Péclet en faisant varier le profil de la température en fonction de sa valeur

Manipulate[Dynamic[Plot[Tsoladimfinal/.Pe->Péclet,{xsurL,0,1}, PlotRange->All,AxesLabel->{"x/L", "(T(x)-T0)/(TL-T0)"}]],{{Péclet,1},0.001,100}]

ou en présentant graphiquement la solution pour différentes valeurs de Péclet

listpeclet={0.0001,1,5,10,40,100}

TsolseveralPeclet=Tsoladimfinal/.Pe->listpeclet

Plot[TsolseveralPeclet,{xsurL,0,1}, PlotLegends->listpeclet]

On peut également représenter ce résultat dans un mur, en laissant un nombre de Péclet variable.

Manipulate[Dynamic[DensityPlot[Tsoladimfinal/.Pe->pe,{xsurL,0,1},{y,-5,5}, Axes->True,AxesOrigin->{0,0},PlotRange->All,AxesLabel->{"x/L"},ColorFunction->(ColorData["TemperatureMap"])]],{{pe,1},0.001,100}]

Flux de chaleur

Attention: cet exemple n’est pas dans la vidéo!

Pour ce dernier exemple, on considère un flux de chaleur quelconque entrant dans une surface et variant avec le temps. On utilise tout de même une version simplifier de l’équation de la chaleur présentée auparavant.

(Subscript[ρC, P])((∂T)/(∂t))+(Subscript[ρC, P])(OverVector[v])·(OverVector[grad])(T)-div(k(OverVector[grad])(T))=(Subscript[Q, T])

devient

ΔT(x,y)=((∂T)/(∂t))

On pose la condition initiale suivante:

T(0,x,y)=0

Et les conditions aux limites sont arbitrairement choisies comme étant les  suivantes:

T(t,x,0)=cos(t)

T(t,0,y)=cos(t)

T(t,x,L)=0

T(t,L,y)=0

Une solution analytique existe pour un tel cas, cependant, elle comprend très souvent des sommes de plusieurs éléments, desquelles il faut vérifier la convergence et qui peuvent être très longue à réaliser, même pour des ordinateurs. Ainsi, pour cette exemple, la solution recherchée ne sera pas analytique comme auparavant, mais numérique. Pour se faire, il est impératif de déterminer une valeur pour la variable L. On pose L=10. On se retrouve ainsi avec le système et la solution suivante.

ODEandBCs={D[T[t,x,y],t]==Laplacian[T[t,x,y],{x,y}],T[0,x,y]==0,
T[t,x,0]==Cos[t], T[t,0,y]==Cos[t],
T[t,x,10]==0,T[t,10,y]==0}

Tsol=T[t,x,y]/.NDSolve[ODEandBCs,
T[t,x,y],{t,0,20},{x,0,10},{y,0,10}][[1]]

On peut représenter de manière graphique cette solution, tout en laissant la possibilité de faire varier le temps et de voir le comportement que cela donne au flux de chaleur.

Manipulate[Plot3D[Tsol/.t->temps,{x,0,10},{y,0,10}, PlotRange->{{0,10},{0,10}, {-1,1}},ColorFunction->(ColorData["TemperatureMap"][(#3+1)/2]&), ColorFunctionScaling->False, AxesLabel->{"x", "y", "T[temps, x, y]"}], {temps,0,20}]

Références

Amstad Esther et Bowen Paul. Cours de phénomène de transfert pour les 2ème année de bachelor en science et génie des matériaux. Ecole polytechnique fédérale de Lausanne (EPFL). Printemps 2016.

Desbiolles Jean-Luc. Cours de modélisation des matériaux pour les 3ème année de bachelor en science et génie des matériaux. Ecole polytechnique fédérale de Lausanne (EPFL). Printemps 2017