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:
- Module choice — mono PERC, TOPCon, bifacial; efficiency, temperature coefficient, degradation (0.4–0.5%/yr)
- Orientation and tilt — south-facing at ~latitude (India), or single-axis trackers (+15–25% yield)
- Shading analysis and row spacing — avoid morning/evening shade on winter solstice
- String sizing — maximum V_oc at the coldest temperature below inverter limit; MPPT window
- DC/AC ratio 1.2–1.4 — some clipping for higher inverter utilisation
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
- Energy yield:
E = P_dc × PSH × PR × 365 - Specific yield:
Y = E / P_dc (kWh/kWp/yr) - Cell temperature (NOCT):
T_c = T_a + (NOCT − 20)/800 × G - Temperature derating:
P = P_STC·[1 + γ(T_c − 25)], γ ≈ −0.35 to −0.45 %/°C - Row spacing:
d = h / tan(α_min) (sun elevation at design time) - String voltage:
V_oc,max(T_min) × N_series ≤ inverter V_max
Worked example: Annual yield
Given: 10 kWp, PSH 5.2, PR 0.8
Find: Annual energy.
- 10 × 5.2 × 0.8 × 365
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.
- V_oc(5 °C) = 49.5 × (1 + 0.0028 × 20) = 52.3 V
- 1000/52.3
Answer: 19 modules
Worked example: Area needed
Given: 5 kWp with 21% efficient modules
Find: Module area.
- 5/0.21 kW per m²
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.940A 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
- Wrong: Ignoring shading from parapets and trees. — Right: Do a shade analysis for all seasons.
- Wrong: Sizing strings at 25 °C V_oc. — Right: Use coldest-morning V_oc to protect the inverter.
- Wrong: Assuming nameplate output always. — Right: Apply realistic PR and degradation.
Applications
- Rooftop solar: Homes, schools, factories with net metering.
- Solar parks: Gigawatt-scale plants (Bhadla, Pavagada).
- Floating PV: Reservoirs with reduced evaporation.
- Solar pumping: PM-KUSUM for agriculture.
Key takeaways
- E = kWp × PSH × PR × 365.
- Heat, soiling and shading are the main losses.
- Size strings for cold-morning V_oc.
- Design for yield, not nameplate.
Going further
- Bifacial gain modelling: Rear-side irradiance from albedo.
- Single-axis trackers: Backtracking to avoid row shading.
- Degradation modes: PID, LeTID, hotspots, snail trails.