For the costs analysis ultimately governing the optimization and determining the solutions NPV and LCOE, a number of values have to be provided as input parameters (as always, these can be subject to sensitivity analyses). These values are used to calculate the annuity and variable costs applied in oemof-optimizations. The costs’ evaluation takes place after the oemof-optimization itself and calculates annuity and variable operation costs of the project.
Input values¶
Costs ranging from variable costs per kWh, operational costs per year and investment costs are taken into account in the simulation tool. They are included through a large number of input values.
Financial values are:
Fuel price (/l) combined with combustion value (kWh/l)
Price of electricity from national grid
Taxes (import tax)
wacc used as discount factor
Project lifetime
Further parameters are necessary for each cost component:
Project (-)
Grid extension (/km)
Local distribution grid (-)
PV panels (/kWp)
Storage (/kWh)
Fossil-fuelled generator (/kW)
The parameters specifying each of those components are
Lifetime
Operation and management costs per year
Variable costs per kWh
Investment costs
In this list, the costs of grid extension, local distribution grid and project costs are not specified by variable investment costs.
Including costs in oemof optimization¶
to be updated
To simplify this large amount of data and enable its integration into the oemof framework, the fixed annuity of each component is calculated.
First the CAPEX of each component has to be calculated. As this includes its first investment costs as well as re-investments based on it’s lifetime and value at project end, following algorithm is used::
number_of_investments = int(round(project_life / lifetime))
# costs with quantity and import tax at t=0
first_time_investment = investment_t0 * (1+tax)
for count_of_replacements in range(0, number_of_investments):
# Very first investment is in year 0
if count_of_replacements == 0:
capex = first_time_investment
else:
# replacements taking place in year = number_of_replacement * lifetime
if count_of_replacements * lifetime != project_life:
capex = capex + first_time_investment / ((1 + wacc) ** (count_of_replacements * lifetime))
# Substraction of component value at end of life with last replacement (= number_of_investments - 1)
if number_of_investments * lifetime > project_life:
last_investment = first_time_investment / ((1 + wacc) ** ((number_of_investments - 1) * lifetime))
linear_depreciation_last_investment = last_investment / lifetime
capex = capex - linear_depreciation_last_investment * (number_of_investments * lifetime - project_life)
The operation and management costs that have a fix annual value are summarized as OPEX::
annuity_factor = 1 / wacc - 1 / (wacc * (1 + wacc) ** project_life)
OPEX = annual O&M costs * annuity_factor
The present costs are calculated by adding the CAPEX of a component to its OPEX::
present cost = CAPEX + OPEX
Factorized with the annuity factor, the annuity is calculated::
annuity = present costs / annuity factor
In optimizations, the variable costs from the inputs are equal to the _variable_costs_ of a flow connected to a component. In investment mode, the annuity is equal to the _ep_costs_.
Case-based cost evaluation¶
Currently, the cost evaluation is performed in a complicated manner and it is necessary to distinguish between cases. This comes from the fact, that in dispatch analyses only the variable costs are optimized, while the optimal energy mix also includes above calculated annuities per component unit. In mixed cases with dispatch (fixed PCC capacities) and optimal energy mix, this issue becomes more complicated.
A simplification that bases the calculation of component costs on its capacities and connected flows should be possible and will be included in the future.