我有一个 Pyomo 模型,其形式为:
from pyomo.environ import *
from pyomo.dae import *
m = AbstractModel()
m.t = ContinuousSet(bounds=(0,120))
m.T = Param(default=120)
m.S = Var(m.t, bounds=(0,None))
m.Sdot = DerivativeVar(m.S)
m.obj = Objective(expr=m.S[120],sense=maximize)
请注意,目标m.obj
依赖于参数m.T
。尝试运行它会给出错误:
TypeError: unhashable type: 'SimpleParam'
使用一个值,例如expr=m.S[120]
给出错误:
ValueError: Error retrieving component S[120]: The component has not been constructed.
在这两种情况下,我的目标是相同的:优化S
在地平线上的最大可能值。
如何创建表达这一点的抽象模型?