Calculate Levelized Cost of Electricity (LCOE)¶
This examples show how to calculate the LCOE in a simplified and explicit version.
Workflow:
- Load required packages
- Simple LCOE calculation
- Explicit LCOE calculation
In [1]:
Copied!
import reskit as rk
import reskit as rk
Simple levelized cost of electricity (LCOE) calculation¶
Follows: $\mathrm{LCOE} = C * \frac{ (r/(1-(1+r)^{-N})) + O_c }{P_{mean}}$
Where:
- $C$ is the capital expenditure [€]
- $O_c$ is the fixed operating costs (given as a factor of the capex)
- $P_{mean}$ is the average production in each year [kWh]
- $r$ is the discount rate
- $N$ is the economic lifetime [years]
In [2]:
Copied!
# Compute LCOE
wind_turbine_capacity = 2700 # Assume a 2.7 MW turbine
wind_turbine_capex = wind_turbine_capacity * 1000 # assume 1000 €/kW
wind_turbine_full_load_hours = 2300 # assume 2300 hours
wind_turbine_generation = wind_turbine_capacity * wind_turbine_full_load_hours
lcoe = rk.util.levelized_cost_of_electricity_simplified(
capex=wind_turbine_capex,
mean_production=wind_turbine_generation,
lifetime=20, # Assume 20 years,
discount_rate=0.08, # Assume 8% interest
opex_per_capex=0.02, # Assume opex is 2% of capex
)
print(" LCOE is {:.5f} €/kWh".format(lcoe))
# Compute LCOE
wind_turbine_capacity = 2700 # Assume a 2.7 MW turbine
wind_turbine_capex = wind_turbine_capacity * 1000 # assume 1000 €/kW
wind_turbine_full_load_hours = 2300 # assume 2300 hours
wind_turbine_generation = wind_turbine_capacity * wind_turbine_full_load_hours
lcoe = rk.util.levelized_cost_of_electricity_simplified(
capex=wind_turbine_capex,
mean_production=wind_turbine_generation,
lifetime=20, # Assume 20 years,
discount_rate=0.08, # Assume 8% interest
opex_per_capex=0.02, # Assume opex is 2% of capex
)
print(" LCOE is {:.5f} €/kWh".format(lcoe))
LCOE is 0.05298 €/kWh
Explicit levelized cost of electricity (LCOE) calculation¶
Follows: $\mathrm{LCOE} = \sum{\frac{exp_y}{(1+r)^y}} / \sum{\frac{prod_y}{(1+r)^y}}$
Where:
- $exp_y$ is the expenditures in year $y$ [€]
- $prod_y$ is the production in year $y$ [kWh]
- $r$ is the discount rate
In [3]:
Copied!
# Compute LCOE
annual_expenditures = [
2700000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
]
annual_generations = [
6385324,
5644533,
5565218,
5664097,
5993882,
5599432,
6500692,
5643933,
6950887,
6233453,
6684309,
6241383,
6865367,
6919187,
6276209,
5547549,
5715262,
6606469,
5828275,
5847079,
]
lcoe = rk.util.levelized_cost_of_electricity(
expenditures=annual_expenditures,
productions=annual_generations,
discount_rate=0.08, # Assume 8% interest
)
print(" LCOE is {:.5f} €/kWh".format(lcoe))
# Compute LCOE
annual_expenditures = [
2700000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
54000,
]
annual_generations = [
6385324,
5644533,
5565218,
5664097,
5993882,
5599432,
6500692,
5643933,
6950887,
6233453,
6684309,
6241383,
6865367,
6919187,
6276209,
5547549,
5715262,
6606469,
5828275,
5847079,
]
lcoe = rk.util.levelized_cost_of_electricity(
expenditures=annual_expenditures,
productions=annual_generations,
discount_rate=0.08, # Assume 8% interest
)
print(" LCOE is {:.5f} €/kWh".format(lcoe))
LCOE is 0.04986 €/kWh