Mission Control (2D)

Keep the battery charged, the electronics in range and the camera on Earth.

Array Power
0W
0800
Battery Charge
0% 
030 % floor100
Hottest Node
0°C 
-300+60
Pointing Error
0.0° 
05° imaging20+

Payload & Link

Radiator louver

70 %

Open: rejects more heat (colder).

Attitude & faults

Orbit plane-
Ground track-
Attitude & wheel-
Power: array vs load0
Battery charge0
Temperatures0
Pointing & wheel0

Operations

Simulated time runs faster than real time: one orbit is about 95 minutes.

Orbit & sun geometry

550 km
550 km
53 °
25 °
1.0x

Live spacecraft data

Fault detection (FDIR)

Any red trip puts the spacecraft in safe mode: camera and transmitter off, survival heaters on. Recover once the cause is gone.

Missions

Independent numerical checks

Press the button (about a second): Kepler period and vis-viva, eclipse duration, orbit-mean array power, radiator equilibrium, gravity-gradient libration, angular-momentum bookkeeping and wheel build-up, each against a closed-form value.
3 °

Reference

The science

Orbit. Two-body Kepler motion: M = n t, E - e sin E = M, r = a (1 - e cos E), period T = 2 pi sqrt(a^3 / mu) and speed v^2 = mu (2/r - 1/a) (vis-viva). Perturbations (J2, drag decay, third bodies) are ignored for the trajectory itself.

Eclipse. Cylindrical shadow: the spacecraft is in shadow when r . s < 0 and |r - (r . s) s| < R_E. For a circular orbit the shadow fraction is (1/pi) arccos( sqrt(h^2 + 2 R_E h) / ((R_E + h) cos beta) ); above beta* = asin(R_E / (R_E + h)) (about 67 deg at 550 km) there is no eclipse at all. Penumbra and atmospheric refraction are ignored.

Power. One-axis sun-tracking array: P = S eta A cos(alpha) with S = 1361 W/m2, eta = 0.26 (hot, end-of-life cells) and A = 2.0 m2. The tracker removes the in-plane angle but not the beta angle, so the mean output scales as cos beta. A jammed drive freezes the array angle relative to the body, so the output follows the orbit angle instead. Battery: 800 Wh, charge efficiency 0.95, discharge 0.96, no charging below 0 C, capacity derated when cold; surplus is shunted.

Thermal. Three lumped nodes (electronics, battery, radiator panel) coupled by conductances: C dT/dt = Q_int + Q_ext + sum G (T_j - T_i) - eps sigma A (T^4 - T_space^4). Electrical load turns into heat in the electronics, the louver scales the effective radiator area, sunlight on the foil blanket and radiator fin, albedo and Earth infrared are included, thermostat heaters protect the cold limits.

Attitude. One axis (pitch about the orbit normal) relative to the local vertical: I theta'' = tau_gg + tau_aero + tau_srp + tau_mtq + u - I nu'' with gravity gradient tau_gg = -3 (mu / r^3)(I_x - I_z) sin theta cos theta (free libration frequency n sqrt(3 (I_x - I_z) / I_y)). A PD law drives the reaction wheel, which stores the momentum: h_w' = -u. Secular drag torque fills the wheel; at the capacity it saturates and control is lost until the magnetorquers dump it against the Earth field. Roll and yaw are not modelled.

Link. Slant range from the vector geometry, elevation mask 10 deg, margin M = M0 - 20 log10(d/d0) - 12 (theta/theta_bw)^2 dB, adaptive data rate 40 / 10 / 0 Mbit/s at margin 6 / 3 dB. The ground station sits at 51.5 N; the sky geometry is exact for a rotating Earth, but the antenna pattern is a simple Gaussian-loss model.

Simplifications, stated honestly. A generic 450 kg bus with round numbers, circular-cylinder shadow, no J2 (orbit plane and sun angle are fixed during a run), no atmospheric decay, single-axis attitude, lumped thermal nodes, no battery electrochemistry beyond efficiency and temperature limits. This is not a flight-qualified tool and is not affiliated with any agency or manufacturer.

Cut-away spacecraft model and Earth backdrop: modelled and rendered in Blender (Cycles); dynamics, physics and interface: HTML Canvas 2D and JavaScript.

Made with 🟠 Blender