# pvconstants¶

This module contains configuration constants for PVMismatch, such as number of points in IV curve to calculate, flag to use parallel processing and parallel processing parameters. This module also contains some utility functions like npinterpx() and get_series_cells() are defined here too.

## PVconstants¶

class pvmismatch.pvmismatch_lib.pvconstants.PVconstants(npts=101)

Class for configuration constants

Parameters: npts (int) – number of points in IV curve
E0 = 1000.0

Imod_negpts = None

array of points with decreasing spacing from 1 to just less than but not including zero

Imod_pts = None

array of points with increasing spacing from 0 to 1

T0 = 298.15

[K] reference temperature

calcParallel(I, V, Vmax, Vmin)

Calculate IV curve for cells and substrings in parallel.

Parameters: I – currents [A] V – voltages [V] Vmax – max voltage limit, should be max Voc [V] Vmin – min voltage limit, could be zero or Vrbd [V] I: list, numpy.ndarray V: list, numpy.ndarray
calcSeries(I, V, meanIsc, Imax)

Calculate IV curve for cells and substrings in series given current and voltage in increasing order by voltage, the average short circuit current and the max current at the breakdown voltage.

Parameters: I – cell or substring currents [A] V – cell or substring voltages [V] meanIsc – average short circuit current [A] Imax – maximum current [A] current [A] and voltage [V] of series
k = 1.38064852e-23

[kJ/mole/K] Boltzmann constant

negpts = None

array of points with increasing spacing from 1 to just less than but not including zero

npts = None

number of points in IV curves

pts = None

array of points with decreasing spacing from 0 to 1

q = 1.6021766208e-19

[Coloumbs] elementary charge

## NumPy Extrapolating Interpolant¶

pvmismatch.pvmismatch_lib.pvconstants.npinterpx(x, xp, fp)

Numpy interpolation function with linear extrapolation.

Parameters: x (array_like) – The x-coordinates of the interpolated values. xp (1-D sequence of floats) – The x-coordinates of the data points, must be increasing. fp (1-D sequence of floats) – The y-coordinates of the data points, same length as xp. y – The interpolated values, same shape as x. {float, ndarray} ValueError – If xp and fp have different length

## Get Series Cells¶

pvmismatch.pvmismatch_lib.pvconstants.get_series_cells(cell_pos_column, prev_col=None)

Get the sequence of series cells between parallel crossties.

Parameters: cell_pos_column – column in cell position pattern prev_col – previous column in cell position pattern indices of series cells

## Formulas¶

### Vdiode¶

pvmismatch.pvmismatch_lib.pvconstants.Vdiode(Icell, Vcell, Rs)

Calculate Vdiode from current, voltage and series resistance.

Parameters: Icell – cell current [A] Vcell – cell voltage [V] Rs – cell series resistance [$$\Omega$$] diode voltage [V]

### Idiode¶

pvmismatch.pvmismatch_lib.pvconstants.Idiode(Isat, Vdiode, Vt, n)

Calculate diode current using Shockley diode model.

Parameters: Isat – diode saturation current [A] Vdiode – diode voltage [V] Vt – thermal voltage [V] n – diode ideality factor diode current

Note

Thermal voltage is defined as ...

$V_t = \frac {k_B * T} {q_e}$

### Ishunt¶

pvmismatch.pvmismatch_lib.pvconstants.Ishunt(Vdiode, Rsh)

### Igen¶

pvmismatch.pvmismatch_lib.pvconstants.Igen(Aph, Ee, Isc0)