PV Single-Diode Model: Datasheet I-V Curves and MPPT

Build a PV module I-V and P-V curve family from datasheet points. Scale a matched array and animate P&O or incremental conductance MPPT with voltage-step and sampling trade-offs.

#I-V curves #incremental conductance #MPPT #P-V curves #perturb and observe #photovoltaics #PV arrays #single-diode model

Turn a module datasheet into an electrical model you can inspect. This PV single diode model calculator predicts the I-V and P-V curves of a uniformly illuminated module or matched array, then compares perturb and observe with incremental conductance MPPT. It is intended for engineers selecting operating points, students studying photovoltaics, and people checking a converter simulation.

Start with the published Kyocera KC200GT example, choose the Canadian Solar CEC benchmark, or select Custom in the module selector. Enter short-circuit current Isc, open-circuit voltage Voc, maximum-power current Imp and voltage Vmp at standard test conditions: 1000 W/m² and 25 °C. Also supply series cell count and the absolute Isc and Voc temperature coefficients. Convert a percentage coefficient by multiplying it by its reference current or voltage and dividing by 100. The diode ideality factor is an assumption; four datasheet values do not identify all five model parameters uniquely.

Set plane-of-array irradiance and cell temperature. The solar panel I-V curve calculator reports array maximum power, MPP voltage and current, open-circuit voltage, short-circuit current and fill factor. The curve families show irradiance changes at fixed temperature and temperature changes at fixed irradiance. Series modules multiply voltage; identical parallel strings multiply current. All plots explicitly use SI axes. The temperature input supports the viewer’s unit conversion.

For the MPPT experiment, choose a voltage step per module and a sampling period. Supply a measured voltage-loop time constant that includes measurement filtering. Press play to see the operating point climb the instantaneous P-V curve while uniform irradiance falls and recovers. Both trackers’ complete histories remain available for comparison. The moving point follows the voltage loop continuously; history charts show controller samples. Captured-energy percentages integrate the voltage trajectory between controller updates, including initial acquisition and the cloud transient. A separate quadrature grid checks numerical convergence. These energy ratios differ from Femia’s worst instantaneous loss metric and are not inverter conversion efficiencies. P&O also uses a deadband reversal rule rather than the paper’s exact sign rule.

A larger step generally reaches the peak sooner but increases settled power loss. The dynamic P&O threshold estimates the step needed to distinguish a perturbation from the simulated irradiance change. It checks 129 irradiance levels and reports the worst assessed value: faster ramps and longer sample periods require larger steps. The default 2.1 V step exceeds this estimate for the default cloud ramp. Compare the threshold chart and one-step power change with your measurement resolution. The four-time-constant sampling interval is only a first-order estimate; a lightly damped second-order converter may settle more slowly. Validate both settings on the actual converter.

This tool estimates PV module parameters from datasheet points; it does not replace measured curves. It excludes partial shading, bypass-diode switching, reverse breakdown, mismatch, wiring losses, spectral effects, ageing and switching ripple. Partial shading can create several power peaks and needs the separate bypass-diode treatment in catalog subtask #841. A double-diode model can improve recombination behavior in some regimes. PI gains require a converter plant model or measurements and cannot be inferred from a panel datasheet. Installation work belongs to a qualified person.

How it is calculated

The module equation is I=Iph−I0[exp⁡((V+IRs)/a)−1]−(V+IRs)/RpI=I_{ph}-I_0[\exp((V+IR_s)/a)-1]-(V+IR_s)/R_p, with a=nNcellkT/qa=nN_{cell}kT/q. Power is VIVI. Villalva et al., open companion, pp. 2–5, motivates coupled adjustment of the resistances through the datasheet MPP.

Exact endpoint refinement. For each trial RsR_s, solve the linear equations in I0I_0 and gp=1/Rpg_p=1/R_p obtained by subtracting the short-circuit equation from the open-circuit and MPP equations. Recover IphI_{ph} from the short-circuit equation. Bracket and bisect RsR_s until Imp−VmpH/(1+RsH)=0I_{mp}-V_{mp}H/(1+R_sH)=0, where H=I0exp⁡((Vmp+ImpRs)/a)/a+gpH=I_0\exp((V_{mp}+I_{mp}R_s)/a)/a+g_p. This is the stationary-power form of a coupled Rs/Rp iteration, derived here; it avoids a grid-dependent peak search. The fit flag rejects solutions without positive physical parameters.

Temperature and irradiance. Following the coefficient-based approach of Villalva eqs. (3) and (6), Iph(G,T)=[Iph,ref+αscΔT]G/GrefI_{ph}(G,T)=[I_{ph,ref}+\alpha_{sc}\Delta T]G/G_{ref}. An endpoint correction gives I0(T)=[Iph,ref+αscΔT−(Voc,ref+βocΔT)/Rp]/[exp⁡((Voc,ref+βocΔT)/a(T))−1]I_0(T)=[I_{ph,ref}+\alpha_{sc}\Delta T-(V_{oc,ref}+\beta_{oc}\Delta T)/R_p]/[\exp((V_{oc,ref}+\beta_{oc}\Delta T)/a(T))-1]. Thus Voc follows the supplied coefficient at reference irradiance. Rs, Rp and n remain constant. Newton iteration solves the implicit current; a bracketed diode-voltage solve locates the MPP. Array voltage and current scale with series and parallel module counts.

Tracker experiment. Both algorithms step the array voltage reference. Between samples the assumed first-order voltage loop follows Vk=Vcmd+(Vk−1−Vcmd)exp⁡(−Ts/τ)V_k=V_{cmd}+(V_{k-1}-V_{cmd})\exp(-T_s/\tau). P&O reverses its last perturbation only when measured power falls by more than the deadband; it keeps the previous direction inside that band. This is a voltage-reference, deadband variant, not the exact duty-cycle sign rule of Femia (2005), Eq. (1), PDF p. 2. INC uses I+VΔI/ΔVI+V\Delta I/\Delta V with a deadband and handles negligible voltage change separately. Irradiance changes may confuse either finite-difference method. Curves and samples are deterministic; measurement noise is not added.

Sampling interval. Four time constants leave e−4=1.83%e^{-4}=1.83\% of a first-order voltage transient. The 4τ card is a first-order estimate, not a universal minimum. Femia (2005), PDF p. 5 (printed p. 967), Eq. (14), instead estimates power settling for a lightly damped second-order converter using its damping and natural frequency. Such a plant can settle more slowly than this assumed voltage servo. Select the hardware period beyond measured converter and filter settling; a 63.2% response time alone does not characterize ringing.

Dynamic voltage-step threshold. Femia (2005), PDF pp. 7–8 (printed pp. 969–970), Eqs. (15)–(23), compares perturbation-induced power change with irradiance-induced power change. Adapt the criterion to a settled voltage-reference perturbation: define H=−12∂2I/∂V2H=-\tfrac12\partial^2 I/\partial V^2, KG=∂I/∂GK_G=\partial I/\partial G at fixed voltage, and C=HVmp+Imp/Vmp=−12∂2P/∂V2C=HV_{mp}+I_{mp}/V_{mp}=-\tfrac12\partial^2P/\partial V^2, all at each module MPP. The local estimates are ∣ΔPV∣≈C(ΔV)2|\Delta P_V|\approx C(\Delta V)^2 and ∣ΔPG∣≈VmpKG∣G˙∣Ts|\Delta P_G|\approx V_{mp}K_G|\dot G|T_s. Hence

ΔV>VmpKG∣G˙∣TsC.\Delta V>\sqrt{\frac{V_{mp}K_G|\dot G|T_s}{C}}.

Here the plant has unity steady voltage-reference gain; no duty-cycle gain is inferred. The fitted single-diode model supplies the local fixed-voltage sensitivity KGK_G, rather than assuming a universal material constant. With D=I0exp⁡[(V+IRs)/a]/a+1/RpD=I_0\exp[(V+IR_s)/a]/a+1/R_p, implicit differentiation gives KG=(Iph/G)/(1+RsD)K_G=(I_{ph}/G)/(1+R_sD) and H=I0exp⁡[(V+IRs)/a]/[2a2(1+RsD)3]H=I_0\exp[(V+IR_s)/a]/[2a^2(1+R_sD)^3].

The cloud changes by G−GminG-G_{min} in one second, so the maximum ramp rate is (G−Gmin)/(1 s)(G-G_{min})/(1\,s). Compute the threshold at 129 irradiance levels across that range at the selected cell temperature and report the largest assessed value and its irradiance. The array threshold is the module threshold times the series count; parallel count cancels. The threshold grows with ∣G˙∣Ts\sqrt{|\dot G|T_s} and is zero for constant irradiance. The warning compares the chosen step against this near-MPP estimate. It assumes settled samples, small perturbations and a locally smooth curve; it is not a guarantee during acquisition or large excursions, and it omits deadband margin. The separate one-step/deadband warning remains relevant.

Loss and efficiency definitions. The ±one-step loss card uses the exact static curve. Femia's Eqs. (24)–(25), PDF p. 9 (printed p. 971), instead estimate a worst instantaneous loss for a four-point swing reaching two steps from the MPP. The captured-energy percentages here are 100∫P(t) dt/∫PMPP(t) dt100\int P(t)\,dt/\int P_{MPP}(t)\,dt, including acquisition and cloud ramps; they are different from that worst-loss efficiency and do not represent converter efficiency.

Animated operating point. At playback time, select the latest controller sample and its held voltage command. Evolve that sample's voltage exponentially to the current time and bound it between zero and the current open-circuit voltage, using the same trajectory as the energy integral below. Both the moving marker and its voltage/power caption use this continuous operating point; history charts retain the sampled data. At a controller sample time the marker coincides with its sampled voltage.

Energy between controller samples. Each sampled voltage command is held until the next update. Power is integrated along the continuous first-order trajectory V(tk+u)=Vcmd,k+[V(tk)−Vcmd,k]exp⁡(−u/τ)V(t_k+u)=V_{cmd,k}+[V(t_k)-V_{cmd,k}]\exp(-u/\tau), bounded by zero and the instantaneous open-circuit voltage. The energy grid is separate from the MPPT sample grid and independent of playback time. Integration segments split at the 2, 3, 5 and 6 s irradiance corners and at 2, 6 and 16 time constants after each update, resolving fast settling even when the sample period is long.

Gauss–Legendre quadrature compares four and eight points per segment, refining to 16 and 32 if needed. The largest change in either captured-energy percentage, or in available energy as a percentage of its refined value, must be at most 0.001 percentage point. The available-energy integral includes four seconds at starting irradiance, two seconds at minimum irradiance and the two one-second ramps. Captured energy is not estimated by joining controller power samples with straight lines. The reported refinement change is a numerical convergence estimate, not a model-accuracy guarantee.

Assumptions

  • Identical silicon modules, uniform irradiance and cell temperature, constant series and shunt resistance, no interconnect loss. Cell temperature is supplied directly.
  • STC data are nominal values. n is an explicit assumption, not an independently extracted material constant. Several parameter sets may fit a datasheet.
  • The KC200GT preset uses the manufacturer's 0.00318 A/K coefficient; Villalva rounds this to 0.0032 A/K. Its n=1.3 is from the paper.
  • The CEC preset is a numerical benchmark. Its n is derived from the published modified ideality voltage; the environmental law here is coefficient-based and is not the CEC/De Soto environmental model.
  • The MPPT plant is an assumed first-order voltage servo with no overshoot or switching model. The power deadband represents a comparison threshold, not a stochastic noise model. Both algorithms begin at the same fraction of Voc.
  • The simulated cloud affects every cell equally. Playback evaluates the held command's exponential voltage response at the current time and bounds it by instantaneous Voc; time-history charts retain controller-sampled values.
  • Captured energy and the animated operating point use the same first-order trajectory between updates, continuous irradiance and instantaneous Voc bound.
  • Dynamic P&O guidance uses local derivatives at each MPP and the maximum rate of the specified uniform cloud ramps. It assesses 129 equally spaced irradiance levels at the selected temperature, not every possible curve or converter. The threshold excludes a safety margin for the comparison deadband and is advisory for the P&O variant simulated here.

Where it applies

Use consistent STC points with 0 < Imp < Isc and 0 < Vmp < Voc. Custom modules must have a positive integer series-cell count, 0.5 ≤ n ≤ 2, positive Isc coefficient and negative Voc coefficient. A failed fit means the supplied points and assumed n do not admit this positive-resistance model; check the points and adjust n using measured curves.

The selected cell temperature range is −20 to 70 °C; the temperature-family curves extend another 15 K in either direction. Starting irradiance and the entire MPPT experiment must stay within 50–1200 W/m². The minimum experiment irradiance is G × cloud ratio; settings below 50 W/m² are blocked. A low-light uncertainty warning appears whenever this minimum is below 200 W/m². Low-light and extreme-temperature predictions are extrapolations, not a calibrated accuracy guarantee. Validate against additional manufacturer curves, especially below 200 W/m².

Villalva Table II lists Rs=0.221 Ω and Rp=415.405 Ω for the KC200GT. These rounded approximate parameters do not exactly meet the endpoint and stationary-MPP equations used here. The exact refinement yields about 0.23077 Ω and 597.37 Ω while retaining the published Isc, Voc, Imp and Vmp. The reference case therefore checks the independent datasheet points, not those approximate resistances. The CEC benchmark independently checks fitted resistances.

Sampling guidance is conditional on the supplied first-order time constant. The 4τ estimate does not replace the slower settling bound of a lightly damped second-order converter (Femia 2005, PDF p. 5, Eq. 14). The dynamic voltage-step threshold adapts Femia's near-MPP criterion (PDF p. 8, Eq. 23) to the fitted module and this cloud profile. It is an approximate lower threshold; exceeding it does not guarantee correct tracking with deadbands, unsettled samples, quantization, off-MPP operation or a different irradiance history. Real converters may have resonances, delays, saturation and interacting control loops. Hardware PI tuning needs a plant model or measured response. This tool does not size protection, cables or legal string-voltage limits. Partial shading and bypass diodes require a multi-substring model (catalog subtask #841); double-diode physics is outside scope. Installation work belongs to a qualified person.

References

  • Villalva, Gazoli and Ruppert Filho (2009), Comprehensive Approach to Modeling and Simulation of Photovoltaic Arrays. DOI: https://doi.org/10.1109/TPEL.2009.2013862
  • Villalva et al. (2009), Modeling and Circuit-Based Simulation of Photovoltaic Arrays, open companion, especially pp. 2–5. DOI: https://doi.org/10.18618/REP.2009.1.035045 ; full text: https://journal.sobraep.org.br/index.php/rep/article/download/559/509/986
  • Kyocera KC series manufacturer specifications, STC and temperature-coefficient rows (attached p. 1): https://reenergyhub.com/files/hersteller/Kyocera/pdf/Kyocera_KC125-200GT_EN.pdf
  • pvlib Python, Calculating a module's IV curves: CS5P-220M published CEC example parameters (BSD-licensed project), accessed 2026-10-27: https://pvlib-python.readthedocs.io/en/stable/gallery/iv-modeling/plot_singlediode.html
  • Femia, Petrone, Spagnuolo and Vitelli (July 2005), Optimization of Perturb and Observe Maximum Power Point Tracking Method, IEEE Transactions on Power Electronics 20(4), 963–973. PDF p. 5 (printed p. 967), Eq. (14): second-order settling; PDF pp. 7–8 (printed pp. 969–970), Eqs. (15)–(23): dynamic step criterion and worst case across irradiance; PDF p. 2, Eq. (1): duty-cycle update; PDF p. 9, Eqs. (24)–(25): worst-loss efficiency. DOI: https://doi.org/10.1109/TPEL.2005.850975
  • System Parameter Based Performance Optimization of Solar PV Systems with Perturbation Based MPPT Algorithms, Energies 14 (2021), 2007. DOI: https://doi.org/10.3390/en14072007 ; https://www.mdpi.com/1996-1073/14/7/2007 Open repository copy: https://psecommunity.org/wp-content/plugins/wpor/includes/file/2304/LAPSE-2023.30659-1v1.pdf

Inputs

InputSymbolUnitDefault
Module datasheet / choose Custom to enter your own
STC is 1000 W/m² and 25 °C. Custom opens all datasheet fields. Coefficients are absolute A/K and V/K, not percent.
moduleKyocera KC200GT
Plane-of-array irradianceGW/m^21000
Cell / module temperature
Use cell temperature, which can be much hotter than ambient air.
T_cell°C25
Modules per series stringN_series1
Parallel stringsN_parallel1
Animated tracker
Both algorithms are compared in the time histories. This selects the moving point.
algorithmPerturb and observe (P&O)
Voltage step per module
Per-module voltage-reference step; multiply by series modules for the array command. Compare with the dynamic P&O threshold for the simulated cloud ramp. Larger steps also raise settled oscillation loss.
DeltaVV2.1
MPPT sample / perturb periodT_samples0.05
Measured voltage-loop time constant
First-order approximation including sensing filters: estimate from the 63.2% response time of a step test. A lightly damped second-order converter may settle more slowly; use its measured settling response to choose the sample period.
tau_loops0.01
Power comparison deadband per module
Choose above effective measurement resolution. Used as an algorithm deadband; random noise is not simulated.
P_deadW0.03
Initial voltage / open-circuit voltagestart_frac0.55
Cloud irradiance / starting irradiance
Uniform irradiance ramps down at 2–3 s, holds to 5 s, and returns at 5–6 s. Keep starting irradiance × this ratio at least 50 W/m². This is not partial shading.
cloud_ratio0.55
Animation time ▶
Press play to watch the selected tracker. Curves and full histories are computed before playback.
t_plays0.55

Results

With the default inputs above, the calc gives:

ResultValue
Available maximum power200.14 W
MPP voltage26.3 V
MPP current7.61 A
Open-circuit voltage32.9 V
Short-circuit current8.21 A
Fill factor0.741
First-order sample-period estimate (4τ)0.04 s
Unsettled voltage after a sample (%)0.67
P&O minimum dynamic step / module (estimate)1.944 V
Worst assessed irradiance for the step estimate550 W/m²
Worst settled loss at ± one step (%)6.381
Smaller one-step MPP power change6.848 W
Ideal minimum initial travel time0.2 s
P&O energy captured / available (%)97.44
INC energy captured / available (%)97.5

Checked against sources

Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).

KC200GT: published STC endpoints and 200.143 W MPP

Source: Villalva 2009 open companion Table I, attached s2 p.5, reproducing manufacturer STC points. Table II's approximate Rs and Rp do not exactly meet the endpoint plus stationary-MPP constraints used here, so those resistances are not taken as exact reference values. The manufacturer rates nominal power at 200 W; 26.3 V × 7.61 A is 200.143 W.

Inputs: the default inputs above.

ResultSourceThis calc
Short-circuit current8.21 A8.21 A
Open-circuit voltage32.9 V32.9 V
MPP voltage26.3 V26.3 V
MPP current7.61 A7.61 A
Available maximum power200.1 W200.1 W

Independent CEC benchmark: CS5P-220M fitted parameters

Source: pvlib official gallery, Calculating a module's IV curves, CS5P-220M example parameter dictionary (attached s4 link), accessed 2026-10-27. Independent published CEC values: Rs=1.065 Ω, Rsh_ref=381.68 Ω, I_L_ref=5.114 A, I_o_ref=8.196e-10 A, a_ref=2.6373 V. The preset's n is derived from a_ref and 96 cells at 298.15 K. Tolerances allow the published rounding of the datasheet points and CEC parameters. This tests extraction at STC, not equivalence to De Soto temperature/irradiance scaling.

Inputs: Module datasheet / choose Custom to enter your own = Canadian Solar CS5P-220M (CEC); the others as above.

ResultSourceThis calc
Fitted module series resistance1.065 ± 0.005 Ω1.065 Ω
Fitted module shunt resistance381.7 ± 0.5 Ω381.7 Ω
Fitted reference photocurrent5.114 A5.114 A
Fitted reference diode saturation current8.196 × 10⁻¹⁰ ± 1 × 10⁻¹² A8.198 × 10⁻¹⁰ A
MPP voltage46.9 V46.9 V
MPP current4.69 A4.69 A

Independent-review regression: energy during fast settling and slow MPPT updates

Source: Independent review supplied in this conversation on 2026-10-27: finer integration of the same first-order trajectory converges to 78.00% for both trackers at these inputs; the former sample-only trapezoid gave 75.5616%. This is an independently supplied numerical regression reference, not a published measurement or hardware-validation case. Method context: Femia (2005), DOI 10.1109/TPEL.2005.850975, PDF p. 5 (printed p. 967), Eq. (14) concerns lightly damped second-order settling; this reviewed regression uses a first-order trajectory. Its integrated energy ratio differs from the worst-loss metric in PDF p. 9, Eqs. (24)–(25).

Inputs: MPPT sample / perturb period = 0.5 s; Voltage step per module = 2.5 V; Initial voltage / open-circuit voltage = 0.1; Cloud irradiance / starting irradiance = 1; the others as above.

ResultSourceThis calc
P&O energy captured / available (%)7878.002
INC energy captured / available (%)7878.002

Independent-review regression: exact irradiance at a missed sample-grid corner

Source: Independent review supplied in this conversation on 2026-10-27: irradiance_at(3 s)=550 W/m² for a 1000 W/m² start and cloud ratio 0.55, independently of the 0.49 s sampling grid. This verifies the specified piecewise-linear profile timing, not an experimental PV result. Method context: the ramp rate and intersample irradiance change enter Femia (2005), DOI 10.1109/TPEL.2005.850975, PDF p. 8 (printed p. 970), Eqs. (21)–(23); the cloud profile itself is specified here, not measured in that paper.

Inputs: MPPT sample / perturb period = 0.49 s; Animation time ▶ = 3 s; the others as above.

ResultSourceThis calc
Animated irradiance550 W/m²550 W/m²
Minimum irradiance reached during the MPPT experiment550 W/m²550 W/m²

Public CEC module: independent numerical dynamic-step cross-check

Source: Published CEC CS5P-220M parameters from pvlib's official single-diode gallery (attached s4). Independently computed here with Python 3 / SciPy bracketed current solves, bounded power maximization, and central finite differences of power curvature and fixed-voltage irradiance sensitivity: 3.3352365145 V/module at 550 W/m² for a 450 W/(m²·s) ramp and 0.05 s sampling period. The calculator uses analytic derivatives and a datasheet-refined fit; 0.002 V tolerance allows source rounding and derivative discretization. This is an independent numerical implementation check, not a published measured dynamic result. Method: Femia et al., July 2005, DOI 10.1109/TPEL.2005.850975, PDF p. 8 (printed p. 970), Eqs. (21)–(23), with current curvature from PDF p. 7, Eq. (18).

Inputs: Module datasheet / choose Custom to enter your own = Canadian Solar CS5P-220M (CEC); Voltage step per module = 3.6 V; the others as above.

ResultSourceThis calc
P&O minimum dynamic step / module (estimate)3.335 V3.335 V
Worst assessed irradiance for the step estimate550 W/m²550 W/m²
Maximum absolute irradiance ramp rate in the experiment450 W/(m²·s)450 W/(m²·s)

Independent review: animated point follows the intersample trajectory

Source: Independent reviewer supplied this numerical reproduction on 2026-10-30: the continuous first-order voltage trajectory used by energy integration is 26.03 V and 5.67 W at 2.99 s, rather than the stale sampled 28.43 V and 0 W. The instantaneous Voc is 27.47 V. This is a reviewer-supplied simulation regression, not a published measurement; it checks consistent use of the held voltage command, exponential settling and instantaneous forward-quadrant bound.

Inputs: Plane-of-array irradiance = 500 W/m²; Cloud irradiance / starting irradiance = 0.1; MPPT sample / perturb period = 0.2 s; Measured voltage-loop time constant = 0.05 s; Voltage step per module = 2.5 V; Initial voltage / open-circuit voltage = 0.9; Animation time ▶ = 2.99 s; the others as above.

ResultSourceThis calc
Animated instantaneous tracker voltage26.03 V26.03 V
Power at the animated point on the instantaneous curve5.67 ± 0.01 W5.675 W

Related Resources

Responses

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

L ading...