这个问题通过那些心存感激的人的建议得到了解决。
我想使用python进行模拟
在必要的约束中,有一个约束包含max函数。
我用“if”分隔了它。
但是,“if”包含变量,无法执行。
您能告诉我如何在“if”中包含变量或在max中包含变量吗?
==========================================
def comfirststage_rule(model):
if (-model.wind1 - model.discharge[1,1] + model.charge[1,1] + model.bidding[1,1]) <= 0.0 :*
return model.FirstStageCost - model.price[1,1]*model.bidding[1,1] - (model.wind2 +model.discharge[1,1] - model.charge[1,1] - model.bidding[1,1])*model.penalty[1,1] - model.bidding[1,2]*(model.price[1,2] + model.coeffru[1,1]*model.price[1,1]) - model.bidding[1,3]*(model.price[1,3]-model.price[1,1]*model.coeffrd[1,1]) == 0.0
else:
return model.FirstStageCost - model.price[1,1]*model.bidding[1,1] + (model.bidding[1,1]-model.discharge[1,1]+model.charge[1,1]-model.wind1)*model.penalty[1,2] - model.bidding[1,2]*(model.price[1,2] + model.coeffru[1,1]*model.price[1,1]) - model.bidding[1,3]*(model.price[1,3]-model.price[1,1]*model.coeffrd[1,1]) == 0.0
model.comfirststage = Constraint(rule=comfirststage_rule)
产生此错误
ERROR: Rule failed when generating expression for constraint comfirststage: TypeError: Relational expression used in an unexpected Boolean context. The inequality expression: -60 - discharge[1,1] + charge[1,1] + bidding[1,1] <= 0.0