Shade Modeling

One of the unique benefits of HelioScope is its world-class ability to model energy losses due to shading for a solar array. In this application note, we will explain the multiple ways to model shade in HelioScope, and the calculations used for each.

A) Sources of Shading loss in HelioScope

There are three best practices for modeling shading in HelioScope:

  1. Row-to-row shading: For fixed-tilt arrays (i.e. where the modules are tilted up along a flat surface), it is possible that the modules shade each other, especially if the row spacing is narrow or if the tilt is high. These shading losses are calculated automatically (and there is no other way for the user to modify the losses, other than reducing tilt or increasing spacing).
  2. Keepout Obstruction Shading: If a Keepout with a height is defined in the Designer, then the shadows from that Keepout will be calculated and applied on each module in the array, for each hour of the year. Shading losses are automatically applied in the simulation based on the height (and proximity) of the Keepout relative to the modules.
  3. Horizon file: Shade can be applied using a Horizon File. Horizon files are collection of azimuth/elevation points that define the horizon around the array. These are uploaded to HelioScope under the Shading tab in a project, and must be attached to a Condition Set under the “Shading” section. Note that only one Horizon file can be applied to a Condition Set at a time.

B) Mathematics of Shading

  1. Row-to-row shading is calculated based on exactly where the shadow is on the module, based on sun-angle and the geometry of the module. Direct irradiance is calculated based on the exact location of the shadow on the module, factoring in the cell-structure of the module and the bypass diodes. For landscape-oriented silicon modules, the module will lose 1/3 of its direct irradiance when the first 1/6 of the module is shaded. This is why the orientation of the module can matter (in general, portrait-mounted modules will have higher shading losses than landscape-oriented modules). Diffuse irradiance is also adjusted with row-to-row shading, based on the proportion of the sky that is blocked from the front row of modules. 
  2. Obstruction shading losses are calculated by mapping the path of each shadow to determine the impacted modules, each hour throughout the year. When a module is shaded, it loses its direct irradiance, though it still receives diffuse irradiance. Unless the array has optimizers or microinverters, shading from row-to-row shading or obstructions will also lead to mismatch losses. These losses are typically 0.5x to 2.0x the shading losses – so, for example, a 3% shading loss could have additional mismatch losses of between 2-6%.
  3. Horizon shading when the sun is below the horizon line, the entire array loses its direct irradiance (though it still receives diffuse light). Note that because this is applied to all modules in the array, there is no additional mismatch caused by horizon shading losses. Examples of Horizon files can be found here (HOR file) and here (ObstructionElevations file). Note that files from Solar Pathfinder may have to be edited, removing the header and excess data, in order to make them match the .HOR example above. 

C) Designing around Obstruction Shading

There are a number of options for dealing with obstruction shading:

1) When a Keepout with a height is defined as an obstruction, HelioScope will calculate the shadows from the obstruction (from 10am to 2pm local time on the winter solstice), and remove modules that are shaded in that window. This can be modified under the Keepout > Shading menu: the window can be changed, or the behavior can be stopped entirely by un-checking the “Generate Shading Keepouts” check-box.

2) Alternatively, a Shade Optimization can be used for Keepouts:

a.  (Optional) Un-check “Generate Shading Keepouts” from the Keepout > Shade menu
b.  From the Advanced > Shading menu, select a weather file, and initialize the Shade Optimization. This calculates the shading losses for each module (based on when they are shaded, and the direct irradiance during those hours), and presents the results as a heatmap
c.  Use the threshold selection slider to select the shading threshold for removing modules – the lower the threshold, the more modules will be removed. Removed modules will be visibly greyed out in the array map, and the details on the new system size & energy yield will be available in the menu
d.  Select “Remove Modules” to remove the modules from the array

D) Troubleshooting

If the shading losses seem off, there are troubleshooting steps that can be done to verify the calculations:

  1. Create a separate simulation without shading losses (either by cloning the Design and setting the Keepout heights to zero, or creating a new Condition Set).
  2. Download the hourly 8760 results from each of the simulations (shaded and unshaded)
  3. Use the Comparison Spreadsheet (email support@folsomlabs.com for access) to line up the results of the two simulations. Use the Monthly chart to select a month, and spot-check the results against the shade patterns during those hours (see screenshot below).

Screenshot of Comparison Spreadsheet showing hourly/monthly energy for two different simulations