Commit 722b9c94 authored by Niina Helistö's avatar Niina Helistö
Browse files

Adding an equation for constraining the number of online units for a group of units

parent ca095f83
......@@ -60,6 +60,7 @@ Model building /
// Policy
* q_inertiaMin
* q_instantaneousShareMax
* q_constrainedOnlineMultiUnit
* q_capacityMargin
* q_constrainedCapMultiUnit
* q_emissioncap
......
......@@ -61,6 +61,7 @@ Model invest /
// Policy
q_inertiaMin
q_instantaneousShareMax
q_constrainedOnlineMultiUnit
q_capacityMargin
q_constrainedCapMultiUnit
q_emissioncap
......
......@@ -61,6 +61,7 @@ Model schedule /
// Policy
* q_inertiaMin
* q_instantaneousShareMax
q_constrainedOnlineMultiUnit
* q_capacityMargin
* q_constrainedCapMultiUnit
* q_emissioncap
......
......@@ -320,6 +320,8 @@ param_policy "Set of possible data parameters for grid, node, regulation" /
kineticEnergyMin "Minimum system kinetic energy (MWs)"
constrainedCapMultiplier "Multiplier a(i) for unit investments in equation Sum(i, a(i)*v_invest(i)) <= b"
constrainedCapTotalMax "Total maximum b for unit investments in equation Sum(i, a(i)*v_invest(i)) <= b"
constrainedOnlineMultiplier "Multiplier a(i) for online units in equation Sum(i, a(i)*v_online(i)) <= b"
constrainedOnlineTotalMax "Total maximum b for online units in equation Sum(i, a(i)*v_online(i)) <= b"
/
* --- Counters and Directional Sets -------------------------------------------
......
......@@ -82,6 +82,7 @@ equations
// Policy
q_inertiaMin(group, f, t) "Minimum inertia in a group of nodes"
q_instantaneousShareMax(group, f, t) "Maximum instantaneous share of generation and controlled import from a group of units and links"
q_constrainedOnlineMultiUnit(group, f, t) "Constrained number of online units for a group of units"
q_capacityMargin(grid, node, f, t) "There needs to be enough capacity to cover energy demand plus a margin"
q_constrainedCapMultiUnit(group, t) "Constrained unit number ratios and sums for a group of units"
q_emissioncap(group, emission) "Limit for emissions"
......@@ -1528,6 +1529,27 @@ $offtext
;
*--- Constrained Number of Online Units ---------------------------------------
q_constrainedOnlineMultiUnit(group, ft(f, t))${ p_groupPolicy(group, 'constrainedOnlineTotalMax')
or sum(unit$uGroup(unit, group), abs(p_groupPolicy3D(group, 'constrainedOnlineMultiplier', unit))
} ..
// Sum of multiplied online units
+ sum(unit$uGroup(unit, group),
+ p_groupPolicy3D(group, 'constrainedOnlineMultiplier', unit)
* [
+ v_online_LP(unit, f, t)${uft_onlineLP(unit, f, t)}
+ v_online_MIP(unit, f, t)${uft_onlineMIP(unit, f, t)}
] // END * p_groupPolicy3D(group, 'constrainedOnlineMultiplier', unit)
) // END sum(unit)
=L=
// Total maximum of multiplied online units
+ p_groupPolicy(group, 'constrainedOnlineTotalMax')
;
*--- Required Capacity Margin -------------------------------------------------
// !!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Niina needs to check these, currently uses maximum conversion output cap.
......
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