Skip to main content

Summary

The Single Diode Model calculates DC power output using a five-parameter equivalent circuit representing a PV module. The model solves the circuit equation iteratively to find the maximum power point voltage and current. PlantPredict implements three variants: OneDiode (standard), OneDiodeRecombination (with Martin & Ruiz recombination), and OneDiodeRecombinationNonLinear (with polynomial gamma). The solution uses Newton-Raphson iteration with convergence tolerance of 0.0001 V, typically converging in less than 2000 iterations. The output includes maximum power point values (VmpV_{mp}, ImpI_{mp}, PmpP_{mp}) and open-circuit voltage (VocV_{oc}).

Inputs

NameSymbolUnitsDescription
Alphaα\alpha1/VThermal voltage parameter: q/(kTcNsγ)q/(k T_c N_s \gamma)
Saturation CurrentDNIextraDNI_{extra}ADiode reverse saturation current (scaled)
Series ResistanceRsR_sΩSeries resistance (scaled + DC wiring)
Shunt ResistanceRshR_{sh}ΩShunt resistance (scaled)
PhotocurrentIphI_{ph}ALight-generated current (scaled)
Recombination Parameterdi2/utdi_2/u_tRecombination parameter (advanced model only)
Built-in VoltageVbiV_{bi}VBuilt-in junction voltage per cell (advanced model only)
Number of CellsNsN_sCells in series

Outputs

NameSymbolUnitsDescription
Max Power VoltageVmpV_{mp}VVoltage at maximum power
Max Power CurrentImpI_{mp}ACurrent at maximum power
Max PowerPmpP_{mp}WVmp×ImpV_{mp} \times I_{mp}
Open-Circuit VoltageVocV_{oc}VVoltage when I=0I = 0
Short-Circuit CurrentIscI_{sc}ACurrent when V=0V = 0 (input)

Detailed Description

Standard Single Diode Model (OneDiode)

Circuit equation: I=IphI0(eαV1)VRshI = I_{ph} - I_0 \left( e^{\alpha V} - 1 \right) - \frac{V}{R_{sh}} where VV is internal voltage: V=Vterminal+IRsV = V_{terminal} + I R_s Maximum power condition: Find voltage VV where dPdV=0\frac{dP}{dV} = 0 using Newton-Raphson iteration: Vn+1=Vnf(Vn)f(Vn)V_{n+1} = V_n - \frac{f'(V_n)}{f''(V_n)} where f(V)=dPdVf(V) = \frac{dP}{dV} and derivatives calculated from circuit equation. Iterative solution: Starting from V2=1V_2 = 1 V, iterate: V2=V1numeratordenominatorV_2 = V_1 - \frac{\text{numerator}}{\text{denominator}} Numerator: ((1+eV1α)I0RsRshIphRsRsh+(Rs+Rsh)V1Rsh2)(1+eV1αI0Rshα)\left( \frac{(-1 + e^{V_1 \alpha}) I_0 R_s R_{sh} - I_{ph} R_s R_{sh} + (R_s + R_{sh}) V_1}{R_{sh}^2} \right) \left( 1 + e^{V_1 \alpha} I_0 R_{sh} \alpha \right) +(eV1αI0Rsh(I0+Iph)Rsh+V1)(Rs+Rsh+eV1αI0RsRshα)+ \left( e^{V_1 \alpha} I_0 R_{sh} - (I_0 + I_{ph}) R_{sh} + V_1 \right) \left( R_s + R_{sh} + e^{V_1 \alpha} I_0 R_s R_{sh} \alpha \right) Denominator: (α2I0RseV1α)(IphI0(eV1α1)V1/Rsh)(\alpha^2 I_0 R_s e^{V_1 \alpha}) (I_{ph} - I_0 (e^{V_1 \alpha} - 1) - V_1 / R_{sh}) +(1+αI0RseV1α+Rs/Rsh)(I0αeV1α1/Rsh)+ (1 + \alpha I_0 R_s e^{V_1 \alpha} + R_s / R_{sh}) (-I_0 \alpha e^{V_1 \alpha} - 1 / R_{sh}) +(1+I0RsαeV1α+Rs/Rsh)(I0αeV1α1/Rsh)+ (1 + I_0 R_s \alpha e^{V_1 \alpha} + R_s / R_{sh}) (-I_0 \alpha e^{V_1 \alpha} - 1 / R_{sh}) +(V1IphRs+I0RseV1αI0Rs+V1Rs/Rsh)(I0α2eV1α)+ (V_1 - I_{ph} R_s + I_0 R_s e^{V_1 \alpha} - I_0 R_s + V_1 R_s / R_{sh}) (-I_0 \alpha^2 e^{V_1 \alpha}) Convergence: Continue until V1V2<0.0001|V_1 - V_2| < 0.0001 V Failure handling: If V2=V_2 = \infty or NaN or 2000 iterations reached:
  • Reset: V2=hold+1V_2 = hold + 1
  • If hold>500hold > 500, exit with error
Current calculation: Imp=IphI0(eαV21)V2RshI_{mp} = I_{ph} - I_0 (e^{\alpha V_2} - 1) - \frac{V_2}{R_{sh}} Round to 4 decimal places. Validation: If Imp>IphI_{mp} > I_{ph} or Imp<0I_{mp} < 0, restart iteration with V2=hold+1V_2 = hold + 1 Terminal voltage: Vmp=V2ImpRsV_{mp} = V_2 - I_{mp} R_s Round to 4 decimal places. Power: Pmp=Vmp×ImpP_{mp} = V_{mp} \times I_{mp} Open-circuit voltage: Solve for VV when I=0I = 0 using Lambert W function method.

Advanced Diode Model (OneDiodeRecombination)

Circuit equation with recombination: I=IphI0(eαV1)VRshdi2/utIphVbi,scaledVI = I_{ph} - I_0 (e^{\alpha V} - 1) - \frac{V}{R_{sh}} - \frac{di_2/u_t \cdot I_{ph}}{V_{bi,scaled} - V} where:
  • Vbi,scaled=Vbi×NsV_{bi,scaled} = V_{bi} \times N_s
  • di2/utdi_2/u_t is recombination parameter
  • VbiV_{bi} is built-in voltage per cell
Newton-Raphson iteration: V2=V1f(V1)f(V1)V_2 = V_1 - \frac{f'(V_1)}{f''(V_1)} First derivative: f=((1+eV1α)I0Rs+(Rs+Rsh)V1Rsh+IphRs(1+di2/utVbi,scaledV1))f' = \left( (-1 + e^{V_1 \alpha}) I_0 R_s + \frac{(R_s + R_{sh}) V_1}{R_{sh}} + I_{ph} R_s \left(-1 + \frac{di_2/u_t}{V_{bi,scaled} - V_1}\right) \right) ×(1Rshdi2/utIph(Vbi,scaledV1)2eV1αI0α)\times \left( -\frac{1}{R_{sh}} - \frac{di_2/u_t \cdot I_{ph}}{(V_{bi,scaled} - V_1)^2} - e^{V_1 \alpha} I_0 \alpha \right) +(I0eV1αI0+IphV1Rshdi2/utIphVbi,scaledV1)+ \left( I_0 - e^{V_1 \alpha} I_0 + I_{ph} - \frac{V_1}{R_{sh}} - \frac{di_2/u_t \cdot I_{ph}}{V_{bi,scaled} - V_1} \right) ×(1+Rs(1Rsh+di2/utIph(Vbi,scaledV1)2+eV1αI0α))\times \left( 1 + R_s \left( \frac{1}{R_{sh}} + \frac{di_2/u_t \cdot I_{ph}}{(V_{bi,scaled} - V_1)^2} + e^{V_1 \alpha} I_0 \alpha \right) \right) Second derivative (similar expansion with additional recombination terms). Current calculation: Imp=IphI0(eαV21)V2Rshdi2/utIphVbi,scaledV1I_{mp} = I_{ph} - I_0 (e^{\alpha V_2} - 1) - \frac{V_2}{R_{sh}} - \frac{di_2/u_t \cdot I_{ph}}{V_{bi,scaled} - V_1} Round to 5 decimal places. Convergence and validation: Same as standard model. Open-circuit voltage: Solve using advanced diode Lambert W method.

Nonlinear Gamma Model (OneDiodeRecombinationNonLinear)

Uses same recombination equations but with gamma calculated using polynomial temperature dependence before solving.

References

  • King, D. L., Boyson, W. E., & Kratochvil, J. A. (2004). Photovoltaic array performance model. SAND2004-3535, Sandia National Laboratories.
  • De Soto, W., Klein, S. A., & Beckman, W. A. (2006). Improvement and validation of a model for photovoltaic array performance. Solar Energy, 80(1), 78–88.
  • Martin, N., & Ruiz, J. M. (2001). Calculation of the PV modules angular losses under field conditions by means of an analytical model. Solar Energy Materials and Solar Cells, 70(1), 25–38.