The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Introduction to \(I-V\) Curves

Xuan Ma, Wei-Heng Huang

2021-04-14


An \(I-V\) curve indicates the relationship between current and voltage for a solar cell or module. Thus for a single \(I-V\) curve, the dataset usually consists of several data points of voltage \(V\) and the associated current \(I\). As is shown in Figure 1, a standard \(I-V\) curve has the shape of a concave curve with nearly no change of current at small voltage, and a sharp decrease of current at a certain voltage point.

Solar cell parameters in \(I-V\) curves are important in evaluating the performance and degradation of PV modules. These performance parameters include the maximum power point \(P_{mp}\), short-circuit current \(I_{sc}\), open-circuit voltage \(V_{oc}\), shunt resistance \(R_{sh}\), series resistance \(R_s\), and fill factor \(FF\). The first five of these parameters are illustrated in Figure 1. \(I_{sc}\) is defined as the current at zero voltage (the y-intercept of the \(I-V\) curve), while \(V_{oc}\) is the voltage at zero current (the x-intercept). \(R_{sh}\) is equivalent to the negative of inverse slope of the \(I-V\) curve near \(I_{sc}\). \(R_s\) is equivalent to the negative of inverse slope of the \(I-V\) curve near \(V_{oc}\). \(P_{mp}\) is the maximum product of current and voltage on the \(I-V\) curve. \(FF\) is defined as the ratio of the maximum power from the solar cell to the product of \(V_{oc}\) and \(I_{sc}\), it measures the “squareness” of the solar cell. \(FF\) is not shown in Figure 1 directly, but can be calculated with the equation

\[\begin{equation} FF= \frac{P_{max}}{I_{sc}*V_{oc}} \label{ff} \end{equation}\]

Figure 1: A standard $I-V$ curve and $I-V$ features. $I-V$ curve shows the relationship between current($I$) and voltage ($V$). $I-V$ features are maximum power point ($P_{mp}$), short-circuit current ($I_{sc}$), open-circuit voltage ($V_{oc}$), shunt resistance ($R_{sh}$), series resistance ($R_s$), and fill factor ($FF$)

Figure 1: A standard \(I-V\) curve and \(I-V\) features. \(I-V\) curve shows the relationship between current(\(I\)) and voltage (\(V\)). \(I-V\) features are maximum power point (\(P_{mp}\)), short-circuit current (\(I_{sc}\)), open-circuit voltage (\(V_{oc}\)), shunt resistance (\(R_{sh}\)), series resistance (\(R_s\)), and fill factor (\(FF\))

We define the in the \(I-V\) curves as how many typical \(I-V\) curve shapes appear in the current-voltage relationship. The standard \(I-V\) curve shown in Figure 1 is said to have only one step. There are cases (e.g. when it is cloudy) where several steps are present in a single \(I-V\) curve due to activation of the bypass diodes. An example of \(I-V\) curves with steps is demonstrated in Figure 2. This \(I-V\) curve looks like a combination of three standard \(I-V\) curves. This pattern of \(I-V\) curves is an indication of mismatch between different areas of the array of module under test. This may be caused by a partial shading of the PV array or damage of PV cells, causing bypass diodes to activate. If a step is caused by partially shaded array, then the step would be transient and disappear from future \(I-V\) curves. However, if the PV cell is damaged, then the step would be permanent.

Figure 2: An example of \(I-V\) curve that has three steps. The \(I-V\) curve is a combination of three standard \(I-V\) curves. There are three local maximum power point for each standard \(I-V\) curves. Out of these three, one is the global maximum power point.

Load data and run code to extract \(I-V\) features

library(ddiv)
## Use the example IV curve data that has two steps
## Load the IV curve data set
data(IV_step2)
IV2 <- data.frame(IV_step2)
#?IV_step2

## Calculate number of steps in IV curve
IVsteps(IV2$I,IV2$V,plot.option=FALSE)
## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length
## $step
## [1] 2
## 
## $xsep
##       V1
## 1 10.594
## Extract two sets of IV features for each sub IV curves
IVExtractResult(IV2,plot.option=FALSE)
## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length

## Warning in id.psi.in & id.psi.far: longer object length is not a multiple of
## shorter object length
##   step            Isc                Rsh              Voc              Rs
## 1    2 V1#1.732#1.917 V1#2732.708#46.831 V1#68.612#37.133 V1#34.319#1.082
##                Pmp            Imp              Vmp             FF    Cutoff
## 1 V1#17.841#55.137 V1#1.692#1.646 V1#10.544#33.489 V1#15.01#77.46 V1#10.594

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.