Python pour chimistes : TP n°2 Exemples d`application en chimie

publicité
Python pour chimistes : TP n°2
Exemples d’application en chimie : niveau 1
Le but de cette séance est d’illustrer comme on peut utiliser python dans le cadre d’un enseignement
de chimie.
I. Cinétique chimique.
A. Cas de deux réactions successives
On considère une réaction de bilan A → C dont les étapes sont A → B (avec une constante k1) et B → C (avec une
constante k2). On suppose que les concentrations initiales sont [A]=1 mol/L et [B]=[C]=0.
On étudie les concentrations des trois espèces dans le temps, pour des vitesses de réaction k1 = 0,04 s-1et k2 =
0,02 s-1
Recycler le code vu dans le TP 1 pour obtenir (600s 1500 points)
Etude de l’intermédiaire B
Evidement on peut jouer avec k1et k2 pour retrouver Bodenstein…..
Extraction du temps de montée c'est-à-dire du temps tq [B] soit maximum. Pour cela, on utilise la fonction argmax
de numpy qui retourne l'index du maximum dans un tableau. A vous (Vous pouvez ,vérifiez sur la courbe …)
1
B. Réactions compétitives (contrôle thermo- contrôle cinétique)
On considère maintenant deux réactions A ⇆ B (avec des vitesses k1 de gauche à droite ki1 de droite à gauche), et A
⇆ C (avec des vitesses k2 de gauche à droite, et ki2 de droite à gauche) . Les concentrations initiales sont toutes nulles
sauf [A]=1 mol.L-1
On prend l'exemple des vitesses : k1 = 0,2 s-1-1, ki1 = 0,05 s-1 , k2 = 0,01 s-1 et ki2 = 0,001 s-1. On simule 2000s en 2000
points. Recycler votre code pour obtenir.
Remarque : On peut jouer avec le zoom pour étudier le début de la réaction, on peut changer les constantes pour
voir ce que cela ait..
Question bonus : On peut chercher le temps à partir duquel le produit thermo dynamique devient majoritaire.
II. Interpolation d’une courbe de dosage et communication avec un fichier texte
On se propose de reproduire avec Python les calculs automatiques de dérivées que fait un logiciel comme
Regressi. On va récupérer les données dans un fichier texte ce sera l’occasion d’effleurer de la lecture dans
un fichier texte. Vous devez avoir téléchargé ( demandez si ce n’est pas le cas) un fichier nommé
potAgCl.csv . Ce fichier contient les mesures d’un dosage de Ag+ par Cl- …
1. Phase de préparation : Voici la méthode à suivre quand on interagit avec un fichier texte
1) On visualise le fichier texte dans un petit éditeur genre Wordpad ou Notepad++ (Ca veut dire pas Excel)
2) On détermine sa stratégie d’importation + nettoyage (A partir de quelle ligne, quel est le séparateur, y a t’il des
caractères à enlever ….) on peut éventuellement faire des petits essais sur des bouts de fichiers
3) Enfin on code l’importation en utilisant les fonctions de lecture d’un fichier
2
2 Code Python : Essayez de comprendre ce code.
#-*- coding:utf-8 -*from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt
Aidez vous de la partie slicing du memento
# I. Lecture du fichier de mesure
f=open('potAgCl.csv')
data=f.readlines()
f.close()
##print(data)
x,y=[],[]
for donnee in data :
pointexp=donnee[:-1].split(';')
##print(pointexp)
x.append(eval(pointexp[0]))
y.append(eval(pointexp[1]))
Observez ce qui se passe avec ce print(data)
Observez ce qui se passe avec ce print(pointexp)
##II. Interpolation et calcul des dérivées
s=UnivariateSpline(x,y,s=0)
d=s.derivative()
dd=s.derivative(n=2)
ys = s(x)
yd=d(x)
ydd=dd(x)
Regarder la doc de scipy
#s=0 pour que la fonction d'interpolation passe par
les points expérimentaux
##III. Tracé des courbes
ymax=max(abs(ys))
dmax=max(abs(yd))
ddmax=max(abs(ydd))
plt.plot(x, ys/ymax,'k',label='ddp')
plt.plot (x,yd/dmax,'r',label='derivee')
plt.plot(x,ydd/ddmax,'g', label='derivee seconde')
plt.axhline()
plt.legend(loc='upper right')
plt.show()
Voila ce qu’on obtient
3
III. Exemples de simulation de dosages acido-basiques
Objectifs : dans ce TP, on se propose d’utiliser les méthodes des bibliothèques scientifiques de Python pour simuler
des dosages acido-basiques. ( TP réalisé en environ 2h par des étudiants de fin de sup ou début de spé)
A. Dosage d’un acide faible – influence de la dilution
1. On se propose de simuler le dosage de 10 mL d’une solution décimolaire d’un acide faible (CH 3COOH pKa = 4.8)
par une base forte, NaOH, elle aussi décimolaire. On veut la courbe représentant le pH en fonction du volume de
base ajoutée.
■
Mettre le problème en équations. On utilisera pour cela les équations d’électroneutralité, de conservation de la
matière et les constantes thermodynamiques (Pas la méthode de la RP qui obligerait à faire des hypothèses).
■
Une fois le problème mis en équation, résoudre, à l’aide de routine scipy.optimize.bisect, l’équation
obtenue qui permet la détermination de [H+] pour un volume Vb de base versé. On donne un extrait de la doc de
scipy.
scipy.optimize.bisect(f, a, b, args=(), xtol=1e-12)
Find root of a function within an interval Basic bisection routine to find a zero of the function f between the arguments
a and b f(a) and f(b) can not have the same signs. Slow but sure
f : function Python function returning a number. f must be continuous, and f(a) and f(b) must have opposite signs.
a : number One end of the bracketing interval [a,b]
b : number The other end of the bracketing interval [a,b]
xtol : number, optional ( la valeur par défaut est elle raisonnable pour notre problème)
args : tuple, optional containing extra arguments for the function f. f is called by f(x ,args)
■
Répéter l’opération pour 100 volumes compris entre 0 et 20 mL. et obtenir ainsi le plot (pH, Vb) dont l’aspect est
reproduit ci-dessous.
2. Modifier le programme précédent pour mettre en évidence l’influence de la dilution et obtenir les courbes de
dosages pour des solutions d’acide et de soude respectivement 0.01 ; 0.001 et 0.0001 molaires (le volume équivalent
reste donc le même).
4
B. Dosage d’une dibase par un acide fort.
1. L'ethylènediamine est une dibase notée En de pKa1: 6,0 et pKa2 10,0.
■
On se propose de simuler la courbe de dosage de 20 mL d’une solution 0.015 M de cette base par un acide fort ,
HCl, de concentration 0.05 M. L’objectif est d’avoir la courbe de dosage (pH en f(Va)) et le diagramme de diagramme
de distribution des espèces En , EnH+ et EnH22+ .
■
Mettre en équations le problème. On opèrera comme au A. On écrira en particulier l'équation de conservation de
la matière du groupe En. …
2. Reprendre la question en faisant varier la valeur de Ka2 [on prendra : 1e-7, 1e-8, 1e-9 et 1e-10]. Mettre en
évidence l’évolution de la courbe de dosage.
5
IV. Exemples d’activités numériques en thermodynamique
A. Détermination d’une d’entropie molaire : On se propose de donner une évaluation de l’entropie molaire
du plomb solide à 298 K à partir d’une série de mesure de capacité thermique à différentes températures.
1° Les mesures
2. Retrouver la formule donnant l’évolution de l’entropie molaire standard avec la température. Rappeler
le troisième principe de la thermodynamique (on dit aussi principe de Nernst). Conclure sur le calcul à
effectuer.
3°. Le document 1 ci-dessous, propose une variante de la méthode de Simpson pour le calcul d’une
intégrale quand on ne connait pas l’expression de f(x) mais que l’on a une collection de points (x,f(x)).
Document 1
Trouver comment adapter cette méthode pour exploiter au mieux la série de mesures fournie.
4) Programmer en Python ou directement avec votre calculatrice et conclure. Comparez avec la valeur des
tables. (Handbook)
6
B. Tracé d’un diagramme binaire simple
A la pression de 5 bars, le propane et l’acétone forment un mélange binaire quasi idéal. On se propose de
faire tracer à Python le diagramme suivant :
Le début du code (contenant les données thermodynamiques utiles) est donné ci-dessous. A vous d’écrire
le reste.
Aide :
1. Commencez par calculer les températures d’ébullition sous 5 bars pour avoir une idée des encadrements
à prendre pour les méthodes dichotomiques
2. Réfléchir avec un papier et un crayon aux relations mathématiques permettant de trouver les
températures d’ébullition et de rosée
7
C. Synthèse de l’ammoniac.
Les questions précédées de * sont à résoudre en utilisant Python ou votre calculatrice …
La synthèse industrielle de l’ammoniac (sous forme gazeuse) se fait à partir d’un mélange de N2(g) et H2(g). N2(g) peut
être obtenu par distillation de l’air et H2(g) par conversion du méthane par exemple. On aborde ici certains aspects
permettant de dégager les paramètres optimums de cette synthèse.
On considère donc la réaction suivante :
N2(g) + 3 H2(g) = 2 NH3(g)
avec ΔrG0(T) = – 87000 + 25,8 T.lnT + 31,6 T (J.mol–1)
(R = 8,314 J.mol–1.K–1)
1) Calculer l’entropie molaire standard de réaction ΔrS0(T), l’enthalpie molaire standard de réaction ΔrH0(T) et la
capacité thermique standard de réaction sous pression constante ΔrCp0.
*2) Calculer la température d’inversion Ti de la réaction de synthèse de l’ammoniac. Conclure sur le domaine de
température qui permettrait d’obtenir un bon rendement thermodynamique ?
*3) Pour des raisons de cinétique de réaction, la synthèse industrielle de l’ammoniac s’effectue vers 250 bar et 720 K
en présence de catalyseur. Sur quoi se base ce choix de température ?. Justifier également la valeur élevée de la
pression choisie pour la synthèse de l’ammoniac. Calculer K0(720). On se fixera à ces conditions pour la suite.
*4) On cherche à déterminer la composition du mélange de gaz initial qui offre les meilleures conditions de
production. Pour cela, dans un premier temps, on se propose de tracer le graphe représentant le taux de conversion
de N2 en fonction de la composition du mélange initial que l’on paramétrera de la manière suivante :
N2(g) + 3 H2(g) = 2 NH3(g)
A l’état initial on a :
1
b
0
Réaliser cette courbe pour b ∈ [0.01,20] . Commenter la courbe obtenue. Peut on avoir un avoir un bon taux de
conversion de N2 dans des conditions raisonnables de richesse du mélange en H2.
*5) On se propose alors de mettre en place un système de recyclage des gaz n’ayant pas réagi. La stratégie consiste à
maximiser la fraction molaire de NH3 dans le mélange à l’équilibre. Puis de retirer le NH3 produit et de réinjecter les
gaz n’ayant pas réagi. Tracer la courbe représentant la fraction molaire de NH3 en fonction de b et déterminer la
composition optimale du mélange initiale de ce point de vue. Commenter.
Retrouver ce résultat par le calcul (à la main !!) …
8
Téléchargement