PYOMO:约束没有合适的值

PYOMO: Constraint does not have a proper value

我对 pyomo 和 python 还很陌生,所以这可能是一个非常愚蠢的错误。 我想要做的事情的要点:
我有一个需求数组,每个时间步都有一个需求值。购买的电力加上 CHP 提供的电力应等于每个时间步长的需求。 (这就是我试图对约束所做的)。 运行 它会导致以下错误:

ValueError: Constraint 'ElPowerBalanceEq' does not have a proper value. Found '<generator object ElPowerBalance.<locals>.<genexpr> at 0x000001BBF81DC040>'
Expecting a tuple or equation. Examples:
   sum(model.costs) == model.income
   (0, model.price[item], 50)

这是相关代码。 提前致谢:-)

from pyomo.environ import*
import numpy as np

t = np.linspace(0,24,97) #time variable, one day in 0.25 steps
model.i=range(t.size) #index

model.Pel_buy = Var(within=PositiveReals) #electrical power bought
model.Pel_chp = Var(within=PositiveReals) #electrical power of chp

Del = 2+2*np.exp(-(t-12)**2/8**2) #demand electrical

#Define constraints

#Power Balance
def ElPowerBalance(model) :
    return (model.Pel_chp[i] + model.Pel_buy[i] == Del[i] for i in model.i)
model.ElPowerBalanceEq = Constraint(rule = ElPowerBalance)

您的 ElPowerBalance() 函数是 return 生成器对象,因为您的 return 值包含在括号中(python 解释为生成器)。最简单的解决方案是使用 * 运算符解压生成器,如下所示:

def ElPowerBalance(model) :
    return *(model.Pel_chp[i] + model.Pel_buy[i] == Del[i] for i in model.i)