Можно легко вычислить pH по уравнению Хендерсона-Хассельбаха с помощью библиотеки Python UliEngineering:
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.
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}")Пример вывода
pH (pKa=4.76, ratio=1): 4.76
pH (pKa=4.76, ratio=10): 5.76Уравнение Хендерсона-Хассельбаха связывает pH буферного раствора с pKa слабой кислоты и соотношением сопряжённого основания к слабой кислоте. Это фундаментально для приготовления буферов, понимания кислотно-основных равновесий и прогнозирования изменения pH в зависимости от состава в биохимических и химических системах.
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 слабой кислоты.
Связанные записи
- Как вычислить соотношение по уравнению Хендерсона-Хассельбаха на Python с помощью UliEngineering
- Как преобразовать моли в граммы на Python с помощью UliEngineering
- Как вычислить молярность из молей и объёма на Python с помощью UliEngineering
Скрипт для построения графика
#!/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)