提问者:小点点

Pyomo约束,在达到指定值时将新迭代附加到变量


我在调整Pyomo中的约束时遇到问题。原始约束如下所示:

m.tou = Var(domain=Reals)


def peak_power_rule(m,i):
    return m.pe_c[i] + m.pe_d[i] + load[i]  <=  m.tou   
m.peak_power = Constraint(time, rule=peak_power_rule)

“负荷”是指给定的建筑物每小时用电量数据,而变量m.pe_c是指向电池系统充电的电量,而m.pe_d是指从电池中放电的电量。m、 分时电价是用电量的峰值。[i]的范围是8760(每小时迭代一年的值)。

该约束目前运行良好,但我希望对其进行调整,以便在每次[I]达到730(一个月的小时数)时生成一个新的m.tou[x]
。我每个月要一个新的m.tou[x]。当我在pyomo中进行切片时,我会出错,而我对pyomo的有限知识限制了我在这一点上的发展。

更新:我能够通过增加我有限的知识来解决这个问题。我为每个月创建了一个新变量。


共1个答案

匿名用户

我为每个月创建了一个新变量。下面是一月的一个例子(M. jan)。

Jan_time =time[0:745]
def peak_power_rule_jan(m,i):
   return m.pe_c[i] + m.pe_d[i] + load[i]  <=  m.jan
m.peak_power_jan = Constraint(Jan_time, rule=peak_power_rule_jan)