Référence des scénarios
Chaque fichier de scénario fourni (193), regroupé par type. La description est le commentaire d'en-tête propre au fichier ; les paramètres clés sont ses réglages de premier niveau. Le statut lit la matrice de vérification pour le module du type. Ouvrir dans Kshana Studio ouvre l'exécution enregistrée.
acm-link#
Un satellite au-dessus d'une station : la distance oblique, l'élévation et le Es/N0 de chaque passage le long du passage, le MODCOD DVB-S2 choisi à chaque pas (seuils du Tableau 13 de l'ETSI EN 302 307-1 plus une marge d'implémentation) et le volume de données que l'ACM transfère par rapport à la référence de base à codage constant qui boucle au masque. MODELLED.
acm-link.toml
Codage et modulation adaptatifs (ACM) DVB-S2 le long des passages d'un satellite au-dessus d'une station. Le long d'un passage, la distance oblique et l'élévation changent, de sorte que l'Es/N0 de la liaison descendante change. L'exécution choisit, à chaque pas, le MODCOD le plus efficace dont le seuil de l'ETSI EN 302 307-1 Tableau 13 plus une marge d'implémentation est franchi par la liaison. Elle rapporte la plage d'Es/N0 de chaque passage et le volume de données que l'ACM transfère, par rapport à la référence de base à codage constant qui se referme à l'élévation du masque et à la plus grande distance.
kind = "acm-link"
epoch = [2024.0, 1.0, 1.0, 0.0, 0.0, 0.0]
duration_hours = 12.0
step_s = 30.0
refraction = true
light_time = true
frequency_ghz = 8.2
eirp_dbw = 7.0aocs#
Contrôle d'attitude d'un engin spatial : une manœuvre de pointage inertiel d'un corps rigide avec trois roues de réaction équilibrées ou plus sous rétroaction MRP (L = -K sigma - P omega), couples de roue de norme minimale écrêtés à la limite de chaque moteur, RK4 avec maintien d'ordre zéro ; éventuellement bouclé sur un EKF multiplicatif à partir d'un gyroscope simulé (marche aléatoire d'angle et de vitesse) et d'un viseur d'étoiles. Rapporte le temps d'établissement, l'erreur de pointage finale et de crête, la vitesse et le couple de roue de crête, la fraction saturée, la dérive du moment cinétique et, avec l'estimateur, son erreur d'attitude et son NEES. La boucle d'état vrai est VALIDATED par rapport à Basilisk 2.9.1 ; l'estimateur est MODELLED.
aocs-slew.toml
Manœuvre d'attitude par roues à réaction sous rétroaction MRP, bouclée sur l'état vrai.
kind = "aocs"
duration_s = 600.0
dt_s = 0.1
sample_s = 1.0
k_nm = 3.5
p_nms = 30.0
pointing_threshold_deg = 0.1
axis = [0.5773502, 0.5773502, 0.5773504]aocs-slew-mekf.toml
Manœuvre d'attitude par roues à réaction sous rétroaction MRP, bouclée sur une estimation MEKF.
kind = "aocs"
duration_s = 600.0
dt_s = 0.1
sample_s = 1.0
k_nm = 3.5
p_nms = 30.0
pointing_threshold_deg = 0.1
axis = [0.5773502, 0.5773502, 0.5773504]aperture-duty-cycle#
Rapport cyclique d'ouverture : le partage du temps entre navigation et communications qu'implique un plan de contacts pour un ensemble d'ouvertures orientables. Prend un plan de contacts (une liste de fenêtres [[contacts]] aos_s/los_s, chacune demandant la navigation ou les communications — le même vocabulaire aos_s/los_s qu'émet le prédicteur passes), un nombre d'ouvertures, et une POLITIQUE D'ARBITRAGE (priorité à la navigation par défaut, ou priorité aux communications, ou premier arrivé premier servi sans préemption), et rapporte le rapport cyclique de navigation, le rapport cyclique de communications, le rapport cyclique d'inactivité, et l'indisponibilité par session — le temps de contact qu'une session a demandé et qu'aucune ouverture n'a servi. Un balayage d'intervalles exact sur les bornes des fenêtres, de sorte que des fenêtres contiguës n'entrent jamais en conflit et qu'aucune seconde d'ouverture n'est comptée deux fois ; les secondes d'ouverture de navigation, de communications et d'inactivité sont cumulées indépendamment et se referment sur apertures*horizon_s. Le rapport énonce la politique résolue, sa définition complète, et les définitions du rapport cyclique et de l'indisponibilité, car un rapport cyclique cité sans sa politique d'arbitrage n'est pas reproductible. Arithmétique d'ordonnancement MODELLED : aucun temps d'orientation / de réaccord / de changement n'est imputé lorsqu'une ouverture change de service ou de session, aucun volume de données, état de tampon, budget énergétique ni fermeture de liaison n'entre dans la décision, et les fenêtres de contact sont des entrées — leur géométrie est ce qui les a produites. Ce n'est pas un produit d'ordonnancement de segment sol.
aperture-duty-cycle.toml
Démonstrateur de rapport cyclique d'ouverture (segment sol et opérations).
kind = "aperture-duty-cycle"
apertures = 2
arbitration = "navigation-priority"
name = "nav-1"
service = "navigation"
aos_s = 0.0
los_s = 600.0
name = "comms-1"araim-reference-check#
Vecteurs de référence de certification ARAIM publiés : les niveaux de protection horizontal et vertical ARAIM du moteur exécutés sur les exemples numériques traités PROPRES au sous-groupe technique ARAIM du WG-C, à la tolérance (TOL_PL = 5e-2 m) que ces documents indiquent eux-mêmes. Deux vecteurs sont enregistrés comme jeux de test, chacun portant son URL de récupération, sa date de récupération, le SHA-256 du fichier source et la page : le Reference Airborne Algorithm Description Document v3.1 (2019) annexe D — autocohérent, et le vecteur d'acceptation — et le rapport du jalon 3 (2016) annexe A section A.IX, la déclaration que citent les bibliographies de recherche. Chaque entrée publiée (la matrice de géométrie à 10 satellites et 2 constellations, les diagonales de variance C_int et C_acc, b_nom, P_sat, P_const et le jeu de constantes LPV-200) et chaque sortie publiée (VPL, HPL, EMT, sigma_v_acc, K_fa_3 et les sigma_3, sigma_ss_3 et b_3 des deux modes de défaut de constellation) est rapportée à côté du nombre propre du moteur et de leur différence absolue. L'équation du niveau de protection n'est PAS résolue de nouveau ici : la liste de modes de la référence est remise au raim::araim_protection_level / araim_integrity_risk existant du moteur, de sorte que la bissection et l'algèbre de la queue gaussienne éprouvées sont celles du moteur ; seuls la géométrie, les sous-solutions, les seuils de détection et la répartition publiée du budget sont construits pour lui. EXTERNALLY CHECKED par rapport au vecteur 2019 : VPL 18,2926 m contre 18,3 m publié, HPL 13,4063 m contre 13,45 m, EMT 7,2997 m contre 7,2998 m, sigma_v_acc 1,3694 m contre 1,3694 m, et les six intermédiaires publiés à moins d'une demi-unité de leur dernière décimale imprimée. Le vecteur 2016 comporte deux défauts internes que le rapport énonce au lieu de les cacher — une coquille de signe à la ligne 3 de G, et un K_fa_3 évalué à 57 modes de défaut alors que le document indique N_fault_max = 1 (12 modes) — de sorte que ses intermédiaires de géométrie se reproduisent exactement tandis que ses niveaux de protection sont rapportés comme des écarts mesurés et exclus du chiffre d'acceptation ; la tolérance n'est jamais élargie pour les absorber. Chaque champ numérique émis porte une unité et une classe de provenance, et un chiffre transcrit est étiqueté published afin de ne jamais pouvoir être pris pour un chiffre calculé. PORTÉE : seul N_fault_max = 1 (modes de défaut d'un seul satellite et d'une seule constellation) est mis en œuvre, et un cas dont les a priori exigent des sous-ensembles de défauts multi-événements simultanés est REFUSED au lieu d'être tronqué silencieusement ; la détection de défaut, l'exclusion, le contrôle de cohérence du khi-deux et l'étape de réallocation de double comptage de l'algorithme de référence sont hors périmètre. Cela reproduit l'exemple traité d'un algorithme de référence publié — ce n'est ni une certification, ni un artefact de navigabilité, ni une approbation.
araim-reference-check.toml
Les niveaux de protection ARAIM du moteur par rapport aux exemples traités PROPRES au sous-groupe WG-C.
kind = "araim-reference-check"ascent-losses#
Ascension plane en virage gravitationnel d'un véhicule à plusieurs étages au-dessus d'une Terre sphérique sans rotation, à travers l'US Standard Atmosphere 1976 (montée verticale, coup de tangage, poussée selon la vitesse), intégrant les pertes de gravité, de traînée, de pilotage et de contre-pression et vérifiant le dv idéal moins les pertes par rapport à la vitesse de fin de combustion ; max-Q, accélération de crête et état de fin de combustion. MODELLED.
ascent-losses.toml
Pertes à la montée en virage de gravité d'un lanceur bi-étage ILLUSTRATIVE kérosène/oxygène (aucun véhicule réel) : montée verticale jusqu'à 1 km, un coup de tangage de 3 deg pendant 10 s, puis poussée le long de la vitesse. L'exécution intègre les pertes de gravité, de traînée, de pilotage et de contre-pression et vérifie que le dv idéal moins les pertes égale la vitesse de fin de combustion. MODELLED : plan, Terre non tournante, C_D constant, pas de phase balistique, aucun guidage au-delà du coup de tangage.
kind = "ascent-losses"
payload_kg = 10000.0
drag_coefficient = 0.3
kick_altitude_m = 1000.0
kick_angle_deg = 3.0
kick_duration_s = 10.0
step_s = 0.1
dry_mass_kg = 25000.0attitude-budget#
Bilan d'erreur d'attitude et de pointage à 3 DOF : le couple perturbateur de gradient de gravité au pire cas ((3/2)(μ/R³)ΔI) et un bilan d'erreur de pointage en somme quadratique sur des contributeurs nommés à 1σ (bruit de capteur, gigue des roues de réaction, thermique, alignement) avec le terme dominant, pour une altitude d'orbite + un écart d'inertie du corps. Bilan AOCS scalaire MODELLED — un complément avant matériel à Basilisk/42, et non une simulation de boucle de commande / à 6 DoF / de modes flexibles.
attitude-budget.toml
Démonstrateur de budget d'erreur d'attitude et de pointage à 3 DOF (AOCS/GNC avant matériel).
kind = "attitude-budget"
altitude_km = 600.0
name = "star_tracker_noise"
sigma_arcsec = 5.0
name = "reaction_wheel_jitter"
sigma_arcsec = 8.0
name = "thermal_distortion"
sigma_arcsec = 4.0body-pnt#
Positionnement autour de n'importe quel corps du système solaire : un orbiteur ou un atterrisseur de surface autour d'un corps central choisi par son nom (Mars, la Lune, Europe, Ganymède, Titan et le reste du catalogue du système solaire), naviguant avec des pseudodistances à sens unique issues d'une petite constellation de navigation de Walker autour du corps (orbites à deux corps avec la dérive séculaire J2 propre au corps, une horloge utilisateur inconnue) et, facultativement, une mesure de distance aller-retour en espace lointain depuis la Terre, sans horloge, dont la direction et la distance proviennent de l'éphéméride analytique du système solaire à chaque époque. Les lignes de visée sont bloquées par la sphère moyenne du corps, et un utilisateur en surface a aussi besoin du masque d'élévation. Par époque : relais en vue, si la Terre est au-dessus du limbe, le GDOP et le PDOP de la constellation seule (dilution de précision géométrique et de position), l'incertitude formelle de position à un sigma avec et sans la ligne de la Terre, et l'erreur d'une solution des moindres carrés de Gauss-Newton initialisée, dans chaque cas ; sur l'exécution : disponibilité, visibilité de la Terre, PDOP médian, erreur efficace et sigma formel médian, ainsi que le temps de lumière Terre-corps, l'aller-retour, le retard de Shapiro et la séparation par rapport au Soleil à l'époque. MODELLED : les orbites des relais, les niveaux de bruit et le modèle de mesure instantané sont des choix de modélisation, non validés par rapport aux données de navigation d'une mission ; les constantes du corps sont les valeurs publiées citées dans body.rs, et la géométrie de la Terre hérite des étiquettes de l'éphéméride du système solaire.
europa-surface-pnt.toml
Positionner un atterrisseur sur Europe : le cas d'une lune jovienne.
kind = "body-pnt"
body = "Europa"
epoch = "2027-02-19T00:00:00"
duration_s = 306822.0
step_s = 1800.0
seed = 11
kind = "surface"
lat_deg = 20.0mars-orbit-pnt.toml
Positionner un orbiteur martien bas avec une constellation de navigation martienne et une liaison en espace lointain.
kind = "body-pnt"
body = "Mars"
epoch = "2027-02-19T00:00:00"
duration_s = 88775.0
step_s = 300.0
seed = 7
kind = "orbiter"
altitude_km = 300.0campaign#
Campagne : des types de scénario existants composés en une seule exécution, chaque nombre étant lu dans une véritable exécution du type de scénario nommé. Quatre sections, en toute combinaison. PHASES : une mission enchaînée sur une chronologie partagée -- chaque phase exécute un ou plusieurs scénarios (par exemple brouillage, puis leurrage, puis une horloge en holdover avec un système de navigation inertielle en roue libre à ses côtés, puis une alarme d'intégrité, puis la récupération), leurs sorties sont lues dans des canaux nommés (erreur de temps d'horloge par rapport à sa garde, rapport porteuse sur densité de bruit par rapport au plancher de poursuite, niveau de protection par rapport à la limite d'alerte, erreur de position, satellites en poursuite, indicateurs d'alarme) par un préréglage propre au type de scénario ou par des chemins de résultat explicites, et rééchantillonnées sur une grille commune par maintien d'ordre zéro, avec les limites de phase et les événements ; l'état est transmis par carry (un canal se poursuit à partir de la valeur de fin de la phase précédente), handoff (un nombre d'une phase précédente écrit dans le scénario de cette phase) et end_at (une phase se termine à un instant qu'une exécution a calculé, tel que le temps de détection d'un moniteur de leurrage). SWEEP : une grille sur une à trois clés pointées de scénario de n'importe quel type de scénario (un segment entier indexe un tableau de tables, comme dans system.2.sisre_m), avec des métriques lues par chemin de résultat et, avec plus d'une exécution, un ensemble Monte Carlo initialisé à chaque nœud. MONTE_CARLO : la réalisation k s'exécute à base_seed + k ; chaque métrique rapporte la moyenne, l'écart type, les percentiles au rang le plus proche 5e/50e/95e et un intervalle de confiance bootstrap à graine fixe de 95 % sur la moyenne. COMPOSE : plusieurs scénarios sous des valeurs partagées (la puissance et la position d'un brouilleur écrites dans un récepteur maritime et un récepteur routier), avec un résumé combiné meilleur/pire cas. Le résultat porte un hachage de campagne, un condensé sur chaque résultat de membre, et une entrée d'unités pour chaque nombre émis ; les exports d'interopérabilité écrivent chaque scénario membre qui a une géométrie comme son propre jeu de fichiers. Les identités de composition sont testées : une campagne à une seule phase reproduit l'exécution autonome bit pour bit, un ensemble à graine fixe est stable à l'octet près, et sur une horloge à bruit blanc de fréquence la moyenne de l'ensemble tombe à l'intérieur de l'intervalle rapporté avec une dispersion correspondant à sqrt(q_wf * tau). MODELLED : le carry additif et le maintien d'ordre zéro sont des choix de modélisation, et chaque phase porte l'étiquette du type de scénario qui l'a exécutée.
campaign-jam-spoof-holdover-integrity.toml
Une mission enchaînée : nominale, brouillage, leurrage, perte du GNSS avec holdover d'horloge et navigation à l'estime inertielle, alarme d'intégrité et récupération, sur une même chronologie partagée.
kind = "campaign"
title = "Jamming, spoofing, holdover and integrity: a chained mission"
seed = 20260928
step_s = 10.0
name = "nominal"
duration_s = 600.0
seed = 42
threshold_ns = 50.0campaign-monte-carlo-clock-holdover.toml
Un ensemble Monte Carlo à graine à travers une campagne, sur un cas ayant une forme analytique.
kind = "campaign"
title = "Monte Carlo: free-running clock error against its closed form"
seed = 20260928
runs = 200
seed_key = "seed"
metrics = [
seed = 42
threshold_ns = 20.0campaign-optimize-link-budget.toml
Une optimisation à travers une campagne : la liaison en bande X de l'exemple link-budget (55 dBW de PIRE, 53 dB/K de G/T, 3 dB d'autres pertes, 4,5 dB d'Eb/N0 requis), recherchée sur la distance et le débit de données pour le point de fonctionnement qui laisse exactement 3 dB de marge. Chaque évaluation est une exécution link-budget ordinaire. Le simplexe de Nelder-Mead travaille en coordonnées log-normalisées à l'intérieur des bornes indiquées, et chaque évaluation est listée dans le trace du résultat.
kind = "campaign"
title = "Link budget: range and rate for a 3 dB margin"
seed = 20261013
method = "nelder-mead"
max_evals = 300
name = "margin"
path = "margin_db"
goal = "target"campaign-spectrum-holdover-integrity.toml
Une mission enchaînée pilotée par le spectre en bande L : un brouilleur à balayage prend le GPS L1 C/A et Galileo E1, l'horloge passe en holdover, et un ton en onde continue (CW) laissé sur la porteuse L1 maintient C/A hors service pendant que E1 se rétablit, de sorte que le récepteur se rabat sur Galileo et que son moniteur d'intégrité fonctionne sur un ciel Galileo seul.
kind = "campaign"
title = "L-band jamming from the spectrum, clock holdover and a Galileo-only fallback"
seed = 20260928
step_s = 1.0
name = "onset"
duration_s = 60.0
end_at = "timeline.bands[0].first_loss_t_s"
end_at_run = 1campaign-sweep-jammer-power.toml
Un balayage de paramètres à travers une campagne : le récepteur de l'exemple jamming (52 N, 4 E, couche de Walker de 24 satellites de type GPS) sous un brouilleur à large bande à 1 km, avec la puissance d'émission du brouilleur balayée de -50 dBW (10 nW) à +10 dBW (10 W) par pas de 5 dB. Chaque nœud est une exécution jamming ordinaire ; la campagne consigne, par nœud, la fraction d'époques avec au moins quatre satellites encore poursuivis, le rapport brouilleur sur signal moyen (J/S) et le plus petit nombre de satellites poursuivis.
kind = "campaign"
title = "Jammer power sweep: availability and J/S against transmit power"
seed = 20260928
metrics = [
name = "jammer_power"
key = "jammer.power_dbw"
unit = "dBW"
start = -50.0leo-focus-data-services.toml
Axe LEO-PNT : services de données PNT supplémentaires dans le message de navigation.
kind = "campaign"
title = "Navigation-message service data against frame length"
seed = 20260929
name = "fit_interval"
unit = "s"
value = 300.0
label = "ephemeris-clock"
bind = { fit_interval = "message.fit_interval_s" }leo-focus-fused-pnt-sisre.toml
Axe LEO-PNT : PNT fusionné MEO + LEO.
kind = "campaign"
title = "Fused MEO + LEO positioning against the LEO SISRE"
seed = 20260929
metrics = [
name = "leo_sisre"
key = "system.2.sisre_m"
unit = "m"
start = 0.05leo-focus-indoor-uhf.toml
Axe LEO-PNT : navigation en intérieur avec l'UHF.
kind = "campaign"
title = "Indoor LEO-PNT by band and building class"
seed = 20260929
label = "traditional-building"
metrics = [
kind = "leo-pass"
epoch = "2026-09-28T12:00:00"
duration_s = 900.0leo-focus-iot-eirp.toml
Axe LEO-PNT : positionnement basse énergie pour l'Internet des objets (IoT) et le mobile.
kind = "campaign"
title = "IoT energy per fix against LEO UHF transmit power"
seed = 20260929
metrics = [
name = "uhf_eirp"
key = "satellite.0.band.0.eirp_dbw"
unit = "dBW"
start = -35.0leo-focus-ntn-bandwidth.toml
Axe LEO-PNT : compatibilité avec les réseaux non terrestres (NTN) 5G/6G.
kind = "campaign"
title = "NTN positioning against reference-signal bandwidth"
seed = 20260929
metrics = [
name = "bandwidth"
key = "signal.0.bandwidth_hz"
unit = "Hz"
start = 180000.0leo-focus-ppp-altitude.toml
Axe LEO-PNT : positionnement de haute précision (positionnement précis, PPP).
kind = "campaign"
title = "PPP convergence against the altitude of a 192-satellite LEO layer"
seed = 20260929
metrics = [
name = "leo_altitude"
key = "case.0.system.0.shell.0.altitude_km"
unit = "km"
start = 500.0leo-resilience-gnss-jammed-leo-carries.toml
Mission de résilience LEO-PNT : GNSS brouillé, le LEO-PNT porte l'utilisateur, intégrité maintenue.
kind = "campaign"
title = "GNSS jammed, LEO-PNT carries the user, integrity maintained"
seed = 20260929
step_s = 30.0
name = "nominal"
duration_s = 600.0
series = [
kind = "spectrum"leo-resilience-multiband-diversity.toml
Résilience LEO-PNT par diversité de bandes : un brouilleur, un récepteur à quatre bandes.
kind = "campaign"
title = "LEO-PNT band diversity against an L-band barrage jammer"
seed = 20260929
metrics = [
name = "jammer_power"
key = "jammers.0.received_power_dbw"
unit = "dBW"
start = -140.0leo-resilience-spoof-monitors.toml
Résilience LEO-PNT au leurrage : quel moniteur voit quel leurreur.
kind = "campaign"
title = "Spoofing monitors against four spoofers"
seed = 20260929
name = "jump"
unit = "m"
value = 30.0
label = "l-band-only"
bind = { jump = "spoofer.offset_m" }leo-vertical-5g-network-timing.toml
Vertical LEO-PNT : réseaux sans fil, synchronisation temporelle des stations de base 5G/6G.
kind = "campaign"
title = "5G base-station timing: holdover and LEO time"
seed = 20260929
step_s = 300.0
name = "gnss-lost"
duration_s = 86400.0
events = [
kind = "telecom-timing"leo-vertical-asset-tracking-iot.toml
Vertical LEO-PNT : suivi d'actifs et Internet des objets (IoT), énergie par point.
kind = "campaign"
title = "Container tracking with LEO UHF: energy per fix along a journey"
seed = 20260929
step_s = 10.0
name = "port-hamburg"
duration_s = 480.0
series = [
kind = "leo-pass"leo-vertical-autonomous-vehicle.toml
Vertical LEO-PNT : véhicules autonomes, un canyon urbain avec une couche LEO.
kind = "campaign"
title = "Autonomous vehicle in an urban canyon with a LEO layer"
seed = 20260929
step_s = 10.0
name = "open-road"
duration_s = 600.0
series = [
alarms = [{ channel = "position_error_m", compare = "above", threshold = 1.5 }]leo-vertical-autonomous-vehicle-skyline.toml
Vertical LEO-PNT : le canyon urbain des véhicules autonomes, en coupure plate et en rue.
kind = "campaign"
title = "Autonomous vehicle in an urban canyon: a flat cut-off and a city-street skyline"
seed = 20260929
step_s = 10.0
name = "urban-canyon"
duration_s = 900.0
series = [
alarms = [{ channel = "position_error_m", compare = "above", threshold = 1.5 }]leo-vertical-critical-infrastructure-timing.toml
Vertical LEO-PNT : synchronisation temporelle des infrastructures critiques, holdover avec le temps LEO.
kind = "campaign"
title = "Critical infrastructure timing: holdover with LEO time"
seed = 20260929
step_s = 300.0
name = "gnss-locked"
duration_s = 600.0
alarms = []
seed = 42leo-vertical-polar-arctic.toml
Vertical LEO-PNT : utilisateurs polaires et arctiques.
kind = "campaign"
title = "Polar and Arctic users with a polar LEO layer"
seed = 20260929
step_s = 60.0
name = "tromso"
duration_s = 3600.0
series = [
alarms = [{ channel = "position_error_m", compare = "above", threshold = 3.0 }]leo-vertical-rail-maritime.toml
Vertical LEO-PNT : ferroviaire et maritime, les scénarios maritimes et ferroviaires fournis plus LEO.
kind = "campaign"
title = "Railway and maritime with a LEO layer"
seed = 20260929
step_s = 10.0
name = "strait-jammed"
duration_s = 1800.0
kind = "jamming"
seed = 1cislunar-arc-recovery#
Test d'estimateur indépendant MODELLED du seuil d'observabilité de longueur d'arc cislunaire. Ce seuil est une lecture de RANG de la matrice d'observabilité assemblée à partir des lignes ANALYTIQUES du jacobien de distance et de la matrice de transition d'état variationnelle ANALYTIQUE, et son contrôle croisé par filtre d'information en racine carrée replie ces mêmes lignes — un contrôle de cohérence entre deux machines numériques, et non une corroboration. Ce type de scénario fournit l'arbitre manquant : un estimateur par moindres carrés par lot qui RETROUVE réellement l'état initial du chef à partir de mesures simulées, avec les dérivées partielles de mesure prises comme DIFFÉRENCES FINIES CENTRÉES du modèle direct composé. Il n'appelle aucune ligne de jacobien analytique, aucune STM variationnelle, aucune décomposition en valeurs singulières ou en valeurs propres, aucune tolérance de rang et aucun filtre d'information en racine carrée — une garde sur le texte source dans tests/cislunar_arc_recovery_reference.rs le rend vérifiable — tandis que la dynamique (le même flot RK4 du CR3BP), les conditions initiales (la même constellation corrigée différentiellement), l'observable scalaire et la grille d'époques sont partagés délibérément et nommés dans le bloc independence émis, car deux analyses d'un même problème physique doivent s'accorder sur la physique pour être comparables. Deux critères, chacun balayé sur cinq décades de sa propre borne : RÉCUPÉRATION SANS BRUIT (l'erreur d'état finale de chaque essai initialisé au plus égale à recovery_factor fois son déplacement a priori — l'analogue du rang, sans tolérance de valeur singulière) et ESTIMABILITÉ MONTE-CARLO (l'erreur de position efficace mesurée sur un ensemble de bruit initialisé en dessous d'une borne indiquée — l'analogue de l'estimabilité, mesurée plutôt que prédite). Prend en charge le quatre-états plan et le six-états spatial, les familles DRO / halo L2 / NRHO L2, les observables de distance et de vitesse de distance, et une paramétrisation polaire centrée sur la Lune dans laquelle la transformation est appliquée à l'ÉTAT et le modèle direct re-différencié à cet endroit. MEASURED sur la grille DRO plane publiée : l'estimateur retrouve le quatre-états à partir de 0,782609 h contre 2,086957 h pour le critère de rang à rel_tol 1e-6 (rapport 0,375) — le seuil de rang n'est PAS corroboré comme frontière de récupérabilité — tandis que la frontière d'estimabilité mesurée tombe dans la même cellule de grille que la formelle, 5,739130 h, et la courbe d'erreur mesurée reproduit le 1-sigma formel sur 21 longueurs d'arc avec un rapport moyen géométrique de 0,98. MODELLED : la conception de la constellation, la grille d'époques, l'unique liaison suivie, l'amplitude du déplacement, le sigma de mesure et les deux bornes indiquées. Ce n'est pas un produit de performance de navigation certifié.
cislunar-arc-recovery.toml
Test d'estimateur indépendant du seuil d'observabilité de la longueur d'arc cislunaire (R6, article B).
kind = "cislunar-arc-recovery"cislunar-observability#
Observabilité MODELLED d'une constellation cislunaire plane (P6) : suit une constellation plane de quatre engins sur DRO plane corrigée différentiellement avec mesure de distance inter-satellites et rapporte quelle part de l'état à quatre composantes [x,y,ẋ,ẏ] d'un engin l'arc rend observable. Émet (1) le tableau rang-contre-longueur d'arc pour une seule liaison de distance seule — de rang 1 instantanément, croissant vers l'état complet à quatre composantes à mesure que l'arc s'allonge (P6 Tableau 1) ; (2) le spectre propre du Gramien d'observabilité + le nombre de conditionnement sur l'arc ; (3) la comparaison de rang instantané distance seule contre distance + vitesse de distance (le levier de conception Doppler) plus le rapport de GDOP indéfini en distance seule / défini en distance + vitesse ; et (4) une validation croisée indépendante par SRIF dont la covariance a posteriori devient finie / bien conditionnée exactement à l'arc où le rang observable atteint quatre. Cœur VALIDATED : le rang observable est un seuil de valeur singulière révélateur du rang, recoupé avec le rang propre du Gramien ; le spectre propre obéit aux invariants spectraux (trace=Σλ, det=Πλ, Frobenius²=Σλ²) ; la STM variationnelle est la STM du CR3BP validée par différences finies ; les lignes du jacobien de distance / vitesse de distance sont des dérivées partielles analytiques validées par différences finies (recoupées avec l'observable de vitesse de distance 3-D de la crate) ; les quatre conditions initiales sont des DRO planes corrigées différentiellement qui se ferment à un résidu de périodicité serré et sont rétrogrades ; la transition de rang est validée de façon croisée par le filtre d'information en racine carrée de la crate (covariance a posteriori finie exactement au rang plein, cond(P)=cond(OᵀO)) ; un instantané à rang déficient est signalé GDOP indéfini (fim condition=inf), jamais une valeur finie factice — la même garde de géométrie singulière que pvt::solve_spp applique. MODELLED : la conception de la constellation (amplitudes et phases au périlune des DRO) et la progression spécifique du rang qu'elle produit. Ce n'est pas un produit de performance de navigation certifié.
cislunar-observability.toml
Observabilité d'une constellation cislunaire plane sur un arc de poursuite (P6).
kind = "cislunar-observability"clock#
Holdover d'horloge par rapport à la spécification ; ensemble Monte-Carlo facultatif (runs > 1).
clock-ensemble.toml
Ensemble Monte Carlo du scénario de holdover d'horloge.
seed = 42
threshold_ns = 20.0
runs = 200
step_s = 10.0
duration_s = 7200.0
windows = [
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (Origlia/Schiller/Bongs et al., arXiv:1503.08457); q_wf=sigma_y(1s)^2; ground-demonstrator maturity, not flown; flicker floor modeled at sigma_y=1e-16"clock-fitted-log.toml
Un scénario d'horloge dont l'horloge classique reprend le bruit d'un journal mesuré ([clock_fit]).
seed = 42
threshold_ns = 20.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (Origlia/Schiller/Bongs et al., arXiv:1503.08457); q_wf=sigma_y(1s)^2; ground-demonstrator maturity, not flown; flicker/aging not modeled"
q_wf = 1.0e-30Pas encore sur GitHub
clock-holdover.toml
Scénario de référence de Kshana : exécution de 2 h, 10 min de synchronisation GNSS puis ~1,8 h de déni. Bruit blanc de fréquence de l'horloge étalonné sur le sigma_y(1 s) publié : q_wf = sigma_y(1s)^2. Validé par rapport à la déviation d'Allan simulée dans tests/calibration.rs (~2 %).
seed = 42
threshold_ns = 20.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (Origlia/Schiller/Bongs et al., arXiv:1503.08457); q_wf=sigma_y(1s)^2; ground-demonstrator maturity, not flown; flicker/aging not modeled"
q_wf = 1.0e-30clock-holdover-labsr.toml
Variante : horloge optique au strontium de qualité laboratoire contre CSAC. Les horloges Sr de laboratoire atteignent sigma_y(1 s) = 4.8e-17 (Oelker et al. 2019, Nature Photonics).
seed = 42
threshold_ns = 20.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "optical-lab-sr"
provenance = "Laboratory Sr optical lattice clock, sigma_y(1s)=4.8e-17 (Oelker et al. 2019, Nature Photonics); q_wf=sigma_y(1s)^2; laboratory maturity, not flown; flicker/aging not modeled"
q_wf = 2.304e-33clock-measured-log.toml
Un scénario d'horloge avec un journal mesuré à côté du holdover simulé ([clock_log]).
seed = 42
threshold_ns = 20.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (Origlia/Schiller/Bongs et al., arXiv:1503.08457); q_wf=sigma_y(1s)^2; ground-demonstrator maturity, not flown; flicker/aging not modeled"
q_wf = 1.0e-30Pas encore sur GitHub
combined-altpnt#
Navigateur combiné gravité + magnétisme + relief sans GPS : trois canaux de champ scalaire fusionnés à chaque point de passage pour obtenir un recalage de la dérive plus précis (CRLB plus bas) que n'importe quel champ seul.
combined-altpnt.toml
Navigateur combiné gravité + magnétisme + terrain sans GPS — alt-PNT fusionné.
kind = "combined-altpnt"
start_lat_deg = 12.05
start_lon_deg = 20.05
step_lat_deg = 0.004
step_lon_deg = 0.003
waypoints = 60
drift_lat_deg = 0.5
drift_lon_deg = -0.4conflict-resilience#
Résilience MODELLED de PNT en couches face aux conflits (P7) : un utilisateur en environnement contesté dispose de plusieurs couches PNT (GNSS à service ouvert, GNSS à large bande, une constellation authentifiée, un relais d'augmentation), chacune avec une disponibilité de base, une précision à 1σ et une vulnérabilité de refus par vecteur face à la menace commune de brouillage/leurrage. Un Monte-Carlo À GRAINE FIXE, balayé en intensité, refuse chaque couche avec la probabilité clamp(vulnérabilité·intensité·poids_du_vecteur,0 1), fusionne les survivantes par la règle en forme fermée de la variance inverse σ_fused=(Σ 1/σ_i²)^(−1/2), et indique la probabilité de perte totale (toutes les couches refusées), l'erreur fusionnée médiane et des statistiques d'utilisabilité/de refus par couche en fonction de l'intensité. Le rapport de résilience de tête (probabilité de perte totale d'une couche unique par rapport à celle de plusieurs couches) atteint ~7x sous l'hypothèse d'INDÉPENDANCE ; un balayage de refus corrélé par copule gaussienne à un facteur montre ensuite ce ~7x s'effondrer vers 1 à mesure que la corrélation de refus augmente (la corrélation met en échec la mise en couches). Un bloc de sensibilité aux a priori fait varier le chiffre de tête sur les a priori de vulnérabilité SOURCÉS via le diagramme en tornade mcda + une réallocation Dirichlet de l'effort de menace + des intervalles de confiance en percentiles. Cœur VALIDATED : la perte totale Monte-Carlo converge vers le produit indépendant en forme fermée Π_i p_deny_i (dans l'erreur standard Monte-Carlo à graine fixe et N grand) ; la fusion par variance inverse est une identité en forme fermée ; à ρ=0 la copule se réduit au modèle indépendant et chaque ρ préserve le taux de refus marginal de chaque couche. MODELLED : les grandeurs de vulnérabilité/disponibilité/précision par couche sont des entrées sourcées mais modélisées (JammerTest 2024, TEXBAT, EASA SIB, RTCA DO-229, LunaNet/IOAG — voir conflict_threat_params), et l'ordre de grandeur précis de ~7x ainsi que la forme de la courbe rapport-en-fonction-de-la-corrélation découlent de cette paramétrisation. Une ventilation de survie par vecteur au §4,2 résout ensuite la menace RF commune en quatre vecteurs nommés (brouillage/leurrage/cinétique/cyber) et indique pour chaque vecteur sa courbe de dégradation progressive du PNT utilisable S_v(x)=1-Prod_i(1-a_i(1-clamp(susceptibility_i,v·x,0 1))) — VALIDATED : le Monte-Carlo par couche à graine fixe converge vers cette forme fermée ; le brouillage est le vecteur le plus aigu pour la référence de base RF corrélée et la couche inertielle insensible aux RF est le survivant décisif. Ce n'est pas un produit de disponibilité de navigation certifié.
conflict-resilience.toml
Résilience aux conflits d'un PNT en couches (article P7).
kind = "conflict-resilience"
trials = 4000
seed = 20260709
primary_layer = 0
min = 0.0
max = 1.0
steps = 11
values = [0.0, 0.2, 0.4, 0.6, 0.8, 0.95]constellation-design#
Conception de constellations à grande échelle : motifs Walker DELTA et Walker STAR dans la convention i: T/P/F (nœuds répartis sur 360 ou 180 deg, espacement dans le plan 360*P/T, décalage de phase entre plans 360*F/T), listes d'éléments explicites et conceptions multicouches, plusieurs constellations dans une même exécution, autour de la Terre, de la Lune, de Mars ou de toute autre planète, de Pluton ou d'une lune majeure, en utilisant les constantes du module body (les mêmes que celles qu'emploient les types de scénario solar-system et body-pnt). PRÉRÉGLAGES à partir d'éléments nominaux publiés : gps-baseline et gps-expandable (les 24 créneaux et les six paires extensibles avant/arrière du GPS Standard Positioning Service Performance Standard, 5e édition 2020, Tableaux 3.2-1 à 3.2-3), galileo (Walker 24/3/1 à 29 599,801 km et 56 deg, Galileo Open Service Service Definition Document édition 1,1 Tableaux 1 et 23), beidou et beidou-meo (Walker 24/3/1 à 21 528 km et 55 deg plus trois satellites géostationnaires à 80, 110,5 et 140 deg E et trois satellites géosynchrones inclinés à 55 deg, BeiDou Open Service Performance Standard 3,0 section 4,1 ; la phase MEO et le croisement géosynchrone incliné à 118 deg E sont modélisés parce que la norme ne les indique pas) et glonass (24/3/1 à 19 100 km et 64,8 deg d'après la formule de créneau du GLONASS Interface Control Document édition 5,1 section 5,2). COUVERTURE ET DILUTION DE PRÉCISION : sur une grille latitude/longitude et une fenêtre échantillonnée avec un masque d'élévation, le nombre de satellites en vue, GDOP, PDOP, HDOP et VDOP par cellule, la disponibilité (une position avec un PDOP inférieur ou égal à un seuil, 6 par défaut) par cellule, globalement (pondérée par la surface) et au pire site, avec une horloge de récepteur par constellation sauf si clock = "common". Cela passe à l'échelle de milliers de satellites : la visibilité est un produit scalaire par rapport au demi-angle de couverture de chaque satellite, et les satellites sont regroupés en bandes par latitude du point sous-satellite à chaque époque, de sorte qu'une ligne de grille ne teste que ceux qui peuvent être en vue ; le rapport compte les tests de paires économisés. Le JSON porte les cartes de grille et les traces au sol sous-échantillonnées par satellite. VALIDATED : le générateur de Walker par rapport au Tableau 23 du SDD de Galileo OS et à la formule de créneau de l'ICD GLONASS, le préréglage GPS par rapport à la colonne publiée des croisements équatoriaux du Tableau 3.2-1 du SPS PS, et la distribution mondiale de HDOP de la référence GPS par rapport à l'Annexe B du SPS PS (médiane 0,94, 95 % 1,25, moyenne 0,96, tolérance 0,03). MODELLED : orbites à deux corps avec J2 séculaire facultatif, un corps sphérique, visibilité purement géométrique (ni puissance de signal, ni état de santé, ni terrain), et la phase relative entre systèmes différents, qui n'est l'instantané d'aucune date réelle.
constellation-multi-gnss-coverage.toml
Couverture multi-constellation : les quatre systèmes mondiaux de navigation par satellite (GNSS) ensemble, sous forme de carte des satellites en vue, de la dilution de précision (DOP) et de la disponibilité sur toute la Terre pendant une journée.
kind = "constellation-design"
body = "earth"
duration_s = 86164.0
step_s = 900.0
mask_deg = 10.0
pdop_threshold = 6.0
grid_step_deg = 10.0
clock = "per-constellation"leo-pnt-mega-shell.toml
Une méga-constellation de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse : 5 000 satellites sur quatre couches de Walker, évaluée comme une carte de couverture et de dilution de précision (DOP).
kind = "constellation-design"
body = "earth"
duration_s = 7200.0
step_s = 600.0
mask_deg = 20.0
pdop_threshold = 3.0
grid_step_deg = 10.0
clock = "common"lunar-relay-constellation.toml
Une constellation de relais et de navigation lunaire : des satellites sur des orbites lunaires elliptiques gelées (ELFO) plus une couche circulaire en orbite lunaire basse, évaluée comme une carte de couverture et de dilution de précision (DOP) sur toute la Lune pendant une journée.
kind = "constellation-design"
body = "moon"
duration_s = 86400.0
step_s = 1800.0
mask_deg = 10.0
pdop_threshold = 6.0
grid_step_deg = 10.0
clock = "common"contact-schedule#
Planification des contacts sol pour plusieurs satellites au-dessus de plusieurs stations : fenêtres d'accès apparentes (SGP4, référentiel terrestre IAU 2006/2000A, réfraction ITU-R P.834, temps de lumière), volume de données ACM DVB-S2 de chaque passage (seuils du tableau 13 de ETSI EN 302 307-1) et un planning sans conflit (un satellite par antenne avec un temps de retournement, une station par satellite, livraison pondérée par priorité plafonnée à chaque arriéré) obtenu par un algorithme glouton à valeur marginale, une référence de base du premier arrivé et un branch and bound exact sur de petits ensembles, avec l'écart d'optimalité du glouton. MODELLED.
contact-schedule.toml
Planification des contacts sol : trois satellites illustratifs au-dessus de trois stations illustratives pendant 12 heures. L'exécution donne à chaque passage satellite-station sa fenêtre d'accès et le volume de données que le codage et la modulation adaptatifs (ACM) DVB-S2 peuvent y transférer (seuils du Tableau 13 de l'ETSI EN 302 307-1 plus une marge d'implémentation). Elle construit ensuite un plan de contacts sans conflit dans lequel chaque antenne dessert un seul satellite à la fois, avec un délai de retournement entre les contacts, et chaque satellite émet vers une seule station à la fois. La livraison est pondérée par la priorité et plafonnée à l'arriéré de chaque satellite. Trois plans sont rapportés côte à côte : un glouton à valeur marginale, une référence de base du premier arrivé et, lorsque l'ensemble de candidats est petit, l'optimum exact, avec l'écart d'optimalité du glouton.
kind = "contact-schedule"
epoch = [2024.0, 1.0, 1.0, 0.0, 0.0, 0.0]
duration_hours = 12.0
step_s = 30.0
refraction = true
light_time = true
frequency_ghz = 8.2
eirp_dbw = 7.0earth-gnss-lunar#
Réception du GNSS terrestre à distance lunaire, la couche de signal faible que nomme l'article sur la résilience aux conflits et pour laquelle le moteur n'avait aucun modèle. Un satellite GNSS pointe son antenne vers la Terre ; un récepteur près de la Lune se trouve à environ quinze fois le rayon orbital, de sorte que trois effets jouent à la fois. La Terre OCCULTE L'AXE DE VISÉE : à 26 560 km, elle sous-tend un demi-angle de 13,9 deg, si bien que tout rayon à destination de la Lune doit quitter l'émetteur à au moins cet écart du nadir, ce qui supprime le pic du faisceau avant même tout calcul de puissance. Ce qui reste, c'est LE BORD DU LOBE PRINCIPAL ET LES LOBES SECONDAIRES, le régime dans lequel la charge utile LuGRE a effectivement fonctionné en 2025. Et l'affaiblissement en espace libre est d'environ 208 dB en L1, soit environ 25 dB de plus que ce que paie un utilisateur terrestre. Le rapport émet une ligne par satellite (angle hors axe de visée, occultation par la Terre, distance, affaiblissement de propagation, gain d'émission à cet angle, puissance reçue, densité porteuse/bruit) et n'agrège que les liaisons qui franchissent le seuil de poursuite. IL RAPPORTE AUSSI LE CONDITIONNEMENT, car c'est ce qui définit cette couche : chaque satellite visible se trouve dans un cône large de quelques degrés vu de la Lune, de sorte que les lignes de visée sont presque parallèles, que la dilution de précision est énorme et qu'un point fixe du GNSS terrestre à distance lunaire est une observation de synchronisation temporelle bien plus qu'une observation de position. MODELLED, et le diagramme d'émission en est la raison : le gain en fonction de l'angle est celui d'une ouverture circulaire uniforme (Airy), alors qu'une vraie antenne GPS L1 est un réseau hélicoïdal à douze éléments avec un lobe principal conformé et des lobes secondaires non Airy. Des diagrammes mesurés existent et ne sont pas fournis ici, de sorte que les classements et les ordres de grandeur sont significatifs, alors que le dB d'un satellite pris isolément ne l'est pas. Volontairement ABSENTS, chacun rendant le bilan optimiste : aucune perte ionosphérique ou troposphérique sur les rayons rasant le limbe, aucune perte de polarisation, de pointage ou de mise en œuvre, et une Terre sphérique sans extension réfractive. La position de la Lune est une ENTRÉE (distance plus direction inertielle) plutôt qu'une consultation d'éphéméride, parce que la grandeur testée est la liaison et la géométrie du faisceau. Faire passer cette ligne à l'état validé exige un diagramme d'émission mesuré et des points normaux LuGRE ; ni l'un ni l'autre ne figure dans le dépôt et aucun n'est inventé ici.
earth-gnss-lunar.toml
Réception du GNSS terrestre à distance lunaire.
kind = "earth-gnss-lunar"
altitude_km = 20180.0
inclination_deg = 55.0
planes = 6
sats_per_plane = 4
phasing_f = 2.0
epoch_s = 0.0
receiver_range_m = 384400000.0entry-heating#
Entrée atmosphérique à masse ponctuelle et 3 degrés de liberté au-dessus d'une Terre ou d'un Mars sphérique en rotation (balistique ou portante à inclinaison constante), RK4, à travers US76, une atmosphère exponentielle ou l'atmosphère martienne, avec un échauffement convectif au point d'arrêt de Sutton-Graves (NASA TR R-376) : décélération, flux thermique et pression dynamique de pointe, charge thermique, portée au sol, un contrôle d'énergie en référentiel tournant et la forme fermée d'Allen-Eggers à côté. La décélération de pointe est vérifiée par rapport au nominal publié de Stardust ; l'échauffement est MODELLED.
entry-heating-stardust.toml
Rentrée de la capsule de retour d'échantillons Stardust : le cas publié par rapport auquel le type de scénario entry-heating est vérifié (xval/entry-stardust/PREREGISTRATION.md ; tests/entry_stardust_published.rs).
kind = "entry-heating"
body = "earth"
atmosphere = "us76"
entry_interface_altitude_m = 125003.0
velocity_frame = "inertial"
entry_speed_m_s = 12900.0
flight_path_angle_deg = 8.2
latitude_deg = 41.0eo-coverage#
Géométrie d'empreinte et de couverture d'une charge utile d'observation de la Terre (triangle spatial SMAD) : rayon angulaire de la Terre, largeur de fauchée, distance d'échantillonnage au sol au nadir, accès maximal hors nadir, période circulaire, période nodale J2 et espacement des traces au sol à l'équateur avec un indicateur de couverture contiguë, pour une altitude d'orbite, une inclinaison (héliosynchrone par défaut) et un FOV/IFOV de capteur. Géométrie MODELLED à Terre sphérique (sans radiométrie/FTM/atmosphère/gigue/réflexion spéculaire) ; espacement des nœuds R_e·(ω − Ω̇)·T_nodal avec des taux séculaires J2 au premier ordre.
eo-coverage.toml
Démonstrateur d'empreinte et de couverture de charge utile d'observation de la Terre (triangle spatial SMAD).
kind = "eo-coverage"
altitude_km = 700.0
half_fov_deg = 7.5
ifov_microrad = 14.0
max_off_nadir_deg = 45.0eo-radiometry#
Radiométrie et qualité d'image d'un imageur au nadir : luminance à l'ouverture d'une scène lambertienne, équation de la caméra, signal et bruit de grenaille/d'obscurité/de lecture/de quantification et SNR ; la FTM du système à Nyquist (diffraction x détecteur x filé x gigue), la réponse relative de bord qui en découle, Q = lambda F/p et le NIIRS GIQE version 4 sans compensation de FTM. MODELLED.
eo-radiometry.toml
Radiométrie et qualité d'image d'un imageur au nadir pour une petite caméra d'observation de la Terre ILLUSTRATIVE (aucune conception d'opérateur) : ouverture de 0,40 m, focale de 3,6 m (F/9), pixels de 5,5 um, depuis 500 km. L'exécution donne le budget de rapport signal sur bruit d'une scène de réflectance de 15 %, la FTM du système à Nyquist, la réponse relative de bord et le NIIRS de la GIQE version 4. MODELLED : le NIIRS est une régression empirique évaluée sur des entrées modélisées, non une image cotée.
kind = "eo-radiometry"
altitude_m = 500000.0
focal_length_m = 3.6
aperture_m = 0.40
pixel_pitch_um = 5.5
wavelength_um = 0.65
bandwidth_um = 0.2
fill_factor = 1.0ephemeris#
Éphéméride et trace au sol : propager un satellite (TLE→SGP4 ou orbite analytique) et émettre son état TEME/GCRS (position + vitesse), sa position ITRF/ECEF, la latitude/longitude/altitude sous-satellite WGS-84, et, à chaque pas, l'azimut/l'élévation/la distance de la station et le taux de variation de distance (Doppler). Le satellite provient d'un tle ou d'une orbit analytique avec son epoch (un tle l'emporte lorsque les deux sont donnés) ; avec un tle, un epoch remplace l'époque propre du TLE comme t = 0.
ephemeris.toml
Éphémérides et trace au sol — « où est le satellite en ce moment ».
kind = "ephemeris"
tle = """
step_s = 30.0
duration_s = 16740.0
xp_arcsec = 0.0
yp_arcsec = 0.0
lat_deg = 49.8707
lon_deg = 8.6217fusion#
PNT par fusion de capteurs à filtre de Kalman conjoint sur les mêmes entrées hybrides.
fusion-pnt.toml
PNT par fusion conjointe de capteurs : un seul filtre de Kalman est le navigateur, fusionnant les états d'horloge et inertiels et aidé par le transfert de temps ISL optique, plutôt que de composer des prédicteurs indépendants. GNSS refusé 1,8 h.
kind = "fusion"
seed = 42
timing_spec_ns = 20.0
position_spec_m = 100.0
step_s = 10.0
duration_s = 7200.0
windows = [
enabled = truefusion-pnt-coupled.toml
PNT par fusion conjointe de capteurs couplée : les mêmes ensembles et la même interruption du GNSS que fusion-pnt.toml, mais le navigateur est UN seul filtre de Kalman empilé sur la position, la vitesse, la phase d'horloge, la fréquence d'horloge et le biais de l'accéléromètre (la table [coupled]). Tant que le GNSS est nominal, il prend des pseudodistances, chacune rho = g * position + c * clock phase + noise le long d'un facteur de ligne de visée g, de sorte qu'une seule mesure contraint ensemble la position et l'horloge et que le filtre porte leur covariance croisée ; les resynchronisations par transfert de temps optique pendant l'interruption sont des pseudodistances d'horloge seule. Les accéléromètres portent ici un biais constant, que l'état de biais apprend avant l'interruption (fusion-pnt.toml met les biais à zéro parce que ses filtres n'ont pas d'état de biais). Neutre vis-à-vis des fournisseurs ; paramètres d'horloge et de bruit comme dans fusion-pnt.toml, les biais sont illustratifs. MODELLED.
kind = "fusion"
seed = 42
timing_spec_ns = 20.0
position_spec_m = 100.0
step_s = 10.0
duration_s = 7200.0
windows = [
enabled = truegnss-ins#
EKF à état d'erreur GNSS/INS à couplage lâche et serré.
automotive-urban-canyon.toml
Véhicule routier à travers un canyon urbain : navigation à l'estime GNSS/INS à travers un passage inférieur et un brouilleur en bord de route, par rapport à un budget au niveau de la voie.
kind = "gnss-ins"
seed = 7
threshold_m = 1.5
fix_interval_s = 1.0
sigma_pos_m = 1.0
sigma_vel_mps = 0.05
lat_deg = 48.137
lon_deg = 11.575gnss-ins.toml
GNSS/INS à couplage lâche : le navigateur à composantes liées à trois axes asservi par un EKF d'état d'erreur à 15 états, puis en navigation à l'estime pendant une interruption du GNSS de 60 s. Contrairement au paquet inertial (un navigateur à l'estime scalaire à 1 DDL avec une remise à la vérité à chaque position), celui-ci exécute le véritable filtre en boucle fermée : il apprend à partir de positions bruitées tant que le GNSS est disponible et poursuit à l'estime sur l'état corrigé pendant l'interruption. L'erreur rapportée est le véritable résidu horizontal par rapport à la vérité ; chaque capteur porte aussi son RMS d'INS libre en boucle ouverte afin que l'apport du filtre soit explicite.
kind = "gnss-ins"
seed = 7
threshold_m = 50.0
fix_interval_s = 1.0
sigma_pos_m = 1.0
sigma_vel_mps = 0.05
lat_deg = 45.0
lon_deg = -57.3gnss-ins-aviation.toml
GNSS/INS aéronautique à couplage serré : un avion léger décolle, monte à 6 deg, se met en palier et effectue un virage coordonné à 25 deg d'inclinaison (profil de trajectoire aircraft) ; le GNSS est refusé pendant deux minutes qui couvrent le virage, la partie la plus difficile d'une navigation à l'estime car les erreurs de cap et d'attitude sont alors projetées dans l'horizontale. Couplage serré ([tight]) sur une constellation de Walker SGP4 de type GPS.
kind = "gnss-ins"
seed = 13
threshold_m = 100.0
fix_interval_s = 1.0
sigma_pos_m = 3.0
sigma_vel_mps = 0.1
lat_deg = 52.0
lon_deg = 5.0gnss-ins-maritime.toml
GNSS/INS maritime : un navire à 8 m/s (environ 15,5 nœuds) décrivant des cercles complets à 1 deg/s, puis une interruption du GNSS de cinq minutes, sur le même filtre GNSS/INS à 15 états en boucle fermée que gnss-ins.toml. Le mouvement provient de la bibliothèque de trajectoires ([trajectory], profil figure8) : virage lent et régulier, le régime d'un navire plutôt que d'une voiture.
kind = "gnss-ins"
seed = 11
threshold_m = 50.0
fix_interval_s = 1.0
sigma_pos_m = 2.0
sigma_vel_mps = 0.1
lat_deg = 54.0
lon_deg = 10.0gnss-ins-rail.toml
GNSS/INS ferroviaire à couplage serré : un train circule entre des arrêts à 30 m/s avec de douces courbes de 20 deg (profil de trajectoire stop_go), passe une tranchée profonde où seuls deux satellites restent en vue, puis un tunnel de deux minutes. Le récepteur est à couplage serré ([tight]) : il continue de fusionner les pseudodistances des deux satellites qu'il poursuit encore dans la tranchée, là où un récepteur à couplage lâche n'a aucune position. Les satellites proviennent d'une constellation de Walker SGP4 de type GPS.
kind = "gnss-ins"
seed = 12
threshold_m = 30.0
fix_interval_s = 1.0
sigma_pos_m = 2.0
sigma_vel_mps = 0.1
lat_deg = 48.0
lon_deg = 11.0gnss-sim#
Simulation de pseudodistances dans le domaine des mesures (ionosphère de Klobuchar, troposphère de Saastamoinen/Niell) + RAIM.
gnss-sim-container-terminal-skyline.toml
Pseudodistances et RAIM pour un cavalier de manutention sur un quai à conteneurs, avec des portiques navire-terre côté mer et des piles de conteneurs côté terre : le scénario gnss-sim sous le préréglage d'horizon container-terminal.
kind = "gnss-sim"
seed = 7
mask_deg = 5.0
noise_sigma_m = 1.5
multipath_m = 0.5
sat_clock_rms_m = 30.0
uere_m = 3.0
p_fa = 1.0e-5gnss-sim-raim.toml
Simulation GNSS dans le domaine des mesures : pseudodistances avec retards ionosphérique et troposphérique, fournies au RAIM instantané pour les niveaux de protection.
kind = "gnss-sim"
seed = 7
mask_deg = 5.0
noise_sigma_m = 1.5
multipath_m = 0.5
sat_clock_rms_m = 30.0
uere_m = 3.0
p_fa = 1.0e-5gnss-ssv#
Disponibilité du GNSS et force de la liaison MODELLED dans le volume de service spatial et au-delà : pour un utilisateur sur une sphère (la coquille globale du livret de l'ICG) ou sur une trajectoire képlérienne (de l'orbite basse au transfert lunaire), il compte, par constellation (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) et pour toutes ensemble, les signaux utilisables au-dessus d'un seuil de C/N0 - disponibilité d'au moins un et de quatre signaux, durée maximale d'interruption, C/N0 reçu, dilution de précision, liaisons par lobe principal contre lobes secondaires - avec un diagramme d'émission du livret, paramétrique ou fourni par l'utilisateur, des effets facultatifs d'ionosphère, de plasmasphère et d'atmosphère sur le rayon rasant le limbe, et une conception facultative de récepteur à signal faible ; ainsi qu'un filtre de Kalman étendu GNSS embarqué pour les engins en HEO et en transfert lunaire (dynamique orbitale, pression de radiation solaire, troisièmes corps, horloge) et la navigation relative d'une formation de plusieurs engins par pseudodistances en différences simples. Vérifié par rapport aux tableaux du livret SSV de l'ICG dans le cadre d'un préenregistrement (xval/gnss-ssv)
gnss-ssv-formation-heo.toml
Navigation relative d'une formation de trois engins sur l'orbite très elliptique du livret.
kind = "gnss-ssv"
name = "HEO formation relative navigation (reduced length)"
include = ["gps", "glonass", "galileo", "bds"]
bands = ["l1", "l5"]
preset = "heo"
duration_min = 400.0
step_s = 60.0
antennas = ["booklet-high-gain-nadir", "booklet-patch-zenith"]gnss-ssv-heo.toml
Une orbite très elliptique traversant les orbites GNSS : ce que voit un utilisateur du périgée à l'apogée.
kind = "gnss-ssv"
name = "HEO, high-gain nadir and patch zenith antennas, parametric sidelobes, limb medium"
include = ["gps", "glonass", "galileo", "bds"]
bands = ["l1", "l5"]
pattern = "parametric"
preset = "heo"
duration_periods = 1.0
step_min = 10.0gnss-ssv-lunar-weak.toml
GNSS sur un transfert lunaire, avec un récepteur à signal faible qui mérite sa sensibilité.
kind = "gnss-ssv"
name = "Lunar transfer, weak-signal receiver, parametric sidelobes"
include = ["gps", "galileo", "glonass", "bds"]
bands = ["l1", "l5"]
pattern = "parametric"
apply = "acquisition"
t_coh_s = 0.1
n_noncoherent = 100.0gnss-ssv-shell.toml
Disponibilité du signal GNSS sur la couche upper-SSV : la métrique globale du livret, à une taille qui s'exécute en une seconde.
kind = "gnss-ssv"
name = "Upper SSV shell, 20 dB-Hz (reduced size)"
include = ["gps", "glonass", "galileo", "bds"]
bands = ["l1", "l5"]
altitude_km = 36000.0
antenna = "hemisphere"
grid_levels = 2
duration_min = 4320.0gravity-map#
Navigation par appariement de carte gravimétrique sans GPS : un gravimètre à atomes froids retrouve une dérive INS constante à partir de la séquence d'anomalies de gravité qu'il traverse.
gravity-map-error-mc.toml
Monte Carlo d'erreur de carte sur le benchmark de 60 minutes de carte de gravité sans GPS (WP-10, RM-15).
kind = "gravity-map"
nmax = 3
start_lat_deg = 10.0
start_lon_deg = 20.0
step_lat_deg = 0.06
step_lon_deg = 0.045
waypoints = 90
drift_lat_deg = 0.5holdover-test#
Test de holdover MODELLED d'un système de synchronisation temporelle, noté à partir d'un enregistrement d'erreur temporelle que fournit l'OPÉRATEUR (un journal linuxptp ptp4l, phc2sys ou ts2phc, un journal de suivi ou de statistiques chrony, un journal d'horloge TICC, TimeLab ou RINEX, ou des paires time_s,time_error_ns). Le test comporte quatre étapes et Kshana n'en effectue aucune : une RÉFÉRENCE DE BASE verrouillée, le GNSS RETIRÉ par l'opérateur (le câble d'antenne ou la sortie du simulateur ; Kshana ne transmet ni ne pilote rien) à un instant indiqué, le HOLDOVER sur l'oscillateur propre du système, et le RÉTABLISSEMENT après que l'opérateur a rétabli le GNSS à un second instant indiqué. L'enregistrement est découpé à ces deux instants. Référence de base : statistiques d'erreur temporelle et masques ITU-T écrits pour une horloge verrouillée. Holdover : statistiques, l'écart relatif de fréquence que le système a tenu (une droite des moindres carrés), les masques écrits pour le holdover ou une horloge autonome, l'enveloppe de holdover ePRTC-A à partir de la durée verrouillée indiquée, et le temps nécessaire pour dépasser chaque budget d'erreur temporelle. Rétablissement : si et quand |TE| est entré dans une bande indiquée et y est resté, le pic et le plus grand saut. Chaque limite est transcrite d'un tableau public de l'ITU-T (les masques de synchronisation des télécommunications) ; les termes sont « mesuré par rapport au masque », et les deux instants sont l'énoncé de l'opérateur, non vérifié. Un enregistrement trop court pour un masque est INCOMPLETE, jamais extrapolé. Voir docs/TIMING-HIL.md.
holdover-test-example.toml
Essai de holdover, exemple d'ingestion : un enregistrement d'erreur de temps évalué par le type de scénario holdover-test (« débranchez l'antenne, évaluez le holdover »). L'enregistrement est scindé aux deux instants que l'OPÉRATEUR indique, ici le GNSS retiré à 600 s et rétabli à 2 400 s, et chaque étape est mesurée par rapport aux gabarits de l'UIT-T écrits pour elle.
kind = "holdover-test"
masks = ["prtc-a", "eprtc-a-holdover"]
gnss_removed_s = 600.0
gnss_restored_s = 2400.0
locked_duration_days = 5.0
recovery_band_ns = 100.0
recovery_dwell_s = 60.0
samples = [holdover-test-ptp4l.toml
Essai de holdover d'un journal linuxptp : les mêmes quatre étapes que holdover-test-example.toml, avec l'enregistrement lu à partir d'un journal d'asservissement ptp4l via [series.clock_log] (format "ptp4l", décalages en ns, les horodatages propres du démon, espacés ici de 5 s).
kind = "holdover-test"
masks = ["prtc-a", "eprtc-a-holdover"]
gnss_removed_s = 600.0
gnss_restored_s = 2400.0
locked_duration_days = 5.0
recovery_band_ns = 100.0
recovery_dwell_s = 60.0
format = "ptp4l"hybrid#
Pierre angulaire du PNT hybride : horloge + IMU + aide par transfert de temps.
hybrid-pnt.toml
Aboutissement du PNT hybride : ensemble tout quantique (horloge optique + IMU à atomes froids + aide par transfert de temps ISL optique) contre ensemble tout classique (CSAC + IMU de classe navigation + RF). GNSS refusé 1,8 h.
kind = "hybrid"
seed = 42
timing_spec_ns = 20.0
position_spec_m = 100.0
step_s = 10.0
duration_s = 7200.0
windows = [
enabled = truehybrid-optical-rf#
Indice de mérite conjoint MODELLED de PNT hétérogène optique + RF (P5) : compose le bilan de liaison optique aller-retour à 1550 nm (CRLB de télémétrie aller-retour limitée par les photons σ_τ/√N et empreinte de diffraction λ/D·distance), un niveau de protection RAIM à séparation de solutions inter-modalités (position ET synchronisation temporelle) qui fusionne les solutions RF lâche et optique serrée avec des covariances disparates, la disponibilité optique par ciel dégagé à N stations (union indépendante 1−Π(1−a_i) et variante corrélée spatialement), un transfert d'état/de covariance optique↔RF avec une moyenne DÉMONTRÉE continue au bit près (sans saut) et un contrôle de cohérence NEES en χ², et un score conjoint de P(disponible ET de précision requise ET d'intégrité assurée) avec traitement de la corrélation. Forme fermée VALIDATED : le CRLB de télémétrie, l'empreinte de diffraction, le quantile du niveau de protection en χ², la combinatoire de l'union, la continuité de la moyenne du transfert + le contrôle NEES, et le produit indépendant conjoint. MODELLED : les allocations de pertes optiques, les grandeurs σ RF/optiques, les entrées de climatologie nuageuse, les corrélations et le budget P_HMI. Ce n'est pas un produit de disponibilité/d'intégrité certifié.
hybrid-optical-rf.toml
Disponibilité / précision / intégrité conjointes d'un PNT hétérogène optique + RF (P5).
kind = "hybrid-optical-rf"
wavelength_nm = 1550.0
tx_power_w = 1.0e-3
tx_aperture_m = 0.85
rx_aperture_m = 0.85
range_km = 384000.0
pulse_rms_ps = 50.0
integration_s = 1.0hybrid-ukf#
UKF GNSS/INS hybride quantique+classique à couplage serré à 17 états (MODELLED) : 15 états d'erreur INS + correction du biais d'accéléromètre issue du CAI + une horloge à 2 états (phase+fréquence) issue du moteur d'horloge à paramètres q, pilotée par le modèle d'erreur encadré du CAI. L'indice de mérite est l'autocohérence du filtre (NEES + blancheur de l'innovation par rapport aux bornes du χ²) — un énoncé d'autocohérence, et NON une garantie de précision en conditions réelles. Simulation seulement ; pas de TRL>3, pas d'héritage de vol, pas de validation externe.
hybrid-ukf.toml
UKF GNSS/INS à couplage serré hybride quantique + classique à 17 états (MODELLED).
kind = "hybrid-ukf"
seed = 1771
speed_m_s = 100.0
sigma_pr_m = 1.0
sigma_rr_mps = 0.05
consistency_seeds = 24
q_factor = 1.0
r_factor = 1.0impairment-eval#
Banc d'évaluation de la détection par apprentissage automatique des altérations RF (13494) : générer un corpus SYNTHÉTIQUE étiqueté et fondé sur des paramètres (nominal/brouillage/leurrage en temps/leurrage en position/trajets multiples), noter un détecteur (energy|agc|sqm|parity|fused) avec le banc indépendant du détecteur, et rapporter AUC/ROC/matrice de confusion + Pd par classe à un Pfa cible, ainsi que l'écart d'optimisme entre dans la distribution et hors de la distribution. Caractéristiques de fonctionnement MODELLED seulement — jamais de données de terrain/IQ, aucun verdict bon/mauvais.
impairment-eval.toml
Banc d'essai d'évaluation de la détection par apprentissage automatique des dégradations RF (démonstrateur ESA AO/1-13494).
kind = "impairment-eval"
seed = 42
n_per_class = 200
meas_noise = 0.6
detector = "fused"
target_pfa = 0.05
shift_severity_scale = 0.5
optimism_tol = 0.05inertial#
Estime inertielle à 1 degré de liberté pendant une interruption du GNSS.
imu-deadreckoning.toml
Navigation à l'estime pendant une interruption du GNSS : accéléromètre quantique à atomes froids contre classe navigation. Biais = résidu après étalonnage GNSS = stabilité de biais publiée ; q_va = (DSP racine du bruit)^2.
kind = "inertial"
seed = 42
threshold_m = 100.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "cold-atom-quat"
provenance = "Exail hybrid quantum accelerometer triad: bias stability 6e-8 g = 5.88e-7 m/s^2 after 24 h (Templier et al., Science Advances 2022, arXiv:2209.13209); noise 22 ug/sqrtHz = 2.16e-4 (m/s^2)/sqrtHz; laboratory maturity, not deployed"quantum-cai-coast.toml
Préréglage quantique : un accéléromètre à interféromètre à atomes froids (CAI), construit à partir de la physique de son interféromètre, contre un accéléromètre à quartz de classe navigation pendant une interruption du GNSS. Une navigation à l'estime unidimensionnelle : 10 minutes de GNSS, puis 110 minutes refusées.
kind = "inertial"
seed = 20261013
threshold_m = 100.0
step_s = 10.0
duration_s = 7200.0
windows = [
id = "cold-atom-interferometer"
provenance = "Cold-atom (Rb-87 D2) interferometric accelerometer: q_va derived from the [accel_quantum.cai] parameters, a bracket in the GAIN/MAIUS literature range (Freier et al. arXiv:1512.05660; Becker et al. Nature 2018); residual bias 5.88e-7 m/s^2 = the 6e-8 g bias stability of a laboratory hybrid quantum accelerometer (Templier et al., Science Advances 2022, arXiv:2209.13209). Laboratory maturity, not deployed."ins-trn-coast#
Modèle d'erreur d'inertie INS/TRN : erreur de position en fonction de la durée d'inertie, construit à partir de coefficients d'IMU plutôt que balayé comme un taux de dérive supposé. Cinq contributions de croissance — biais d'accéléromètre, inclinaison due au biais de gyroscope par la gravité, marche aléatoire de vitesse, marche aléatoire d'angle et facteur d'échelle par rapport à la distance parcourue — chacune propagée dans un modèle d'erreur inertielle à neuf états en repère local avec rétroaction de Schuler à une latitude et une hauteur indiquées (les lois d'ordre dominant à inertie courte t², t³, t^1,5, t^2,5 et t¹/t² sont rapportées à côté) et combinées selon une règle INDIQUÉE (racine de la somme des carrés par défaut, ou somme linéaire, ou somme déterministe avec rss stochastique ; les trois sont calculées à chaque exécution afin que le choix soit visible plutôt qu'enfoui). Les durées d'inertie atteignant des seuils de position fournis par l'appelant (10 m et 50 m par défaut) sont localisées par la bissection déjà présente dans le moteur, chacune avec une ventilation par contribution nommant la source dominante, et le franchissement de chaque contribution prise isolément est en outre inversé algébriquement de sorte que les deux concordent. Un mode de navigation par référence au relief borne l'inertie par des recalages périodiques de position et rapporte le plus grand intervalle de recalage qui tient chaque seuil ; un recalage de position seule laisse subsister l'erreur de vitesse et l'inclinaison au travers du recalage, de sorte qu'il ne borne pas toujours l'inertie quelle que soit la cadence de recalage, et le rapport l'indique plutôt que de renvoyer un zéro. MODELLED : les coefficients de classe d'IMU sont des valeurs représentatives de plages, et non une fiche technique, et le résidu de recalage sur le relief est une entrée. Un seuil non atteint est rapporté comme null avec un statut, jamais comme un zéro. Ce n'est pas un produit de performance de navigation inertielle certifié.
ins-trn-coast.toml
Modèle d'erreur de navigation à l'estime INS/TRN — erreur de position en fonction de la durée à l'estime, et durées à l'estime auxquelles elle franchit 10 m et 50 m.
kind = "ins-trn-coast"
imu_grade = "navigation"
speed_m_s = 250.0
combination = "rss"
crossing_thresholds_m = [10.0, 50.0]
drift_band_lo_m_per_s = 0.001
drift_band_hi_m_per_s = 0.050
trn_fix_mode = "position-only"maritime-port-approach-coast.toml
Approche d'un port maritime avec le GNSS brouillé : combien de temps un système de navigation inertielle (INS) maintient un navire dans le budget de précision d'approche portuaire une fois le système mondial de navigation par satellite (GNSS) perdu.
kind = "ins-trn-coast"
imu_grade = "navigation"
speed_m_s = 6.17
combination = "rss"
crossing_thresholds_m = [10.0, 100.0]
drift_band_lo_m_per_s = 0.001
drift_band_hi_m_per_s = 0.050
trn_fix_mode = "none"rail-tunnel-coast.toml
Navigation à l'estime en tunnel ferroviaire : combien de temps le système de navigation inertielle (INS) d'un train le maintient dans un budget de discrimination de voie sans système mondial de navigation par satellite (GNSS) dans un tunnel.
kind = "ins-trn-coast"
imu_grade = "tactical"
speed_m_s = 44.4
combination = "rss"
crossing_thresholds_m = [2.0, 20.0]
drift_band_lo_m_per_s = 0.001
drift_band_hi_m_per_s = 0.050
trn_fix_mode = "none"integrity#
RAIM instantané / à séparation de solutions / ARAIM avec HPL/VPL et un diagramme de Stanford.
araim-gps-galileo.toml
Disponibilité ARAIM à double constellation : GPS + Galileo évalués avec le moteur ARAIM avancé, y compris l'hypothèse de panne à l'échelle d'une constellation (araim_dual).
kind = "integrity"
mask_deg = 5.0
sigma_uere_m = 0.75
p_fa = 1.0e-5
p_md = 1.0e-3
al_h_m = 40.0
al_v_m = 50.0
araim_dual = trueintegrity-harbour-approach.toml
Disponibilité ARAIM pour un navire entrant dans un port : le type de scénario integrity avec un utilisateur au sol (user_site) sous le préréglage d'horizon harbour-approach.
kind = "integrity"
seed = 7
mask_deg = 5.0
sigma_uere_m = 1.0
p_fa = 1.0e-5
p_md = 1.0e-3
al_h_m = 40.0
al_v_m = 50.0integrity-raim.toml
Disponibilité de l'intégrité GNSS (RAIM) sur une constellation de type GPS.
kind = "integrity"
seed = 7
mask_deg = 5.0
sigma_uere_m = 1.0
p_fa = 1.0e-5
p_md = 1.0e-3
al_h_m = 40.0
al_v_m = 50.0jamming#
Brouillage par bilan de liaison : J/S → C/N₀ effectif → perte d'accrochage.
jamming-demo.toml
Brouillage RF : un brouilleur à large bande au sol privant de GNSS un récepteur proche.
kind = "jamming"
seed = 1
mask_deg = 5.0
tracking_threshold_dbhz = 25.0
step_s = 30.0
duration_s = 1800.0
lat_deg = 52.0
lon_deg = 4.0jamming-harbour-approach-skyline.toml
Un navire entrant dans un port sous un brouilleur côtier, avec les bâtiments du quai devant lui qui masquent les satellites bas dans cette direction : le scénario jamming sous le préréglage d'horizon harbour-approach.
kind = "jamming"
seed = 1
mask_deg = 5.0
tracking_threshold_dbhz = 25.0
step_s = 60.0
duration_s = 21600.0
lat_deg = 59.80
lon_deg = 24.90maritime-strait-jamming.toml
Brouillage GNSS maritime : un brouilleur à large bande côtier ou embarqué qui refuse le système mondial de navigation par satellite (GNSS) à un navire traversant des eaux libres.
kind = "jamming"
seed = 1
mask_deg = 5.0
tracking_threshold_dbhz = 25.0
step_s = 30.0
duration_s = 1800.0
lat_deg = 59.80
lon_deg = 24.90launch-window#
Géométrie de lancement et d'ascension à deux corps : azimut(s) de lancement (sin Az = cos i / cos lat), inclinaison minimale atteignable, vitesse circulaire, gain de la rotation de la Terre vers l'est, Δv de changement de plan en dogleg lorsque l'inclinaison cible est inférieure à la latitude du site, et nombre d'opportunités de lancement quotidiennes. Géométrie MODELLED à Terre sphérique (sans correction du triangle des vitesses de Terre en rotation, sans modèle de pertes d'ascension/de traînée).
launch-window.toml
Démonstrateur de fenêtre de lancement et de géométrie d'ascension (analyse de mission, niveau étude comparative).
kind = "launch-window"
site_lat_deg = 28.5
target_inclination_deg = 51.6
altitude_km = 400.0leo-navmsg#
Message de navigation LEO : l'éphéméride et l'horloge diffusées d'un satellite de positionnement, de navigation et de synchronisation temporelle en orbite terrestre basse (LEO), pour toute orbite, porteuse et tout modèle, avec des préréglages nommés facultatifs (Xona Pulsar, Iridium, Starlink, CentiSpace, un système représentatif en bande C, le modèle d'horloge nulle ATOMIC, Celeste IOD). CONTENU : données auxiliaires (SVID, numéro de version des données, bande, état de santé du signal), synchronisation (semaine, temps de la semaine, un polynôme d'horloge du second ordre af0-af2 autour de toc), éphéméride selon l'un de quatre modèles -- l'ensemble képlérien à 16 paramètres de l'ICD SIS de Galileo OS ; cet ensemble plus des polynômes de correction le long de la trace, transversale et radiale ; le modèle à 22 paramètres de Liu et al. 2025 ; un polynôme ECEF sans terme d'horloge (horloge nulle ATOMIC) -- et d'autres services (un ensemble diffusé de Klobuchar, NeQuick-G ai0-ai2 avec le niveau d'ionisation effectif, et des paramètres de temps système vers UTC avec la logique de secondes intercalaires de l'ICD). AJUSTEUR : une orbite de référence intégrée avec la gravité zonale J2-J6 ou EGM2008 jusqu'au degré choisi et la traînée, et une horloge libre ou pilotée à graine fixe ; ajustement de Levenberg-Marquardt de l'ensemble képlérien sur des éléments non singuliers, puis polynômes de correction par moindres carrés linéaires ; horloge ajustée déduction faite du terme relativiste que l'utilisateur ajoute. ANALYSES : fit-interval-trade (erreur de distance du signal dans l'espace, SISRE, avec des poids moyennés globalement pour l'altitude d'orbite, en fonction de l'intervalle d'ajustement et de la période de mise à jour, orbite seule et avec horloge), model-comparison (quatre modèles, nombre de paramètres, bits codés, et l'ajustement de Kshana aux altitudes de Liu et al. à côté des chiffres publiés), midpass-update (le passage le plus haut au-dessus d'un utilisateur, la position, l'horloge et le saut de distance utilisateur à chaque changement de message, le saut en pire géométrie, PASS/FAIL par rapport à un seuil de continuité), encode-decode (la trame binaire documentée propre à Kshana avec CRC-24Q, un budget de quantification en demi-pas par champ, un contrôle de trame corrompue, un export et un import d'enregistrement de style RINEX-4 étiquetés extension de Kshana, et une table CSV). VALIDATED : les poids SISRE par rapport au tableau publié MEO/GEO (Montenbruck et al. 2018) ; l'algorithme utilisateur de Galileo par rapport à RTKLIB sur des éphémérides diffusées réelles de Galileo ; le CRC-24Q par rapport à sa valeur de contrôle du catalogue et à la trame d'exemple RTCM 1005. MODELLED : chaque chiffre d'ajustement et de SISRE est une erreur de représentation par rapport à une vérité intégrée par Kshana (sans erreur de détermination ou de prédiction d'orbite) ; la comparaison avec Liu et al. utilise des orbites différentes ; les formats d'encodage et de texte sont ceux propres à Kshana.
leo-pass#
Passage LEO et bilan de liaison, bande par bande, pour le LEO-PNT (positionnement, navigation et synchronisation temporelle depuis l'orbite terrestre basse), indépendant du système : un utilisateur (au sol, maritime, aérien ou en intérieur, statique ou mobile) et un ou plusieurs satellites LEO à partir d'un PASS CONÇU (une orbite circulaire placée de sorte que l'utilisateur voie un passage d'une élévation maximale choisie à un instant choisi, héliosynchrone si demandé), d'ÉLÉMENTS explicites, d'un TLE (jeu d'éléments à deux lignes) via le SGP4 du moteur, ou d'une constellation WALKER construite par le code constellation-design (les passages les plus hauts rapportés). Les bandes proviennent d'un préréglage nommé (UHF/L/S/C multibande générique, bande C générique, Xona Pulsar X1/X5, Iridium STL, Starlink comme signal d'opportunité à Doppler seul, CentiSpace, et un préréglage Celeste IOD facultatif marqué WORKSHOP) ou sont écrites dans le scénario ; chaque préréglage indique si ses chiffres sont PUBLIC (avec URL), REPRESENTATIVE ou WORKSHOP. Par satellite, bande et époque : élévation, azimut, distance, taux de variation de distance et accélération de distance ; affaiblissement en espace libre ; PIRE et gain du diagramme du satellite (isoflux, faisceau gaussien ou plat) ; gain de l'antenne de l'utilisateur en fonction de l'élévation (patch, hémisphérique ou isotrope) ; atténuation gazeuse (ITU-R P.676-10 annexe 2), atténuation par la pluie (coefficients ITU-R P.838-3 et procédure P.618-14, à partir d'un taux de pluie et d'une hauteur de pluie), scintillation troposphérique (ITU-R P.618-14 section 2.4.1), perte de pénétration dans les bâtiments pour un utilisateur en intérieur (ITU-R P.2109-2), désadaptation de polarisation, température de bruit du système et C/N0 (densité porteuse/bruit) ; Doppler et taux de Doppler en forme fermée à partir du taux de variation de distance et de l'accélération de distance, chacun vérifié par différences centrales ; le retard ionosphérique au premier ordre 40,3 STEC/f^2 à partir d'un TEC oblique de Klobuchar ou de TEC vertical mis à l'échelle de la partie de l'ionosphère située sous le satellite. Les paires de bandes reçoivent les coefficients sans ionosphère, l'amplification du bruit et le bruit de code au pic du passage. Les satellites GNSS en MEO (préréglages Galileo ou GPS) sont évalués avec le même modèle d'antenne et de bruit à partir des puissances reçues de leurs documents d'interface, de sorte que le passage LEO en cloche et les porteuses GNSS plates partagent un même graphique. Une section [iot] facultative donne le temps jusqu'au premier point fixe, l'énergie par point fixe et l'autonomie de la batterie en fonction du cycle de service pour un budget de puissance de récepteur indiqué (MODELLED). Chaque paire de bandes donne aussi le TEC oblique que sa combinaison sans géométrie retrouve au pic et l'écart-type de bruit de code de cette estimation (sondage de l'ionosphère). Une section [spoofer] facultative contrefait les signaux d'une position annoncée qui saute ou est écartée de la position réelle après un début, et exécute deux moniteurs avec des probabilités de fausse alarme et de détection manquée indiquées : cohérence du Doppler et de la géométrie de passage (taux de variation de distance mesurés par rapport à ceux prédits à partir des orbites et d'une position et vitesse a priori indépendantes, un test du khi-deux par moindres carrés généralisés sur une fenêtre, sur les canaux GNSS, LEO et tous) et cohérence inter-bandes (le pas d'époque à époque de la combinaison sans géométrie corrigée du modèle de chaque paire de bandes LEO), rapportant les statistiques par époque et le moment où chaque moniteur détecte (MODELLED). Composants VALIDATED : l'affaiblissement en espace libre, les coefficients P.838-3 par rapport à son tableau 5, les procédures de pluie et de scintillation P.618-14 et la perte de pénétration dans les bâtiments P.2109 par rapport aux exemples de validation du groupe d'études 3 de l'ITU-R, le rapport de retard de groupe L1/L2 de l'IS-GPS-200, et le Doppler maximal d'un utilisateur statique sur une orbite circulaire par rapport au tableau 1 de arXiv 2509,19551. MODELLED : les PIRE, les diagrammes, la fraction de Chapman du TEC sous le satellite et l'ensemble du passage.
leo-focus-science-iono-sounding.toml
Axe LEO-PNT : science LEO-PNT, sondage de l'ionosphère à partir du retard bibande.
kind = "leo-pass"
name = "LEO ionosphere sounding from multi-band delays"
epoch = "2026-09-28T11:00:00"
duration_s = 900.0
step_s = 5.0
environment = "ground"
lat_deg = 69.66
lon_deg = 18.94leo-indoor-uhf.toml
LEO-PNT en intérieur : pourquoi une porteuse UHF pénètre dans un bâtiment quand les bandes L, S et C peinent.
kind = "leo-pass"
name = "Indoor UHF LEO-PNT"
epoch = "2026-09-28T12:00:00"
duration_s = 900.0
step_s = 5.0
environment = "indoor"
lat_deg = 41.9
lon_deg = 12.49leo-iot-energy.toml
LEO-PNT basse énergie pour un traceur IoT (Internet des objets) : énergie par point en fonction du rapport cyclique.
kind = "leo-pass"
name = "IoT energy per fix"
epoch = "2026-09-28T06:00:00"
duration_s = 900.0
step_s = 5.0
environment = "ground"
lat_deg = 53.55
lon_deg = 9.99leo-pass-celeste-iod-multiband.toml
ESA Celeste IOD, configuration de signal n° 1, toutes les bandes sur un passage. PRÉRÉGLAGE WORKSHOP.
kind = "leo-pass"
name = "Celeste IOD multi-band pass"
epoch = "2026-09-28T08:00:00"
duration_s = 600.0
step_s = 2.0
iono_free_pairs = [["E5", "C"], ["UHF", "C"], ["E5", "SR"]]
environment = "ground"
lat_deg = 52.218leo-pass-iridium.toml
Salves Iridium STL (temps et localisation par satellite) vues depuis un aéronef.
kind = "leo-pass"
name = "Iridium STL from an aircraft"
epoch = "2026-09-28T14:00:00"
duration_s = 900.0
step_s = 5.0
environment = "air"
lat_deg = 50.0
lon_deg = -30.0leo-pass-vs-gnss-cn0.toml
Un passage LEO-PNT par rapport aux satellites Galileo en vue : C/N0 sur un passage.
kind = "leo-pass"
name = "LEO pass versus MEO GNSS C/N0"
epoch = "2026-09-28T08:00:00"
duration_s = 900.0
step_s = 2.0
environment = "ground"
lat_deg = 48.137
lon_deg = 11.575leo-pass-xona-pulsar.toml
Xona Pulsar X1 et X5 sur un passage, avec les passages les plus hauts de la constellation Pulsar.
kind = "leo-pass"
name = "Xona Pulsar pass"
epoch = "2026-09-28T10:00:00"
duration_s = 1200.0
step_s = 5.0
environment = "maritime"
lat_deg = 45.5
lon_deg = -5.0leo-resilience-spoof-doppler.toml
Résilience LEO-PNT au leurrage : cohérence du Doppler et de la géométrie de passage.
kind = "leo-pass"
name = "Spoofing detection by LEO Doppler consistency"
epoch = "2026-09-28T08:00:00"
duration_s = 1800.0
step_s = 5.0
environment = "ground"
lat_deg = 50.11
lon_deg = 8.68leo-pnt-chain#
Un système LEO-PNT (positionnement, navigation et synchronisation temporelle depuis l'orbite terrestre basse) de bout en bout, pour toute constellation et tout signal : la conception leo-signal nommée par signal_design (un préréglage public ou une conception [signal] en ligne) fixe le centre, la largeur de bande, la cadence de chip et la répartition de PIRE d'une bande [pass], le bilan de liaison leo-pass donne le C/N0 suivi et la gigue de code limitée en bande sur le passage, une droite de C/N0 en sin(élévation) et le SISRE diffusé du message [navmsg] (ajusté à l'altitude du satellite du passage) alimentent chaque système LEO du point fixe conjoint leo-pvt de [fusion], et facultativement les cas leo-ppp de [ppp] ; chaque transmission est listée avec sa valeur et son unité. MODELLED.
celeste-iod-end-to-end.toml
Celeste IOD de bout en bout (préréglage facultatif) : le signal de la configuration E5 n° 1 -> un passage Celeste IOD -> le message de navigation de style Celeste -> position fusionnée GPS + Galileo + Celeste IOD.
kind = "leo-pnt-chain"
name = "Celeste IOD end to end"
seed = 4
signal_design = "celeste-iod-e5-1-pfa"
od_sisre_m = 0.25
name = "celeste-iod-e5-1-pfa"
system = "Celeste IOD"
source = "WORKSHOP"leo-pnt-end-to-end.toml
LEO-PNT de bout en bout sur une constellation générique : conception du signal -> bilan de liaison de passage -> message de navigation -> position fusionnée MEO + LEO et convergence du positionnement ponctuel précis.
kind = "leo-pnt-chain"
name = "LEO-PNT end to end, generic 1080 km constellation"
seed = 5
signal_design = "generic-l"
od_sisre_m = 0.25
presets = ["generic-bands"]
epoch = "2026-09-28T08:00:00"
duration_s = 1200.0xona-pulsar-end-to-end.toml
Xona Pulsar de bout en bout : le signal public X5 -> un passage Pulsar -> un message de navigation LEO -> position fusionnée GPS + Galileo + Pulsar et convergence du positionnement ponctuel précis.
kind = "leo-pnt-chain"
name = "Xona Pulsar end to end"
seed = 9
signal_design = "xona-x5"
od_sisre_m = 0.25
presets = ["xona-pulsar"]
epoch = "2026-09-28T10:00:00"
duration_s = 1200.0leo-ppp#
Convergence du positionnement ponctuel précis (PPP) avec le GNSS seul et avec augmentation LEO : un filtre de Kalman étendu flottant sur le code et la phase de la porteuse sans ionosphère avec les coordonnées de station statiques, une horloge de récepteur blanche, un biais inter-systèmes par système supplémentaire, un retard humide zénithal en marche aléatoire projeté par 1/sin(élévation) et une ambiguïté flottante par arc de satellite ; l'erreur d'orbite et d'horloge précises est blanche et commune au code et à la phase d'un satellite, de sorte que chaque satellite est une mise à jour corrélée à deux lignes sous forme stabilisée de Joseph. Les mesures sont simulées à partir du même modèle avec un bruit à graine fixe sur plusieurs sites et plusieurs graines, et chaque cas (GNSS seul d'abord, puis chaque [[case]] de systèmes LEO, toute constellation ou tout préréglage) rapporte le temps de convergence médian (la première époque après laquelle les erreurs horizontale et verticale restent sous les seuils, 10 cm par défaut), la fraction convergée, les courbes d'erreur médianes et la cohérence du filtre (le NEES de position moyenné sur les exécutions par rapport à la bande bilatérale du khi-deux à 95 %). Facultativement à côté des chiffres de latitude moyenne publiés de Li et al. (2019, J. Geod. 93:749, doi 10.1007/s00190-018-1195-2) : 9,6 min pour le multi-GNSS, ramenées à 7,0, 3,2, 2,1 et 1,3 min avec 60, 96, 192 et 288 satellites LEO. MODELLED : une comparaison de cohérence de la tendance, et non une reproduction des constellations, du bruit ou des stations de cette étude ; ni résolution d'ambiguïté, ni sauts de cycle, ni enroulement de phase, ni marées, ni erreurs de produits corrélées dans le temps.
leo-ppp-convergence.toml
Convergence du positionnement précis (PPP) avec augmentation LEO.
kind = "leo-ppp"
seed = 20
duration_s = 1800.0
step_s = 10.0
runs = 4
lat_deg = 30.5
lon_deg = 114.4
lat_deg = 48.1leo-pvt#
Positionnement, navigation et synchronisation temporelle (PNT) fusionnés en orbite terrestre moyenne (MEO) et basse (LEO) sur N'IMPORTE QUELLES constellations : chaque [[system]] est un préréglage GNSS du type de scénario constellation-design, un préréglage LEO (xona-pulsar, iridium-stl, starlink-sop, centispace, generic-c-band, le modèle d'éphéméride atomic-zero-clock, ou un autre fichier de préréglage, chacun dans son propre fichier avec ses sources marquées PUBLIC, WORKSHOP ou DERIVED), des coquilles de Walker ou des jeux d'éléments explicites, avec une porteuse, une cadence de chip, une enveloppe de densité porteuse/bruit (C/N0) du masque d'élévation au zénith, une erreur de distance du signal dans l'espace (SISRE), un sigma Doppler et un modèle d'horloge (sa propre horloge de récepteur, de sorte que le biais inter-systèmes est estimé, ou un décalage diffusé connu). Quatre modes. DOPPLER : positionnement par lots de Gauss-Newton à partir du taux de variation de distance avec dérivées partielles analytiques, états de dérive d'horloge et de vitesse facultatifs et contrainte de hauteur facultative, à un ou plusieurs satellites, l'erreur en fonction de la longueur de la fenêtre, l'enveloppe de Doppler, de taux de Doppler et de saccade de chaque système LEO, et la précision le long de la trace et transversale d'un passage unique en fonction du décalage transversal (l'erreur transversale croît sans borne à mesure que le passage survole l'utilisateur ; un passage unique a aussi une solution miroir de l'autre côté de la trace au sol). Un signal d'opportunité à Doppler seul (starlink-sop) s'exécute ici. JOINT : points fixes de pseudodistance par moindres carrés pondérés à chaque époque à partir du GNSS seul, du LEO seul et des deux, écarts-types par mesure issus d'un modèle de bruit thermique de boucle à verrouillage de retard au C/N0 plus le SISRE (ou un sigma fixe, de sorte qu'un modèle de signal puisse les alimenter), les biais inter-systèmes estimés, et PDOP/HDOP/VDOP en fonction du nombre de satellites LEO ajoutés. POLAR : satellites en vue et DOP en fonction de la latitude pour le GNSS, le LEO et les deux. TIMING : transfert de temps vers le Temps universel coordonné (UTC) à partir de satellites LEO à position connue avec un filtre d'horloge à deux états dont le bruit de processus provient des classes d'oscillateurs du moteur, en fonction du C/N0 et de l'oscillateur, et l'expression temps système vers UTC de l'IS-GPS-200 ; avec [timing] trace = true chaque ligne rapporte aussi son erreur de temps et son sigma prédit à chaque époque. VALIDATED : le plus grand Doppler d'un passage de l'aplomb à l'horizon par rapport aux chiffres publiés d'Iridium (jusqu'à 36 kHz) et de Xona Pulsar X1 (32 à 34 kHz). MODELLED : tout le reste ; le DOP est vérifié par rapport à un cas dérivé à la main, les points fixes par rapport à leur covariance, et le modèle Doppler par rapport à l'identité d'accélération de distance.
celeste-iod-fused-pvt.toml
Positionnement GNSS complété par les deux satellites de démonstration en orbite ESA Celeste.
kind = "leo-pvt"
mode = "joint"
seed = 4
duration_s = 5700.0
step_s = 30.0
lat_deg = 52.22
lon_deg = 4.42
height_m = 5.0leo-doppler-positioning.toml
Positionnement à partir du seul Doppler LEO, sur une constellation de navigation LEO générique.
kind = "leo-pvt"
mode = "doppler"
seed = 7
duration_s = 600.0
step_s = 10.0
lat_deg = 48.14
lon_deg = 11.58
height_m = 520.0leo-pvt-fjord-skyline.toml
Positionnement fusionné MEO et LEO pour un navire au fond d'un fjord, où les parois de la vallée masquent tout ce qui est bas de l'autre côté du chenal : le mode conjoint leo-pvt sous le préréglage d'horizon fjord.
kind = "leo-pvt"
mode = "joint"
seed = 3
duration_s = 1800.0
step_s = 30.0
lat_deg = 61.1
lon_deg = 6.6
height_m = 20.0leo-timing-utc.toml
Transfert de temps vers l'UTC à partir de satellites LEO, par rapport au C/N0 et à l'oscillateur du récepteur.
kind = "leo-pvt"
mode = "timing"
seed = 9
duration_s = 21600.0
step_s = 10.0
lat_deg = 39.99
lon_deg = -105.26
height_m = 1655.0meo-leo-fused-pvt.toml
Positionnement par pseudodistances MEO et LEO fusionné : GPS et Galileo avec une couche de navigation LEO.
kind = "leo-pvt"
mode = "joint"
seed = 3
duration_s = 1800.0
step_s = 30.0
lat_deg = 40.42
lon_deg = -3.70
height_m = 650.0polar-arctic-leo-coverage.toml
Satellites en vue et dilution de précision de l'équateur au pôle : le GNSS MEO seul, une constellation LEO quasi polaire seule, et les deux.
kind = "leo-pvt"
mode = "polar"
duration_s = 7200.0
step_s = 600.0
lat_step_deg = 10.0
lon_step_deg = 45.0
pdop_threshold = 6.0
name = "GPS"starlink-sop-doppler-positioning.toml
Positionnement par Doppler seul à partir d'une constellation à large bande utilisée comme signal d'opportunité.
kind = "leo-pvt"
mode = "doppler"
seed = 11
duration_s = 60.0
step_s = 0.1
lat_deg = 40.0
lon_deg = -83.0
height_m = 220.0leo-signal#
Conceptions de signaux LEO-PNT : signaux paramétrés de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse (LEO), pour tout système, toute bande et toute structure. Un SIGNAL est une bande (fréquence centrale, largeur de bande d'émission, attribution UIT RNSS/RDSS/MSS/EESS/non-RNSS/autre) et des composantes (acquisition, données, pilote ; tout sous-ensemble), chacune avec une modulation (BPSK(n) avec n fractionnaire, BOC(m,n), MBOC(6 1,p) ou une bande plate de type OFDM), une part de puissance, des décalages de sous-porteuses FDMA facultatifs, une longueur de code et un débit de données. Les signaux proviennent de fichiers de préréglages publics compilés dans le logiciel (xona-pulsar, iridium-stl, starlink-soo, centispace, generic-c-band, generic-bands ; chacun avec l'URL de sa source et chaque valeur non publiée étiquetée REPRESENTATIVE) ou sont écrits en ligne. PAR SIGNAL : la densité spectrale de puissance limitée en bande et la fraction de la puissance de chaque composante que la bande d'émission laisse passer (forme close BPSK à côté de la valeur numérique), la largeur de bande efficace (de Gabor), la gigue thermique de suivi de code de la boucle à verrouillage de retard en fonction du C/N0 et de l'espacement avance-retard, d'après la formule avance-retard cohérente (ou non cohérente) limitée en bande de Betz & Kolodziejski 2009, avec sa forme de manuel en bande illimitée et sa borne de Gabor à espacement tendant vers zéro, la précision de mesure de distance en mètres, l'espace de recherche d'acquisition (cases Doppler issues du Doppler maximal de l'orbite plus les termes d'oscillateur et d'utilisateur, multipliées par les cases de code), la probabilité de détection à loi quadratique et le temps moyen d'acquisition série et parallèle sur le code, le coefficient de séparation spectrale du signal vers le GPS L1 C/A, le Galileo E1, le GPS L5, le Galileo E5a, E5b et E5 AltBOC et de chacun vers le signal, avec la dégradation du C/N0, ainsi que les J/S en onde continue, large bande et adapté que la composante suivie tolère, d'après le mécanisme SSC propre au type de scénario spectrum. UN ÉCHANGE DE BANDE : retard ionosphérique du premier ordre (40,3 TEC/f^2), affaiblissement en espace libre, précision de mesure de distance à C/N0 égal et à PIRE égale, et tolérance au brouilleur. Des CONTRÔLES DE FORME facultatifs confrontent le spectre d'une conception à une mesure décrite (cohérence MODELLED). VALIDATED : les formes closes de la puissance dans la bande BPSK (90,3 % dans le lobe principal) et de la largeur de bande de Gabor, la gigue limitée en bande qui se réduit à la forme de manuel avance-retard cohérente et à sa borne de Gabor, le coefficient de séparation spectrale BPSK décalé par rapport à sa forme close de Parseval, l'aire unité du spectre AltBOC, et le Doppler maximal en LEO par rapport aux valeurs publiées de Xona Pulsar (32-34 kHz) et d'Iridium (36 kHz). MODELLED : chaque conception, répartition de puissance, C/N0 et niveau de brouilleur ; les spectres EFQPSK, CSK et OFDM sont approchés.
celeste-iod-classical-pilot-signals.toml
Conceptions de signal Celeste IOD : les bandes de fréquences et la configuration de signal « Classical Pilot » n° 1 de la mission de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse (LEO) Celeste In-Orbit Demonstration (IOD) de l'ESA, sous forme de conceptions de signal paramétrées.
kind = "leo-signal"
noise_figure_db = 2.0
antenna_temp_k = 290.0
loop_bandwidth_hz = 1.0
integration_time_s = 0.02
correlator_spacings_chips = [1.0, 0.5, 0.2, 0.1]
reference_spacing_chips = 0.5
tracking_threshold_dbhz = 25.0leo-band-trade.toml
Compromis de bande LEO-PNT, de l'UHF à la large bande C : ce qu'un signal de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse (LEO) gagne et perd dans chaque bande, indépendamment de tout système particulier.
kind = "leo-signal"
presets = ["generic-bands"]
noise_figure_db = 2.0
antenna_temp_k = 290.0
loop_bandwidth_hz = 1.0
integration_time_s = 0.02
correlator_spacings_chips = [1.0, 0.5, 0.2, 0.1]
reference_spacing_chips = 0.5xona-pulsar-signals.toml
Signaux Xona Pulsar : les signaux X1 (bande L1) et X5 (bande L5) d'une constellation commerciale de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse (LEO), d'après leur table de signaux publiée (Leclère, Marathe et Reid, ION GNSS+ 2025, https://arxiv.org/abs/2509.19551), sous forme du préréglage xona-pulsar compilé dans le code.
kind = "leo-signal"
presets = ["xona-pulsar"]
noise_figure_db = 2.0
antenna_temp_k = 290.0
loop_bandwidth_hz = 1.0
integration_time_s = 0.02
correlator_spacings_chips = [1.0, 0.5, 0.2, 0.1]
reference_spacing_chips = 0.5link-budget#
Bilan de liaison unidirectionnel selon l'équation de liaison CCSDS 401 / DSN 810-005 : affaiblissement en espace libre, C/N₀, Eb/N₀, marge et fermeture pour une PIRE d'émission, un G/T de réception, une distance, un débit de données et une bande (s|x|ka), par rapport à un Eb/N₀ requis. Un calcul d'ingénierie déterministe à partir des entrées fournies (et non la fiche technique d'un terminal étalonné).
link-budget.toml
Démonstrateur de bilan de liaison simple sens (communications et bilans de liaison, niveau étude comparative).
kind = "link-budget"
band = "x"
eirp_dbw = 55.0
g_over_t_db = 53.0
range_km = 2000.0
data_rate_bps = 1.0e6
other_losses_db = 3.0lunar-ascent#
Ascension propulsée MODELLED depuis un site de surface polaire sud jusqu'à l'orbite de rendez-vous, et la covariance de position et de vitesse qu'elle reporte en orbite (classe Artemis). Le modèle d'erreur inertielle à cinq états par axe de lunar-descent (position, vitesse, biais d'accéléromètre, inclinaison d'assiette, biais de gyroscope, piloté par la force spécifique) s'exécute sur les trois axes du site à partir de l'état de surface avec lequel la phase commence ; un point de position AFS issu des relais visibles d'une constellation ILLUSTRATIVE de classe LCNS (autonome, ou différentiel avec le résidu de la liaison de correction de lunar-differential-pnt, avec l'horloge aidée lorsque seuls trois relais sont visibles) est pris à un intervalle déclaré, le temps lunaire entrant par l'horloge du véhicule et une erreur d'horodatage le long de la trajectoire. Rapporte les sources inertielles en forme analytique, la contribution de l'aide, l'ablation, les 1-sigma de navigation sur l'ascension, la dispersion à la coupure des moteurs à côté de la connaissance de navigation, et la covariance MCI 6x6 complète à l'insertion avec la corrélation position-vitesse conservée. MODELLED : classe d'IMU illustrative, force spécifique, ensemble de relais et dispersion à la coupure illustratifs ; erreurs tenues dans les axes du site de lancement ; l'état de sortie nominal est un substitut. Sans aval d'aucune agence ; logiciel à titre consultatif, et non un équipement de navigation certifié.
lunar-ascent.toml
Ascension lunaire : l'ascension propulsée depuis un site de surface polaire sud (classe Artemis) jusqu'à l'orbite de rendez-vous à 100 km, et la covariance de position et de vitesse qu'elle reporte en orbite.
kind = "lunar-ascent"
site_lat_deg = -89.5
site_lon_deg = 0.0
ascent_s = 450.0
insertion_altitude_km = 100.0
accel_bias_ug = 100.0
align_arcmin = 3.0
gyro_bias_deg_per_hr = 0.01Pas encore sur GitHub
lunar-attack-surface#
Surface d'attaque de sécurité des signaux de navigation en surface lunaire (P1) : compose les analyses ouvertes de sécurité des signaux en une seule exécution accessible depuis le binaire. Rapporte (1) la puissance reçue de l'AFS et son EXCÉDENT de puissance par rapport à une référence GPS terrestre, ainsi que la bande de sensibilité de 12-18 dB sous forme de véritable balayage multi-axes sur les entrées de la liaison (niveau de référence x PIRE x distance oblique), avec la réconciliation du facteur linéaire de 25x arrondi / 28x non arrondi. RÉVISÉ (règle R4) : ce rapport indiquait un DÉFICIT de puissance de 15,6 dB et un facteur de 32x/36x jusqu'à ce que la référence GPS soit corrigée de -125 / -128.5 (qui sont les valeurs en dBm) à -155 / -158.5 dBW, les valeurs de l'ICD-GPS-200 que le module de brouillage a toujours portées. Le signe s'inverse : le signal AFS lunaire modélisé est PLUS FORT de 14,4 dB que le GPS L1 C/A terrestre, et non plus faible. La puissance reçue elle-même n'a pas bougé d'un bit, et le facteur linéaire est l'ancien divisé par exactement 1000, ce qui est exactement le décalage de 30 dB entre dBm et dBW ; (2) la puissance d'émission requise de l'attaquant pour leurrer (J/S = 3 dB) et pour interdire (J/S = 30 dB) à chaque distance de sécurité, l'inverse de la liaison J/S ; (3) l'empreinte orbitale de capture sous un diagramme d'antenne réel à ouverture uniforme (Airy [2 J1(x)/x]^2), une calotte sous-hémisphérique limitée par l'altitude dont le limbe N'EST PAS capturé ; (4) un résultat calculé d'accrochage de capture par leurrage de la boucle de poursuite (un leurre à code adapté, à un avantage de puissance et un décalage de code donnés, entraîne-t-il réellement la DLL/PLL), plutôt que le seuil affirmé de 3 dB ; (5) la portée de l'horizon géométrique d'un émetteur de surface surélevé sur un corps sans atmosphère ; et (6) le budget d'authentification OSNMA/TESLA (surcharge de 20 bit/s = ~40 % d'un message de navigation AFS de 50 bit/s, latence de divulgation de clé, falsification à 2^-40). Un corps vide reproduit la référence de base P1 ; chaque entrée a une valeur par défaut et peut être redéfinie. Les sous-résultats VALIDATED portent la référence indépendante de leur module source (radiométrie en dB en forme close ; aller-retour J/S inverse ; diagramme d'Airy par rapport aux Bessel de A&S et à la géométrie de la calotte sphérique ; identité de l'horizon tangent sphérique par rapport à eo_payload ; dimensionnement des champs de l'ICD SIS d'OSNMA). MODELLED : les ordres de grandeur représentatifs de géométrie et de puissance et les valeurs des cellules de la carte de capture. Pas un produit de sécurité certifié.
lunar-attack-surface.toml
Surface d'attaque de la sécurité du signal de navigation en surface lunaire (article P1).
kind = "lunar-attack-surface"
afs_eirp_dbw = 26.0
user_gain_dbi = 3.0
slant_range_m = 3.0e6
carrier_hz = 2.4e9
gps_reference_dbw = -155.0
gps_reference_min_dbw = -158.5
transmitter_altitude_m = 100_000.0lunar-beacon#
Augmentation par balises de surface d'un service de navigation orbital lunaire, sous forme de tableau avant/après exécutable. Un utilisateur au pôle sud voit un ensemble orbital clairsemé dans une étroite portion de ciel, de sorte que la géométrie de mesure de distance est mal conditionnée ; quelques BALISES DE SURFACE RELEVÉES fournissent les lignes de visée à basse élévation et grand azimut qui manquent à un ensemble entièrement au zénith, et la dilution de précision horizontale s'effondre. Le scénario rapporte trois configurations à une même époque — les satellites seuls, les satellites plus les balises visibles, et une constellation plus grande comme autre voie vers la même géométrie — chacune avec ses nombres de sources visibles, son DOP complet, et la précision réalisée à 1 sigma en MÈTRES obtenue en multipliant par une erreur équivalente de mesure de distance par balise, assemblée comme la racine de la somme des carrés des termes de synchronisation d'horloge, de multitrajet et de relevé. La visibilité des balises est l'horizon géométrique à deux hauteurs de la Lune sans atmosphère (pas d'atmosphère, donc la borne est exacte), et l'assemblage du DOP est le même noyau recoupé avec gnss_lib_py dans tests/dop_reference.rs. POURQUOI CE TYPE DE SCÉNARIO EXISTE : le module qui le sous-tend est dans le moteur et contrôlé par rapport à un chemin DOP indépendant depuis L08/L09, mais il n'était pas accessible depuis une exécution — pas de type de scénario, pas de branche de répartition, pas de fichier fourni. Le README annonçait la capacité et la matrice de vérification ne comportait AUCUNE ligne la concernant, de sorte qu'elle était à la fois revendiquée en prose et non revendiquée dans le registre, tout en étant inaccessible dans le moteur. Les valeurs par défaut sont la géométrie qui porte déjà une référence figée validée (un utilisateur à -80 deg avec une antenne de 2 m, trois balises à -80/0, -79/+60 et -79/-60 à 2 km, un instantané illustratif de LCNS à six satellites à t=0, un masque de 5 deg), de sorte qu'une exécution nue reproduit un tableau déjà couvert par une référence indépendante plutôt que d'inventer de nouveaux nombres. MODELLED : la conception de la constellation, le placement des balises et chaque ordre de grandeur du budget d'erreur sont des entrées illustratives, et non un relevé en service ni une liaison mesurée ; seuls l'arithmétique du DOP, la forme close de l'horizon et la relation sigma = DOP x sigma_URE sont ancrés à l'extérieur. Pas un engagement de performance de service.
lunar-beacon.toml
Augmentation par balises de surface d'un service de navigation orbitale lunaire.
kind = "lunar-beacon"
n_satellites = 6
comparison_n_satellites = 24
epoch_s = 0.0
elevation_mask_deg = 5.0
clock_sync_m = 1.0
multipath_m = 0.5
survey_m = 0.3lunar-descent#
Budget de dispersion à l'atterrissage MODELLED pour une descente propulsée vers un site polaire sud (classe Artemis). Par axe horizontal, un modèle d'erreur inertielle à cinq états (position, vitesse, biais d'accéléromètre, inclinaison d'assiette, biais de gyroscope) est piloté par la force spécifique de la descente ; un filtre séquentiel prend les points de position des aides activées : un point AFS issu des relais visibles d'une constellation ILLUSTRATIVE de classe LCNS (autonome, ou différentiel avec le résidu de la liaison de correction de lunar-differential-pnt, avec l'horloge aidée lorsque seuls trois relais sont visibles) et un point relatif au terrain (le comparateur TERCOM/SITAN de la crate sur un relief synthétique, ou la borne de Cramer-Rao de l'appariement d'une fenêtre d'altitude du véritable MNT polaire sud LOLA). Le temps lunaire entre par l'horloge du véhicule aux points (le décalage LTC-TT de lunar-time-offset, ou l'incertitude de sa bande publiée) et sous la forme d'une erreur d'horodatage le long de la trajectoire. Rapporte l'ellipse d'atterrissage à 3 sigma, le R95, les sources inertielles en forme analytique, la contribution de chaque aide, l'ablation de chaque combinaison d'aides, un étalonnage Monte Carlo de l'ellipse, et la covariance transmise. MODELLED : classe d'IMU, ensemble de relais, profil de descente et terme de guidage illustratifs ; la navigation sur terrain utilise un relief synthétique à une échelle en mètres terrestres ; la disponibilité AFS est d'une seule époque sur un masque plat. Sans aval d'aucune agence ; logiciel à titre consultatif, et non un équipement de navigation certifié.
lunar-descent.toml
Dispersion à l'atterrissage lunaire : le budget d'une descente propulsée vers un site polaire sud (classe Artemis), à partir de la dérive inertielle de l'empilement de descente et de ce que la navigation relative au terrain, les signaux LunaNet et le temps lunaire en retirent chacun.
kind = "lunar-descent"
site_lat_deg = -89.5
site_lon_deg = 0.0
more_site_lats_deg = [-89.9, -88.5, -85.0]
descent_s = 600.0
horizontal_speed_m_s = 150.0
accel_bias_ug = 100.0
align_arcmin = 3.0Pas encore sur GitHub
lunar-descent-lola.toml
Dispersion à l'atterrissage lunaire avec le véritable MNT polaire sud LOLA : le budget d'une descente propulsée vers un site polaire sud (classe Artemis), à partir de la dérive inertielle de l'empilement de descente et de ce que la navigation relative au terrain, les signaux LunaNet et le temps lunaire en retirent chacun.
kind = "lunar-descent"
site_lat_deg = -89.5
site_lon_deg = 0.0
more_site_lats_deg = [-89.9, -88.5, -85.0]
descent_s = 600.0
horizontal_speed_m_s = 150.0
accel_bias_ug = 100.0
align_arcmin = 3.0Pas encore sur GitHub
lunar-differential-pnt#
PNT DIFFÉRENTIEL lunaire modélisé (un analogue lunaire du DGNSS/SBAS) : une station de référence de classe NovaMoon, en un lieu sélénographique CONNU, calcule des corrections différentielles par satellite à partir d'une constellation ILLUSTRATIVE de classe Moonlight/LCNS à sources publiques (NovaMoon n'est cité que comme CLASSE de système, sans affiliation à l'ESA), et un utilisateur décalé de baseline_km les applique de sorte que les erreurs d'orbite et d'horloge de MODE COMMUN s'annulent. Le terme d'horloge s'annule EXACTEMENT (une identité algébrique) ; le terme d'orbite ne laisse que la projection de la différence de ligne de visée, qui → 0 quand la ligne de base → 0 (le plancher de décorrélation spatiale) et croît ≈ linéairement avec la ligne de base. Rapporte l'erreur de position 3D de l'utilisateur AVEC et SANS corrections, le facteur de réduction, la courbe d'erreur en fonction de la ligne de base, et un niveau de protection de l'utilisateur qui RÉUTILISE le mécanisme SBAS de la DO-229E (crate::sbas) avec le résiduel différentiel σ. MODELLED — identité d'annulation exacte + modèle de décorrélation au premier ordre ; non vérifié sur des données réelles ; aucun TRL, héritage ni aval d'une agence. Déterministe si initialisé par une graine.
lunar-differential-pnt.toml
PNT DIFFÉRENTIEL lunaire — un analogue lunaire du DGNSS / SBAS.
kind = "lunar-differential-pnt"
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
ref_lat_deg = -89.0
ref_lon_deg = 0.0lunar-frame-campaign#
Datum de référentiel de Helmert (similitude) à sept paramètres piloté par une CAMPAGNE D'OBSERVATION SIMULÉE plutôt que par une transformation injectée. Un réseau de stations terrestres observe un catalogue de balises de surface lunaire selon un calendrier explicite ; les dérivées partielles du retard VLBI lunaire sont accumulées sur ce calendrier en une matrice d'information de Fisher des coordonnées des balises exactement comme le fait lunar-vlbi-fim ; et cette information est propagée par la matrice de conception de Helmert A = [I3 | [p]_x | p] aux points du catalogue jusqu'à la covariance du datum H = A^T M_b A, diagnostiquée par crate::fim::crlb. AUCUNE transformation n'est injectée et rien n'est retrouvé à partir d'une réponse plantée, de sorte que la précision du datum rapportée découle du programme d'observation : diviser par deux le sigma du retard la divise exactement par deux, et allonger l'arc l'améliore parce que la libration que le rapport MESURE (sub_earth_direction_sweep_deg) est ce qui sépare la coordonnée de balise selon la ligne de visée de celles dans le plan du ciel. Le rang, le défaut de datum, le conditionnement, le spectre complet, les directions inobservables DANS LA BASE À SEPT PARAMÈTRES, la direction la plus faible même à plein rang et la part de chaque paramètre dans celle-ci sont émis à chaque exécution ; un paramètre que la campagne ne contraint pas est publié comme NULL avec un statut, jamais lu dans une inverse quasi singulière. La corrélation des erreurs de balises est mesurée, non supposée : avec les stations maintenues fixes, aucune observation ne touche deux balises, de sorte que la matrice d'information est exactement bloc-diagonale (offblock_fraction 0), et avec les stations estimées, le bloc marginalisé par Schur est couplé, la corrélation induite étant imprimée et toute la propagation étant relancée sans elle, de sorte que le prix d'une hypothèse d'indépendance est un nombre. La même propagation sous un sigma isotrope par coordonnée, et l'erreur de récupération que rapporte le scénario lunar-frame-realisation, sont toutes deux exécutées ici et imprimées à côté de la valeur de la campagne avec leurs rapports. MODELLED : le catalogue de balises est sourcé mais la CAMPAGNE est simulée — le réseau de stations et le sigma du retard sont des entrées illustratives, les observations de retard individuelles sont traitées comme indépendantes, et l'éphéméride du centre de la Lune, les horloges des stations, la troposphère et les paramètres d'orientation de la Terre sont maintenus FIXES, de sorte que la covariance du datum est une borne de Cramer-Rao pour un jeu de paramètres réduit. Pas un produit géodésique.
lunar-frame-campaign.toml
Datum de référentiel lunaire de Helmert à sept paramètres piloté par une CAMPAGNE D'OBSERVATION SIMULÉE (G9).
kind = "lunar-frame-campaign"lunar-frame-realisation#
Réalisation modélisée du référentiel lunaire : ajustement d'un datum de Helmert (similitude) à 7 paramètres — 3 de translation, 3 de rotation à petit angle, 1 d'échelle — rattachant un ensemble estimé de coordonnées de points MCMF dérivées de coordonnées sélénographiques à un datum par moindres carrés pondérés (crate::batch_ls::gauss_newton), plus un simple rattachement d'orientation exprimant la petite rotation réalisée autour des axes de l'ICRF par rapport à l'orientation du corps WGCCRE de l'UAI 2015. Le scénario injecte une petite transformation connue (translation ~dizaines de m, rotation ~µrad, échelle ~1e-7) dans un réseau de points synthétique bien réparti, ajoute un bruit gaussien initialisé par une graine, retrouve le datum, et rapporte la transformation retrouvée, l'erreur de récupération par paramètre par rapport à la vérité injectée, et le résiduel RMS après ajustement. Autocohérence MODELLED — retrouve une transformation de similitude injectée (sans bruit à ~la précision machine), et NON une réalisation par rapport à de vraies données de suivi/VLBI ; déterministe (graine) ; aucun TRL, héritage ni aval d'une agence.
lunar-frame-realisation.toml
Réalisation du référentiel lunaire — ajustement d'un datum de Helmert (similitude) à 7 paramètres.
kind = "lunar-frame-realisation"
n_points = 8
tx_m = 25.0
ty_m = -40.0
tz_m = 15.0
rot_x_urad = 3.0
rot_y_urad = -2.0
rot_z_urad = 5.0lunar-infrastructure#
Études MODELLED de l'orbite et de la surface de la Lune comme infrastructure de navigation et de géodésie, cinq études derrière un seul type de scénario choisi par study : od-consistency (détermination d'orbite embarquée par GNSS terrestre en NRHO ou ELFO par rapport à une détermination d'orbite radiométrique au sol indépendante, jugées par leurs propres covariances sur une simulation de Monte-Carlo initialisée par une graine), carrier-phase (phase de la porteuse en double différence conjointe surface-orbiteur et résolution de l'ambiguïté entière avec LAMBDA), frame-coestimation (une station de surface et des orbiteurs ajoutés à la télémétrie de stations terrestres pour le datum de référentiel lunaire à sept paramètres), space-tie (GNSS, VLBI et télémétrie laser sur un même engin spatial, précision du rattachement de référentiel par rapport à l'erreur de rattachement local) et geodesy-sensitivity (information de Fisher des nombres de Love lunaires h2, k2, l2 et de la libration physique à partir de la télémétrie laser, du suivi d'orbiteur, d'un gravimètre de surface et d'une horloge de surface). Un modèle restreint à trois corps avec des simplifications énoncées ; les calculs numériques sont vérifiés par rapport à des programmes indépendants et rien n'est comparé à une mesure d'une grandeur lunaire.
lunar-infrastructure-carrier-phase.toml
Scénario lunar-infrastructure de Kshana : phase de la porteuse, l'exemple RAPIDE (deux arcs courts, 10 tirages, quelques secondes ; la configuration évaluée, trois arcs et 400 tirages, est xval/lunar-infra/scenarios/carrier-phase-scored.toml). MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "carrier-phase"
seed = 20261019
family = "nrho"
sample_s = 600.0
arcs_days = [0.25, 0.5]
lat_deg = 0.0
lon_deg = 0.0lunar-infrastructure-frame-coestimation.toml
Scénario lunar-infrastructure de Kshana : frame-coestimation. MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "frame-coestimation"
seed = 20261019
family = "nrho"
arc_days = 6.56
sample_s = 900.0
sigma_m = 0.05
epochs = 200lunar-infrastructure-geodesy-sensitivity.toml
Scénario lunar-infrastructure de Kshana : geodesy-sensitivity. MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "geodesy-sensitivity"
seed = 20261019
sigma_m = 0.05
epochs = 400
sigma_mm_s = 0.05
arc_days = 27.3
sample_s = 3600.0lunar-infrastructure-od-consistency.toml
Scénario lunar-infrastructure de Kshana : od-consistency. MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "od-consistency"
seed = 20261019
family = "nrho"
arc_days = 3.0
sample_s = 600.0
altitude_km = 20180.0
inclination_deg = 55.0lunar-infrastructure-od-consistency-model-error.toml
Scénario lunar-infrastructure de Kshana : od-consistency avec une accélération non modélisée. MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "od-consistency"
seed = 20261019
family = "nrho"
arc_days = 3.0
sample_s = 600.0
altitude_km = 20180.0
inclination_deg = 55.0lunar-infrastructure-space-tie.toml
Scénario lunar-infrastructure de Kshana : space-tie. MODELLED ; la conception, les entrées et les seuils sont fixés dans xval/lunar-infra/PREREGISTRATION.md (versionné avant toute exécution). Les entrées ILLUSTRATIVE y sont étiquetées avec leurs sources publiques.
kind = "lunar-infrastructure"
study = "space-tie"
seed = 20261019
family = "nrho"
arc_days = 6.56
sample_s = 900.0
gnss_sigma_m = 10.0
vlbi_sigma_m = 1.0lunar-integrity#
Passage de niveau de protection ARAIM au pôle sud lunaire par rapport à un ensemble représentatif de relais LunaNet. sigma_ure_m expose la précision de mesure de distance du signal dans l'espace (les niveaux de protection lui sont proportionnels, de sorte que la balayer répond à la question de la précision de mesure de distance qu'exige une limite d'alerte). Par défaut, le cas historique du pôle sud de classe LNIS.
lunanet-araim.toml
Intégrité au pôle Sud lunaire : un récepteur posé dans la région d'Artemis face à un ensemble représentatif de relais LunaNet, niveaux de protection ARAIM sur un passage de 24 h.
kind = "lunar-integrity"
step_s = 3600.0
duration_s = 86400.0
alert_limit_m = 50.0
p_hmi = 1.0e-4lunar-interop-export#
Export d'interopérabilité lunaire modélisé : émet le référentiel lunaire, l'échelle de temps lunaire et l'éphéméride lunaire sous des formes d'échange alignées sur LunaNet/IOAG et fondées sur le CCSDS, avec vérification d'aller-retour et de correspondance des champs. RÉUTILISE l'émetteur+analyseur CCSDS OEM 2,0 du crate (crate::oem) rebaptisé pour le contexte lunaire — le REF_FRAME de l'OEM porte le référentiel de corps lunaire WGCCRE de l'UAI 2015 (MOON_ME / MOON_PA), TIME_SYSTEM l'échelle de temps lunaire (LTC / TCL / UTC), CENTER_NAME = MOON — sur un échantillon d'éphéméride illustratif de classe LCNS (positions issues de crate::lunar_service, vitesse par différence finie). Émet aussi un descripteur de temps lunaire aligné sur LunaNet/IOAG (identifiant d'échelle, taux séculaire µs/jour issu de crate::lunar_time, bande publiée, surface de référence) qui fait l'aller-retour via serde_json, et enveloppe les artefacts dans l'enveloppe KIF existante (crate::interchange) avec l'étiquette d'honnêteté MODELLED. Rapporte les artefacts émis, le nombre de lignes OEM, la réussite du contrôle de correspondance des champs + la liste des champs présents/manquants, l'aller-retour OEM réussi, l'aller-retour des métadonnées de temps réussi, et la taille en octets du KIF. MODELLED — l'aller-retour déterministe + la correspondance des noms de champs par rapport au CCSDS OEM publié + la sémantique des champs de LunaNet/IOAG sont la référence indépendante ; PAS un test de respect de la norme d'interopérabilité certifié ; éphéméride illustrative à sources publiques, sans affiliation à l'ESA ; aucun TRL, héritage ni aval d'une agence.
lunar-interop-export.toml
Export d'interopérabilité lunaire — échange fondé sur CCSDS, aligné LunaNet / IOAG.
kind = "lunar-interop-export"
frame = "MOON_ME"
time_system = "LTC"
n_states = 9
step_min = 30.0
epoch = "2030-01-01T00:00:00"
object = "LCNS-ILLUSTRATIVE-1"lunar-jamming#
Brouillage RF propre à la Lune : rapport brouilleur/signal par satellite, C/N₀ effectif et perte d'accrochage pour un utilisateur de surface sélénographique sous un brouilleur de surface lunaire (ou surélevé), sur la constellation illustrative de classe Moonlight/LCNS en orbite lunaire, à sources publiques. Compose la physique ouverte existante du brouillage (jamming::j_over_s_db, effective_cn0_dbhz, rx_antenna_gain_db, lock_status, q_factor) avec la géométrie existante du ciel lunaire (lunar_service::LunarConstellation + topocentric, lunar::selenographic_to_mcmf) ; aucune géométrie ni radiométrie n'est redérivée. Contrairement au type de scénario terrestre jamming, la branche du signal n'est PAS une puissance reçue fixe : la puissance reçue isotrope de chaque satellite est son propre bilan de liaison PIRE − FSPL(distance oblique), de sorte que le J/S varie d'un satellite à l'autre avec la distance et l'élévation lunaires. Rapporte UNE LIGNE PAR LIAISON (époque, satellite) VISIBLE — azimut, élévation, distance oblique, les deux puissances reçues dont le J/S est la différence, le J/S, le C/N₀ nominal et effectif et l'état d'accrochage — plus des chiffres de mérite agrégés à côté de ce tableau (jamais à sa place), et le même tableau sous forme d'artefact CSV. Chaque champ numérique émis porte une unité et une classe de provenance. Les sous-résultats VALIDATED portent la référence indépendante de leur module source (l'équation anti-brouillage et la liaison J/S de Kaplan & Hegarty §9,4, référencées de façon externe dans tests/gnss_denied_jamming_resilience_reference.rs ; la géométrie lunaire de lunar_service). La composition elle-même est recoupée avec un chemin indépendant à deux bilans de liaison (linkbudget::received_signal_power_dbw, une expression différente de l'affaiblissement en espace libre) à 1e-9 dB près. MODELLED : la constellation illustrative, la PIRE / puissance du brouilleur / gains d'antenne / température de bruit représentatifs, et l'absence d'ombrage par le terrain, de multitrajet, de dynamique de CAG et d'annulation adaptative. Pas un produit certifié de déni de service. Lorsqu'un brouilleur est configuré, le rapport porte aussi un CONTOUR DE DÉNI AVEC UNE BANDE D'INCERTITUDE plutôt qu'un contour lu à partir d'un seul scalaire : la distribution mesurée complète du C/N₀ du signal utile sur le tableau par satellite (n, min, p05, p25, médiane, p75, p95, max, moyenne, écart-type de l'échantillon, et l'asymétrie propre de l'échantillon), et le contour évalué à chacune de ces statistiques d'ordre selon les DEUX critères de déni que le moteur reconnaît — celui en vigueur par rapport de puissance (J/S = 30 dB, comme dans attack-surface et tracking-loop) et celui de perte d'accrochage (C/N₀ effectif tombant à tracking_threshold_dbhz, le critère qu'utilise la propre colonne d'état de ce rapport) — sur les deux axes du plan de déni (PIRE de brouilleur requise à la distance de sécurité du scénario, distance de sécurité de déni à la PIRE du scénario). Les bords de la bande SONT contour(p05) et contour(p95), la même application en forme close appliquée aux propres quantiles de l'échantillon : non un sigma ajusté à l'échantillon et non médiane ± k·écart-type, l'écart-type étant émis par continuité et n'étant utilisé par rien. Un quantile déjà égal ou inférieur au seuil de suivi n'a pas de J/S de déni fini et ses colonnes de perte d'accrochage sont nulles avec une raison comptée, jamais un rayon borné.
lunar-jamming.toml
Brouillage RF d'origine lunaire : J/S par satellite pour un utilisateur en surface lunaire.
kind = "lunar-jamming"
n_sats = 4
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
site_lat_deg = -89.67
site_lon_deg = 129.78lunar-joint-od-clock#
Estimateur par lots modélisé conjoint multi-techniques de détermination d'orbite lunaire + horloge sur un réseau SIMULÉ : un ajustement instantané de Gauss-Newton qui fusionne les retards VLBI géodésiques sur des lignes de base terrestres, les distances station↔satellite locales à la Lune et les distances inter-satellites pour retrouver, ensemble, la position 3D d'une station de surface lunaire, les positions d'une petite constellation et le décalage d'horloge de chaque élément à partir d'une vérité injectée. Le résultat principal, honnête — le VLBI rend observable la position 3D complète de la station là où la seule télémétrie locale à la Lune laisse une direction faiblement observée — est rapporté sous la forme du contraste d'erreur de station avec et sans VLBI. Récupération en boucle fermée simulée MODELLED (la vérité partage le modèle d'observation), déterministe (graine), NON vérifiée sur des données réelles ; aucune propagation par modèle de forces dans le résolveur ; aucun TRL, héritage ni aval d'une agence.
lunar-joint-od-clock.toml
Détermination conjointe d'orbite multitechnique et d'horloge lunaires (un réseau SIMULÉ).
kind = "lunar-joint-od-clock"
n_sat = 3
n_earth = 6
seed = 42
sigma_vlbi_s = 1.0e-11
sigma_range_m = 0.1
sigma_isl_m = 0.1
station_lat_deg = -88.0lunar-llr-datum#
Datum de référentiel lunaire de Helmert à sept paramètres piloté par une campagne d'observation RÉELLE et ARCHIVÉE plutôt que simulée. Là où lunar-frame-campaign avait retiré la transformation injectée mais énonçait encore son réseau de stations, son calendrier et son sigma par observation comme des entrées ILLUSTRATIVE, ce type de scénario prend les trois à partir de mesures : les époques sont les heures d'émission depuis le sol de points normaux archivés des données consolidées de télémétrie laser (CLRD) de l'ILRS, les observations sont les mesures laser réellement tirées vers les cinq réseaux de rétroréflecteurs sur la Lune, et chaque poids d'observation est la propre précision archivée de ce point normal, bin_rms/sqrt(n_raw), lue dans le fichier. Les coordonnées des stations proviennent de la solution SLR ITRF2020 de l'IERS (propagées à l'époque par leurs vitesses publiées) et celles des réflecteurs de la Table 7 de JPL DE430 dans le référentiel Terre moyenne/rotation moyenne que réalise le modèle WGCCRE de l'UAI 2015. Les dérivées partielles de distance s'accumulent dans la matrice d'information de Fisher conjointe des coordonnées des réflecteurs et se propagent par la même matrice de conception de Helmert jusqu'à la covariance du datum, diagnostiquée par crate::fim::crlb. Le rang, le défaut, le conditionnement, le spectre, les directions inobservables dans la base à sept paramètres, la direction la plus faible à plein rang et la part de chaque paramètre dans celle-ci sont émis à chaque exécution, et un paramètre non contraint est publié comme NULL avec un statut. La corrélation entre réseaux est MEASURED à exactement zéro plutôt que supposée, parce qu'une mesure laser touche un seul réseau. Un enregistrement que les catalogues ne peuvent pas placer — une station sans position ITRF publiée — est IGNORÉ ET COMPTÉ, sans jamais recevoir de coordonnée de substitution. LES LIAISONS MEASURED ET CELLES QUI SONT MODELLED, C'EST LE RAPPORT, PAS UNE NOTE DE BAS DE PAGE : l'éphéméride du centre de la Lune et l'orientation du corps de l'UAI restent modélisées et leur taille combinée est émise sous forme du résiduel de distance aller observé moins calculé sur chaque point utilisé ; la troposphère, les marées du corps solide, l'excentricité de la station, le mouvement du pôle, UT1-UTC, le retard relativiste et les horloges des stations sont absents et inclus dans ce résiduel. Comme une erreur d'éphéméride n'atteint une covariance que par la direction de chaque ligne de visée, chaque exécution résout aussi à nouveau tout le datum avec toutes les dérivées partielles inclinées de sensitivity_tilt_deg (signe alterné) et émet le rapport, de sorte que l'insensibilité de la covariance à l'éphéméride modélisée est un nombre plutôt qu'un argument. Les chiffres de la campagne simulée sont EXÉCUTÉS et imprimés à côté de ceux mesurés, et non transcrits. MODELLED : les chiffres à sept paramètres sont une borne de Cramer-Rao pour un jeu de paramètres réduit sur un calendrier réel — pas un datum résolu, pas une analyse LLR et pas un produit géodésique. La tranche de données réelles consignée est livrée avec le dépôt mais pas avec le crate publié ; faites pointer data_dir vers une copie de celle-ci.
lunar-llr-datum.toml
Datum de référentiel lunaire de Helmert à sept paramètres issu d'une campagne d'observation RÉELLE et ARCHIVÉE (V3).
kind = "lunar-llr-datum"lunar-station-geodesy-baseline.toml
Géodésie de la station de référence lunaire, RÉFÉRENCE DE BASE : les cinq réseaux de rétroréflecteurs actuels seuls.
kind = "lunar-llr-datum"
epoch_year = 2024
epoch_month = 1
epoch_day = 1
arc_hours = 672.0
step_min = 60.0
delay_sigma_s = 1.0e-11
elevation_mask_deg = 10.0lunar-station-geodesy-with-station.toml
Géodésie d'une station de référence lunaire, AVEC STATION : les cinq réseaux de rétroréflecteurs plus un rétroréflecteur et une balise VLBI sur le site d'une station de référence lunaire au pôle Sud.
kind = "lunar-llr-datum"
extra_earth_elevation_mask_deg = 0.0
name = "lunar-reference-station-reflector"
lat_deg = -89.0
lon_deg = 0.0
alt_m = 0.0
name = "lunar-reference-station-beacon"
lat_deg = -89.0lunar-orbit-rendezvous#
Navigation relative MODELLED pour un amarrage de type Orion-atterrisseur sur une orbite lunaire basse ou une orbite polaire elliptique (classe Artemis). Un chasseur et une cible volent sur la même orbite sous le modèle de forces lunaires de la crate ; une estimation conjointe par lots de Gauss-Newton à 21 paramètres sur l'arc (deux états de véhicule et des biais persistants du signal dans l'espace) fusionne un point de position absolu par véhicule issu d'un ensemble de relais ILLUSTRATIVE de classe LCNS (relais derrière la Lune écartés, quatre nécessaires, l'erreur de signal dans l'espace en mode commun s'annulant entre les véhicules) et une distance par liaison croisée, avec une précision de mesure de distance tirée de la borne de suivi de code sur le pilote AFS de LunaNet. Rapporte l'erreur de position et de vitesse relatives formelle et Monte Carlo dans les axes LVLH de la cible, la disponibilité des points, l'erreur d'estimation normalisée moyenne au carré par rapport à sa valeur attendue, et tout essai dont l'itération n'a pas convergé, la dérive due à l'omission des harmoniques de gravité, et la covariance 6x6 complète transmise. Une vérification de Hill/Clohessy-Wiltshire en forme analytique s'applique au cas circulaire. MODELLED : ensemble de relais, budget d'erreur et a priori illustratifs ; la vérité et l'estimateur partagent un même modèle de forces, de sorte que la NEES vérifie l'autocohérence et non l'erreur de modèle. Sans aval d'aucune agence ; logiciel à titre consultatif, et non un équipement de navigation certifié.
lunar-orbit-rendezvous.toml
Rendez-vous lunaire : navigation relative pour un amarrage de type Orion-atterrisseur sur une orbite lunaire basse polaire circulaire à 100 km (classe Artemis), avec un champ de gravité lunaire et des signaux de type LunaNet.
kind = "lunar-orbit-rendezvous"
orbit = "llo"
separation_m = 2000.0
arc_s = 7200.0
step_s = 20.0
n_relays = 8
sis_ure_m = 30.0
common_mode_fraction = 0.9Pas encore sur GitHub
lunar-orbit-rendezvous-elfo.toml
Rendez-vous lunaire en orbite polaire elliptique : navigation relative pour un amarrage de type Orion-atterrisseur sur une orbite polaire de 100 km sur 3000 km avec le périapse au-dessus du pôle sud (classe Artemis), avec un champ de gravité lunaire et des signaux de type LunaNet.
kind = "lunar-orbit-rendezvous"
orbit = "elfo"
separation_m = 2000.0
arc_s = 7200.0
step_s = 20.0
n_relays = 8
sis_ure_m = 30.0
common_mode_fraction = 0.9Pas encore sur GitHub
lunar-station-coverage#
Couverture modélisée d'une station de référence lunaire : un balayage de Monte-Carlo du modèle de PNT différentiel lunaire sur une grille d'utilisateurs du pôle sud et une journée d'époques. Une station de référence différentielle en un site connu du pôle sud corrige une constellation donnée (képlérienne illustrative ou éphéméride tabulée) avec une erreur de signal dans l'espace, une erreur de relevé, une latence de correction et une quantification de liaison données ; par point et sur la région, elle rapporte l'erreur de position corrigée et non corrigée en percentile (3D, horizontale, verticale), la disponibilité, la couverture par rapport à un seuil donné, les niveaux de protection DO-229E, le rayon de couverture par azimut et le bilan de la liaison de correction à la station et au pire point. Pas une déclaration sur la performance d'un système réel ; sans affiliation ni aval d'aucune agence. MODELLED.
lunar-station-coverage.toml
Couverture d'une station de référence lunaire : quelle précision de positionnement et quel niveau de protection un utilisateur obtient d'une station de référence différentielle lunaire sur un site connu du pôle Sud, sur la région polaire sud et sur une journée.
kind = "lunar-station-coverage"
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
mask_deg = 5.0
station_lat_deg = -89.0lunar-station-coverage-public-sources.toml
Couverture d'une station de référence lunaire selon les hypothèses PUBLIQUEMENT ÉNONCÉES : le même type de scénario que lunar-station-coverage.toml, chaque entrée qu'une source publique énonce étant fixée d'après elle et citée par identifiant de source ; chaque entrée qu'aucune source n'énonce est conservée à la valeur par défaut de l'arborescence et étiquetée ILLUSTRATIVE. Sources (consultées le 2026-10-12 ; titres, identifiants et licences dans docs/LUNAR-REFERENCE-STATION.md) : S1 arXiv:2602.08432v3 S2 IOAG Cislunar PNT Workshop 2025, "Lunar local Differential PNT and Selenodetic Reference Station" (diapositives) S3 UNOOSA ICG WG-B, Lunar PNT, June 2024 (LunarPNT_Jun24_01_04.pdf) S4 IOAG Cislunar 2026, "Moonlight Programme Development Status"
kind = "lunar-station-coverage"
n_sats = 4
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
mask_deg = 5.0
station_lat_deg = -89.4765lunar-station-coverage-terrain.toml
Couverture d'une station de référence lunaire avec relief : le scénario lunar-station-coverage fourni, avec un horizon par site tracé par lancer de rayons sur un véritable modèle numérique de terrain lunaire à la station et à chaque point utilisateur, à la place du seul masque d'élévation plat.
kind = "lunar-station-coverage"
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
mask_deg = 5.0
station_lat_deg = -89.0lunar-surface#
Disponibilité du positionnement et de la synchronisation temporelle en surface MODELLED par site et par saison pour des sites polaires sud de classe Artemis. Pour chaque site et chaque saison (une époque et une fenêtre après elle), elle rapporte le positionnement par relais (quatre relais ou plus d'une constellation ILLUSTRATIVE de classe LCNS en vue et PDOP sous un seuil, issus des mêmes fonctions que moonlight-service-volume et, avec une section de terrain, la ligne d'horizon tracée par rayons du terrain de lunar-station-coverage), si la Terre et le Soleil sont au-dessus de l'horizon du site (Soleil, Lune et orientation lunaire analytiques, libration comprise, ce qui varie avec la saison), et la disponibilité de la synchronisation temporelle (un relais ou la Terre en vue) avec la plus longue période sans aucun des deux, le holdover qu'une horloge de surface doit traverser. Un résultat à site unique égale celui de moonlight-service-volume au bit près. MODELLED : ensemble de relais képlériens illustratif sur une Lune à rotation moyenne ; le chiffre des relais ne change pas avec la saison ; le terrain est la découpe LOLA de 1200 m. Sans aval d'aucune agence ; logiciel à titre consultatif, et non un équipement de navigation certifié.
lunar-surface.toml
Disponibilité du PNT et de la synchronisation temporelle en surface lunaire par site et par saison (sites polaires sud de classe Artemis).
kind = "lunar-surface"
season_dates = ["2028-01-01", "2028-04-01", "2028-07-01", "2028-09-30"]
window_days = 27.3217
step_min = 30.0
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7Pas encore sur GitHub
lunar-surface-terrain.toml
Disponibilité du PNT et de la synchronisation temporelle en surface lunaire par site et par saison avec le véritable horizon du terrain polaire sud LOLA (sites polaires sud de classe Artemis).
kind = "lunar-surface"
season_dates = ["2028-01-01", "2028-04-01", "2028-07-01", "2028-09-30"]
window_days = 27.3217
step_min = 30.0
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7Pas encore sur GitHub
lunar-time-budget#
Budget d'erreur de temps de bout en bout MODELLED du Temps lunaire coordonné (LTC) : les sept termes d'erreur du LTC assemblés sous forme de courbes d'erreur de temps x_i(τ) sur toute une grille de temps de moyennage, sommés quadratiquement en x_Σ(τ), et le τ de CROISEMENT horloge-référentiel auquel le terme d'horloge croissant dépasse le terme constant de réalisation du référentiel en temps réel (en dessous, le budget est limité par le référentiel, au-dessus, limité par l'horloge) — la réponse honnête à l'artefact du τ unique. Les pentes en τ sont en forme close et vérifiables analytiquement (horloge τ^{+1/2}/τ^{+1}, planchers τ^0, mesure τ^{-1/2}) et les lignes d'horloge reproduisent les spécifications d'horloge publiées sur un jour (crate::clock_specs) ; les ORDRES DE GRANDEUR des planchers de liaison RF/optique, de réalisation du référentiel, de résiduel relativiste et d'éphéméride sont des allocations de budget modélisées (valeurs par défaut documentées, redéfinissables par l'appelant), et non des mesures. L'apport est le τ de croisement reproductible, et non un nombre certifié par terme ; non certifié pour la tenue du temps en exploitation.
lunar-station-time-lab.toml
Laboratoire de temps d'une station de référence lunaire : une horloge au rubidium miniature (miniRAFS) asservie au temps lunaire coordonné (LTC) puis laissée en dérive libre.
kind = "lunar-time-budget"
clock = "passive-h-maser"
clock = "mini-rafs"
steer_residual_ns = 0.5
ltc_realisation_ns = 0.05
station_height_sigma_m = 0.0
thresholds_ns = [1.0, 10.0, 100.0]
horizons_s = [3600.0, 86400.0, 604800.0, 2592000.0]lunar-time-budget.toml
Budget d'erreur de temps de bout en bout du Temps lunaire coordonné (LTC) sur une grille de tau.
kind = "lunar-time-budget"
clock = "passive-h-maser"lunar-time-offset#
Taux d'horloge relativiste Terre–Lune modélisé (Temps lunaire coordonné, LTC/TCL) : le taux séculaire LTC−TT issu de la différence de potentiel propre et du terme cinétique de la Lune, rapporté avec la bande publiée de 56–59 µs/jour, plus le décalage accumulé sur un horizon.
lunar-time-offset.toml
Temps-coordonnée lunaire (LTC/TCL) : la cadence relativiste de l'horloge Terre-Lune.
kind = "lunar-time-offset"
epoch_year = 2000
epoch_month = 1
epoch_day = 1
horizon_days = 1.0lunar-vlbi#
Observable de retard VLBI géodésique lunaire modélisé : une ligne de base terrestre (deux stations au sol, GCRS) observe un signal aller d'une balise de surface lunaire de classe NovaMoon. Émet le retard en champ proche par différence de deux distances, son taux, et la correction de courbure du front d'onde en champ proche sur un passage — recoupé avec l'observable Δ-DOR à onde plane du même code source dans la limite du champ lointain, avec des dérivées partielles vérifiées par différences finies. Le chemin analytique par défaut est MODELLED et comporte les réserves de cohérence de référentiel, de mouvement du pôle xp=yp=0 et d'onde plane contre champ proche. Définir planetary_kernel_path, earth_orientation_kernel_path et moon_orientation_kernel_path exécute à la place le chemin par noyaux (DE440, MOON_PA_DE440, ITRF93 ; temps de trajet lumineux barycentriques convergés ; ajoute les dérivées partielles de la balise et des stations de l'époque), dont le retard newtonien et les dérivées partielles concordent avec les temps de trajet lumineux convergés de NAIF SPICE à 0,06 ps et 7.4e-9. Non vérifié sur de vraies données VLBI.
lunar-vlbi.toml
VLBI géodésique lunaire : une base terrestre observant une balise en surface lunaire.
kind = "lunar-vlbi"
beacon_lat_deg = 0.0
beacon_lon_deg = 0.0
beacon_alt_m = 0.0
epoch_year = 2024
epoch_month = 1
epoch_day = 1
horizon_hours = 6.0lunar-vlbi-fim#
Covariance des coordonnées de station en VLBI lunaire : les dérivées partielles de retard de l'observable lunar-vlbi accumulées sur un CALENDRIER explicite (lignes de base x époques) en une matrice d'information de Fisher, inversée, et rapportées comme la covariance des coordonnées de station et le sigma de station par coordonnée — une sortie de moteur calculée plutôt qu'une précision de retard scalaire passée à travers un facteur d'équipartition isotrope supposé g = 3. L'état porte des coordonnées de station FIXES dans le référentiel terrestre (ITRS), de sorte que la jacobienne est la dérivée partielle inertielle tournée par la matrice GCRS->ITRS de chaque époque : la rotation de la Terre est ce qui rend ces coordonnées observables, et le rapport MESURE le balayage de la ligne de visée dans le référentiel terrestre et la déclinaison de la balise plutôt que de les supposer. Une observation est une paire (ligne de base, époque) avec les DEUX stations au-dessus du masque d'élévation, pondérée par 1/delay_sigma_s^2. Rapporte à chaque exécution le rang, le défaut de datum, le nombre de conditionnement, le spectre d'information complet, la matrice de covariance, les sigmas par station, par axe et en 3D, et l'espace nul du réseau libre ; en cas de déficience de rang, le sigma principal est publié comme NULL avec un statut, jamais lu dans un inverse quasi singulier. La valeur d'équipartition c*delay_sigma_s*sqrt(g/N) pour le MÊME calendrier est émise à côté de la valeur calculée avec le rapport, ainsi que la borne isotrope de trace sqrt(p/trace(M)) que l'AM-HM rend plancher strict — de sorte que le rapport est l'anisotropie que l'hypothèse écartait. La fermeture de retard tau_ik = tau_ij + tau_jk ne rend géométriquement indépendantes que n-1 des n(n-1)/2 lignes de base ; le rapport énonce les deux nombres. MODELLED : l'éphéméride du centre de la Lune, les horloges de station, la troposphère et les paramètres d'orientation de la Terre sont maintenus FIXES et les observations sont traitées comme indépendantes, de sorte que la covariance est une borne de Cramer-Rao pour un jeu de paramètres réduit, non un résultat de session prédit ; le sigma de retard, les coordonnées de station et le calendrier sont des entrées. La dérivée partielle que la jacobienne du retard géométrique laisse de côté (le terme de Shapiro différencié) est mesurée par différence finie et émise. Pas un produit géodésique.
lunar-vlbi-fim.toml
Covariance des coordonnées de stations VLBI lunaires à partir d'un programme d'observation explicite (G8, article D3).
kind = "lunar-vlbi-fim"mars-pnt#
PNT martien en espace lointain : une constellation simulée de relais MARCONI (relais aréostationnaires + inclinés diffusant à sens unique + relayant en aller-retour vers une station en espace lointain) navigue pour un utilisateur de référence (transfert | lmo | surface) grâce à l'estimateur conjoint de fusion radiométrique à sens unique/aller-retour. Rapporte par époque la géométrie/visibilité, le RMS atteint par rapport à la vérité, et la covariance formelle (position à 1σ / 3σ) — une figure de mérite simulée honnête, PAS un niveau de protection certifié.
mars-pnt-lmo.toml
PNT martien — un utilisateur en orbite basse de Mars navigué par rapport à la constellation de relais MARCONI simulée (relais aréostationnaires diffusant en sens unique + relayant en aller-retour vers une station d'espace lointain) par l'estimateur de fusion radiométrique conjoint sens unique/aller-retour.
kind = "mars-pnt"
user = "lmo"
clock_class = "uso"
step_s = 60.0
duration_s = 7200.0
nmax = 4
range_sigma_m = 1.0
doppler_sigma_mps = 1.0e-4mars-pnt-surface.toml
PNT martien — un utilisateur fixe en surface (un atterrisseur / rover sur la surface tournante de Mars) navigué par rapport à la constellation de relais MARCONI simulée par l'estimateur de fusion radiométrique conjoint sens unique/aller-retour.
kind = "mars-pnt"
user = "surface"
clock_class = "uso"
step_s = 30.0
duration_s = 7200.0
nmax = 4
range_sigma_m = 1.0
doppler_sigma_mps = 1.0e-4mars-pnt-transfer.toml
PNT martien — un utilisateur de transfert / de capture martien (un arc aréocentrique haut et excentrique — le long arc qu'un véhicule parcourt à l'approche / sur une orbite de capture) navigué par rapport à la constellation de relais MARCONI simulée par l'estimateur de fusion radiométrique conjoint sens unique/aller-retour.
kind = "mars-pnt"
user = "transfer"
clock_class = "dsac"
step_s = 120.0
duration_s = 28800.0
nmax = 4
range_sigma_m = 1.0
doppler_sigma_mps = 1.0e-4mission-thread#
Budget d'erreur de navigation et de synchronisation MODELLED d'une chaîne déclarée de phases de mission, du lancement à l'entrée : lancement et ascension, rendez-vous et amarrage en orbite basse terrestre (répétable), injection trans-lunaire et croisière cislunaire, rendez-vous en orbite lunaire, descente, séjour en surface, ascension, puis retour et entrée, chaque phase étant l'un des huit types enregistrés avec ses propres capteurs et son propre filtre. La covariance 6x6, l'horloge et le référentiel sont transmis d'une phase à l'autre selon une règle déclarée (carry, inflate ou reacquire) ; les conversions de référentiel et d'échelle de temps (GCRF, MCI, MCMF, UTC, TT, TDB, LTC) sont des lignes de budget à part, avec l'état de la Lune issu d'une découpe facultative du noyau DE440 et la série analytique comme solution de repli déclarée. Une superposition facultative du réseau au sol fixe le cycle de suivi de chaque phase. Rapporte le budget par phase (1-sigma à l'entrée, au pic et à la sortie, chaque contribution avec son unité), la marge par rapport à une exigence déclarée, le maillon le plus faible, les événements et une figure chronologique. MODELLED : chaque nombre est une entrée déclarée ; la chaîne suit un seul empilement et aucun véhicule n'est modélisé. Sources publiques seulement ; sans affiliation ni aval d'aucune agence ; logiciel à titre consultatif, et non un équipement de navigation certifié.
mission-thread-artemis-class.toml
Un fil de mission de classe Artemis : le budget d'erreur de navigation et de synchronisation d'une chaîne de phases, du lancement à l'entrée, construit à partir de documents publics de concept d'opérations.
kind = "mission-thread"
title = "Artemis-class mission thread (ILLUSTRATIVE)"
seed = 20261024
epoch_utc = "2028-01-01T00:00:00Z"
moon_kernel_path = "tests/fixtures/mission_thread/de440s_moon_2028-01-01_2028-04-01.bsp"
min_elevation_deg = 10.0
handover_gap_s = 120.0
step_s = 300.0Pas encore sur GitHub
mission-thread-short.toml
Un court fil de mission qui s'exécute à partir d'un seul binaire : lancement et ascension, un rendez-vous en orbite basse terrestre, un jour de croisière translunaire, puis le retour et l'entrée, avec la position de la Lune issue de la série analytique (sans fichier de noyau). C'est le compagnon fourni de mission-thread-artemis-class, qui lit un noyau lunaire extrait d'un checkout.
kind = "mission-thread"
title = "Short mission thread, launch to entry (ILLUSTRATIVE)"
seed = 20261028
epoch_utc = "2028-01-01T00:00:00Z"
frame = "gcrf"
x = [5285007.866, 1880185.649, 3025316.817, -137.105, 385.389, 0.0]
sigma_pos_m = 10.0
sigma_vel_mps = 0.01Ouvrir dans Kshana Studio · Pas encore sur GitHub
moonlight-service-volume#
Analyse modélisée du volume de service de navigation lunaire à partir d'une constellation ILLUSTRATIVE de classe Moonlight/LCNS en orbite lunaire, à sources publiques (sans affiliation à l'ESA) : balaie une grille sélénographique de latitude/longitude sur un horizon temporel et rapporte le DOP / la couverture / la disponibilité (≥4 sats ET PDOP < seuil) ainsi qu'une enveloppe généralisée de niveaux de protection ARAIM lunaires (HPL/VPL) sur le volume. La géométrie du DOP RÉUTILISE le noyau VALIDATED par gnss_lib_py (crate::orbit::dop) ; le niveau de protection RÉUTILISE le mécanisme ARAIM lunaire LunaNet LNIS (crate::lunar, σ_URE≈30 m) et se réduit au niveau de protection existant du pôle sud comme cas particulier. Composition MODELLED : un ensemble de relais képlériens circulaires/elliptiques (et non l'éphéméride réelle LCNS/NRHO à correction différentielle), une Lune à rotation moyenne (sans libration ni pôle en précession). Déterministe (géométrie pure). Aucun TRL, héritage ni aval d'une agence.
moonlight-service-volume.toml
Analyse du VOLUME DE SERVICE de navigation lunaire — constellation de classe Moonlight / LCNS.
kind = "moonlight-service-volume"
n_sats = 8
sma_km = 9737.4
eccentricity = 0.6
inc_deg = 57.7
argp_deg = 90.0
lat_min_deg = -90.0
lat_max_deg = -60.0ntn-positioning#
Positionnement à partir d'une liaison descendante de réseau non terrestre (NTN) 5G dans la bande S du service mobile par satellite (MSS) (bande 3GPP n256, liaison descendante de 2170 à 2200 MHz ; porteuse par défaut 2172,5 MHz) : la borne de Cramér-Rao (CRB) sur le temps d'arrivée, c / (2 pi beta sqrt(2 (C/N0) T)) avec beta la largeur de bande efficace (de Gabor) du spectre OFDM plat (B/sqrt(12)), et sur le Doppler d'un ton complexe, sqrt(3 / (2 pi^2 (C/N0) T^3)), pour chaque signal (par défaut un canal New Radio de 5 MHz avec 4,5 MHz occupés et un canal à bande étroite de 200 kHz avec 180 kHz occupés) ; puis, sur toute constellation LEO, des positions calculées par temps d'arrivée en liaison descendante avec une horloge de récepteur inconnue (initialisées par une graine, avec la borne plus une erreur de synchronisation du réseau comme sigma), leur PDOP et leur sigma 3D formel, et une position calculée par Doppler à un seul satellite sur le passage le plus long avec la hauteur maintenue. MODELLED : le passage de la largeur de bande à la borne est la forme close de manuel, contrôlée par rapport à l'intégration numérique des spectres BPSK plat et limité en bande (cohérence interne, aucune valeur publiée de calcul détaillé n'est figée), et la précision de positionnement est une borne sur un canal sans multitrajet avec une erreur de synchronisation donnée, et non un résultat atteint.
ntn-5g-positioning.toml
Positionnement à partir d'une liaison descendante de réseau non terrestre (NTN) 5G dans la bande S des services mobiles par satellite.
kind = "ntn-positioning"
seed = 5
carrier_hz = 2172.5e6
integration_s = 0.1
doppler_integration_s = 1.0
sync_error_m = 1.0
duration_s = 600.0
step_s = 10.0oem-interop#
Passerelle d'interopérabilité CCSDS OEM : importe un message d'éphéméride orbitale produit par un outil externe de dynamique de vol (GMAT/Orekit/STK émettent tous de l'OEM) et rapporte ses segments/objets/référentiels/étendue d'époques ainsi qu'un contrôle de cohérence des vitesses ; sans entrée, elle fait l'aller-retour d'une orbite de référence générée et rapporte la fidélité import↔export. Contrôle d'ingestion structurel/physique MODELLED, et NON une vérification de la précision d'orbite de la source.
oem-interop.toml
Démonstrateur de passerelle d'interopérabilité CCSDS OEM (interopérabilité GMAT / Orekit / STK).
kind = "oem-interop"optical-atmosphere#
PNT optique MODELLED à travers l'atmosphère : pour une liaison optique et un ensemble de sites au sol avec des climats nuageux donnés, rapporte la perte en air clair dépendant de la longueur d'onde et de l'élévation (loi de visibilité de Kim plus Rayleigh), l'état de turbulence de Hufnagel-Valley (variance de Rytov, indice de scintillation, paramètres gamma-gamma, moyennage d'ouverture), la disponibilité pilotée par la météo par rapport à la marge de liaison (épaisseur optique des nuages issue d'un climat log-normal d'eau liquide, extinction en optique géométrique, évanouissement de turbulence indépendant), la marge de liaison nécessaire pour des disponibilités cibles, la distribution des durées d'interruption, la croissance de l'erreur de synchronisation temporelle et de mesure de distance par interruption via le modèle de holdover d'horloge, la disponibilité de diversité de sites corrélée avec la distance, et des gains hypothétiques pour des techniques d'amélioration (longueur d'onde, ouverture de réception, réduction de la scintillation par optique adaptative, marge supplémentaire). VALIDATED comme implémentation des formules énoncées par rapport à une référence mpmath indépendante : variance de Rytov, indice de scintillation, probabilité d'évanouissement gamma-gamma, facteur de moyennage d'ouverture, épaisseur optique des nuages et de l'air clair. MODELLED : chaque entrée de météo, de technique et d'horloge ainsi que les hypothèses d'indépendance et de copule ; aucun enregistrement de disponibilité mesurée n'a été comparé. Analyse à titre consultatif, et non un produit certifié de disponibilité ou de navigation.
optical-atmosphere-network.toml
PNT optique à travers l'atmosphère : trois sites au sol ILLUSTRATIVE (un site nord plus nuageux, un site central intermédiaire et un site sud plus dégagé) observant un terminal optique LEO à 30 degrés d'élévation à 1550 nm. Les climats nuageux sont des entrées énoncées, non des mesures ni les valeurs d'un jeu de données, de sorte que chaque disponibilité ci-dessous est MODELLED. L'exécution rapporte, par site, la perte en air clair, l'état de turbulence de Hufnagel-Valley, la disponibilité par rapport à la marge de liaison, la marge nécessaire pour 40 / 50 / 60 / 70 pour cent (une liaison optique ne peut pas traverser un nuage épais, de sorte qu'un site a un plafond de disponibilité qu'aucune marge ne relève, rapporté par site), la distribution des durées d'interruption et la croissance de l'erreur de temps par interruption pour trois classes d'horloge, puis la disponibilité en diversité de sites des 1, 2 et 3 meilleurs sites avec une météo indépendante et avec une météo corrélée en distance (longueur de décorrélation de 500 km).
kind = "optical-atmosphere"
wavelength_nm = 1550.0
elevation_deg = 30.0
availability_targets_pct = [40.0, 50.0, 60.0, 70.0]
tx_power_w = 0.5
tx_aperture_m = 0.1
rx_aperture_m = 0.4
range_km = 1000.0optical-atmosphere-techniques.toml
Hypothèses sur des techniques d'amélioration pour un site au sol ILLUSTRATIVE : un changement de longueur d'onde, une plus grande ouverture de réception, une réduction de la scintillation par optique adaptative et une marge supplémentaire, chacun prédit comme un gain de disponibilité par rapport à la référence de base du même site. Les gains sont des entrées énoncées (Kshana ne modélise pas une boucle d'optique adaptative), une nouvelle longueur d'onde ou ouverture réévalue le budget en ciel clair, la perte en air clair et la moyenne d'ouverture, et tout est MODELLED. Le terminal est délibérément limité en marge (environ 3 dB avant l'atmosphère) pour que les techniques comptent ; l'exécution énonce aussi le plafond nuageux qu'aucune technique ne relève. Les cibles inférieures à 100 pour cent de la table des marges sont rapportées comme la marge supplémentaire nécessaire (un nombre négatif signifie un excédent).
kind = "optical-atmosphere"
wavelength_nm = 1550.0
elevation_deg = 25.0
availability_targets_pct = [50.0, 60.0, 70.0]
tx_power_w = 0.5
tx_aperture_m = 0.1
rx_aperture_m = 0.3
range_km = 1000.0orbit#
Disponibilité GNSS + DOP à partir d'une constellation orbitale (Walker / TLE / RINEX).
orbit-gnss-challenged.toml
Disponibilité GNSS dérivée de la géométrie orbitale (et non de fenêtres rédigées à la main).
kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 10.0
sigma_uere_m = 1.0
step_s = 60.0
duration_s = 86400.0
altitude_km = 8000.0orbit-molniya.toml
Disponibilité GNSS pour un utilisateur très excentrique (Molniya), à partir de la géométrie orbitale.
kind = "orbit"
seed = 11
threshold_ns = 5.0
mask_deg = 5.0
sigma_uere_m = 1.0
step_s = 120.0
duration_s = 43200.0
altitude_km = 20229.0orbit-multignss.toml
Disponibilité multi-GNSS à partir de la géométrie orbitale : GPS + Galileo combinés.
kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 10.0
sigma_uere_m = 1.0
step_s = 60.0
duration_s = 86400.0
altitude_km = 8000.0orbit-real-tle.toml
Disponibilité GNSS à partir de la géométrie RÉELLE des satellites, via des jeux d'éléments à deux lignes.
kind = "orbit"
seed = 13
threshold_ns = 10.0
mask_deg = 5.0
sigma_uere_m = 1.0
step_s = 120.0
duration_s = 43200.0
altitude_km = 500.0orbit-rinex.toml
Disponibilité GNSS à partir d'une véritable éphéméride de diffusion RINEX 3.
kind = "orbit"
seed = 13
threshold_ns = 10.0
mask_deg = 5.0
sigma_uere_m = 1.0
step_s = 120.0
duration_s = 43200.0
altitude_km = 500.0orbit-sgp4-gps.toml
Disponibilité GNSS à partir de la constellation GPS RÉELLE propagée avec SGP4/SDP4.
kind = "orbit"
seed = 17
threshold_ns = 10.0
mask_deg = 5.0
sigma_uere_m = 1.0
step_s = 120.0
duration_s = 43200.0
altitude_km = 500.0orbit-urban-canyon-skyline.toml
Disponibilité GNSS et dilution de précision au pied d'une rue de ville : le type de scénario orbit avec un utilisateur au sol (user_site) sous le préréglage d'horizon city-street.
kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 5.0
sigma_uere_m = 1.0
step_s = 300.0
duration_s = 86400.0
lat_deg = 52.0passes#
Prévision des passages de stations au sol : les passages de visibilité dans le domaine temporel (AOS/TCA/LOS, élévation apparente maximale, durée) d'une orbite circulaire, sous forme d'éléments moyens SGP4 au début de la fenêtre, au-dessus d'une station située au-dessus d'un masque d'élévation sur une fenêtre, avec le temps d'accès total. Propagation SGP4/SDP4 sur le référentiel terrestre IAU 2006/2000A (UT1 - UTC et mouvement du pôle facultatifs), réfraction troposphérique UIT-R P.834-9 et temps de trajet lumineux de la liaison descendante (tous deux activés par défaut), franchissements résolus à 1e-7 s et culmination par recherche par section dorée. La géométrie des passages est VALIDATED par rapport à Orekit 13.1.8 à des stations au niveau de la mer ; l'orbite et la station du scénario sont des entrées illustratives.
passes.toml
Démonstrateur de prédiction de passages de station sol (segment sol et opérations).
kind = "passes"
altitude_km = 550.0
inclination_deg = 97.6
raan_deg = 0.0
arg_lat_deg = 0.0
station_lat_deg = 52.2
station_lon_deg = 4.4
station_alt_m = 0.0pvt#
Positionnement ponctuel sur observations réelles : résoudre la position d'un récepteur à partir d'un fichier d'observation RINEX 3 et d'un fichier de navigation diffusée (pseudodistances de code, éphéméride diffusée, ionosphère de Klobuchar, troposphère de Saastamoinen/Niell), éventuellement vérifié par rapport à une coordonnée relevée.
pvt-abmf.toml
Positionnement ponctuel simple (SPP) sur observations réelles depuis une station IGS repérée.
kind = "pvt"
mask_deg = 5.0
dual_frequency = true
truth_ecef = [2919786.4480, -5383745.1780, 1774604.7340]
obs_rinex = """
nav_rinex = """quantum-anomaly-detect#
Détection de défauts/anomalies MODELLED pour les systèmes PNT quantiques : un catalogue de défauts étiquetés (saut de fréquence/dérive/perte d'accrochage d'horloge ; échelon de biais/perte de signal d'un capteur), une AUC de ROC de la statistique de détection (avec un intervalle de confiance par bootstrap issu de eval_stats vérifié de façon externe) et un défaut minimal détectable à un taux de fausses alarmes fixé, le moniteur assisté par horloge quantique (bruit plus faible) détectant des défauts plus petits — sous forme de TradeEvidence honnête + représentativité. Modèle gaussien de la statistique de détection (AUC = Phi(mu/(sigma*sqrt2))) ; modélise la classe, paramètres illustratifs à sources publiques, aucun TRL, vol ni certification.
quantum-anomaly-detect.toml
Détection de pannes/d'anomalies pour les systèmes PNT quantiques — catalogue de pannes étiqueté + AUC de la ROC + panne minimale détectable, moniteur aidé par horloge quantique contre moniteur classique. MODELLED ; paramètres illustratifs de sources publiques ; modélise la classe, aucune affirmation de TRL ni de vol.
kind = "quantum-anomaly-detect"
fault_mu = 1.0
quantum_sigma = 0.3
classical_sigma = 1.0
pfa = 1.0e-3
pd = 0.9
samples = 2000
seed = 42quantum-gnss-free-nav#
Navigation quantique sans GNSS MODELLED : lors d'une interruption du GNSS, un budget inertiel quantique (interféromètre à atomes froids) par rapport à une centrale inertielle (INS) classique de qualité navigation — croissance de l'erreur de position pendant la dérive libre, holdover jusqu'à un seuil de position, et compromis quantique contre classique sous forme de TradeEvidence honnête avec représentativité. Note honnête d'observabilité : sans mesure externe, le biais de l'accéléromètre est inobservable, de sorte que l'erreur croît ; le capteur quantique ralentit cet écart sans le combler. Paramètres de dispositif illustratifs à sources publiques ; modélise la classe, aucun TRL, vol ni certification.
quantum-time-transfer#
Chaîne de synchronisation temporelle quantique de confiance MODELLED : un budget de transfert de temps de bout en bout quantique (horloge à réseau optique + liaison à intrication/photon unique) contre classique (CSAC + liaison RF bidirectionnelle), un niveau de protection de la synchronisation temporelle réutilisé + une figure de mérite de sécurité contre les attaques par retard/rejeu (1-P_md), une probabilité de détection d'anomalie d'horloge + une latence CUSUM, et le compromis quantique contre classique sous forme de TradeEvidence honnête avec un dossier de représentativité + d'écarts avant le vol. Paramètres de dispositif/liaison illustratifs à sources publiques ; modélise la classe, aucun TRL, vol ni certification revendiqué.
quantum-time-transfer.toml
Synchronisation temporelle quantique de confiance — chaîne de transfert de temps de bout en bout, diffusion sécurisée, détection d'anomalies et compromis quantique-classique. MODELLED ; paramètres de dispositif/de liaison illustratifs de sources publiques ; modélise la classe, aucune affirmation de TRL ni de vol.
kind = "quantum-time-transfer"
integration_s = 1.0
dissemination_interval_s = 100.0
link_loss_db = 30.0
classical_link_sigma_s = 1.0e-9
monitor_pfa = 1.0e-3
attack_delay_s = 5.0e-9
clock_fault_sigma = 4.0quantum-trade#
Compromis PNT quantique contre classique (13503) : bénéfice en holdover de synchronisation temporelle + holdover inertiel d'une horloge candidate (une courbe d'ADEV mesurée — le pivot de défendabilité — ou une classe d'horloge quantique) par rapport à une classe de référence de base classique, avec la réserve sur l'hypothèse de plancher à long tau portée sur l'artefact, plus une enveloppe de résilience en fonction du temps en l'absence de GNSS. MODELLED ; quantifie (ne valide jamais) un dispositif partenaire. L'horloge candidate est une courbe mesurée (candidate_adev_taus + candidate_adev_values, de même longueur, d'au moins 2 points ; elle l'emporte lorsque les deux formes sont données) ou un candidate_clock_class.
quantum-trade.toml
Étude comparative PNT quantique contre classique avec ingestion d'ADEV mesurée (démonstrateur ESA AO/1-13503).
kind = "quantum-trade"
timing_threshold_s = 20.0e-9
position_threshold_m = 100.0
baseline_clock_class = "csac"
candidate_adev_taus = [1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0]
candidate_adev_values = [5.0e-16, 1.6e-16, 6.0e-17, 4.0e-17, 6.0e-17, 2.0e-16]
resilience_times_s = [1.0, 60.0, 600.0, 1800.0, 3600.0, 7200.0, 14400.0, 28800.0]realtime-frame-eop#
Budget de prévision du référentiel lunaire / de l'orientation de la Terre en temps réel : Table 1 de P4 (le contrôle de cohérence de l'erreur de référentiel — en post-traitement ~0,27 m ↔ ~0,010 ms et en temps réel ~15 m ↔ ~0,5 ms, chaque position de référentiel exprimée par son erreur UT1 équivalente via le bras de levier L19 Δr = D_EM·ω⊕·ΔUT1) et Table 2 (erreur mesurée de prévision d'UT1 en fonction de l'horizon — la courbe L18 lue directement sur la vraie série IERS finals2000A : le plancher final Bulletin A − Bulletin B et l'erreur du prédicteur de persistance sur plusieurs jours, chacune ramenée à une position dans le référentiel lunaire par L19), plus le budget d'erreur de référentiel en temps réel L21 en racine de la somme des carrés (EOP + éphéméride + plancher de réalisation). Forme close VALIDATED (le bras de levier L19, ω⊕ recoupé avec l'angle de rotation de la Terre du CIO) et données réelles VALIDATED (la courbe L18 lue sur les vraies lignes de finals2000A) ; sont MODELLED les ordres de grandeur de covariance d'OD du relais lunaire et le plancher de réalisation du référentiel (allocations représentatives) ainsi que le prédicteur de persistance (et non l'algorithme opérationnel du Bulletin A de l'IERS). Pas un produit certifié de référentiel en temps réel.
realtime-frame-eop.toml
Budget de prédiction en temps réel du référentiel lunaire et de l'orientation de la Terre (EOP).
kind = "realtime-frame-eop"
epoch = "2022-01-01"
horizons_days = [1, 2, 3]reentry#
Corridor de rentrée balistique d'Allen-Eggers : décélération maximale (indépendante du coefficient balistique, V_e^2 sin|γ|/(2eH)), vitesse et altitude au pic de g, et vitesse au pic d'échauffement, pour une vitesse d'entrée, un angle de trajectoire et un coefficient balistique donnés dans une atmosphère exponentielle, plus une intégration planaire en masse ponctuelle de la même entrée balistique avec la gravité, la courbure de la Terre et l'atmosphère standard américaine 1976 (décélération maximale, vitesse, altitude et instant du pic). Entrée balistique (sans portance) MODELLED ; la sortie d'échauffement est la VITESSE au pic d'échauffement, et non un flux thermique (pas de modèle aérothermique ni de protection thermique).
reentry.toml
Démonstrateur de corridor de rentrée balistique (Allen-Eggers, analyse de mission).
kind = "reentry"
entry_velocity_m_s = 7800.0
flight_path_angle_deg = 6.0slot-timing#
Synchronisation d'un créneau : nombre de secondes avant qu'une horloge en marche libre ne sorte de la marge de garde d'un créneau d'acheminement ou d'affectation indexé sur le temps (l'erreur de temps absolue maximale que le créneau tolère), contribution de chaque terme à cet instant avec le terme dominant nommé (incertitude de recalage, bruit blanc de phase, bruit de fréquence blanc, de scintillation, de marche aléatoire et de course aléatoire, décalage de fréquence résiduel, température, vieillissement), temps restant depuis le dernier recalage, et plus grand intervalle de recalage qui maintient l'horloge dans la marge, net de la latence du recalage. L'oscillateur est une valeur par défaut de CLASSE (csac, uso, dsac, tcxo, ocxo ou rafs : un écart-type d'Allan à une seconde cité et un plancher de bruit rouge supposé), un PRÉRÉGLAGE DE FICHE TECHNIQUE de synchronisation télécom ou une FICHE TECHNIQUE en ligne (maxima d'écart-type d'Allan ajustés comme une enveloppe, plus le vieillissement et un coefficient de température), ou un ENREGISTREMENT DE PHASE MEASURED en ligne (son écart-type d'Allan chevauchant ajusté par moindres carrés pondérés dans la base du bruit blanc de phase et du bruit de modulation de fréquence de l'IEEE Std 1139, de sorte que le plancher de bruit rouge est mesuré et non supposé). Un dépassement au-delà du plus long temps de moyennage que la fiche technique ou l'enregistrement permet est signalé comme extrapolé. Une section facultative de leurrage ajoute le niveau de protection de la synchronisation temporelle pour un récepteur en orbite : vitesse et période orbitales, durée pendant laquelle un seul leurre au sol peut atteindre le satellite par passage, plancher du moniteur assisté par l'horloge et latence de détection CUSUM, borne conditionnelle, écart qu'accumule un leurre à un taux de rampe maximal donné avant que le satellite ne quitte sa portée ou qu'une vérification indépendante ne s'exécute, et indication si chaque vérification par contact au sol ou par liaison croisée est indépendante de ce leurre. VALIDATED : l'inversion de holdover à partir d'un enregistrement ajusté, mise de côté sur une vraie horloge au césium mesurée par rapport à un maser à hydrogène (tests/slot_timing_cs5071a_holdout.rs, conditionné par les données) ; sur un oscillateur à quartz mesuré, la prédiction mise de côté est prudente mais n'atteint pas le seuil, de sorte que le cas du quartz est MODELLED. MODELLED : les sources de classe et de fiche technique, les termes déterministes et l'évaluation du leurrage.
slot-timing-ocxo-leo.toml
Synchronisation de créneau : combien de temps un oscillateur à quartz thermostaté (OCXO) sur un petit satellite en orbite terrestre basse reste dans la garde d'un créneau de routage indexé sur le temps après sa dernière position du système mondial de navigation par satellite (GNSS), et à quelle fréquence il a besoin d'une position.
kind = "slot-timing"
preset = "ocxo"
guard_ns = 100.0
k_sigma = 3.0
fix_sigma_ns = 10.0
elapsed_since_sync_s = 600.0
fix_latency_s = 5.0
temperature_excursion_k = 2.0solar-system#
Le système solaire entier à une époque donnée, pour le PNT (positionnement, navigation et synchronisation temporelle) autour de n'importe quel corps. Pour le Soleil, les huit planètes, Pluton, la Lune, Phobos, Deimos, Io, Europe, Ganymède, Callisto et Titan, il fournit la position et la vitesse héliocentriques dans l'ICRF (Référentiel céleste international, équatorial J2000), la distance héliocentrique et la longitude et la latitude écliptiques J2000, le paramètre gravitationnel, le rayon équatorial et moyen, J2 lorsqu'il est publié et son rayon de référence, la période de rotation sidérale, le pôle de l'UAI et le méridien d'origine à l'époque, une trace d'orbite échantillonnée sur une révolution (héliocentrique pour les planètes, centrée sur le parent pour les lunes), ainsi que le temps de lumière, la distance aller simple et aller-retour, le retard de Shapiro solaire et la séparation du Soleil depuis un corps observateur (la Terre par défaut) ; les liens from/to supplémentaires reçoivent le même traitement. Positions : les éléments képlériens du JPL de Standish et Williams (Table 1 pour 1800 apr. J.-C. à 2050 apr. J.-C., Tables 2a/2b pour 3000 av. J.-C. à 3000 apr. J.-C.) avec l'erreur nominale de chaque planète, la série lunaire de Montenbruck & Gill pour la séparation Terre-Lune, les éléments moyens du JPL avec la vitesse de rotation synchrone de l'UAI pour les lunes martiennes et galiléennes, et le modèle de rotation de l'UAI pour Titan. Temps de lumière : la résolution radiométrique par point fixe, l'émetteur étant à sa position retardée ; newtonien, le retard de Shapiro étant indiqué séparément. VALIDATED par rapport à JPL Horizons (DE441) à moins du double de l'erreur nominale : de Mercure à Saturne et la Terre à partir de la Table 1 (pire cas 1,87 fois le nominal) et les huit planètes à partir des Tables 2a/2b (pire cas 1,71 fois), ainsi que le temps de lumière de la Terre à Mars et à Jupiter. MODELLED, chaque ligne étant étiquetée : Uranus et Neptune à partir de la Table 1 (2,0 et 5,2 fois l'erreur nominale par rapport à DE441), Pluton (la ligne de 1992 ; pas d'erreur indiquée), la Lune et les sept lunes (mesurées par rapport à Horizons, sans borne publiée).
solar-system-tour.toml
Tout le système solaire à une même époque.
kind = "solar-system"
epoch = "2026-09-28T00:00:00"
observer = "Earth"
track_points = 180
from = "Mars"
to = "Jupiter"
from = "Saturn"
to = "Earth"space-packet#
Encapsulation du protocole CCSDS 133.0-B Space Packet : encoder un flux synthétique de paquets TM/TC (en-tête primaire de 6 octets + champ de données) et rapporter le décodage d'en-tête de chaque paquet, le total d'octets et un aller-retour encodage↔décodage exact. Encapsulation à disposition de bits exacte et déterministe — la couche d'interopérabilité des formats de paquets d'agence ; PAS une attestation de respect de la norme (pas de logique d'en-tête secondaire, de CRC ou de segmentation au-delà des indicateurs).
space-packet.toml
Démonstrateur de mise en trame de paquets spatiaux CCSDS 133.0-B (interopérabilité TM/TC).
kind = "space-packet"
apid = 100
telecommand = false
packet_count = 4
data_len = 32space-weather#
Modèle d'environnement de météorologie spatiale : indices d'activité solaire (F10.7/F10.7a) et géomagnétique (Kp, avec la table de définition Kp↔ap), la température exosphérique de Jacchia-1971 qu'ils pilotent (validée par rapport aux minimum, moyenne et maximum solaires publiés), et la densité neutre thermosphérique de Jacchia-1971 à la température exosphérique moyenne diurne par rapport au profil statique sans activité, à un ensemble d'altitudes — la dépendance de la densité au cycle solaire que l'atmosphère statique omet. MODELLED : la densité concorde avec les densités dérivées d'accéléromètres (TOLEOS CHAMP et GRACE) à un facteur 2 près au maximum solaire mais est environ 1.7x trop dense au minimum solaire de 2008.
space-weather.toml
Démonstrateur de modèle d'environnement météorologique spatial.
kind = "space-weather"
kp = 4.0
altitudes_km = [300.0, 400.0, 500.0, 600.0, 800.0]spectrum#
Modèle de spectre en bande L et cascade : toute la bande L du GNSS comme une seule densité spectrale de puissance (DSP), fréquence en abscisse, temps vers le bas, sur une chronologie de brouilleurs scriptée. SIGNAUX : GPS L1 C/A et L2C (BPSK(1)), service ouvert Galileo E1 (MBOC(6,1,1/11), ou BOC(1 1)), GPS L5 et Galileo E5a (BPSK(10)), chacun à sa porteuse avec la puissance reçue minimale de la spécification d'interface (IS-GPS-200, IS-GPS-705, Galileo OS SIS ICD) sauf indication contraire ; GLONASS, BeiDou et Galileo E6 ne sont pas modélisés. BROUILLEURS : onde continue, bruit à bande étroite plat, chirp en dents de scie linéaire et bruit à large bande adapté à la modulation propre d'une bande, chacun avec un centre, une largeur de bande, une puissance reçue (directe, ou PIRE et portée via l'affaiblissement en espace libre du type de brouillage) et des instants d'activation et de désactivation. Chaque brouilleur est évalué par rapport à chaque bande par son coefficient de séparation spectrale kappa sur la largeur de bande du récepteur, et (C/N0)_eff = [1/(C/N0) + sum (J/S) kappa]^-1 ; pour un seul brouilleur, cela équivaut à l'équation anti-brouillage du type de brouillage avec Q = 1/(R_c kappa), et le rapport comporte cette vérification croisée (ainsi que, à côté, la valeur de Q représentative du type de brouillage). Le plancher de bruit est k T_sys avec T_sys = T_ant + 290 K (F - 1). La cascade moyenne chaque cellule sur son intervalle de fréquence et sa ligne (chirps de façon exacte, balayages entiers plus le balayage partiel ; brouilleurs commutant en milieu de ligne selon leur rapport cyclique), de sorte que la chronologie du C/N0 et l'image proviennent des mêmes nombres ; result.json porte la grille moyennée par blocs en puissance, le C/N0 et le J/S par bande et par ligne, et, par brouilleur et par bande, le SSC, le Q, le J/S, le J/S dans la bande et le C/N0 stable. [iq] facultatif : le modèle tiré comme un IQ complexe à un instant donné, écrit dans un enregistrement SigMF puis relu depuis celui-ci (cf32_le ou ci16_le), et comparé à une estimation de Welch. [recording] facultatif (versions natives) : la DSP de Welch d'un vrai enregistrement SigMF à côté du modèle. VALIDATED : les DSP des signaux par rapport aux largeurs de lobe principal des manuels (BPSK(n) 2n x 1,023 MHz de nul à nul ; lobes de BOC(1 1) centrés à +/-1.023 MHz) et les coefficients de séparation spectrale par rapport à leurs formes fermées de Parseval et à Q = 1 (CW) et 1,5 (adapté) de Kaplan & Hegarty. MODELLED : les puissances des brouilleurs, la chronologie, les largeurs de bande des étages d'entrée, le traitement à spectre continu (sans raies de code) et l'absence de CAG, de suppression d'impulsions et de diagramme d'antenne.
l-band-waterfall-jamming.toml
Cascade en bande L sous brouillage : toute la bande L du système mondial de navigation par satellite (GNSS) comme une seule densité spectrale de puissance (DSP), la fréquence en abscisse, le temps vers le bas, pendant qu'une séquence scénarisée de brouilleurs s'enclenche.
kind = "spectrum"
seed = 7
duration_s = 60.0
step_s = 1.0
noise_figure_db = 2.0
antenna_temp_k = 290.0
tracking_threshold_dbhz = 25.0
f_min_mhz = 1160.0leo-resilience-js-margin.toml
Résilience LEO-PNT d'après la puissance reçue : la marge brouilleur sur signal (J/S).
kind = "spectrum"
seed = 12
duration_s = 100.0
step_s = 1.0
noise_figure_db = 2.0
antenna_temp_k = 290.0
tracking_threshold_dbhz = 25.0
f_min_mhz = 1150.0multi-band-jamming-waterfall.toml
Cascade de brouillage multibande : signaux de positionnement, navigation et synchronisation temporelle (PNT) en orbite terrestre basse (LEO) dans quatre bandes (UHF, L, S et C) à côté du GPS et de Galileo, chaque bande avec son propre brouilleur, tracée en une cascade par bande sur une même chronologie.
kind = "spectrum"
seed = 11
duration_s = 60.0
step_s = 1.0
noise_figure_db = 2.0
antenna_temp_k = 290.0
tracking_threshold_dbhz = 25.0
f_min_mhz = 1160.0spoof#
Détecteur stochastique de leurrage temporel (Neyman–Pearson / χ²₁) avec P_fa/P_md par Monte-Carlo.
spoof-attack.toml
Attaque active de leurrage temporel : le moniteur d'intégrité de chaque horloge peut-il détecter le leurrage avant qu'il ne fasse des dégâts ?
kind = "spoof"
threshold_ns = 20.0
step_s = 10.0
duration_s = 660.0
start_s = 60.0
rate_ns_per_s = 0.1
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (arXiv:1503.08457); not flown."spoof-meaconing.toml
Détection de leurrage temporel avec une forme d'attaque explicite et un détecteur stochastique.
kind = "spoof"
threshold_ns = 0.5
step_s = 1.0
duration_s = 1200.0
start_s = 100.0
target_pfa = 0.001
mc_runs = 20000
kind = "meaconing"spoof-detect#
Détecteur combiné de leurrage RF/mesures (cohérence RAIM multi-SV + CAG + SQM, fusionnés) face à une attaque paramétrée (avantage de puissance, alignement de la phase de la porteuse, poussée en temps/position ; de type TEXBAT).
maritime-spoof-position-push.toml
Leurrage GNSS maritime : détection d'un émetteur qui entraîne la position annoncée d'un navire.
kind = "spoof-detect"
power_advantage_db = 2.0
carrier_aligned = false
push = "position"
push_magnitude_m = 500.0
num_biased = 4
el_imbalance = 0.12
sat_power_dbm = -130.0spoof-detect.toml
Détecteur combiné de leurrage RF/mesure : cohérence RAIM multi-SV + AGC + SQM, fusionnés.
kind = "spoof-detect"
power_advantage_db = 1.5
carrier_aligned = false
push = "position"
push_magnitude_m = 75.0
num_biased = 3
el_imbalance = 0.12
sat_power_dbm = -130.0sweep#
Balayage 1-D d'étude de compromis sur un paramètre du paquet d'horloge.
sweep-clock-stability.toml
Étude comparative : comment le holdover évolue-t-il avec la stabilité de l'horloge ?
kind = "sweep"
parameter = "classical_q_wf"
metric = "holdover_s"
start = 1.0e-24
stop = 1.0e-18
steps = 25
scale = "log"
seed = 42sweep-nd#
Balayage N-D générique sur n'importe quel paquet via des clés TOML pointées / des chemins de métriques JSON.
sweep-nd-inertial.toml
Balayage de paramètres générique à N dimensions sur N'IMPORTE QUEL type de scénario. Contrairement au type de scénario sweep réservé aux horloges, sweep-nd fait varier des clés TOML pointées du scénario [base] sur le produit cartésien des axes, relance chaque nœud de la grille et lit les métriques choisies dans le résultat par chemin JSON pointé. Il fonctionne pour tous les paquets (inertial, gnss-ins, integrity, spoof, …) parce qu'il opère à la frontière TOML/résultat, et non sur un type Rust propre à chaque paquet. Les exécutions natives évaluent la grille en parallèle (sans dépendance supplémentaire) ; wasm se rabat sur le séquentiel. La grille de sortie est déterministe et en ordre ligne par ligne (le dernier axe varie le plus vite).
kind = "sweep-nd"
metrics = ["classical.fom.holdover_s", "classical.fom.pos_rms_m"]
key = "threshold_m"
start = 100.0
stop = 500.0
steps = 5
key = "accel_classical.bias"
start = 1.0e-3telecom-timing#
Synchronisation télécom : erreur de temps, erreur maximale d'intervalle de temps (MTIE) et déviation de temps (TDEV) d'un holdover GNSS, vérifiées par rapport aux masques de l'UIT-T avec un PASS ou un FAIL et une marge par masque. L'entrée est soit un HOLDOVER SYNTHÉTIQUE (un préréglage d'oscillateur -- ocxo, rubidium, césium ou csac, chacun portant les valeurs de stabilité, de vieillissement et de température d'une fiche technique publique nommée de Microchip -- plus la durée de perte du GNSS, la longueur de l'enregistrement et l'intervalle d'échantillonnage ; l'horloge en marche libre porte un bruit de fréquence blanc, de scintillation et, lorsque l'ajustement à la fiche technique l'exige, de marche aléatoire, un vieillissement linéaire et un terme de température sinusoïdal) soit une SÉRIE INGÉRÉE de paires [time_s, time_error_ns] fournies en ligne (et, uniquement sur les versions natives, un fichier CSV). Masques : UIT-T G.8272 (07/2025) PRTC-A et PRTC-B (max|TE| 100 / 40 ns, MTIE Tables 1-2, TDEV Tables 3-4) ; G.8272.1 (2024) Amd. 1 (07/2025) ePRTC verrouillé (30 ns, Tables 1-2) et holdover ePRTC-A (l'enveloppe d'erreur de temps de la Table 3 passant de 30 ns à 100 ns sur la période de holdover H fixée par la durée de verrouillage, MTIE Table 4, TDEV Table 5) ; G.8273.2 (2023) Amd. 2 (11/2025) classes A-C de T-BC/T-TSC (max|TE|, erreur de temps constante, MTIE et TDEV filtrés passe-bas) et classe D (max|TE_L| 5 ns, la seule valeur de classe D qui ne soit pas laissée à étude ultérieure) ; G.8271.1 (2022) Amd. 3 (05/2025) point de référence C (max|TE_L| 1100 / 600 / 100 ns avec MTIE Tables 7-1 à 7-3). Chaque entrée qu'une Recommandation marque comme « à l'étude » est absente plutôt que remplie, et chaque rapport liste ce qui n'est pas implémenté. Rapporte aussi le temps de dépassement de chaque budget d'erreur de temps maximale (par défaut : 100 ns max|TE_HO| ePRTC, 400 ns allocation de holdover du réseau, 1100 ns point C, 1,5 us classe 4), les courbes MTIE/TDEV sous forme de tableau CSV avec chaque limite de masque, et une entrée d'unités et de provenance par champ numérique. VALIDATED : les estimateurs MTIE et TDEV par rapport au paquet allantools sur une série de holdover versionnée dans le dépôt. MODELLED : les tables de masques sont des transcriptions, et un holdover synthétique est un modèle construit à partir de maxima de fiches techniques, et non la mesure d'une unité quelconque. Pas un test de respect de la norme.
telecom-prtc-holdover-24h.toml
Référence de synchronisation télécom : une horloge au rubidium qui perd sa référence du système mondial de navigation par satellite (GNSS) et tient en holdover pendant 24 heures, vérifiée par rapport aux gabarits du Secteur de la normalisation des télécommunications de l'Union internationale des télécommunications (UIT-T).
kind = "telecom-timing"
seed = 20260925
masks = ["eprtc-a-holdover", "prtc-a"]
oscillator = "rubidium"
gnss_loss_s = 3600.0
duration_s = 90000.0
sample_interval_s = 1.0
locked_te_sigma_ns = 1.0telecom-synce-eec.toml
Synchronisation télécom, synchronisation de fréquence : un oscillateur à quartz thermostaté (OCXO) en dérive libre confronté aux gabarits de génération de dérive de l'horloge d'équipement Ethernet synchrone (EEC) du Secteur de la normalisation des télécommunications de l'Union internationale des télécommunications (UIT-T).
kind = "telecom-timing"
seed = 20260925
masks = ["g8262-eec-option-1", "g8262-eec-option-2", "g8262-1-eeec"]
budgets = []
oscillator = "ocxo"
gnss_loss_s = 0.0
duration_s = 12000.0
sample_interval_s = 1.0telecom-tie-ingest.toml
Synchronisation télécom, exemple d'ingestion : une série d'erreur d'intervalle de temps (TIE) fournie en ligne et vérifiée par rapport aux gabarits du Secteur de la normalisation des télécommunications de l'Union internationale des télécommunications (UIT-T).
kind = "telecom-timing"
masks = ["prtc-a", "prtc-b", "eprtc", "eprtc-a-holdover", "t-bc-class-c", "g8271-1-point-c"]
holdover_start_s = 300.0
locked_duration_days = 5.0
samples = [terrain-nav#
Navigation par référence au terrain (TERCOM/SITAN) en l'absence de GPS : un altimètre radar/barométrique met en correspondance le profil d'altitude du sol avec un MNT de type SRTM pour retrouver la dérive de l'INS.
terrain-slam#
Navigation séquentielle (récursive) par référence au terrain en l'absence de GPS : un filtre à particules exécute le modèle de mesure de correspondance au terrain époque par époque (SITAN comme filtre en continu), de sorte qu'une dérive variable de l'INS est suivie le long de la trace, là où le terrain-nav par lots ne retrouve qu'un unique décalage constant.
terrain-slam.toml
Navigation séquentielle (récursive) par référence au terrain — alt-PNT sans GPS.
kind = "terrain-slam"
dem_seed = 1
start_lat_deg = 12.08
start_lon_deg = 20.08
step_lat_deg = 0.004
step_lon_deg = 0.003
waypoints = 60
drift_rate_lat_deg = 0.0006time-transfer-budget#
Transfert bidirectionnel de temps et de fréquence par satellite entre deux stations via un relais géostationnaire : l'équation bidirectionnelle résolue pour T_A - T_B avec chaque terme non réciproque (retards des équipements de station, ionosphère en bande Ku, transpondeur, Sagnac), un bilan d'incertitude en quadrature dont le terme de type A est le TDEV de la liaison simulée au temps de moyennage, une liaison simulée avec bruit de phase blanc et de scintillation et une non-réciprocité diurne, et la stabilité (dérive, RMS résiduel, TDEV, ADEV) de toute série BIPM Circular T Section 1, CSV MJD,ns ou enregistrements d'horloge de station RINEX IGS fournie. MODELLED.
time-transfer-budget.toml
Transfert bidirectionnel de temps et de fréquence par satellite (TWSTFT) entre deux stations ILLUSTRATIVE, l'une en Europe centrale et l'autre dans l'est de l'Amérique du Nord, via un relais géostationnaire à 10 deg O. L'exécution résout l'équation bidirectionnelle pour T_A - T_B à partir des termes énoncés d'équipement, de transpondeur, d'ionosphère (bande Ku, 14/11 GHz) et de Sagnac. Elle forme un budget d'incertitude dont le terme statistique est la TDEV, à un jour, d'une liaison simulée avec bruit de phase blanc et de scintillation et une non-réciprocité diurne. Les retards et les incertitudes sont illustratifs, non l'étalonnage d'un laboratoire quelconque. MODELLED. Une véritable série UTC-UTC(k) ou d'horloge de station peut être ajoutée sous [[series]] (format circular-t, mjd-csv ou rinex-clock) pour en rapporter la stabilité.
kind = "time-transfer-budget"
satellite_lon_deg = -10.0
transponder_ab_ns = 812.0
transponder_ba_ns = 809.5
uplink_ghz = 14.0
downlink_ghz = 11.0
true_offset_ns = 12.5
white_noise_ns = 0.3timetransfer#
Transfert bidirectionnel de temps/fréquence optique contre RF.
timetransfer.toml
Transfert de temps optique inter-satellites par rapport au RF classique (TWSTFT).
kind = "timetransfer"
seed = 42
samples = 600
step_s = 1.0
range_spec_mm = 10.0
id = "optical-isl"
provenance = "Optical inter-satellite link, picosecond-level synchronization target; free-space optical two-way time-frequency transfer lab floor ~1 fs (Giorgetta 2013, Nature Photonics; Deschenes 2016, PRX). Using a 1 ps target as the on-orbit-credible figure."
sigma_j_s = 1.0e-12tracking-loop#
Perte d'accrochage de la boucle de poursuite : C/N0 -> accrochage/décrochage AVEC HYSTÉRÉSIS, le temps nécessaire pour perdre l'accrochage, et l'entraînement par leurrage en fonction du TAUX de décalage de code et de porteuse. Les critères existants de déni et de capture du moteur sont des rapports de puissance reçue (un brouilleur refuse à J/S = 30 dB, un leurreur capture à 3 dB) ; la véritable perte d'accrochage n'est pas un rapport de puissance, c'est l'endroit où la gigue d'une boucle plus la contrainte dynamique sortent de son budget de seuil de poursuite. Rapporte (1) la gigue thermique à 1 sigma de porteuse (Costas) et de code (précoce/tardif non cohérent) en fonction du C/N0, perte de quadrature comprise, par rapport aux règles énoncées 3*sigma_PLL + theta_e <= 45 deg (la règle des 15 degrés sous forme à trois sigmas) et 3*sigma_DLL + retard de rampe <= d/2 chips ; (2) les seuils de C/N0 de décrochage et de ré-accrochage avec la boucle déterminante nommée, le seuil de ré-accrochage DÉRIVÉ de la bande plus large dans laquelle un récepteur se ré-accroche plutôt qu'affirmé, de sorte que la largeur d'hystérésis doit se situer entre 5*log10(rapport) et 10*log10(rapport) dB ; (3) le temps déclaré pour perdre l'accrochage d'un détecteur d'accrochage à deux seuils avec temps de confirmation, piloté sur une rampe de C/N0, rapporté séparément du temps physique d'échappée de phase (le temps moyen de Viterbi entre sauts de cycle, en log10 s parce qu'il s'étend sur des centaines de décades) ; (4) les limites d'entraînement par leurrage — la plus grande dérive de code et la plus grande vitesse de Doppler de porteuse que les boucles d'une victime peuvent suivre, avec une carte sur les deux axes, parce qu'un leurreur qui dérive plus vite que ces limites ne capture pas la boucle, il la distance ; et (5) le RAYON DE DÉNI qu'impliquent les dynamiques de boucle, rapporté AU CÔTÉ du rayon existant par rapport de puissance, jamais à sa place, avec leur différence signée comme champ nommé distinct (denial_radius_delta_km) et une définition à côté. Chaque champ numérique émis porte une unité et une classe de provenance. Formes closes VALIDATED : les expressions de gigue de porteuse et de code, la réduction du filtre de boucle sqrt(2*B_n*T) et le retard de rampe du premier ordre sont recoupés avec le propre corrélateur sdr du moteur avancé sur une FI synthétique à graine fixée — une autre voie vers les mêmes nombres — à 0,6 %, 3,7 % et 0,17 % respectivement, et la fonction de Bessel modifiée I0 derrière le temps de saut de cycle avec des valeurs tabulées standard à 1e-7. La limite de validité inférieure est affirmée, pas seulement énoncée : en dessous d'environ 32 dB-Hz à 1 ms, le véritable discriminateur atan sature contre sa plage de +-pi/2 et mesure moins de gigue que n'importe quelle théorie linéaire. MODELLED : les bandes passantes de boucle, le temps d'intégration, l'espacement des corrélateurs, le rapport de bande d'entraînement, les temps de confirmation, la puissance du brouilleur et les gains d'antenne sont des valeurs de bande représentatives, non une fiche technique. NON modélisés : la gigue d'oscillateur (déviation d'Allan) et de vibration, la limitation de bande passante du frontal, les trajets multiples, la dynamique de l'AGC, la perte aux transitions de bits de données, l'aide externe, et toute correction d'un demi-cycle de la formule de saut de cycle de Costas. Sous les dynamiques de boucle, la capture par leurrage n'a aucun rayon — la contrainte déterminante est le taux de décalage, non la puissance — de sorte que ce champ est null avec une raison plutôt qu'un nombre fabriqué. Pas un produit certifié de performance de récepteur.
tracking-loop.toml
Perte d'accrochage de la boucle de poursuite : C/N0 -> accrochage/décrochage avec hystérésis, le temps nécessaire pour perdre l'accrochage, et les limites d'entraînement par leurrage fixées par le TAUX de décalage de code et de porteuse.
kind = "tracking-loop"
pll_bandwidth_hz = 10.0
dll_bandwidth_hz = 1.0
predetection_integration_s = 0.001
correlator_spacing_chips = 0.5
carrier_allowance_deg = 45.0
pullin_bandwidth_ratio = 2.0
drop_confirm_epochs = 50Suites d'études#
Une suite est un fichier de scénario qui énumère d'autres scénarios ; kshana --study l'exécute pour produire un seul study.json et un seul study.html horodatés. Il s'agit de l'exécuteur de suites gratuit, et non de l'étude personnalisée payante.
quantum-pnt-demonstrator.suite.toml
Quantum-Enabled PNT Demonstrator — les trois domaines d'application réunis en une seule étude.
kshana --study scenarios/quantum-pnt-demonstrator.suite.toml