rl-institut / multi-vector-simulator

Multi-vector Simulation Tool assessing and optimizing Local Energy Systems (LES) for the E-LAND project
GNU General Public License v2.0
21 stars 10 forks source link

LCOE Asset can be usefull even for unused assets #784

Open TheOneAndra opened 3 years ago

TheOneAndra commented 3 years ago

For assets with time series, it would be possible to show the LCOE even if they are not used and their aggregated flow is 0 after the optimization. By having the LCOE, the end user can compare easily the different assets and can maybe understand why a particular asset is not used.

https://multi-vector-simulator.readthedocs.io/en/latest/MVS_Outputs.html?highlight=annuity#levelized-cost-of-energy-of-asset-lcoe-asset

Example given: Here I would like to know (as an end user) what is the LCOE of my PV to compare it with the LCOE of my wind turbine asset (last column) and see of that is the reason my PV asset is not used. grafik

TheOneAndra commented 3 years ago

@smartie2076 you suspected the LCOE is anyway calculated for assets with time series and then replace by 0 if the asset is not used (has no aggregated flow) right?

TheOneAndra commented 3 years ago

In another example I have costs even though my asset is not used:

grafik

So the underlying question is: How is the annuity_total calculated (highlighted column)? I couldn't find it in the RTD.

smartie2076 commented 3 years ago

annuity_total

First of all, the annuity is calculated based on the development_cost, specific_cost, specific_cost_om and dispatch_cost of your asset. For a not-installed asset, the latter three (the simulation_annuity calculated here) are 0 - but the development costs are still taken into account for calculating the NPC, so they also appear in the table above.

I am not sure if we should create an exception where the development costs are not added to the systems costs in case that the optimized cap is zero. If the development costs are project design costs, they are still spent in any case and should be added.

LCOE asset

There is the check C1.check_feedin_tariff_vs_levelized_cost_of_generation_of_production() that calculates a preliminary levelized cost of generation, which is however not stored in the dict_values. This is because there might be development_costs (and actually the equation wrongfully neglects dispatch_costs) that also need to be taken into account to calculate the real cost per generated unit. So, in E2.lcoe_assets() are calculated (see here) based on the actual generation / thoughput though the asset. If there is no thoughput, the costs per thoughput are defined to be zero.