added commitment status to thermal

This commit is contained in:
Jun He
2023-04-22 14:02:03 -04:00
parent b71a1c3d5f
commit baf529a15d
5 changed files with 43 additions and 1 deletions

View File

@@ -61,6 +61,7 @@ function _add_unit_dispatch!(
sc,
)
_add_startup_shutdown_limit_eqs!(model, g, sc)
_add_commitment_status_eqs!(model, g, sc)
return
end
@@ -270,6 +271,26 @@ function _add_min_uptime_downtime_eqs!(
end
end
function _add_commitment_status_eqs!(
model::JuMP.Model,
g::ThermalUnit,
sc::UnitCommitmentScenario,
)::Nothing
is_on = model[:is_on]
T = model[:instance].time
eq_commitment_status = _init(model, :eq_commitment_status)
for t in 1:T
# Fix commitment status
if g.commitment_status[t] !== nothing
eq_commitment_status[sc.name, g.name, t] = @constraint(
model,
is_on[g.name, t] == (g.commitment_status[t] ? 1.0 : 0.0)
)
end
end
return
end
function _add_net_injection_eqs!(
model::JuMP.Model,
g::ThermalUnit,