【发布时间】:2021-02-04 19:34:19
【问题描述】:
如果这很简单,请提前道歉——我怀疑是这样——因为我已经搜索过,但没有找到这样的例子!
我正在 Pyomo 中构建一个能源系统调度模型,并运行了一个版本。我在定义一个新变量“SystemShortRunMarginalCost”,应该定义为“ActiveShortRunMarginalCostByGenerator”的最大值,如下:
def SystemShortRunMarginalCost_rule(model,h):
max(model.ActiveShortRunMarginalCostByGenerator[g,h] for g in model.GeneratorName) == SystemShortRunMarginalCost[h]
model.SystemShortRunMarginalCostHourly = Constraint(model.Hour, rule=SystemShortRunMarginalCost_rule)
我在这里缺少一些基本语法吗?我收到以下错误消息:
ERROR: Rule failed when generating expression for constraint
SystemShortRunMarginalCostHourly with index 1: NameError: name
'SystemShortRunMarginalCost' is not defined
ERROR: Constructing component 'SystemShortRunMarginalCostHourly' from
data=None failed:
NameError: name 'SystemShortRunMarginalCost' is not defined
[ 0.10] Pyomo Finished
ERROR: Unexpected exception while running model:
name 'SystemShortRunMarginalCost' is not defined
谢谢。
更新
所以我现在按照建议添加了修改目标函数,并修改了约束代码如下:
def SystemShortRunMarginalCost_rule(model,g,h):
return SystemShortRunMarginalCost[h] >= model.ActiveShortRunMarginalCostByGenerator[g,h]
model.SystemShortRunMarginalCostHourly = Constraint(model.GeneratorName, model.Hour, rule=SystemShortRunMarginalCost_rule)
我现在得到一个不同的错误,如下:
ERROR: Rule failed when generating expression for constraint
SystemShortRunMarginalCostHourly with index ('Wind1', 1): NameError: name
'SystemShortRunMarginalCost' is not defined
ERROR: Constructing component 'SystemShortRunMarginalCostHourly' from
data=None failed:
NameError: name 'SystemShortRunMarginalCost' is not defined
[ 0.11] Pyomo Finished
ERROR: Unexpected exception while running model:
name 'SystemShortRunMarginalCost' is not defined
【问题讨论】:
标签: pyomo