Generation at any orbital phase φ = 2π·t / Torbit depends on whether the station is sunlit or inside Earth's shadow cone, and on how much the array has degraded:
illum(φ) = 1 if φ falls in the sunlit arc (fraction 1 − f_eclipse)
illum(φ) = 0 during the eclipse arc (fraction f_eclipse)
P_gen = P_max · (1 − degradation) · illum(φ)
The battery integrates the surplus or deficit between generation and the sum of the currently-online loads' demand, with round-trip charge/discharge efficiency η:
dE/dt = η·(P_gen − P_demand) if P_gen ≥ P_demand (charging)
dE/dt = (P_gen − P_demand)/η if P_gen < P_demand (discharging)
SOC = 100 · E / E_capacity
A load-shedding controller watches state of charge against two hysteresis thresholds, exactly like the undervoltage protection on a real spacecraft power bus:
- SOC drops below 30% — the lowest-priority online load is shed (turned off), lowest priority first: science payload, then comms, then cabin lighting.
- SOC climbs back above 55% — the highest-priority shed load is restored first, in the reverse order it was dropped.
- CO₂ scrubbing and thermal control are priority-1 and are never shed — losing either is a crew-safety emergency, so the controller always protects them, even if every other load has to go dark and SOC keeps falling regardless.
The degradation slider models the 0.5–1%/year power loss real arrays suffer from radiation and micrometeorite erosion — push it high enough and the array can no longer recharge the battery faster than eclipse drains it, so loads start cycling on and off every orbit. The micrometeorite strike button knocks out 35% of the array's instantaneous output for 90 seconds, a sharp analogue of a real impact.
Note on this 2D rebuild: the orbit diagram here derives the eclipse geometrically — the station sits at angle φ on its ring, the sun direction is fixed, and the shadow wedge is drawn on the exact opposite side of Earth from the sun with angular half-width f_eclipse·180°, so the shaded region you see always lines up with the phase formula above. Drag the diagram to rotate the view.