用Excel迭代运算程序解决复杂配位平衡体系中的准确计算问题
Solution for Accurate Calculations in Complicated Coordination Equilibrium System with Excel Iteration Program
基金资助: |
|
Fund supported: |
陕西师范大学研究生教学改革与研究项目. |
采用Excel软件工作表格,通过程序设计引导迭代计算方向,解决了两个复杂配位平衡体系中离子浓度的精确计算问题,发展了简便的Excel计算方法,为复杂配位平衡体系中的精确计算提供了思路。
关键词:
The excel iteration program was developed and provided a general approach for accurate calculation of complicated coordination equilibrium systems.
Keywords:
本文引用格式
岳宣峰, 张智娟, 张延妮.
YUE Xuan-Feng, ZHANG Zhi-Juan, ZHANG Yan-Ni.
本文针对多个配位反应共存体系中离子浓度的精确计算问题,提出采用Excel软件工作表格,结合恰当的程序设计,引导迭代计算方向,发展简便的Excel方法,并应用于两个实例。
1 利用Excel的迭代运算功能解决多配位平衡共存体系中的精确计算问题
1.1 涉及单一离子浓度的复杂配位平衡体系的计算
在武汉大学编写的《分析化学》教材第5版[17]配位滴定章节中有这样一道例题:溶液中含有27 mgAl3+和65.4 mg Zn2+,若加入1.0 g NH4F,调节溶液的pH为5.5,以二甲酚橙作指示剂,用0.02 mol·L-1EDTA滴定Zn2+,能否准确滴定(假定终点的总体积为100 mL)?
在解题时,为了定量描述Al3+引起的EDTA的副反应,应该计算Al3+的平衡浓度,即[Al3+]。要计算[Al3+],就必须获得溶液中Al3+主要副反应发生的程度αAl(F),而αAl(F)取决于F-的平衡浓度[F-]sp,而[F-]sp的值很大程度上取决于αAl(F)。这样,逻辑的死循环出现了,其本质是复杂反应体系中多个平衡反应的同时共存,可以看出以上计算的难点在于如何获得[F-]sp。
现行教材[17]中的解决方法是对F-和Al3+的各级配位物AlFi的稳定常数(lgβ1-lgβ6:6.13、11.15、15.00、17.76、19.32和19.84)进行分析后推测AlF5 2-是可能的主要型体,并只考虑主要配位级数的反应平衡,从而避开计算上的死循环弊端、简化了计算([F-′]sp = 0.27-5 × 0.01 = 0.22 mol·L-1)并进一步获得[F-]sp;随后通过αAl(F)的各构成项βi[F-]i的对比来验证这种推测的合理性。以上方法是现行多种教材对这类涉及多个配位反应的复杂平衡体系的通用处理做法。体现了目前化学分析中对复杂平衡体系计算的常规做法:忽略次要反应,通过主要平衡,简化数学计算。通过以上处理确实解决了一部分复杂体系中的计算问题。但以上做法存在的问题有:
(1)这种做法带来的误差大小很难考查,有时会带来很大的误差,以上例题中简化计算的处理带来的误差并不大,但这只是个特例(简化处理得到的[F-′]sp = 0.2200 mol·L-1,而采用精确处理方法获得的[F-′]sp = 0.2158 mol·L-1)。
(2)在以上做法中做推理时除了必要的逻辑,有时不得不对哪个平衡反应是主要过程进行猜测(比如在金属离子与辅助配位剂生成的各级型体的稳定常数差别不明显的情况下),这必然增加了判断的不确定性。
(3)有些教材中也提出了逐步逼近法(try-and-error method),即先通过简化处理获得一个近似的[F-]sp,然后利用这个近似的[F-]sp获得更为准确的αAl(F),基于此再获得更准确的[F-]sp,采用此法通过多次循环也许可以获得较为准确的结果,但是计算量可能会相当大。
(4)这类处理方法的最大弊端是:并不是所有的复杂多平衡体系都可以这样简化处理,比如:多个平行或者相继平衡反应趋势非常接近的情况。
为了精确求解[F-]sp,我们对F-参与的平衡反应做全面分析后将计算分成两个步骤,先计算出不参与AlFi的剩余F-的总浓度[F-′]sp,然后考虑酸效应后算出[F-]sp。根据物料平衡,有关F-关系式如下(考虑逻辑的演进,我们定义迭代计算初始[F-]sp为[F-]sp,初始,每轮迭代计算结果[F-]sp为[F-]sp,平衡):
式(1)中:
式(2)中:
考虑酸效应后,[F-′]sp和[F-]sp,平衡之间的关系式为:
其中,Ka(HF)为解离常数。
将式(2)-式(4)代入式(1),可以获得含有[F-]sp的方程:
其本质是一个忽略了离子强度的含有[F-]sp的一元七次方程,如果展开此关系式,计算相当复杂。我们利用Excel软件的迭代计算功能巧妙设计表达式(5),可以在不把以上高次方程展开的情况下方便地求出该方程的解,即[F-]sp。在Excel工作表上运行式(5)的设计见图1,具体步骤如下:
图1
(1)进入Excel工作表,在“文件”菜单中选择“选项”命令,然后点击选项“公式”中的“计算选项”,再在“迭代计算”中设置最大迭代次数“1000”(根据误差及有理数解阈值等具体要求确定此数值),最大允许误差设置为“0”(根据允许误差的要求来设置此数值)。
(2)在单元格B2到F2中依次键入各种已知数值:0.27 (溶液中F-的分析浓度cFsp ,mol·L-1)、0.01 (溶液中Al3+的分析浓度cAl3+ ,mol·L-1)、5.5 (平衡体系的pH)、6.6 × 10-4 (氢氟酸水溶液的解离常数Ka(HF))、0.27 (迭代计算中[F-]sp的初始值[F-]sp,初始,mol·L-1,一般根据单调区间和值阈等给一个合适的初始数值,本例可以取值0.27 mol·L-1)。
(3)第3行到第6行依次填充:各级AlFi的形成常数βi (第3行);各级AlFi化学式中含有F-的个数(第4行);αAl(F)的各主要组成式表达式βi[L]i,例如单元格B5中的具体表达式为“=B3*POWER($F$2,B4)”(第5行);以及各级AlFi形成时消耗的F-的浓度βi[Al3+]sp [F-]isp,初始× i,例单元格B6中的表达式为:“=$C$2/(1+SUM($B$5:$G$5))*B3*POWER($F$2,B4)*B4”(第6行)。
(4)在单元格G2中键入[F-]sp,平衡的表达式,即式(5) (每轮循环计算的终点值),G2中的具体内容为:“=(B2-SUM(B6:G6))/(POWER(10,-D2)/E2+1)”。按“Enter”键获得来自初始值[F-]sp,初始的第一轮[F-]s,平衡p数值。
(5)再在单元格G2中键入“=F2”,按“Enter”键启动迭代计算。瞬即在单元格F2与G2中同时出现[F-]sp,平衡的数值“0.2158”。
1.2 涉及多个离子浓度的复杂配位平衡体系的计算
在武汉大学编写的《分析化学》教材第5版[17]配位滴定章节中还有这样一道作业题:在pH = 6.0的溶液中,含有0.02 mol·L-1 [Zn2+]和0.02 mol·L-1 [Cd2+],游离酒石酸根(Tart)浓度为0.2 mol·L-1,加入等体积的0.02 mol·L-1 EDTA,计算lg K′CdY和lg K′ZnY值。
解题的关键在于计算Zn2+、Cd2+及EDTA的平衡浓度[Zn2+]、[Cd2+]和[Y]。按照教材[17]中的思路是先预判以Cd2+与EDTA的反应为主反应进行分析,进而考虑由Tart等引起的Cd2+的副反应,由H+、Zn2+等引起的EDTA的副反应;而在接下来考虑的由Zn2+引起的EDTA的副反应中,Zn2+的平衡浓度[Zn2+]就成了关键;而[Zn2+]的获得要求先弄清楚Zn2+的副反应,计算Zn2+的副反应需要考虑3个物质的平衡浓度,分别是OH-、Tart及EDTA;而EDTA的平衡浓度却是以上计算的结果,这样以来死循环出现了。其本质是这里有5个平衡反应共存,计算的难点在于如何获得Zn2+、Cd2+及EDTA的平衡浓度[Zn2+]、[Cd2+]和[Y]。
武汉大学教辅材料[18]里提供的解法是:默认此反应系统中Zn2+几乎100%与Tart反应
为了精确求解[Zn2+]、[Cd2+]和[Y],需要发展适合此类体系的更为通用、更为准确的处理方法。首先对3种离子参与的5个共存的反应平衡做全面分析(酒石酸在pH = 6.0时的酸效应可忽略不计[17])。根据3种物质的物料平衡,有关关系式如下:
利用副反应考虑以上等式,得:
进一步计算各个副反应系数,得到:
这是一个三元高次方程,可以通过Excel中单变量求解等方法[20]获得[Zn2+]、[Cd2+]和[Y],但计算稍显复杂;还有一个更为简便的方法,可以利用Excel软件的迭代运算功能巧妙设计式(8)中的任何一个等式,从而在不把以上高次方程展开的情况下方便地求出该方程的解。比如由式(8)中:[Y](KZnY[Zn2+] + KCdY[Cd2+]+αY(H)) = 0.01,得到:
将式(8)中前两个等式代入式(9),得到(考虑逻辑的演进,我们定义迭代计算初始[Y]为[Y]初始,每轮迭代计算结果的[Y]为[Y]平衡):
在Excel工作表上运行式(10)的设计见图2,具体步骤如下:
图2
(1)设置同2.1节。
(2)在B列、D列和F列分别输入与Zn2+、Cd2+和配位剂有关的常数、浓度及副反应系数等。从B1到B6分别输入KZnY、αZn(Y初始) (1+KZnY[Y]初始,具体表达式为“=1+B1*F1”)、αZn(Tart) (β1[Tart]+β2[Tart2]2+1,具体表达式为“=1+B4*F2+B5*POWER(F2,2)”)、β1(ZnTart2)、β2(ZnTart2)及[Zn2+] (0.01×(KZnY[Y]+β1[Tart]+β2[Tart]2+1)-1,具体表达式为:“=0.01/(POWER(10,16.5)*F1+POWER(10,6.32)+POWER(10,1.4)+1)”)。
在F列,从F1到F6依次键入[Y]起始(迭代运算中的初始值,本例可以取值0.01 mol·L-1)、[Tart]、αY(H) (pH = 6.0)、αY(Zn) (1+KZnY[Zn],具体表达式为“=1+B1*B6”)、αY(Cd) (1+KCdY[Cd],具体表达式为“=1+D1*D6”)和[Y]平衡(式(10)右侧,具体表达式为:“=0.01/(POWER(10,16.5)*0.01/(POWER(10,16.5)*F1+POWER(10,6.32)+POWER(10,1.4)+1)+POWER(10,16.46)*0.01/(POWER(10,16.46)*F1+POWER(10,1.8)+1)+POWER(10,4.65))”)。
(3)再在单元格F1中键入“=F6”,按“Enter”键启动迭代运算。瞬即在单元格B6、D6及F6中出现[Zn2+]、[Cd2+]和[Y]的数值。
2 结论
通过以上两道计算题的求解,可以看到在同时存在多个平衡反应的体系中遇到复杂计算时,利用通用软件Excel的迭代运算功能、编写运算程序可以快速地获得相关计算的准确结果(在设计迭代运算时,注意要遵循一定的计算次序,否则即使有平衡计算关系等式,Excel也不能执行循环计算。在本文中用[F-]sp,初始和[F-]sp,平衡、[Y]起始和[Y]平衡结合来指示运算的次序和方向),为这类复杂问题的解决提供了一般的思路。拓展了Excel在分析化学中的应用,为强化化学分析计算提供了一个简单且方便的选择。
参考文献
/
〈 |
|
〉 |
