mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 08:18:51 -06:00
stochastic extension
This commit is contained in:
@@ -8,7 +8,7 @@ function _add_production_piecewise_linear_eqs!(
|
||||
formulation_prod_vars::Gar1962.ProdVars,
|
||||
formulation_pwl_costs::Gar1962.PwlCosts,
|
||||
formulation_status_vars::Gar1962.StatusVars,
|
||||
sc::UnitCommitmentScenario
|
||||
sc::UnitCommitmentScenario,
|
||||
)::Nothing
|
||||
eq_prod_above_def = _init(model, :eq_prod_above_def)
|
||||
eq_segprod_limit = _init(model, :eq_segprod_limit)
|
||||
@@ -27,7 +27,8 @@ function _add_production_piecewise_linear_eqs!(
|
||||
# Equation (43) in Kneuven et al. (2020)
|
||||
eq_prod_above_def[sc.name, gn, t] = @constraint(
|
||||
model,
|
||||
prod_above[sc.name, gn, t] == sum(segprod[sc.name, gn, t, k] for k in 1:K)
|
||||
prod_above[sc.name, gn, t] ==
|
||||
sum(segprod[sc.name, gn, t, k] for k in 1:K)
|
||||
)
|
||||
|
||||
for k in 1:K
|
||||
@@ -40,12 +41,16 @@ function _add_production_piecewise_linear_eqs!(
|
||||
# that segment*
|
||||
eq_segprod_limit[sc.name, gn, t, k] = @constraint(
|
||||
model,
|
||||
segprod[sc.name, gn, t, k] <= g.cost_segments[k].mw[t] * is_on[gn, t]
|
||||
segprod[sc.name, gn, t, k] <=
|
||||
g.cost_segments[k].mw[t] * is_on[gn, t]
|
||||
)
|
||||
|
||||
# Also add this as an explicit upper bound on segprod to make the
|
||||
# solver's work a bit easier
|
||||
set_upper_bound(segprod[sc.name, gn, t, k], g.cost_segments[k].mw[t])
|
||||
set_upper_bound(
|
||||
segprod[sc.name, gn, t, k],
|
||||
g.cost_segments[k].mw[t],
|
||||
)
|
||||
|
||||
# Objective function
|
||||
# Equation (44) in Kneuven et al. (2020)
|
||||
|
||||
Reference in New Issue
Block a user