我遵循here找到的基本示例,以15分钟的间隔模拟一个简单系统的能量生成。
但是,我想知道如何按照相同的基本示例在系统中引入损失。也就是说,使用以下代码:
import pandas as pd
import matplotlib.pyplot as plt
import pvlib
from pvlib.pvsystem import PVSystem
from pvlib.location import Location
from pvlib.modelchain import basic_chain, ModelChain
#%%
naive_times = pd.DatetimeIndex(start='01-30-2017', end='08-02-2017', freq='15min')
coordinates = [(52, 4, 'Amsterdam', 10, 'Etc/GMT-1')]
sandia_modules = pvlib.pvsystem.retrieve_sam('SandiaMod')
sapm_inverters = pvlib.pvsystem.retrieve_sam('cecinverter')
module = sandia_modules['Hanwha_HSL60P6_PA_4_250T__2013_']
inverter = sapm_inverters['ABB__PVI_10_0_I_OUTD_x_US_208_y_208V__CEC_2011_']
temp_air = 20
wind_speed = 0
system = PVSystem(surface_tilt = 13, surface_azimuth = 270, module_parameters = module, modules_per_string = 20, strings_per_inverter = 2, inverter_parameters = inverter)
for latitude, longitude, name, altitude, timezone in coordinates:
location = Location(latitude, longitude, name=name, altitude=altitude, tz=timezone)
mc = ModelChain(system, location, orientation_strategy=None)
mc.run_model(naive_times.tz_localize(timezone))
ac = mc.ac
energy = ac*0.001*0.25
plt.figure()
energy.plot()
我想要的是与此类似的东西,从实际测量中获得:
详细说明,
如您所见,阴影,DC损失等造成很多损失。
我现在的问题是如何从我的代码示例开始,并实现类似于图像2和3中的图表?
提前致谢!
答案 0 :(得分:1)
您的问题是关于直流损耗和阴影,但您当前的ModelChain和真实系统之间的最大区别是天气,特别是辐照度,因为连续两天不相同,这是由于云层变化,而不是静态损失。
关于readthedocs的例子:https://pvlib-python.readthedocs.io/en/latest/modelchain.html包括在步骤4中应用天气数据。继续在Demystifying ModelChain Internals中,它定义了天气。不幸的是,它不适用于POA(阵列平面)辐照度,这是现场测量的最常见类型。但是,ghi和dhi可以从POA估算,但显然没有实现任何功能。
weather : None or DataFrame, default None
If None, assumes air temperature is 20 C, wind speed is 0
m/s and irradiation calculated from clear sky data. Column
names must be 'wind_speed', 'temp_air', 'dni', 'ghi', 'dhi'.
Do not pass incomplete irradiation data. Use method
:py:meth:`~pvlib.modelchain.ModelChain.complete_irradiance`
instead.
readthedoc页面确实提供了一些有关添加不同类型DC损耗的信息,主要是通过特定的物理模型(aoi或频谱)。不幸的是,阴影很复杂,取决于系统及其周围环境,没有人创建了阴影损耗模块。