Pyomo 非线性约束到线性

问题描述 投票:0回答:0

作为电池存储收益最大化模型的一部分,我正在尝试对以下非线性约束进行建模,该约束根据电池当前的充电状态计算电池向系统输送的实际能量:

此处 '$E_{act,m}、E_{exp,m} 和 SOC_{m}$' 是用于计算电池收益的中间模型变量。其他数量是其值已知的模型参数。

当我尝试线性化模型时,我使用的是大 M 方法,如下所示:

def E_act_m(model, m):
    yield model.E_act_m[m] >= model.E_exp_m[m] - M * (1 - model.b1)
    yield model.E_act_m[m] >= 0.01 * (model.SOC_min - model.SOC_m[m]) * model.E_rated - M * (1 - model.b1)
    yield model.E_act_m[m] <= model.E_exp_m[m] + M * (1 - model.b2)
    yield model.E_act_m[m] <= 0.01 * (model.SOC_max - model.SOC_m[m]) * model.E_rated + M * (1 - model.b2)
    yield model.b1 + model.b2 == 1
model.E_act = pyo.Constraint (model.m, rule=E_act_m)    

其中 b1 和 b2 是二进制变量。我不确定实施情况。有人可以建议方法吗?

linear-programming pyomo
© www.soinside.com 2019 - 2024. All rights reserved.