You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In v0.5.1, multi-period investments have been introduced. For those not familiar with the concept: The idea is to allow multiple time steps where investments are allowed, namely at the beginning of every period, e.g. year, and to introduce discounting for costs that occur at different periods resp. time steps as well as perform life time tracking. So it is especially useful for long-term system planning.
Problem description
Investments are accounted for by their annuities (annual equivalent of capital expenditures) over the full lifetime of a plant. So far all good since this is what you want to have. However, there is an implicit bias towards earlier investments introduced by this. It is not as attractive to invest in later periods as the plant might not run for its full lifetime, but still carries the total capital expenditures.
Suggestion
Thus, it would be sensible to account for remaining values at the end of the optimization horizon. What I have in mind is to simply evaluate for each InvestmentFlowBlock - and the other blocks allowing for investments (storages, demand repose) - what the remaining lifetime at the end of the simulation is and to decrement the costs by the respective annuities. E.g., if you have a plant with 20 years lifetime that has been operating for 8 years at the end of the optimization horizon, subtract 12 times the annuity of that plant to account for its remaining value.
With the newly introduced periods_matrix of the energy system, see #957, it should be easier to introduce this approach.
I'm happy to help with that and give a review. It's also on our to-do list, just hasn't moved up far enough yet.
Your suggestion sounds reasonable. I'm not really familiar with financial mathematics, but subtracting the annuity outside the optimization horizon seems straightforward, and I believe it's done that way in OSeMOSYS as well.
This should definitely be fixed. Alternatively to the proposed or as an additional aspect of the implementation, the investment object could take a value for the remaining value at the end of the optimization period, analogue to the value for the investment. The (possibly default) value would be the summed annuity of the remaining lifetime, but it should be possible to choose differently. For example, one might decide that the remaining value considers a learning curve, modelling the fact that later installations can be cheaper.
This should definitely be fixed. Alternatively to the proposed or as an additional aspect of the implementation, the investment object could take a value for the remaining value at the end of the optimization period, analogue to the value for the investment. The (possibly default) value would be the summed annuity of the remaining lifetime, but it should be possible to choose differently. For example, one might decide that the remaining value considers a learning curve, modelling the fact that later installations can be cheaper.
Thanks for pointing this out, @p-snft. Since the investment expenses are defined on a per-period basis, it should be possible to do the accounting here on the basis of the values in the last period.
Background
In
v0.5.1
, multi-period investments have been introduced. For those not familiar with the concept: The idea is to allow multiple time steps where investments are allowed, namely at the beginning of every period, e.g. year, and to introduce discounting for costs that occur at different periods resp. time steps as well as perform life time tracking. So it is especially useful for long-term system planning.Problem description
Investments are accounted for by their annuities (annual equivalent of capital expenditures) over the full lifetime of a plant. So far all good since this is what you want to have. However, there is an implicit bias towards earlier investments introduced by this. It is not as attractive to invest in later periods as the plant might not run for its full lifetime, but still carries the total capital expenditures.
Suggestion
Thus, it would be sensible to account for remaining values at the end of the optimization horizon. What I have in mind is to simply evaluate for each
InvestmentFlowBlock
- and the other blocks allowing for investments (storages, demand repose) - what the remaining lifetime at the end of the simulation is and to decrement the costs by the respective annuities. E.g., if you have a plant with 20 years lifetime that has been operating for 8 years at the end of the optimization horizon, subtract 12 times the annuity of that plant to account for its remaining value.With the newly introduced
periods_matrix
of the energy system, see #957, it should be easier to introduce this approach.@nailend and @p-snft
The text was updated successfully, but these errors were encountered: