线性优化场景下电池储能优化的光伏(PV)过剩产量约束编写问题
光伏过剩产量约束修复方案
实现逻辑
你需要的核心规则是excess_pv[t] = max(model.pv[t] - model.demand[t], 0),在规划类求解框架中无法直接使用决策变量作为判断条件,可通过变量边界+不等式约束组合线性化实现该逻辑。
操作步骤
- 调整
excess_pv变量定义,指定非负域,从根源避免负值问题:
# 定义过剩光伏变量时添加domain参数,要求取值≥0 model.excess_pv = Var(model.t, domain=NonNegativeReals)
- 替换原有过剩产量约束为两个不等式约束:
def pv_overproduction_lower(model, t): # 过剩量至少为光伏出力减负荷,保证光伏出力足够时过剩量刚好等于差值 return model.excess_pv[t] >= model.pv[t] - model.demand[t] model.pv_overproduction_lower = Constraint(model.t, rule=pv_overproduction_lower) def pv_overproduction_upper(model, t): # 过剩量不超过光伏总出力,避免出现弃电大于发电量的逻辑错误 return model.excess_pv[t] <= model.pv[t] model.pv_overproduction_upper = Constraint(model.t, rule=pv_overproduction_upper)
- 原有负荷覆盖约束无需修改,可直接保留使用。
生效说明
在常规储能优化目标(最小化用电成本、最小化光伏弃电量等)的引导下,约束会自动触发对应场景逻辑:
- 当
model.pv[t] > model.demand[t]时,excess_pv[t]会取最小可行值model.pv[t] - model.demand[t],符合过剩产量计算规则 - 当
model.pv[t] <= model.demand[t]时,excess_pv[t]会取最小可行值0,符合无过剩的场景要求
内容的提问来源于stack exchange,提问作者saschav
相关产品推荐
相关产品推荐

