Orbital propagation and attitude control for solar panel optimization.
Installation¶
uv sync --package apogee-orbit
CLI Usage¶
# Full simulation (launch + orbit)
uv run apogee-orbit --h-target-km 200 --payload-kg 5000
# With plots
uv run apogee-orbit --h-target-km 200 --payload-kg 5000 --plot
# Standalone (skip launch)
uv run apogee-orbit --r-m 6570000 --nu-initial-deg 15 --plot
Python API¶
from apogee_orbit import calculate_orbit_yaw
result = calculate_orbit_yaw(
h_target_km=200,
payload_kg=5000,
sun_vector=(1, 0, 0),
)
print(f"Period: {result.orbit_params['period_s']:.0f} s")
Modules¶
| Module | Purpose |
|---|---|
| core | EquatorialOrbit class |
| attitude | Yaw steering algorithm |
| simulator | Full orbit simulation |
| plotting | 3D visualization |
Key Concepts¶
Yaw Steering Law¶
Rotates satellite about nadir axis to keep sun in body X-Z plane:
\[
\psi = \arctan2(s_{y,\text{local}}, s_{x,\text{local}})
\]
LVLH Frame¶
- Z (Nadir): Points to Earth center
- X (Velocity): Along velocity vector
- Y (Cross-track): Completes right-hand system