Comment calculer le pH de Henderson-Hasselbalch en Python avec UliEngineering
Vous pouvez facilement calculer le pH en utilisant l’équation de Henderson-Hasselbalch avec la bibliothèque Python UliEngineering :
from UliEngineering.Chemistry import henderson_hasselbalch_pH
# Calculer le pH pour un tampon d'acide acétique (pKa=4,76, rapport=1)
ph = henderson_hasselbalch_pH(4.76, 1.0)
print(f"pH (pKa=4.76, ratio=1): {ph:.2f}")
# Calculer le pH pour un tampon avec un rapport de 10 (plus de base conjuguée)
ph = henderson_hasselbalch_pH(4.76, 10.0)
print(f"pH (pKa=4.76, ratio=10): {ph:.2f}")Exemple de sortie
pH (pKa=4.76, ratio=1): 4.76
pH (pKa=4.76, ratio=10): 5.76L’équation de Henderson-Hasselbalch relie le pH d’une solution tampon au pKa de l’acide faible et au rapport entre la base conjuguée et l’acide faible. Ceci est fondamental pour la préparation de tampons, la compréhension des équilibres acido-basiques et la prédiction de l’évolution du pH en fonction de la composition dans les systèmes biochimiques et chimiques.
Le pH est calculé en utilisant la formule : $\text{pH} = \text{p}K_a + \log_{10}\left(\frac{[\text{A}^-]}{[\text{HA}]}\right)$, où $\text{p}K_a$ est la constante de dissociation acide, $[\text{A}^-]$ est la concentration de la base conjuguée, et $[\text{HA}]$ est la concentration de l’acide faible. Lorsque le rapport est égal à 1, le pH est égal au pKa.
Le graphique ci-dessus montre le pH en fonction du rapport entre la base conjuguée et l’acide faible pour trois systèmes tampons différents sur une échelle logarithmique. Remarquez que lorsque le rapport est égal à 1 (marqué par la ligne en pointillés), le pH est égal au pKa. Cela illustre la relation linéaire entre le pH et le logarithme du rapport, avec une pente de 1. Le graphique montre comment la modification de la composition du tampon décale le pH de manière prévisible en fonction du pKa de l’acide faible.
Articles liés
- Comment calculer le rapport de Henderson-Hasselbalch en Python avec UliEngineering
- Comment convertir des moles en grammes en Python avec UliEngineering
- Comment calculer la molarité à partir des moles et du volume en Python avec UliEngineering
Script de génération du graphique
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np
import sys
sys.path.insert(0, '/home/uli/dev/UliEngineering')
from UliEngineering.Chemistry.Henderson import henderson_hasselbalch_pH
# Plage de rapports pour le tracé (échelle log)
ratio = np.logspace(-3, 3, 200) # 0,001 à 1000
# Créer le graphique
plt.figure(figsize=(10, 6))
# Calculer le pH pour différentes valeurs de pKa
pKa_values = [4.76, 7.2, 9.25]
colors = ['blue', 'green', 'red']
labels = ['Acetate (pKa=4.76)', 'Phosphate (pKa=7.2)', 'Ammonia (pKa=9.25)']
for pKa, color, label in zip(pKa_values, colors, labels):
pH = pKa + np.log10(ratio)
plt.plot(ratio, pH, label=label, color=color, linewidth=2)
plt.xscale('log')
plt.xlabel('Conjugate Base / Weak Acid Ratio', fontsize=12)
plt.ylabel('pH', fontsize=12)
plt.title('Henderson-Hasselbalch pH vs Buffer Ratio', fontsize=14, fontweight='bold')
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, alpha=0.3)
# Marquer le rapport = 1 (pH = pKa)
plt.axvline(x=1.0, color='black', linestyle='--', linewidth=2, label='Ratio = 1 (pH = pKa)')
plt.legend(loc='upper left', fontsize=10)
plt.tight_layout()
plt.savefig('henderson_hasselbalch_ph_plot.svg', format='svg', dpi=300)