Skip to content

Tutorial 5. Multiple years

Tutorial 5 is a multi-year analysis.

In addition to the sim-to-sim variability applied in the previous tutorials, Tutorial 5 contains year-to-year variability — i.e., interannual variability (IAV).

Since the tutorial applies two probability distributions to the same variable, we will first recap the approach used in SunSolve P90:

At each time step within an analysis, the value vv of a parameter is calculated to be its base value v0v_0 multiplied by a sim-to-sim modifier xsx_s and a year-to-year modifier xyx_y:

v=v0×xs×xyv = v_0 \times x_s \times x_y,​

where xsx_s is randomly determined from the sim-to-sim distribution at the beginning of the simulation, and xyx_y is randomly determined from the year-to-year distribution at the beginning of each year of each simulation.

We demonstrate by performing a 15-year analysis that contains two parameters with a significant uncertainty: GHI and the annual degradation rate.

For GHI, we apply the following:

  • v0v_0 is the GHI at each time step of the TMY weather file.

  • The sim-to-sim variability is a Gaussian distribution with a 95% confidence interval of ±2% (i.e., a relative standard deviation of 1%). This error is similar to the calibration error in a high-quality pyranometer, such as the one used in the experiment referenced in Tutorial 4.

  • The year-to-year variability is the same asymmetric distribution from Tutorial 4, which represented the IAV of GHI measured at Mokpo, Korea, a particularly asymmetric site.

Output uncertainty

For the annual degradation rate (an additive rather than a compound rate), we apply the following:

  • v0=1v_0 = 1, since the absolute rate is contained in the asymmetric sim-to-sim variability.

  • The sim-to-sim variability is the skewed Gaussian shown in the graph below (and defined in the table). This is the average degradation rate applied in a simulation, i.e., for all 15 years. The median degradation rate is 0.63%/year.

  • The year-to-year variability is a Gaussian with a confidence interval of ±50% (i.e., a relative standard deviation of 25%). Thus, if the average rate for a simulation happened to be 0.8%/yr, the rate applied at each year of that simulation would vary within the range (0.8 ± 0.4)%/yr.

Output uncertainty

Inputξωα
Annual degradation rate0.0030.0053

Note that the units for the degradation rate are a fraction per year; i.e., 0.003 represents 0.3%/year.

We can now find the yield uncertainty over a 15 year period for our default SAT system with the described uncertainty in GHI and degradation. Simply load the code blocks below into the Notebook.

First, load the inputs by copying this text block into Step 3:

# Set uncertainty simulation constants (Note: number_of_years * number_of_simulations must be <= 250000)
simulation_options = build_simulation_options(
number_of_years=15,
number_of_simulations=5000
)
# 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 specific system inputs
operational_settings = build_operational_settings(
annual_degradation_rate=1,
)
# Use defaults for other inputs
optical_settings = build_optical_settings()
module_info = build_module_info()
system_info = build_system_info()
electrical_settings = build_electrical_settings()
thermal_settings = build_thermal_settings()
# Set output options
result_options = build_result_options(
bin_min=0.85,
bin_delta=0.01,
p_values=[5, 10, 25, 75, 90, 95]
)
print("Setup complete.")

Then load the distributions by copying the text block below into Step 6. Notice that the distributions contain both sim-to-sim and year-to-year distributions.

distribution_list = [
create_distribution(DistributionInput.GHI, simToSim=['Gaussian', 1, 0.01], yearToYear=['SkewedGaussian', 1.029, 0.04, -5]),
create_distribution(DistributionInput.AnnualDegradationRate, simToSim=['SkewedGaussian', 0.003, 0.005, 3], yearToYear=['Gaussian', 1, 0.25]),
]
print("Distribution list created.")

The resulting histogram for years 1, 7 and 15 are plotted below. The results for Years 7 and 15 are relative to the Year 1 P50.

The histograms exhibit an asymmetry in which the downside tail is longer than the upside. This arises due to the strong asymmetry contained in the GHI and degradation.

Output uncertainty

The next figure plots the downside P-values against the year of operation. It shows how the uncertainty increases as the years progress, a consequence of being uncertain about the degradation rate.

Output uncertainty

We stress that the values in these outputs were simply for demonstration purposes and do not quantify a forecast for an actual PV plant.