Fix non-bool use of _is_initially_on

add_formulations
Aleksandr Kazachkov 4 years ago
parent baf6d33221
commit 54e1655c6d

@ -17,6 +17,7 @@ function _add_status_vars!(
switch_on = _init(model, :switch_on) switch_on = _init(model, :switch_on)
switch_off = _init(model, :switch_off) switch_off = _init(model, :switch_off)
FIX_VARS = !formulation_status_vars.fix_vars_via_constraint FIX_VARS = !formulation_status_vars.fix_vars_via_constraint
is_initially_on = _is_initially_on(g) > 0
for t in 1:model[:instance].time for t in 1:model[:instance].time
is_on[g.name, t] = @variable(model, binary = true) is_on[g.name, t] = @variable(model, binary = true)
switch_on[g.name, t] = @variable(model, binary = true) switch_on[g.name, t] = @variable(model, binary = true)
@ -37,7 +38,7 @@ function _add_status_vars!(
) )
fix(switch_off[g.name, t], 0.0; force = true) fix(switch_off[g.name, t], 0.0; force = true)
elseif t == 1 elseif t == 1
if _is_initially_on(g) if is_initially_on
# Generator was on (for g.initial_status time periods), # Generator was on (for g.initial_status time periods),
# so cannot be more switched on until the period after the first time it can be turned off # so cannot be more switched on until the period after the first time it can be turned off
fix(switch_on[g.name, 1], 0.0; force = true) fix(switch_on[g.name, 1], 0.0; force = true)
@ -55,7 +56,7 @@ function _add_status_vars!(
(t == 1 ? 1.0 - _is_initially_on(g) : 0.0) (t == 1 ? 1.0 - _is_initially_on(g) : 0.0)
switch_off[g.name, t] = 0.0 switch_off[g.name, t] = 0.0
elseif t == 1 elseif t == 1
if _is_initially_on(g) if is_initially_on
switch_on[g.name, t] = 0.0 switch_on[g.name, t] = 0.0
else else
switch_off[g.name, t] = 0.0 switch_off[g.name, t] = 0.0

Loading…
Cancel
Save