Python: Henderson-Hasselbalch-pH mit UliEngineering berechnen
Du kannst leicht den pH-Wert mit der Henderson-Hasselbalch-Gleichung und der UliEngineering-Python-Bibliothek berechnen:
from UliEngineering.Chemistry import henderson_hasselbalch_pH
# pH-Wert für Essigsäure-Puffer berechnen (pKa=4.76, Verhältnis=1)
ph = henderson_hasselbalch_pH(4.76, 1.0)
print(f"pH (pKa=4.76, Verhältnis=1): {ph:.2f}")
# pH-Wert für Puffer mit Verhältnis 10 berechnen (mehr konjugierte Base)
ph = henderson_hasselbalch_pH(4.76, 10.0)
print(f"pH (pKa=4.76, Verhältnis=10): {ph:.2f}")Beispielausgabe
pH (pKa=4.76, Verhältnis=1): 4.76
pH (pKa=4.76, Verhältnis=10): 5.76Die Henderson-Hasselbalch-Gleichung setzt den pH-Wert einer Pufferlösung mit dem pKa der schwachen Säure und dem Verhältnis von konjugierter Base zu schwacher Säure in Beziehung. Dies ist grundlegend für die Pufferherstellung, das Verständnis von Säure-Base-Gleichgewichten und die Vorhersage, wie sich der pH-Wert mit der Zusammensetzung in biochemischen und chemischen Systemen ändert.
Der pH-Wert wird mit der Formel $\text{pH} = \text{p}K_a + \log_{10}\left(\frac{[\text{A}^-]}{[\text{HA}]}\right)$ berechnet, wobei $\text{p}K_a$ die Säuredissoziationskonstante, $[\text{A}^-]$ die Konzentration der konjugierten Base und $[\text{HA}]$ die Konzentration der schwachen Säure ist. Wenn das Verhältnis 1 ergibt, entspricht der pH-Wert dem pKa.
Das obige Diagramm zeigt den pH-Wert in Abhängigkeit des Verhältnisses von konjugierter Base zu schwacher Säure für drei verschiedene Puffersysteme auf einer logarithmischen Skala. Beachte, dass bei einem Verhältnis von 1 (markiert durch die gestrichelte Linie) der pH-Wert dem pKa entspricht. Dies zeigt den linearen Zusammenhang zwischen pH-Wert und dem Logarithmus des Verhältnisses mit einer Steigung von 1. Das Diagramm zeigt, wie eine Änderung der Pufferzusammensetzung den pH-Wert vorhersagbar basierend auf dem pKa der schwachen Säure verschiebt.
Verwandte Beiträge
- How to compute Henderson-Hasselbalch ratio in Python using UliEngineering
- How to convert moles to grams in Python using UliEngineering
- How to compute molarity from moles and volume in Python using UliEngineering
Diagramm-Estellungsskript
#!/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
# Verhältnisbereich für das Diagramm (log-Skala)
ratio = np.logspace(-3, 3, 200) # 0.001 bis 1000
# Diagramm erstellen
plt.figure(figsize=(10, 6))
# pH-Wert für verschiedene pKa-Werte berechnen
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('Verhältnis konjugierte Base / schwache Säure', fontsize=12)
plt.ylabel('pH', fontsize=12)
plt.title('Henderson-Hasselbalch-pH vs. Pufferverhältnis', fontsize=14, fontweight='bold')
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, alpha=0.3)
# Verhältnis = 1 markieren (pH = pKa)
plt.axvline(x=1.0, color='black', linestyle='--', linewidth=2, label='Verhältnis = 1 (pH = pKa)')
plt.legend(loc='upper left', fontsize=10)
plt.tight_layout()
plt.savefig('henderson_hasselbalch_ph_plot.svg', format='svg', dpi=300)