Power Investment with the Flow-Class

UPDATE: With version v0.2.2 it will be possible to define the parts of the storage separately within the GenericStorage component.

The GenericStorage with an Investment object uses the GenericInvestmentStorageBlock of oemof. This connects the investment variable of the input and output Flow with the investment variable of the capacity with the capacity_ratio. This is pretty realistic for a battery stack but if you want to increase the reservoir of a PHES without increasing the pump and the turbine (or just change the ratio) this does not work for you.

If you want to optimise the three components separately you have to add these components. A pump, a turbine and a storage. You could use the transformer class for the pump (electrical energy into potential energy) and the turbine (potential energy into electricity) and the GenericStorage for the reservoir. Now you connect the electricity bus with the pump, the pump with the storage, the storage with the turbine and the turbine with the electricity bus. In that way you can add limitations and costs for each component separately. You can keep the reservoir fixed and invest only into the turbine and the pump or the other way round or you can invest into all three parts.

You may want to have this a little more compact (without what you called “dummy components”). First of all with the generic components we tried to make it possible to cover all use cases. In a second step we started to add special components for special use cases (more compact but less generic). In your case you could add a PHES component which covers your use cases in one component. If you want to do that you can contact us and we will provide some help.

The attributes in the Flow class are relative to the nominal_value (or investment_variable). Therefore you can add a relative time series for the data['wind'] and the output will increase equivalent to the installed capacity.

You have to care for the units. You always have to use the same units or you have to use a transformer to change between units. If you want the storage to store in Joule instead of MWh you have to adapt you inflow/outflow efficiency respectively. The Flow has a power unit and you get the energy if you multiply it with the time period. If you have 15 minutes values and the input flow has the value 1 the energy in the storage will increase by 0.25.

I hope I understood the questions the right way.