import pandas as pd import pvlib import matplotlib.pyplot as plt # Standortbedingungen (z.B. München, Deutschland) latitude = 48.1351 longitude = 11.5820 tz = 'Europe/Berlin' # Abrufen der Wetter- und Strahlungsdaten für den Standort von PVGIS weather_data, meta = pvlib.iotools.get_pvgis_tmy(latitude, longitude) # Zeitstempel setzen und Zeitzonenkonvertierung weather_data.index = weather_data.index.tz_localize(tz) # PV Modulbedingungen module_parameters = { 'pdc0': 240, 'gamma_pdc': -0.004 } # Wechselrichterbedingungen inverter_parameters = { 'pdc0': 240, 'eta_inv_nom': 0.96 } # Erstellung des Standort-Objekts site = pvlib.location.Location(latitude, longitude, tz=tz) # Solarpositions-Array solar_position = site.get_solarposition(weather_data.index) # Erstellen eines PV-Systems system = pvlib.pvsystem.PVSystem( surface_tilt=30, surface_azimuth=180, module_parameters=module_parameters, inverter_parameters=inverter_parameters ) # Berechnen der Einfallswinkelmodifikatoren (AOI) mc = system.get_aoi(solar_position['apparent_zenith'], solar_position['azimuth']) # Berechnen der Strahlungswerte auf der Moduloberfläche poa_irrad = system.get_irradiance(weather_data['Gb(n)'], weather_data['G(h)'], weather_data['Gd(h)'], mc) # Modellierung der Zelltemperatur tcell = pvlib.temperature.sapm_cell(poa_irrad['poa_global'], weather_data['T2m'], weather_data['WS10m']) # Modellierung der DC-Leistung dc_power = system.pvwatts_dc(poa_irrad['poa_global'], tcell) # Modellierung der AC-Leistung ac_power = system.pvwatts_ac(dc_power) # Jahresertrag berechnen annual_energy = ac_power.sum() / 1000 # kWh print(f"Jährlicher Output: {annual_energy:.2f} kWh") # Plot der Ergebnisse ac_power.plot() plt.ylabel('AC Leistung (W)') plt.xlabel('Datum') plt.title('Täglicher Ertrag einer PV-Anlage in kWh') plt.show()