Collector tilt optimizer
The textbook "tilt = latitude" rule maximises annual yield — which is the wrong objective when the collector array is over-sized for the heat demand.
This tool models hour-by-hour clear-sky irradiance through the year, caps daily collection at what the tank can absorb, and picks the tilt that minimises unmet demand. For an over-sized system, the answer comes out steeper than the textbook value — pushing more of the yield into shoulder months where it isn't wasted as bypass-dump.
Site
Defaults are the centre of Prague. Enter your own coordinates — positive latitude = north of the equator, positive longitude = east of Greenwich.
System
Collector efficiency: fraction of incident sunlight
delivered as useful heat, averaged across a typical operating
day. Conservative starting point: 0.5 for drainback flat-plate
systems, higher for evacuated-tube.
Tank capacity: how much excess heat the thermal store
can absorb in a day before it's full and the collector loop
bypasses. Roughly 1.16 × tank-litres × usable-ΔT-°C / 1000 —
e.g. 200 L at 60 °C usable ΔT ≈ 14 kWh.
System / fluid: our drainback systems pump collector
water straight into the thermal store, so the only heat
exchanger in the loop is the collector itself. The "water"
is pure water dosed with the trace corrosion inhibitors
described on the
corrosion-inhibition
page (sodium silicate + sodium sulfite, well under 0.1 % by
mass — heat capacity is essentially that of pure water).
Closed systems use a propylene-glycol antifreeze loop with an
extra heat exchanger between the loop and the store
— that HX typically costs 3-6 % at solar-thermal operating
ΔTs, and the 40 % glycol mix itself carries roughly 6 % less
heat per litre than pure water at solar-thermal temperatures
(ρ·cp ≈ 3.9 vs 4.1 MJ/m³/K) plus another 2-4 % loss to higher
viscosity reducing convective heat transfer.
Combined, the closed glycol path consistently delivers 10-15 %
less to the store than a like-for-like drainback array, so we
apply a 12 % performance penalty when glycol is selected.
Closed systems also have to dump heat through a bypass valve
when the tank is full; drainback systems simply stop
circulating, so the "Potential bypass" series below is a
closed-system-only loss.
Demand profile
Fraction of the annual demand that comes from space heating (winter-weighted) vs domestic hot water (constant year-round). Higher = the optimum tilt shifts steeper because more demand falls on short winter days.
Panel orientation
* Closed-system loss only. In a pressurised closed loop, heat above the tank's capacity is dumped via a bypass valve once the store is full. Drainback systems (such as ours) simply stop circulating — there is no bypass and no thermal dump. For a drainback install, treat "potential bypass" as a tank-sizing warning: it is roughly the amount of yield you would have to forfeit each year if you ran the same array as a closed system.
How it works
The sun-position math is the same simplified
NOAA / Meeus solar-position algorithm
our firmware uses to expose sunrise_unix, sunset_unix, and current
altitude/azimuth on the
live /api/health endpoint.
The plane-of-array correction is the standard cosine-of-incidence on a
tilted, azimuth-rotated panel; sun on the back face is clipped to zero.
A clear-sky DNI model (1366 W/m² · 0.7AM) gives a per-hour direct-beam estimate. 8760 samples per year, summed for the candidate (tilt, azimuth, area, efficiency), give an upper-bound annual yield. Daily collection above (demand + tank-store) is treated as dumped; daily collection below demand is the unmet shortfall.
The "optimal" tilt is the 0–90° sweep value that minimises annual
unmet demand, not maximum yield — this is the key trick that makes
the "tilt steeper for over-sized arrays" insight fall out naturally
rather than being a hand-tuned heuristic. The tool also tells you how
far the optimum sits from the classical tilt = lat rule, and why.
Assumptions to be aware of
- Clear-sky direct beam + isotropic diffuse. A direct-beam clear-sky model (DNI ≈ 1366 W/m² · 0.7AM) plus an isotropic diffuse component (~15 % of GHI, Liu–Jordan sky-view factor for the tilted plane). Real sites under cloud cover deliver around 60–70 % of this annually; pyranometer-data-driven models like Hay–Davies are more accurate but need site-specific inputs we don't have. The diffuse component naturally shifts the optimum tilt a few degrees shallower than a pure direct-beam model would pick.
- Demand profile = DHW (constant) + space heating (HDD-shaped). Space heating tracks a cosine of day-of-year peaking at the winter solstice — a reasonable proxy without site-specific weather data. The "space-heating share" slider controls the mix; higher share shifts the optimum steeper because more demand falls on short winter days.
- Single fixed orientation. A tracker or seasonal-tilt mount would beat any fixed value but moves you from this tool's domain into an installation-cost trade-off the operator already knows better than we do.