如何计算单轴跟踪光伏系统的辐照度POA数据?



我想使用 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 的 HSAT 实例的 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') 

但是,当我绘制hsat_poa时,我得到的看起来像是固定倾斜系统的POA数据。

当我查看源代码时,我注意到SingleAxisTracker.get_irradiance方法最终调用了 location.total_irrad() 方法,该方法仅返回固定倾斜系统的 POA 数据。

我是否需要提供HSAT系统的下行surface_tilt数据?我假设 pvlib 对 HSAT 系统进行建模,并将根据 SingleAxisTracker 类实例化中提供的参数为我生成surface_tilt值。但事实似乎并非如此。

所以我的问题是,pvlib 是否需要跟踪器角度作为输入来计算单轴跟踪器系统的 POA 数据,或者它可以根据axis_tilt、max_angle和回溯等元数据对跟踪器角度本身进行建模?

原来 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

它能否根据元数据对跟踪器角度本身进行建模,例如axis_tiltmax_anglebacktrack

PVLIB的ModelChain将做到这一点。有关将ModelChainSingleAxisTracker一起使用的示例,请参阅光伏功率预测文档。

相关内容

最新更新