我使用 pvlib 的每小时光伏发电量在早上异常高,在晚上异常低。高峰似乎向早晨移动。这是随机一天的输出功率和相应的辐照度数据 (W/m2):
Time | AC Power [kW] | GHI | DHI | DNI |
-------|---------------|-----|-----|-----|
6:00 | 0 | 4 | 1 | 0 |
7:00 | 22 | 161 | 66 | 589 |
8:00 | 29 | 390 | 153 | 608 |
9:00 | 35 | 592 | 220 | 629 |
10:00 | 37 | 754 | 262 | 654 |
11:00 | 36 | 830 | 283 | 635 |
12:00 | 34 | 874 | 291 | 638 |
13:00 | 31 | 894 | 292 | 668 |
14:00 | 24 | 828 | 280 | 659 |
15:00 | 15 | 695 | 251 | 631 |
16:00 | 5 | 514 | 198 | 601 |
17:00 | 3 | 299 | 128 | 550 |
18:00 | 1 | 74 | 39 | 430 |
可以看出,功率与辐照度数据并不真正匹配,并且似乎转移到了更早的时间。需要指出的是,辐照度数据是模拟的 GHI 和 DHI 和计算的 DNI。系统的最大交流输出为 40 kW,受逆变器限制。
你知道为什么会这样吗?我是否监督一些明显的事情?我试图更改没有改变任何东西的时区声明。我还尝试将倾斜角从 5 更改为 45,这奇怪地导致更高的 PV 输出功率。这个纬度绝对不应该是这样。谢谢,堆!
这是我的 PVlib 模型的代码:
'''
TMY_Dataframe creation --> uses function from tmyDataImport Module
'''
tmy_df=ti.tmyData('DHI.csv','Weather.csv',highres=False)
"""
Location declaration
"""
lat_ref=0.20
long_ref=35
tz_ref='Africa/Nairobi'
alt_ref=1155.0
loc=Location(latitude=lat_ref, longitude=long_ref, tz=tz_ref,
altitude=alt_ref)
"""
PVSystem declaration
"""
cec_modules = pvlib.pvsystem.retrieve_sam('CECMod')
# sandia_modules = pvlib.pvsystem.retrieve_sam('SandiaMod')
cec_inverters=pvlib.pvsystem.retrieve_sam('cecinverter')
tilt_ref=5
azi_ref=180 #South
alb_ref=None
surf_type_ref='grass'
mod_ref=None
mod_para_ref=cec_modules['Trina_Solar_TSM_325PD14']
mod_p_str_ref=19
str_p_inv_ref=1
inv_ref=None
inv_para_ref=cec_inverters['Fronius_USA__IG_Plus_5_0_1_UNI__240V__240V__CEC_2018_']
rack_ref='open_rack_cell_glassback'
losses_ref=None
pvsyst=PVSystem(surface_tilt=tilt_ref, surface_azimuth=azi_ref, albedo=alb_ref, surface_type=surf_type_ref,
module=mod_ref, module_parameters=mod_para_ref, modules_per_string=mod_p_str_ref, strings_per_inverter=str_p_inv_ref,
inverter=inv_ref, inverter_parameters=inv_para_ref, racking_model=rack_ref, losses_parameters=losses_ref)
"""
ModelChain declaration
"""
pvsys_ref=pvsyst
loc_ref=loc
orient_strat_ref=None
sky_mod_ref='ineichen'
transp_mod_ref='haydavies'
sol_pos_mod_ref='nrel_numpy'
airm_mod_ref='kastenyoung1989'
dc_mod_ref='cec'
ac_mod_ref=None
aoi_mod_ref='physical'
spec_mod_ref='no_loss'
temp_mod_ref='sapm'
loss_mod_ref='no_loss'
moch=ModelChain(system=pvsys_ref, location=loc_ref, orientation_strategy=orient_strat_ref,
clearsky_model=sky_mod_ref, transposition_model=transp_mod_ref, solar_position_model=sol_pos_mod_ref,
airmass_model=airm_mod_ref, dc_model=dc_mod_ref, ac_model=ac_mod_ref, aoi_model=aoi_mod_ref,
spectral_model=spec_mod_ref, temp_model=temp_mod_ref, losses_model=loss_mod_ref)
moch.run_model(times=tmy_df.index, weather=tmy_df)
ac_power=moch.ac*8/1000
ac_power = ac_power.reset_index(drop=False)
ac_power = ac_power.rename(columns={0: "PV Power [kW]"})
ac_power.loc[(ac_power['PV Power [kW]'] < 0, 'PV Power [kW]')]=0
ac_power.to_csv('pvPower.csv')