Passagem LEO e orçamento de ligação (leo-pass)
LEO-PNT é posicionamento, navegação e temporização (PNT) a partir de satélites em órbita terrestre baixa (LEO). O tipo leo-pass simula uma ou mais passagens de satélites LEO sobre um utilizador e calcula o orçamento de ligação banda a banda, ao lado dos satélites GNSS (sistema global de navegação por satélite) de órbita terrestre média (MEO) à vista. O motor é independente do sistema: qualquer constelação, qualquer projeto de sinal e qualquer banda, escritos diretamente num cenário. Os sistemas com nome são predefinições opcionais, cada uma no seu próprio ficheiro com a respetiva fonte.
- Código:
src/leo_pass.rs(o tipo) esrc/leo_link/(blocos de construção públicos que outros módulos podem chamar). - Cenários:
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-soundinge o opcionalleo-pass-celeste-iod-multiband(resultados em Cenários incluídos). O tipo é também membro das campanhasleo-resilience-spoof-monitors,leo-focus-iot-eirp,leo-focus-indoor-uhfe de todos os cenáriosleo-vertical-*, e a fase de passagem do tipoleo-pnt-chain. - Panorâmica de todos os tipos e cenários LEO-PNT: LEO-PNT.md.
- Referências independentes:
tests/leo_link_reference.rs, ficheiros de teste emtests/fixtures/leo_link/com os seus URL de origem.
O que uma execução calcula#
Para cada satélite LEO, banda e época:
| Termo | Modelo | Etiqueta |
|---|---|---|
| Elevação, azimute, distância | utilizador em WGS-84 (World Geodetic System 1984), satélite num referencial inercial alinhado com o referencial fixo à Terra na época | calculado |
Taxa de variação da distância ρ̇ = d·Δv/ρ, aceleração da distância ρ̈ = (|Δv|² − ρ̇² + d·Δa)/ρ |
forma fechada; cada execução verifica ambas face a diferenças centrais da distância propagada e indica a maior diferença | forma fechada |
Doppler −f·ρ̇/c, taxa de Doppler −f·ρ̈/c |
primeira ordem, por banda | forma fechada |
| Perda de percurso em espaço livre | Friis, 20·log10(4πRf/c) |
VALIDATED |
| EIRP do satélite (potência isotrópica radiada equivalente) e diagrama | isofluxo até uma elevação de bordo, lobo principal gaussiano −12(η/θ₃)² dB, ou plano |
MODELLED |
| Antena do utilizador | patch G_z + 10·q·log10(sin el) dBic, hemisférica ou isotrópica |
MODELLED |
| Atenuação gasosa | expressões simplificadas do Anexo 2 da ITU-R (União Internacional das Telecomunicações, Setor de Radiocomunicações) P.676-10 (substituída pela P.676-13, cujos coeficientes tabelados o motor não inclui) | MODELLED |
| Atenuação pela chuva | coeficientes da ITU-R P.838-3 e o procedimento da P.618-14 § 2.2.1.1, a partir de uma intensidade de chuva R0.01 e de uma altura de chuva | VALIDATED |
| Cintilação troposférica | ITU-R P.618-14 § 2.4.1; abaixo de 4 GHz uma extrapolação, assinalada no relatório | VALIDATED (4–55 GHz) |
| Perda de penetração em edifícios (utilizador em interior) | ITU-R P.2109-2, tradicional ou termicamente eficiente, à elevação do percurso na fachada | VALIDATED |
| Desadaptação de polarização | fator de perda de polarização a partir das razões axiais e dos sentidos, média sobre a orientação da elipse | forma fechada |
| Temperatura de ruído do sistema | piso da antena + emissão do céu do percurso absorvente (275 K) + cósmica 2,7 K + recetor 290(10^(NF/10) − 1) |
MODELLED |
| C/N0 (densidade de portadora para ruído) | EIRP + G_sat − L_fs − L_gas − L_rain − L_scint − L_BEL − L_pol + G_user − 10·log10(kT) − L_impl |
MODELLED |
| Atraso de grupo ionosférico | 40.3·STEC/f², STEC (conteúdo eletrónico total oblíquo) do modelo de Klobuchar ou de um conteúdo eletrónico total (TEC) vertical, escalado pela fração de uma camada de Chapman abaixo do satélite |
escalamento VALIDATED, TEC MODELLED |
Por par de bandas: os coeficientes livres de ionosfera, a amplificação de ruído √(a₁² + a₂²) e o ruído térmico de código de cada banda e da combinação no pico da passagem. A comparação com os GNSS MEO usa a mesma antena de utilizador e o mesmo recetor, com a potência mínima recebida de cada sinal segundo o documento de interface (Galileo Open Service Signal-in-Space Interface Control Document, OS SIS ICD, Edição 2,1 Tabela 12; GPS a partir de IS-GPS-200 e IS-GPS-705), mais um excesso indicado, escalada pela distância. A secção opcional [iot] (Internet das Coisas) dá o tempo até à primeira solução, a energia por solução e a duração da bateria em função do ciclo de funcionamento para um orçamento de potência do recetor indicado (MODELLED, cada pressuposto é um dado de entrada e está listado no relatório).
Satélites#
orbit = "pass"(predefinição): uma órbita circular colocada de modo que o utilizador veja uma passagem com uma elevação máxima escolhida a uma hora escolhida, ascendente ou descendente, a este ou a oeste do utilizador; a inclinação pode ser heliossíncrona.orbit = "elements": elementos keplerianos explícitos.orbit = "tle": um conjunto de elementos de duas linhas (TLE) através do propagador Simplified General Perturbations 4 (SGP4) do motor.[[leo_constellation]]: uma constelação Walker construída pelo códigoconstellation-design(o seuConstellationCfg, ou as camadas da predefinição); são indicadas as passagens mais altas na janela.
Bandas e projetos de sinal#
Bandas: system = "<preset>" com um subconjunto opcional bands, e entradas [[satellite.band]] que acrescentam uma banda ou substituem qualquer campo de uma banda de predefinição. system = "none" só com entradas [[satellite.band]] não usa nenhuma predefinição.
Uma banda também pode indicar um projeto leo-signal (signal = "xona-x5", qualquer projeto em data/leo-signals/, ou um que o tipo leo-pnt-chain entregue; ver LEO-SIGNAL.md). A banda adota então a frequência central do projeto (salvo se frequency_mhz for indicado), a largura de banda de transmissão e a taxa de chips do componente seguido, reparte a sua EIRP pelos componentes do projeto segundo as suas quotas de potência e indica em cada época o C/N0 do componente seguido e a sua oscilação de seguimento de código adiantado-atrasado limitada em banda (Betz e Kolodziejski 2009, a fórmula do tipo leo-signal) como erro de medição de distância.
Predefinições#
Cada predefinição marca os seus números como PUBLIC (com URL), REPRESENTATIVE (uma escolha de projeto documentada, nunca uma afirmação sobre um sistema real) ou WORKSHOP.
| Predefinição | Fonte | Bandas | Órbita |
|---|---|---|---|
generic-leo (predefinição) |
REPRESENTATIVE; portadoras L, S e C de documentos públicos | UHF 450 MHz (representativo), L 1191,795 MHz (centro do Galileo E5), S 2492,028 MHz (NavIC S, a portadora de banda S da Navigation with Indian Constellation), C 5020 MHz (centro da atribuição RNSS (serviço de satélite de radionavegação) de 5010–5030 MHz), cada uma 0 dBW | 550 km heliossíncrona, Walker 240/12/1 |
generic-c-band |
REPRESENTATIVE, para sistemas de banda C cujos parâmetros não são públicos (por exemplo, TrustPoint) | C 5020 MHz, BPSK(10) (modulação por desvio de fase binária a 10 × 1,023 Mchip/s), isofluxo | 550 km, 53° |
xona-pulsar |
PUBLIC, arXiv 2509,19551 Tabelas 1–2 | X1 1593,3225 MHz, X5 1190,51625 MHz; EIRP a partir da potência mínima recebida publicada a 10° | 1080 km, 53° (192) e 97° (66) |
iridium-stl |
PUBLIC, Resilient Navigation and Timing Foundation (RNTF) e a órbita publicada | Satellite Time and Location (STL) a 1621 MHz (meio de 1616–1626 MHz); EIRP a partir de "300 vezes o GPS" | 781 km, 86,4°, 66 em 6 planos |
starlink-soop |
valores de sinal PUBLIC (NAVIGATION 72(1)), órbita e EIRP REPRESENTATIVE | baliza Ku de 240 MHz, apenas Doppler | 550 km, 53° |
centispace |
estrutura de sinal PUBLIC (PMC10301026), órbita e EIRP REPRESENTATIVE | BPSK 2,046 Mchip/s perto de L1 e L5 | 1000 km, 55° |
celeste-iod (opcional) |
parâmetros de sinal WORKSHOP, órbita PUBLIC | sete bandas da configuração #1 | 510 km heliossíncrona |
A predefinição Celeste IOD (demonstração em órbita) é opcional. Os seus parâmetros de sinal foram apresentados no workshop LEO-PNT do Navigation Innovation and Support Programme (NAVISP) da Agência Espacial Europeia (ESA), 2026, e ainda não têm fonte pública; encontram-se no módulo link de src/celeste_iod.rs, usado por scenarios/leo-pass-celeste-iod-multiband.toml. Como a predefinição é retida: todos os números do motor derivados do workshop encontram-se num único ficheiro, src/celeste_iod.rs, que build.rs só compila quando ele existe, e nos cenários exclusivos do repositório scenarios/*celeste-iod*.toml. Eliminar esse ficheiro e esses cenários retém a predefinição sem qualquer edição de código; todos os outros testes, referências independentes e cenários funcionam sem ela, e a contagem de ficheiros de cenário do README continua a contar os ficheiros retidos. A sua EIRP e o seu feixe estão calibrados para um traço de C/N0 mostrado no workshop, pelo que esse cenário reproduz o traço por construção.
O modelo de efemérides difundidas de polinómio de "relógio zero" do ATOMIC é uma predefinição de mensagem de navegação e não faz parte deste tipo.
A observação LEO face ao GNSS#
scenarios/leo-pass-vs-gnss-cn0.toml reproduz qualitativamente o que as demonstrações LEO-PNT mostram: o C/N0 LEO sobe e desce numa curva em sino que se mantém acima da máscara durante 590 s e atinge o pico de 56,8 dB-Hz, 8,9 dB acima da mediana das portadoras GNSS MEO planas (Galileo E1, de 40,5 a 52,0 dB-Hz, mediana 47,8 dB-Hz). A margem vem da distância, não de um transmissor mais forte: no pico da passagem o satélite está a 569 km, cerca de 40 vezes mais perto do que um satélite Galileo no zénite (23 222 km), o que corresponde a 32 dB menos de perda em espaço livre; a predefinição genérica irradia 0 dBW (1 W).
Cenários incluídos#
Cada linha é uma execução de kshana scenarios/<name>.toml (motor 0.40.0):
| Cenário | Configuração | Resultado de uma execução |
|---|---|---|
leo-pass-vs-gnss-cn0 |
generic-leo banda L, 550 km, passagem de 80° sobre Munique |
L pico 56,8 dB-Hz, mediana 42,2 dB-Hz; Galileo E1 mediana 47,8 dB-Hz |
leo-pass-xona-pulsar |
xona-pulsar, uma passagem projetada de 70° e quatro satélites de camada inclinada, utilizador marítimo |
X1 pico 65,6 dB-Hz e X5 68,9 dB-Hz na passagem projetada; maior Doppler X1 31,4 kHz |
leo-pass-iridium |
iridium-stl, passagem de 65°, utilizador aerotransportado |
STL pico 80,5 dB-Hz, 34,3 dB acima da mediana do GPS L1; maior Doppler 35,4 kHz |
leo-indoor-uhf |
generic-leo, utilizador em interior em Roma (edifício tradicional) |
pico UHF 34,1, L 24,2, S 16,5, C 8,5 dB-Hz; Galileo E1 mediana 22,4 dB-Hz |
leo-iot-energy |
generic-leo UHF e L com a secção [iot] |
solução a quente 0,90 s e 18,0 mJ em todos os sinais; solução a frio 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, quatro bandas, passagem de 70° sobre Tromsø |
ver Sondagem da ionosfera |
leo-resilience-spoof-doppler |
16 satélites de uma camada genérica a 1080 km, L e C, um salto de 30 m | ver Monitores de spoofing |
kshana scenarios/<name>.toml --animate html --export all escreve também o leitor interativo (.animation.html, as épocas da passagem) e ficheiros CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON e de efemérides STK (Systems Tool Kit) da geometria da passagem (ANIMATION.md, INTEROP.md).
Sondagem da ionosfera#
Cada par de bandas dá também o TEC oblíquo que a sua combinação de códigos livre de geometria recupera no pico da passagem, STEC = (P₂ − P₁)·f₁²f₂² / (40.3·(f₁² − f₂²)), e o 1-sigma dessa estimativa a partir do ruído de código das duas bandas no pico (geometry_free_stec_tecu, geometry_free_stec_sigma_tecu). A estimativa é igual ao TEC oblíquo do modelo por construção: a combinação é exata à primeira ordem. O sigma é o que torna um plano de bandas um sondador melhor ou pior: scenarios/leo-focus-science-iono-sounding.toml (quatro bandas sobre Tromsø) recupera 18,85 unidades de TEC a partir de cada par, com um 1-sigma de 0,017 unidades de TEC para UHF com L e 2,9 para S com C. Apenas ruído térmico de código; sem multipercurso nem enviesamento entre frequências. MODELLED.
Monitores de spoofing ([spoofer])#
A secção opcional [spoofer] contrafaz os sinais que um recetor veria numa posição alegada. A partir de onset_s a posição alegada salta offset_m e depois move-se horizontalmente a push_rate_m_s na direção de push_azimuth_deg; a distância e a taxa de variação da distância contrafeitas são exatamente as da posição alegada, nas bandas LEO indicadas em bands (predefinição: todas) e no sinal GNSS MEO, salvo se gnss = false. simulate_iono indica se as pseudodistâncias contrafeitas transportam o atraso ionosférico (as de um transmissor em terra não o transportam).
O recetor executa dois monitores (src/leo_link/spoof.rs), cada um com uma probabilidade de falso alarme indicada por época (p_fa, predefinição 1e-5), e declara deteção na primeira época em que a sua probabilidade de deteção atinge 1 − p_md (predefinição 0,999). As probabilidades de deteção são exatas para o ruído gaussiano indicado, calculadas sobre o resíduo médio sem ruído; nenhum ruído é sorteado.
| Monitor | Estatística | O que vê |
|---|---|---|
| Doppler e coerência da geometria da passagem | taxas de variação da distância medidas face às previstas a partir das órbitas e de uma posição e velocidade a priori independentes (prior_sigma_m, prior_velocity_sigma_m_s); um qui-quadrado de mínimos quadrados generalizados sobre uma janela de window_s (predefinição: um passo), com a deriva do relógio como parâmetro de perturbação (ou dada drift_sigma_m_s); ruído do ciclo de bloqueio de frequência a partir do C/N0 (Kaplan & Hegarty 2006, § 5.6.2), nos canais GNSS, nos canais LEO e em todos os canais |
um erro de posição δx desloca a taxa de variação da distância de g·δx, g = −(Δv − ρ̇u)/ρ: a velocidade transversal de um satélite LEO sobre a sua distância é cerca de 25 vezes a de um satélite MEO, pelo que o mesmo erro é cerca de 25 vezes maior no Doppler LEO |
| Coerência entre bandas | o passo de época para época da combinação de pseudodistâncias livre de geometria de cada par de bandas LEO, com o modelo ionosférico do recetor removido, face ao ruído de código √(2(σ₁² + σ₂²)) e a uma taxa ionosférica não modelada tolerada (iono_rate_bound_m_s) |
um spoofer que contrafaz algumas bandas e não outras, ou todas as bandas sem a ionosfera, no seu início; não um que contrafaça todas as bandas e simule a ionosfera |
scenarios/leo-resilience-spoof-doppler.toml: um salto de 30 m num local levantado em Frankfurt altera as taxas de variação da distância GNSS em cerca de 4 mm/s e as LEO em cerca de 10 cm/s (gradientes medianos de 1.4e-4 e 3.5e-3 por segundo). O teste só com GNSS nunca o deteta (maior não centralidade 0,06); o teste em todos os canais deteta-o 105 s após o início. scenarios/leo-resilience-spoof-monitors.toml executa quatro spoofers contra ambos os monitores.
Limitações, indicadas em cada resultado: o spoofer é um empurrão de posição idealizado e autoconsistente que compensa o seu próprio percurso (sem assinatura de potência, ângulo de chegada ou pico de correlação); o a priori é independente das soluções de posição enganadas; o modelo ionosférico do recetor é o do motor, pelo que o resíduo autêntico entre bandas é nulo em média. MODELLED (duas linhas em VERIFICATION-MATRIX.md).
Validação#
| Referência independente | Teste | Resultado |
|---|---|---|
| ITU-R P.838-3 Tabela 5, 115 frequências | p838_coefficients_reproduce_table5_to_its_printed_digits |
cada coeficiente a menos de 0,6 do seu último dígito impresso (pior observado 0,51) |
| exemplos de validação da Comissão de Estudos 3 da ITU-R (CG-3M3J-13-ValEx-Rev8.3.0), chuva P.618-14 | p618_rain_attenuation_matches_the_itu_validation_examples |
56 casos a menos de 1e-4 dB (observado 5e-6 dB) |
| Mesmos exemplos, cintilação P.618-14 | p618_scintillation_matches_the_itu_validation_examples |
42 casos a menos de 1e-5 dB |
| folha de cálculo Clutter and BEL da Comissão de Estudos 3 da ITU-R, P.2109 | p2109_building_entry_loss_matches_the_itu_workbook |
568 valores a menos de 0,001 dB |
razão de atraso de grupo do IS-GPS-200 γ = (77/60)² |
first_order_iono_reproduces_the_is_gps_200_group_delay_ratio |
a 1e-12; amplificação L1/L2 e L1/L5 de 2,978 e 2,588 |
| forma de Friis em quilómetros–megahertz | free_space_loss_is_the_friis_kilometre_megahertz_form |
a 1e-4 dB |
| arXiv 2509,19551 Tabela 1 (Pulsar em validação em órbita (IOV), capacidade operacional plena (FOC) polar, FOC inclinada, GPS) | doppler_envelope_reproduces_the_pulsar_paper_table_1 |
20 velocidades e máximos de Doppler a menos de 0,05 % |
As referências independentes de chuva e de cintilação tomam a altura da chuva e a refratividade húmida tal como os exemplos de validação as indicam: o motor não inclui nem o mapa da ITU-R P.839 nem o da P.453.
Limitações#
- As EIRP e os diagramas são potências recebidas publicadas convertidas numa EIRP, ou escolhas representativas; não é usado o diagrama medido de nenhum satélite e nenhum C/N0 LEO é comparado com uma medição.
- O termo gasoso é o método simplificado superado P.676-10; abaixo de 1 GHz é o valor de 1 GHz escalado por f², e a chuva é tomada como nula aí.
- A fração de TEC abaixo de um satélite LEO provém de uma única camada de Chapman (sem plasmasfera), substituível por uma fração indicada.
- As órbitas da passagem projetada e de Walker são de dois corpos com um J2 secular opcional (o segundo harmónico zonal da Terra); o percurso TLE usa o SGP4. A aceleração do próprio utilizador é deixada de fora da taxa de Doppler em forma fechada (a verificação numérica indica o que isso custa para um utilizador em movimento).
- O RINEX (Receiver Independent Exchange Format) 4,02 não tem registos de navegação LEO; qualquer exportação LEO em estilo RINEX pertence ao código da mensagem de navegação e é uma extensão documentada do Kshana (trabalho anterior: arXiv 2401,17767).