Solar PV System Design & Yield Estimation

Designing solar plants that deliver. Learn solar geometry and irradiance (GHI, DNI, DHI, peak sun hours), module ratings and temperature effects (NOCT), tilt and orientation, shading and row spacing, string sizing for inverters, DC/AC ratio, performance ratio and loss breakdown, energy yield and capacity factor, rooftop vs utility vs floating PV, net metering, and O&M — with Python sizing a 5 kWp rooftop.

Solar PV is now the cheapest source of new electricity in much of the world, and India has one of the largest solar programmes. Good design turns sunlight into kilowatt-hours reliably: the right tilt, no shading, correct string sizing, and realistic loss estimates.

Energy yield — not nameplate capacity — decides the economics. A well-designed plant in India yields about 1400–1700 kWh per kWp per year.

An analogy

A solar plant is like a rain-harvesting system for sunlight: the panel area and angle decide how much you catch, shade is a leaky gutter, and the inverter is the tap that delivers it to the grid.

Solar resource

Sunlight at the surface peaks at about 1000 W/m². Irradiation over a day is expressed as kWh/m²/day, equal to 'peak sun hours'. Most of India receives 4.5–6 kWh/m²/day. Resource data come from satellite databases (NREL NSRDB, PVGIS, Solargis) and ground stations.

System design

Key decisions:

Losses and performance ratio

PR combines losses: temperature (5–12%), soiling (2–7% in dusty regions — cleaning schedules matter), shading, mismatch, DC and AC wiring (1–3%), inverter (2–3%), transformer and availability. Typical PR 0.75–0.82. Simulation tools (PVsyst, SAM, PVWatts) model them hourly.

Deployment models and grid integration

Rooftop (net metering/gross metering, PM Surya Ghar in India), utility-scale parks, floating PV (reservoir cooling improves yield), agrivoltaics, hybrid solar-wind-storage. Grid codes require reactive-power support, fault ride-through and forecasting. O&M: cleaning, IV-curve tracing, drone thermography for hotspots, and monitoring PR against expected values.

Formulas

Worked example: Annual yield

Given: 10 kWp, PSH 5.2, PR 0.8

Find: Annual energy.

Answer: 15 184 kWh

Worked example: String sizing

Given: Module V_oc 49.5 V at 25 °C, β −0.28%/°C, T_min 5 °C, inverter max 1000 V

Find: Max modules per string.

Answer: 19 modules

Worked example: Area needed

Given: 5 kWp with 21% efficient modules

Find: Module area.

Answer: ≈ 24 m² (≈ 30–35 m² roof with spacing)

Sizing a 5 kWp rooftop system

import math
# PV system sizing and yield for a 5 kWp rooftop (India, ~5 peak sun hours)
Pdc = 5.0                 # kWp
psh = 5.0                 # kWh/m2/day
PR = 0.78                 # performance ratio (temperature, inverter, soiling, wiring)
E_day = Pdc * psh * PR
print(f"daily energy {E_day:.1f} kWh, annual {E_day*365:.0f} kWh, specific yield {E_day*365/Pdc:.0f} kWh/kWp")
# Cell temperature derating (NOCT model), module -0.4%/C
G, Ta, NOCT = 1000, 35, 45
Tc = Ta + (NOCT - 20) / 800 * G
print(f"cell temperature {Tc:.1f} C -> power derating {0.004*(Tc-25)*100:.1f}%")
# Tilt: optimum ~ latitude; simple geometric check at noon on equinox for 20 deg latitude
lat = 20
for tilt in (0, 20, 40):
    print(f"tilt {tilt:2d} deg: equinox noon incidence factor {math.cos(math.radians(abs(lat - tilt))):.3f}")
# daily energy 19.5 kWh, annual 7118 kWh, specific yield 1424 kWh/kWp
# cell temperature 66.2 C -> power derating 16.5%
# tilt  0 deg: equinox noon incidence factor 0.940
# tilt 20 deg: equinox noon incidence factor 1.000
# tilt 40 deg: equinox noon incidence factor 0.940

A 5 kWp rooftop produces about 7100 kWh/yr — enough for a typical Indian household. Heat is PV's enemy: at 35 °C ambient the cells reach 66 °C and lose 16% power, which is why ventilation and low-temperature-coefficient modules matter. A tilt near latitude maximises annual yield.

Common mistakes

Applications

Key takeaways

Going further