Commit 6aa15417 authored by ran li's avatar ran li Committed by ran li
Browse files

Ciara's codes:minCons constraint allows to set the min load for PHS while...

Ciara's codes:minCons constraint allows to set the min load for PHS while still allowing foll reserve
parent 44adb98f
......@@ -23,7 +23,7 @@ Model schedule /
q_obj
q_balance
q_resDemand
* q_resDemandLargestInfeedUnit
q_resDemandLargestInfeedUnit
// Unit Operation
q_maxDownward
......@@ -79,7 +79,7 @@ Model schedule /
* q_emissioncap
* q_energyShareMax
* q_energyShareMin
q_minCons
$ifthen exist '%input_dir%/schedule_additional_constraints.gms'
$$include '%input_dir%/schedule_additional_constraints.gms' // Declare additional constraints from the input data
$endif
......
......@@ -352,6 +352,7 @@ param_policy "Set of possible data parameters for grid, node, regulation" /
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"
minCons "minimum consumption of storage unit when charging"
// Reserve related parameters, currently without a proper parameter set
update_frequency "Frequency of updating reserve contributions"
update_offset "Optional offset for delaying the reserve update frequency"
......
......@@ -109,4 +109,5 @@ equations
q_emissioncap(group, emission) "Limit for emissions"
q_energyShareMax(group) "Maximum energy share of generation and import from a group of units"
q_energyShareMin(group) "Minimum energy share of generation and import from a group of units"
q_minCons(group, grid, node, unit, s, f, t) "Minimum consumption of storage unit when charging"
;
......@@ -2499,6 +2499,39 @@ q_energyShareMin(group)
;
*--- Minimum Consumption ----------------------------------------------------------
q_minCons(group, gnu(grid, node, unit), sft(s, f, t))${ p_groupPolicy(group, 'minCons')
and p_gnu(grid, node, unit, 'unitSizeCons')
and gnuGroup(grid, node, unit, group)
} ..
// Consumption of units
- sum(gnu_input(grid, node, unit)${ p_gnu(grid, node, unit, 'unitSizeCons')
and gnuGroup(grid, node, unit, group)
},
[
+ v_gen(grid, node, unit, s, f, t)
]
/[
+ p_gnu(grid, node, unit, 'unitSizeCons')
]
) // END sum(gnu)
// unit online state * minimum consumption
+ sum(gnuGroup(grid, node, unit, group)${ p_gnu(grid, node, unit, 'unitSizeCons')
},
- p_groupPolicy(group, 'minCons')
* [
+ v_online_LP(unit, s, f+df_central(f,t), t)${uft_onlineLP(unit, f, t)}
+ v_online_MIP(unit, s, f+df_central(f,t), t)${uft_onlineMIP(unit, f, t)}
]
)
=G=
0
;
$ifthen exist '%input_dir%/additional_constraints.inc'
$$include '%input_dir%/additional_constraints.inc'
$endif
......@@ -118,7 +118,7 @@ Option clear = q_constrainedCapMultiUnit;
Option clear = q_emissioncap;
Option clear = q_energyShareMax;
Option clear = q_energyShareMin;
Option clear = q_minCons;
* --- Temporary Time Series ---------------------------------------------------
......
Markdown is supported
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