On envisage la conversion du méthane par la vapeur d’eau à , sous une pression totale , à partir d’un mélange initial contenant d’eau et de méthane. On doit envisager les deux équilibres chimiques suivants, dans lesquels les constituants sont des gaz parfaits :
La phase gazeuse se comporte comme un mélange parfait de gaz parfaits.
1/ Exprimer, lorsque les deux équilibres chimiques sont atteints, la quantité de matière de chaque participant, en fonction de la quantité de matière initiale en méthane et en eau et de l’avancement (respectivement ) de la réaction (1) (resp. (2)).
2/ Exprimer les quotients réactionnels en fonction de la pression totale , de la pression standard , des quantités de matière initiales et et des avancements et .
avec
En remplaçant :
On procède de même pour la réaction (2) :
On souhaite obtenir la composition du système à l’équilibre lorsque la pression est égale à .
3/ Montrer que et satisfont le système d’équations
À l’équilibre, la loi de Guldberg et Waage s’écrit pour chaque réaction
En remplaçant les expressions de et , on obtient le système d’équations demandé.
4/ La fonction root(f, x0) de la bibliothèque scipy.optimize permet de trouver numériquement la racine d’une fonction f en partant d’une valeur initiale x0. La fonction f peut prendre une liste en argument et retourner une liste de valeurs. root(f, x0) renvoie un objet dont l’attribut x contient la valeur de la racine trouvée. Compléter le code Python permettant de déterminer la valeur de et . On prendra comme valeurs initiales et .
from scipy.optimize import root
K1 = 1.306
K2 = 2.204
n0_H2O = 4.0
n0_CH4 = 1.0
def f(x): # fonction qui doit être nulle à l'équilibre
xi1, xi2 = x
return [..., ...]
xi1, xi2 = root(f, x0 = [0, 0]).x # cherche les solutions de l'équation f(x) = [0,0]def f(x):
xi_1, xi_2 = x
return [
(xi_1-xi_2) * (3 * xi_1 + xi_2)**3 - K1 * (n0_H2O - xi_1 - xi_2) * (n0_CH4 - xi_1) * (n0_H2O + n0_CH4 + 2 * xi_1)**2,
xi_2 * (3 * xi_1 + xi_2) - K2 * (xi_1 - xi_2) * (n0_H2O - xi_1 - xi_2)
]5/ Calculer et afficher avec Python les quantités de matière de chaque espèce à l’équilibre.
nf_CH4 = n0_CH4 - xi1
nf_H2O = n0_H2O - xi1 - xi2
nf_CO = xi1 - xi2
nf_H2 = 3 * xi1 + xi2
nf_CO2 = xi2
print("Quantités de matière à l'équilibre :")
print(f"CH4 : {nf_CH4} mol")
print(f"H2O : {nf_H2O} mol")
print(f"CO : {nf_CO} mol")
print(f"H2 : {nf_H2} mol")
print(f"CO2 : {nf_CO2} mol")