Appendix – Shaded fraction and backtracking in single-axis trackers on rolling terrain
Abstract
This is an appendix to the journal paper "Shaded fraction and backtracking in single-axis trackers on rolling terrain" authored by Kevin S. Anderson and Adam R. Jensen. The paper was submitted to the Journal of Renewable and Sustainable Energy in January 2024. The appendix contains a PDF describing the supplementary files contained within the Zenodo archive. The March 2024 version corrects a mistake in the reference coordinate system.
Full text
APPENDIX Shaded fraction and backtracking in single-axis trackers on rolling terrain Adam R. Jensen March 2024
Appendix – Shaded fraction and backtracking in single-axis trackers on rolling terrain 2024 By Adam R. Jensen Copyright: Reproduction of this publication in whole or in part must include the customary bibliographic citation, including author attribution, report title, etc. Published by: DTU Construct, Anker Engelunds Vej 101, Building 101, 2800 Kongens Lyngby Denmark DOI: https://doi.org/10.5281/zenodo.10787366
1 Overview This document is an appendix to the journal paper ”Shaded fraction and backtracking in singleaxis trackers on rolling terrain” authored by Kevin S. Anderson and Adam R. Jensen. The paper was submitted to the Journal of Renewable and Sustainable Energy in January 2024. In addition to this document, the appendix consists of several supplementary files which are made available at the open research data repository Zenodo (doi: 10.5281/zenodo.10513988). An overview of the supplementary files is provided in Table 1 and described in the following sections. Description Filename bifacial_radiance output bifacial_radiance_shaded_fraction_fixed_tilt.csv bifacial_radiance_shaded_fraction_single_axis.csv Python functions variable_terrain_shaded_fraction.py variable_terrain_backtracking.py Test cases cases_shaded_fraction.csv cases_bactracking.csv Python tests test_variable_terrain_shaded_fraction.py test_variable_terrain_backtracking.py Table 1: Overview of supplementary files. 2 bifacial_radiance output The shaded fractions calculated using bifacial_radiance for the two validation cases in the paper (Section III B) are provided as CSV files. These files allow future studies to compare alternative software or methods to our simulation results. The necessary details to replicate the simulations are provided in the paper. The bifacial_radiance shaded fraction CSV files each contains three columns. The first column is the simulation timestamp. The last two columns correspond to the lower (min) and upper (max) bounds of the estimated shaded fraction. 3 Python functions To make adoption of the variable terrain shaded fraction method as easy as possible, we provide a simple implementation in the Python programming language. The function shaded_fraction is contained within the variable_terrain_shaded_fraction.py file and calculates the shaded fraction given inputs of tracker angles and geometry as well as the projected solar zenith angle. Similarly, the variable_terrain_backtracking.py file contains the function backtracking_theta_1 for calculating the backtracking angle of a front tracker (θ1) given the maximum acceptable shading fraction and geometric parameters of the rear tracker. All functions are documented using in-code documentation following the numpydoc style and rely only on standard Python libraries. 1
4 Test cases To facilitate implementation of the shading calculation and backtracking method, we provide a set of test cases with expected calculation results. Test cases for the shaded fraction calculation are listed in Table 2 and visualized in Figure 1. Test cases for the backtracking calculation are listed in Table 3 and visualized in Figure 2. The visualizations of the test cases can be found in Section 6. Note, for the backtracking test cases, it is assumed that the collectors are positioned parallel to the sun line if shading cannot be avoided. For a description of the variables within the file, the reader is referred to the journal article or the Python code documentation. Case xLzLθLxRzRθRz0ℓ θsf∗ s 1 1 0.2 50 0 0.0 25 0.00 0.5 80 1.000000 2 1 0.1 50 0 0.0 25 0.05 0.5 80 0.937191 3 1 0.0 50 0 0.1 25 0.00 0.5 80 0.306050 4 1 0.0 50 0 0.2 25 0.00 0.5 80 0.000000 5 1 0.2 -25 0 0.0 -50 0.00 0.5 -80 0.000000 6 1 0.1 -25 0 0.0 -50 0.00 0.5 -80 0.306050 7 1 0.0 -25 0 0.1 -50 0.10 0.5 -80 0.881549 8 1 0.0 -25 0 0.2 -50 0.00 0.5 -80 1.000000 9 1 0.2 5 0 0.0 25 0.05 0.5 80 0.832499 10 1 0.2 -25 0 0.0 25 0.05 0.5 80 0.832499 11 1 0.2 5 0 0.0 -45 0.05 0.5 80 0.832499 12 1 0.2 -25 0 0.0 -45 0.05 0.5 80 0.832499 13 1 0.0 -25 0 0.2 25 0.05 0.5 -80 0.832499 14 1 0.0 -25 0 0.2 -5 0.05 0.5 -80 0.832499 15 1 0.0 45 0 0.2 25 0.05 0.5 -80 0.832499 16 1 0.0 45 0 0.2 -5 0.05 0.5 -80 0.832499 Table 2: Test cases for the shaded fraction calculation. 2
Case xLzLxRzRz0ℓ θsf∗ sθ2θ1 1 1 0.1 0 0.0 0.025 0.5 80 0.00 30 -10.000000 2 1 0.0 0 0.0 0.025 0.5 80 0.00 30 -8.369714 3 1 0.0 0 0.1 0.025 0.5 80 0.00 30 21.025781 4 1 0.0 0 0.2 0.025 0.5 80 0.00 30 50.031945 5 1 0.1 0 0.0 0.025 0.5 80 0.25 30 -10.000000 6 1 0.0 0 0.0 0.025 0.5 80 0.25 30 10.877359 7 1 0.0 0 0.1 0.025 0.5 80 0.25 30 50.915129 8 1 0.0 0 0.2 0.025 0.5 80 0.25 30 80.000000 9 1 0.1 0 0.0 0.025 0.5 80 0.50 30 6.338550 10 1 0.0 0 0.0 0.025 0.5 80 0.50 30 34.407694 11 1 0.0 0 0.1 0.025 0.5 80 0.50 30 80.000000 12 1 0.0 0 0.2 0.025 0.5 80 0.50 30 80.000000 13 1 0.1 0 0.0 0.025 0.5 -80 0.00 -30 -15.604247 14 1 0.0 0 0.0 0.025 0.5 -80 0.00 -30 8.369714 15 1 0.0 0 0.1 0.025 0.5 -80 0.00 -30 10.000000 16 1 0.0 0 0.2 0.025 0.5 -80 0.00 -30 10.000000 17 1 0.1 0 0.0 0.025 0.5 -80 0.25 -30 -41.380899 18 1 0.0 0 0.0 0.025 0.5 -80 0.25 -30 -10.877359 19 1 0.0 0 0.1 0.025 0.5 -80 0.25 -30 10.000000 20 1 0.0 0 0.2 0.025 0.5 -80 0.25 -30 10.000000 21 1 0.1 0 0.0 0.025 0.5 -80 0.50 -30 -80.000000 22 1 0.0 0 0.0 0.025 0.5 -80 0.50 -30 -34.407694 23 1 0.0 0 0.1 0.025 0.5 -80 0.50 -30 -1.567397 24 1 0.0 0 0.2 0.025 0.5 -80 0.50 -30 10.000000 Table 3: Test cases for the backtracking calculation. 5 Python tests Comparison of the outputs from the provided Python functions described in Section 3 are provided in the two test files (test_variable_terrain_shaded_fraction.py and test_variable_terrain_backtracking.py). Executing the two test files requires that all of the supplemental files be located in the working directory. 3
6 Visualization of test cases This section contains the illustration of the test cases in Section 4. 50.0° 25.0° Case 1 50.0° 25.0° Case 2 50.0° 25.0° Case 3 50.0° 25.0° Case 4 -25.0° -50.0° Case 5 -25.0° -50.0° Case 6 -25.0° -50.0° Case 7 -25.0° -50.0° Case 8 5.0° 25.0° Case 9 -25.0° 25.0° Case 10 5.0° -45.0° Case 11 -25.0° -45.0° Case 12 -25.0° 25.0° Case 13 -25.0° -5.0° Case 14 45.0° 25.0° Case 15 45.0° -5.0° Case 16 Figure 1: Visualization of the shaded fraction test cases. 4
-10.0° 30.0° Case 1 -8.4° 30.0° Case 2 21.0° 30.0° Case 3 50.0° 30.0° Case 4 -10.0° 30.0° Case 5 10.9° 30.0° Case 6 50.9° 30.0° Case 7 80.0° 30.0° Case 8 6.3° 30.0° Case 9 34.4° 30.0° Case 10 80.0° 30.0° Case 11 80.0° 30.0° Case 12 -30.0° -15.6° Case 13 -30.0° 8.4° Case 14 -30.0° 10.0° Case 15 -30.0° 10.0° Case 16 -30.0° -41.4° Case 17 -30.0° -10.9° Case 18 -30.0° 10.0° Case 19 -30.0° 10.0° Case 20 -30.0° -80.0° Case 21 -30.0° -34.4° Case 22 -30.0° -1.6° Case 23 -30.0° 10.0° Case 24 Figure 2: Visualization of the backtracking test cases. 5