乙烷水蒸气气化平衡:Gekko-IPOPT与Excel-GRG求解结果对比
乙烷水蒸气气化反应热力学平衡组成计算与方法对比(1000K,乙烷与蒸汽摩尔比4:1)
针对乙烷与蒸汽摩尔比4:1的水蒸气气化反应,基于反应产物与反应物的生成吉布斯自由能,计算1000K下混合物的热力学平衡组成。分别采用Gekko调用IPOPT求解器、Excel的GRG优化器、约束根求解器进行求解,三种方法得到的平衡组成结果存在差异,现将求解过程及结果对比展示如下:
求解代码(Gekko-IPOPT)
from gekko import GEKKO m = GEKKO(remote=True) x = m.Array(m.Var,13,value=1,lb=1e-27,ub=20.0) H2,H2O,CO,O2,CO2,CH4,C2H6,C2H4,C2H2,lamda1,lamda2,lamda3,summe= x H2.value = 3.0 H2O.value = 1.0 CO.value = 0.5 O2.value = 0.001 CO2.value = 0.5 CH4.value = 0.1 C2H6.value = 0.000215 C2H4.value = 0.00440125 C2H2.value = 0.0041294 summe.value = 8.0 lamda1.value = 1.0 lamda2.value = 1.0 lamda3.value = 1.0 eq1 = m.Param(value=14) eq2 = m.Param(value=4) eq3 = m.Param(value=2) summe = m.Var(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2) lamda2 = m.Var((-1)*m.log(H2 / summe) / 2) lamda1 = m.Var(46.03 / 1.9872 - m.log(H2O / summe) + 2 * lamda2) lamda3 = m.Var(47.942 / 1.9872 - m.log(CO / summe) + lamda1) m.Equation(m.exp(-4.61 / 1.9872 - 4 * lamda2 - lamda3) * summe == CH4) m.Equation(m.exp(-28.249 / 1.9872 - 4 * lamda2 - 2 * lamda3) * summe == C2H4) m.Equation(m.exp(-40.604 / 1.9872 - 2 * lamda2 - 2 * lamda3) * summe == C2H2) m.Equation(m.exp(-26.13 / 1.9872 - 6 * lamda2 - 2 * lamda3) * summe == C2H6) m.Equation(m.exp(94.61 / 1.9872 - 2 * lamda1 - lamda3) * summe == CO2) m.Equation(m.exp(-2 * lamda1) * summe == O2) m.Equation(2 * CO2 + CO + 2 * O2 + H2O == eq2) m.Equation(4 * CH4 + 4 * C2H4 + 2 * C2H2 + 2 * H2 + 2 * H2O + 6 * C2H6 == eq1) m.Equation(CH4 + 2 * C2H4 + 2 * C2H2 + CO2 + CO + 2 * C2H6 == eq3) m.Minimize((summe-(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2))**2) m.options.IMODE = 3 #IPOPT m.options.MAX_ITER = 1000 m.options.OTOL = 1e-10 m.options.RTOL = 1e-10 m.solve() print('x: ', x) print('Objective: ',m.options.OBJFCNVAL)
Gekko-IPOPT求解结果
退出:找到最优解。 已找到解决方案。 目标函数最终值: 81.0000000000000 --------------------------------------------------- 求解器 : IPOPT (v3.12) 求解时间 : 1.169999998819549E-002 秒 目标函数值 : 81.0000000000000 求解成功 --------------------------------------------------- x: [[5.797458326] [1.202541674] [1.202541674] [1.6791020526e-21] [0.79745832603] [1.6503662452e-22] [3.2694282596e-27] [1.1255712085e-27] [1e-27] [2.185089969] [2.185089969] [2.185089969] [9.5605307091]]
Excel-GRG优化器求解结果
Excel GRG优化器的求解结果对应下表中的「Excel GRG优化器」列数据。
约束根求解器结果
方程总数:13 隐式方程数:4 显式方程数:9 求解方法:约束法 收敛精度:1e-07 迭代次数:8 CO 1.685236 H2 5.118105 H2O 1.387357 SUM 8.899115 C2H2 0.0041294 C2H4 0.0044224 C2H6 0.0092403 CH4 0.2269213 CO2 0.0522585 lamda1 1.537016 lamda2 0.2765838 lamda3 2.53957 O2 0.4114448
求解结果对比
| 求解向量x | Gekko-IPOPT | Excel GRG优化器 | 约束根求解器 | Gekko最终调整值 |
|---|---|---|---|---|
| H2: 1 | 5.797458326 | 5.344360712 | 5.118105 | 5.219 |
| H2O: 2 | 1.202541674 | 1.521995663 | 1.387357 | 1.681 |
| CO: 3 | 1.202541674 | 1.388351672 | 1.685236 | 1.581 |
| O2: 4 | 1.6791020526e-21 | 5.82E-21 | 0.4114448 | 1e-5 |
| CO2: 5 | 0.79745832603 | 0.544826 | 0.0522585 | 0.3693 |
| CH4: 6 | 1.6503662452e-22 | 0.0668213 | 0.2269213 | 0.05 |
| C2H6: 7 | 3.2694282596e-27 | 1.70E-07 | 0.0092403 | 1e-5 |
| C2H4: 8 | 1.1255712085e-27 | 9.74E-08 | 0.0044224 | 1e-5 |
| C2H2: 9 | 1e-27 | 3.25E-10 | 0.0041294 | 1e-5 |
| lamda1: 10 | 2.185089969 | 24.3878385 | 1.537016 | |
| lamda2: 11 | 2.185089969 | 0.253110984 | 0.2765838 | |
| lamda3: 12 | 2.185089969 | 1.558979624 | 2.53957 | |
| summe: 13 | 9.5605307091 | 8.866356107 | 8.899115 | 8.90 |
内容的提问来源于stack exchange,提问作者Ronny M
相关产品推荐
相关产品推荐

