Ramps during start-up and shutdown
The issue has two parts:
If trajectories are not used, equations q_rampUpLimit and q_rampDownLimit constrain the ramping of generation units so that in start-up, ramping is limited according to p_gnu(grid, node, unit, 'maxRampUp'), but in shutdown, p_gnu(grid, node, unit, 'maxRampDown') does not affect and units can shut down from full load during one interval. It is possible that the user gives p_gnu(grid, node, unit, 'maxRampUp') and min. load values that prevent the units from starting up entirely (and Backbone does not give any warning). Is this desired behavior or should the ramp equations be changed so that ramp limits would follow the same logic in start-up and shutdown, for example, units would be able to start up to full load and shut down from full load during one interval? (Consumption units should be checked as well.)
Equations q_rampUpDown and q_rampSlack take care that costs caused by ramping are calculated properly. However, it is unclear how to calculate costs when the unit is starting up or shutting down. Start-up causes costs according to p_uStartup(unit, starttype, 'cost') and shutdown causes costs according to p_uShutdown(unit, 'cost'), but currently, the ramp that happens when the unit starts up or shuts down also causes costs according to p_gnuBoundaryProperties(grid, node, unit, slack, 'rampCost'). Should the ramping costs be considered only when the unit is in 'normal operation'? Moreover, trajectories are not taken into account properly in q_rampSlack.