spine-tools / SpineOpt.jl

A highly adaptable modelling framework for multi-energy systems
https://www.tools-for-energy-system-modelling.org/
GNU General Public License v3.0
59 stars 14 forks source link

Add relative initial_node_state #762

Open kTelaar opened 1 year ago

kTelaar commented 1 year ago

For short-term storage investment models the parameters _initial_nodestate (and cyclic_condition) are very helpful. At the moment the initial_node_state parameter works fine for a given node_state_cap (no investment).

Is your feature request related to a problem? Please describe. For a node_state_cap that will be multiplied with the chosen investment value (0 < modeled investment decision < candidate_storages) a relative definition to XX% of modeled maximum capacity would make more sense. At the moment the model identifies the optimal investment value for a storage node to achieve exactly the initial_node_state.

Describe the solution you'd like Parameter initial_node_state_relative (or possibility for configuration of the existing initial_node_state parameter)

Describe alternatives you've considered Could be defined relative to either maximum capacity or as a product relative to the node_state_cap of 1 candidate_storages

Additional context grafik

DillonJ commented 1 year ago

I agree that we need this feature!

Another issue is that a fixed initial node state can cause an infeasibility with investments, so a relative initial node state makes a lot of sense.

We could keep initial_node_state as it is and add a new parameter called intial_investment_node_state_relative where the constraint is: node_state(t-1) = storages_invested(t) node_state_cap intial_investment_node_state_relative

This is a little tricky because the nodal_balance constraint will need to be relaxed in the relevant time period to ensure we don't get an infeasibility

The way to do it might be a new term in the node_injection constraint where the required energy is injected into the store in the same period as the investment we add the term + storages_invested(t) node_state_cap intial_investment_node_state_relative

clizbe commented 10 months ago

@DillonJ Is this connected to #752?