我使用ModelChain类来估计一个虚构的太阳能工厂的DC和AC值。输入参数包括模块、逆变器、串数、模块数、模块数、反照率、PVGIS数据等。应用简单的数学方法计算每串模块数和每个逆变器串数,然后创建一个PVSystem对象,该对象由单个PVArray、每个逆变器组成。I为每个逆变器运行ModelChain模型,为了简单起见,将AC输出相加以估计所有数组的总AC值,如下所示:
for idx in range(0, num_of_inverters):
array = {
'name': f'pvsystem-{idx+1}-array',
'mount': mount,
'module': module_name,
'module_parameters': module_parameters,
'module_type': module_type,
'albedo': albedo,
'strings': strings_per_inverter,
'modules_per_string': modules_per_string,
'temperature_model_parameters': temperature_model_parameters,
}
pvsystem=pvlib.pvsystem.PVSystem(arrays=[pvlib.pvsystem.Array(**array)], inverter_parameters=inverter_parameters)
mc = pvlib.modelchain.ModelChain(pvsystem, location)
mc.run_model(tmy_weather)
total_ac += mc.results.ac.sum()根据PVLib文档,AC输出为年(以Watts hour计)。
但现在,我需要得到直流输出,以及(每年瓦茨小时),以便我可以计算的DC/AC ratio。运行mc.results.dc为我提供了一个Dataframe,其中有几个对像我这样的新手很难掌握的值(列):
i_sc : Short-circuit current (A)
i_mp : Current at the maximum-power point (A)
v_oc : Open-circuit voltage (V)
v_mp : Voltage at maximum-power point (V)
p_mp : Power at maximum-power point (W)
i_x : Current at module V = 0.5Voc, defines 4th point on I-V curve for modeling curve shape
i_xx : Current at module V = 0.5(Voc+Vmp), defines 5th point on I-V curve for modeling curve shape我尝试使用p_mp并将其加起来:mc.results.dc['p_mp'].sum(),但是输出比估计的AC大得多。我通常预计DC/AC比率在某个地方>1和<= 1.5,大致如此。然而,我得到的DC值大约大3-5倍,这可能意味着我做错了什么。
示例:1个字符串,1个变频器,每个字符串10个模块:
产出(每年):
AC: 869.61kW
DC: 3326.36kW
Ratio: 3.83任何帮助都是非常感谢的。
发布于 2022-03-30 02:05:45
至于总直流和交流发电值为何如此不同,是因为逆变器对于阵列的尺寸要小得多。逆变器的额定功率为250 W,这不超过一个模块在STC上产生的功率(按下面的Impo * Vmpo计算,或注意到模块名称中的"220“),您总共有10个模块。因此,即使是在很低的光下,逆变器也会饱和,总交流产量也会因此而严重减少。我想,如果你绘制一个图(mc.results.ac.plot()),你会看到每天的逆变器输出曲线被剪裁在250 W,而模拟的直流功率可以高出近10倍。当事情变得毫无意义时,画出你的时间序列总是个好主意!
In [23]: pvlib.pvsystem.retrieve_sam('cecinverter')['ABB__MICRO_0_25_I_OUTD_US_208__208V_']['Paco']
Out[23]: 250.0
In [24]: pvlib.pvsystem.retrieve_sam('sandiamod')['Canadian_Solar_CS5P_220M___2009_'][['Impo', 'Vmpo']]
Out[24]:
Impo 4.54629
Vmpo 48.3156
Name: Canadian_Solar_CS5P_220M___2009_, dtype: object另外还有几个注意事项:
num_of_inverters * mc.results.dc['v_mp'].sum())在我看来是毫无意义的。除了一些非常专业的电力电子工程contexts.外,伏特小时在我看来并不是一个有用的单位。
(220 W/module * 10 modules/string * 2 strings/inverter = 4400 W DC) / (250 W AC) = 17.6 (这是一个疯狂的DC/AC比率)。https://stackoverflow.com/questions/71668263
复制相似问题