u
和y
是变量,T
是常量。 i
是一个集合,每个i
对应于一个t
的范围,每个t
构成一个不同的k
范围。如何在pyomo
中写这个约束?
这就是我的想法:
tRange = []
for i in self.unitSet:
tRange.append([j for j in range(self.G[i] + 1, self.T + 1)])
def start_time_rule(model, i, t):
return sum(model.y[i, k] for k in range(max(t - self.unitData.loc[i, "MinOnTime"] + 1, 1), t + 1)) <= model.u[i, t]
self.model.startTime = pe.Constraint(self.model.i, tRange[], rule=start_time_rule)
首先,我找出与每个i
相关的t的范围。当我创建约束时,我
无法使用i
选择t
的范围,因此最后一行代码有错误。
我的英语不是很好,我希望我已经说清楚了。预先感谢