Sommaire
Mes pages
N° Page

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

Vue papier
Animation montrant le basculement entre la vue numérique et la vue papier
Découvrez la vue papier en cliquant ici
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 :

, avec une constance d'équilibre .

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 . À l'aide d'un tableau d'avancement, compléter les lignes 22 à 25 permettant de calculer les quantités de matière et .

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

Le quotient de réaction 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 :

On considère un volume 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 à chaque avancement .

4. Décommenter la ligne 55 permettant d'afficher l'évolution de en fonction de l'avancement .

La boucle permettant la détermination de l'avancement final , entre les lignes 29 et 34, nécessite une condition pour être fonctionnelle. Pour une réaction chimique, si atteint la constante d'équilibre , l'avancement final 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 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.

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