利用Gurobi对储能进行建模
利用Gurobi求解电力系统的优化问题,在构建储能的充放电过程时遇到问题。
定义变量:
ESS = model.addVars(1, T, vtype=GRB.CONTINUOUS, name="ESS")
for t in range(T):
ESS[0, t].setAttr(GRB.Attr.LB, -100) # 小于0放电
ESS[0, t].setAttr(GRB.Attr.UB, 100) # 大于0充电
SOC = model.addVars(1, T, lb=0.2, ub=1.0, vtype=GRB.CONTINUOUS, name="SOC")
约束条件按照下面的方式构建可以求解:
for t in range(T):
if t == 0:
model.addConstr(SOC[0, 0] == SOC_init, name="initial_soc")
else:
model.addConstr(SOC[0, t] == SOC[0, t - 1] + ESS[0, t] / 400, name="charge_soc")
约束条件按照下面这个方式设置则无法求解:
for t in range(T):
if t == 0:
model.addConstr(SOC[0, 0] == SOC_init, name="initial_soc")
else:
if ESS[0, t] >= 0.0:
model.addConstr(SOC[0, t] == SOC[0, t - 1] + ESS[0, t] * 0.95 / 400, name="charge_soc")
else:
model.addConstr(SOC[0, t] == SOC[0, t - 1] + ESS[0, t] / (0.95 * 400), name="discharge_soc")
实际充放电模型是下面这种方式,如何可以解决这个问题?