Solar Panel Fault Detector — Power-Curve Anomaly (2D)
A physics-informed expected-power model compares live against simulated panel-string output on a flat 2D chart and row view, flagging shading, soiling and degradation faults with rolling residual z-scores.
This 2D companion runs the same expected-power model and rolling residual z-score anomaly detector as the 3D version, laid out as a plain chart-and-rows view: a top panel plots expected versus actual power across the simulated day for the selected string, and six rows below show each string's panel cells colored by live status. Inject a shading, soiling or degradation fault on any string and watch its residual drift until the z-score crosses the threshold and the row turns red.
Expected power uses P_stc × (irradiance/1000) × (1 + tempCoeff × (panelTemp − 25)); the detector runs an exponentially-weighted rolling mean and variance on the actual-minus-expected residual and converts it to a z-score every simulated timestep.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install
Expected power for each string uses P_expected = P_stc × (irradiance/1000) × (1 + tempCoeff × (panelTemp − 25)), where P_stc is the rated string power at standard test conditions, irradiance is the simulated sensor reading in W/m², panelTemp is derived from ambient temperature plus irradiance-driven cell heating, and tempCoeff is a negative coefficient (about −0.4%/°C) capturing why panels lose output as they get hot.
Each simulated timestep the residual (actual minus expected power) is fed into a rolling exponentially-weighted mean and variance for that string. The residual is converted into a z-score, and once the z-score drops below the negative anomaly threshold for long enough the string is flagged. This is genuine statistical process control, not a scripted trigger — it responds directly to whatever fault is injected.
Partial shading derates a fraction of a string's irradiance instantly and non-linearly because series-connected cells are limited by the weakest sub-string. Soiling is a slow multiplicative dust build-up that accumulates day by day. Degradation is a gradual efficiency decline simulating accelerated cell ageing, again compounding day over day. All three reduce actual output relative to the expected-power model, but with distinct time signatures.