【发布时间】:2019-07-26 11:59:48
【问题描述】:
我正在尝试解决 gekko 中的简单混合操作。混合器mx 采用两个入口流Feed1 和Feed2。预期结果是出口流mx.outlet 的质量流量应该是入口流质量流量的总和。
这是我尝试过的。
from gekko import GEKKO, chemical
m = GEKKO(remote=False)
f = chemical.Flowsheet(m)
P = chemical.Properties(m)
c1 = P.compound('Butane')
c2 = P.compound('Propane')
feed1 = f.stream()
m_feed1 = f.massflows(sn= feed1.name)
m_feed1.mdot = 200
m_feed1.mdoti = [50,150]
feed2= f.stream()
m_feed2 = f.massflows(sn= feed2.name)
m_feed2.mdot = 200
m_feed2.mdoti = [50,150]
mx = f.mixer(ni=2)
mx.inlet = [feed1.name,feed2.name]
m.options.SOLVER = 1
mf = f.massflows(sn = mx.outlet)
m.solve()
代码运行成功。但是,在mf.mdot 上似乎输出了不正确的值 [-1.8220132454e-06]。预期值为 400。任何帮助,我的代码有什么问题?
【问题讨论】:
-
问题是您的质量流量
mdot和组件质量流量mdoti变量是在需要修复时计算的。还计算了入口流上的摩尔流量变量。这是一个翻转变量规格(固定/计算)的问题。我需要让这些更容易使用,所以我要向 Gekko 添加一些新功能,这些新功能将在下一个版本中提供。我将推迟对这个问题的回答,直到准备好更简单的修复程序。化学模块是新的,需要更多的开发以方便用户使用。
标签: gekko