首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从PVlib确定奇形怪状的光伏小时功率输出曲线问题

如何从PVlib确定奇形怪状的光伏小时功率输出曲线问题
EN

Stack Overflow用户
提问于 2019-06-17 19:06:07
回答 1查看 108关注 0票数 0

我每小时使用pvlib的光伏功率在早上很高,晚上很低。看起来高峰期被移到了早上。这是随机一天的输出功率和相应的照度数据(W/m2):

代码语言:javascript
复制
  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,这奇怪地导致了更高的光伏输出功率。这绝对不应该是这种纬度的情况。谢谢,希普斯!

下面是我的PVlib模型的代码:

代码语言:javascript
复制
'''
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')
EN

回答 1

Stack Overflow用户

发布于 2019-06-18 00:39:16

我解决了它=D。问题在TMY文件中。当我在我的tmyData()函数中创建时间戳时,我没有指定tz=pytz.timezone(‘非洲/内罗毕’),这显然在缺省情况下将其设置为UTC。现在,功率输出是有意义的。

干杯Axel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56630024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档