Learning Objective
Integrate link budget analysis with orbital mechanics to explain AETHERIX's end-to-end performance: how Earth-Mars distance drives data rates from 200 Mbps to 2 Mbps, how this variation shapes RL training, and how to present this analysis in the oral exam. This consolidates exam Learning Objective 4.
The Core Concept
Over the past week, Abdullah, you've learned link budgets (Days 21–23) and orbital mechanics (Days 24–26) as separate topics. Today, you must synthesize them into a single coherent narrative. The examiner will not ask isolated FSPL questions — they will ask you to connect the physics to the system performance.
The master equation chain:
Everything connects through one variable: distance. The Earth-Mars distance, varying from 54.6 million km (opposition) to 401 million km (conjunction) over the 779.94-day synodic period, drives a cascading chain of effects:
Distance (d) → FSPL (20·log₁₀(4πd/λ)) → Received Power → Link Margin → Achievable Data Rate
At opposition (54.6M km): - FSPL at 1550 nm: ~353 dB - Received power: high → margin is generous - Data rate: up to 200 Mbps - Light time: 3.0 minutes one-way
At conjunction (401M km): - FSPL at 1550 nm: ~370 dB - Received power: low → margin shrinks - Data rate: drops to ~2 Mbps - Light time: 22.3 minutes one-way
The 17.3 dB FSPL swing (20·log₁₀(401/54.6)) translates to a 100× data rate range because data rate scales with SNR, which scales with received power, which scales with 1/d².
How AETHERIX encodes this:
The estimate_data_rate() function in contact_windows.py directly implements the inverse-square relationship:
def estimate_data_rate(distance_km):
min_distance_km = 54.6e6
max_rate_mbps = 200.0
rate = max_rate_mbps * (min_distance_km / distance_km) ** 2
return max(2.0, min(200.0, rate)) # clamp to [2, 200] Mbps
This means: - At opposition (54.6M km): rate = 200 × (54.6/54.6)² = 200 Mbps - At average (225M km): rate = 200 × (54.6/225)² = 200 × 0.0588 = 11.8 Mbps - At conjunction (401M km): rate = 200 × (54.6/401)² = 200 × 0.0185 = 3.7 Mbps
The function clamps to a minimum of 2 Mbps (below this, even basic communication becomes impractical) and maximum of 200 Mbps (hardware limit).
Performance across the synodic cycle:
| Phase | Distance | FSPL (1550 nm) | Data Rate | Light Time | RL Agent Behavior |
|---|---|---|---|---|---|
| Opposition (±90 days) | 54.6–80M km | 353–358 dB | 200→100 Mbps | 3–4.5 min | Aggressive forwarding, high throughput |
| Quadrature (±180 days) | 150–225M km | 360–365 dB | 50→12 Mbps | 8–12.5 min | Balanced store/forward |
| Near-conjunction (±30 days) | 300–401M km | 368–370 dB | 5→2 Mbps | 17–22.3 min | Conservative, store-heavy, use Lagrange relays |
| Conjunction (14 days) | ~401M km | ~370 dB | 0 (direct) | 22.3 min | Autonomous ops, all data stored, relay-only |
Why this matters for the RL agent:
The RL agent's reward function includes a delay penalty (β = 0.001 per second). During conjunction, the 22-minute light time means every forward decision incurs a 1,320-penalty-point cost. The agent learns to minimize forwards during conjunction and maximize them during opposition. This distance-adaptive policy is exactly what static CGR cannot achieve — CGR uses a fixed contact schedule that doesn't adapt to real-time link quality.
The hybrid optical/RF integration:
During phases where optical margin goes negative (near conjunction), the system automatically falls back to RF Ka-band. RF has lower FSPL (due to lower frequency) but also lower antenna gain — the net result is 2–6 Mbps, which is still sufficient for critical P0/P1 bundles. The combined availability (99.96%) ensures the network never goes completely dark, even during conjunction (via Lagrange relay paths).
Presenting this in the oral exam:
When the examiner asks about performance, don't just recite numbers. Tell the story: 1. Start with distance (54.6M–401M km, synodic cycle of 780 days). 2. Show how FSPL follows (353–370 dB at 1550 nm). 3. Translate to data rate (200→2 Mbps via inverse-square). 4. Explain how the RL agent adapts (distance-phase in state, adaptive store/forward). 5. Note the conjunction fallback (Lagrange relays, 50–70% availability).
Diagrams & Data
flowchart LR
ORB["Orbital geometry<br/>true anomalies"] --> DIST["Distance d"]
DIST --> OWLT["OWLT = d / c"]
DIST --> FSPL["FSPL = 20log(d) + 20log(f) + 92.45"]
FSPL --> MARG["Link margin"]
MARG --> RATE["Achievable data rate"]
OWLT --> WIN["Contact window planning"]
RATE --> WIN
WIN --> RL["RL routing decision<br/>forward / store"]estimate_data_rate().In AETHERIX
The integration is visible across multiple source files:
src/orbital/contact_windows.py:estimate_data_rate(distance_km)encodes the inverse-square law;get_distance_timeline(num_points=780)generates the full-cycle timeline;predict_contact_windows()combines distance with contact duration estimates.src/infrastructure/link_budget.py:calculate_mars_earth_link(scenario)computes optical budgets at minimum/average/maximum distances, showing how margin varies with distance.src/infrastructure/rf_link_budget.py:calculate_mars_earth_link(scenario)does the same for RF, showing why RF maintains connectivity when optical fails.src/orbital/doppler.py: Doppler shifts are velocity-dependent, and velocity varies with orbital position — another distance-driven effect.src/orbital/topology.py: Inter-tier link rates (e.g., 3→4 at 50 Mbps, 600s latency) are set to reflect the deep-space light-time and path loss at Lagrange-to-Mars distances.
The topology's get_contact_graph() method attaches per-contact data rate and delay to each edge, so the routing engine and RL agent always operate with distance-aware metrics.
Key Numbers & Formulas
The integration chain — memorize this:
Distance → FSPL → Received Power → Margin → Data Rate → RL Policy
d = 54.6M km → FSPL = 353 dB → P_rx ≈ −222 dBm → margin generous → 200 Mbps → aggressive forwarding
d = 225M km → FSPL = 365 dB → P_rx ≈ −234 dBm → margin tight → 12 Mbps → balanced
d = 401M km → FSPL = 370 dB → P_rx ≈ −239 dBm → margin negative → 2 Mbps → store + Lagrange relay
Data rate formula (inverse-square):
R(d) = 200 × (54.6M / d)² Mbps, clamped to [2, 200]
Synodic cycle summary:
| Parameter | Opposition | Average | Conjunction |
|---|---|---|---|
| Distance | 54.6M km | 225M km | 401M km |
| Light time | 3.0 min | 12.5 min | 22.3 min |
| FSPL (1550 nm) | 353 dB | 365 dB | 370 dB |
| Data rate | 200 Mbps | 12 Mbps | 2 Mbps |
| RF fallback needed? | No | Marginal | Yes (Ka-band) |
| Lagrange relay needed? | No | No | Yes (50–70% avail.) |
Standards & References
How the Examiner Will Probe This
QWalk me through how AETHERIX's data rate varies over the synodic cycle.
Start with distance (54.6M–401M km over 780 days). FSPL follows as 20·log₁₀(4πd/λ): 353→370 dB at 1550 nm. Received power drops accordingly. Data rate scales as 1/d²: 200 Mbps at opposition → 2 Mbps at conjunction. The RL agent adapts by storing more during high-distance phases and forwarding aggressively during opposition. Near conjunction, RF Ka-band fallback and Lagrange relay paths maintain connectivity.
QYour link margin is negative at conjunction. Does the system stop working?
No. Three mechanisms maintain connectivity: (1) data rate is reduced from 200 to 2 Mbps, which improves Eb/N0 by 20 dB (Shannon capacity trade-off); (2) RF Ka-band backup provides 2–6 Mbps with better weather resilience; (3) Lagrange relay paths (ES-L4/L5) bypass the Sun-blocked direct path with 50–70% availability. DTN store-and-forward ensures no data is lost — only delayed.
QHow does the 22-minute light time at conjunction affect your RL agent?
The agent's state information is always 3–22 minutes stale. It cannot rely on real-time feedback. Instead, it uses contact window predictions and distance-phase awareness to make proactive decisions. The reward function's delay penalty (β=0.001/s) is small enough that a 22-minute forward (penalty 1.32) is still better than indefinite storage if a contact window is available. The agent learns the optimal trade-off between waiting for better conditions and forwarding now.
Self-Check Questions
Deep Dive Resources
- Source code:
src/orbital/contact_windows.py(distance → rate),src/infrastructure/link_budget.py(distance → margin),src/orbital/doppler.py(velocity → Doppler) - Topic summaries:
interview_prep/topic_summaries/link_budget.md+orbital_mechanics.md(read together for integration) - Mock interview:
interview_prep/practice/mock_interview.md— Q10 (FSPL at 225M km), Q11 (contact windows) - Design rationale:
docs/DESIGN_RATIONALE.md— §4 (quantitative derivations), §11 (scale-out to Jupiter) - Demo: Run
python src/infrastructure/link_budget.pyfor all three scenarios (minimum/average/maximum) side by side