Decomissioning of exisiting capacity (non-invest) in MultiPeriod
Opened this issue · 2 comments
While implementing MultiPeriod approach in oemof.tabular I had Problems with implementing decomissioning of power plants. We want to implement a decomissioning curve fo existing capacity (fixed) parallel to new capacity (invest-objects).
@nailend and I have been planing to use periodically changing values as capacity value. Unfortunately only numeric values are allowed as nominal values for Flows
@jokochems We would be very interested in your past approach to exogenous fading out capacities in Multi Period Models.
Moreover decomissioning processes might be crucial for #1031
thanks for your question. Interesting topic indeed!
My solution is fairly simple:
- I only model clustered power plant fleets.
- For the brownfield approach, I split between exogenously determined and endogenously invested plants, see the respective functions in the
submoduls
module of the pommesinvest code base: https://github.com/pommes-public/pommesinvest/blob/main/pommesinvest/model_funcs/subroutines.py - For exogenous plants, I determine their fade out date ex ante and precalculate some time series. I scale down the
max
parameter accordingly which allows for inserting time series. This in turn is multiplied with thenominal_value
parameter which holds the peak capacity. - Preprocessing is done within
pommesdata
: https://github.com/pommes-public/pommesdata/blob/dev/pommesdata/data_preparation.ipynb; See section "Transformers for usage in the investment model".
If you have further questions, we could schedule a meeting, but my time is somewhat short currently.
And also, I agree to the idea of having something more elaborated. Ad hoc, I just cannot think of a sound and generalized solution.
My solution is fairly simple:
Thanks for your quick reply! I had already considered this approach, but was hoping for something different. But as you say its quite simple and we will probably also go with this for now. Thx
And also, I agree to the idea of having something more elaborated. Ad hoc, I just cannot think of a sound and generalized solution.
In the course of making multi-approach the default, this should be addressed. I have added it to list #1031. This will require quite a few changes throughout the code, I suspect. And time is also tight for me at the moment