pvperfsolar performance modeling

Reference / Solar position

Model option

NREL SPA (SSC application)

NREL's Solar Position Algorithm with SG2 terms, the weather's pressure and temperature, sunrise and sunset at −0.8333°

Inputs used: Latitude, Longitude, Time zone, Altitude, Step, Station pressure, Ambient temperature

Method

The sun position follows the Solar Position Algorithm routine of NREL's System Advisor Model simulation core. The routine keeps the steps of the Solar Position Algorithm. The Earth's heliocentric longitude and distance, the nutation in longitude and the true obliquity come from the shorter series of the SG2 algorithm of Blanc and Wald. The aberration and the equatorial parallax enter as 9.933735·10⁻⁵° and 4.263521·10⁻⁵°, the values SG2 gives in radians. The difference between terrestrial and universal time comes from a polynomial in the whole year (1). The instant is taken at the whole minute: its seconds are dropped. The apparent height adds the refraction at the weather's pressure and air temperature (2, 3). A pressure at or below 800 mbar is replaced by the last value above it, and by 1013.25 mbar before the first one. Without a temperature the refraction takes 15 °C. The position differs from the full Solar Position Algorithm by about 0.005° over a year.

Sunrise and sunset are the instants the sun's centre stands 0.8333° below the horizon, the upper edge of the disc on the horizon under standard refraction. They come from the positions at 0 h universal time of the day before, the day and the day after, by appendix A.2 of the Solar Position Algorithm. With the interval midpoint, a timestep is lit when its midpoint lies between sunrise and sunset (4), and the sun is placed at the midpoint. With the sunlit-slice midpoint, the timestep that holds sunrise places the sun at the middle of its part after sunrise, and the timestep that holds sunset at the middle of its part before sunset, both truncated to the minute (5). Both of these timesteps are lit, and every other timestep places the sun at its midpoint.

The sun positions, the sunrise and sunset and the lit timesteps are those of PVWatts version 8 and SAM's detailed photovoltaic model.

The math

  1. Terrestrial minus universal time
  2. Refraction
  3. Apparent height
  4. Lit timestep, interval midpoint
  5. Sunrise and sunset timesteps, sunlit-slice midpoint
ΔT={45.45+1.067 t−t2/260−t3/718, t=Y−19751961≤Y≤198663.86+0.3345 t−0.060374 t2+0.0017275 t3+0.000651814 t4, t=Y−20001987≤Y≤200562.92+0.32217 t+0.005589 t2, t=Y−20002006≤Y≤205066.7otherwise(1)\Delta T = \begin{cases} 45.45 + 1.067\,t - t^2/260 - t^3/718,\ t = Y - 1975 & 1961 \le Y \le 1986 \\ 63.86 + 0.3345\,t - 0.060374\,t^2 + 0.0017275\,t^3 + 0.000651814\,t^4,\ t = Y - 2000 & 1987 \le Y \le 2005 \\ 62.92 + 0.32217\,t + 0.005589\,t^2,\ t = Y - 2000 & 2006 \le Y \le 2050 \\ 66.7 & \text{otherwise} \end{cases} \tag{1} Δe=P1010 283273+T 1.0260 tan⁡ ⁣(e0+10.3e0+5.11)(e0≥−0.8333°),Δe=0(e0<−0.8333°)(2)\Delta e = \frac{P}{1010}\,\frac{283}{273 + T}\,\frac{1.02}{60\,\tan\!\left(e_0 + \dfrac{10.3}{e_0 + 5.11}\right)}\quad (e_0 \ge -0.8333°),\qquad \Delta e = 0\quad (e_0 < -0.8333°) \tag{2} e=e0+Δe(3)e = e_0 + \Delta e \tag{3} trise≤tm≤tset,e0(trise)=e0(tset)=−0.8333°(4)t_{rise} \le t_m \le t_{set},\qquad e_0(t_{rise}) = e_0(t_{set}) = -0.8333° \tag{4} teval=⌊30 (trise+t1)⌋60  (t0≤trise<t1),teval=⌊30 (t0+tset)⌋60  (t0<tset≤t1)(5)t_{eval} = \frac{\big\lfloor 30\,(t_{rise} + t_1) \big\rfloor}{60}\ \ (t_0 \le t_{rise} < t_1),\qquad t_{eval} = \frac{\big\lfloor 30\,(t_0 + t_{set}) \big\rfloor}{60}\ \ (t_0 < t_{set} \le t_1) \tag{5}

where

Symbol Meaning Unit
ΔT\Delta T terrestrial time minus universal time s
YY the year of the timestep —
tt the years from 1975 or 2000 —
Δe\Delta e the refraction degrees
PP the pressure of the weather file mbar
TT the air temperature of the weather file °C
e0e_0 the height of the sun's centre without refraction degrees
ee the apparent height of the sun degrees
tmt_m the midpoint of the timestep, local standard time h
trise,tsett_{rise}, t_{set} the sunrise and sunset of the day, local standard time h
tevalt_{eval} the instant the sun is placed at, local standard time h
t0,t1t_0, t_1 the start and end of the timestep, local standard time h

References

  1. Reda & Andreas 2008, Solar Position Algorithm for Solar Radiation Applications, NREL/TP-560-34302
  2. Blanc & Wald 2012, The SG2 algorithm for a fast and accurate computation of the position of the Sun for multi-decadal time period, Solar Energy 86(10) 3072–3083
  3. NREL SAM Simulation Core (SSC) source code, release 2026.7.3, github.com/NatLabRockies/ssc: shared/lib_irradproc.cpp, functions solarpos_spa(), calculate_spa(), calculate_eot_and_sun_rise_transit_set() and irrad::calc()

API

site.sun_model = spa_ssc

Symbols follow the symbol registry.