【发布时间】:2017-09-04 12:01:05
【问题描述】:
我用 Pyomo 设置了一个优化 CHP 单元控制策略的问题,它的布局(非常粗略)如下:
class Problem
def OptiControl
<Pyomo Concrete model formulation>
return (model.obj.value())
之所以存在问题类,是因为我正在研究几种控制策略方法,因此我使用(例如)b = problem1.OptiControl() 来调用这些方法。
问题是,如果我尝试返回目标的值,我的脚本会卡住,当我 Ctrl+C 退出时,我会得到(' Signal', 2, 'recieved, but no process queued')。此外,如果我写model.write(),脚本正常结束,但 IPython 中不显示任何内容。尝试打印model.obj.value() 也不起作用。
我认为这与我在函数中调用 Pyomo 的事实有关,因为该模型之前成功运行,但我不知道如何解决这个问题。
编辑:将值写入文件也不起作用。如果有帮助,这是我解决模型的代码摘录:
opt = SolverFactory("glpk") # Choose solver
solution = opt.solve(model) # Solve model
model.write()
with open('ffs.txt','w') as f:
model.obj.expr()
for t in model.P:
f.write(model.f["CHP",t].value)
【问题讨论】:
-
出于好奇,您在执行
model.display()时是否得到任何输出? -
没有。我找到了一个修复方法(见下文)
-
当您执行
model.display()时没有打印出来?这很奇怪,可能是一个错误。不过,我很高兴您找到了解决方法。
标签: python optimization pyomo