LC 18 : Corps pur et mélanges binaires
Programme au lycée : Lien du PDF
Manip : Lien du PDF
Exemples d’utilité :
- l’acier, résistance mécanique accrue par rapport au fer (Fe et C entre 0.2% et 2% en masse)
- l’acier inoxydable, peu sensible à la corrosion (Cr+Acier)
- le bronze, le laiton
- le mélange 60% de plomb, 40% d’étain en masse, sert pour la soudure de composés électroniques
Variance :
Bien définir le cadre d’étude : on parle de mélanges pas forcément miscibles à l’état solide mais miscibles à l’état liquide.
Biblio
- H prépa vert, chap 5 et 7
- Fosset PSI chap 6
Intro
On connaît un nombre limité d’éléments chimiques, donc les propriétés sont limitées. Au cours du temps, on a développé des techniques pour fabriquer des matériaux plus résistants, plus durables,… Ce sont les alliages. Pour vous montrer les différences de propriétés, lorsque l’on mélange deux solides, regardez : on mélange 1,1g de menthol et 0,6g d’acide laurique (préciser leurs températures de fusion), et le mélange est liquide à température ambiante ! C’est ce que l’on va étudier aujourd’hui, et on va commencer par présenter les outils utiles à l’analyse de ce genre de problème dans le cas du corps pur.
I Etude du changement d’état du corps pur
1) Cadre d’étude
Def corps pur, étude du diagramme (P,T). Condition d’équilibre chimique : égalité des potentiels.
Ca va imposer des contraintes, on ne peut pas faire n’importe quoi avec le système. On va utiliser un outil pour caractériser
2) Variance d’un système
Def variance : la variance est le nombre maximal de paramètres intensifs que l’on peut choisir sans remettre en cause l’existence de l’équilibre thermodynamique du système.
Calcul de la variance pour un corps pur et pendant son équilibre diphasique, retour sur P,T avec les variances. Ca veut dire quoi que la variance est faible ? Comment se manifeste expérimentalement ?
3) Courbe d’analyse thermique
Une variance qui diminue se voit lorsque l’on observe l’évolution d’un paramètre intensif. C’est le principe d’une courbe d’analyse thermique, ce à quoi on a accès expérimentalement. Diapo : Analyse thermique corps pur. Le faire en direct, avec acide palmiqtique.
Notre but dans la leçon est de faire des mélanges, et de les caractériser avec une courbe d’analyse thermique par la suite. Il y en a deux types : miscibles/non iscibles à l’état solide.
II Mélanges miscibles à l’état solide
1) Courbe d’analyse thermique d’un mélange
Un exemple d’un alliage soit Cu-Ni (pièces de 1 et 2e) ou cuivre or (utile en bijouterie car l’or est mou).
Interprétation en terme de variance. Comment se résume ?
Remarque : on a besoin de fraction massique.
2) Tracé et Lecture du diagramme
On va tracer un diagramme à partir de ces courbes (slides)
Théorème de l’horizontale, théorème des moments
Transition : Que se passe-t-il si pas miscible?
III Mélanges non micibles à l’état solide
1) Courbe d’analyse thermique
En live, on montre ce que ça donne : pallier. Qu’est ce que ça veut direuh? C’est une variance réduite nulle ! Se comporte come un corps pur. Se voit sur le binaire :
2) Diagramme bianire non miscible
Pallier eutectique (fond à T constant). Calcul de variance.Présentation des résultats expérimentaux.
C’est utile, et c’était la manip d’intro ! Retour sur le graphique dans le cas de l’intro
Remarque : Le sel, utilité de l’eutectique, diapoo.
Manip : proportions
Espacés par des tab. MP : 256,4. MT : 150,22
x mP mT
0 0 1
0,2 0,299 0,701
0,24 0,350 0,650
0,3 0,422 0,578
0,5 0,631 0,369
1 1,000 0,000
Diapo : Lien du PDF
En pptx : LC18.pptx
Code python pour tracer les courbes :
#-----------------------------------------------------------------------
# Diagramme binaire
#-----------------------------------------------------------------------
# Renseignements/bugs : Guillaume Dewaele <agreg(at)sci-phy.org>
#-----------------------------------------------------------------------
# Paramètres modifiables
titre = "Diagramme binaire thymol et acide palmitique"
# Espèce 1
E1 = r"$Thy_{sol}$" # Nom
M1 = 150.22e-3 # Masse molaire, g/mol
Tf1 = 51 # Température de fusion, °C
DH1 = 17.54e3 # Enthalpie de fusion, kJ/kg
col1 = 'g' # Couleur sur le graphe
# Espèce 2
E2 = r"$APal_{sol}$" # Nom
E2r = r"$APal$" # Nom (abscisses)
M2 = 256.4241e-3 # Masse molaire, g/mol
Tf2 = 63 # Température de fusion, °C
DH2 = 51.02e3 # Enthalpie de fusion, kJ/kg
col2 = 'b' # Couleur sur le graphe
# Solide
col3 = 'r' # Couleur sur le graphe
# Utiliser fraction massique ?
massique = False
# Annotation liquidus
xsol = [0.1, 0.9]
# Points supplémentaires
# (fraction, température, err_fraction, err_temperature, couleur)
points = [('k', [(0,49.91, 0.05, 4.0),(0.15, 41.28, 0.05, 3.0),(0.5,48.01,0.05,3.0),(0.75, 58, 0.05, 3.0), (1, 61.88, 0.05, 2.0)]),
('b', [ (0.5, 40.02, 0.05, 3.5),(0.15, 40.02, 0.05, 3.5),(0.24,42,0.05,3.0) ])]
#-----------------------------------------------------------------------
# Bibliothèques utilisées
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import bisect
import matplotlib.pylab as plb
#-----------------------------------------------------------------------
memParams = plb.rcParams
plb.rcParams.update(
{ 'legend.fontsize' : 'medium',
'axes.labelsize' : 'medium',
'axes.titlesize' : 'medium',
'xtick.labelsize' : 'medium',
'ytick.labelsize' : 'medium',
'font.size' : 12 })
# Détection utilisation hors Pyzo
if '__iep__' not in globals() :
matplotlib.interactive(False)
#-----------------------------------------------------------------------
R = 8.314
def _id(x) :
return x
def _w(x) :
return x*M2/(M1+x*(M2-M1))
w = _w if massique else _id
def T1(x) :
return (Tf1+273.15)/(1-np.log(1-x)*R*(Tf1+273.15)/DH1)-273.15
def T2(x) :
return (Tf2+273.15)/(1-np.log(x)*R*(Tf2+273.15)/DH2)-273.15
def DeltaT(x) :
return T1(x) - T2(x)
# Calcul du point E
xE = bisect(DeltaT, 0, 1)
TE = T1(xE)
# Calcul de l'échelle verticale
Tmin = (round(T1(xE)/5)-3)*5
Tmax = (round(max(Tf1,Tf2)/5)+1)*5
# Calcul des fractions molaires pour chaque courbe
X = np.linspace(0.0, 1.0)
X1 = np.linspace(0.0, xE)
X2 = np.linspace(xE, 1.0)
# Tracé
plt.figure(figsize=(10, 8))
plt.fill_between(X, Tmin*np.ones(X.shape), TE*np.ones(X.shape), color=col3, alpha=0.2)
plt.fill_between(w(X1), TE*np.ones(X1.shape), T1(X1), color=col1, alpha=0.2)
plt.fill_between(w(X2), TE*np.ones(X2.shape), T2(X2), color=col2, alpha=0.2)
plt.text(0.5, (TE+Tmin)/2.0, E1+"+"+E2, fontsize=16, ha="center", va="center", color='r')
plt.text(w(xE)/3.0, (3*TE+Tf1)/4.0, "L+"+E1, fontsize=16, ha="center", va="center", color='g')
plt.text((2+w(xE))/3.0, (3*TE+Tf2)/4.0, "L+"+E2, fontsize=16, ha="center", va="center", color='b')
plt.text(w(xE), (2*max(Tf1, Tf2)+min(Tf1, Tf2))/3.0, "L", fontsize=16, ha="center", va="center")
for x in xsol :
if x < xE :
plt.annotate("liquidus", (w(x), T1(x)),(w(x)+0.1, T1(x)+2), arrowprops=dict(facecolor='black', alpha=0.3, shrink=0.1), ha='left', va='bottom', alpha=0.5, fontsize=12)
else :
plt.annotate("liquidus", (w(x), T2(x)),(w(x)-0.1, T2(x)+2), arrowprops=dict(facecolor='black', alpha=0.3, shrink=0.1), ha='right', va='bottom', alpha=0.5, fontsize=12)
# Point E
plt.plot([w(xE)], [TE], "ko", markersize=8)
plt.text(w(xE)+0.008, TE-2.5, "E", fontsize=12)
# Points
for col, lst in points :
plt.errorbar([ e[0] for e in lst ],
[ e[1] for e in lst ],
[ e[3] for e in lst ],
[ e[2] for e in lst ],
fmt='s', color=col)
# Fignolage
plt.gca().tick_params(right=True, labelright=True)
plt.grid(alpha=0.3)
plt.xlim(0, 1)
plt.ylim(Tmin, Tmax)
plt.ylabel(r"Température $T$ ($°C$)")
plt.xlabel(r"Fraction massique $w$ en "+E2r if massique else r"Fraction molaire $x$ en "+E2r)
plt.title(titre, pad=30)
#-----------------------------------------------------------------------
plb.rcParams.update(memParams)
# Détection utilisation hors Pyzo
if '__iep__' not in globals() :
plt.show()