PVLIB中东西向混合阵列AC输出削波而非求和问题求助
问题原因与解决方案
你的逆变器AC输出出现削波,核心原因是逆变器的直流额定功率设置过小,无法承载两个阵列的总直流输出功率:
- 西向阵列总直流额定功率:
5*1=5 - 东向阵列总直流额定功率:
6*1=6 - 阵列总直流额定功率:
5+6=11 - 你设置的逆变器
pdc0=3远小于总容量,当直流输入超过3时,逆变器会触发限功率逻辑,导致AC输出被削波,无法达到阵列功率总和。
修改方案
调整PVSystem中的逆变器参数,将pdc0设置为大于等于阵列总直流额定功率的值,比如12:
system = pvsystem.PVSystem(arrays=arrays, inverter_parameters=dict(pdc0=12))
修改后的完整代码:
from pvlib import pvsystem, modelchain, location import pandas as pd import matplotlib.pyplot as plt array_kwargs = dict( module_parameters=dict(pdc0=1, gamma_pdc=-0.004), temperature_model_parameters=dict(a=-3.56, b=-0.075, deltaT=3) ) arrays = [ pvsystem.Array(pvsystem.FixedMount(40, 275), name='West', modules_per_string=5, **array_kwargs), pvsystem.Array(pvsystem.FixedMount(40, 85), name='East', modules_per_string=6, **array_kwargs), ] # latitude, longitude loc = location.Location(50.0, 10.0, 'Etc/GMT-1') # 修改逆变器pdc0为12,适配阵列总容量 system = pvsystem.PVSystem(arrays=arrays, inverter_parameters=dict(pdc0=12)) mc = modelchain.ModelChain(system, loc, aoi_model='physical', spectral_model='no_loss') times = pd.date_range('2023-05-29 04:00', '2023-05-29 21:00', freq='5min', tz='Etc/GMT-1') weather = loc.get_clearsky(times) mc.run_model(weather) fig, ax = plt.subplots() for array, pdc in zip(system.arrays, mc.results.dc): pdc.plot(label=f'{array.name}') mc.results.ac.plot(label='Inverter') plt.ylabel('Power') plt.legend() plt.show()
补充说明
PVlib的ModelChain会严格模拟逆变器的实际工作特性:当输入直流功率超过逆变器的pdc0(直流额定输入功率)时,逆变器会启动功率限制,将交流输出限制在其额定交流功率范围内(受转换效率影响,通常略低于pdc0乘以效率)。因此必须保证逆变器容量匹配阵列总输出能力,才能得到无削波的AC总和输出。
内容的提问来源于stack exchange,提问作者monok
相关产品推荐
相关产品推荐

