Python: Henderson-Hasselbalch-pH mit UliEngineering berechnen

Der pH-Wert lässt sich mit der Henderson-Hasselbalch-Gleichung und der UliEngineering-Python-Bibliothek einfach berechnen:

henderson_hasselbalch_pH.py
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

henderson_hasselbalch_pH_output.txt
pH (pKa=4.76, Verhältnis=1): 4.76
pH (pKa=4.76, Verhältnis=10): 5.76

Die 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. Das 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.

Henderson-Hasselbalch-pH-Diagramm

Berechnet wird der pH-Wert nach der Formel $\text{pH} = \text{p}K_a + \log_{10}\left(\frac{[\text{A}^-]}{[\text{HA}]}\right)$, 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. Bei einem Verhältnis von 1 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 logarithmischer Skala. Bei einem Verhältnis von 1 (markiert durch die gestrichelte Linie) entspricht der pH-Wert dem pKa. Das zeigt den linearen Zusammenhang zwischen pH-Wert und dem Logarithmus des Verhältnisses mit einer Steigung von 1. Das Diagramm veranschaulicht, wie eine Änderung der Pufferzusammensetzung den pH-Wert vorhersagbar anhand des pKa der schwachen Säure verschiebt.

Verwandte Beiträge


Diagramm-Estellungsskript

plot_henderson_hasselbalch_ph.py
#!/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)

Ähnliche Beiträge nach Kategorie: Chemistry, Python