NREL / SAM

System Advisor Model (SAM)
BSD 3-Clause "New" or "Revised" License
337 stars 139 forks source link

Definitions for tilt with 1-axis trackers may be ambiguous #1704

Closed williamhobbs closed 3 months ago

williamhobbs commented 7 months ago

Describe the bug

From the help docs for both PVWatts and Detailed PV Model, it is not clear how tilt for 1-axis tracking systems is defined. Based on testing and assumptions, tilt appears to be defined as the angle measured sloping down towards the user-entered azimuth.

For example, if you wanted to model a North-South 1-axis tracker sloping down to the North (not ideal in the northern hemisphere, but maybe that's the natural slope of the land), I think you would have to enter an azimuth of 0 and then a tilt > 0. In that case, will the sign for tracker rotation angle in outputs be reversed? I think so, but only based on testing.

Expected behavior

More clear docs would be helpful.

Additional context

See https://github.com/pvlib/pvlib-python/issues/1976 for some related discussion with pvlib.

janinefreeman commented 7 months ago

Hi @williamhobbs ! Based on my understanding of the code, your suspicions are correct that a North-South axis sloping to the north would be azimuth=0 and tilt>0. We can certainly update the docs to this effect (@cpaulgilman ). And yes, the tracker rotation angles output would be reversed, which I agree is confusing. Inside the code, we have to keep these tilt/azimuth/rotation conventions to make the math in the functions work out. Maybe there could be a warning that pops up in the (hopefully rare?) instance that a tracker in the Northern hemisphere is oriented between 181 and 89 degrees azimuth and has a tilt, explaining that tracker rotation angles would be reversed...? @cpaulgilman thoughts on that? Open to suggestions on that front.

williamhobbs commented 7 months ago

@janinefreeman, a rotation angle convention warning like you suggested makes sense to me. There's already a warning for non-zero tilt, I think.

Clear documentation seems like the key, here and for pvlib. And then maybe a nice description on the PVPMC website as well.

Thanks!

cpaulgilman commented 3 months ago

Below is a proposed revision to the "Tracking & Orientation" section of the System Design Help topic. Here is a link to the current version for comparison: https://samrepo.nrelcloud.org/help/pv_system_design.html

@williamhobbs We'd appreciate any comments you might have -- this will go into SAM 2023.12.17 r2, which we hope to release in early July.

Tracking & Orientation

The tracking options allow you specify whether and how modules in each subarray follow the movement of the sun across the sky.

Note. SAM does not adjust installation or operating costs on the Installation Costs or Operating Costs pages based on the tracking options you specify. When you change the tracking option, be sure to also change costs as appropriate.

Use the following output variables to explore the effect of tracking and orientation inputs (see Results for detailed descriptions):

SAM also reports the sun angles, which can be helpful for comparing the array orientation to the position of the sun:

Fixed

The subarray is fixed at the tilt and azimuth angles defined by the values of Tilt and Azimuth and does not follow the sun's movement.

image

1 Axis

The subarray is fixed at the angle from the horizontal defined by the value of Tilt and rotates about the tilted axis from east in the morning to west in the evening to track the daily movement of the sun across the sky. Azimuth determines the array's orientation with respect to a line perpendicular to the equator. For a horizontal subarray with one-axis tracking and a north-south axis of rotation that rotates from east to west, use a Tilt value of zero and Azimuth value of 180 degrees.

image

2 Axis

The subarray rotates from east in the morning to west in the evening to track the daily movement of the sun across the sky, and north-south to track the sun's seasonal movement throughout the year. For two-axis tracking, SAM ignores the values of the Tilt and Azimuth inputs.

image

Azimuth Axis

The subarray rotates in a horizontal plane to track the daily movement of the sun. SAM ignores the value of the Azimuth input.

image

Tilt = Latitude

Assigns the latitude value stored in the weather file and displayed on the Location and Resource page to the tilt angle. Note that SAM does not display the tilt value on the System Design page, but does use the correct value during the simulation.

The value of the Tilt input must be positive, so for southern latitudes, SAM sets the tilt angle to the negative value of the latitude.

Use the Subarray [n] Surface tilt (degrees) output variable to confirm the behavior of the the Tilt=Latitude option.

Tilt, degrees

The array's tilt angle in degrees from horizontal, where zero degrees is a horizontal array, and 90 degrees is a vertical array. The tilt value must be between zero and 90 degrees, inclusive.

As a rule of thumb, system designers sometimes use the location's latitude (shown on the Location and Resource as the optimal array tilt angle. The actual tilt angle will vary based on project requirements. You can run a parametric analysis on tilt to find its optimal value.

The effect of the tilt angle depends on the tracking option:

Azimuth, degrees

The azimuth angle in degrees determines the array's east-west orientation, where 0 = North, 90 = East, 180 = South, and 270 = West, regardless of whether the array is in the northern or southern hemisphere. The azimuth value must be greater than or equal to zero and less than 360.

The effect of the azimuth angle depends on the tracking option:

cpaulgilman commented 3 months ago

In addition to the documentation revision above, I'm also proposing a modification to the tracking and orientation diagram on SAM's System Design page for the Detailed PV and PVWatts models. The current version is misleading for one-axis trackers because it makes it look like an East-West rotation axis:

image

The proposed modification helps illustrate the tilt and azimuth angle conventions in a way that works for all of the tracking options:

image