在这里有一个问题要注意,若我们选择的初值n°(i=1,2…,©)精确地满足物料平 衡方程,就可以在得到方程组的梢确解后,知道下次迭代值也能精确地满足物料平衡方 程。实际上,一般不易于获得方程组的精确解,计算机的机器误差限制了解的精度。因 此,即使:°满足物料平衡方程,1‘也不能服从物料平衡方程。经过多次的迭代,机器 误差的累积,即将导致White法无法解决平衡计算问题。为避免产生这样的情况,我们 对方程组作了如下处理。 由物料平衡方程可导出 ∑at(n;-n,)-c1=01=1,2,…,s i=1 式中,c=a,n,°-b1 i=1 将(16)式代入上式中,就可以得到一个方程组: m c m 2yx,+2an:+(--1)∑an j=1 i=m+1 n i÷1 m m =bi-,,ain,°+∑ann,( RT +1na:)-c(22) i=1 i=1 1=1,2,,5 由上式看出,c1在精确地符合物料方程时,恒等于零,方程(22)就化为方程(21)。 而当°、n;'不能很好地符合物料平衡方程时,c项就包括了由此产生的误差。在方程 的解趋于正确解时,c,→0,由于©的存在,就不必要求每次送代的初值都满足物料平衡 方程。 White法与Brinkley法和Vcs法相比,具有不必找出独立反应,划分独立变量的优 点,并且初值的选取对计算影响不大。鉴于White法以上优点,我们选用White法作为 求解多元多相化学反应平衡组成的基本算法。用FORTRAN语言编制了多元多相反应体 系平衡组成的通用计算程序。 2多元多相体系化学平衡组成计算程序 在热力学数据库应用系统中,存在着若干个应用程序,人们可以根据自己的工作意 图投入不同的命令,使用不同的应用程序,并通过应用程序的执行得到计算结果。本程 序就是应用程序之一。它的功能是找出平衡化合物,计算多元多相化学反应的平衡组 成。 为了便于对程序的维护、扩充和更改,此程序与其它几个应用程序是独立的,没有 互相调用的关系。 本程序由21个子程序组成,大约四千条程序。它受控于监控程序,并要通过系统程 序从数据文件中读取热力学数据。程序的主体结构如下: ·47·
在这里 有一个 问题要注意 , 若我们选择的初值 拓 。 二 , … 精 确地满 足物料 平 衡方程 , 就可以在得到方程组的精确解后 , 知道下次迭代值也能精 确地满足物料 平衡方 程 。 实际上 , 一般不 易于获得方程组的精确解 , 计算机的 机器 误差限制 了解的精度 。 因 此 , 即使 。 ” 满足物料平衡方程 , 产 也不能服从物料平衡方程 。 经 过 多次的 迭 代 , 机器 误差的累积 , 即将导致 法无 法解决平衡计算问题 。 为避 免产生这 样 的情况 , 我们 对方程组作 了如下处理 。 由物料 平衡方程可导 出 乞 一 一 一 二 , , … , 式 中 一 艺 边 ” 式代 入 上式 中 , 一 将 就可 以得 到一个 方程组 兀 。 一 一 ” 三一 。 乙 一 ” 二 艺 ,一 。 二 箭 一 ‘ 一 ,一 ‘ , 由毕 看 出 , “ 在 ” 云。 精确 地符合 物料方程时 , 砂 而 当 尹 、 厂不能很好地符合物料 平衡 方程时 , , , … , 恒等于零 , 方程 就 化为方程 。 ,项就包括 了由此 产生 的 误 差 。 在 方程 的解趋于正确解时 , ,, , 由于 的存在 , 就 不必要 求每 次迭 代的初值都满 足 物料平衡 方程 。 法与 法和 法 相比 , 具 有 不 必 找 出独 立反应 , 划 分独立变量的 优 点 , 并且 初值的选 取对计算影 响不 大 。 鉴于 法以上优 点 , 我们 选 用 。 法作为 求解 多零多相化学反应平衡组成的基本算法 。 用 语言编制 了多元多相反应体 系平衡组 成的通 用计算程 序 。 一 多元多相体系化学平衡组成计算程序 , 在热力学数据库应 用系统 中 , 存 在着若干个应用程序 , 人们可以根据 自己的工作 意 图 投入不 同的命 令 , 使用不 同的 应用程 序 , 并通 过应用程序的执行得到计算结果 。 本程 序就是应用程序之一 。 它的功能是找 出平衡 化合 物 , 计算 多元 多 相 化学反应的 平衡组 成 。 为 了便于对程 序的维护 、 扩充和更改 , 此程 序与其它几个应用程 序是纯立的 , 没有 互 相调用的关系 。 本程序由 个子程 序组成 , 大约四千条程序 。 它受控于监控程序 , 并要通过系统程 序从数据文件 中读取热力学数据 。 程 序的主体结构如下
READ 查找包含系统元素的化合物子程序 EQUI HSG·· SGMIX SORT GASOL 计算子程序 OPUT 程序的工作原理如图1: Start EQUI 图1总流图 READ Fig.1 General flowchart Calculate? Y SGMIX End EQU1:为了用户使用上的方便,当用户需要找出数据库中某一系统元素组成的平衡化 合物时,可投入EQUIFIL命令。此命令不做计算,仅仅查找化合物。如果用户既要找 出化合物,又要计算多元多相化学反应的平衡组成时,投人EQUI OMP命令。EQUI程 序就是根据用户投入的命令,按照用户的意图决定程序的走向。 READ,查找化合物程序。 into from EQUI SGMIX:.多元多相化学反应的平衡组成的计算子程序。 Decade the syatem ·相n@teB 3· 各主要程序段的功能及工作原理 Find syatem compounds in file 1 3.1READ程序的功能是调用系统子程序在数据文件一, 数据文件二中检索该系统元素的平衡化合物。工作原理如图 Solution? 2。 Y Find ayatem compounde 1n'f11a2 Print syetem conpounds 图2READ程序流程图 …Delet7 Fig.2.Flowchart of READ Program Y Cal1 RDNUMS Return ·48
一 “ 奴” 妙 包含系统元素的 化合物子程序 一 计算子程 序 了 了 , 程序的 工 作原理如 图 图 总流 图 。 为了用 户 使 用上的方便 , 当用户需要 找 出数据库 中某一 系统元素组 成的平 衡化 合物时 , 可投入 命令 。 此命令不 做计算 , 仅仅查找化合物 。 如 果用 户 既要找 出化合 物 , 又要 计算多元多相化学反 应的 平衡组成时 , 投入 命令 。 耳程 序就是根据用 户 投入 的命令 , 按照 用户的意 图决 定程 序的 走 向 。 查找 化合物程序 。 一 多元多相化学反 应的 平衡组成的计算子程序 。 · 各主要程序段的功能及工作原理 人 ‘ 性 程序的功能是 调 用系统子 程序在数据文 件一 , 数据文件立 中检索该系统元素的乎衡化合物 。 工 作原理如 图 勺叮一了 严 塑竺甲 ‘尹士,二一, , · ‘ , 乙 厂 名