Как вычислить pH по уравнению Хендерсона-Хассельбаха на Python с помощью UliEngineering

Можно легко вычислить pH по уравнению Хендерсона-Хассельбаха с помощью библиотеки Python UliEngineering:

TechOverflow calculators:
You can enter values with SI suffixes like 12.2m (equivalent to 0.012) or 14k (14000) or 32u (0.000032).
The results are calculated while you type and shown directly below the calculator, so there is no need to press return or click on a Calculate button.
henderson_hasselbalch_pH.py
from UliEngineering.Chemistry import henderson_hasselbalch_pH

# Вычислить pH для ацетатного буфера (pKa=4,76, ratio=1)
ph = henderson_hasselbalch_pH(4.76, 1.0)
print(f"pH (pKa=4.76, ratio=1): {ph:.2f}")

# Вычислить pH для буфера с ratio 10 (больше сопряжённого основания)
ph = henderson_hasselbalch_pH(4.76, 10.0)
print(f"pH (pKa=4.76, ratio=10): {ph:.2f}")

Пример вывода

henderson_hasselbalch_pH_output.txt
pH (pKa=4.76, ratio=1): 4.76
pH (pKa=4.76, ratio=10): 5.76

Уравнение Хендерсона-Хассельбаха связывает pH буферного раствора с pKa слабой кислоты и соотношением сопряжённого основания к слабой кислоте. Это фундаментально для приготовления буферов, понимания кислотно-основных равновесий и прогнозирования изменения pH в зависимости от состава в биохимических и химических системах.

henderson hasselbalch ph plot.svg

pH вычисляется по формуле: $\text{pH} = \text{p}K_a + \log_{10}\left(\frac{[\text{A}^-]}{[\text{HA}]}\right)$, где $\text{p}K_a$ — константа диссоциации кислоты, $[\text{A}^-]$ — концентрация сопряжённого основания, а $[\text{HA}]$ — концентрация слабой кислоты. Когда соотношение равно 1, pH равен pKa.

График выше показывает pH в зависимости от соотношения сопряжённого основания к слабой кислоте для трёх различных буферных систем в логарифмическом масштабе. Обратите внимание, что когда соотношение равно 1 (отмечено пунктирной линией), pH равен pKa. Это демонстрирует линейную зависимость между pH и логарифмом соотношения с наклоном 1. График показывает, как изменение состава буфера предсказуемо сдвигает pH на основе pKa слабой кислоты.

Связанные записи


Скрипт для построения графика

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

# Диапазон соотношений для построения графика (логарифмическая шкала)
ratio = np.logspace(-3, 3, 200)  # от 0,001 до 1000

# Создание графика
plt.figure(figsize=(10, 6))

# Расчёт pH для разных значений 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)

# Отметка ratio = 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)

Check out similar posts by category: Calculators Chemistry Python