跳转到内容

教程3. 查看'模型'中的相互依赖性

示例3更详细地研究了”模型”中的不确定性,这通常指将天气转换为AC产量的PVsyst模型,但不包括可用性、限电和退化等运行损失。

在许多产量预测中,“模型误差”设置为标准差为σ = 0.02或0.03的高斯分布,并使用解析平方和方法与其他不确定性组合。

这合适吗?

此示例不涉及模型不确定性的大小(这将强烈依赖于场地和输入的知识),而是说明确定该模型误差的方法。它还解决了标准平方和方法所忽略的相互依赖性问题。

示例3不包括所有不确定性来源,而是专注于与模型相关的几个主要来源。除了GHI的不确定性(与示例1和2相同)外,它还引入了天气的其他三个方面的不确定性:

  1. 风速,其变异性远高于GHI,会影响热行为;

  2. 散射分数,即散射辐照度的分数(DHI/GHI);以及

  3. 环日分数的不确定性,实际上是HayDavies或Perez转置模型中的误差。

示例3还引入了与热模型相关的两个变量的不确定性:Uc和Uv。这些系数决定了光伏组件的温度如何依赖于天气条件。它们的值可能因地点和不同系统类型而有很大差异,并且它们的不确定性很高。

最后,该示例保留了组件铭牌功率的不确定性,并增加了电气失配的不确定性,这是由非均匀辐照度引起的。

来源95%置信区间GHI, 变量, ±5% rel散射分数, 变量, ±10% rel环日分数, 变量, ±10% rel风速, 变量, ±50% rel组件铭牌功率, 460 W, ±20 WUc, 25 W/m²/K, ±10 W/m²/KUv, 2.0 W∙s/m³/K, ±1.5 W∙s/m³/K电气失配, 2%, ±2% abs

与示例1和2一样,我们计算标准差为相对不确定性的一半,σ = (绝对不确定性/值) / 2。因此,输入值和高斯分布定义如下:

输入x₀σGHI, 在天气文件中, 1, 0.025DiffuseFraction, 在天气文件中, 1, 0.05CircumsolarFraction, 在天气文件中, 1, 0.05WindSpeed, 在天气文件中, 1, 0.25ModulePower, 460 W, 1, 0.02174Uc, 25 W/m²/K, 1, 0.2Uv, 2.0 W∙s/m³/K, 1, 0.375CellToCellMismatch, 0.02, 1, 0.5

在此示例中(实际上也是如此),所有这些新变量的不确定性都显著高于GHI和铭牌功率的不确定性。例如,风速的不确定性(σ = 0.25)是GHI不确定性(σ = 0.025)的十倍。

但与GHI和铭牌功率不同,产量不强烈依赖于这些其他参数。也就是说,虽然当GHI或铭牌功率翻倍时产量大致翻倍,但当风速翻倍或Uc减半时它不会大致翻倍。

产量不确定性对散射分数、环日分数、风速、Uc和Uv等参数的不确定性的依赖性要复杂得多,并且很难解析计算。复杂性源于产量不线性或独立地依赖于这些参数。

例如,如果风速低于预期,组件运行得更冷,变得更高效,因此在相同辐照度下比预期产生更多电力。然而,产量的相对变化不仅取决于风速的相对变化,还取决于Uc、Uv、环境温度等其他参数。这些相互依赖性使得使用平方和方法计算产量的不确定性变得困难---但它们重要吗?

我们现在运行模拟来演示如何评估这一点。

通过将此文本块复制到步骤3来加载输入:

# Set uncertainty simulation constants
simulation_options = build_simulation_options(
number_of_years=1,
number_of_simulations=20000
)
# Load weather: sydney.pvw file is an example weather file
weather_file_path = "Data/sydney.pvw"
weather_data = load_weather_data_from_pvw_file(weather_file_path)
# Assign system inputs
electrical_settings = build_electrical_settings(
inverter_efficiency = 1,
)
thermal_settings = build_thermal_settings(
uc = 25,
uv = 2.0,
)
module_info = build_module_info(
power_at_stc=460,
cell_to_cell_mismatch=0.02,
)
#Otherwise use all defaults
system_info = build_system_info()
optical_settings = build_optical_settings()
operational_settings = build_operational_settings()
# Set output options
result_options = build_result_options(
bin_min=0.85,
bin_delta=0.01,
p_values=[1, 5, 10, 25, 75, 90, 95, 99]
)

通过将此文本块复制到步骤6来加载分布:

distribution_list = [
create_distribution(DistributionInput.GHI, simToSim=["Gaussian", 1, 0.025]),
create_distribution(DistributionInput.ModulePower, simToSim=["Gaussian", 1, 0.02174]),
create_distribution(DistributionInput.DiffuseFraction, simToSim=["Gaussian", 1, 0.05]),
create_distribution(DistributionInput.CircumsolarFraction, simToSim=["Gaussian", 1, 0.05]),
create_distribution(DistributionInput.WindSpeed, simToSim=["Gaussian", 1, 0.25]),
create_distribution(DistributionInput.Uc, simToSim=["Gaussian", 1, 0.2]),
create_distribution(DistributionInput.Uv, simToSim=["Gaussian", 1, 0.375]),
create_distribution(DistributionInput.CellToCellMismatch, simToSim=["Gaussian", 1, 0.5]),
]
print("Distribution list created.")

为了评估产量模型并演示依赖性的贡献,我们首先绘制省略GHI和组件功率不确定性时的直方图(即,当它们的σ为零时)。

直方图有一点不对称性——注意下行尾部比上行尾部稍强——但我们可以充分地将其表示为σ = 0.013的高斯分布,如线所示。

输出不确定性

因此,在此示例中,模型中考虑散射分数、环日、风、热和电气失配的不确定性的方面可以很好地用σ = 0.013的高斯分布表示。如果不在SunSolve P90中应用蒙特卡洛方法(即,运行产量模拟数千次),这将很难预测,因为产量对这些模型参数的不确定性具有非常非线性的依赖性;尽管它们的不确定性非常高,但它们对产量不确定性的影响很弱。尽管如此,在我们的示例中,它们的综合效应仍然很重要,给出σ = 0.013。

现在让我们重新引入GHI和组件功率的不确定性。如果不确定性之间没有相互依赖性,可以通过平方和方法组合它们,给出σ = 0.036的高斯产量不确定性(等于:0.0252+0.02172+0.01252\sqrt{0.025^2 + 0.0217^2 + 0.0125^2})。这种方法准确吗?

下面的直方图绘制了SunSolve P90的结果。它显示由SunSolve P90确定的蒙特卡洛分布与上述解析平方和方法相似。

我们发现,与我们的直方图最佳拟合的高斯分布具有σ ~ 0.035,P90和P95比率为0.953和0.940。

这与解析方法并不太不同,后者忽略了相互依赖性,具有σ = 0.036以及P90和P95比率0.952和0.939。

输出不确定性

因此,在此示例中,相互依赖性很小,对P值的影响很小。这对于其他情况是否正确,例如,当包括额外的模型不确定性时,取决于输入。SunSolve P90提供了评估这些情况的方法。

教程3的目的是演示使用SunSolve P90采用的蒙特卡洛方法的两个好处:

  • 从风速、热常数和PVsyst模型的其他方面的不确定性量化天气和模型误差;以及
  • 在产量预测的天气和模型组件内考虑相互依赖性。