Commit 5f74e625 authored by Niina Helistö's avatar Niina Helistö
Browse files

Removing redundant constraint equation q_noReserveInRunUp.

parent bb9f1aad
......@@ -26,7 +26,6 @@ Model invest /
// Unit Operation
q_maxDownward
q_noReserveInRunUp
q_maxUpward
q_startshut
q_startuptype
......
......@@ -26,7 +26,6 @@ Model schedule /
// Unit Operation
q_maxDownward
* q_noReserveInRunUp
q_maxUpward
q_startshut
q_startuptype
......
......@@ -82,7 +82,6 @@ v_invest_MIP
// Unit Operation
q_maxDownward
q_noReserveInRunUp
q_maxUpward
q_startshut
q_startuptype
......
......@@ -47,7 +47,6 @@ equations
// Unit Operation
q_maxDownward(mType, grid, node, unit, f, t) "Downward commitments will not undercut power plant minimum load constraints or maximum elec. consumption"
q_noReserveInRunUp(mType, grid, node, unit, f, t)
q_maxUpward(mType, grid, node, unit, f, t) "Upward commitments will not exceed maximum available capacity or consumed power"
q_startshut(mType, unit, f, t) "Online cap. now minus online cap in the previous time step is equal to started up minus shut down capacity"
q_startuptype(mType, starttype, unit, f, t) "Startup type depends on the time the unit has been non-operational"
......
......@@ -223,37 +223,6 @@ q_maxDownward(m, gnuft(grid, node, unit, f, t))${ [ ord(t) < tSolveFirst + m
] // END * p_unit(availability)
;
// Not sure if this is needed because we already have q_maxDownward
q_noReserveInRunUp(m, gnuft(grid, node, unit, f, t))$[ ord(t) < tSolveFirst + mSettings(m, 't_reserveLength') // Unit is both providing
and sum(restype, nuRescapable(restype, 'up', node, unit)) // upward reserves
and p_u_runUpTimeIntervals(unit) // and unit has run up constraint
]..
v_gen(grid, node, unit, f, t)
=G=
+ p_gnu(grid, node, unit, 'unitSizeGen')
* sum(t_activeNoReset(t_)$(ord(t_) > ord(t) + dt_toStartup(unit, t) and ord(t_) <= ord(t) and uft_online(unit, f, t_)),
+ sum(unitStarttype(unit, starttype),
+ v_startup(unit, starttype, f+df_central(f,t), t_) * sum(t__${ord(t__) = ord(t) - ord(t_) + 1}, p_ut_runUp(unit, t__)) //t+dtt(t,t_)
)
)$p_u_runUpTimeIntervals(unit)
$ontext
p_nuReserves(node, unit, resType, 'up')
* (
+ p_unit(unit, 'unitCount')
+ sum(t_invest(t_)${ ord(t_)<=ord(t) },
+ v_invest_LP(unit, t_)${unit_investLP(unit)} // NOTE! v_invest_LP also for consuming units is positive
+ v_invest_MIP(unit, t_)${unit_investMIP(unit)} // NOTE! v_invest_MIP also for consuming units is positive
) // END sum(t_invest)
- sum(t_$(ord(t_) >= ord(t) + dt_toStartup(unit, t) and ord(t_) < ord(t) and uft_online(unit, f, t_)),
+ sum(unitStarttype(unit, starttype),
+ v_startup(unit, starttype, f+df_central(f,t), t_)
)
)
) * p_gnu(grid, node, unit, 'unitSizeGen')
$offtext
;
* --- Maximum Upwards Capacity ------------------------------------------------
q_maxUpward(m, gnuft(grid, node, unit, f, t))${ [ ord(t) < tSolveFirst + mSettings(m, 't_reserveLength') // Unit is either providing
......
......@@ -62,7 +62,6 @@ $iftheni.debug NOT '%debug%' == 'yes'
// Unit Operation
Option clear = q_maxDownward;
Option clear = q_noReserveInRunUp;
Option clear = q_maxUpward;
Option clear = q_startshut;
Option clear = q_startuptype;
......
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