У меня есть модель Pyomo, которая имеет вид: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
на горизонте.
Как создать абстрактную модель, которая выражает это?