pvmodule

This module defines the PVmodule.

PVmodule

class pvmismatch.pvmismatch_lib.pvmodule.PVmodule(cell_pos=[[[{'crosstie': False, 'idx': 0}, {'crosstie': False, 'idx': 1}, {'crosstie': False, 'idx': 2}, {'crosstie': False, 'idx': 3}, {'crosstie': False, 'idx': 4}, {'crosstie': False, 'idx': 5}, {'crosstie': False, 'idx': 6}, {'crosstie': False, 'idx': 7}, {'crosstie': False, 'idx': 8}, {'crosstie': False, 'idx': 9}, {'crosstie': False, 'idx': 10}, {'crosstie': False, 'idx': 11}], [{'crosstie': False, 'idx': 23}, {'crosstie': False, 'idx': 22}, {'crosstie': False, 'idx': 21}, {'crosstie': False, 'idx': 20}, {'crosstie': False, 'idx': 19}, {'crosstie': False, 'idx': 18}, {'crosstie': False, 'idx': 17}, {'crosstie': False, 'idx': 16}, {'crosstie': False, 'idx': 15}, {'crosstie': False, 'idx': 14}, {'crosstie': False, 'idx': 13}, {'crosstie': False, 'idx': 12}]], [[{'crosstie': False, 'idx': 24}, {'crosstie': False, 'idx': 25}, {'crosstie': False, 'idx': 26}, {'crosstie': False, 'idx': 27}, {'crosstie': False, 'idx': 28}, {'crosstie': False, 'idx': 29}, {'crosstie': False, 'idx': 30}, {'crosstie': False, 'idx': 31}, {'crosstie': False, 'idx': 32}, {'crosstie': False, 'idx': 33}, {'crosstie': False, 'idx': 34}, {'crosstie': False, 'idx': 35}], [{'crosstie': False, 'idx': 47}, {'crosstie': False, 'idx': 46}, {'crosstie': False, 'idx': 45}, {'crosstie': False, 'idx': 44}, {'crosstie': False, 'idx': 43}, {'crosstie': False, 'idx': 42}, {'crosstie': False, 'idx': 41}, {'crosstie': False, 'idx': 40}, {'crosstie': False, 'idx': 39}, {'crosstie': False, 'idx': 38}, {'crosstie': False, 'idx': 37}, {'crosstie': False, 'idx': 36}], [{'crosstie': False, 'idx': 48}, {'crosstie': False, 'idx': 49}, {'crosstie': False, 'idx': 50}, {'crosstie': False, 'idx': 51}, {'crosstie': False, 'idx': 52}, {'crosstie': False, 'idx': 53}, {'crosstie': False, 'idx': 54}, {'crosstie': False, 'idx': 55}, {'crosstie': False, 'idx': 56}, {'crosstie': False, 'idx': 57}, {'crosstie': False, 'idx': 58}, {'crosstie': False, 'idx': 59}], [{'crosstie': False, 'idx': 71}, {'crosstie': False, 'idx': 70}, {'crosstie': False, 'idx': 69}, {'crosstie': False, 'idx': 68}, {'crosstie': False, 'idx': 67}, {'crosstie': False, 'idx': 66}, {'crosstie': False, 'idx': 65}, {'crosstie': False, 'idx': 64}, {'crosstie': False, 'idx': 63}, {'crosstie': False, 'idx': 62}, {'crosstie': False, 'idx': 61}, {'crosstie': False, 'idx': 60}]], [[{'crosstie': False, 'idx': 72}, {'crosstie': False, 'idx': 73}, {'crosstie': False, 'idx': 74}, {'crosstie': False, 'idx': 75}, {'crosstie': False, 'idx': 76}, {'crosstie': False, 'idx': 77}, {'crosstie': False, 'idx': 78}, {'crosstie': False, 'idx': 79}, {'crosstie': False, 'idx': 80}, {'crosstie': False, 'idx': 81}, {'crosstie': False, 'idx': 82}, {'crosstie': False, 'idx': 83}], [{'crosstie': False, 'idx': 95}, {'crosstie': False, 'idx': 94}, {'crosstie': False, 'idx': 93}, {'crosstie': False, 'idx': 92}, {'crosstie': False, 'idx': 91}, {'crosstie': False, 'idx': 90}, {'crosstie': False, 'idx': 89}, {'crosstie': False, 'idx': 88}, {'crosstie': False, 'idx': 87}, {'crosstie': False, 'idx': 86}, {'crosstie': False, 'idx': 85}, {'crosstie': False, 'idx': 84}]]], pvcells=None, pvconst=None, Vbypass=None, cellArea=153.33)

A Class for PV modules.

Parameters:
  • cell_pos (dict) – cell position pattern
  • pvcells (list, PVcell) – list of PVcell
  • pvconst (PVconstants) – An object with common parameters and constants.
  • Vbypass

    float|list of :float bypass diode trigger voltage [V] default case - one bypass diode per cell string (VBYPASS = -0.5V(V))

    float - one bypass diode per cell string with Vf = Vbypass (V)

    len(list) == 1 - one bypass diode per module (bypasses entire module )

    len(list) == len(cell_pos) - bypass diode value across cell string as defined in the list

  • cellArea – cell area [cm^2]
Vbypass = None

[V] trigger voltage of bypass diode

calcMod()

Calculate module I-V curves.

Returns module currents [A], voltages [V] and powers [W]

cellArea = None

[cm^2] cell area

cell_pos = None

cell position pattern dictionary

numSubStr = None

number of substrings

numberCells = None

number of cells in the module

plotCell()

Plot cell I-V curves. Returns cellPlot : matplotlib.pyplot figure

plotMod()

Plot module I-V curves. Returns modPlot : matplotlib.pyplot figure

pvcells = None

list of PVcell objects in this PVmodule

pvconst = None

configuration constants

setSuns(Ee, cells=None)

Set the irradiance in suns, Ee, on the solar cells in the module. Recalculates cell current (Icell [A]), voltage (Vcell [V]) and power (Pcell [W]) as well as module current (Imod [A]), voltage (Vmod [V]) and power (Pmod [W]).

Parameters:
  • Ee (numpy.ndarray) – Effective Irradiance [suns]
  • cells (list) – Cells to change [Optional]
setTemps(Tc, cells=None)

Set the temperature in Kelvin, Tc, on the solar cells in the module. Recalculates cell current (Icell [A]), voltage (Vcell [V]) and power (Pcell [W]) as well as module current (Imod [A]), voltage (Vmod [V]) and power (Pmod [W]).

Parameters:
  • Tc (numpy.ndarray) – Cell Temperature [K]
  • cells (list) – Cells to change [Optional]
subStrCells = None

cells per substr

Standard module object builder

pvmismatch.pvmismatch_lib.pvmodule.standard_cellpos_pat(nrows, ncols_per_substr)

Standard module object builder.

Parameters:
  • nrows (integer) – Number of rows of cells in module.
  • ncols_per_substr (list of integers) – Number of columns of cells in each substring (in parallel with a diode).
Returns:

cellpos – Outermost list is a list of substrings in parallel with a bypass diode and in series with each other. The substring is a list of columns in that substring. Inside the column are the actual cells in each row. Each cell has a ‘crosstie’ key and an index.

Return type:

list of lists

Cross-tied module object builder

pvmismatch.pvmismatch_lib.pvmodule.crosstied_cellpos_pat(nrows_per_substrs, ncols, partial=False)

Cross-tied module object builder.

Parameters:
  • nrows_per_substr (list of integers) – Number of rows of cells in each substring (in parallel with a diode).
  • ncols (integer) – Number of columns of cells.
  • partial (boolean) – False (default) means TCT (all cells are cross-tied). True means no cross-tiling.
Returns:

cellpos – Outermost list is a list of substrings in parallel with a bypass diode and in series with each other. The substring is a list of columns in that substring. Inside the column are the actual cells in each row. Each cell has a ‘crosstie’ key and an index.

Return type:

list of lists

Standard module object

pvmismatch.pvmismatch_lib.pvmodule.STD96

Standard module – 12x8 cells Substrings have 2, 4 and 2 columns of cells per diode

Standard Tiled module with total cross-ties

pvmismatch.pvmismatch_lib.pvmodule.TCT492

Standard Tiled module with total cross-ties – 82x6 cells Substrings have 27, 28 and 27 rows of cells per diode

Standard Tiled module with partial cross-ties

pvmismatch.pvmismatch_lib.pvmodule.PCT492

Standard Tiled module with partial cross-ties – 82x6 cells Substrings have 27, 28 and 27 rows of cells per diode