Commit 91b43688 authored by Juha Kiviluoma's avatar Juha Kiviluoma
Browse files

Merge branch 'RPG_conf_paper' into dev

parents dc541580 19205f40
...@@ -17,12 +17,10 @@ loop(unit${r_invest(unit)}, ...@@ -17,12 +17,10 @@ loop(unit${r_invest(unit)},
tmp = round(r_invest(unit), 0) tmp = round(r_invest(unit), 0)
put "p_unit('", unit.tl, "', 'unitCount') = p_unit('", unit.tl, "', 'unitCount') + ", tmp, ";"/; put "p_unit('", unit.tl, "', 'unitCount') = p_unit('", unit.tl, "', 'unitCount') + ", tmp, ";"/;
); );
* Update maxGen and maxCons values in the child setups * Update capacity values in the child setups
loop(gnu(grid, node, unit)${r_invest(unit)}, loop(gnu(grid, node, unit)${r_invest(unit)},
tmp = round(r_invest(unit), 0) * p_gnu(grid, node, unit, 'unitSizeGen'); tmp = round(r_invest(unit), 0) * p_gnu(grid, node, unit, 'unitSize');
put "p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'maxGen') = p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'maxGen') + ", tmp, ";"/; put "p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'capacity') = p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'capacity') + ", tmp, ";"/;
tmp = round(r_invest(unit), 0) * p_gnu(grid, node, unit, 'unitSizeCons');
put "p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'maxCons') = p_gnu('", grid.tl, "', '", node.tl, "', '", unit.tl, "', 'maxCons') + ", tmp, ";"/;
); );
* Do not allow investments in the child setups (commented out at the moment) * Do not allow investments in the child setups (commented out at the moment)
......
...@@ -47,18 +47,18 @@ Model building / ...@@ -47,18 +47,18 @@ Model building /
* q_genRampChange * q_genRampChange
* q_rampUpLimit * q_rampUpLimit
* q_rampDownLimit * q_rampDownLimit
* q_outputRatioFixed
* q_outputRatioConstrained
q_conversionDirectInputOutput q_conversionDirectInputOutput
* q_conversionSOS2InputIntermediate * q_conversionSOS2InputIntermediate
* q_conversionSOS2Constraint * q_conversionSOS2Constraint
* q_conversionSOS2IntermediateOutput * q_conversionSOS2IntermediateOutput
* q_conversionIncHR * q_conversionIncHR
* q_conversionIncHRMaxGen * q_conversionIncHRMaxOutput
* q_conversionIncHRBounds * q_conversionIncHRBounds
* q_conversionIncHR_help1 * q_conversionIncHR_help1
* q_conversionIncHR_help2 * q_conversionIncHR_help2
* q_fuelUseLimit * q_unitEqualityConstraint
* q_unitGreaterThanConstraint
* q_commodityUseLimit
// Energy Transfer // Energy Transfer
q_transfer q_transfer
......
...@@ -47,18 +47,18 @@ Model invest / ...@@ -47,18 +47,18 @@ Model invest /
q_rampDownLimit q_rampDownLimit
q_rampUpDown q_rampUpDown
q_rampSlack q_rampSlack
q_outputRatioFixed
q_outputRatioConstrained
q_conversionDirectInputOutput q_conversionDirectInputOutput
q_conversionSOS2InputIntermediate q_conversionSOS2InputIntermediate
q_conversionSOS2Constraint q_conversionSOS2Constraint
q_conversionSOS2IntermediateOutput q_conversionSOS2IntermediateOutput
q_conversionIncHR q_conversionIncHR
q_conversionIncHRMaxGen q_conversionIncHRMaxOutput
q_conversionIncHRBounds q_conversionIncHRBounds
q_conversionIncHR_help1 q_conversionIncHR_help1
q_conversionIncHR_help2 q_conversionIncHR_help2
q_fuelUseLimit q_unitEqualityConstraint
q_unitGreaterThanConstraint
* q_commodityUseLimit
// Energy Transfer // Energy Transfer
q_transfer q_transfer
......
...@@ -41,24 +41,24 @@ Model schedule / ...@@ -41,24 +41,24 @@ Model schedule /
q_onlineOnStartUp q_onlineOnStartUp
q_offlineAfterShutDown q_offlineAfterShutDown
q_onlineMinUptime q_onlineMinUptime
* q_onlineCyclic * q_onlineCyclic
q_genRamp q_genRamp
q_rampUpLimit q_rampUpLimit
q_rampDownLimit q_rampDownLimit
q_rampUpDown q_rampUpDown
q_rampSlack q_rampSlack
q_outputRatioFixed
q_outputRatioConstrained
q_conversionDirectInputOutput q_conversionDirectInputOutput
q_conversionSOS2InputIntermediate q_conversionSOS2InputIntermediate
q_conversionSOS2Constraint q_conversionSOS2Constraint
q_conversionSOS2IntermediateOutput q_conversionSOS2IntermediateOutput
q_conversionIncHR q_conversionIncHR
q_conversionIncHRMaxGen q_conversionIncHRMaxOutput
q_conversionIncHRBounds q_conversionIncHRBounds
q_conversionIncHR_help1 q_conversionIncHR_help1
q_conversionIncHR_help2 q_conversionIncHR_help2
q_fuelUseLimit q_unitEqualityConstraint
q_unitGreaterThanConstraint
* q_commodityUseLimit
// Energy Transfer // Energy Transfer
q_transfer q_transfer
...@@ -80,7 +80,7 @@ Model schedule / ...@@ -80,7 +80,7 @@ Model schedule /
q_inertiaMin q_inertiaMin
q_instantaneousShareMax q_instantaneousShareMax
q_constrainedOnlineMultiUnit q_constrainedOnlineMultiUnit
* q_capacityMargin q_capacityMargin
* q_constrainedCapMultiUnit * q_constrainedCapMultiUnit
* q_emissioncap * q_emissioncap
* q_energyShareMax * q_energyShareMax
......
...@@ -130,7 +130,7 @@ if (mType('schedule'), ...@@ -130,7 +130,7 @@ if (mType('schedule'),
mTimeseries_loop_read('schedule', 'ts_cf') = no; mTimeseries_loop_read('schedule', 'ts_cf') = no;
mTimeseries_loop_read('schedule', 'ts_reserveDemand') = no; mTimeseries_loop_read('schedule', 'ts_reserveDemand') = no;
mTimeseries_loop_read('schedule', 'ts_node') = no; mTimeseries_loop_read('schedule', 'ts_node') = no;
mTimeseries_loop_read('schedule', 'ts_fuelPriceChange') = no; mTimeseries_loop_read('schedule', 'ts_priceChange') = no;
mTimeseries_loop_read('schedule', 'ts_unavailability') = no; mTimeseries_loop_read('schedule', 'ts_unavailability') = no;
// Define Realized and Central forecasts // Define Realized and Central forecasts
......
...@@ -49,13 +49,12 @@ p_gnuReserves ...@@ -49,13 +49,12 @@ p_gnuReserves
p_gnPolicy p_gnPolicy
p_groupPolicy p_groupPolicy
p_groupPolicy3D p_groupPolicy3D
p_fuelEmission p_nEmission
p_uFuel p_unitEmissionCost
p_unitFuelEmissionCost
p_effUnit p_effUnit
p_effGroupUnit p_effGroupUnit
p_uNonoperational p_uNonoperational
p_uStartup p_uStartupfuel
p_u_maxOutputInLastRunUpInterval p_u_maxOutputInLastRunUpInterval
p_u_runUpTimeIntervals p_u_runUpTimeIntervals
dt_toStartup dt_toStartup
...@@ -74,7 +73,6 @@ v_gen_inc ...@@ -74,7 +73,6 @@ v_gen_inc
v_genRamp v_genRamp
v_transfer v_transfer
v_state v_state
v_fuelUse
v_sos2 v_sos2
v_spill v_spill
v_online_LP v_online_LP
...@@ -123,18 +121,18 @@ v_help_inc ...@@ -123,18 +121,18 @@ v_help_inc
q_rampDownLimit q_rampDownLimit
q_rampUpDown q_rampUpDown
q_rampSlack q_rampSlack
q_outputRatioFixed
q_outputRatioConstrained
q_conversionDirectInputOutput q_conversionDirectInputOutput
q_conversionSOS2InputIntermediate q_conversionSOS2InputIntermediate
q_conversionSOS2Constraint q_conversionSOS2Constraint
q_conversionSOS2IntermediateOutput q_conversionSOS2IntermediateOutput
q_conversionIncHR q_conversionIncHR
q_conversionIncHRMaxGen q_conversionIncHRMaxOutput
q_conversionIncHRBounds q_conversionIncHRBounds
q_conversionIncHR_help1 q_conversionIncHR_help1
q_conversionIncHR_help2 q_conversionIncHR_help2
q_fuelUseLimit q_unitEqualityConstraint
q_unitGreaterThanConstraint
* q_commodityUseLimit
// Energy Transfer // Energy Transfer
q_transfer q_transfer
...@@ -142,6 +140,8 @@ v_help_inc ...@@ -142,6 +140,8 @@ v_help_inc
q_transferLeftwardLimit q_transferLeftwardLimit
q_resTransferLimitRightward q_resTransferLimitRightward
q_resTransferLimitLeftward q_resTransferLimitLeftward
q_reserveProvisionRightward
q_reserveProvisionLeftward
// State Variables // State Variables
q_stateSlack q_stateSlack
...@@ -159,6 +159,7 @@ v_help_inc ...@@ -159,6 +159,7 @@ v_help_inc
q_emissioncap q_emissioncap
q_energyShareMax q_energyShareMax
q_energyShareMin q_energyShareMin
q_ReserveShareMax
* Dummy variables * Dummy variables
vq_gen vq_gen
......
...@@ -125,12 +125,18 @@ Sets ...@@ -125,12 +125,18 @@ Sets
cc(counter) "Temporary subset of counter used for calculations" cc(counter) "Temporary subset of counter used for calculations"
// Directional Sets // Directional Sets
up_down "Direction set used by some variables, e.g. reserve provisions and generation ramps" input_output "Designating nodes as either inputs or outputs"
/ up, down / / input, output /
inc_dec "Increase or decrease in dummy, or slack variables" inc_dec "Increase or decrease in dummy, or slack variables"
/ increase, decrease / / increase, decrease /
min_max "Minimum and maximum" min_max "Minimum and maximum"
/ min, max / / min, max /
constraint "Possible names for constraints"
/ eq1*eq9, gt1*gt9 /
eq_constraint(constraint) "Equality constraints"
/ eq1*eq9 /
gt_constraint(constraint) "Greater than constraints"
/ gt1*gt9 /
* --- Model Feature Sets ------------------------------------------------------ * --- Model Feature Sets ------------------------------------------------------
...@@ -165,8 +171,8 @@ Sets ...@@ -165,8 +171,8 @@ Sets
ts_cf ts_cf
ts_reserveDemand ts_reserveDemand
ts_node ts_node
ts_fuelPriceChange ts_priceChange
ts_fuelPrice ts_price
ts_unavailability ts_unavailability
/ /
...@@ -205,6 +211,7 @@ Sets ...@@ -205,6 +211,7 @@ Sets
* --- Parameter Data Related Sets --------------------------------------------- * --- Parameter Data Related Sets ---------------------------------------------
param_gn "Possible parameters for grid, node" / param_gn "Possible parameters for grid, node" /
nodeBalance "A flag to decide whether node balance constraint is to be used"
selfDischargeLoss "Self discharge rate of the node (MW/[v_state])" selfDischargeLoss "Self discharge rate of the node (MW/[v_state])"
energyStoredPerUnitOfState "A possible unit conversion if v_state uses something else than MWh (MWh/[v_state])" energyStoredPerUnitOfState "A possible unit conversion if v_state uses something else than MWh (MWh/[v_state])"
boundStart "A flag to bound the first t in the run using reference constant or time series" boundStart "A flag to bound the first t in the run using reference constant or time series"
...@@ -248,22 +255,19 @@ param_gnn "Set of possible data parameters for grid, node, node (nodal interconn ...@@ -248,22 +255,19 @@ param_gnn "Set of possible data parameters for grid, node, node (nodal interconn
invCost "Investment cost (EUR/MW)" invCost "Investment cost (EUR/MW)"
annuity "Investment annuity" annuity "Investment annuity"
portion_of_transfer_to_reserve "Portion to cover incase fail" portion_of_transfer_to_reserve "Portion to cover incase fail"
ICrampUp
ICrampDown
/ /
param_gnu "Set of possible data parameters for grid, node, unit" / param_gnu "Set of possible data parameters for grid, node, unit" /
maxGen "Maximum output capacity (MW)" capacity "Maximum capacity (MW)"
maxCons "Maximum loading capacity (MW)" conversionCoeff "Coefficient for conversion equation (multiplies each input or output when summing v_gen from multiple inputs/outputs)"
useInitialGeneration "A flag to indicate whether to fix generation for the first time step (binary)" useInitialGeneration "A flag to indicate whether to fix generation for the first time step (binary)"
initialGeneration "Initial generation/consumption of the unit in the first time step (MW)" initialGeneration "Initial generation/consumption of the unit in the first time step (MW)"
conversionFactor "Conversion factor for inputs or outputs (for changing the unit of measurement)"
doNotOutput "Flag for inputs that are not included in the output commodities"
cV "Reduction in primary output when increasing secondary output, e.g. reduction of electricity generation due to heat generation in extraction CHP (MWh_e/MWh_h)"
maxRampUp "Speed to ramp up (p.u./min)" maxRampUp "Speed to ramp up (p.u./min)"
maxRampDown "Speed to ramp down (p.u./min)" maxRampDown "Speed to ramp down (p.u./min)"
upperLimitCapacityRatio "Ratio of the upper limit of the node state and the unit capacity investment ([v_state]/MW)" upperLimitCapacityRatio "Ratio of the upper limit of the node state and the unit capacity investment ([v_state]/MW)"
unitSizeGen "Output capacity of one subunit for integer investments (MW)" unitSize "Input/Output capacity of one subunit for integer investments (MW)"
unitSizeCons "Loading capacity of one subunit for integer investments (MW)"
unitSizeTot "Sum of output and loading capacity of one subunit (MW)"
invCosts "Investment costs (EUR/MW)" invCosts "Investment costs (EUR/MW)"
annuity "Investment annuity factor" annuity "Investment annuity factor"
fomCosts "Fixed operation and maintenance costs (EUR/MW/a)" fomCosts "Fixed operation and maintenance costs (EUR/MW/a)"
...@@ -327,20 +331,18 @@ param_eff "Parameters used for unit efficiency approximations" / ...@@ -327,20 +331,18 @@ param_eff "Parameters used for unit efficiency approximations" /
slope "Heat rate parameter representing no-load fuel consumption" slope "Heat rate parameter representing no-load fuel consumption"
/ /
param_fuel "Parameters for fuels" / param_constraint "Parameters for constraints" /
main "Main fuel of the unit - unless input fuels defined as grids" constant "Constant when binding inputs/outputs"
startup "Startup fuel of the unit, if exists. Can be the same as main fuel - consumption using startupFuelCons" coefficient "Coefficient when binding inputs/outputs"
/ /
param_fuelPrice "Paramters for fuel prices" / param_price "Parameters for commodity prices" /
fuelPrice "Fuel price (EUR/MWh)" price "Commodity price (EUR/MWh)"
useConstant "Flag to use constant data for fuels" useConstant "Flag to use constant data for commodities"
useTimeSeries "Flag to use time series form data for fuels" useTimeSeries "Flag to use time series form data for commodities"
/ /
param_unitFuel "Parameters for fuel limits in units" / param_unitStartupfuel "Parameters for startup fuel limits in units" /
maxFuelCons "Maximum absolute fuel consumption in a unit - not used for start-up fuels"
maxFuelFraction "Maximum share of a fuel in the consumption mix" //only for main fuels
fixedFuelFraction "Fixed share of a fuel in the consumption mix" //only for start-up fuels fixedFuelFraction "Fixed share of a fuel in the consumption mix" //only for start-up fuels
/ /
...@@ -362,6 +364,7 @@ param_policy "Set of possible data parameters for groups or grid, node, regulati ...@@ -362,6 +364,7 @@ param_policy "Set of possible data parameters for groups or grid, node, regulati
update_offset "Optional offset for delaying the reserve update frequency" update_offset "Optional offset for delaying the reserve update frequency"
gate_closure "Number of timesteps ahead of dispatch that reserves are fixed" gate_closure "Number of timesteps ahead of dispatch that reserves are fixed"
* use_time_series "Flag for using time series data. !!! REDUNDANT WITH useTimeseries, PENDING REMOVAL !!!" * use_time_series "Flag for using time series data. !!! REDUNDANT WITH useTimeseries, PENDING REMOVAL !!!"
useTimeSeries "Flag for using time series data"
reserve_length "Length of reserve horizon" reserve_length "Length of reserve horizon"
reserveReliability "Reliability parameter of reserve provisions" reserveReliability "Reliability parameter of reserve provisions"
reserve_increase_ratio "Unit output is multiplied by this factor to get the increase in reserve demand" reserve_increase_ratio "Unit output is multiplied by this factor to get the increase in reserve demand"
...@@ -369,6 +372,8 @@ param_policy "Set of possible data parameters for groups or grid, node, regulati ...@@ -369,6 +372,8 @@ param_policy "Set of possible data parameters for groups or grid, node, regulati
offlineReserveCapability "Proportion of an offline unit which can contribute to a category of reserve" offlineReserveCapability "Proportion of an offline unit which can contribute to a category of reserve"
ReserveShareMax "Maximum reserve share of a group of units" ReserveShareMax "Maximum reserve share of a group of units"
LossOfTrans "A flag to tell that N-1 reserve is needed due to a possibility that an interconnector to/from the node group fails" LossOfTrans "A flag to tell that N-1 reserve is needed due to a possibility that an interconnector to/from the node group fails"
up "Upward direction, e.g. for reserve provisions"
down "Downward direction, e.g. for reserve provisions"
/ /
* --- Efficiency Approximation Related Sets ----------------------------------- * --- Efficiency Approximation Related Sets -----------------------------------
...@@ -384,6 +389,7 @@ hrop(param_unit) "Operating points in the incremental heat rate curves, also fun ...@@ -384,6 +389,7 @@ hrop(param_unit) "Operating points in the incremental heat rate curves, also fun
/hrop00*hrop12/ // IMPORTANT! Has to equal the same param_unit! /hrop00*hrop12/ // IMPORTANT! Has to equal the same param_unit!
hr(param_unit) "Heat rate for the corresponding operating point ('hrop') in the heat rate curves, also used for data indexing" hr(param_unit) "Heat rate for the corresponding operating point ('hrop') in the heat rate curves, also used for data indexing"
/hr00*hr12/ // IMPORTANT! Has to equal the same param_unit! /hr00*hr12/ // IMPORTANT! Has to equal the same param_unit!
* --- Counters and Directional Sets ------------------------------------------- * --- Counters and Directional Sets -------------------------------------------
// Slack categories // Slack categories
...@@ -401,4 +407,8 @@ spillLimits(param_gnBoundaryTypes) "set of upward and downward state limits" ...@@ -401,4 +407,8 @@ spillLimits(param_gnBoundaryTypes) "set of upward and downward state limits"
/ maxSpill, minSpill / / maxSpill, minSpill /
useConstantOrTimeSeries(param_gnBoundaryProperties) "useTimeSeries and useConstant property together" useConstantOrTimeSeries(param_gnBoundaryProperties) "useTimeSeries and useConstant property together"
/ useTimeSeries, useConstant / / useTimeSeries, useConstant /
// Directional sets that are subsets of others
up_down(param_policy) "Direction set used by some variables, e.g. reserve provisions and generation ramps"
/ up, down /
; // END parameter set declarations ; // END parameter set declarations
...@@ -18,17 +18,17 @@ $offtext ...@@ -18,17 +18,17 @@ $offtext
Sets Sets
* --- Geography --------------------------------------------------------------- * --- Geography ---------------------------------------------------------------
grid "Forms of energy endogenously presented in the model" / empty / grid "Forms of energy endogenously presented in the model" / empty /
node "Nodes where different types of energy are converted" node "Nodes maintain the energy balance or track exogenous commodities"
* --- Fuels & resources ------------------------------------------------------- * --- Commodities & resources -------------------------------------------------------
emission "Emissions" emission "Emissions"
fuel "Fuels" commodity(node) "Commodities that can be bought or sold exogenous to model"
flow "Flow based energy resources (time series)" flow "Flow based energy resources (time series)"
* --- Energy generation and consumption --------------------------------------- * --- Energy generation and consumption ---------------------------------------
unit "Set of generators, storages and loads" unit "Set of generators, storages and loads"
unit_flow(unit) "Unit that depend directly on variable energy flows (RoR, solar PV, etc.)" unit_flow(unit) "Unit that depend directly on variable energy flows (RoR, solar PV, etc.)"
unit_fuel(unit) "Units using a commercial fuel" unit_commodity(unit) "Units using an exogenous commodity with a price"
unit_fail(unit) "Units that might fail" unit_fail(unit) "Units that might fail"
unit_minLoad(unit) "Units that have unit commitment restrictions (e.g. minimum power level)" unit_minLoad(unit) "Units that have unit commitment restrictions (e.g. minimum power level)"
unit_online(unit) "Units that have an online variable in the first active effLevel" unit_online(unit) "Units that have an online variable in the first active effLevel"
...@@ -44,7 +44,9 @@ Sets ...@@ -44,7 +44,9 @@ Sets
flowUnit(flow, *) "Units or storages linked to a certain energy flow time series" flowUnit(flow, *) "Units or storages linked to a certain energy flow time series"
unitUnittype(unit, *) "Link generation technologies to types" unitUnittype(unit, *) "Link generation technologies to types"
unitStarttype(unit, starttype) "Units with special startup properties" unitStarttype(unit, starttype) "Units with special startup properties"
uFuel(unit, param_fuel, fuel) "Units linked with fuels" un_commodity(unit, node) "Units linked with commodities"
un_commodity_in(unit, node) "Units linked with input commodities"
un_commodity_out(unit, node) "Units linked with output commodities"
unittype "Unit technology types" unittype "Unit technology types"
unit_investLP(unit) "Units with continuous investments allowed" unit_investLP(unit) "Units with continuous investments allowed"
unit_investMIP(unit) "Units with integer investments allowed" unit_investMIP(unit) "Units with integer investments allowed"
...@@ -72,8 +74,6 @@ Sets ...@@ -72,8 +74,6 @@ Sets
gnn_state(grid, node, node) "Nodes with state variables interconnected via diffusion" gnn_state(grid, node, node) "Nodes with state variables interconnected via diffusion"
gnn_boundState(grid, node, node) "Nodes with state variables bound by other nodes" gnn_boundState(grid, node, node) "Nodes with state variables bound by other nodes"
gn2gnu(grid, node, grid, node, unit) "Conversions between energy grids by specific units" gn2gnu(grid, node, grid, node, unit) "Conversions between energy grids by specific units"
gngnu_fixedOutputRatio(grid, node, grid, node, unit) "Units with a fixed ratio between two different grids of output (e.g. backpressure)"
gngnu_constrainedOutputRatio(grid, node, grid, node, unit) "Units with a constrained ratio between two different grids of output (e.g. extraction)"
* --- Reserve types ----------------------------------------------------------- * --- Reserve types -----------------------------------------------------------
restype "Reserve types" restype "Reserve types"
...@@ -197,7 +197,7 @@ alias(op, op_, op__); ...@@ -197,7 +197,7 @@ alias(op, op_, op__);
alias(hrop, hrop_, hrop__); alias(hrop, hrop_, hrop__);
alias(eff, eff_, eff__); alias(eff, eff_, eff__);
alias(hr, hr_, hr__); alias(hr, hr_, hr__);
alias(fuel, fuel_); alias(commodity, commodity_);
alias(effLevel, effLevel_); alias(effLevel, effLevel_);
alias(restype, restype_); alias(restype, restype_);
alias(group, group_); alias(group, group_);
......
...@@ -43,28 +43,32 @@ Scalars ...@@ -43,28 +43,32 @@ Scalars
firstResultsOutputSolve /1/; firstResultsOutputSolve /1/;
; ;
* --- Power plant and fuel data ----------------------------------------------- * --- Power plant and commodity data -----------------------------------------------
Parameters Parameters
p_gn(grid, node, param_gn) "Properties for energy nodes" p_gn(grid, node, param_gn) "Properties for energy nodes"
p_gnBoundaryPropertiesForStates(grid, node, param_gnBoundaryTypes, param_gnBoundaryProperties) "Properties of different state boundaries and limits" p_gnBoundaryPropertiesForStates(grid, node, param_gnBoundaryTypes, param_gnBoundaryProperties) "Properties of different state boundaries and limits"
p_gnn(grid, node, node, param_gnn) "Data for interconnections between energy nodes" p_gnn(grid, node, node, param_gnn) "Data for interconnections between energy nodes"
p_gnu(grid, node, unit, param_gnu) "Unit data where energy type matters" p_gnu(grid, node, unit, param_gnu) "Unit data where energy type matters"
p_gnu_io(grid, node, unit, input_output, param_gnu) "Unit data where energy type matters"
p_gnuBoundaryProperties(grid, node, unit, slack, param_gnuBoundaryProperties) "Properties for unit boundaries where energy type matters" p_gnuBoundaryProperties(grid, node, unit, slack, param_gnuBoundaryProperties) "Properties for unit boundaries where energy type matters"
p_unit(unit, param_unit) "Unit data where energy type does not matter" p_unit(unit, param_unit) "Unit data where energy type does not matter"
p_gnReserves(grid, node, restype, *) "Data defining the reserve rules in each node" p_unitConstraint(unit, constraint) "Constant for constraints (eq1-9, gt1-9) between inputs and outputs"
p_groupReserves(group, restype, *) "Data defining the reserve rules in each node group" p_unitConstraintNode(unit, constraint, node) "Coefficients for constraints (eq1-9, gt1-9) between inputs and outputs"
p_gnReserves(grid, node, restype, param_policy) "Data defining the reserve rules in each node"
p_groupReserves(group, restype, param_policy) "Data defining the reserve rules in each node group"
p_groupReserves3D(group, restype, up_down, param_policy) "Reserve policy in each node group separately for each reserve type and direction" p_groupReserves3D(group, restype, up_down, param_policy) "Reserve policy in each node group separately for each reserve type and direction"
p_groupReserves4D(group, restype, up_down, group, param_policy) "Reserve policy in each node group separately for each reserve type and direction, also linking to another group" p_groupReserves4D(group, restype, up_down, group, param_policy) "Reserve policy in each node group separately for each reserve type and direction, also linking to another group"
p_gnuReserves(grid, node, unit, restype, *) "Reserve provision data for units" p_gnuReserves(grid, node, unit, restype, param_policy) "Reserve provision data for units"
p_gnnReserves(grid, node, node, restype, up_down) "Reserve provision data for node node connections" p_gnnReserves(grid, node, node, restype, up_down) "Reserve provision data for node node connections"
p_gnuRes2Res(grid, node, unit, restype, up_down, restype) "The first type of reserve can be used also in the second reserve category (with a possible multiplier)" p_gnuRes2Res(grid, node, unit, restype, up_down, restype) "The first type of reserve can be used also in the second reserve category (with a possible multiplier)"
p_gnPolicy(grid, node, param_policy, *) "Policy data for grid, node" p_gnPolicy(grid, node, param_policy, *) "Policy data for grid, node"
p_groupPolicy(group, param_policy) "Two-dimensional policy data for groups" p_groupPolicy(group, param_policy) "Two-dimensional policy data for groups"
p_groupPolicy3D(group, param_policy, *) "Three-dimensional policy data for groups" p_groupPolicy3D(group, param_policy, *) "Three-dimensional policy data for groups"
p_fuelPrice(fuel, param_fuelPrice) "Fuel price parameters" p_price(node, param_price) "Commodity price parameters"
p_fuelEmission(fuel, emission) "Fuel emission content" p_nEmission(node, emission) "Emission content (kg/MWh)"
p_uFuel(unit, param_fuel, fuel, param_unitFuel) "Parameters interacting between units and fuels" p_uStartupfuel(unit, node, param_unitStartupfuel) "Parameters for startup fuels"
p_unitFuelEmissionCost(unit, fuel, emission) "Emission costs for each unit, calculated from input data" p_unStartup(unit, node, starttype) "Consumption during the start-up (MWh/start-up)"
p_unitEmissionCost(unit, node, emission) "Emission costs for each {unit, node, emission}, calculated from input data (CUR/MWh)"
p_effUnit(effSelector, unit, effSelector, param_eff) "Data for piece-wise linear efficiency blocks" p_effUnit(effSelector, unit, effSelector, param_eff) "Data for piece-wise linear efficiency blocks"
p_effGroupUnit(effSelector, unit, param_eff) "Unit data specific to a efficiency group (e.g. left border of the unit)" p_effGroupUnit(effSelector, unit, param_eff) "Unit data specific to a efficiency group (e.g. left border of the unit)"
p_uNonoperational(unit, starttype, min_max) "Non-operational time after being shut down before start up" p_uNonoperational(unit, starttype, min_max) "Non-operational time after being shut down before start up"
...@@ -83,7 +87,7 @@ Parameters ...@@ -83,7 +87,7 @@ Parameters
p_uCounter_shutdownMax(unit, counter) "Maximum output for the time steps where the unit is being shut down from the minimum load (minimum output in the first interval) (p.u.)" p_uCounter_shutdownMax(unit, counter) "Maximum output for the time steps where the unit is being shut down from the minimum load (minimum output in the first interval) (p.u.)"
p_u_minRampSpeedInLastRunUpInterval(unit) "Minimum ramp speed in the last interval for the run-up to min. load (p.u./min)" p_u_minRampSpeedInLastRunUpInterval(unit) "Minimum ramp speed in the last interval for the run-up to min. load (p.u./min)"
p_u_minRampSpeedInFirstShutdownInterval(unit) "Minimum ramp speed in the fist interval for the shutdown from min. load (p.u./min)" p_u_minRampSpeedInFirstShutdownInterval(unit) "Minimum ramp speed in the fist interval for the shutdown from min. load (p.u./min)"
// Time dependent unit & fuel parameters // Time dependent unit & commodity parameters
ts_unit(unit, param_unit, f, t) "Time dependent unit data, where energy type doesn't matter" ts_unit(unit, param_unit, f, t) "Time dependent unit data, where energy type doesn't matter"
ts_effUnit(effSelector, unit, effSelector, param_eff, f, t) "Time dependent data for piece-wise linear efficiency blocks" ts_effUnit(effSelector, unit, effSelector, param_eff, f, t) "Time dependent data for piece-wise linear efficiency blocks"
ts_effGroupUnit(effSelector, unit, param_eff, f, t) "Time dependent efficiency group unit data" ts_effGroupUnit(effSelector, unit, param_eff, f, t) "Time dependent efficiency group unit data"
...@@ -157,17 +161,17 @@ Parameters ...@@ -157,17 +161,17 @@ Parameters
ts_cf(flow, node, f, t) "Available capacity factor time series (p.u.)" ts_cf(flow, node, f, t) "Available capacity factor time series (p.u.)"
ts_reserveDemand(restype, up_down, group, f, t) "Reserve demand in region in the time step (MW)" ts_reserveDemand(restype, up_down, group, f, t) "Reserve demand in region in the time step (MW)"
ts_node(grid, node, param_gnBoundaryTypes, f, t) "Fix the states of a node according to time-series form exogenous input ([v_state])" ts_node(grid, node, param_gnBoundaryTypes, f, t) "Fix the states of a node according to time-series form exogenous input ([v_state])"
ts_fuelPriceChange(fuel, t) "Initial fuel price and consequent changes in fuel price (EUR/MWh)" ts_priceChange(node, t) "Initial commodity price and consequent changes in commodity price (EUR/MWh)"
ts_fuelPrice(fuel, t) "Fuel price time series (EUR/MWh)" ts_price(node, t) "Commodity price time series (EUR/MWh)"
ts_unavailability(unit, t) "Unavailability of a unit in the time step (p.u.)" ts_unavailability(unit, t) "Unavailability of a unit in the time step (p.u.)"
// Aliases used in the equations after interval aggregation // Aliases used in the equations after interval aggregation
// NOTE: Sample dimension has to be last because of the scenario reduction algorithm
ts_influx_(grid, node, s, f, t) "Mean external power inflow/outflow during a time step (MWh/h)" ts_influx_(grid, node, s, f, t) "Mean external power inflow/outflow during a time step (MWh/h)"
ts_cf_(flow, node, s, f, t) "Mean available capacity factor time series (p.u.)" ts_cf_(flow, node, s, f, t) "Mean available capacity factor time series (p.u.)"
ts_reserveDemand_(restype, up_down, group, f, t) "Mean reserve demand in region in the time step (MW)" ts_reserveDemand_(restype, up_down, group, f, t) "Mean reserve demand in region in the time step (MW)"
ts_node_(grid, node, param_gnBoundaryTypes, s, f, t) "Mean value of ts_node" ts_node_(grid, node, param_gnBoundaryTypes, s, f, t) "Mean value of ts_node"
ts_fuelPrice_(fuel, t) "Mean fuel price time during time step (EUR/MWh)" ts_vomCost_(grid, node, unit, t) "Calculated variable O&M cost that includes O&M cost, fuel cost and emission cost"
ts_startupCost_(unit, starttype, t) "Calculated variable startup cost that includes startup cost, fuel cost and emission cost"
// Aliases used for updating data in inputsLoop.gms // Aliases used for updating data in inputsLoop.gms
ts_unit_update(unit, param_unit, f, t) ts_unit_update(unit, param_unit, f, t)
...@@ -177,7 +181,7 @@ Parameters ...@@ -177,7 +181,7 @@ Parameters
ts_cf_update(flow, node, f, t) ts_cf_update(flow, node, f, t)
ts_reserveDemand_update(restype, up_down, group, f, t) ts_reserveDemand_update(restype, up_down, group, f, t)
ts_node_update(grid, node, param_gnBoundaryTypes, f, t) ts_node_update(grid, node, param_gnBoundaryTypes, f, t)
ts_fuelPriceChange_update(fuel, t) ts_priceChange_update(node, t)
ts_unavailability_update(unit, t) ts_unavailability_update(unit, t)
// Help parameters for calculating smoothening of time series // Help parameters for calculating smoothening of time series
......
...@@ -29,8 +29,8 @@ Parameters ...@@ -29,8 +29,8 @@ Parameters
// Unit Operational Cost Components // Unit Operational Cost Components
r_gnuVOMCost(grid, node, unit, f, t) "Variable O&M costs for energy outputs (MEUR)" r_gnuVOMCost(grid, node, unit, f, t) "Variable O&M costs for energy outputs (MEUR)"
r_gnuTotalVOMCost(grid, node, unit) "Total gnu VOM costs over the simulation (MEUR)" r_gnuTotalVOMCost(grid, node, unit) "Total gnu VOM costs over the simulation (MEUR)"
r_uFuelEmissionCost(fuel, unit, f, t) "Unit fuel & emission costs for normal operation (MEUR)" r_uFuelEmissionCost(node, unit, f, t) "Unit fuel & emission costs for normal operation (MEUR)"
r_uTotalFuelEmissionCost(fuel, unit) "Total unit fuel & emission costs over the simulation for normal operation (MEUR)" r_uTotalFuelEmissionCost(commodity, unit) "Total unit fuel & emission costs over the simulation for normal operation (MEUR)"
r_uStartupCost(unit, f, t) "Unit startup VOM, fuel, & emission costs (MEUR)" r_uStartupCost(unit, f, t) "Unit startup VOM, fuel, & emission costs (MEUR)"
r_uShutdownCost(unit, f, t) "Unit startup VOM, fuel, & emission costs (MEUR)" r_uShutdownCost(unit, f, t) "Unit startup VOM, fuel, & emission costs (MEUR)"
r_uTotalStartupCost(unit) "Total unit startup costs over the simulation (MEUR)" r_uTotalStartupCost(unit) "Total unit startup costs over the simulation (MEUR)"
...@@ -86,15 +86,16 @@ Parameters ...@@ -86,15 +86,16 @@ Parameters