PV String Sizing Calculator for Cold Mornings
Check cold-morning PV string voltage against the inverter’s hard DC limit, hot MPPT voltage, current and DC/AC ratio. Animate a temperature-dependent I–V curve.
A cold, bright morning can produce the highest voltage a photovoltaic string will ever apply to its inverter. Open-circuit voltage rises as silicon cells cool, and an inverter that has not started is exposed to that voltage even though no useful power is flowing. This string sizing calculator makes the absolute DC voltage limit and its remaining margin the first results you see.
Use it for preliminary PV layout work, checking an existing proposal, or teaching why series and parallel connections impose different limits. Engineers, students and installers can compare a proposed modules-per-string count with a calculated hot-to-cold voltage window. For Stringplanung Wechselrichter work, the same checks apply: the module data and the inverter ratings must describe the actual equipment.
Start with the module nameplate values and the signed Voc coefficient. A coefficient quoted in percent per degree must be converted to volts per kelvin using the module's STC open-circuit voltage. Enter the full matching De Soto five-parameter fit for MPPT and I–V calculations. The default module is the published Canadian Solar CS5P-220M example; the inverter limits are an editable design scenario. A fit consistency warning helps catch accidental mixtures of module data.
Next enter the site's minimum design cell temperature and its maximum operating cell temperature. Hot cell temperature is usually higher than hot ambient temperature. Choose effective irradiance for the MPPT check and a credible peak irradiance for the voltage and current checks. Include an appropriate positive Voc tolerance. The safety calculation uses the larger of the datasheet cold correction and the model's cold voltage at peak irradiance, then applies that allowance.
Read the cold string voltage beside the inverter limit and the lowest DC equipment rating. A negative or zero margin requires a revised design. The suggested series-count window also checks hot MPPT voltage, cold MPPT voltage and hot open-circuit startup voltage at the chosen irradiance. Parallel-string limits use a conservative short-circuit-current bound; the additional short-circuit factor and DC/AC ceiling are explicit project assumptions.
Press ▶ to watch the string I–V curve move from cold to hot against a fixed MPPT band. This temperature sweep illustrates PV string voltage at cold temperature without changing any design limit. The shaded band is the entered tracking window, not a guarantee of full inverter power.
This is a design-point screening tool. It does not calculate annual yield, clipping energy, shading, bypass-diode behavior, mismatch, cable losses, string fuses, insulation, earthing or fault protection. Repeat the MPPT test at relevant lower irradiance and check the inverter's full-power operating envelope. Installation work belongs to a qualified person. Verify the actual manufacturer's instructions and check against the standard in force at the installation site.
How it is calculated
The cold-voltage correction follows the manufacturer method described by SMA, Planning of a PV Generator, DC-PL-en-11, pp. 23–24: . The independent PPA/SEIAPI July 2020 worked example is attached as source s2, PDF page 13. Here is signed in V/K.
For additional conservatism, design module voltage is . The largest integer series count with strictly positive voltage margin is . This equals rounding down except at an exact integer quotient, where one fewer module is required. Margin is the voltage rating minus the calculated cold string voltage; zero margin is flagged for revision.
The De Soto single-diode relation is . Temperature and irradiance adjust ; stays constant. We use the silicon parameters and effective-irradiance convention of the pvlib worked example: eV, relative bandgap slope −0.0002677 K⁻¹, and no CEC Adjust factor. Spectral modifier is unity. A bounded bisection in diode voltage finds Isc, Voc and the zero of the power derivative at MPP. The pvlib comparison uses a different numerical method, Lambert W.
The hot MPP lower bound and hot Voc startup bound are rounded up; the cold MPP upper bound is rounded down. These are design-point checks at the entered MPPT irradiance. Current is corrected at peak irradiance and hot temperature; the larger datasheet/model Isc bounds operating current. Multiply that bound by parallel strings and by the entered extra factor for the permissible short-circuit-current check. DC/AC is total installed STC watts, across identically populated trackers, divided by rated inverter AC watts.
Fifteen temperature rows, each with 61 I–V points, are solved before playback. Frames interpolate the cached rows; reported design-point values use the solved model directly.
Source transcription note: the Sandia PVPMC web page displays an extra division by irradiance in its shunt-resistance equation. We use , as in pvlib's documented implementation and the independent worked cases, rather than treating the web transcription as a second physical irradiance dependence.
The saturation-current input is shown in nA for readability and converted explicitly to A before the De Soto calculation.
Assumptions
Identical, uniformly illuminated crystalline-silicon modules; balanced strings of equal length on each identically populated MPPT. No shading, mismatch, bypass-diode conduction, wiring losses or reverse-bias operation. The published CS5P-220M module is a reproducible default; the 5 kW inverter and its limits are illustrative user inputs, not a claim about a named product.
Minimum cell temperature must be selected for the actual site, including radiative cooling where relevant. Hot temperature is the cell temperature under load. Effective irradiance includes optical effects supplied by the user; rear irradiance may only be represented by a suitable equivalent value. The 2% voltage allowance, 1.25 extra current factor, 5% low-headroom warning and 1.5 DC/AC ceiling are explicit screening choices, not regulatory requirements. Operating current uses Isc as a conservative upper bound, so a manufacturer may allow a layout this screening rejects.
A matching five-parameter fit is required when changing module. The 5% STC fit check only detects gross inconsistency; it does not validate temperature coefficients or guarantee extrapolation accuracy.
Where it applies
Crystalline-silicon De Soto screening over entered cell temperatures −60…90 °C, MPPT irradiance 100…1500 W/m² and peak irradiance 1000…1500 W/m²; these are numerical input limits, not a certification of model accuracy at every extreme. Apply only within the module fit's demonstrated range. Rated DC voltages up to 1500 V are supported. Cold safety takes no credit for low irradiance. Tracking and startup are checked only at the selected irradiance, so repeat for relevant weak-light conditions. The displayed allowable series window is a voltage window; current and total-power checks remain separate.
The curve animation is an interpolated illustration. It excludes breakdown and protection behavior. A positive margin does not establish installation compliance. Manufacturer tolerances, connector ratings, per-input limits, protection, isolation and cable sizing still require review. Installation work belongs to a qualified person. Method sources dated 2013 and July 2020 are cited for engineering calculation, not adopted as current local regulations; check against the standard in force and current equipment instructions.
References
- De Soto, W., Klein, S. A., Beckman, W. A. (2006). Improvement and validation of a model for photovoltaic array performance. Solar Energy 80, 78–88. https://doi.org/10.1016/j.solener.2005.06.010
- Sandia PVPMC, De Soto Five-Parameter Module Model. https://pvpmc.sandia.gov/modeling-guide/2-dc-module-iv/single-diode-equivalent-circuit-models/de-soto-five-parameter-module-model/ — see the source transcription note in Method.
- pvlib official example, Calculating a module's IV curves, CS5P-220M input parameters and published result table, accessed 2026-10-27. https://pvlib-python.readthedocs.io/en/stable/gallery/iv-modeling/plot_singlediode.html
- SMA, Planning of a PV Generator, DC-PL-en-11 (2013), sections 3.2.1–3.2.2, pp. 23–24. https://files.sma.de/downloads/DC-PL-en-11.pdf
- PPA / SEIAPI, Grid Connected PV Systems with BESS Install Guidelines, July 2020, printed p. 7 (attached PDF p. 13), Worked Example 1. https://www.ppa.org.fj/wp-content/uploads/2020/09/Grid-Connected-PV-Systems-with-Battery-Energy-Storage-Systems-Install-Guideline-V1-July-2020.pdf
- pvlib calcparams_desoto implementation, including Rsh irradiance scaling. https://pvlib-python.readthedocs.io/en/stable/_modules/pvlib/pvsystem.html#calcparams_desoto
Inputs
| Input | Symbol | Unit | Default |
|---|---|---|---|
| Module open-circuit voltage at STC Defaults: Canadian Solar CS5P-220M, as published in the pvlib worked example. | V_oc_ref | V | 59.4 |
| Module maximum-power voltage at STC | V_mp_ref | V | 46.9 |
| Module short-circuit current at STC | I_sc_ref | A | 5.1 |
| Module maximum-power current at STC | I_mp_ref | A | 4.69 |
| Module rated power at STC | P_ref | W | 220 |
| Signed Voc temperature coefficient Use the signed absolute coefficient. For a datasheet in %/°C: multiply that number by Voc / 100. Example: −0.32%/°C at 37.7 V becomes −0.12064 V/K. | beta_voc | V/K | -0.22216 |
| Signed Isc temperature coefficient Absolute current coefficient in A/K. A relative coefficient in %/°C is multiplied by Isc / 100. | alpha_isc | A/K | 0.004539 |
| Modified diode ideality factor at STC a = n × series cell count × thermal voltage; use the same fit as the other four parameters. Defaults from the pvlib example, without the CEC Adjust correction. | a_fit | V | 2.6373 |
| Light current at STC | IL_fit | A | 5.114 |
| Diode saturation current at STC STC reference saturation current in nanoamperes: 0.8196 nA = 8.196 × 10⁻¹⁰ A. The model explicitly converts this input to amperes. | I0_fit | nA | 0.8196 |
| Module series resistance | Rs_fit | ohm | 1.065 |
| Module shunt resistance at STC Replace all fit parameters together when changing module. A nameplate alone does not uniquely determine a five-parameter model. | Rsh_fit | ohm | 381.68 |
| Minimum design cell temperature Use a defensible local extreme, including any required allowance for radiative cooling. At cold start this is close to ambient, not a typical winter temperature. | T_min | °C | -15 |
| Maximum operating cell temperature Cell temperature, not ambient. Account for mounting, irradiance, wind and ventilation. | T_hot | °C | 70 |
| Effective irradiance for MPPT checks Repeat at lower effective irradiance to test weak-light tracking. The cold safety check never takes credit for low irradiance. | G_mppt | W/m^2 | 1000 |
| Peak effective irradiance for voltage and current Include locally credible cloud enhancement, reflection or rear-side contribution in this equivalent irradiance. | G_peak | W/m^2 | 1200 |
| Positive Voc tolerance and uncertainty allowance Fraction: 0.02 means +2%. Use the module's voltage tolerance and your required uncertainty allowance. | voc_allow | 0.02 | |
| Modules in series per string | N_series | 13 | |
| Parallel strings per MPPT | N_parallel | 2 | |
| Identically populated MPPTs on this inverter DC/AC power uses every populated tracker. For unequal trackers calculate voltage/current per tracker and total DC power separately. | N_trackers | 1 | |
| Inverter absolute maximum DC voltage A hard safety limit. The default is an illustrative inverter specification; enter your actual inverter data. | V_dc_max | V | 1000 |
| Lowest module / cable / BOS voltage rating Use the lowest applicable rating of modules, DC switchgear, connectors, cables and other DC equipment. | V_system | V | 1000 |
| MPPT minimum voltage Use the relevant operating or full-power window from the inverter datasheet. | V_mppt_min | V | 300 |
| MPPT maximum voltage | V_mppt_max | V | 850 |
| Inverter start voltage Hot Voc is checked at the chosen MPPT irradiance. This does not guarantee dawn startup. | V_start | V | 250 |
| Maximum operating input current per MPPT | I_op_max | A | 16 |
| Maximum permissible short-circuit current per MPPT | I_sc_max | A | 20 |
| Additional short-circuit design factor Applied after irradiance and temperature corrections. 1.25 is a selectable design assumption, not a universal code rule; avoid double counting a manufacturer-specified factor. | isc_factor | 1.25 | |
| Inverter rated AC power | P_ac | kW | 5 |
| Maximum permitted DC/AC ratio for this design Enter the manufacturer's allowed array power divided by rated AC power, or a stricter project target. This is not an energy-yield optimum. | ratio_max | 1.5 | |
| Temperature sweep — press ▶ to warm the cells 0 is the cold design point; 1 is the hot design point. Only the animation interpolates precomputed curves; safety checks always use the design extremes. | sweep | 0 |
Results
With the default inputs above, the calc gives:
| Result | Value |
|---|---|
| Layout screening | WITHIN ENTERED DESIGN LIMITS |
| Cold string design Voc | 920.3 V |
| Margin to inverter hard DC limit | 79.7 V |
| Inverter voltage headroom (%) | 7.97 |
| Margin to lowest system voltage rating | 79.7 V |
| Minimum modules per string | 9 |
| Maximum modules per string (voltage checks) | 14 |
| Hot MPP string voltage | 468.5 V |
| Cold MPP string voltage | 738.8 V |
| Operating current bound per MPPT | 12.73 A |
| Design short-circuit current per MPPT | 15.91 A |
| Short-circuit current headroom per MPPT | 4.09 A |
| Maximum parallel strings per MPPT | 2 |
| Total installed STC DC power | 5.72 kW |
| DC/AC nameplate ratio | 1.144 |
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).
pvlib: 1000 W/m², 55 °C
Source: Independent published pvlib result table, row 0. CS5P-220M at 1000 W/m² and 55 °C; De Soto parameters and Lambert W solution. https://pvlib-python.readthedocs.io/en/stable/gallery/iv-modeling/plot_singlediode.html
Inputs: Maximum operating cell temperature = 55 °C; the others as above.
| Result | Source | This calc |
|---|---|---|
| Hot module short-circuit current | 5.236 A | 5.236 A |
| Hot module open-circuit voltage | 52.13 V | 52.13 V |
| Hot module maximum-power current | 4.742 A | 4.742 A |
| Hot module maximum-power voltage | 39.614 V | 39.614 V |
| Hot module maximum power | 187.9 W | 187.9 W |
pvlib: 400 W/m², 25 °C
Source: Independent published pvlib result table, row 3. CS5P-220M at 400 W/m² and 25 °C, Lambert W method. https://pvlib-python.readthedocs.io/en/stable/gallery/iv-modeling/plot_singlediode.html
Inputs: Maximum operating cell temperature = 25 °C; Effective irradiance for MPPT checks = 400 W/m²; the others as above.
| Result | Source | This calc |
|---|---|---|
| Hot module short-circuit current | 2.043 A | 2.043 A |
| Hot module open-circuit voltage | 56.987 V | 56.987 V |
| Hot module maximum-power current | 1.887 A | 1.887 A |
| Hot module maximum-power voltage | 47.278 V | 47.278 V |
| Hot module maximum power | 89.204 W | 89.204 W |
pvlib: 400 W/m², 55 °C
Source: Independent published pvlib result table, row 5: 400 W/m² and 55 °C. https://pvlib-python.readthedocs.io/en/stable/gallery/iv-modeling/plot_singlediode.html
Inputs: Maximum operating cell temperature = 55 °C; Effective irradiance for MPPT checks = 400 W/m²; the others as above.
| Result | Source | This calc |
|---|---|---|
| Hot module short-circuit current | 2.098 A | 2.098 A |
| Hot module open-circuit voltage | 49.474 V | 49.474 V |
| Hot module maximum-power current | 1.912 A | 1.912 A |
| Hot module maximum-power voltage | 39.735 V | 39.735 V |
| Hot module maximum power | 75.978 W | 75.978 W |
PPA / SEIAPI: 37.7 V module at 15 °C
Source: PPA/SEIAPI July 2020 Worked Example 1, printed p. 7, attached PDF p. 13. Published module Voc = 38.91 V and four-module string = 155.64 V. The source rounds −0.32%/K × 37.7 V to −0.121 V/K early; exact coefficient gives 38.9064 V and 155.6256 V. Tolerances cover that stated rounding. This checks the datasheet-correction branch only; the remaining illustrative diode parameters are not claimed to fit this anonymous module.
Inputs: Minimum design cell temperature = 15 °C; Module open-circuit voltage at STC = 37.7 V; Module maximum-power voltage at STC = 30 V; Module rated power at STC = 140 W; Signed Voc temperature coefficient = -0.1206 V/K; Modules in series per string = 4; Positive Voc tolerance and uncertainty allowance = 0; the others as above.
| Result | Source | This calc |
|---|---|---|
| Cold module Voc from datasheet coefficient | 38.91 V | 38.906 V |
| Cold string Voc from datasheet coefficient alone | 155.6 V | 155.6 V |
Independent review: exact 910 V boundary must exclude 13 modules
Source: Independent reviewer case supplied by the user: Voc 60 V, beta −0.25 V/K, −15 °C, no allowance, both ratings 910 V. Reviewer identified design module Voc = 70 V and 13 × 70 V = 910 V, giving zero headroom. Positive-margin policy therefore excludes 13 modules: the largest admitted count is 12, leaving 70 V. This is a boundary regression from independent review, not a published PV performance measurement.
Inputs: Module open-circuit voltage at STC = 60 V; Signed Voc temperature coefficient = -0.25 V/K; Positive Voc tolerance and uncertainty allowance = 0; Inverter absolute maximum DC voltage = 910 V; Lowest module / cable / BOS voltage rating = 910 V; the others as above.
| Result | Source | This calc |
|---|---|---|
| Design module Voc, including positive allowance | 70 V | 70 V |
| Margin to lowest system voltage rating | 0 V | 0 V |
| Maximum modules from absolute DC voltage | 12 | 12 |
| Maximum modules per string (voltage checks) | 12 | 12 |
| Voltage headroom at recommended maximum series count | 70 V | 70 V |
Independent review: 12 modules retain positive headroom
Source: Companion to the user's independent reviewer equality case: 70 V design module Voc and a 910 V limit. Twelve modules total 840 V, leaving 70 V; thirteen reach the excluded equality boundary. Arithmetic uses the reviewer's independently specified 70 V module value.
Inputs: Module open-circuit voltage at STC = 60 V; Signed Voc temperature coefficient = -0.25 V/K; Positive Voc tolerance and uncertainty allowance = 0; Inverter absolute maximum DC voltage = 910 V; Lowest module / cable / BOS voltage rating = 910 V; Modules in series per string = 12; the others as above.
| Result | Source | This calc |
|---|---|---|
| Maximum modules per string (voltage checks) | 12 | 12 |
| Cold string design Voc | 840 V | 840 V |
| Margin to lowest system voltage rating | 70 V | 70 V |
Related Resources
Related articles
Related courses
IEC Electrical Schematics and Industrial Control Panels
5
Original price was: 42 €.21 €Current price is: 21 €.
Basic Electrical Controls & Diagram Reading
7
Original price was: 32 €.18 €Current price is: 18 €.
Modeling Electrical Motor Faults with FEM Simulation using ANSYS MAXWELL
3
Original price was: 50 €.15 €Current price is: 15 €.







Responses