0

我使用 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')
4

1 回答 1

0

我解决了=D。问题出在 TMY 文件中。当我在 tmyData() 函数中创建时间戳时,我没有指定 tz=pytz.timezone('Africa/Nairobi'),这显然将其默认设置为 UTC。现在,功率输出是有意义的。

干杯阿克塞尔

于 2019-06-17T16:39:16.487 回答