分析化学 | 酸碱形体分布和pH关系

分布系数:平衡时溶液中某物种的平衡浓度占总浓度的分数 $$ \delta = \frac{[c_i]}{c_0}$$ 分布曲线:不同pH值溶液中酸碱存在形式的分布

1
2
import numpy as np
from matplotlib import pyplot as plt

$$ HA \longrightarrow H^+ + A^- , K^\Theta_a=\frac{[H^+][A^-]}{[HA]}$$

对于$HA$,其分布系数为: $$\delta_{HA} =\frac{[HA]}{[HA]+[A^-]} =\frac{1}{1+\frac{[A^-]}{[HA]}} =\frac{1}{1+\frac{K^\Theta_a}{[H^+]}} =\frac{[H^+]}{[H^+]+K^\Theta_a}$$

对于$[A^-]$,其分布系数为: $$\delta_{A^-} =\frac{[A^-]}{[HA]+[A^-]} =\frac{1}{1+\frac{[HA]}{[A^-]}} =\frac{1}{1+\frac{[H^+]}{K^\Theta_a}} =\frac{K^\Theta_a}{[H^+]+K^\Theta_a}$$

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Ka = float(input('输入Ka:'))
Ka = 1.6e-5 # 默认数据为醋酸
pH = np.arange(0,14,0.1)
dHA, dA = [], []
for i in pH:
    H = 10**-i
    dHA.append(H/(H+Ka))
    dA.append(Ka/(H+Ka))

plt.figure(figsize=(8,5))
plt.plot(pH, dHA, label='HA'), plt.plot(pH, dA, label="$A^-$")
plt.xlim([0,14]), plt.ylim([0,1])
plt.xlabel('pH'), plt.ylabel('$\delta$'), plt.legend()
plt.show()
/image/AcidBase-Species-Distribution-01.png
醋酸(一元弱酸)的型体分布图

$$ H_2A \longrightarrow H^+ + HA^- , K^\Theta_{a1}=\frac{[H^+][HA^-]}{[H_2A]}$$ $$ HA^- \longrightarrow H^+ + A^{2-} , K^\Theta_{a2}=\frac{[H^+][A^{2-}]}{[HA^-]}$$

对于$HA$,其分布系数为: $$ \delta_{H_2A} =\frac{[H_2A]}{[H_2A]+[HA^-]+[A^{2-}]} =\frac{1}{1+\frac{[HA^-]}{[H_2A]}+\frac{[A^{2-}]}{[H_2A]}} =\frac{1}{1+\frac{K^\Theta_{a1}}{[H^+]}+\frac{K^\Theta_{a1}K^\Theta_{a2}}{[H^+]^2}} =\frac{[H^+]^2}{[H^+]^2 + [H^+]K^\Theta_{a1} + K^\Theta_{a1}K^\Theta_{a2}} $$

对于$[A^-]$,其分布系数为: $$\delta_{HA^-} =\frac{[H^+]K^\Theta_{a1}}{[H^+]^2 + [H^+]K^\Theta_{a1} + K^\Theta_{a1}K^\Theta_{a2}}$$

对于$[A^{2-}]$,其分布系数为: $$\delta_{A^{2-}} =\frac{K^\Theta_{a1}K^\Theta_{a2}}{[H^+]^2 + [H^+]K^\Theta_{a1} + K^\Theta_{a1}K^\Theta_{a2}} $$

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
Ka1, Ka2 = 5.9e-2, 6.5e-5 # 默认数据是草酸
pH = np.arange(0,14,0.1)
dH2A, dHA, dA = [], [], []
for i in pH:
    H = 10**-i
    div = H**2 + H*Ka1 + Ka1*Ka2
    dH2A.append(H**2/div)
    dHA.append(H*Ka1/div)
    dA.append(Ka1*Ka2/div)

plt.figure(figsize=(8,5))
plt.plot(pH, dH2A, label='$H_2A$')
plt.plot(pH, dHA, label='$HA$')
plt.plot(pH, dA, label="$A^-$")
plt.xlim([0,14]), plt.ylim([0,1])
plt.xlabel('pH'), plt.ylabel('$\delta$'), plt.legend()
plt.show()
/image/AcidBase-Species-Distribution-02.png
草酸(二元弱酸)的型体分布图