Skip to main content

Summary

The Incidence Angle Modifier (IAM) quantifies optical transmission losses when sunlight strikes a module at non-normal angles. PlantPredict implements five IAM models: None, ASHRAE, Sandia, Physical, and Custom Interpolation. The IAM is applied separately to beam, sky diffuse, and ground-reflected irradiance components after soiling losses and before spectral corrections. Beam IAM depends on the angle of incidence, while diffuse IAM factors are computed by integrating beam IAM over the sky and ground hemispheres using either JS-Bodo or Marion diffuse methods.

Inputs

NameSymbolUnitsDescription
IAM ModelSelection: None, ASHRAE, Sandia, Physical, Custom Interpolation
Angle of Incidenceθ\thetadegreesAngle between sun and module normal
Module Tilt Angleβ\betadegreesTilt angle of module from horizontal
ASHRAE b₀ Parameterb0b_0Empirical coefficient for ASHRAE model
Sandia b Factors[b0,b1,...,b5][b_0, b_1, ..., b_5]Polynomial coefficients for Sandia model
Refractive IndexnnGlass refractive index (Physical model, default: 1.526)
Extinction CoefficientKKm⁻¹Glass absorption coefficient (Physical model, default: 4.0)
Glazing ThicknessLLmGlass thickness (Physical model, default: 0.002)
AR Coating IndexnARn_{AR}Anti-reflective coating refractive index (Physical model, optional)
IAM Factor Pairs{(θi,fi)}\{(\theta_i, f_i)\}degrees, —User-defined table (Custom Interpolation model)
User-Defined Diffuse IAMUIAMD,UIAMGUIAMD, UIAMGSky and ground diffuse IAM (ASHRAE model only)

Outputs

NameSymbolUnitsDescription
Beam IAM FactorUIAMBUIAMBTransmission factor for beam irradiance (0-1)
Sky Diffuse IAM FactorUIAMDUIAMDTransmission factor for sky diffuse irradiance (0-1)
Ground Diffuse IAM FactorUIAMGUIAMGTransmission factor for ground-reflected irradiance (0-1)

Detailed Description

Model 1: None

All IAM factors set to unity (no angle-dependent losses): UIAMB=UIAMD=UIAMG=1UIAMB = UIAMD = UIAMG = 1

Model 2: ASHRAE

The ASHRAE model uses a single parameter b0b_0 for beam IAM: UIAMB=1b0(1cos(θ)1)UIAMB = 1 - b_0 \left( \frac{1}{\cos(\theta)} - 1 \right) where θ\theta is the angle of incidence in radians. Diffuse IAM factors are user-specified: UIAMD=user-defined sky diffuse IAMUIAMD = \text{user-defined sky diffuse IAM} UIAMG=user-defined ground diffuse IAMUIAMG = \text{user-defined ground diffuse IAM}

Model 3: Sandia

The Sandia model uses a 5th-order polynomial for beam IAM: UIAMB={1,θ<34°i=05biθi,θ34°UIAMB = \begin{cases} 1, & \theta < 34° \\ \sum_{i=0}^{5} b_i \theta^i, & \theta \geq 34° \end{cases} where θ\theta is in degrees and [b0,b1,b2,b3,b4,b5][b_0, b_1, b_2, b_3, b_4, b_5] are Sandia B-factors. Diffuse IAM using JS-Bodo Method: Diffuse IAM factors are calculated using the JS-Bodo sky-view factor method with infinite row spacing: UIAMD=Asky(b0)Asky(0)UIAMD = \frac{A_{sky}(b_0)}{A_{sky}(0)} UIAMG=1UIAMG = 1 where:
  • Asky(b0)A_{sky}(b_0) is the sky view area with IAM effects (using ASHRAE b0b_0)
  • Asky(0)A_{sky}(0) is the sky view area without IAM effects
  • Ground diffuse IAM is set to unity
Parameters for JS-Bodo calculation:
  • Module tilt angle β\beta
  • Post-to-post spacing = \infty (to eliminate shading effects)
  • Collector bandwidth (row width)
  • Table view height g=0.5g = 0.5 (observation point at module center)
Quality control: UIAMD=max(UIAMD,0)UIAMD = \max(UIAMD, 0)

Model 4: Physical

The Physical IAM model uses Fresnel equations and Beer-Lambert law (available in Version 11+). Fresnel Reflection at First Interface: Incidence angle: θ1=θ\theta_1 = \theta (in radians) cos(θ1)=max(0,cos(θ))\cos(\theta_1) = \max(0, \cos(\theta)) sin(θ1)=1cos2(θ1)\sin(\theta_1) = \sqrt{1 - \cos^2(\theta_1)} Refraction angle at first interface (air to AR coating or glass): sin(θ2)=n1n2sin(θ1)\sin(\theta_2) = \frac{n_1}{n_2} \sin(\theta_1) cos(θ2)=1sin2(θ2)\cos(\theta_2) = \sqrt{1 - \sin^2(\theta_2)} where n1=1n_1 = 1 (air), n2=nARn_2 = n_{AR} if AR coating present, otherwise n2=nn_2 = n (glass). Reflectance for s-polarized and p-polarized light: ρ12,s=(n1cos(θ1)n2cos(θ2)n1cos(θ1)+n2cos(θ2))2\rho_{12,s} = \left( \frac{n_1 \cos(\theta_1) - n_2 \cos(\theta_2)}{n_1 \cos(\theta_1) + n_2 \cos(\theta_2)} \right)^2 ρ12,p=(n1cos(θ2)n2cos(θ1)n1cos(θ2)+n2cos(θ1))2\rho_{12,p} = \left( \frac{n_1 \cos(\theta_2) - n_2 \cos(\theta_1)}{n_1 \cos(\theta_2) + n_2 \cos(\theta_1)} \right)^2 Reflectance at normal incidence: ρ12,0=(n1n2n1+n2)2\rho_{12,0} = \left( \frac{n_1 - n_2}{n_1 + n_2} \right)^2 Transmittance through first interface: τs=1ρ12,s\tau_s = 1 - \rho_{12,s} τp=1ρ12,p\tau_p = 1 - \rho_{12,p} τ0=1ρ12,0\tau_0 = 1 - \rho_{12,0} AR Coating Internal Reflections: If AR coating present (nARn1n_{AR} \neq n_1), calculate second interface (AR to glass) with n3=nn_3 = n (glass): sin(θ3)=n2n3sin(θ2)\sin(\theta_3) = \frac{n_2}{n_3} \sin(\theta_2) cos(θ3)=1sin2(θ3)\cos(\theta_3) = \sqrt{1 - \sin^2(\theta_3)} Second interface reflectance: ρ23,s=(n2cos(θ2)n3cos(θ3)n2cos(θ2)+n3cos(θ3))2\rho_{23,s} = \left( \frac{n_2 \cos(\theta_2) - n_3 \cos(\theta_3)}{n_2 \cos(\theta_2) + n_3 \cos(\theta_3)} \right)^2 ρ23,p=(n2cos(θ3)n3cos(θ2)n2cos(θ3)+n3cos(θ2))2\rho_{23,p} = \left( \frac{n_2 \cos(\theta_3) - n_3 \cos(\theta_2)}{n_2 \cos(\theta_3) + n_3 \cos(\theta_2)} \right)^2 ρ23,0=(n2n3n2+n3)2\rho_{23,0} = \left( \frac{n_2 - n_3}{n_2 + n_3} \right)^2 Account for multiple internal reflections: τsτs1ρ23,s1ρ23,sρ12,s\tau_s \leftarrow \tau_s \cdot \frac{1 - \rho_{23,s}}{1 - \rho_{23,s} \rho_{12,s}} τpτp1ρ23,p1ρ23,pρ12,p\tau_p \leftarrow \tau_p \cdot \frac{1 - \rho_{23,p}}{1 - \rho_{23,p} \rho_{12,p}} τ0τ01ρ23,01ρ23,0ρ12,0\tau_0 \leftarrow \tau_0 \cdot \frac{1 - \rho_{23,0}}{1 - \rho_{23,0} \rho_{12,0}} Beer-Lambert Absorption in Glass: τsτseKL/cos(θ3)\tau_s \leftarrow \tau_s \cdot e^{-K L / \cos(\theta_3)} τpτpeKL/cos(θ3)\tau_p \leftarrow \tau_p \cdot e^{-K L / \cos(\theta_3)} τ0τ0eKL\tau_0 \leftarrow \tau_0 \cdot e^{-K L} where KK is extinction coefficient (m⁻¹) and LL is glass thickness (m). Beam IAM Factor: UIAMB=τs+τp2τ0UIAMB = \frac{\tau_s + \tau_p}{2 \tau_0} If θ90°\theta \geq 90° and no AR coating (n2=1n_2 = 1), then UIAMB=0UIAMB = 0. Diffuse IAM using Marion Method: Calculate beam IAM at discrete angles: [0°,30°,50°,60°,70°,75°,80°,85°,90°][0°, 30°, 50°, 60°, 70°, 75°, 80°, 85°, 90°] Integrate using Marion diffuse method: UIAMD=MarionDiffuse(Sky,β,{θi},{UIAMB(θi)})UIAMD = \text{MarionDiffuse}(\text{Sky}, \beta, \{\theta_i\}, \{UIAMB(\theta_i)\}) UIAMG=MarionDiffuse(Ground,β,{θi},{UIAMB(θi)})UIAMG = \text{MarionDiffuse}(\text{Ground}, \beta, \{\theta_i\}, \{UIAMB(\theta_i)\}) Results cached by tilt angle (rounded to nearest degree). Quality control: UIAMD=max(UIAMD,0)UIAMD = \max(UIAMD, 0) if NaN; UIAMG=0UIAMG = 0 if NaN.

Model 5: Custom Interpolation

The Custom Interpolation model uses user-supplied IAM factor pairs. Beam IAM: For 0°<θ<90°0° < \theta < 90°: UIAMB=CubicSpline({(θi,fi)},θ)UIAMB = \text{CubicSpline}(\{(\theta_i, f_i)\}, \theta) UIAMBmin(UIAMB,1)UIAMB \leftarrow \min(UIAMB, 1) For θ0°\theta \leq 0° or θ90°\theta \geq 90°: UIAMB=0UIAMB = 0 Diffuse IAM: Version 08 and Earlier: Uses JS-Bodo method with ASHRAE b0b_0 (same as Sandia diffuse calculation). Version 09 and Later: Uses Marion integration method with user-defined IAM table: UIAMD=MarionDiffuse(Sky,β,{θi},{fi})UIAMD = \text{MarionDiffuse}(\text{Sky}, \beta, \{\theta_i\}, \{f_i\}) UIAMG=MarionDiffuse(Ground,β,{θi},{fi})UIAMG = \text{MarionDiffuse}(\text{Ground}, \beta, \{\theta_i\}, \{f_i\}) Results cached by tilt angle. Quality control: UIAMD=0UIAMD = 0 if NaN, UIAMG=0UIAMG = 0 if NaN.

Application to Irradiance

IAM factors are applied to irradiance components after soiling: Ebeam,IAM=Ebeam,soiled×UIAMBE_{beam,IAM} = E_{beam,soiled} \times UIAMB Esky,IAM=Esky,soiled×UIAMDE_{sky,IAM} = E_{sky,soiled} \times UIAMD Eground,IAM=Eground,soiled×UIAMGE_{ground,IAM} = E_{ground,soiled} \times UIAMG

References

  • ASHRAE Standard 93-2010. Methods of Testing to Determine the Thermal Performance of Solar Collectors. American Society of Heating, Refrigerating and Air-Conditioning Engineers.
  • King, D. L., Boyson, W. E., & Kratochvil, J. A. (2004). Photovoltaic array performance model. SAND2004-3535, Sandia National Laboratories.
  • Martin, N., & Ruiz, J. M. (2001). Calculation of the PV modules angular losses under field conditions by means of an analytical model. Solar Energy Materials and Solar Cells, 70(1), 25–38.
  • Marion, B. (2017). Numerical method for angle-of-incidence correction factors for diffuse radiation incident photovoltaic modules. Solar Energy, 147, 344–348.