Commit 13471bd4 authored by Tomi J. Lindroos's avatar Tomi J. Lindroos
Browse files

Merge branch 'Wheeling' into 'dev'

Wheeling

See merge request !14
parents 653ab799 fbd66a24
......@@ -39,6 +39,8 @@ r_uTotalStartupCost
r_gnStateSlackCost
r_gnTotalStateSlackCost
r_gnStorageValueChange
r_gnnVariableTransCost
r_gnnTotalVariableTransCost
// Investment and Fixed Operation and Maintenance Cost Components
r_gnuFOMCost
......@@ -73,6 +75,8 @@ r_stateSlack
// Energy transfer and spill variable results
r_transfer
r_transferRightward
r_transferLeftward
r_spill
// Interesting node related results
......
......@@ -260,6 +260,7 @@ param_gnn "Set of possible data parameters for grid, node, node (nodal interconn
portion_of_transfer_to_reserve "Portion of the infeed from the unit that needs to be available as reserve if the unit fails"
ICrampUp
ICrampDown
variableTransCost "Variable cost applied to transfers (EUR/MW)"
/
param_gnu "Set of possible data parameters for grid, node, unit" /
......
......@@ -39,6 +39,8 @@ Parameters
r_gnStateSlackCost(grid, node, f, t) "Costs for states requiring slack (MEUR)"
r_gnTotalStateSlackCost(grid, node) "Total costs for state slacks over the simulation (MEUR)"
r_gnStorageValueChange(grid, node) "Change in storage values over the simulation (MEUR)"
r_gnnVariableTransCost(grid, node_,node, f, t) "Variable Transfer costs (MEUR)"
r_gnnTotalVariableTransCost(grid, node_, node) "Total Variable Transfer costs over the simulation (MEUR)"
// Investment and Fixed Operation and Maintenance Cost Components
r_gnuFOMCost(grid, node, unit) "Total gnu fixed O&M costs over the simulation (MEUR)"
......@@ -79,6 +81,8 @@ Parameters
// Energy transfer and spill variable results
r_transfer(grid, from_node, to_node, f, t) "Energy transfer (MW)"
r_transferRightward(grid, from_node, to_node, f, t) "Energy transfer from first node to second node (MW)"
r_transferLeftward(grid, to_node, from_node, f, t) "Energy transfer from second node to first node (MW)"
r_spill(grid, node, f, t) "Spill of energy from storage node during time interval (MWh)"
// Interesting node related results
......
......@@ -111,6 +111,17 @@ q_obj ..
] // END * p_sft_probability(s,f,t)
// Variable Transfer
+ sum(gn2n_directional(grid, node_, node),
+ p_gnn(grid, node, node_, 'variableTransCost')
* v_transferLeftward(grid, node_, node, s, f, t)
) // END sum(gn2n_directional(grid, node_, node))
+ sum(gn2n_directional(grid, node_, node),
+ p_gnn(grid, node_, node, 'variableTransCost')
* v_transferRightward(grid, node_, node, s, f, t)
) // END sum(gn2n_directional(grid, node_, node))
) // END sum over msft(m, s, f, t)
// Cost of energy storage change (note: not discounted)
......
......@@ -124,6 +124,14 @@ loop(sft_realized(s, f, t),
r_transfer(gn2n(grid, from_node, to_node), f, t)$[ord(t) > mSettings(mSolve, 't_start') + mSettings(mSolve, 't_initializationPeriod')]
= v_transfer.l(grid, from_node, to_node, s, f, t)
;
// Transfer of energy from first node to second node
r_transferRightward(gn2n_directional(grid, from_node, to_node), f, t)$[ord(t) > mSettings(mSolve, 't_start') + mSettings(mSolve, 't_initializationPeriod')]
= v_transferRightward.l(grid, from_node, to_node, s, f, t)
;
// Transfer of energy from second node to first node
r_transferLeftward(gn2n_directional(grid, to_node, from_node), f, t)$[ord(t) > mSettings(mSolve, 't_start') + mSettings(mSolve, 't_initializationPeriod')]
= v_transferLeftward.l(grid, to_node, from_node, s, f, t)
;
// Energy spilled from nodes
r_spill(gn(grid, node), f, t)$[ord(t) > mSettings(mSolve, 't_start') + mSettings(mSolve, 't_initializationPeriod')]
= v_spill.l(grid, node, s, f, t)
......
......@@ -64,6 +64,15 @@ loop(m,
] // END * r_startup
); // END sum(starttype)
//Variable Trnasfer Costs
r_gnnVariableTransCost(gn2n_directional(grid, node_, node), ft_realizedNoReset(f,t))$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')]
= 1e-6 // Scaling to MEUR
* p_stepLengthNoReset(m, f, t)
*[+ p_gnn(grid, node, node_, 'variableTransCost')
* r_transferLeftward(grid, node_, node, f, t)
+ p_gnn(grid, node_, node, 'variableTransCost')
* r_transferRightward(grid, node_, node, f, t)];
// Node state slack costs
r_gnStateSlackCost(gn_stateSlack(grid, node), ft_realizedNoReset(f,t))$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')]
= 1e-6 // Scaling to MEUR
......@@ -102,6 +111,13 @@ loop(m,
* sum(msft_realizedNoReset(m, s, f, t), p_msProbability(m, s) * p_msWeight(m, s) * p_s_discountFactor(s))
);
// Total Variable Transfer costs
r_gnnTotalVariableTransCost(gn2n_directional(grid, node_, node))
= sum(ft_realizedNoReset(f,t)$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')],
+ r_gnnVariableTransCost(grid, node_, node, f, t)
* sum(msft_realizedNoReset(m, s, f, t), p_msProbability(m, s) * p_msWeight(m, s) * p_s_discountFactor(s))
);
// Total fuel & emission costs
r_uTotalFuelEmissionCost(commodity, unit)$un_commodity(unit, commodity)
= sum(ft_realizedNoReset(f,t)$[ord(t) > mSettings(m, 't_start') + mSettings(m, 't_initializationPeriod')],
......@@ -188,6 +204,10 @@ loop(m,
+ r_uStartupCost(unit, f, t)
}
)
+ sum(gn2n_directional(grid, node_, node),
// Variable Transfer costs
+ r_gnnVariableTransCost(grid, node_, node, f, t)
)
// Node state slack costs
+ r_gnStateSlackCost(grid, node, f, t);
......
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