Fiche n°2 : Suivi des quantités de matière lors d'une réaction chimique¶
Objectif : Déterminer l'état final d'un système après une transformation chimique totale en utilisant la programmation.
Ce notebook utilise Python pour modéliser l'évolution des quantités de matière des différentes espèces lors d'une réaction chimique supposée complète. Le graphique obtenu permet de visualiser l'avancement maximal de la réaction et d'identifier le réactif limitant à partir des quantités initiales de chaque espèce. On peut adapter ce script pour un système où la réaction est de la forme :
kA A + kB B = kC C + kD D
Le code commence par def nom_fonction(arguments) :
et utilise des fonctions de traçage pour montrer l'évolution des quantités de chaque espèce. Le script peut être modifié pour demander les données à l'utilisateur, notamment les coefficients stœchiométriques et les quantités initiales.
import matplotlib.pyplot as plt
def evol_qt(kA,kB,kC,kD,nA,nB,nC,nD):
x=0 # Initialisation de l'avancement
dx=0.001 # Incrément d'avancement
X=[x] # Liste stockant les valeurs successives d'avancement
NA=[nA] # Liste stockant les quantités des matières du réactif A
NB=[nB] # Idem pour le réactif B
NC=[nC] # Idem pour le produit C
ND=[nD] # Idem pour le produit D
while NA[-1]>0 and NB[-1]>0 :
x+=dx
X.append(x)
NA.append(nA-kA*x)
NB.append(nB-kB*x)
NC.append(nC+kC*x)
ND.append(nD+kD*x)
plt.figure(1)
plt.plot(X,NA,'r',lw=1,label='nA')
plt.plot(X,NB,'b',lw=1,label='nB')
plt.plot(X,NC,'y',lw=1,label='nC')
plt.plot(X,ND,'g',lw=1,label='nD')
plt.xlabel('x (mol)')
plt.ylabel('n (mol)')
plt.grid(True)
plt.legend()
Supposons l'équation :
2 A + 5 B = 1 C + 5 D
En entrant des valeurs spécifiques pour les coefficients stœchiométriques et les quantités initiales, le script génère un graphique :
evol_qt(2,5,1,5,2,3,0,0)
Analyse : dans cet exemple, le réactif limitant est B avec un avancement maximal de 0,6 mol. Les quantités finales des autres espèces sont lisibles sur le graphique à ce point d'avancement.