Commit 4ec260f2 authored by Erkka Rinne's avatar Erkka Rinne
Browse files

Merge branch 'dev' into 46-add-sample-dimesionsion

# Conflicts:
#	inc/1e_inputs.gms
parents b621949a 661a9261
......@@ -376,7 +376,8 @@ restypeDirectionNode(restypeDirection(restype, up_down), node)
}
= yes;
// Assume values for critical reserve related parameters, if not provided by input data
* --- Correct values for critical reserve related parameters ------------------
// Reserve reliability assumed to be perfect if not provided in data
p_nuReserves(nu(node, unit), restype, 'reserveReliability')
${ not p_nuReserves(node, unit, restype, 'reserveReliability')
......@@ -384,6 +385,15 @@ p_nuReserves(nu(node, unit), restype, 'reserveReliability')
}
= 1;
// Reserve provision overlap decreases the capacity of the overlapping category
p_nuReserves(nu(node, unit), restype, up_down)
${ nuRescapable(restype, up_down, node, unit) }
= p_nuReserves(node, unit, restype, up_down)
- sum(restype_${ p_nuRes2Res(node, unit, restype_, up_down, restype) },
+ p_nuReserves(node, unit, restype_, up_down)
* p_nuRes2Res(node, unit, restype_, up_down, restype)
); // END sum(restype_)
* =============================================================================
* --- Data Integrity Checks ---------------------------------------------------
* =============================================================================
......@@ -462,7 +472,7 @@ loop( unitStarttype(unit, starttypeConstrained),
);
);
* --- Check reserve structure data --------------------------------------------
* --- Check reserve related data ----------------------------------------------
// Check that reserve_length is long enough for properly commitment of reserves
loop( restypeDirectionNode(restype, up_down, node),
......@@ -473,6 +483,15 @@ loop( restypeDirectionNode(restype, up_down, node),
); // END if
); // END loop(restypeDirectionNode)
// Check that reserve overlaps are possible
loop( (nu(node, unit), restypeDirection(restype, up_down)),
if( p_nuReserves(node, unit, restype, up_down) < 0,
put log '!!! Error occurred on unit ', unit.tl:0 /;
put log '!!! Abort: Overlapping reserve capacities in p_nuRes2Res can result in excess reserve production!' /;
abort "Overlapping reserve capacities in p_nuRes2Res can result in excess reserve production!"
); // END if(p_nuReserves)
); // END loop((nu,restypeDirection))
* =============================================================================
* --- Default values ---------------------------------------------------------
......@@ -483,5 +502,3 @@ loop((gn(grid, node), timeseries),
p_tsMinValue(node, timeseries) = -Inf;
p_tsMaxValue(node, timeseries) = Inf;
);
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