pvperfsolar performance modeling

Reference / Incidence-angle modifier, beam

Model option

De Soto cover

The transmittance of an anti-reflective coating and glass, after De Soto, Klein and Beckman

Inputs used: ASHRAE b₀, AR-coated glass, module.iam_angles_deg, iam.angles_deg

Method

The accepted fraction of the direct sunlight is the transmittance of the module cover at the incidence angle divided by its transmittance at perpendicular incidence. Each layer of the cover refracts the light by Snell's law, reflects the average of the two polarisations given by Fresnel's equations, and absorbs along the refracted path by Bouguer's law. The direct light crosses a thin anti-reflective coating and then the glass. The incidence angle is held between 1° and 89°, and the fraction is capped at 1. The reference at perpendicular incidence is taken at 1°, and its glass layer is computed with air, not the coating, on the incoming side. When the next step integrates the diffuse light at effective angles, the sky and ground light are read at those angles through plain glass, divided by the same reference and capped at 1. With the other options of the Incidence-angle modifier, diffuse and albedo step, the curve of the direct light is averaged. With the anti-reflective coating switched off, the direct light and the reference cross plain glass too.

Settings

Setting Value
Refractive index of the glass ngn_g 1.526
Thickness of the glass ℓg\ell_g 2 mm
Refractive index of the coating ncn_c 1.3
Thickness of the coating ℓc\ell_c 0.02 mm
Extinction coefficient KK 4 /m, both layers
Incidence angles of the direct light held between 1° and 89°
Anti-reflective coating on (the Glass switch of the Module tab)

The math

  1. Transmittance of one layer
  2. Direct light through the coating and the glass
  3. Reference at perpendicular incidence
  4. Accepted fraction of the direct light
  5. Accepted fractions of the sky and ground light
τ(θ1; n2,n1,ℓ)=[1−12(sin⁡2(θ2−θ1)sin⁡2(θ2+θ1)+tan⁡2(θ2−θ1)tan⁡2(θ2+θ1))]e−Kℓ/cos⁡θ2,sin⁡θ2=n1n2sin⁡θ1(1)\tau(\theta_1;\,n_2, n_1, \ell) = \left[1 - \tfrac{1}{2}\left(\frac{\sin^2(\theta_2 - \theta_1)}{\sin^2(\theta_2 + \theta_1)} + \frac{\tan^2(\theta_2 - \theta_1)}{\tan^2(\theta_2 + \theta_1)}\right)\right] e^{-K \ell/\cos\theta_2},\qquad \sin\theta_2 = \frac{n_1}{n_2}\sin\theta_1 \tag{1} τb(θ)=τ(θ; nc,1,ℓc) τ(θc; ng,nc,ℓg)(2)\tau_b(\theta) = \tau(\theta;\,n_c, 1, \ell_c)\ \tau(\theta_c;\,n_g, n_c, \ell_g) \tag{2} τn=τ(1°; nc,1,ℓc) τ(θc,1; ng,1,ℓg)(3)\tau_n = \tau(1°;\,n_c, 1, \ell_c)\ \tau(\theta_{c,1};\,n_g, 1, \ell_g) \tag{3} F(θ)=min⁡ ⁣(1, τb(min⁡(max⁡(θ,1°),89°))τn)(4)F(\theta) = \min\!\left(1,\ \frac{\tau_b(\min(\max(\theta, 1°), 89°))}{\tau_n}\right) \tag{4} Fsky=min⁡ ⁣(1, τ(θsky; ng,1,ℓg)τn),Fgnd=min⁡ ⁣(1, τ(θgnd; ng,1,ℓg)τn)(5)F_{sky} = \min\!\left(1,\ \frac{\tau(\theta_{sky};\,n_g, 1, \ell_g)}{\tau_n}\right),\qquad F_{gnd} = \min\!\left(1,\ \frac{\tau(\theta_{gnd};\,n_g, 1, \ell_g)}{\tau_n}\right) \tag{5}

where

Symbol Meaning Unit
τ\tau the transmittance of a layer —
θ1\theta_1 the angle of the light arriving at the layer degrees
θ2\theta_2 the angle of the light refracted into the layer degrees
n1,n2n_1, n_2 the refractive indices of the incoming medium and of the layer —
ℓ\ell the thickness of the layer m
KK the extinction coefficient 1/m
τb(θ)\tau_b(\theta) the transmittance of the cover for the direct light —
θ\theta the incidence angle of the direct light degrees
θc\theta_c the angle refracted into the coating degrees
nc,ngn_c, n_g the refractive indices of the coating and of the glass —
ℓc,ℓg\ell_c, \ell_g the thicknesses of the coating and of the glass m
τn\tau_n the reference transmittance —
θc,1\theta_{c,1} the angle refracted into the coating at 1° degrees
F(θ)F(\theta) the accepted fraction of the direct light —
Fsky,FgndF_{sky}, F_{gnd} the accepted fractions of the sky and ground light —
θsky,θgnd\theta_{sky}, \theta_{gnd} the effective incidence angles of the sky and ground light, from the next step degrees

References

  1. De Soto, Klein & Beckman 2006, Improvement and validation of a model for photovoltaic array performance, Solar Energy 80(1) 78–88
  2. Duffie & Beckman, Solar Engineering of Thermal Processes, 4th ed., Wiley 2013
  3. NREL SAM Simulation Core (SSC) source code, release 2026.7.3, github.com/NatLabRockies/ssc: shared/lib_pv_incidence_modifier.cpp, functions transmittance() and calculateIrradianceThroughCoverDeSoto()

API

iam.kind = desoto, iam.ar_coating = true

Symbols follow the symbol registry.