pvlib-python icon indicating copy to clipboard operation
pvlib-python copied to clipboard

AOI dependence for soiling losses

Open kandersolar opened this issue 1 year ago • 3 comments

Is your feature request related to a problem? Please describe. Soiling losses are known to show a dependence on angle of incidence, but pvlib's soiling loss models don't consider AOI.

Describe the solution you'd like Implement a model that calculates an adjustment factor, analogous to IAM, that converts soiling loss at AOI=0 to soiling loss at any angle of incidence.

Here is one such model: Guo & Javed 2024, Effect of incidence angle on PV soiling loss. https://doi.org/10.1016/j.solener.2023.112298

Describe alternatives you've considered N/A

Additional context One wrinkle: soiling loss models tuned to field measurements probably don't calculate soiling loss at AOI=0, but rather some kind of "average" AOI that depends on both the sun position and the weather conditions (sun AOI matters less in cloudy climates). Conceptually, it seems like soiling loss ought to be considered a combination of direct and diffuse components the same way IAM is. It's not obvious to me how best to apply an AOI correction factor to empirical soiling models.

kandersolar avatar Jan 29 '24 15:01 kandersolar

I've read the paper and I don't dislike the proposed model. The only issues I have with it are:

  1. Do we want to provide some kind of fitting functions so the two parameters can be obtained from some kind of curve fit? The paper approach is for some exact soiling values but in the field they change with the weather.
    • In this case, what data can/should I make use of?
    • The $SL_0$ can be left up to the user but I can't think of how to get it from this kind of data. I have in mind this data could be two flat reference cells, one that cleans itself (or is cleaned) everyday and another one that gets soiled normally. So at AOI=0º, $SL_0$ is direct. For other cases, I'm not sure. Rearranging (7) as $SL_\theta(\theta) = SL_0 · (sec \theta)^P [\frac{1 - F_n/IAM}{1 - F_n}]$ there is another parameter, $SL_0$. Whether this works or not, I'm 0% sure.
  2. Data testing - I can do the average functional test of datatypes and some numbers, but they won't guarantee scientific rigour. Maybe from the graphs I can approximate some values...

echedey-ls avatar Mar 02 '24 17:03 echedey-ls

ICYMI: @wholmgren , @abhisheksparikh , @mdeceglie

mikofski avatar Mar 02 '24 17:03 mikofski

I don't have access to this paper, but I do recall that Martin & Ruiz discussed representing the dirty modules with a different a_r. That wouldn't accommodate losses at normal incidence.

adriesse avatar Mar 04 '24 12:03 adriesse