Performance of Solar Power Plant Based on ERA5 Data

From Simulace.info
Revision as of 23:09, 1 January 2025 by Matj27 (talk | contribs) (Workflow)
Jump to: navigation, search

This simulation is modelling the potential energy output of a solar power plant located in Okres Louny, Czech Republic. Simulation is based on historical meteorological data from the ERA5 reanalysis dataset to determine an energy production estimates over a year. This kind of simulation can help potential investors into solar power plants - both households as well as commercial entities to calculate feasibility of installation of the solar power plant based on potencial energy production and their electrical power consumption.

Methods

Simulation is created using Monte Carlo method.

Technologies used were Python 3.12 for downloading and processing ERA5 GRIB data and Microsoft Excel for running the Monte Carlo simulation.

Workflow

Please note, that Czech version of Excel was used and thus function names and all of the other language-specific settings are aligned to this environment.

1. Data downloading and processing

ERA5 is the fifth generation ECMWF reanalysis for the global climate and weather for the past 8 decades. Data is available from 1940 onwards. It provides hourly estimates for a large number of atmospheric, ocean-wave and land-surface quantities one of which is surface solar radiation downwards. Data were thus downloaded from ECMWF public archive of ERA5 using ECMWF CDS API and Python in GRIB data format.

The data requested were from dataset reanalysis-era5-single-levels from January 2015 to November 2024, since this simulation took place in December 2024. Only variable surface_solar_radiation_downwards has been requested, since this parameter is the amount of solar radiation that reaches a horizontal plane at the surface of the Earth and thus is perfect for the purpose of this simulation. Because this simulation is aimed to estimate power outputs of solar power plant located in Okres Louny, Czech Republic (Roughly N 50°21′00″; E 013°47′00″), the requested area was specified by bbox [[13.75, 50.5],[14.00, 50.5],[14.00, 50.25],[13.75, 50.25],[13.75, 50.5]] (in CDS API call the array [50.50, 13.75, 50.25, 14.00] has been used) - that is because ERA5 resolution is cca. 31 km - 0.25° grid.

This data was then processed using Python's xarray and pandas libraries into CSV file containing columns 'valid_time,latitude,longitude,ssrd_j,ssrd_wh' where valid_time is date and time of row entry, latitude and longitude is geographical location to which this data corresponds, ssrd_j is value of surface solar radiation downwards in J/m^2 and ssrd_wh is value of surface solar radiation downwards in Wh/m^2. ssrd_wh was computed from ssrd_j by multiplying this value by 0.000277777778 (1 J = 0.000277777778 Wh). Also only the data for position closest to the Louny was extracted (N50.25; E013.75 - Solopysky, around 12 km straight from Louny)

Format of final CSV is as follows:

valid_time,latitude,longitude,ssrd_j,ssrd_wh
2022-01-01 00:00:00,50.25,13.75,0.0,0.0
2022-01-01 01:00:00,50.25,13.75,0.0,0.0
2022-01-01 02:00:00,50.25,13.75,0.0,0.0
2022-01-01 03:00:00,50.25,13.75,0.0,0.0
2022-01-01 04:00:00,50.25,13.75,0.0,0.0
2022-01-01 05:00:00,50.25,13.75,0.0,0.0
2022-01-01 06:00:00,50.25,13.75,0.0,0.0
2022-01-01 07:00:00,50.25,13.75,0.0,0.0
2022-01-01 08:00:00,50.25,13.75,23808.0,6.6133337
2022-01-01 09:00:00,50.25,13.75,87360.0,24.266666
2022-01-01 10:00:00,50.25,13.75,211136.0,58.64889
2022-01-01 11:00:00,50.25,13.75,381056.0,105.84889
2022-01-01 12:00:00,50.25,13.75,522752.0,145.2089
2022-01-01 13:00:00,50.25,13.75,562112.0,156.14223
...
...
...
2024-11-30 11:00:00,50.25,13.75,642816.0,178.56
2024-11-30 12:00:00,50.25,13.75,617088.0,171.41333
2024-11-30 13:00:00,50.25,13.75,481024.0,133.61778
2024-11-30 14:00:00,50.25,13.75,294528.0,81.81333
2024-11-30 15:00:00,50.25,13.75,73792.0,20.497778
2024-11-30 16:00:00,50.25,13.75,0.0,0.0
2024-11-30 17:00:00,50.25,13.75,0.0,0.0
2024-11-30 18:00:00,50.25,13.75,0.0,0.0
2024-11-30 19:00:00,50.25,13.75,0.0,0.0
2024-11-30 20:00:00,50.25,13.75,0.0,0.0
2024-11-30 21:00:00,50.25,13.75,0.0,0.0
2024-11-30 22:00:00,50.25,13.75,0.0,0.0
2024-11-30 23:00:00,50.25,13.75,0.0,0.0

2. Excel data import and preparation.

The previously generated CSV file was imported into Excel using data import tool - Data tab, Load and Transform data - From text/CSV into sheet solar_radiance_data. This newly imported table/data range has been assigned with name in Excel Name Manager and will be further referenced as solar_radiance_data.

Into solar_radiance_data two columns were added:

yearmonthday

yearmonthday: =CONCAT(HODNOTA.NA.TEXT(ROK([@[valid_time]]);"00");HODNOTA.NA.TEXT(MĚSÍC([@[valid_time]]);"00");HODNOTA.NA.TEXT(DEN([@[valid_time]]);"00"))

monthday

monthday: =ZPRAVA([@yearmonthday];4)

These will be useful in the future to filter out and calculate average solar radiance of one user-specified day throughout the historical data.

For the same purpose column unique_days (with the same name in Excel Name Manager) has been created in separate sheet unique_days

unique_days: =ZPRAVA(UNIQUE(solar_radiance_data[yearmonthday]);4)


3. Monte Carlo Simulation Inputs and Outputs

First of all, new sheet monte_carlo has been created. In this sheet, the table for User input was created as follows:

User input
PP_PANEL_AREA [m^2] 1,75
PP_PANEL_NUM 16
PP_PANEL_EFFICIENCY 0,206
PP_PERFORMANCE_RATIO 0,75
MC_PANEL_EFFICIENCY_SD 0,05
MC_DAILY_SOLAR_VARIANCE 0,2
MC_SIMULATION_DATE 25.07.2025

In this example, modeled power plant consist of 16 Panasonic EverVolt solar panels of area 1,75 m². Panel efficiency is sourced from manufacturer specs sheet and is 20,6 %. Performance ratio of the power plant itself (like power inverter etc.) is expected to be 75 %. Standart deviation of panel efficiency is expected to be 5 % and daily solar variance is expected to be 20 % for Czech Republic. Example date is 25th June 2025.

The second table is output of Monte Carlo Simluation and some other useful information:

Monte Carlo output
PP_POWER_PLANT_AREA 28
MC_SIMULATION_DAYMONTH 0725
AVERAGE_DAY_RADIATION [Wh/m^2] 5775,94
MEAN_PRODUCTION [Wh] 24973,25
STDANDART_DEVIATION [Wh] 7929,37

The first variable is self explanatory and is only simple multiplication of

PP_POWER_PLANT_AREA: =PP_PANEL_AREA*PP_PANEL_NUM

Variable MC_SIMULATION_DAYMONTH is used to filter days from solar_radiance_data and calculate AVERAGE_DAY_RADIATION

AVERAGE_DAY_RADIATION: =SUMIFS(solar_radiance_data[ssrd_wh];solar_radiance_data[monthday];MC_SIMULATION_MONTHDAY)/COUNTIF(unique_days;MC_SIMULATION_MONTHDAY)

Name AVERAGE_DAY_RADIATION is once again self explanatory - it is an average solar radiance amount for selected day based on historical data (in Wh/m²)

Finally variables MEAN_PRODUCTION and STANDART_DEVIATION are output variables of Monte Carlo simulation and as its names suggest, they represent values of normal distribution of power plant's power output. More explanation of this simulation is below.

4. Monte Carlo Simulation

Please note that after new opening of this Excel spreadsheet, recalculating of the values by pressing F9 does not work. I don't know why, but it seems like some kind of limitation of Excel itself - maybe some kind of security protection since I am importing data from CSV..? To recalculate output values, you need to go into funciton input bar at the top of any input field (for example MEAN_PRODUCTION variable) and press Enter there. After that the values of MEAN_PRODUCTION as well as STANDART_DEVIATION is recalculated and pressing F9 to recalculate entire spreadsheet works as well.

References

Czech Educational and Scientific Network (CESNET). (n.d.). ERA5. Metacentrum Documentation. Accessed on: 1st December 2024. Accessible at: https://docs.metacentrum.cz/related/collgs/era5/

Copernicus Climate Change Service, Climate Data Store, (2023). ERA5 hourly data on single levels from 1940 to present. Copernicus Climate Change Service (C3S) Climate Data Store (CDS). DOI: 10.24381/cds.adbb2d47. Accessed on: 1st December 2024. Accessible at: https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels

Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., Thépaut, J-N. (2023). ERA5 hourly data on single levels from 1940 to present. Copernicus Climate Change Service (C3S) Climate Data Store (CDS). DOI: 10.24381/cds.adbb2d47. Accessed on: 1st December 2024. Accessible at: https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels

Panasonic. (2022). Evervolt(R) 360K Specification Sheet. EVERVOLT(R) SOLAR MODULE BLACK SERIES. Accessed on: 1st December 2024. Accessible at: https://ftp.panasonic.com/solar/evervolt/evervolt_black_series_datasheet.pdf

Photovoltaic-software.com. (2024). How to calculate the annual solar energy output of a photovoltaic system?. In Photovoltaic-software.com. Acessed on: 1st December 2024. Accessible at: https://photovoltaic-software.com/principle-ressources/how-calculate-solar-energy-power-pv-systems

Šalamon, T. & Svatoš, O. (2024). Lectures for 4IT496 Simulations of Systems. Faculty of Informatics and Statistics University of Economics and Business Prague. Accessed on: 1st December 2024. Accessible via document server in InSIS (insis.vse.cz)

Wikipedia contributors. (2024). Monte Carlo method. Wikipedia, The Free Encyclopedia. Accessed on: 1st December 2024. Accessible at: https://en.wikipedia.org/w/index.php?title=Monte_Carlo_method&oldid=1262423747