Sensor-Free Solar Tracker
Most solar trackers need light sensors that drift, foul and fail. This one computes where the sun is from date, time and coordinates alone — then points the panel at it.
Sun elevation
73.0°
Azimuth 181°
Commanded tilt
17.0°
Fixed panel sits at 40°
Energy gain today
+75.0%
8.04 vs 4.59 kWh/m²
Sun path · June 21
Panel attitude
Tracked · 17°
Fixed · 40°
Irradiance captured through the day
How it works
One caveat worth stating: this model counts direct beam irradiance only. Real installations also collect diffuse sky radiation, which is largely angle-independent and so lifts the fixed panel's baseline. Published field results for dual-axis tracking sit nearer 30–40%; the figure above is the clear-sky direct-only upper bound.
Solar declination and the equation of time come from Spencer's Fourier series, which together give true solar time at any longitude. From there the hour angle yields the sun's elevation and azimuth. The panel's optimal attitude is simply the vector pointing back at the sun, and captured irradiance is the dot product of that vector with the panel's normal, scaled by a clear-sky air mass model.
Everything above runs in your browser with no network calls. Try Reykjavík in December against Nairobi in March , the further from the equator, the more a tracker earns its cost.
Learned controller · trains in your browser
The analytic model above is exact, but it costs trig and a Fourier series on every update , awkward on a microcontroller with no floating-point unit. So here a 435-parameter neural network is distilled from it, trained on noisy readings to see whether it can recover the true physics. Nothing is precomputed; it trains live when you press the button.
Two choices matter here. Day and hour are fed in as sine and cosine pairs, so the network never sees a discontinuity at midnight or at New Year. And azimuth is predicted as a sine and cosine rather than an angle, which avoids the model being punished for the jump between 359° and 1°. Without those, the same architecture stalls around 20° of error.
Where it is weakest: near sunrise and sunset. An earlier version trained only above 5° elevation and drifted by 6° or more at dawn, because it was extrapolating outside its training range. Sampling down to −5° fixed that. Accuracy is still lowest at shallow angles, which is tolerable here since a panel captures little energy with the sun on the horizon.