Implement ANTS-2D bifacial irradiance model - #2740
Conversation
Co-authored-by: Cliff Hansen <cwhanse@sandia.gov>
|
I think the documentation for |
|
In |
|
Could it be worthwhile to return unshaded irradiance, e.g., I haven't fully thought through trade-offs and alternatives yet, but I thought it was worth bringing up. [1] Anderson, Kevin. 2020. Maximizing Yield with Improved Single-Axis Backtracking on Cross-Axis Slopes: Preprint. Golden, CO: National Renewable Energy Laboratory. NREL/CP-5K00-76023. https://www.nlr.gov/docs/fy20osti/76023.pdf [2] W. Hobbs, K. Anderson, M. Mikofski, and M. Ghiz, “An approach to modeling linear and non-linear self-shading losses with PVlib,” in PV Perform. Model. Collaborative Workshop, Sandia Nat. Lab., May 2024. [Online]. Available: https://www.sandia.gov/app/uploads/sites/243/dlm_uploads/2024/05/2024_PVPMC_hobbs_pvlib_self-shade.pdf |
Co-authored-by: Will Hobbs <45701090+williamhobbs@users.noreply.github.com>
I think this would be easy enough for the direct component, but sky diffuse would need at least a little bit extra to disentangle r2r shading from the reduction due to surface tilt. Currently, it uses a single VF that accounts for both effects. The alternative would, I think, be to just use |
|
Hmm. I think that unshaded direct is all I would need for shade loss modeling. So having that would be convenient. But I see what you mean about diffuse. And maybe returning unshaded direct but not unshaded diffuse could confuse users? Anyone else have thoughts? |
[ ] Closes #xxxxdocs/sphinx/source/referencefor API changes.docs/sphinx/source/whatsnewfor all changes. Includes link to the GitHub Issue with:issue:`num`or this Pull Request with:pull:`num`. Includes contributor name and/or GitHub username (link with:ghuser:`user`).remote-data) and Milestone are assigned to the Pull Request and linked Issue.@AdamRJensen, @cwhanse, and I have a paper describing a new bifacial irradiance model called ANTS-2D. It is similar to pvlib's
infinite_shedsmodel, but extended to allow:Details available open-access here: https://doi.org/10.1109/JPHOTOV.2026.3677506
This PR is rather large. To summarize:
g0andg1parameters to the view factor functions inpvlib.bifacial.utils. These are analogous tox0andx1invf_row_sky_2d_integand extend the functions to subset the ground surface.vf_ground_sky_2d_integto use Hottel's crossed-string rule instead of burdensome numerical integration. This makes thenpointsandvectorizeparameters unnecessary.pvlib.bifacial.utilsto be cleaner with the new calculations.pvlib.bifacial.infinite_shedsto accommodate theutilschangespvlib.bifacial.ant2d, which houses the model itself and uses the newutilsfunctionality.Let me know if it would help reviewers to split it up and review separate PRs, starting with
utils.