我正在使用pyomo构建能量存储优化模型,并且试图在其中构建分段线性表达式。我是python和pyomo的新手,所以我非常感谢您的帮助。
我想对模型添加约束,该约束仅适用于决策变量的正值。
到目前为止,该约束是:
def constraint_storage_level(model,t):
return model.Q[t] == (model.Q[t-1]*model.loss) + model.q_net[t]*model.loss_dyn[t]*model.COP_factor[t]
这个想法是model.loss_dyn[t]
仅适用于肯定的model.q_net[t]
我认为我需要在这里使用分段线性表达式作为模型线性。
我已经找到该文档:https://pyomo.readthedocs.io/en/stable/pyomo_modeling_components/Expressions.html。
有人知道如何进行吗?
这是到目前为止我试图包括的内容:
model.T = RangeSet(0, 35039)
model.q_net = Var(model.T, domain=Reals, bounds=(-100,100))
domain = [-100.,0.,0.,100]
f = [1., 1., 0.95, 0.95]
model.loss_dyn = Piecewise(model.T, model.q_net,
pw_pts=domain,
pw_constr_type='EQ',
f_rule=f,
pw_repn='INC',
unbounded_domain_var=True)
谢谢!