Skip to content

Repository files navigation

Cycles et boucles au cœur du GNSS

Quelle part de la relativité générale dans la précision d'un positionnement par satellite ?

TIPE session 2026 — thème annuel « Cycles, boucles », filière MP.

tipe.commutator.io

Le résultat

Le chiffre des 11 km par jour est arithmétiquement exact et physiquement mal interprété : il quantifie une dérive de datation, pas une erreur de position. Un récepteur GNSS résout simultanément sa position et le biais de sa propre horloge ; un décalage identique sur tous les satellites lui est donc transparent — il est absorbé par cette quatrième inconnue, qu'il faut de toute façon estimer.

La simulation le mesure : 2,3 cm par jour sur une constellation idéale, contre les 11,56 km annoncés. Ce qui dégrade réellement la position, ce sont les termes différentiels — excentricité (6,6 m), dispersion orbitale (8,4 m/jour) et, plus lourd que tous les effets relativistes réunis, la rotation terrestre (23,3 m).

Ce n'est donc pas l'amplitude d'une perturbation qui décide de son coût, c'est sa structure.

Le site

Cinq pages, chacune recalculant ses chiffres dans le navigateur plutôt que de les recopier — le site n'illustre pas la simulation, il l'exécute.

Page Contenu
/ Genèse du sujet : les six échanges qui l'ont construit, et le sommaire du site
/resultat/ La démonstration : lecture naïve c·Δt contre erreur de position mesurée, réglable
/budget/ Budget d'erreur poste par poste, chaque terme injecté seul
/geometrie/ Cycle diurne du DOP, carte du ciel, convergence de Newton-Gauss
/documents/ Rapport, diapositives, PDF, figures, bibliographie, et le code ligne à ligne

Le dépôt

Chemin Rôle
src/lib/gnss.ts Portage TypeScript du modèle : constellation, corrections relativistes, Bancroft, Newton-Gauss
src/lib/experiences.ts Les sept protocoles numériques, rendus paramétrables pour le site
src/lib/*.test.ts Suite de non-régression : 39 tests, dont la vérification que la chaîne boucle sous le nanomètre
src/Page*.tsx Une page par point d'entrée HTML — hébergement statique, pas de routeur client
public/code/ La chaîne de simulation Python d'origine, servie telle quelle
public/rapport.html Rapport complet et 17 diapositives (carrousel, Échap pour revenir au site)
public/pdf/ Article LaTeX de 16 pages, support Beamer 4:3 de 18 diapositives, carnet de genèse
public/figures/ Les six figures du rapport, en SVG

Les valeurs attendues des tests sont celles imprimées par la chaîne Python, et non des valeurs relevées sur l'implémentation TypeScript : un test qui enregistre ce que le code produit ne vérifie rien. Le portage reproduit les chiffres du rapport à l'identique sur toutes les grandeurs déterministes.

Reproduire les résultats

La chaîne d'origine, en Python :

cd public/code
pip install -r requirements.txt
python experiences.py     # tous les résultats chiffrés
python figures.py         # régénère les six figures
python build_latex.py     # recompose le rapport et le support d'oral en LaTeX

build_latex.py demande tectonic (brew install tectonic). Il produit un article LaTeX et un support Beamer à partir du même contenu et des mêmes résultats numériques que le site : les deux disent donc les mêmes chiffres.

exp0_coherence() est le test de non-régression : sans perturbation, la chaîne doit retrouver la position injectée à mieux qu'un nanomètre. À lancer avant toute interprétation — une erreur résiduelle de 24 m à ce test, due à la rotation terrestre injectée à la génération mais non corrigée à la résolution, avait coûté trois semaines.

Le site, en local :

npm install
npm test        # la même vérification, côté TypeScript
npm run dev

Vérification

La conclusion a été recoupée avec deux sources d'ingénierie GPS — Fliegel & DiEsposti (PTTI, 1996), qui établissent que seuls les effets différentiels affectent la navigation, et P. Misra (GPS World, 2023), qui écrit que le biais commun serait absorbé avec celui, bien plus grand, de l'horloge du récepteur. La simulation reproduit par ailleurs la formule analytique d'Ashby sur la dérive différentielle à 0,06 % près.

Publication

Vite + React + Tailwind, déployé sur GitHub Pages par .github/workflows/deploy.yml à chaque poussée sur main. Le déploiement est conditionné au lint, aux tests et à la compilation TypeScript : si le test de non-régression tombe, le site ne part pas.

Licence

MIT — voir LICENSE.

About

2026 TIPE — Cycles and loops at the heart of GNSS: how much of a satellite positioning fix does general relativity actually account for?

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages