🖥️ Ailette de refroidissement ★

Notebook Capytale de cet exercice : ac85-11678459

La performance des puces électroniques utilisées dans les ordinateurs décroit avec leur température. Afin de dissiper une puissance élevée en limitant la température du composant, on installe un dissipateur de chaleur. Ce dissipateur est muni d’ailettes de refroidissement. On étudie une de ces ailettes.

Une ailette de refroidissement en aluminium de conductivité thermique 𝜆=205 W m−1 ⁠K−1 est fixée en 𝑥=0 à un corps dont la température 𝑇0=70 °C est constante et avec lequel le contact thermique est parfait. Elle baigne dans l’air ambiant de température 𝑇𝑎=20 °C. L’ailette est en forme de parallélépipède, d’épaisseur 𝑒=1 mm, de largeur 𝑎=5 cm et de longueur 𝑙=10 cm.

On émet les hypothèses suivantes :

1/ Montrer que l’équation différentielle vérifiée par 𝑇(𝑥) peut se mettre sous la forme 𝜕2𝑇𝜕𝑥2−𝑇(𝑥)−𝑇𝑎𝐿2=0 où on exprimera 𝐿 en fonction de 𝜆, ℎ et 𝑒. Calculer la valeur numérique de 𝐿.

Coup de pouce 1
Faire un bilan d’énergie sur une tranche de longueur infinitésimale. Quels sont les 3 flux thermiques entrant dans cette tranche ?
Coup de pouce 2
Dans une tranche infinitésimale d’ailette, de la puissance rentre par conduction en 𝑥 et en 𝑥+d𝑥 et par conducto-convection sur les 4 parois latérales.
Corrigé

On applique le premier principe de la thermodynamique à une tranche d’ailette de longueur d𝑥 :

0=𝛿2𝑄=𝑗𝑄(𝑥)𝑒𝑎d𝑡−𝑗𝑄(𝑥+d𝑥)𝑒𝑎d𝑡−𝛿𝑃d𝑡=−𝜕𝑗𝑄𝜕𝑥𝑒𝑎d𝑥d𝑡−ℎ(𝑇(𝑥)−𝑇𝑎)2(𝑒+𝑎)d𝑥d𝑡=𝜆𝜕2𝑇𝜕𝑥2𝑒𝑎d𝑥d𝑡−ℎ(𝑇(𝑥)−𝑇𝑎)2(𝑒+𝑎)d𝑥d𝑡

d’où

𝜕2𝑇𝜕𝑥2−(𝑇(𝑥)−𝑇𝑎)2(𝑒+𝑎)ℎ𝜆𝑒𝑎=0

qu’on peut écrire sous la forme demandée en posant

𝐿=𝜆𝑒𝑎2(𝑒+𝑎)ℎ≈𝜆𝑒𝑎2𝑎ℎ=𝜆𝑒2ℎ

2/ Justifier les deux conditions aux limites suivantes : 𝑇(0)=𝑇0 et −𝜆𝜕𝑇𝜕𝑥(𝑥=𝑙)=ℎ(𝑇(𝑙)−𝑇𝑎).

Coup de pouce 1
Écrire la continuité du flux thermique en 𝑥=𝑙.
Corrigé

Le contact thermique étant parfait en 𝑥=0, la température de l’ailette est égale à celle du corps : 𝑇(0)=𝑇0.

En 𝑥=𝑙, le flux thermique par conduction dans l’ailette est égal au flux thermique cédé à l’air par conducto-convection :

𝑗𝑄(𝑥=𝑙)=ℎ(𝑇(𝑙)−𝑇𝑎)−𝜆𝜕𝑇𝜕𝑥(𝑥=𝑙)=ℎ(𝑇(𝑙)−𝑇𝑎)

Pour résoudre l’équation différentielle numériquement, on cherche à la mettre sous la forme d’un problème d’Euler d𝑌⃗d𝑥=𝐹⃗(𝑥,𝑌⃗) où 𝑌⃗=(𝑇d𝑇d𝑥).

3/ Expliciter la fonction 𝐹⃗.

Coup de pouce 1
Résoudre l’équation différentielle et utiliser les conditions aux limites pour trouver les constantes.
Corrigé

L’équation différentielle s’écrit sous la forme :

d2𝑇d𝑥2=𝑇−𝑇𝑎𝐿2

On a donc

d𝑌⃗d𝑥=dd𝑥(𝑇d𝑇d𝑥)=(d𝑇d𝑥d2𝑇d𝑥2)=(d𝑇d𝑥𝑇−𝑇𝑎𝐿2)

La fonction 𝐹⃗ est donc : 𝐹⃗:(𝑥,(𝑢𝑣))↦(𝑣𝑢−𝑇𝑎𝐿2)

4/ Compléter le code Python ci-dessous pour définir la fonction 𝐹⃗.

from scipy.integrate import solve_bvp, trapezoid
import numpy as np
import matplotlib.pyplot as plt

N = 100
lam = 205
e = 1e-3
h = 10
a = 5e-2
l = 10e-2
Ta = 20
T0 = 70
L = np.sqrt( lam*e / (h*2) )

def F(x, Y):
    return np.array( [..., ...] )
Corrigé
def F(x, Y):
    return np.array( [Y[1], (Y[0]-Ta)/L**2] )

Pour résoudre le problème aux limites, on utilise la fonction solve_bvp de la bibliothèque scipy.integrate. Cette fonction a besoin des conditions aux limites sous la forme d’une fonction bc (pour boundary conditions).

Cette fonction bc(Y0, Yl) prend en argument les valeurs de la solution aux deux extrémités du domaine (en 𝑥=0 et 𝑥=𝑙) et doit retourner un tableau contenant les écarts par rapport aux conditions aux limites (lorsque les conditions aux limites sont satisfaites, bc doit retourner un tableau de zéros).

5/ Compléter le code Python ci-dessous pour définir la fonction bc.

def bc(Y0, Yl):
    return np.array( [..., ...] )
Corrigé
def bc(Y0, Yl):
    return np.array( [Y0[0]-T0, -lam*Yl[1]-h*(Yl[0]-Ta)] )

On peut maintenant résoudre le problème aux limites en utilisant la fonction solve_bvp.

6/ Compléter le code Python ci-dessous pour résoudre le problème aux limites.

x = ... # array numpy de N points régulièrement espacés entre 0 et l
Y = ... # array numpy de 2 lignes et N colonnes, initialisée à une valeur constante (par exemple T0)

res = solve_bvp(F, bc, x, Y) # résolution numérique du problème
x = res.x # abscisses des points de la solution
T = res.y[0] # températures aux points de la solution
Corrigé
x = np.linspace(0, l, N)
Y = np.zeros((2, N)) + T0

7/ Tracer la température 𝑇(𝑥) le long de l’ailette.

Corrigé
plt.plot(x, T)
plt.xlabel("x (m)")
plt.ylabel("T (Celsius)")
plt.title("Température le long de l'ailette")
plt.grid()
plt.show()

8/ Justifier que la puissance totale dissipée par l’ailette est donnée par

𝑃≈∫𝑥=0𝑙2𝑎ℎ(𝑇(𝑥)−𝑇𝑎)d𝑥

Compléter le code Python ci-dessous pour calculer cette puissance. On utilisera la fonction trapezoid de la bibliothèque scipy.integrate pour effectuer l’intégration numérique. Cette fonction prend en argument un tableau de valeurs de la fonction à intégrer et un tableau des abscisses correspondantes.

P = trapezoid(..., x) # calcul de la puissance dissipée
print(P)
Corrigé

La puissance dissipée sur les surfaces avant et arrière (d’aire 𝑙𝑒) est négligeable devant celle dissipée sur les surfaces haute et basse (d’aire 𝑙𝑎) car 𝑎≫𝑒. Idem pour la surface de droite (d’aire 𝑎𝑒).

La puissance dissipée par l’ailette est donc donnée par

𝑃≈∫𝑥=0𝑙𝛿𝑃=∫𝑥=0𝑙2𝑎ℎ(𝑇(𝑥)−𝑇𝑎)d𝑥
P = trapezoid( 2*a*h*(T-Ta), x ) # calcul de la puissance dissipée

9/ On aurait pu aussi calculer la puissance dissipée par l’ailette en calculant

𝑃=−𝜆𝑎𝑒d𝑇d𝑥(𝑥=0)

Expliquer pourquoi, puis compléter le code Python ci-dessous pour calculer cette puissance et vérifier qu’on retrouve le même résultat.

dT = ... # On récupère la dérivée de T en x=0 à partir de la solution numérique
P2 = ... # calcul de la puissance dissipée
print(P2)
Corrigé

L’ailette étant en régime stationnaire, la puissance qui entre par conduction en 𝑥=0 est égale à la puissance dissipée par l’ailette.

dT = res.y[1] # On récupère la dérivée de T en x=0 à partir de la solution numérique
P2 = -lam * a * e * dT[0] # calcul de la puissance dissipée