Energy system model without demand in Oemof but with revenues

hey everyone,
we want to model an energy system in Oemof without defining a demand and which enables to generate revenues based on the electricity injected into the grid for example electricity from rooftop solar photovoltaic or biomass power plants. we tried that and we used a sink with negative variable costs (variable_costs<0). Unfortunately it has done not worked.

We are wondering wether it’s possible oemof to set up an energy system without demand (nominal_value= 0 fix=0) ? or maybe our approach is not adequate to solve that.

I’m grateful for any help or hint

Hi @jess, could you elaborate why this did not work out? It’s actually, what I’d suggest to do. You will need to have nominal_values for the power plants so that no infinite revenue can be generated, but in principle, it should work exactly as you described it.

1 Like

Hi @pschoen,
this the way we applied to model a scenario with electricity sales.

    elec_sales = solph.Sink(label="electricity_sales", inputs={elec_bus: solph.Flow(  variable_costs = negative_value)})

As mentioned we used a sink with negative variable cost and without nominal_value. However we defined nominal_values for the power plants. It works now! We had some errors in the code but we’ve solved that.
I still have a question for better understanding, if we don’t define a nominal value of the sink does that mean the nominal_value is set to 0 or is nominal_value= infinity. I would love to know the mathematical description behind this and wether this is the best way to define a grid just to inject into and sale electricity.

Thank you so much @pschoen for your help! I really appreciate it.

You are right, it’s enough to have a nominal_value at one location. The only purpose is to disallow infinite flows. So, to directly answer your question:

If the nominal value is not defined explicitly, it defaults to infinity. (A value of 0 would mean that there is no energy transport, which would render the Flow object useless.)

1 Like

I see, it makes sense:)