Commit 116c7262 authored by Niina Helistö's avatar Niina Helistö
Browse files

Fixing a bug in ramp tier limits: For units with shutdown trajectories, the...

Fixing a bug in ramp tier limits: For units with shutdown trajectories, the ramp tier limit was twofold at the interval when the shutdown begins.
parent bdbfedc2
...@@ -1182,7 +1182,7 @@ q_rampSlack(ms(m, s), gnuft_rampCost(grid, node, unit, slack, f, t)) ...@@ -1182,7 +1182,7 @@ q_rampSlack(ms(m, s), gnuft_rampCost(grid, node, unit, slack, f, t))
* p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit') * p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit')
* 60 // Unit conversion from [p.u./min] to [p.u./h] * 60 // Unit conversion from [p.u./min] to [p.u./h]
// Shutdown of units from above min. load // Shutdown of units from above min. load and ramping happening during the first interval of the shutdown trajectory (commented out in the other v_shutdown term below)
+ [ + [
+ v_shutdown_LP(unit, s, f, t) + v_shutdown_LP(unit, s, f, t)
${ uft_onlineLP(unit, f, t) } ${ uft_onlineLP(unit, f, t) }
...@@ -1222,7 +1222,7 @@ q_rampSlack(ms(m, s), gnuft_rampCost(grid, node, unit, slack, f, t)) ...@@ -1222,7 +1222,7 @@ q_rampSlack(ms(m, s), gnuft_rampCost(grid, node, unit, slack, f, t))
${ uft_onlineMIP_withPrevious(unit, f+df(f, t+dt_trajectory(counter)), t+dt_trajectory(counter)) } ${ uft_onlineMIP_withPrevious(unit, f+df(f, t+dt_trajectory(counter)), t+dt_trajectory(counter)) }
] ]
* [ * [
+ p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit')${ not shutdownCounter(unit, counter-1) } // Note that ramping happening during shutdown trajectory when ord(counter) = 1 is considered 'normal ramping' and causes ramping costs //+ p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit')${ not shutdownCounter(unit, counter-1) } // Note that ramping happening during shutdown trajectory when ord(counter) = 1 is considered 'normal ramping' and causes ramping costs (calculated above in the other v_shutdown term)
+ p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit')${ shutdownCounter(unit, counter-1) and not shutdownCounter(unit, counter-2) } // Ramp speed adjusted for the first shutdown interval + p_gnuBoundaryProperties(grid, node, unit, slack, 'rampLimit')${ shutdownCounter(unit, counter-1) and not shutdownCounter(unit, counter-2) } // Ramp speed adjusted for the first shutdown interval
* ( p_u_shutdownTimeIntervalsCeil(unit) - p_u_shutdownTimeIntervals(unit) ) * ( p_u_shutdownTimeIntervalsCeil(unit) - p_u_shutdownTimeIntervals(unit) )
] ]
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment