LEO-Überflug und Streckenbilanz (leo-pass)
LEO-PNT ist Positionierung, Navigation und Zeitgebung (PNT) mit Satelliten im niedrigen Erdorbit (LEO). Der Typ leo-pass simuliert einen oder mehrere Überflüge von LEO-Satelliten über einem Nutzer und berechnet die Streckenbilanz Band für Band, neben den Satelliten der mittleren Erdumlaufbahn (MEO) der GNSS (globale Satellitennavigationssysteme) in Sicht. Die Engine ist systemunabhängig: jede Konstellation, jeder Signalentwurf und jedes Band, direkt in ein Szenario geschrieben. Benannte Systeme sind optionale Voreinstellungen, jede in einer eigenen Datei mit ihrer Quelle.
- Code:
src/leo_pass.rs(der Typ) undsrc/leo_link/(öffentliche Bausteine, die andere Module aufrufen können). - Szenarien:
leo-pass-vs-gnss-cn0,leo-indoor-uhf,leo-iot-energy,leo-pass-xona-pulsar,leo-pass-iridium,leo-resilience-spoof-doppler,leo-focus-science-iono-soundingund das optionaleleo-pass-celeste-iod-multiband(Ergebnisse unter Mitgelieferte Szenarien). Der Typ ist außerdem Mitglied der Kampagnenleo-resilience-spoof-monitors,leo-focus-iot-eirp,leo-focus-indoor-uhfund jedes Szenariosleo-vertical-*sowie die Überflugstufe des Typsleo-pnt-chain. - Übersicht über jeden LEO-PNT-Typ und jedes LEO-PNT-Szenario: LEO-PNT.md.
- Unabhängige Referenzen:
tests/leo_link_reference.rs, Testdaten intests/fixtures/leo_link/mit ihren Quell-URLs.
Was ein Lauf berechnet#
Für jeden LEO-Satelliten, jedes Band und jede Epoche:
| Größe | Modell | Kennzeichnung |
|---|---|---|
| Elevation, Azimut, Entfernung | Nutzer in WGS-84 (World Geodetic System 1984), Satellit in einem inertialen System, das zur Epoche am erdfesten System ausgerichtet ist | berechnet |
Entfernungsrate ρ̇ = d·Δv/ρ, Entfernungsbeschleunigung ρ̈ = (|Δv|² − ρ̇² + d·Δa)/ρ |
geschlossene Form; jeder Lauf prüft beide gegen zentrale Differenzen der propagierten Entfernung und berichtet die größte Differenz | geschlossene Form |
Doppler −f·ρ̇/c, Dopplerrate −f·ρ̈/c |
erster Ordnung, je Band | geschlossene Form |
| Freiraumdämpfung | Friis, 20·log10(4πRf/c) |
VALIDATED |
| EIRP des Satelliten (äquivalente isotrope Strahlungsleistung) und Strahlungsdiagramm | isoflux bis zu einer Randelevation, gaußförmige Hauptkeule −12(η/θ₃)² dB, oder flach |
MODELLED |
| Nutzerantenne | Patch G_z + 10·q·log10(sin el) dBic, halbkugelförmig oder isotrop |
MODELLED |
| Dämpfung durch Gase | vereinfachte Ausdrücke aus ITU-R (International Telecommunication Union, Radiocommunication Sector) P.676-10 Anhang 2 (abgelöst durch P.676-13, dessen tabellierte Koeffizienten die Engine nicht trägt) | MODELLED |
| Regendämpfung | Koeffizienten aus ITU-R P.838-3 und das Verfahren aus P.618-14 § 2.2.1.1, aus einer Regenrate R0.01 und einer Regenhöhe | VALIDATED |
| Troposphärische Szintillation | ITU-R P.618-14 § 2.4.1; unter 4 GHz eine Extrapolation, im Bericht gekennzeichnet | VALIDATED (4–55 GHz) |
| Gebäudeeindringverlust (Nutzer in Gebäuden) | ITU-R P.2109-2, traditionell oder thermisch effizient, bei der Elevation des Pfades an der Fassade | VALIDATED |
| Polarisationsfehlanpassung | Polarisationsverlustfaktor aus Achsenverhältnissen und Drehsinnen, gemittelt über die Ausrichtung der Ellipse | geschlossene Form |
| Systemrauschtemperatur | Antennenuntergrenze + Himmelsemission des absorbierenden Pfades (275 K) + kosmisch 2,7 K + Empfänger 290(10^(NF/10) − 1) |
MODELLED |
| C/N0 (Träger-Rausch-Dichte) | EIRP + G_sat − L_fs − L_gas − L_rain − L_scint − L_BEL − L_pol + G_user − 10·log10(kT) − L_impl |
MODELLED |
| Ionosphärische Gruppenlaufzeit | 40.3·STEC/f², STEC (Schräg-Gesamtelektronengehalt) aus dem Klobuchar-Modell oder einem vertikalen Gesamtelektronengehalt (TEC), skaliert mit dem Anteil einer Chapman-Schicht unterhalb des Satelliten |
Skalierung VALIDATED, TEC MODELLED |
Je Bandpaar: die ionosphärenfreien Koeffizienten, die Rauschverstärkung √(a₁² + a₂²) und das thermische Coderauschen jedes Bandes und der Kombination im Überflugmaximum. Der Vergleich mit MEO-GNSS verwendet dieselbe Nutzerantenne und denselben Empfänger, mit der Mindest-Empfangsleistung des Schnittstellendokuments jedes Signals (Galileo Open Service Signal-in-Space Interface Control Document, OS SIS ICD, Ausgabe 2,1 Tabelle 12; GPS aus IS-GPS-200 und IS-GPS-705), plus einem angegebenen Überschuss, mit der Entfernung skaliert. Der optionale Abschnitt [iot] (Internet der Dinge) gibt Zeit bis zur ersten Positionslösung, Energie je Positionslösung und Batterielebensdauer gegen das Tastverhältnis für ein angegebenes Leistungsbudget des Empfängers an (MODELLED, jede Annahme ist eine Eingabe und im Bericht aufgeführt).
Satelliten#
orbit = "pass"(Standard): eine Kreisbahn, so gelegt, dass der Nutzer einen Überflug mit gewählter Maximalelevation zu einer gewählten Zeit sieht, aufsteigend oder absteigend, östlich oder westlich des Nutzers; die Inklination kann sonnensynchron sein.orbit = "elements": ausdrückliche Kepler-Elemente.orbit = "tle": ein Zweizeilen-Elementsatz (TLE) über den Propagator Simplified General Perturbations 4 (SGP4) der Engine.[[leo_constellation]]: eine Walker-Konstellation, aufgebaut vom Codeconstellation-design(seinConstellationCfgoder die Schalen der Voreinstellung); die höchsten Überflüge im Fenster werden berichtet.
Bänder und Signalentwürfe#
Bänder: system = "<preset>" mit einer optionalen Teilmenge bands und Einträgen [[satellite.band]], die ein Band hinzufügen oder ein beliebiges Feld eines Voreinstellungsbandes überschreiben. system = "none" mit nur Einträgen [[satellite.band]] verwendet gar keine Voreinstellung.
Ein Band kann auch einen Entwurf leo-signal benennen (signal = "xona-x5", ein beliebiger Entwurf unter data/leo-signals/ oder einer, den der Typ leo-pnt-chain übergibt; siehe LEO-SIGNAL.md). Das Band übernimmt dann die Mittenfrequenz des Entwurfs (sofern frequency_mhz nicht angegeben ist), die Sendebandbreite und die Chiprate der verfolgten Komponente, verteilt seine EIRP nach deren Leistungsanteilen auf die Komponenten des Entwurfs und berichtet in jeder Epoche das C/N0 der verfolgten Komponente und ihr bandbegrenztes Early-Late-Codeverfolgungsjitter (Betz und Kolodziejski 2009, die Formel des Typs leo-signal) als Entfernungsmessfehler.
Voreinstellungen#
Jede Voreinstellung kennzeichnet ihre Zahlen als PUBLIC (mit URL), REPRESENTATIVE (eine dokumentierte Entwurfsentscheidung, nie eine Aussage über ein reales System) oder WORKSHOP.
| Voreinstellung | Quelle | Bänder | Bahn |
|---|---|---|---|
generic-leo (Standard) |
REPRESENTATIVE; L-, S- und C-Träger aus öffentlichen Dokumenten | UHF 450 MHz (repräsentativ), L 1191,795 MHz (Galileo-E5-Mitte), S 2492,028 MHz (NavIC S, der S-Band-Träger von Navigation with Indian Constellation), C 5020 MHz (Mitte der Zuweisung 5010–5030 MHz für RNSS (Funknavigationssatellitendienst)), jeweils 0 dBW | 550 km sonnensynchron, Walker 240/12/1 |
generic-c-band |
REPRESENTATIVE, für C-Band-Systeme, deren Parameter nicht öffentlich sind (zum Beispiel TrustPoint) | C 5020 MHz, BPSK(10) (binäre Phasenumtastung bei 10 × 1,023 Mchip/s), isoflux | 550 km, 53° |
xona-pulsar |
PUBLIC, arXiv 2509,19551 Tabellen 1–2 | X1 1593,3225 MHz, X5 1190,51625 MHz; EIRP aus der veröffentlichten Mindest-Empfangsleistung bei 10° | 1080 km, 53° (192) and 97° (66) |
iridium-stl |
PUBLIC, Resilient Navigation and Timing Foundation (RNTF) und die veröffentlichte Bahn | Satellite Time and Location (STL) bei 1621 MHz (Mitte von 1616–1626 MHz); EIRP aus „300-mal GPS“ | 781 km, 86,4°, 66 in 6 Ebenen |
starlink-soop |
PUBLIC Signalzahlen (NAVIGATION 72(1)), REPRESENTATIVE Bahn und EIRP | Ku-Bake bei 240 MHz, nur Doppler | 550 km, 53° |
centispace |
PUBLIC Signalstruktur (PMC10301026), REPRESENTATIVE Bahn und EIRP | BPSK 2,046 Mchip/s nahe L1 und L5 | 1000 km, 55° |
celeste-iod (optional) |
WORKSHOP Signalparameter, PUBLIC Bahn | sieben Bänder der Konfiguration #1 | 510 km sonnensynchron |
Die Voreinstellung Celeste IOD (Demonstration im Orbit) ist optional. Ihre Signalparameter wurden auf dem LEO-PNT-Workshop des Navigation Innovation and Support Programme (NAVISP) der Europäischen Weltraumorganisation (ESA), 2026, vorgestellt und haben noch keine öffentliche Quelle; sie stehen im Modul link von src/celeste_iod.rs, verwendet von scenarios/leo-pass-celeste-iod-multiband.toml. So wird die Voreinstellung zurückgehalten: Jede aus dem Workshop abgeleitete Zahl der Engine steht in einer Datei, src/celeste_iod.rs, die build.rs nur einkompiliert, wenn sie existiert, und in den nur im Repository vorhandenen Szenarien scenarios/*celeste-iod*.toml. Das Löschen dieser Datei und dieser Szenarien hält die Voreinstellung ohne Quelltextänderung zurück; jeder andere Test, jede andere unabhängige Referenz und jedes andere Szenario läuft ohne sie, und die Zählung der Szenariodateien in der README zählt die zurückgehaltenen Dateien weiterhin mit. Ihre EIRP und ihre Keule sind auf eine auf dem Workshop gezeigte C/N0-Kurve kalibriert, sodass dieses Szenario die Kurve konstruktionsbedingt reproduziert.
Das Broadcast-Ephemeridenmodell mit dem Polynom „Zero-Clock“ von ATOMIC ist eine Voreinstellung für Navigationsnachrichten und nicht Teil dieses Typs.
Die Beobachtung LEO gegenüber GNSS#
scenarios/leo-pass-vs-gnss-cn0.toml reproduziert qualitativ, was LEO-PNT-Demonstrationen zeigen: Das LEO-C/N0 steigt und fällt in einer Glockenkurve, die 590 s über der Maske bleibt und bei 56,8 dB-Hz ihr Maximum erreicht, 8,9 dB über dem Median der flachen MEO-GNSS-Träger (Galileo E1, 40,5 bis 52,0 dB-Hz, Median 47,8 dB-Hz). Der Abstand kommt von der Entfernung, nicht von einem stärkeren Sender: Im Überflugmaximum ist der Satellit 569 km entfernt, etwa 40-mal näher als ein Galileo-Satellit im Zenit (23.222 km), was 32 dB weniger Freiraumdämpfung bedeutet; die generische Voreinstellung strahlt 0 dBW (1 W) ab.
Mitgelieferte Szenarien#
Jede Zeile ist ein Lauf von kshana scenarios/<name>.toml (Engine 0.40.0):
| Szenario | Aufbau | Ergebnis eines Laufs |
|---|---|---|
leo-pass-vs-gnss-cn0 |
generic-leo L-Band, 550 km, 80°-Überflug über München |
L-Maximum 56,8 dB-Hz, Median 42,2 dB-Hz; Galileo-E1-Median 47,8 dB-Hz |
leo-pass-xona-pulsar |
xona-pulsar, ein entworfener 70°-Überflug und vier Satelliten einer geneigten Schale, maritimer Nutzer |
X1-Maximum 65,6 dB-Hz und X5 68,9 dB-Hz beim entworfenen Überflug; größter X1-Doppler 31,4 kHz |
leo-pass-iridium |
iridium-stl, 65°-Überflug, Nutzer im Flugzeug |
STL-Maximum 80,5 dB-Hz, 34,3 dB über dem GPS-L1-Median; größter Doppler 35,4 kHz |
leo-indoor-uhf |
generic-leo, Nutzer in Gebäuden in Rom (traditionelles Gebäude) |
Maximum UHF 34,1, L 24,2, S 16,5, C 8,5 dB-Hz; Galileo-E1-Median 22,4 dB-Hz |
leo-iot-energy |
generic-leo UHF und L mit dem Abschnitt [iot] |
Warmstart 0,90 s und 18,0 mJ bei jedem Signal; Kaltstart UHF 19,0 s (381 mJ), L 47,0 s (939 mJ), GPS L1 38,1 s (762 mJ) |
leo-focus-science-iono-sounding |
generic-leo, vier Bänder, 70°-Überflug über Tromsø |
siehe Ionosphärensondierung |
leo-resilience-spoof-doppler |
16 Satelliten einer generischen Schicht in 1080 km, L und C, ein Sprung von 30 m | siehe Spoofing-Monitore |
kshana scenarios/<name>.toml --animate html --export all schreibt außerdem den interaktiven Player (.animation.html, die Überflugepochen) sowie CZML (die Cesium Language), KML (Keyhole Markup Language), GeoJSON und STK-Ephemeridendateien (Systems Tool Kit) der Überfluggeometrie (ANIMATION.md, INTEROP.md).
Ionosphärensondierung#
Jedes Bandpaar liefert außerdem den Schräg-TEC, den seine geometriefreie Codekombination im Überflugmaximum wiedergewinnt, STEC = (P₂ − P₁)·f₁²f₂² / (40.3·(f₁² − f₂²)), und die 1-Sigma dieser Schätzung aus dem Coderauschen der beiden Bänder im Maximum (geometry_free_stec_tecu, geometry_free_stec_sigma_tecu). Die Schätzung ist konstruktionsbedingt gleich dem Schräg-TEC des Modells: Die Kombination ist in erster Ordnung exakt. Die Sigma entscheidet, ob ein Bandplan ein besserer oder schlechterer Sondierer ist: scenarios/leo-focus-science-iono-sounding.toml (vier Bänder über Tromsø) gewinnt aus jedem Paar 18,85 TEC-Einheiten wieder, mit einer 1-Sigma von 0,017 TEC-Einheiten für UHF mit L und 2,9 für S mit C. Nur thermisches Coderauschen; weder Mehrwegeausbreitung noch Zwischenfrequenzversatz. MODELLED.
Spoofing-Monitore ([spoofer])#
Der optionale Abschnitt [spoofer] fälscht die Signale, die ein Empfänger an einer behaupteten Position sehen würde. Ab onset_s springt die behauptete Position um offset_m und bewegt sich dann horizontal mit push_rate_m_s in Richtung push_azimuth_deg; die gefälschte Entfernung und Entfernungsrate sind genau die der behaupteten Position, auf den in bands genannten LEO-Bändern (Standard alle) und auf dem MEO-GNSS-Signal, außer bei gnss = false. simulate_iono gibt an, ob die gefälschten Pseudoentfernungen die ionosphärische Laufzeit tragen (die eines Bodensenders tun das nicht).
Der Empfänger betreibt zwei Monitore (src/leo_link/spoof.rs), jeden mit einer angegebenen Falschalarmwahrscheinlichkeit je Epoche (p_fa, Standard 1e-5), und erklärt Detektion in der ersten Epoche, in der seine Detektionswahrscheinlichkeit 1 − p_md erreicht (Standard 0,999). Die Detektionswahrscheinlichkeiten sind für das angegebene gaußsche Rauschen exakt, ausgewertet am rauschfreien mittleren Residuum; es wird kein Rauschen gezogen.
| Monitor | Statistik | Was er sieht |
|---|---|---|
| Konsistenz von Doppler und Überfluggeometrie | gemessene Entfernungsraten gegen die aus den Bahnen und einer unabhängigen A-priori-Position und -Geschwindigkeit vorhergesagten (prior_sigma_m, prior_velocity_sigma_m_s); ein verallgemeinertes Chi-Quadrat nach der Methode der kleinsten Quadrate über ein Fenster von window_s (Standard ein Schritt), wobei die Uhrendrift eine Störgröße ist (oder mit drift_sigma_m_s vorgegeben wird); Rauschen der Frequenzregelschleife aus C/N0 (Kaplan & Hegarty 2006, § 5.6.2), auf den GNSS-Kanälen, den LEO-Kanälen und allen Kanälen |
ein Positionsfehler δx verschiebt eine Entfernungsrate um g·δx, g = −(Δv − ρ̇u)/ρ: Die Quergeschwindigkeit eines LEO-Satelliten im Verhältnis zu seiner Entfernung ist etwa 25-mal so groß wie die eines MEO-Satelliten, daher ist derselbe Fehler im LEO-Doppler etwa 25-mal größer |
| Konsistenz zwischen den Bändern | der Schritt von Epoche zu Epoche der geometriefreien Pseudoentfernungskombination jedes LEO-Bandpaares, bereinigt um das ionosphärische Modell des Empfängers, gegen das Coderauschen √(2(σ₁² + σ₂²)) und eine tolerierte nicht modellierte ionosphärische Rate (iono_rate_bound_m_s) |
ein Spoofer, der einige Bänder fälscht und andere nicht, oder jedes Band ohne die Ionosphäre, bei seinem Einsetzen; nicht einer, der jedes Band fälscht und die Ionosphäre simuliert |
scenarios/leo-resilience-spoof-doppler.toml: Ein Sprung von 30 m an einem vermessenen Standort in Frankfurt ändert die GNSS-Entfernungsraten um etwa 4 mm/s und die LEO-Raten um etwa 10 cm/s (mediane Gradienten 1.4e-4 und 3.5e-3 je Sekunde). Der Test nur mit GNSS erkennt ihn nie (größte Nichtzentralität 0,06); der Test über alle Kanäle erkennt ihn 105 s nach dem Einsetzen. scenarios/leo-resilience-spoof-monitors.toml lässt vier Spoofer gegen beide Monitore laufen.
Einschränkungen, in jedem Ergebnis angegeben: Der Spoofer ist ein idealisierter, in sich konsistenter Positionsschub, der seinen eigenen Pfad ausgleicht (keine Signatur in Leistung, Einfallswinkel oder Korrelationsspitze); das A-priori ist von den gespooften Positionslösungen unabhängig; das ionosphärische Modell des Empfängers ist das der Engine, sodass das echte Residuum zwischen den Bändern im Mittel null ist. MODELLED (zwei Zeilen in VERIFICATION-MATRIX.md).
Validierung#
| Unabhängige Referenz | Test | Ergebnis |
|---|---|---|
| ITU-R P.838-3 Tabelle 5, 115 Frequenzen | p838_coefficients_reproduce_table5_to_its_printed_digits |
jeder Koeffizient innerhalb von 0,6 seiner letzten gedruckten Stelle (schlechtester beobachteter Wert 0,51) |
| Validierungsbeispiele der ITU-R Study Group 3 (CG-3M3J-13-ValEx-Rev8.3.0), P.618-14 Regen | p618_rain_attenuation_matches_the_itu_validation_examples |
56 Fälle innerhalb von 1e-4 dB (beobachtet 5e-6 dB) |
| Dieselben Beispiele, P.618-14 Szintillation | p618_scintillation_matches_the_itu_validation_examples |
42 Fälle innerhalb von 1e-5 dB |
| Arbeitsmappe Clutter and BEL der ITU-R Study Group 3, P.2109 | p2109_building_entry_loss_matches_the_itu_workbook |
568 Werte innerhalb von 0,001 dB |
Gruppenlaufzeitverhältnis γ = (77/60)² aus IS-GPS-200 |
first_order_iono_reproduces_the_is_gps_200_group_delay_ratio |
auf 1e-12; Verstärkung L1/L2 und L1/L5 2,978 und 2,588 |
| Friis in der Form Kilometer–Megahertz | free_space_loss_is_the_friis_kilometre_megahertz_form |
auf 1e-4 dB |
| arXiv 2509,19551 Tabelle 1 (Pulsar In-Orbit-Validierung (IOV), volle Betriebsfähigkeit (FOC) polar, FOC geneigt, GPS) | doppler_envelope_reproduces_the_pulsar_paper_table_1 |
20 Geschwindigkeiten und Doppler-Maxima innerhalb von 0,05 % |
Die unabhängigen Referenzen für Regen und Szintillation übernehmen die Regenhöhe und die feuchte Refraktivität so, wie die Validierungsbeispiele sie angeben: Die Engine trägt weder die Karte nach ITU-R P.839 noch die nach P.453.
Einschränkungen#
- EIRP und Strahlungsdiagramme sind veröffentlichte Empfangsleistungen, in eine EIRP umgerechnet, oder repräsentative Entscheidungen; es wird kein gemessenes Strahlungsdiagramm eines Satelliten verwendet, und kein LEO-C/N0 wird mit einer Messung verglichen.
- Der Gasterm ist das abgelöste vereinfachte Verfahren P.676-10; unter 1 GHz ist er der mit f² skalierte Wert bei 1 GHz, und Regen wird dort als null angenommen.
- Der Anteil des TEC unterhalb eines LEO-Satelliten stammt aus einer einzelnen Chapman-Schicht (ohne Plasmasphäre) und ist durch einen angegebenen Anteil überschreibbar.
- Die entworfenen Überflug- und Walker-Bahnen sind Zweikörperbahnen mit einem optionalen säkularen J2 (der zweiten zonalen Harmonischen der Erde); der TLE-Pfad verwendet SGP4. Die eigene Beschleunigung des Nutzers bleibt in der Dopplerrate in geschlossener Form unberücksichtigt (die numerische Prüfung berichtet, was das für einen bewegten Nutzer kostet).
- RINEX (Receiver Independent Exchange Format) 4,02 hat keine LEO-Navigationsdatensätze; jeder LEO-Export im RINEX-Stil gehört zum Code der Navigationsnachricht und ist eine dokumentierte Kshana-Erweiterung (Vorarbeiten: arXiv 2401,17767).