Equation 'q_resDemandLargestInfeedUnit' with multiple sub-units
Using q_resDemandLargestInfeedUnit
with multiple sub-units can cause unrealistic reserve demand because v_gen
can be greater than the maximum production capacity of one sub-unit. In principle, instead of v_gen
, we should use min(v_gen
, p_gnu(unitSizeGen)
) for those units with multiple sub-units. Is it possible to implement/approximate this without additional binary variables?
One option would be to add a binary variable y
and variable v_gen_limited_to_unitSizeGen
so that v_gen_limited_to_unitSizeGen =G= p_gnu(unitSizeGen) - M*(1 - y)
and v_gen_limited_to_unitSizeGen =G= v_gen - M*y
, and include that in q_resDemandLargestInfeedUnit
, instead of v_gen
, if p_unit(unitCount) + p_unit(maxUnitCount) > 1
.
Another option would be to add a binary variable v_at_least_one_subunit_online =G= v_online / (p_unit(unitCount)+p_unit(maxUnitCount))
, which we would multiply with p_gnu(unitSizeGen)
and include in q_resDemandLargestInfeedUnit
, instead of v_gen
, if p_unit(unitCount) + p_unit(maxUnitCount) > 1
. However, this formulation can cause unrealistic reserve demand in the cases where only one sub-unit is online and that sub-unit is producing below its maximum capacity.