Przejście LEO i budżet łącza (leo-pass)
LEO-PNT to pozycjonowanie, nawigacja i czas (PNT) z satelitów na niskiej orbicie okołoziemskiej (LEO). Rodzaj leo-pass symuluje jedno lub więcej przejść satelitów LEO nad użytkownikiem i wylicza budżet łącza pasmo po paśmie, obok satelitów GNSS (globalny system nawigacji satelitarnej) na średniej orbicie okołoziemskiej (MEO) widocznych w tym czasie. Silnik jest niezależny od systemu: dowolna konstelacja, dowolny projekt sygnału i dowolne pasmo, wpisane wprost w scenariuszu. Nazwane systemy to opcjonalne gotowe ustawienia, każde w osobnym pliku ze swoim źródłem.
- Kod:
src/leo_pass.rs(rodzaj) isrc/leo_link/(publiczne klocki, które mogą wywoływać inne moduły). - Scenariusze:
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-soundingoraz opcjonalnyleo-pass-celeste-iod-multiband(wyniki w Dołączone scenariusze). Ten rodzaj jest też członkiem kampaniileo-resilience-spoof-monitors,leo-focus-iot-eirp,leo-focus-indoor-uhfi każdego scenariuszaleo-vertical-*oraz etapem przejścia rodzajuleo-pnt-chain. - Przegląd każdego rodzaju i scenariusza LEO-PNT: LEO-PNT.md.
- Wyrocznie:
tests/leo_link_reference.rs, dane wzorcowe wtests/fixtures/leo_link/wraz z adresami URL ich źródeł.
Co oblicza jeden przebieg#
Dla każdego satelity LEO, pasma i epoki:
| Wielkość | Model | Etykieta |
|---|---|---|
| Elewacja, azymut, odległość | użytkownik w WGS-84 (World Geodetic System 1984), satelita w układzie inercjalnym zgodnym z układem związanym z Ziemią w danej epoce | obliczone |
Prędkość zmiany odległości ρ̇ = d·Δv/ρ, przyspieszenie odległości ρ̈ = (|Δv|² − ρ̇² + d·Δa)/ρ |
postać zamknięta; każdy przebieg sprawdza oba względem różnic centralnych propagowanej odległości i podaje największą różnicę | postać zamknięta |
Doppler −f·ρ̇/c, tempo zmiany Dopplera −f·ρ̈/c |
pierwszego rzędu, dla każdego pasma | postać zamknięta |
| Tłumienie w wolnej przestrzeni | Friis, 20·log10(4πRf/c) |
VALIDATED |
| EIRP satelity (równoważna moc promieniowana izotropowo) i charakterystyka | izoflux do elewacji granicznej, gaussowski listek główny −12(η/θ₃)² dB, lub płaska |
MODELLED |
| Antena użytkownika | patch G_z + 10·q·log10(sin el) dBic, półsferyczna lub izotropowa |
MODELLED |
| Tłumienie gazowe | uproszczone wyrażenia z załącznika 2 do ITU-R (International Telecommunication Union, Radiocommunication Sector) P.676-10 (zastąpionego przez P.676-13, którego tabelaryzowanych współczynników silnik nie zawiera) | MODELLED |
| Tłumienie deszczu | współczynniki ITU-R P.838-3 i procedura P.618-14 § 2.2.1.1, na podstawie natężenia deszczu R0.01 i wysokości deszczu | VALIDATED |
| Scyntylacja troposferyczna | ITU-R P.618-14 § 2.4.1; poniżej 4 GHz ekstrapolacja, oznaczona w raporcie | VALIDATED (4–55 GHz) |
| Tłumienie przy wejściu do budynku (użytkownik wewnątrz) | ITU-R P.2109-2, tradycyjne lub termicznie efektywne, przy elewacji ścieżki na elewacji budynku | VALIDATED |
| Niedopasowanie polaryzacji | współczynnik strat polaryzacyjnych z osiowych współczynników elipsy i kierunków skrętu, uśredniony po orientacji elipsy | postać zamknięta |
| Temperatura szumowa systemu | poziom bazowy anteny + emisja nieba na drodze pochłaniającej (275 K) + kosmiczne 2,7 K + odbiornik 290(10^(NF/10) − 1) |
MODELLED |
| C/N0 (stosunek nośnej do gęstości szumu) | EIRP + G_sat − L_fs − L_gas − L_rain − L_scint − L_BEL − L_pol + G_user − 10·log10(kT) − L_impl |
MODELLED |
| Jonosferyczne opóźnienie grupowe | 40.3·STEC/f², STEC (całkowita zawartość elektronów wzdłuż drogi sygnału) z modelu Klobuchar lub pionowa całkowita zawartość elektronów (TEC), skalowana ułamkiem warstwy Chapmana poniżej satelity |
skalowanie VALIDATED, TEC MODELLED |
Dla każdej pary pasm: współczynniki wolne od jonosfery, wzmocnienie szumu √(a₁² + a₂²) oraz termiczny szum kodu każdego pasma i kombinacji w szczycie przejścia. Porównanie z GNSS na MEO używa tej samej anteny użytkownika i tego samego odbiornika, z minimalną mocą odbieraną każdego sygnału z dokumentu interfejsu (Galileo Open Service Signal-in-Space Interface Control Document, OS SIS ICD, wydanie 2,1 tabela 12; GPS z IS-GPS-200 i IS-GPS-705), plus podany nadmiar, skalowaną odległością. Opcjonalna sekcja [iot] (Internet rzeczy) podaje czas do pierwszego rozwiązania, energię na rozwiązanie i czas pracy baterii względem cyklu pracy dla podanego budżetu mocy odbiornika (MODELLED, każde założenie jest wejściem i jest wymienione w raporcie).
Satelity#
orbit = "pass"(domyślnie): orbita kołowa ustawiona tak, aby użytkownik widział jedno przejście o wybranej maksymalnej elewacji w wybranym czasie, wstępujące lub zstępujące, na wschód lub na zachód od użytkownika; nachylenie może być heliosynchroniczne.orbit = "elements": jawne elementy keplerowskie.orbit = "tle": dwuwierszowy zestaw elementów (TLE) przez propagator Simplified General Perturbations 4 (SGP4) silnika.[[leo_constellation]]: konstelacja Walkera zbudowana przez kodconstellation-design(jegoConstellationCfglub powłoki gotowego ustawienia); raportowane są najwyższe przejścia w oknie.
Pasma i projekty sygnałów#
Pasma: system = "<preset>" z opcjonalnym podzbiorem bands oraz wpisy [[satellite.band]], które dodają pasmo lub zastępują dowolne pole pasma z gotowego ustawienia. system = "none" z samymi wpisami [[satellite.band]] w ogóle nie używa gotowego ustawienia.
Pasmo może też wskazywać projekt leo-signal (signal = "xona-x5", dowolny projekt w data/leo-signals/ lub taki, który przekazuje rodzaj leo-pnt-chain; zob. LEO-SIGNAL.md). Pasmo przyjmuje wtedy częstotliwość środkową projektu (chyba że podano frequency_mhz), szerokość pasma nadawania i tempo chipów śledzonego składnika, dzieli swoje EIRP między składniki projektu według ich udziałów mocy oraz podaje w każdej epoce C/N0 śledzonego składnika i jego ograniczone pasmem drgania śledzenia kodu wczesny-późny (Betz i Kolodziejski 2009, wzór rodzaju leo-signal) jako błąd pomiaru odległości.
Gotowe ustawienia#
Każde gotowe ustawienie oznacza swoje liczby jako PUBLIC (z adresem URL), REPRESENTATIVE (udokumentowany wybór projektowy, nigdy twierdzenie o rzeczywistym systemie) lub WORKSHOP.
| Ustawienie predefiniowane | Źródło | Pasma | Orbita |
|---|---|---|---|
generic-leo (domyślnie) |
REPRESENTATIVE; nośne L, S i C z dokumentów publicznych | UHF 450 MHz (reprezentatywne), L 1191,795 MHz (środek Galileo E5), S 2492,028 MHz (NavIC S, nośna pasma S indyjskiej konstelacji nawigacyjnej Navigation with Indian Constellation), C 5020 MHz (środek przydziału RNSS (służba nawigacji radiowej przez satelity) 5010–5030 MHz), każde 0 dBW | 550 km heliosynchroniczna, Walker 240/12/1 |
generic-c-band |
REPRESENTATIVE, dla systemów pasma C, których parametry nie są publiczne (na przykład TrustPoint) | C 5020 MHz, BPSK(10) (kluczowanie fazy dwustanowe z 10 × 1,023 Mchip/s), izoflux | 550 km, 53° |
xona-pulsar |
PUBLIC, arXiv 2509,19551, tabele 1–2 | X1 1593,3225 MHz, X5 1190,51625 MHz; EIRP z opublikowanej minimalnej mocy odbieranej przy 10° | 1080 km, 53° (192) i 97° (66) |
iridium-stl |
PUBLIC, Resilient Navigation and Timing Foundation (RNTF) i opublikowana orbita | Satellite Time and Location (STL) przy 1621 MHz (środek 1616–1626 MHz); EIRP z „300 razy GPS” | 781 km, 86,4°, 66 w 6 płaszczyznach |
starlink-soop |
sygnał: wartości PUBLIC (NAVIGATION 72(1)), orbita i EIRP REPRESENTATIVE | radiolatarnia Ku 240 MHz, tylko Doppler | 550 km, 53° |
centispace |
struktura sygnału PUBLIC (PMC10301026), orbita i EIRP REPRESENTATIVE | BPSK 2,046 Mchip/s w pobliżu L1 i L5 | 1000 km, 55° |
celeste-iod (opcjonalnie) |
parametry sygnału WORKSHOP, orbita PUBLIC | siedem pasm konfiguracji #1 | 510 km heliosynchroniczna |
Gotowe ustawienie Celeste IOD (demonstracja na orbicie) jest opcjonalne. Jego parametry sygnału przedstawiono na warsztatach LEO-PNT programu European Space Agency (ESA) Navigation Innovation and Support Programme (NAVISP), 2026, i nie mają jeszcze publicznego źródła; znajdują się w module link w src/celeste_iod.rs, używanym przez scenarios/leo-pass-celeste-iod-multiband.toml. Jak to ustawienie jest wyłączane: każda liczba silnika pochodząca z warsztatów mieści się w jednym pliku, src/celeste_iod.rs, który build.rs kompiluje tylko wtedy, gdy istnieje, oraz w scenariuszach dostępnych tylko w repozytorium scenarios/*celeste-iod*.toml. Usunięcie tego pliku i tych scenariuszy wyłącza gotowe ustawienie bez zmian w kodzie źródłowym; każdy inny test, każda wyrocznia i każdy scenariusz działają bez niego, a liczba plików scenariuszy w README nadal liczy pliki wyłączone. Jego EIRP i wiązka są skalibrowane do przebiegu C/N0 pokazanego na warsztatach, więc ten scenariusz odtwarza ten przebieg z konstrukcji.
Model rozgłaszanych efemeryd z wielomianem „zerowego zegara” ATOMIC jest gotowym ustawieniem komunikatu nawigacyjnego i nie należy do tego rodzaju.
Obserwacja LEO w porównaniu z GNSS#
scenarios/leo-pass-vs-gnss-cn0.toml odtwarza jakościowo to, co pokazują demonstracje LEO-PNT: C/N0 dla LEO rośnie i opada w kształcie dzwonu, który pozostaje nad maską przez 590 s i osiąga szczyt 56,8 dB-Hz, 8,9 dB powyżej mediany płaskich nośnych GNSS na MEO (Galileo E1, od 40,5 do 52,0 dB-Hz, mediana 47,8 dB-Hz). Zysk wynika z odległości, a nie z mocniejszego nadajnika: w szczycie przejścia satelita jest oddalony o 569 km, około 40 razy bliżej niż satelita Galileo w zenicie (23 222 km), co daje o 32 dB mniejsze tłumienie w wolnej przestrzeni; ogólne gotowe ustawienie promieniuje 0 dBW (1 W).
Dołączone scenariusze#
Każdy wiersz to jeden przebieg kshana scenarios/<name>.toml (silnik 0.40.0):
| Scenariusz | Ustawienie | Wynik jednego przebiegu |
|---|---|---|
leo-pass-vs-gnss-cn0 |
generic-leo pasmo L, 550 km, przejście pod kątem 80° nad Monachium |
szczyt L 56,8 dB-Hz, mediana 42,2 dB-Hz; mediana Galileo E1 47,8 dB-Hz |
leo-pass-xona-pulsar |
xona-pulsar, zaprojektowane przejście 70° i cztery satelity w pochylonej powłoce, użytkownik morski |
szczyt X1 65,6 dB-Hz i X5 68,9 dB-Hz na zaprojektowanym przejściu; największy Doppler X1 31,4 kHz |
leo-pass-iridium |
iridium-stl, przejście 65°, użytkownik w powietrzu |
szczyt STL 80,5 dB-Hz, 34,3 dB powyżej mediany GPS L1; największy Doppler 35,4 kHz |
leo-indoor-uhf |
generic-leo, użytkownik wewnątrz budynku w Rzymie (budynek tradycyjny) |
szczyt UHF 34,1, L 24,2, S 16,5, C 8,5 dB-Hz; mediana Galileo E1 22,4 dB-Hz |
leo-iot-energy |
generic-leo UHF i L z sekcją [iot] |
szybki start 0,90 s i 18,0 mJ dla każdego sygnału; zimny start 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, cztery pasma, przejście 70° nad Tromsø |
zob. Sondowanie jonosfery |
leo-resilience-spoof-doppler |
16 satelitów ogólnej warstwy 1080 km, L i C, skok 30 m | zob. Monitory spoofingu |
kshana scenarios/<name>.toml --animate html --export all zapisuje też interaktywny odtwarzacz (.animation.html, epoki przejścia) oraz pliki efemeryd CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON i STK (Systems Tool Kit) z geometrią przejścia (ANIMATION.md, INTEROP.md).
Sondowanie jonosfery#
Każda para pasm daje też ukośne TEC odzyskane z kombinacji kodowej wolnej od geometrii w szczycie przejścia, STEC = (P₂ − P₁)·f₁²f₂² / (40.3·(f₁² − f₂²)), oraz 1-sigma tego oszacowania z szumu kodu obu pasm w szczycie (geometry_free_stec_tecu, geometry_free_stec_sigma_tecu). Oszacowanie jest równe ukośnemu TEC modelu z konstrukcji: kombinacja jest dokładna w pierwszym rzędzie. Sigma decyduje o tym, czy plan pasm jest lepszym, czy gorszym sondą: scenarios/leo-focus-science-iono-sounding.toml (cztery pasma nad Tromsø) odzyskuje 18,85 jednostek TEC z każdej pary, z 1-sigma równą 0,017 jednostki TEC dla UHF z L i 2,9 dla S z C. Tylko termiczny szum kodu; bez wielodrogowości i bez błędu międzyczęstotliwościowego. MODELLED.
Monitory spoofingu ([spoofer])#
Opcjonalna sekcja [spoofer] podrabia sygnały, które odbiornik widziałby w deklarowanym położeniu. Od onset_s deklarowane położenie skacze o offset_m, a następnie przesuwa się poziomo z prędkością push_rate_m_s w kierunku push_azimuth_deg; podrobiona odległość i prędkość zmiany odległości są dokładnie takie jak dla deklarowanego położenia, w pasmach LEO wymienionych w bands (domyślnie wszystkie) oraz w sygnale GNSS na MEO, chyba że gnss = false. simulate_iono określa, czy podrobione pseudoodległości niosą opóźnienie jonosferyczne (nadajnik naziemny go nie wnosi).
Odbiornik uruchamia dwa monitory (src/leo_link/spoof.rs), każdy przy podanym prawdopodobieństwie fałszywego alarmu na epokę (p_fa, domyślnie 1e-5) i ogłasza detekcję w pierwszej epoce, w której jego prawdopodobieństwo detekcji osiąga 1 − p_md (domyślnie 0,999). Prawdopodobieństwa detekcji są dokładne dla podanego szumu gaussowskiego, wyznaczone na wolnej od szumu średniej reszcie; żaden szum nie jest losowany.
| Monitor | Statystyka | Co widzi |
|---|---|---|
| Spójność Dopplera i geometrii przejścia | zmierzone prędkości zmiany odległości wobec przewidzianych z orbit oraz niezależnej wcześniejszej pozycji i prędkości (prior_sigma_m, prior_velocity_sigma_m_s); uogólniony chi-kwadrat metody najmniejszych kwadratów w oknie window_s (domyślnie jeden krok), z dryfem zegara jako parametrem zakłócającym (lub podanym przez drift_sigma_m_s); szum pętli synchronizacji częstotliwości z C/N0 (Kaplan & Hegarty 2006, § 5.6.2), dla kanałów GNSS, kanałów LEO i wszystkich kanałów |
błąd pozycji δx zmienia prędkość zmiany odległości o g·δx, g = −(Δv − ρ̇u)/ρ: prędkość poprzeczna satelity LEO podzielona przez jego odległość jest około 25 razy większa niż satelity MEO, więc ten sam błąd jest około 25 razy większy w Dopplerze LEO |
| Spójność między pasmami | krok od epoki do epoki kombinacji pseudoodległości wolnej od geometrii dla każdej pary pasm LEO, po usunięciu modelu jonosfery odbiornika, wobec szumu kodu √(2(σ₁² + σ₂²)) i tolerowanego niemodelowanego tempa zmian jonosfery (iono_rate_bound_m_s) |
spoofer, który podrabia niektóre pasma, a inne nie, albo każde pasmo bez jonosfery, w chwili rozpoczęcia; nie taki, który podrabia każde pasmo i symuluje jonosferę |
scenarios/leo-resilience-spoof-doppler.toml: skok o 30 m w zinwentaryzowanym miejscu we Frankfurcie zmienia prędkości zmiany odległości GNSS o około 4 mm/s, a LEO o około 10 cm/s (mediany gradientów 1.4e-4 i 3.5e-3 na sekundę). Test tylko GNSS nigdy go nie wykrywa (największa niecentralność 0,06); test na wszystkich kanałach wykrywa go 105 s po rozpoczęciu. scenarios/leo-resilience-spoof-monitors.toml uruchamia czterech spooferów wobec obu monitorów.
Ograniczenia, podawane w każdym wyniku: spoofer to wyidealizowane, wewnętrznie spójne przesunięcie pozycji, które kompensuje własną drogę (bez sygnatury mocy, kąta przybycia ani piku korelacji); wcześniejsza pozycja jest niezależna od sfałszowanych rozwiązań; model jonosfery odbiornika jest modelem silnika, więc autentyczna reszta między pasmami ma średnią zero. MODELLED (dwa wiersze w VERIFICATION-MATRIX.md).
Walidacja#
| Wyrocznia | Test | Wynik |
|---|---|---|
| ITU-R P.838-3 tabela 5, 115 częstotliwości | p838_coefficients_reproduce_table5_to_its_printed_digits |
każdy współczynnik w granicach 0,6 ostatniej wydrukowanej cyfry (najgorszy zaobserwowany 0,51) |
| przykłady walidacyjne ITU-R Study Group 3 (CG-3M3J-13-ValEx-Rev8.3.0), deszcz wg P.618-14 | p618_rain_attenuation_matches_the_itu_validation_examples |
56 przypadków w granicach 1e-4 dB (zaobserwowano 5e-6 dB) |
| Te same przykłady, scyntylacja wg P.618-14 | p618_scintillation_matches_the_itu_validation_examples |
42 przypadków w granicach 1e-5 dB |
| skoroszyt ITU-R Study Group 3 Clutter and BEL, P.2109 | p2109_building_entry_loss_matches_the_itu_workbook |
568 wartości w granicach 0,001 dB |
stosunek opóźnień grupowych z IS-GPS-200 γ = (77/60)² |
first_order_iono_reproduces_the_is_gps_200_group_delay_ratio |
z dokładnością 1e-12; wzmocnienie L1/L2 i L1/L5 2,978 i 2,588 |
| postać Friisa kilometr–megaherc | free_space_loss_is_the_friis_kilometre_megahertz_form |
z dokładnością 1e-4 dB |
| arXiv 2509,19551 tabela 1 (Pulsar weryfikacja w locie (IOV), pełna zdolność operacyjna (FOC) polarna, FOC pochylona, GPS) | doppler_envelope_reproduces_the_pulsar_paper_table_1 |
20 prędkości i maksimów Dopplera w granicach 0,05 % |
Wyrocznie dla deszczu i scyntylacji przyjmują wysokość deszczu i wilgotną refrakcyjność takie, jakie podają przykłady walidacyjne: silnik nie zawiera ani mapy ITU-R P.839, ani P.453.
Ograniczenia#
- EIRP i charakterystyki to opublikowane moce odbierane przeliczone na EIRP albo wybory reprezentatywne; nie używa się zmierzonej charakterystyki żadnego satelity i żadne C/N0 dla LEO nie jest porównywane z pomiarem.
- Człon gazowy to zastąpiona uproszczona metoda P.676-10; poniżej 1 GHz jest to wartość dla 1 GHz przeskalowana przez f², a deszcz przyjmuje się tam jako zero.
- Ułamek TEC poniżej satelity LEO pochodzi z pojedynczej warstwy Chapmana (bez plazmosfery) i można go zastąpić podanym ułamkiem.
- Orbity zaprojektowanego przejścia i Walkera to orbity dwóch ciał z opcjonalnym wiekowym J2 (drugą harmoniczną zonalną Ziemi); ścieżka TLE używa SGP4. Własne przyspieszenie użytkownika jest pominięte w postaci zamkniętej tempa zmiany Dopplera (kontrola numeryczna podaje, ile to kosztuje dla poruszającego się użytkownika).
- RINEX (Receiver Independent Exchange Format) 4,02 nie ma rekordów nawigacyjnych LEO; każdy eksport LEO w stylu RINEX należy do kodu komunikatu nawigacyjnego i jest udokumentowanym rozszerzeniem Kshana (wcześniejsze prace: arXiv 2401,17767).