Automatic string sizing
How the application works out how many modules to wire in series, the three voltage limits that bound the answer, and where the result lands.
A string's length is a voltage decision. Wire too many modules in series and the string's open-circuit voltage exceeds what the plant's insulation and equipment are rated for; wire too few and the string spends the hottest, brightest hours below the voltage the inverter can track. Automatic string sizing computes the range of module counts that satisfies both ends of that problem for your module, your inverter and your site's temperature extremes, and hands you the range to pick from.
The count you settle on is not only electrical. It sets how many modules sit in a row, and therefore the physical size of the table — which sets the row pitch, the ground coverage ratio and, in the end, how much capacity fits on the site.
When the question appears
Loading a module file fills in the module's wattage and dimensions — see Module specifications. The application then asks, on its own, whether to take the next step:
"Calculate the number of modules in series automatically?"
| Button | What it does |
|---|---|
| Auto | Opens the sizing window and computes the feasible range of modules in series |
| Manual | Closes the question. You enter the module counts yourself, as you would with no module file loaded |
- What it shows
- The question box with its full explanatory text and both buttons.
- How to get there
- Load a module file. The question appears on its own straight afterwards.
Manual is not a lesser answer. If the string length is already fixed — by a design you are matching, an inverter already bought, or a client specification — enter it and move on. Nothing else in the application changes depending on which button you press.
What automatic sizing needs
Two files, because the constraint has two sides:
| Input | What it supplies |
|---|---|
| The module file | The module's open-circuit and maximum-power-point voltages, and how they move with temperature |
| The inverter file | The machine's tracking voltage window — the range of DC voltage over which it can hold the maximum power point (MPPT — maximum power point tracking) |
If no inverter file is loaded when you choose Auto, you are prompted to pick one first. See Inverter and cable settings for what else that file decides.
If the inverter file carries no tracking voltage range, automatic sizing is not possible — there is no window to fit a string inside. Enter the module counts by hand instead, or load a file for the same machine that declares the range.
The three constraints
Write N for the number of modules in series, Voc for a module's open-circuit voltage and Vmp for its voltage at the maximum power point. Both fall as temperature rises and rise as temperature falls, because a crystalline silicon module's voltage temperature coefficient is negative. That one fact is why the cold end of the year sets the maximum string length and the hot end sets the minimum.
| # | Constraint | Bounds | Protects against |
|---|---|---|---|
| 1 | N × Voc(Tmin) ≤ Vsys | Maximum N | Exceeding the plant's DC system voltage rating |
| 2 | N × Vmp(Tmin) ≤ Vmppt,max | Maximum N | An operating point above the inverter's tracking window |
| 3 | N × Vmp(Tmax) ≥ Vmppt,min | Minimum N | An operating point below the inverter's tracking window |
Tmin is the coldest module temperature the site sees; Tmax is the hottest cell temperature. Vsys is the DC system voltage class. Vmppt,max and Vmppt,min are the two ends of the inverter's tracking window.
1 — Open-circuit voltage at the coldest module temperature
N × Voc(Tmin) ≤ Vsys
This is the hard limit, and the only one of the three whose violation is a safety matter rather than a yield matter. Cables, connectors, fuses, DC switchgear and the inverter's DC input are all rated for a system voltage class. The worst case for a string is not full sun — it is open circuit on the coldest morning: no current flowing, so the string sits at Voc, and Voc at its maximum because the modules are at their coldest. That happens before the inverter starts in the morning, and again any time the DC side is isolated during a cold spell.
Size against the coldest module temperature the site will ever see, not the average winter minimum. Exceeding the class once is enough to matter.
2 — Operating voltage at the coldest temperature
N × Vmp(Tmin) ≤ Vmppt,max
Cold and bright at once is the demanding case: the string is generating, so it sits at Vmp rather than Voc, but Vmp is at its highest because the cells are cold. On a clear cold morning a string sized only against constraint 1 can be generating above the top of the inverter's tracking window, and the inverter cannot hold the maximum power point there. It limits, it clips, or it waits — and the loss falls on exactly the hours a cold-climate plant earns most.
Constraints 1 and 2 both bound the maximum, and which one binds depends on the machine. The smaller of the two, rounded down, is the largest string you may build.
3 — Operating voltage at the hottest cell temperature
N × Vmp(Tmax) ≥ Vmppt,min
The opposite end. Cell temperature on a hot afternoon runs well above ambient — a module in open-rack mounting under full irradiance is far hotter than the air around it, which is why the sizing window asks for an irradiance and an operating cell temperature rather than only for air temperature. Vmp at that temperature is the lowest the string ever produces while generating. Fall below the bottom of the tracking window and the inverter loses the ability to track; the yield lost is again at the hours of highest irradiance, and it recurs every hot afternoon for the life of the plant.
This constraint sets the minimum string length, rounded up.
Reading the range
Together the three give a closed range: the minimum from constraint 3, the maximum from whichever of constraints 1 and 2 binds first. Any N inside the range is electrically valid, and the choice between them is a design preference — a longer string means fewer strings, fewer string cables and less DC copper for the same capacity; a shorter string means more parallel paths and finer granularity when you fit strings to an inverter.
If the minimum comes out above the maximum, no string length satisfies all three, and that module and that inverter cannot be paired at that system voltage class. The window says so: instead of a range it shows a red warning line carrying the reason — which constraint could not be met — and offers no range at all. Nothing is blocked by it, but nothing is filled in for you either, so the module counts stay yours to enter.
Change one of the three. A higher system voltage class, a machine with a wider tracking window, or temperature extremes that reflect the site rather than a worst case borrowed from elsewhere are the three levers, in that order of practicality.
What you enter in the sizing window
- What it shows
- The window with the system voltage and temperature inputs filled, the computed feasible range visible, and the final selection fields.
- How to get there
- Load a module file and an inverter file, then answer Auto to the modules-in-series question.
- Callouts to add
- Outline the computed feasible range.
The window asks for the site and design assumptions the constraints need. Every field arrives with a value already in it, so it can be read as a set of assumptions to confirm rather than a form to fill.
| Field | Default | Range | What it does |
|---|---|---|---|
| System voltage (V) | 1500 | 1000, 1100, 1500 or 2000, and editable | The plant's DC system voltage class — Vsys in constraint 1 |
| Site min temperature | −5.0 °C | −40–40 °C | The cold case. Drives the maximum string length |
| Site max temperature | 45.0 °C | 10–70 °C | The hot case, as air temperature. Drives the minimum |
| Cell-temp model | Sandia (wind-based) | Sandia, or the NOCT model | How air temperature is converted to cell temperature |
| NOCT | From the module file | 30–60 °C | Nominal operating cell temperature. With no value in the file, the window estimates one from the module efficiency and says that it has |
| Irradiance G (hot case) | 1000 W/m² | 100–1200 W/m² | The irradiance the hot cell temperature is computed at. The window suggests 800–1000 |
| Wind speed (Sandia) | 3.0 m/s | 0–15 m/s | Convective cooling. Used by the Sandia model only |
| Voltage temp. coeff | From the module file, otherwise −0.28 %/°C | −1.0 to −0.05 %/°C | The open-circuit voltage coefficient, applied to both Voc and Vmp |
Alongside them the window displays, read-only, the module's Voc and Vmp at standard test conditions and the two ends of the inverter's tracking window — the four figures the constraints start from, before temperature moves the voltages.
The two cell-temperature models
Cell temperature, not air temperature, is what moves the voltages, and the Cell-temp model field decides how one is derived from the other. Both relations add a rise to the air temperature that grows with irradiance:
NOCT model: T cell = T air + ((NOCT − 20) / 800) × G
Sandia model: T cell = T air + G × (0.0126 − 0.0029 × wind speed)The Sandia relation is the shipped choice and the one that responds to wind, so it suits a site with a known wind record. The NOCT relation depends only on the module and the irradiance, which makes it the safer choice when the wind figure would be a guess. On the shipped hot case both are evaluated at 1000 W/m², so the rise they add is substantial — which is the point of the field. Sizing constraint 3 against 45 °C air temperature alone would credit the string with a higher Vmp than it ever reaches in service, understate the minimum length, and put the array below the tracking window on exactly the afternoons it was sized for.
What it gives back
Every result recalculates live as you change a field, so the window can be used to test an assumption rather than only to read an answer.
A feasible pairing reports the range on a green line, reading Feasible: then the low and high module counts, then how many options that leaves. An infeasible one reports the red warning line described above. Either way the window also shows a detail line that is worth more than the range itself:
| Shown | What it tells you |
|---|---|
| The cold cell temperature, with the Voc and Vmp the module reaches there | The numbers constraints 1 and 2 are actually evaluated against |
| The hot cell temperature — the site maximum plus the rise the cell-temperature model computed — with its Voc and Vmp | How far above air temperature the sizing case really sits |
| Upper limit — … | Which constraint caps the string: the system voltage class, or the top of the tracking window |
| Lower limit — … | Which constraint sets the floor |
The last two lines are the ones to read. A range on its own tells you what you may build; the binding constraint tells you what to change to widen it. If the upper limit is named as the system voltage class, a wider tracking window buys you nothing and moving to a higher voltage class buys you everything — and the other way round if it is named as the inverter window.
From inside the range you then make two choices:
| Choice | What it means |
|---|---|
| Modules in series | The final string length, taken from inside the feasible range |
| Parallel strings | How many of those strings are wired in parallel on one unit of mounting structure |
Both are then carried into the input panel, where they become ordinary fields you can read and change.
Where the result lands
The two numbers land in different fields depending on the mounting mode you chose at launch, because a fixed-tilt table and a tracker unit are organised differently.
| Sizing result | Field in the panel | Shipped default | Range |
|---|---|---|---|
| Modules in series | Modules per row | 28 | 1–100 |
| Parallel strings | Rows per MMS-Table | 2 | 1–10 |
A row of modules is a string, so the string length is the row length and the parallel count is the number of rows stacked up the table. See Table configuration.
A count outside the field's range cannot be entered, so check the range before settling on a long string.
The electrical choice is also a geometric one
The string length leaves the electrical domain the moment it is entered, and this is the part that catches people who size strings in a spreadsheet first.
Fixed tilt. The table's north–south height is the parallel strings — the rows — times the module's north–south dimension, plus the gaps between them. The automatic row pitch is computed from that height, as the spacing that avoids row-to-row shading at winter-solstice solar noon, and the ground coverage ratio is the table height divided by the pitch. So changing the parallel count changes the pitch, the ground coverage ratio and the shading loss. Changing the series count changes the table's east–west width instead, which changes how many tables fit across the site and how much is left over at the boundary. See Row pitch and tilt.
Single axis tracker. Both counts run along the north–south axis, so both lengthen the tracker unit. Neither changes the east–west pitch, and therefore neither changes the ground coverage ratio — which is the tracker aperture divided by the east–west pitch. What they change is how a unit fits the site north to south, and how much ground is left at the ends of each column.
Either way, the capacity of the plant is the number of units that fit multiplied by the modules each one carries, so a string length that suits the inverter perfectly can still cost you tables at the fence. It is worth generating a layout at a few counts inside the feasible range and comparing the capacity, rather than assuming the longest valid string wins.
The same sizing method is used when the plant is sized backwards from a target AC capacity, where the parallel strings per inverter are worked out from the inverter's current and DC power limits instead of being entered — see Simulation with AC capacity.
Where to go next
Inverter and cable settings
The inverter file the tracking voltage window comes from, and how many strings one unit takes
Module specifications
Loading a module file, dimensions, wattage and bifacial gain
Table configuration
Where the series and parallel counts become a physical table
Every parameter and its default
The complete input reference
Inverter and cable settings
How many strings feed one inverter or string monitoring box, whether cables are routed and measured, and what a manufacturer inverter file changes.
How placement works
The order a layout is built in — usable area, table grid, control rooms, inverters, cables, arresters — and why each stage changes the one after it.