I'm using the pvlib library for my masterthesis. When I run the example for times later than 4pm it is usually reporting for the ac power -0.02. Does somebody know why? I'm using the code below:
import pandas as pd
import numpy as np
# pvlib imports
import pvlib
from pvlib.pvsystem import PVSystem
from pvlib.location import Location
from pvlib.modelchain import ModelChain
# load some module and inverter specifications
sandia_modules = pvlib.pvsystem.retrieve_sam('SandiaMod')
cec_inverters = pvlib.pvsystem.retrieve_sam('cecinverter')
sandia_module = sandia_modules['Canadian_Solar_CS5P_220M___2009_']
cec_inverter = cec_inverters['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_']
location = Location(latitude=49.0205559, longitude=12.057453900000041)
system = PVSystem(surface_tilt=20, surface_azimuth=200,
module_parameters=sandia_module,
inverter_parameters=cec_inverter)
mc = ModelChain(system, location)
python_native_dt = datetime.datetime.now()
weather = pd.DataFrame([[1050, 1000, 100, 30, 5]],
columns=['ghi', 'dni', 'dhi', 'temp_air', 'wind_speed'],
index=[pd.Timestamp(pytz.timezone('Etc/GMT+2').localize(python_native_dt))])
mc.run_model(times=weather.index, weather=weather)
print(mc.ac)
Doing a mc.ac
will result in: 2018-06-05 16:20:19.117017-02:00 -0.02
dtype: float64
The -0.02
is the energy your chosen inverter consumes when the input dc power is below its activation threshold.
To improve reproducibility and help us track down the answer, I suggest you specify an exact time rather than relying on datetime.datetime.now()
. Using index=[pd.Timestamp('2018-06-05 16:20:19.117017-02:00')]
, I get 2018-06-05 16:20:19-02:00 13.660678
.
I suggest that you confirm that mc.aoi
and mc.solar_position
are consistent with your weather inputs. They are derived from the time index and used to calculate the plane of array irradiance.
If that does not help... What versions of pvlib and pandas? Note that the example also needs import pytz
and import datetime
to run.