I’ve been running my solar panels for almost 15 months now, and I decided to plot the daily energy production:
When I first looked at the data, I realized that a sinusoidal fit to the data would be heavily affected by the cloudy days, which drop power production substantially, so I wrote a script to delete any day whose power was less than the day on either side. Doing three passes of that resulted in most of the really low values being gone, so I fitted a sinusoid to that subset of the data—what I would have gotten if there were no bad-weather days.
When using all the data, I averaged about 7.1 kWh a day, with a ±3.4 kWh annual fluctuation. With just the good-weather data, I averaged about 8.1 kWh a day, with a ±3.5kWh annual fluctuation. That means that I’m losing about 1/8 of the potential solar capacity to cloudy weather. The max and min are within one day of the solstices, so the fitting is doing a pretty good job of finding the phase.
The fluctuation is not perfectly fit by a sine wave, though, as the summer peak is a bit broader than the winter valley. If I were ambitious, I would try seeing how well the data fits with the equation of time or the sunrise equation, instead of a simple sinusoid. I don’t think that would actually help the fit much, as I think that the biggest part of the error is due to shadowing by trees or buildings in the early morning and late afternoon, and this shadowing is more pronounced with the low sun angles of winter.