Domaine d'existence d'un solide ionique

Ce document comporte le tracé d'un diagramme du taux de précipitation d'un cation en fonction de la concentration de l'anion. L'exemple retenu est celui de la précipitation des ions chlorure $\mathsf{Cl^-}$ et iodure $\mathsf{I^-}$ par introduction d'ions argent $\mathsf{Ag^+}$.

Principe de recherche de l'état final

Lorsque la solution est saturée en un solide ionique, l'équilibre chimique mettant en jeu le solide ionique et ses ions constitutifs en solution est établi.

Pour savoir si le solide existe, on peut d'abord vérifier que les concentrations du cation et de l'anion vérifient la condition de précipitation. Par exemple, le solide $\mathsf{AgCl}$ se forme si $\mathsf{\frac{[Ag^{+}]\cdot[Cl^-]}{(C°)^2}>K_s}$.

Si le solide existe, alors la solution est saturée et la relation de Guldberg-Waage peut être écrite : \begin{equation}\mathsf{ AgCl(s)=Ag^{+}(aq)+Cl^{-}(aq) \Rightarrow K_s=Qr_{eq}=\frac{[Ag^{+}]_{eq} \cdot [Cl^-]_{eq}}{(C°)^2} }\end{equation}

En choisissant une valeur de $\mathsf{pAg}$, il est possible de :

  1. vérifier si le solide existe ou non,
  2. en déduire la concentration de chaque anion en solution.

Bibliothèques utilisées

La commande linspace de la bibliothèque numpy permet de générer une liste d'abscisses, ici $\mathsf{pAg}$.

La bibliothèque matplolib est utilisée pour tracer des graphiques.

Manipulation du script

L'utilisateur peut modifier les valeurs des concentrations initiales des anions dans la solution traitée. Le script peut également adapté pour traiter le cas d'autres précipités à condition d'adapter les expressions des équations à résoudre en fonction de la stoechiométrie des sels ioniques et de modifier les valeurs des produits de solubilité.

In [ ]:
#%%# PRECIPITATION COMPETITIVE DES IONS CHLORURE ET IODURE

import numpy as np
import matplotlib.pyplot as plt

#Saisie des valeurs des produits de solubilité
pKs1=9.8    #chlorure d'argent
pKs2=16.    #iodure d'argent

#Concentrations des anions dans le mélange initial
CCl=0.01   #ions chlorure, en mol/L
CI =0.01   #ions iodure, en mol/L

#Création d'une liste de valeurs d'abscisses, ici pH
pAg=np.linspace(0,20,100)

#Boucles de calcul des concentrations d'ions non précipités selon la valeur du pH
fCl=[]
fI=[]

for x in pAg :
    if CCl*10**(-x)>10**(-pKs1) :
        fCl.append(10**(-pKs1+x)/CCl)
    else :
        fCl.append(1)

for x in pAg :
    if CI*10**(-x)>10**(-pKs2) :
        fI.append(10**(-pKs2+x)/CI)
    else :
        fI.append(1)

#Tracé des courbes
plt.figure(1)
plt.plot(pAg,fCl,'b--', label='chlorure')
plt.plot(pAg,fI,'g--', label='iodure')
plt.xlabel('pAg')
plt.ylabel('Proportions')
plt.title('Proportion des ions chlorure et iodure non précipités')
plt.legend()
plt.grid()
plt.show()

Conclusion

La quantité d'ions argent nécessaire pour entraîner la formation de l'iodure d'argent est inférieure à celle nécessaire pour former le chlorure d'argent.