NREL / SAM

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

Add PV option to specify tilt angle as time series data #850

Closed cpaulgilman closed 11 months ago

cpaulgilman commented 2 years ago

SAM's PV models currently model fixed arrays with a constant tilt angle, and tracking arrays with surface angles calculated by the model in each time step based on the tilt and azimuth inputs and sun position.

For some modeling applications, it would be useful to be able to provide time series surface angles as input, for example to model advanced "smart" trackers, or misaligned trackers. The latter would make it possible to compare a system with misaligned trackers to one with "ideal" trackers, which would be useful for PV O&M teams to evaluate the impact of tracker problems on project economics.

Another approach would be to make the angle of incidence an input as suggested here: https://sam.nrel.gov/forum/forum-general/3702

See this feature request from June 2022: https://sam.nrel.gov/forum/forum-general/3914

williamhobbs commented 2 years ago

I'll add some additional thoughts on this. I've come across three specific cases related to misaligned trackers:

  1. Trackers with a fixed angle offset, e.g., the tracker is consistently off of the ideal position by +3 degrees.
  2. Trackers with a fixed time offset, e.g., the tracker control clock is 20 minutes behind. This is similar to a -5 degree fixed angle offset, but I think it would deviate from that, especially with backtracking.
  3. Temporarily stuck trackers.

I think all of these could be covered pretty easily through a time series surface angle input, for example, by running SAM once, exporting modeled or ideal surface tilt (subarray1_axisrot or subarray1_idealrot, I think), adjusting in an external tool (e.g., a spreadsheet), and the pasting the adjusted values back into SAM.

mjprilliman commented 1 year ago

Adding pvlib perspective on tracking capabilities from @kanderso-nrel: https://github.com/pvlib/pvlib-python/discussions/1581#discussioncomment-4060499

mjprilliman commented 1 year ago

@janinefreeman I think minimum viable product here is to use functionality for seasonal tilt (monthly inputs) applied to nrecords per year array of user-specified tilt angles. This treats user-specified tilt angles as fixed tilt category for shading and other downstream calculations. This would essentially extend track_mode options by 1, or allow for flexibility in array size for seasonal tilt input.

mjprilliman commented 11 months ago

Closing per https://github.com/NREL/ssc/pull/1071, outstanding work moved to #1543