Nos classiques
Sommaire
Mes pages
N° Page

1. Constitution et transformations de la matière
2. Mouvement et interactions
3. Conversions et transferts d'énergie
4. Ondes et signaux
Annexes
/ 638

Chapitre 6
Travailler autrement
Classe inversée

Avancement et Python

Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.
Objectif : Déterminer des avancements finaux à l'aide de Python.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

A
Présentation du programme

Coder en python, quel intérêt en chimie ? Avec l'étude des équilibres, programmer peut offrir de nombreuses clés pour prévoir des états finaux de système chimique.

La prévision des quantités de matière à l'état final est un enjeu important, notamment pour les synthèses pour lesquelles des enjeux économiques imposent aux industriels d'améliorer les rendements à moindre coût.

La forme générale de l'équation d'une réaction non totale, présentant un équilibre chimique avec coexistence de tous les produits et de tous les réactifs, est :

a   \text{A (aq)} + b  \text{B(aq)} \rightleftarrows c   \text{C (aq)} + d  \text{D(aq)}, avec une constance d'équilibre K.

1. Évolution des quantités de matière de chaque espèce lors de la réaction

 import numpy as np
import matplotlib.pyplot as plt
# La reaction consideree est A + B -> C + D
# Coefficients stoechiometriques
a, b, c, d = 1, 1, 1, 1
# Quantites de matiere initiales et volume initial
n_iA, n_iB, n_iC, n_iD = 0.1, 0.1, 0, 0
V = 100.0e-3
# Constante d'equilibre
K = 1e-1
# Calcul de l'avancement final et generation des valeurs de x entre 0 mol et xmax
xmax = min(n_iA/a, n_iB/b)
x = np.arange(0, xmax, xmax/10000.0)
tau = x/xmax
# Calcul des quantites de matiere et du quotient de reaction a chaque avancement x
#n_A = # A complete
#n_B = # A complete
#n_C = # A complete
#n_D = # A complete
#Q_r = # A complete
# Determination de l'avancement final x_f
#for i in range(len(x)) :
#    if (# A complete) :
#        x_f = x[i]
#        i = i+1
#    else :
#        continue
plt.subplot(2,1,1)
plt.ylabel('Quantites de matiere \n de A, B, C et D (mol/L)', fontsize=8)
plt.title('Evolutions des concentrations', fontsize=8)
plt.grid()
plt.axis(xmin=0, xmax=1)
#plt.axvline(x = x_f/xmax, label = '$\\tau_f$')
#plt.plot(tau, n_A, color = 'red', label='$n_A$')
#plt.plot(tau, n_B, color = 'blue', label='$n_B$')
#plt.plot(tau, n_C, color = 'green', label='$n_C$')
#plt.plot(tau, n_D, color = 'orange', label='$n_D$')
plt.legend()
plt.show()
plt.subplot(2,1,2)
plt.xlabel('Taux d\'avancement $\\tau$', fontsize=8)
plt.ylabel('Constante de reaction $Q_r$ \n et constante d\'equilibre $K$', fontsize=8)
plt.title('Evolution du quotient de reaction \n en fonction de l\'avancement', fontsize=8)
#plt.axvline(x = x_f/xmax, label = '$\\tau_f$')
plt.axis(xmin=0, xmax=1)
plt.plot(tau, K*np.ones(len(x)), color = 'blue', label='$K$')
#plt.plot(tau, Q_r, color = 'red', label='$Q_r$')
plt.yscale('log')
plt.legend()
plt.show()
#print('L\'avancement final correspond a x_f = ' + str(x_f) + ' mol, soit un taux d\'avancement final tau_f = ' + str(x_f/xmax) + '.')

2. Certaines lignes ne sont pas complétées. Utilisez la console Python pour effectuer des tests de programmation.
Ressource affichée de l'autre côté.
Faites défiler pour voir la suite.

B
Finalisation du programme

1. Le programme, dans un premier temps, doit pouvoir calculer les quantités de matière à chaque nouvel avancement x. À l'aide d'un tableau d'avancement, compléter les lignes 22 à 25 permettant de calculer les quantités de matière n_\text{A}, n_\text{B}, n_\text{C} et n_\text{D}.

2. Décommenter les lignes 42 à 45 permettant de représenter l'évolution des quantités de matière au cours de l'avancement x.

Le quotient de réaction Q_\text{r} est une grandeur ne dépendant que des concentrations des espèces chimiques en solution. Le solvant et les solides n'ont pas d'influence :
Q_\text{r}=\frac{\left(\frac{n_\text{C}}{V}\right)^\text{c} \cdot\left(\frac{n_\text{D}}{V}\right)^\text{{d}}}{\left(\frac{n_\text{A}}{V}\right)^\text{{a}} \cdot\left(\frac{n_\text{B}}{V}\right)^\text{{b}}}

On considère un volume V constant au cours de la réaction. La concentration standard , évoquée dans le chapitre, n'est pas abordée ici.

3. Compléter la ligne 26 permettant de calculer le quotient de réaction Q_\text{r} à chaque avancement x.

4. Décommenter la ligne 55 permettant d'afficher l'évolution de Q_\text{r} en fonction de l'avancement x.

La boucle permettant la détermination de l'avancement final x_\text{f}, entre les lignes 29 et 34, nécessite une condition pour être fonctionnelle. Pour une réaction chimique, si Q_\text{r} atteint la constante d'équilibre K, l'avancement final x_\text{f} est atteint.

5. Décommenter les lignes 29 à 34 ainsi que les lignes 41, 52 et 60. Écrire la condition permettant la détermination de l'avancement final x_\text{f} et lancer le programme.

6. Utiliser le programme et l'adapter, si besoin, aux différents exercices du chapitre 6 pour vérifier les applications numériques.
Fermer
Page précédente
Page suivante

Une erreur sur la page ? Une idée à proposer ?

Nos manuels sont collaboratifs, n'hésitez pas à nous en faire part.

j'ai une idée !

Oups, une coquille

Utilisation des cookies
Lors de votre navigation sur ce site, des cookies nécessaires au bon fonctionnement et exemptés de consentement sont déposés.