mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-07 00:38:51 -06:00
added commitment status to thermal
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user