backbone issueshttps://gitlab.vtt.fi/backbone/backbone/-/issues2021-01-18T11:15:19Zhttps://gitlab.vtt.fi/backbone/backbone/-/issues/137Easier way to handle annual storage limits when using samples2021-01-18T11:15:19ZNiina HelistöEasier way to handle annual storage limits when using samplesAt the moment, it is quite difficult to model annual fuel limits or annual hydro limits. Maybe we need a new equation for that?At the moment, it is quite difficult to model annual fuel limits or annual hydro limits. Maybe we need a new equation for that?v1.3Niina HelistöNiina Helistöhttps://gitlab.vtt.fi/backbone/backbone/-/issues/76Units without outputs or with exogenous inputs or outputs2020-08-17T10:46:05ZJuha KiviluomaUnits without outputs or with exogenous inputs or outputsBackbone does not manage units that consume energy and turn it into exogenous commodity (like power2fuel) against a price. For units that have negative outputs (like a cooling unit), there is a hack. Both of these cases should be made po...Backbone does not manage units that consume energy and turn it into exogenous commodity (like power2fuel) against a price. For units that have negative outputs (like a cooling unit), there is a hack. Both of these cases should be made possible in a sensible way starting from input data.v1.3Juha KiviluomaJuha Kiviluomahttps://gitlab.vtt.fi/backbone/backbone/-/issues/46Add sample dimesionsion to time series and variables2019-01-17T12:01:26ZErkka Rinneerkka.rinne@iki.fiAdd sample dimesionsion to time series and variablesThis allows same time step to be associated with multiple samples, and thus allows multiple smaples to represent the future after forecast horizon.This allows same time step to be associated with multiple samples, and thus allows multiple smaples to represent the future after forecast horizon.v1.1Erkka Rinneerkka.rinne@iki.fiErkka Rinneerkka.rinne@iki.fihttps://gitlab.vtt.fi/backbone/backbone/-/issues/41N-1 Reserve, not finished2018-09-28T18:23:31Zran liN-1 Reserve, not finishedPush a new branch to the server, including the n-1 codes I write, unfortunately find it's not working now-it's just ignored by the system,
codes are:
N-1 Reserve Demand---------------------------------------------------------------------...Push a new branch to the server, including the n-1 codes I write, unfortunately find it's not working now-it's just ignored by the system,
codes are:
N-1 Reserve Demand----------------------------------------------------------------------------------------------------------
q_resDemand_Infeed( grid, restypeDirectionNode(restype, up_down, node), ft(f, t),unit_) ${ ord(t) < tSolveFirst + p_nReserves(node, restype, 'reserve_length')
and not [ restypeReleasedForRealization(restype)
and ft_realized(f, t)
] and nuRescapable(restype, up_down, node, unit_) and p_nReserves(node, restype, 'N-1')
} ..
// Reserve provision by capable units on this node
+ sum(nuft(node, unit, f, t)${nuRescapable(restype, up_down, node, unit) and (ord(unit_) ne ord(unit)) },
+ v_reserve(restype, up_down, node, unit, f+df_nReserves(node, restype, f, t), t)
) // END sum(nuft)
// Reserve provision to this node via transfer links
+ sum(gn2n_directional(grid, node_, node)${restypeDirectionNodeNode(restype, up_down, node_, node)}, + (1 - p_gnn(grid, node_, node, 'transferLoss') )
* v_resTransferRightward(restype, up_down, node_, node, f+df_nReserves(node_, restype, f, t), t) * p_nnReserves(node_, node, restype, 'ratio') // Reserves from another node - reduces the need for reserves in the node
) // END sum(gn2n_directional)
+ sum(gn2n_directional(grid, node, node_)${restypeDirectionNodeNode(restype, up_down, node_, node)},
+ (1 - p_gnn(grid, node, node_, 'transferLoss') )
* v_resTransferLeftward(restype, up_down, node, node_, f+df_nReserves(node_, restype, f, t), t) * p_nnReserves(node, node_, restype, 'ratio') // Reserves from another node - reduces the need for reserves in the node
) // END sum(gn2n_directional)
=G=
// Demand for reserves
+ v_gen(grid,node,unit_,f,t)*p_nReserves(node, restype, 'Infeed2Cover')*(p_nReserves(node, restype, up_down)+1)/(p_nReserves(node, restype, up_down)+1)
// Reserve provisions to another nodes via transfer links
+ sum(gn2n_directional(grid, node, node_)${restypeDirectionNodeNode(restype, up_down, node_, node)}, // If trasferring reserves to another node, increase your own reserves by same amount
+ v_resTransferRightward(restype, up_down, node, node_, f+df_nReserves(node, restype, f, t), t) * p_nnReserves(node, node_, restype, 'ratio')
) // END sum(gn2n_directional)
+ sum(gn2n_directional(grid, node_, node)${restypeDirectionNodeNode(restype, up_down, node_, node)}, // If trasferring reserves to another node, increase your own reserves by same amount
+ v_resTransferLeftward(restype, up_down, node_, node, f+df_nReserves(node, restype, f, t), t) * p_nnReserves(node_, node, restype, 'ratio')
) // END sum(gn2n_directional)
// Reserve demand feasibility dummy variables
- vq_resDemand(restype, up_down, node, f, t)
- vq_resMissing(restype, up_down, node, f, t)$(ord(t) <= tSolveFirst + p_nReserves(node, restype, 'gate_closure') - mod(tSolveFirst - 1, p_nReserves(node, restype, 'update_frequency')))
;ran liran li