为什么网站上的简单模型链示例计算负交流电?

时间:2018-06-07 08:39:27

标签: python pvlib

我正在使用pvlib库进行修饰。当我在晚上4点之后运行该示例时,通常会报告交流电源-0.02。有人知道为什么吗?我正在使用以下代码:

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)

执行mc.ac将导致:2018-06-05 16:20:19.117017-02:00 -0.02 dtype: float64

2 个答案:

答案 0 :(得分:1)

-0.02是当输入直流功率低于其激活阈值时所选逆变器消耗的能量。

为了提高可重复性并帮助我们找到答案,我建议您指定一个确切的时间而不是依赖datetime.datetime.now()。使用index=[pd.Timestamp('2018-06-05 16:20:19.117017-02:00')],我得到2018-06-05 16:20:19-02:00 13.660678

我建议您确认mc.aoimc.solar_position与您的天气输入一致。它们来自时间指数,用于计算阵列辐照度的平面。

如果这没有用......什么版本的pvlib和pandas?请注意,该示例还需要import pytzimport datetime才能运行。

答案 1 :(得分:0)

G'day马克西米利安,

我怀疑这是天气数据帧。我已经注意到,来自NWP中心(我正在使用ECMWF ERA5)的大多数气象文件都代表累积的DNI GHI DHI。对于ERA5数据,我注意到原始数据的负功率值。

除以60(秒)* 60(分钟)从累积转换为W / s后,它起作用了。