我想使用pvlib库来计算单轴跟踪器系统的辐照度POA数据。
从文档中可以看出,通过创建一个pvlib.tracking.SingleAxisTracker类(具有适当的元数据),然后调用get_irradiance方法,这是可能的。
我已经这样做了:
HSAT = SingleAxisTracker(axis_tilt=0,
axis_azimuth=167.5,
max_angle=50,
backtrack=True,
gcr=0.387)然后,我使用我刚刚创建的SingleAxisTracker的that实例的get_irradiance方法,希望它使用我刚刚输入的元数据来计算这个水平单轴跟踪器系统的POA数据:
hsat_poa = HSAT.get_irradiance(surface_tilt=0,
surface_azimuth=167.5,
solar_zenith=sz,
solar_azimuth=sa,
dni=dni,
ghi=ghi,
dhi=dhi,
airmass=None,
model='haydavies') 然而,当我转到plot hsat_poa时,我得到的似乎是固定倾斜系统的POA数据。
在查看源代码时,我注意到SingleAxisTracker.get_irradiance方法最终调用location.total_irrad()方法,该方法只返回固定倾斜系统的POA数据。
我是否需要提供HSAT系统中的down surface_tilt数据?我假设pvlib对HSAT系统进行建模,并根据SingleAxisTracker类实例化中提供的参数为我生成surface_tilt值。但事实似乎并非如此。
所以我的问题是,pvlib是否需要将跟踪器角度作为输入来计算单轴跟踪器系统的POA数据,或者它是否可以基于axis_tilt、max_angle和回溯等元数据对跟踪器角度本身进行建模?
发布于 2018-01-19 07:26:07
事实证明pvlib.tracking.singleaxis()是缺少的一环。
这将决定单轴跟踪器系统的旋转角度。
tracker_data = pvlib.tracking.singleaxis(solar_position['apparent_zenith'],
solar_position['azimuth'],
axis_tilt=MOUNTING_TILT,
axis_azimuth=MOUNTING_AZIMUTH,
max_angle=MAX_ANGLE,
backtrack=True,
gcr=MOUNTING_GCR)然后像这样使用tracker_data:
hsat_poa_model_tracker = HSAT.get_irradiance(surface_tilt=tracker_data['surface_tilt'],
surface_azimuth=tracker_data['surface_azimuth'],
solar_zenith=solar_position['apparent_zenith'],
solar_azimuth=solar_position['azimuth'],
dni=dni,
ghi=ghi,
dhi=dhi,
airmass=None,
model='haydavies') 将计算单轴跟踪器的POA数据。
在这个jupyter笔记本中找到了答案:http://nbviewer.jupyter.org/github/pvlib/pvlib-python/blob/master/docs/tutorials/tracking.ipynb
发布于 2018-01-21 08:55:09
是否可以基于
axis_tilt、max_angle和backtrack等元数据对跟踪器角度本身进行建模?
pvlib的ModelChain可以做到这一点。有关将ModelChain与SingleAxisTracker一起使用的示例,请参阅PV Power Forecast文档。
https://stackoverflow.com/questions/48330993
复制相似问题