Skip to content
RFrftools.io
Satellite Communications30. April 20268 Min. Lesezeit

Skripterstellung von Satelliten-Link-Budgets mit ITU-RPY (Python-Beispiele)

STK-freie Link-Budget-Automatisierung: Sweep-Frequenz, Regenverfügbarkeit und Höhenlage in reinem Python unter Verwendung der ITU-RPY-Referenzimplementierung von P.618/P.676/P.840. Ergänzung zum rftools Satellite Link Budget Analyzer.

Inhalt

Der rftools Satellite Link Budget Analyzer wurde für das interaktive Szenariodesign entwickelt. Wenn Sie einen Parameter über Hunderte von Punkten hinweg durchsuchen müssen — für Handelsstudien, Frequenzplanoptimierung oder CI/CD-Integration in Ihr Missionsdesign-Repo —, dann benötigen Sie Python, keinen Browser.

ITU-RPY ist die Open-Source-Referenzimplementierung der ITU-R-Empfehlungen zur Ausbreitung der Erde im Weltraum. Unser Backend passt sich dem an. Dieser Beitrag zeigt drei skriptbasierte Anwendungsfälle, die Sie direkt in ein Jupyter-Notizbuch übernehmen können.

Installieren
pip install itur numpy matplotlib
ITU-RPY bezieht seine eigenen Datentabellen (Regenratenkarten, Brechungsindex-Klimatologien) aus dem ITU-Repositorium. Der erste Import kann ~5 Sekunden dauern.

Sie planen einen GEO-Broadcast-Downlink und möchten wissen, wie die spezifische Regendämpfung bei einer Verfügbarkeit von 99,99% zwischen 20 und 40 GHz variiert.

import itur
import itur.models as m
import numpy as np
import matplotlib.pyplot as plt

# Ground station: Atlanta, GA
lat, lon = 33.75, -84.39
elevation_deg = 45.0
availability_pct = 0.01  # 0.01% outage → 99.99% availability

freqs = np.linspace(20, 40, 21)  # GHz
attenuations = []
for f in freqs:
    a = itur.atmospheric_attenuation_slant_path(
        lat=lat, lon=lon,
        f=f * itur.u.GHz,
        el=elevation_deg,
        p=availability_pct,
        D=1.2 * itur.u.m,  # antenna diameter (affects cloud attenuation)
        hs=0.3 * itur.u.km,
    )
    attenuations.append(float(a.value))

plt.plot(freqs, attenuations)
plt.xlabel('Frequency (GHz)')
plt.ylabel('Total atmospheric attenuation (dB)')
plt.title(f'Ka-band slant path, {availability_pct}% outage, Atlanta 45° elevation')
plt.grid(True)
plt.show()
Im Ka-Band über der Klimazone von Atlanta (ITU-R-Regenzone K) liegt die Atmosphärendämpfung bei 20 GHz bei 99,99% bei etwa 2-3 dB. Bei 40 GHz steigt dieser Wert auf 15 bis 20 dB an. Aus diesem Grund weisen Ka-Band-Sender in der Regel 5-6 dB an Uplink-Leistungsregelungsmarge zu, die über dem Nennwert liegt.

Anwendungsfall 2: Überprüfung der Verfügbarkeit im Rahmen einer Rain-Fade-Trade-Studie

Sie müssen sich für einen maritimen VSAT zwischen 99,9% (80 Minuten Ausfall/Jahr), 99,99% (52 Minuten Ausfall/Jahr) und 99,999% (5 Minuten Ausfall/Jahr) entscheiden. Wie viel zusätzliche Fade-Margin kostet jede Stufe?

availabilities = [1.0, 0.1, 0.01, 0.001]  # 99% through 99.999%
freq = 14.5  # Ku-band uplink
lat, lon = 42.0, -3.0  # Bay of Biscay, typical rain zone M

print(f'{"Availability":14s} {"Outage/yr":12s} {"Total Atten":12s}')
print('-' * 40)
for p in availabilities:
    a = itur.atmospheric_attenuation_slant_path(
        lat=lat, lon=lon,
        f=freq * itur.u.GHz,
        el=30.0,
        p=p,
    )
    outage_min = p / 100 * 365.25 * 24 * 60
    pct = 100 - p
    print(f'{pct:9.3f} %   {outage_min:9.1f} min  {float(a.value):8.2f} dB')
Typische Leistung:
Availability    Outage/yr     Total Atten 
----------------------------------------
   99.000 %     5259.6 min      1.48 dB
   99.900 %      525.9 min      3.21 dB
   99.990 %       52.6 min      6.58 dB
   99.999 %        5.3 min     11.42 dB
Der Wechsel von 99,99% auf 99,999% kostet im Ku-Band etwa 5 dB — was für die meisten maritimen Anwendungsfälle das Hardware-Budget nicht wert ist. Die Tabelle mit den Handelsstudien erleichtert das Gespräch mit den Interessenvertretern.

Anwendungsfall 3: Höhenmaske — wo endet die Verbindung bei niedriger Höhe?

Bei einer LEO-Konstellation mit festem Bodenanschluss weisen Pässe in niedriger Höhe eine viel höhere atmosphärische Dämpfung auf. Stellen Sie die Gesamtdämpfung im Vergleich zur Höhe dar:

§4 §

Bei 5° Höhe sind 8-10 dB mehr zu hören als bei 45°. Aus diesem Grund verwenden LEO-Ka-Band-Terminals eine Mindesthöhenmaske von 15-20° und räumen Kontakten mit niedriger Höhe keine Priorität ein.

# Rückspeisung der Ausgabe in den rtools Analyzer

Sobald Sie eine programmierte Dämpfungszahl haben, fügen Sie sie alsrainFadeoderatmosphericLossin den Satellite Link Budget Analyzer ein, starten Sie Monte Carlo und kopieren Sie die Szenario-URL zum Teilen. Unser Backend verwendet dieselben ITU-R-Modelle, sodass die Ergebnisse mit der Gleitkommagenauigkeit übereinstimmen.

Für automatisierte Regressionstests akzeptiert unser Endpunkt POST /api/py/v1/calculate denrf-link-budget-Rechner mit allen Eingaben — perfekt für CI-Pipelines, die die Einhaltung des Link-Budgets bei jedem Commit überprüfen.

Häufige Fallstricke

  1. Einheiten sind wichtig.f=20.0ohne* itur.u.GHzgeht stillschweigend von Hz aus. ITU-RPY validiert dimensional.
  2. Verfügbarkeit ist der Prozentsatz des Ausfalls, nicht der Betriebszeit %.p=0.01bedeutet eine Verfügbarkeit von 99,99% (0,01% der Fälle, in denen die Dämpfung diesen Wert überschreitet).
  3. Die Regenzone wird von Breite/Länge abgeleitet. Sie können sie nicht außer Kraft setzen — wenn Sie für Zone P (im schlimmsten Fall tropisch) testen, müssen Sie in dieser Zone eine Breite/Länge bestehen, z. B.lat=1.3, lon=103.8(Singapur).
  4. Für die Wolkendämpfung ist ein Antennendurchmesser erforderlich. Größere Antennen haben einen engeren Lichtkegel und eine geringere Wolkendämpfung in dB.
  5. Szintillation ist eine separate Funktion. Verwenden Sieitur.models.itu618.scintillation_attenuation()— sie ist nicht im standardmäßigenatmospheric_attenuation_slant_path-Aufruf enthalten.

Das Kommunikationsmodul von STK Cloud ersetzen

Die Comm/Radar-Suite von STK Cloud hat diese ITU-R-Berechnungen in einer Benutzeroberfläche zusammengefasst. Für die Skripterstellung ist ITU-RPY die Referenzimplementierung, die sie aufgerufen hätten. Migration:

STK Cloud CommITU-RPY-Äquivalent
Modell zur Regendämpfungitur.models.itu838.specific_attenuation()
Gasaufnahmeitur.models.itu676.gaseous_attenuation_slant_path()
Dämpfung von Wolkenitur.models.itu840.columnar_content_reduced_liquid()
Szintillationitur.models.itu618.scintillation_attenuation()
Totale Dämpfungitur.atmospheric_attenuation_slant_path()
Für alles andere als eine vollständige Konstellationssimulation ist das, was Sie wollen. Siehe auch Migration von STK Cloud für die vollständige Übersicht über den Austausch von Tools.

Weiterführende Literatur

Verwandte Artikel