Modeling 101
Learn more about everything that goes into modeling the output of a photovoltaic (PV) solar array.
Performance Modeling Overview
While each array is unique, advanced performance modeling follows a standard approach for calculating the energy production of an array. The process begins with data on the environmental conditions, then calculates the irradiance that will be collected by the solar modules, then computes the performance of the solar modules, and finally models the system effects of all of the electrical components.
The core mathematics is based on industrystandard approaches for modeling each step in the system performance. None of the steps described here are proprietary or secret, instead, they are all based on research and analysis published by academic research institutions and national labs.
By understanding the drivers of performance in more detail, system engineers can make better decisions about the components and designs they deploy. The approach described in this guide is the exact math used in HelioScope.
The Modeling 101 Guide describes the highlevel relationships between the drivers of system performance modeling. For a more quantitative view of the exact equations, see the Mathematical Formulation available in HelioScope.
System Design
The energy yield of a system is based on the design in multiple ways. The component choice will drive the behavior of the module(s) and inverter(s). The orientation of the modules will drive the sun angles at each hour of the year, and therefore the total energy yield of the array. And the electrical design (module stringing, conductor sizes, etc.) will determine the system voltages, which impact wire losses and inverter efficiency.
This section outlines the key design attributes, and their relationships with performance modeling calculations.
Mechanical Design
The mechanical design attributes are the most visible parts of a solar array: which modules are used, how many are installed, and how they are structured & oriented.
Module Choice
The specific module used on a project has a major impact on the overall design. The module form factor (size and weight) will determine the number of modules that can be designed on a system. The efficiency of the module (and therefore the module’s rated power) determine the nameplate power for the system. And finally, the voltage and current rating of the module determines the electrical system designs, including how many modules can be wired in series, and how the strings must be fused. And of course, the cost of the module is a major driver in determining a project’s financial returns.
Additionally, other factors, such as temperature coefficient, fill factor, lowlight performance, and binning tolerance, can all have an impact on a system’s energy performance. The relative importance of these factors will depend on the size and location of an array.
Solar Module Specifications Source: Trina Solar
Module Orientation
A module’s orientation in a fixedtilt array is given by its tilt and azimuth angles. These two measures define the direction of the collector’s face:
 Azimuth defines the direction on a compass that the module is oriented. A zero degree azimuth corresponds to due North, 90 degrees will face East, 180 degree azimuth corresponds to due South.
 Tilt defines the angle of incline of the module, with zero corresponding to completely flat, and 90 degrees corresponding to completely vertical.
Module Tilt and Azimuth Angles Source: Homepower Magazine
The most common orientation for a solar array would be an azimuth of toward the equator (180 degrees in the Northern Hemisphere) and a slight tilt (tilt of between 520 degrees). In some systems, such as tracked systems, these angles will change throughout the day based on the position of the sun.
RowtoRow Spacing and Ground Coverage Ratio
In commercial rooftop and groundmount arrays, the spacing between the rows of modules is a critical design decision, as it has implications for the system size (since tighter spacing means that an array can fit more modules in a given space), and rowtorow shading (since closer racks of modules will shade each other more often).
A common design metric to evaluate the module spacing is the Ground Coverage Ratio (GCR), which is the ratio of the total module area, divided by the total ground area of the array. GCR values will be below 1.0, often between 0.3 and 0.7. There is an inverse relationship between rowtorow spacing and GCR: as the rows are spaced more closely together, the site ground coverage ratio will increase.
As GCR changes, there is generally a tradeoff between a system’s nameplate size and its energy yield. Lower GCR values will keep modules spaced far apart, which maximizes their individual production – however, this will result in a smallersized system. Higher GCR values will increase the system size, but will reduce the energy yield from higher crossbank shading.
Array Row Spacing Source: Homepower Magazine
System Sizing
The size of a solar array indicates how much power it can deliver at peak conditions. The power level is often referred to as the “nameplate power” of the array. System sizes are typically given in two different values: the DC power (the number of modules multiplied by their STC power rating), and the AC power (the number of inverters multiplied by their maximum rated AC output power). The ratio between the DC power and AC power is called the “Inverter loading ratio” (ILR).
Electrical Design
The electrical design of the array determine the electrical behavior of the array: the powers and voltages that the system will be be running at. This can have a major impact on the system's energy production.
String Size and Voltage
The number of modules in series (known as the “string size”) will determine the voltage of the strings. Voltages add in series – so the longer the string, the higher the string voltage. Any inverter has an input voltage range for the DC voltages that it can accept from the array. As long as the string voltages are within that inverter’s operating voltage range, the inverter will operate normally.
Beware of thinking just in terms of STC: the string voltage will drift up and down depending on the temperature of the modules. The module’s temperature coefficient will indicate exactly how the values for Vmp and Voc will move based on the module temperature. Note that the value for the temperature coefficient is always negative: higher temperatures will reduce voltages, while lower temperatures will raise voltages.
If a design results in undervoltage or overvoltage at the inverter, this can result in production losses, sometimes significant. If the array is moderately outside of the inverter’s voltage range (typically on the low end), then the inverter will peg at its minimum voltage, and will end up running the modules at a higher voltage than their MPP voltage. So this is technically mismatch loss, since the modules are not running at their peak power. If the string voltage is further outside of the inverter’s operating range, then the string may collapse completely, and will not be able to deliver any power at all at the inverter’s minimum voltage.
Codes often mandate a maximum system voltage, and so the string voltage must always be below this value, even on the coldest day. Values for max system voltage are typically 600V, 1000V, or potentially higher – but consult with your local inspector for guidance here.
Conductor and Combiner Design
Each string of modules must be connected to their corresponding inverter by a set of wires, and often a combiner box. As a result, each module string has a specific conductor path from the modules to the inverter connection. Based on the wire used, and the distance that must be covered by that wire, each string home run will have a specific resistance value.
Wire losses are based on the standard equation (I^{2}R), and are modeled based on the specific resistance of each home run, and the hourly current of the module string. The conductors will also lead to voltage drop between the modules and the inverter: the modules will have to run at a slightly higher voltage than the inverter’s draw voltage. In extreme cases, this can potentially cause undervoltage problems at the inverter, and/or parallel mismatch between strings.
Inverter Load Ratio
A solar array’s Inverter Load Ratio (ILR) is the ratio between the DC nameplate power (defined as the sum of the module DC power at STC) and the AC power (defined as the inverter maximum AC power production).
ILR values are usually greater than 1.0 (meaning that the DC system power is greater than the AC power), often between 1.11.3, and sometimes higher. This is because modules rarely generate at their nameplate power level, mainly because the sun is rarely at full strength, and when it is, it is typically hotter than 25 degrees C. This is why the Normal Operating Conditions (NOCT) values are used. Additionally, there are resistive losses between the surface of the module and the inverter – specifically, wire losses, mismatch losses, and converter losses if there are any DCDC electronics installed in the array. So in order to have the DC system and AC system appropriately matched, the design will call for the DC power to be 1020% higher than the AC power.
More recently, higher Inverter Load Ratios have begun to increase in popularity, with some designed values approaching or surpassing 1.5. These designs will clip power at the peak of the day, but will result in more generation at the “shoulders” of the day (late morning and late afternoon). These designs are generally driven by very inexpensive modules, systems with limits to their AC power rating, or timeofuse pricing regimes.
Inverter Choice
The inverter choice also has a major impact on a system’s performance. An inverter’s efficiency losses (typically 25%) are one of the larger efficiency losses in the system. Additionally, the DC input voltage window for the inverter will determine the potential string sizes that can be designed. Finally, the size and location of the inverter will determine the distances between the modules/combiner boxes and the inverter – and will therefore determine the wire content and wiring losses.
Solar Inverter
Environmental Assumptions
Since a solar array converts sunlight to electricity, the properties of that sunlight are extremely important  and the temperature of the array also matters, since solar modules behave differently based on the temperature.
Performance modeling calculations start with a weather file which represents the irradiance, temperature, and wind speed at every hour throughout the year. Then a series of calculations and assumptions determine the level of sunlight that actually reaches the modules. This "effective" irradiance is called the Plane Of Array irradiance, and is the final result of the irradiance calculations.
This section describes the various weather files, and the multiple steps used in the irradiance calculations.
Meteorological Data
Meteorological data provides detailed information about the environment around an array throughout the year. Standard meteorological files include information on the solar resource (direct and diffuse irradiance), ambient temperature, and wind speed, all at hourly intervals.
Meteorological datasets provide a number of variables:
 Global Horizontal Irradiance, GHI (W/m2): the total amount of sunlight available at a given moment, based on a collector that is oriented perfectly flat on the ground. This includes both the direct and diffuse components of the sunlight.
 Diffuse Horizontal Irradiance, DHI (W/m2): the indirect sunlight that is available to a collector that is oriented flat on the ground. This includes the general brightness of the sky, as well as reflected light. The best way to visualize this irradiance is to picture a person’s shadow on a sunny day. The ground under the shadow is not totally dark, even though the direct component has been removed. The remaining sunlight is the diffuse irradiance.
 Ambient temperature (°C): the air temperature at a given point in time. Note that this is not the same as the cell temperature – that is calculated separately based on a few inputs.
 Wind speed (m/s): The speed of the wind. This is used in the cell temperature calculations.
Note that many weather files also include other variables (including albedo, relative humidity, precipitation, and visibility), but many of them are inaccurate and/or inconsistent, and are therefore not used in performance modeling.
Solar Irradiance Source: Meteonorm
Weather Files
Weather files are generally based on a “Typical Meteorological Year” (TMY). The data points are selected from historical data to create a synthetic view of a full year that is indicative of typical annual averages and variability.
Source files for meteorological data include TMY3 files, Energy Plus Worldwide (EPW), and Solar Prospector. NREL TMY3 provides annual data for a group of over 2,000 sites, based on groundbased weather stations. Note that each TMY source also has a “Tier”, which indicates the relative quality of the collection site (I, II, and III, with I being the best). Energy Plus Worldwide (EPW) files are international files that contain data on a typical year at a variety of sites, also based on groundbased measurement stations. Finally, Solar Prospector data is a satellitebased dataset based on a 10kilometer grid throughout the US. As with TMY3 and EPW, the Prospector data is based on a “typical” year of hourly values.
Irradiance Calculations
To calculate the total amount of sunlight that reaches the solar modules, we must calculate the angle of the sun in the sky each hour, combine that with the module orientation, and use a set of equations to convert the information from the weather file into the irradiance components (direct, diffuse, and reflected) that actually hit the modules based on their orientation.
Solar Angle Calculation
In order to calculate the system’s production, we must calculate the sun’s angle in the sky at each hour throughout the year. The calculation is based on the location of the project. HelioScope can use the location of the meteorological file, or the exact latitude/longitude of the project.
For the solar angle calculation, HelioScope uses the PSA Algorithm, developed by Blanco & Muriel. This algorithm has the benefit of only requiring latitude, longitude, and time to calculate a solar angle. The solar angle calculation results in two values: the azimuth angle, which indicates the lateral position of the sun in the sky, and the elevation angle, which indicates the height of the sun in the sky (see figures below).
Azimuth Angle Source: PVEducation.org
Elevation Angle Source: PVEducation.org
At each step, the system size increases, adding modules that will be more heavily shaded. This is the tradeoff that every system designer has: we can expand the size of the system, but the further we go, the less productive the modules become.
Direct Irradiance
The direct normal irradiance (DNI), or beam irradiance on a module can be calculated based on the GHI and diffuse light from the weather file, along with the solar angle and module orientation angle. First, the total beam irradiance from the sun is calculated by subtracting the diffuse irradiance from the GHI. Then the effective irradiance to the module is adjusted based on the difference between the sun’s angle in the sky and the orientation angle of the solar module. This calculation is done for each module in the solar array.
Irradiance Components Source: Green Rhino Energy
Diffuse Irradiance and Transposition Modeling
In order to calculate the total diffuse irradiance available to a solar module, we use a Transposition model to “transpose” the light from across the sky into the portion that will be available in the module’s plane. There are two commonly accepted transposition models, the Hay Model and Perez Model. The Hay model is slightly simpler, accounting just for the clearness [circumsolar effect] of the sky over the course of the year. The Perez model is more complicated, including the effect of the sun being brighter near the horizon. The Perez model also requires data on the air mass throughout the year, which is included in the weather file.
The default transposition model in HelioScope is the Perez model. However, with lowerquality weather files, we recommend switching to the Hay model, as unreliable air mass values can distort the Perez model output.
Reflected Irradiance (Albedo)
Reflected irradiance represents sunlight that is reflected off the ground around an array. It is calculated based on an albedo coefficient (which is the portion of the incident irradiance that is reflected), and the share of the ground that is visible from the module. The albedo coefficient is typically 0.2, though it can be higher during snowy periods in cold climates.
Plane of Array Irradiance
The result of the calculations above gives us the POA irradiance, a measure of the total amount of solar energy that is available to an array, based the location of the array and the direction of the modules. POA irradiance is calculated at the module level, and averaged across modules to generate systemlevel values.
Note that in the loss tree, the POA irradiance adjustment is based from the starting point of Global Irradiance (GHI), which indicates a flat module plane. So this calculation will often have a positive adjustment, particularly if the modules are tilted toward the equator. The module orientation that maximizes POA irradiance is to have the modules facing toward the equator, with the modules tilted at an angle approximately based on the location’s latitude. Of course, the financially optimal orientation may be different, particularly if the system is spaceconstrained (since a lower tilt will allow more modules to be included on a project).
Measuring Plane of Array Irradiance Source: Homepower Magazine
Once the POA irradiance is calculated, we next move to the sitespecific irradiance loss factors, including shading, soiling, and reflection.
Irradiance Losses
Once we have calculated the total amount of irradiance that a module could receive based on its location and orientation, we next calculate the irradiance losses: factors that reduce the irradiance that is available to the solar modules. These losses are primarily due to far horizon obstructions, nearby obstruction shading, rowtorow shading, shading losses, and reflective losses.
Far Horizon Shade
When a solar array has an elevated horizon (say, from a nearby mountain range), that can be modeled as a horizon profile, which reduces the sunlight based on that horizon. Note that shading from the horizon is applied to the entire array: during the hours when the sun is below the horizon line (based on the solar angles and the horizon file), the entire array loses its direct irradiance, and produces only based on the diffuse irradiance.
Horizon profiles can be generated by the Solmetric SunEye or Solar Pathfinder. In fact, any Horizon file (.HOR format) file, which lists the azimuth and elevation angles, can be used to model a horizon profile. With a horizon file, the line is interpolated linearly across each of the points (see the figure below).
Horizon Line along Azimuth Values
Near Shading
The direct normal irradiance (DNI), or beam irradiance on a module can be calculated based on the GHI and diffuse light from the weather file, along with the solar angle and module orientation angle. First, the total beam irradiance from the sun is calculated by subtracting the diffuse irradiance from the GHI. Then the effective irradiance to the module is adjusted based on the difference between the sun’s angle in the sky and the orientation angle of the solar module. This calculation is done for each module in the solar array.
Shade modeling generally requires a 3D model of the shade object relative to the solar modules, in order to define which modules are shaded, and when. HelioScope uses native 3D objects called keepouts that allow users to quickly define the 3D scene from remote, replacing the need for onsite shade measurement tools.
Shade Patterns Generated in SketchUp
Near shading is applied on a modulebymodule basis. When a module is shaded (based on the shade pattern), it loses all of its Direct Irradiance, and maintains its Diffuse Irradiance. This is later factored into the string IV curve in order to fully calculate the mismatch effects from the shade.
One of the advantages of SketchUp is that it has a large library of objects that can be used freely to approximate just about any object. Use the search functionality in SketchUp’s 3D Warehouse to find preexisting 3D models of obstructions. [Link to shade object libraries]
RowtoRow Shading
When module banks are designed close together, they can end up shading each other when the sun is low in the horizon. This results in power loss, as the cells at the bottom of the module are shaded be the modules in front of them.
When calculating the shading losses from rowtorow shading, there are separate calculations for diffuse irradiance and direct irradiance:
 The diffuse irradiance for a module is based on the area of sky that is above the module – and so that will be reduced based on the share of the sky that is covered by the obstructing modules. [Add sentence about integrating up the face of the module?] Note that this diffuse loss will persist yearround, since the blocking module racks will always be blocking that share of the sky.
 The direct irradiance loss from rowtorow shading is based on the exact sun angle, and the shade pattern created from the front row of modules. As the shade line moves up the shaded modules, there is a nonlinear effect on the shaded module’s direct irradiance. With modules mounted in landscape, the first 1/6th of the module will reduce the DNI by 1/3, since that effectively shades the first cellstring entirely. Then the second 1/6th of shading has no additional power loss, since that cellstring has already had the DNI reduced to zero. This same logic is applied to the second and third cellstrings as well.
The DNI loss is not necessarily applied to all module banks in the array: HelioScope also factors in edge effects when modeling rowtorow shading for an array. For example, the front row of modules will not have rowtorow shading, and modules at the East edge of a bank will not have rowtorow shading in the morning.
RowtoRow Shading Source: SolarOregon.org
Note that in general, some rowtorow shading might optimal, since it might lead to a higher system size (and higher system profit) for a spaceconstrained array. Also, crossbank shading losses can also be reduced (but not eliminated) by adding modulelevel optimizers to an array.
Soiling Losses
Soiling losses are a userdefined loss factor, which are defined as a percentage of irradiance each month. The loss is applied to the entire irradiance value, including direct and diffuse irradiance. In areas with significant snowrelated losses, these loss assumptions are often bucketed as part of the soiling losses.
Note that in the loss tree, the POS irradiance adjustment is based from the starting point of Global Irradiance (GHI), which indicates a flat module plane. So this calculation will often have a positive adjustment, particularly if the modules are tilted toward the equator. The module orientation that maximizes POA irradiance is to have the modules facing due south, with the modules tilted at an angle equal to the location’s latitude. Of course, the financially optimal orientation may be different, particularly if the system is spaceconstrained (since a lower tilt will allow more modules to be included on a project).
Reflection Loss (Incident Angle Modification)
When sunlight strikes a module from a shallow angle, a portion of the light is actually reflected by the surface of the module. (A similar phenomenon can be seen when the surface of a pond will reflect the sky above it, even though the water looks clear when viewed straight down toward the surface of the water.) The lower the angle of the sunlight, the greater the reflection is. This reflective loss is technically called the Incident Angle Modifier (IAM).
Incident Angle Source: NaturalFrequency.com
These losses can be quite high for low angles, though the effective irradiance is generally low at these times. The IAM is applied DNI and diffuse components of irradiance, and is calculated for each module in the array. This loss factor will often be adjusted because of new antireflective coatings that are used on solar modules.
Soft Mismatch Assumptions
In addition to mismatch caused by the irradiance losses from shading, there are also small mismatch effects between modules, driven by uneven environmental conditions or manufacturing processes. These factors, often called “soft” mismatch, are generally smaller in effect than effects from hard shade, but are present in most any array.
There are three components of soft mismatch: differences in the irradiance on the modules, differences in module temperature, and manufacturing differences:
 Differences in irradiance. The modules across the array will not always receive the same level of irradiance. This can be caused by differences in the soiling rates of the modules (including bird droppings), or cloud cover that covers just part of the array. In HelioScope, this attribute is assumed as a normal distribution, centered around the array’s average irradiance (so it will have no net effect on the total irradiance).
 Temperature mismatch. Modules in the same array do not always run at the same temperature, generally because of differences in wind across the array, which can cool off modules at the perimeter of the array. HelioScope models temperature differences as a uniform distribution, centered on the average temperature in the array.
 Module binning. When modules are manufactured, they have small differences from one unit to the next. These are then tested and ‘binned’, and sold based on a specific tolerance range, typically a range of between 25%. HelioScope models the module binning tolerance as a uniform range, with the top and bottom end set by the user (so positivetolerance modules can be modeled appropriately).
Thermal Mismatch on Residential Rooftop Source: GTM Research
These three factors result in a series of small deviations from the standard calculations for a module’s IV curve, irradiance, and temperature. Note that each module in the array is sampled independently from each of these distributions. This then leads to a baseline level of mismatch that will be in the array, even in the absence of any near shading.
Module Behavior
Once a module's irradiance and temperature have been calculated, we calculate the resulting module's IV curve, which represents the underlying behavior of the module. This IV curve is based on a sophisticated model of the underlying physics of the module. Fundamentally, the IV curve represents the current a module can deliver at various voltages  with a point that maximizes the module's total power production.
This section describes the models used to calculate the effective cell temperature of the module, as well as the module models used to calculate the module's behavior.
Cell Temperature
Cell temperature is a critical component of system production, as a module’s power production can vary greatly based on its temperature. The relationship between power and cell temperature is defined as the module’s thermal coefficient. All coefficients are negative, as higher temperatures lead to lower power production. Note that a module’s nameplate power is based on the module being at STC, which is defined as 25 degrees C.
The drivers of a module’s temperature are primarily the environmental data (from the weather file), and to a lesser extent, the design of the array. The two main approaches for calculating cell temperature are the Sandia Temperature Model and the Diffusion cell temperature model (which is used by PVsyst).
Once the cell temperature is calculated based on a temperature model, it is then translated to the voltage and power effect on the module based on the module’s specific thermal coefficient, which is related to the semiconductor material of the module.
In HelioScope, these calculations are done at the module level, based on the exact irradiance and racking design for each module. This enables HelioScope to adjust for secondary effects, such as reducing the temperature of shaded modules based on the module's reduced irradiance.
Sandia Cell Temperature Model
The Sandia cell temperature model is based on a realworld study of outdoor solar arrays over 12 years, and the resulting temperatures were translated to equations that could be used across the full variety of weather conditions.
Generally, the equation starts with the ambient temperature, and then adjusts based on the irradiance on the modules (more sun makes the modules hotter) and the wind speed (more wind makes the modules cooler). The wind relationship is generally assumed to be nonlinear, with higher wind levels having less of an effect on the module temperature. Finally, the model adjusts for the difference between the temperature at the surface of the module and the temperature of the cell.
The equations have adjustable coefficients, based on the module design and the racking design. In particular, the racking type has a big difference: “open rack” has more air flow than “insulated”, and so the modules in an open rack design will tend to run cooler than modules that are mounted flush with a roof. These coefficients can be viewed in HelioScope, and adjusted by the user.
Diffusion Cell Temperature Model
Like the Sandia model, the Diffusion model also calculates the cell temperature of a module based on its environmental conditions. Unlike the Sandia model, the Diffusion model is not based on a realworld data set, but it has instead been generated via trialanderror based on feedback from customers.
The Diffusion temperature model is largely driven by the total energy absorbed by the module, minus an adjustment for a constant diffusion (loss) of temperature, plus additional diffusion based on wind across the module. It also accounts for the ambient temperature around the module.
The Diffusion model also has different coefficients for fixedtilt (i.e., modules with greater air flow), and flushmount modules with less air flow – and the exact coefficients will have a large effect on the cell temperature. These coefficients can also be adjusted by the user in HelioScope as part of a Condition Set.
Temperature Coefficient
A module’s temperature coefficients (also known as thermal coefficients) define the rate at which the module’s power and voltage change as a function of the module’s cell temperature. While each module has a slightly different temperature coefficient, there is always a negative relationship between the temperature of a module and its production: increased heat results in decreased production.
A module’s IV curve will change based on cell temperature and thermal coefficient, with the change predominantly driven by a change in the voltage of the module. Spatially, we can picture a module’s IV curve shifting to the left or right based on the cell temperature.
Module IV Curve at Various Temperatures
Note that a module’s nameplate power is based on the module being at STC, which is defined as 25 degrees C. So if operating temperatures are above 25, then the module voltages will be lower than the rated nameplate value.
Module Model
The solar module converts sunlight to power, and is the central component of a solar PV array. The module model is the most important aspect of any PV performance model, as it is the biggest driver of system performance. The module model defines the electric behavior of a solar module based on the irradiance on the module and the cell temperature.
The standard module characterization in HelioScope is based on a Singlediode Model, where each module in the array is modeled as a single semiconductor with an IV curve (similar to the IV curve seen on the module data sheet). This calculation is repeated for each module in the array.
The weather file (and module orientation) defines the irradiance and temperature of a module, which is then modeled through the module model to define the IV curve of the module at those conditions. Then the system design (including how the modules are connected, and the inverter principle of operation) determines the operating voltage of the modules based on the inverter’s draw voltage, which therefore determines the current (and power) the modules can deliver.
Module IV Curve
A module’s behavior at a given set of conditions can be summarized in an IV curve. The IV curve shows the tradeoff between the voltage applied across a module, and the current that it will deliver at that voltage. As the voltage is increased, the current drops, until the module reaches its maximum voltage (the opencircuit voltage). Each module IV curve has a point that maximizes the power from the module, which is know as the maximum power point.
Module IV Curve
The IV curve is typically shown at conditions of 1,000 W/m2 (equivalent to the sunlight on a sunny day) and 25 degrees C – these are known as Standard Test Conditions (STC). The IV curve at STC shows the four main attributes of any solar module: shortcircuit current (Isc), opencircuit voltage (Voc), maxpower current (Imp), and maxpower voltage (Vmp).
In practice, a module’s current will change based on its irradiance, while the voltage will generally move based on the temperature. So, for example, on a cold morning, the module voltage will be high, but the current will be low.
Fill Factor
A module’s fill factor is a proxy for how “sharp” a module’s IV curve is. The fill factor equation is shown by Vmp / (Isc * Voc)
Fill factors have a theoretical maximum of 1.0, and In practice, most solar modules have fill factors between 0.74 and 0.85.
Higher fill factor modules tend to be higher efficiency modules, though this is not always the case. High fill factors also tend to be more prone to mismatch, since the powervoltage curve (see Figure XX) has a sharper peak, and therefore will lose more power if the string current does not perfectly match the module’s optimal current.
Module SKU versus Characterization
Any specific solar module is based on a set of math that defines its behavior. This includes the main variables (Voc, Vmp, Isc, and Ioc), as well as many additional variables, like the shunt resistance and series resistance.
While a solar module might seem like it is tied to a single set of math, in practice each solar module can have multiple alternatives for the specific math. This could be driven by having an independently vetted module characterization, or updating the specifications based on a new bill of materials.
Therefore, HelioScope separates a module’s SKU from its characterization: each module SKU will be listed just once (say, the Yingli YL260P), while there are multiple characterizations for the module.
HelioScope Module Detail. Note the two characterization options at the bottom left
System Electrical Effects
While a solar module is a critical part of a PV system, it is not the only part. Modules will be wired in series to form strings, and these strings are connected to inverters that convert the DC power to AC power. The interactions bteween seriesconnected modules (particularly if some of the modules are shaded), and the behavior of the inverter, will all have major effects on the system's energy yield.
This section describes the system effects, including mismatch calculations, wire losses, optimizers, and inverters.
String IV Curve and Mismatch Modeling
Once each of the module IV curves have been calculated, they are aggregated together into strings based on the electrical design of the array. Modules are wired in series to create “strings”, and multiple strings are wired in parallel to feed an inverter’s MPP connection.
Recall the standard electrical circuit constraints: modules wired in series have to run at the same current (and their voltage adds), and strings wired in parallel must run at the same voltage (and their current adds). So, using this rule set, we aggregate up the hundreds or thousands of module IV curves to create stringlevel IV curves, and then aggregate the string IV curves (including wire resistance) to calculate the system’s IV curve at the inverter level. Finally, based on the IV curve available at the inverter, we choose the operating voltage that maximizes the system’s energy production, which is chosen as the inverter’s draw voltage.
Each module has an individual IV curve, and therefore has an individual maximum power point. However, based on the electrical constraints (series and parallel connections) described above, the modules will not always operate at their maximum operating point, particularly if there is mismatch between modules on the same string. The difference between the effective power of the array and the sum of the modules’ maximum power is defined as mismatch loss.
For example, take an hour where a module on a string of 12 is shaded from an obstruction. The string has two potential operating points: first, it can reduce the current on the entire string to the current of the shaded module. This will cause the other modules to run at a lower current than their maximum power point. Alternatively, the shaded module can be bypassed, and the remaining 11 modules can run at higher voltages (approximately 1/12 higher) to compensate for the missing module in series. The actual outcome will depend on the many specifics of each situation (including the exact current of the weak module, and how many strings the system has), though the operating point will always be the point that maximizes total system power. This dynamic is also why microinverters and DC optimizers can mitigate this mismatch to improve a system’s energy yield.
Note that this aggregation sums up the full set of system behavior: the calculated IV curve of each module, the soft mismatch factors, and the electrical design connecting the modules.
Wire Modeling
Each wire in an array has a specific resistance, based on the resistivity of the wire (the resistance per foot), and the distance covered by the wire. The resistance of each string corresponds directly to the wire losses, as well as the voltage drop on the strings. Thicker wire has less resistance per foot, and therefore has lower wire loss.
Size and Resistance of Various Wires
In HelioScope, the wire content of each string is calculated based on the exact distances between the modules, combiner boxes, and inverters of the array. In this way, the tool calculates wire losses and voltage drop based on the exact resistance of each home run between each string and its corresponding inverter.
Wire (I^{2}R) Losses
All wires carrying current will dissipate some of the energy that they are carrying. The equation for wire losses is I^{2}R, which implies that the losses from wires are directly related to the resistivity of the wire, and are related to the square of the current on the string – so as current increases, wire losses increase even faster.
In HelioScope, the current on each string is calculated each hour (based on the IV curve of each string, and the inverter’s power point chosen). So for example, for a system with 200 strings (~500kW system), and 5,000 operating hours, the simulation is calculating 1 million separate string current values (200 x 5,000), and therefore 1 million separate I^{2}R calculations.
In design, wire losses can be managed by adjusting the gauge of the wire used in the array. Thicker wires will reduce wire losses, though they are also more expensive.
Voltage Drop
The power losses from wire resistances come out of the voltage of each string, not the current. This is also referred to as ‘voltage drop’, as the voltage will drop between the source (the solar modules) and the load (the inverter).
In a solar array, where the load of a circuit is set by the inverter at a single central point, this ends up creating a situation where the modules run will run at a higher voltage to compensate for the voltage drop on the wire.
In some extreme cases, the voltage drop behavior could actually create mismatch losses. In a large array, there could be big differences in the wire lengths from the strings to the inverter. So the modules very far away from the inverter will have to run at a higher voltage than the closer modules, since they have to overcome a greater voltage drop on the wires. As a result, the inverter will pick the average voltage for the field, the modules far away will be running higher than their MPP voltage, and the ones closer to the inverter will be running lower than their MPP voltage. This could potentially lead to mismatch losses (though in the vast majority of cases, the actual losses here are very small).
Designers will often design an array to a target value of voltage drop, either based on the average string in the array, or based on the maximum voltage drop from the farthestaway string.
Microinverters and DC Optimizers
In some cases, solar arrays will be designed with modulelevel electronics, either microinverters or DC optimizers. While these products have a number of benefits (including modulelevel data, design benefits, and safety/shutoff functionality), here we will focus on the effects on the energy generation, and the simulation of these effects. In particular, these devices lead to different design topologies, and can sometimes lead to a different energy yield from the system, mainly due to mitigating the mismatch losses between modules. They also have unique device efficiencies which must be modeled.
Microinverters
Microinverters convert the DC power from a module to AC power. The difference between microinverters and central inverters is their size: microinverters are sized to work with single modules (or in some cases, two modules at once). Microinverters are also located right behind the module in the array, so there are very short DC wire runs (typically just the leads from the module), but much longer AC wiring systems.
The size differences notwithstanding, microinverters operate fairly similarly to central inverters: they have a DC input voltage range, they will track the modules’ maximum power point within that range, and they have a conversion efficiency (from DC to AC) based on the voltage and load from the modules.
EnPhase Microinverter
One main benefit of a microinverter architecture is the elimination of series connections between modules – so the mismatch losses from electrical effects will not apply with a microinverter system.
DC Optimizers
DC optimizers (from companies such as Tigo Energy or SolarEdge) do not replace the central inverter, but instead add a DCtoDC converter at each module. The converter manages the operating point of each module, so that each module can operate at its own maximum power point (eliminating the mismatch losses that would result from having a single global MPP set by the central inverter).
In some cases (such as SolarEdge, or Tigo Energy’s SmartCurve technology), the converter can also limit the voltage from each module, for the purposes of lengthening strings and reducing the wire content of the system. This can impact the modeling of the system twofold: there is an efficiency penalty when the string voltage must be clipped, but the reduced conductor count will also reduce the wire losses.
DC Optimizer
Compared to traditional system performance modeling, DC converters add an extra layer of complexity. The principle of operation of the electronics must be modeled (including the operating range and bypass modes), as well as the efficiency of the devices. Since DC optimizers are designed one per module, a simulation must account for the operation of each unique device in the array.
Inverter Modeling
The inverter is a device that converts the DC power from the modules to AC power for use on the grid. An inverter has an operating voltage that is typically much higher than a module’s output voltage, which is why modules are wired in series so the string voltage reaches the inverter’s input voltage range. Depending on the size of the inverter, it will typically have a number of string connected to the inverter, often with combiner boxes to combine current from the source circuits into larger conductors.
For voltages inside the inverter’s operating range, the inverter will track the maximum power point of the array, making sure that it is choosing a draw voltage that maximized the total power production of the array. The inverter choosing the maximum power point based on the IV curve of the array.
After choosing the input voltage, the inverter converts the DC power to AC power. Inverters are represented by efficiency curves, which show the total efficiency of the inverter as a function of the input voltage and power. Many inverters also have a "boost stage", where they increase the DC voltage before it is inverted to AC.
Inverter
Inverter Efficiency
Inverters run at different efficiencies based on the input voltage and power from the array. This is modeled by using efficiency curves to represent the full efficiency of the inverter (in other words, there is just a single step to represent the full efficiency hit of the inverter).
CEC Inverter Efficiency Curves Source: California Energy Commission
Efficiency curves are typically generated by the California Energy Commission, based on a common set of voltage and power levels. Other times, inverter efficiency is calculated by an independent laboratory, or are provided by the manufacturer. While the efficiency curves show a specific set of points (typically 6 different power levels, and three different voltages, for a total of 18 points), the efficiency of any point can be calculated by interpolating between the nearby points.
In addition to the detailed voltage and loadbased approach to inverter modeling, there are also common methods for aggregating these up to an average efficiency for an inverter. The most common methods are CEC Efficiency and European efficiency. While these are useful for assessing an inverter’s total efficiency, these summary values are generally ignored for inverter modeling, assuming the more detailed voltage and power values are available.
CEC and European Effieincies Source: SolarChoice
Clipping Loss
An inverter has an operational range of voltage and power that it is designed to work within. However, the array will not always operate within this envelope. In particular, the voltage from the modules can be above or below the inverter’s voltage range, or the power from the array can exceed the maximum power that the inverter can deliver. Each of these edge cases will result in a different system behavior:
 Overvoltage: If the optimal string voltage is too high for the inverter, the inverter will draw its maximum voltage (though the voltage is below the modules’ maximum power voltage). As a result, the system will still produce some power, but it will be less than the maximum of what it could be. The resulting power loss will be bucketed as mismatch loss.
 Undervoltage: If string voltage is too low, there are two potential effects. If the undervoltage is only moderate, then the inverter will still be able to draw some current from the array, but it will just be lower than the array’s maximum power. However, if the voltage imbalance is more severe, then the strings will not be able to drive the inverter, and can collapse entirely and produce no power. This is why undervoltage (particularly as string voltages sag in hot weather) can be particularly detrimental to a system’s production.
 Overpower: Every inverter has a maximum power rating (defined as the output power on the AC side of the inverter), which it will not exceed. If the input power increases such that the inverter starts to exceed its output limit, the inverter will increase its operating voltage, to pull the modules off of their maximum power point, until the system output power is below the inverter’s maximum. This is commonly known as clipping. This mode is happening more often, as PV system designs increasingly use higher inverter loading ratios to optimize the system economics.
Inverter MPPT Efficiency
The environment around an array is constantly changing: not only is the sun constantly moving through the sky, but a gust of wind can quickly cool off an array (increasing the voltage), or a dense cloud can quickly reduce the irradiance on the modules (reducing their current). Through all of this, inverters try to maintain the maximum power point for the entire array – and in the case of failure, an inverter can get stuck on a suboptimal operating point for an extended period (sometimes hours at a time), sacrificing significant time. The effectiveness of an inverter at maintaining an array’s peak production is called its maximum power point tracking (MPPT) efficiency.
Global vs Local System MPPT Source: SMA America
While MPP tracking efficiency is clearly important, there is no commonlyaccepted method for modeling the efficiency of an inverter’s MPPT approach. The physical changes in the array happen in seconds or minutes, though the standard weather file source and simulation looks only at hourly intervals. Therefore, MPPT efficiency is typically omitted from modeling, or at best is modeled as a userdefined loss factor.
Simulation and Reporting
The approach described above, including all irradiance and system power calculations, is repeated each hour throughout the “typical year” defined in the weather file, with the result being a projection of the array’s production over the course of the full year.
The results are then shown as a report, including a summary of each major step in the irradiance and energy calculation, and key metrics such as the Specific Energy Yield and Performance Ratio.
8760 Simulation
Any standard performance model is based on calculations at an hourly time interval. This starts with the weather file, which includes hourly data on environmental conditions, and continues with all of the standard tools using hourly time intervals for irradiance and power calculations. This approach is often called an 8760 simulation, because there are 8,760 hours in a year (365 days x 24 hours = 8,760). Then the hourly energy values are added up to show the total energy produced for the array through the entire year. This fullyear energy value (in kWh) can then be shown in a number of summary metrics, including the Specific Energy and Performance Ratio.
This hourly approach is useful for understanding an array’s annual production, as the hourly granularity illustrates seasonal and timeofday dynamics for the array’s production.
Detailed Loss Tree
A Detailed Loss Tree (also commonly known as a “Waterfall Chart”) shows the results of each major step in the performance calculation for the array, from the sunlight through the AC production. Most of the steps in the table are selfexplanatory, though two are worth further explanation:
“Output at Irradiance Levels” shows the energy loss from the distortion of the modules’ IV curves at low light. Module IV curves do not scale perfectly with differences in the sunlight (500W/m2 is not exactly half of 1,000W/m2), and the difference is shown in this step.
“System DC Output” shows the effect of wire losses in the array.
System Loss Tree
Energy Yield (kWh/kWp)
The Energy Yield (also known as Specific Energy) is a measure of the productivity of an array. The metric, kWh/kWp, shows the effective number of hours that each installed watt of power generates electricity. (And we say effective because if an array produces half strength for four hours, that would be counted as two effective hours, 50% x 4 = 2).
The energy yield is driven significantly by the weather at a location, since a greater level of sunlight will increase the Energy Yield. It is also very much related to the design of the array (including the module orientation, rowtorow shading, and inverter load ratio).
The Energy Yield uses the system’s DC nameplate power as the kWh value in the denominator.
Performance Ratio
The Performance Ratio (PR) measures the ratio between the total irradiance on an array and the equivalent energy generated from the array. The performance ratio shows the total amount of losses in the array between the surface of the modules and the AC energy production.
The denominator of the Performance Ratio is the planeofarray (POA) irradiance. This means that differences in module orientation will not materially change the PR (since both the energy and POA irradiance will change in tandem), while shading will reduce the PR (since the energy yield will drop, but the POA irradiance does not change).
Hourly CSV Export
The Performance Ratio (PR) measures the ratio between the total irradiance on an array and the equivalent energy generated from the array. The performance ratio shows the total amount of losses in the array between the surface of the modules and the AC energy production.
In addition to the summary reports, the hourly results are also available in a CSV format. The table includes a row for each hour, and the columns track each step in the calculation of the system’s energy production, including the underlying weather file, the solar angles, the irradiance calculations, and the power calculations.
Useful Resources
Meteorological Data:
TMY3 Dataset

EnergyPlus Energy Simulation Software
Irradiance Losses:
Solmetric SunEye
Soft Mismatch Assumptions:
SolarPro Article on Module Binning Losses
Inverter Modeling:
CEC Inverter List