Wetterdaten eingebunden

This commit is contained in:
2024-12-15 22:02:41 +01:00
parent 3ad2e47361
commit 047ee6ee0f

View File

@@ -6,22 +6,30 @@ from pvlib.location import Location
from pvlib.pvsystem import PVSystem from pvlib.pvsystem import PVSystem
from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS
# Daten Standort
latitude = 47.2675 latitude = 47.2675
longitude = 11.3910 longitude = 11.3910
tz = 'Europe/Vienna' tz = 'Europe/Vienna'
surface_tilt = 0 surface_tilt = 0
surface_azimuth = 180 surface_azimuth = 180
year = 2019
# Daten für Datenbank -> Module + WR
database_module = pvlib.pvsystem.retrieve_sam('SandiaMod') database_module = pvlib.pvsystem.retrieve_sam('SandiaMod')
database_inverter = pvlib.pvsystem.retrieve_sam('CECInverter') database_inverter = pvlib.pvsystem.retrieve_sam('CECInverter')
module = database_module['Canadian_Solar_CS5P_220M___2009_'] module = database_module['Canadian_Solar_CS5P_220M___2009_']
inverter = database_inverter['ABB__PVI_4_2_OUTD_US__208V_'] inverter = database_inverter['ABB__PVI_4_2_OUTD_US__208V_']
# PV-Anlage definieren
modules_per_string = 10 modules_per_string = 10
strings_per_inverter = 2 strings_per_inverter = 2
surface_tilt = 0
surface_azimuth = 180
# Temperaturparameter definieren
temperature_parameters = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass'] temperature_parameters = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
# Location+PVSystem-Objekte anlegen und Modelchain damit füttern
location = Location(latitude, longitude, tz) location = Location(latitude, longitude, tz)
system = PVSystem(surface_tilt=surface_tilt, surface_azimuth=surface_azimuth, module_parameters=module, system = PVSystem(surface_tilt=surface_tilt, surface_azimuth=surface_azimuth, module_parameters=module,
inverter_parameters=inverter, temperature_model_parameters=temperature_parameters, inverter_parameters=inverter, temperature_model_parameters=temperature_parameters,
@@ -29,11 +37,32 @@ system = PVSystem(surface_tilt=surface_tilt, surface_azimuth=surface_azimuth, mo
modelchain = ModelChain(system, location) modelchain = ModelChain(system, location)
times = pd.date_range(start='2021-07-01', end ='2021-07-07', freq='1min', tz=location.tz) # Ertragssimulation mit Clear-Sky Modell
clear_sky = location.get_clearsky(times) # times = pd.date_range(start='2021-07-01', end ='2021-07-07', freq='1h', tz=location.tz)
#clear_sky.plot(figsize=(16,9))
# clear_sky = location.get_clearsky(times)
# #clear_sky.plot(figsize=(16,9))
# modelchain.run_model(clear_sky)
# Ertragssimulation mit realen Strahlungsdaten aus Wetterjahr
# Hier ist Süden Azimuth = 0
# POA = Plane Of Array
poa_data, meta, inputs = pvlib.iotools.get_pvgis_hourly(latitude=latitude, longitude=longitude, start=year, end=year, raddatabase='PVGIS-SARAH3', components=True, surface_tilt=surface_tilt,
surface_azimuth=surface_azimuth-180, outputformat='json', usehorizon=True, userhorizon=None, pvcalculation=False, peakpower=None,
pvtechchoice='crystSi', mountingplace='free', loss=0, trackingtype=0, optimal_surface_tilt=False, optimalangles=False,
url='https://re.jrc.ec.europa.eu/api/', map_variables=True, timeout=30)
# Spaltennamen umschreiben, sodass Modelchain sie verwenden kann
poa_data['poa_diffuse'] = poa_data['poa_sky_diffuse'] + poa_data['poa_ground_diffuse']
poa_data['poa_global'] = poa_data['poa_diffuse'] + poa_data['poa_direct']
#poa_data.to_csv('poa_data.csv')
#Index des Dataframe mit datetime-Index von Pandas überschreiben
poa_data.index = pd.to_datetime((poa_data.index))
modelchain.run_model_from_poa(poa_data)
modelchain.run_model(clear_sky)
modelchain.results.ac.plot(figsize=(16,9)) modelchain.results.ac.plot(figsize=(16,9))
plt.show() plt.show()