Solar array model

The ability to use Solcore to build a SPICE equivalent circuit allows entire PV systems to be simulated from the bottom up. Each photovoltaic solar cell is described using an equivalent circuit which can then be arranged in strings of series and parallel cells to represent the entire system. An example for a triple junction solar cell, complete with a bypass diode is shown in figure [fig:3J_equiv_curcuit]; this unit is the basic building block for a concentrator PV module.


The diode and resistance values for the equivalent circuit are determined from solar cell testing, while the current source is evaluated by integrating the product of the spectral irradiance (estimated using an appropriate radiative transfer code e.g. SPCTRAL2 or SMARTS) and the quantum efficiency which in turn can be calculated dynamically as a function of temperature by Solcore.

Since the entire module (and subsequently the system) is assembled from individual solar cell components, it is possible (and indeed, necessary) to distribute the component values to accommodate for manufacturing tolerances. This enables a close match between the modelled output power and that measured experimentally and has been used to determine how both aerosols and precipitable water affect the electricity yield from concentrator PV systems. Where system IV data is available, the emergence of electrical faults, (e.g. shunts or shading) can also be accounted for.

PV module solver functions

solcore.spice.pv_module_solver.solve_pv_module(solar_cell, options, totalcells=25, bias_start=0, bias_end=75, bias_step=0.1, jscSigma=0.0002, shading=None)[source]

Calculate the IV curve of a PV module made of a certain number solar_cells connected in series in a single string. A certain dispersion to the distribution of photocurrents among cells and shadowing losses can be added to ahoeve more realistic results.

  • solar_cell – A solar cell object containing all the junctions
  • options – A state object with all the options needed to solve the solar cell IV
  • totalcells – Total number of cells in a string
  • bias_start – Initial voltage of the IV curve of the module
  • bias_end – Final voltage of the IV curve of the module
  • bias_step – Step for the bias
  • jscSigma – Width of the distribution of short circuit currents around the ideal (eg: 0.02 = 2%). Default is set to 0.02% to aid convergence
  • shading – Array containing the shading loses for each cell. It can be a 2D array (0 = no shading, 1 = full shading)

A tuple with the array of voltages, currents, a list with the Isc of each junction in each cell and the raw output from SPICE.

solcore.spice.pv_module_solver.spice_junction(jc, nc, isc, j01, j02, n1, n2, Eg, rsh)[source]

Creates the string representation in SPICE of the junciton defined by the input values.

  • jc – junction counter
  • nc – node counter
  • isc – Short circuit current
  • j01 – Reverse saturation current corresponding to ideality factor n1
  • j02 – Reverse saturation current corresponding to ideality factor n2
  • n1 – Ideality factor, typically = 1
  • n2 – Ideality factor, typically = 2
  • Eg – Bandgap of the material the junction is made off
  • rsh – Shunt resistance in the junction

A string representation of the junciton in SPICE