pvlib.iam.fit#

pvlib.iam.fit(measured_aoi, measured_iam, model_name, weight=<function _sin_weight>, xtol=None)[source]#

Find model parameters that best fit the data.

Parameters
  • measured_aoi (array-like) – Angle of incidence values associated with the measured IAM values. [degrees]

  • measured_iam (array-like) – IAM values. [unitless]

  • model_name (str) – Name of the model to be fit. Must be 'ashrae', 'martin_ruiz', or 'physical'.

  • weight (function, optional) – A single-argument function of AOI (degrees) that calculates weights for the residuals between models. Must return a float or an array-like object. The default weight function is \(f(aoi) = 1 - sin(aoi)\).

  • xtol (float, optional) – Passed to scipy.optimize.minimize.

Returns

dict

Parameters for target model.

If target model is 'ashrae', the dictionary will contain the key 'b'.

If target model is 'martin_ruiz', the dictionary will contain the key 'a_r'.

If target model is 'physical', the dictionary will contain the keys 'n', 'K', and 'L'.

References

1

Jones, A. R., Hansen, C. W., Anderson, K. S. Parameter estimation for incidence angle modifier models for photovoltaic modules. Sandia report SAND2023-13944 (2023).

Note

Model parameters are determined by minimizing

\[\sum_{AOI} weight \left( AOI \right) \times \| IAM \left( AOI \right) - model \left( AOI \right) \|\]

The sum is over measured_aoi and \(IAM \left( AOI \right)\) is measured_IAM.

Examples using pvlib.iam.fit#

IAM Model Fitting

IAM Model Fitting