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 ?
Une chaîne de simulation complète du positionnement GNSS, construite pour répondre à une question simple par le calcul : de combien se tromperait un récepteur si l'on retirait la correction relativiste ?
Partie AMise en Cohérence des Objectifs du TIPE
Document fondateur du TIPE, déposé lors de la première phase. Les compteurs vérifient le respect des limites imposées par le SCEI.
Positionnements thématiques
Le premier positionnement relève de la discipline de la filière, conformément aux attendus.
| Rang & domaine | Sous-domaine | Justification |
|---|---|---|
| 1. PHYSIQUE | Mécanique | Dynamique orbitale, métrique de Schwarzschild en champ faible, propagation du signal dans un référentiel tournant. |
| 2. MATHÉMATIQUES | Analyse numérique | Résolution d'un système non linéaire par linéarisation itérative, moindres carrés, conditionnement. |
| 3. INFORMATIQUE | Informatique pratique | Implémentation d'une chaîne de simulation complète et de deux algorithmes de résolution en Python/NumPy. |
Mots-clés
| Français | Anglais |
|---|---|
| pseudodistance | pseudorange |
| relativité générale | general relativity |
| moindres carrés | least squares |
| mode commun | common mode |
| dilution de précision | dilution of precision |
Rubriques rédigées
Le GNSS est un empilement de boucles. Boucle orbitale : la constellation se répète en un demi-jour sidéral. Boucle de résolution : position et temps se déterminent mutuellement. Boucle numérique de Newton-Gauss. Et la boucle conceptuelle d'Einstein, où la matière courbe l'espace-temps qui guide en retour la matière.
On lit partout que sans correction relativiste le GPS dériverait de onze kilomètres par jour. Ce chiffre m'a paru suspect : un décalage identique sur tous les satellites ne devrait-il pas s'absorber dans l'inconnue d'horloge du récepteur ? J'ai voulu trancher par le calcul plutôt que par l'argument d'autorité.
Quelle part de l'erreur de position d'un récepteur GNSS est réellement imputable aux effets relativistes, une fois pris en compte le fait que le récepteur résout simultanément sa position et le biais de sa propre horloge ?
Construire une chaîne de simulation complète et vérifiable : constellation képlérienne, génération des pseudodistances, résolution de position. Implémenter deux algorithmes indépendants — la solution fermée de Bancroft et la boucle itérative de Newton-Gauss — et les faire se contrôler mutuellement. Injecter séparément chaque terme relativiste (séculaire, excentricité, Sagnac) pour mesurer sa contribution propre à l'erreur de position. Confronter le résultat obtenu au chiffre de onze kilomètres par jour couramment avancé, et expliquer quantitativement l'écart.
Bibliographie commentée 408 / 650 mots
Partie B · 1Le point de départ : un chiffre trop rond
Presque toute vulgarisation du GPS contient la même phrase : sans correction relativiste, le système dériverait d'une dizaine de kilomètres par jour. Ce travail part de la volonté de vérifier ce chiffre — et découvre en chemin qu'il ne mesure pas ce qu'on lui fait dire.
Le raisonnement habituel tient en deux lignes. Les horloges embarquées avancent de 38,6 microsecondes par jour par rapport au sol ; multiplié par la vitesse de la lumière, cela fait 11,6 km de distance par jour. Le calcul est juste. La conclusion qu'on en tire ne l'est pas nécessairement.
Car un récepteur GNSS ne mesure pas des distances : il mesure des pseudodistances, et il résout simultanément quatre inconnues — trois de position, une d'horloge. Or un décalage identique sur tous les satellites est mathématiquement indiscernable d'un décalage de l'horloge du récepteur. Il devrait donc être absorbé par l'inconnue temporelle, sans toucher à la position. Si c'est vrai, les 11,6 km par jour ne sont pas une erreur de position : c'est une erreur de datation.
Quelle part de l'erreur de position d'un récepteur GNSS est réellement imputable aux effets relativistes, une fois pris en compte le fait que le récepteur résout simultanément sa position et le biais de sa propre horloge ?
Pourquoi ce sujet s'inscrit dans « Cycles, boucles »
Le GNSS n'est pas ancré au thème par métaphore : il est littéralement constitué de boucles emboîtées, et chacune intervient dans ce travail.
- Boucle orbitale. La constellation a une période de 11,97 h — un demi-jour sidéral. La géométrie du ciel se referme exactement deux fois par jour (figure 4).
- Boucle de mesure. La position dépend du temps de propagation, qui dépend de la position. Le temps d'émission ne peut être obtenu que par itération.
- Boucle algorithmique. Le système d'équations est non linéaire : la résolution par Newton-Gauss est une boucle de linéarisations successives (figure 1).
- Boucle de rétroaction relativiste. Le potentiel gravitationnel détermine la marche des horloges, qui détermine la position calculée, laquelle sert à évaluer le potentiel. C'est la boucle de Wheeler : la matière courbe l'espace-temps, qui guide la matière.
- Boucle de correction périodique. Le terme relativiste d'excentricité est sinusoïdal sur une orbite : une correction qui se répète indéfiniment (figure 3).
Partie B · 2Modélisation : de la géométrie à l'équation de mesure
2.1 · L'équation de pseudodistance
Le récepteur date la réception avec sa propre horloge, imparfaite. La grandeur qu'il obtient n'est donc pas la distance ρi mais la pseudodistance
où X = (x, y, z) est la position cherchée, Xi celle du satellite i, et d = c b le biais d'horloge du récepteur exprimé en mètres. Le point décisif est que d est le même pour tous les satellites : c'est la même horloge qui les date tous.
2.2 · Trois satellites, puis quatre
Si l'horloge était parfaite (d = 0), trois sphères suffiraient. En développant les carrés, le bloc x²+y²+z² est commun à toutes les équations : on l'élimine en soustrayant la première des autres, ce qui linéarise le système.
Deux équations linéaires pour trois inconnues : le lieu est une droite, qu'on réinjecte dans une sphère pour obtenir un trinôme et deux solutions, dont une seule est proche de la surface terrestre.
Avec l'inconnue d'horloge, le même procédé fonctionne : en élevant (1) au carré, le terme d² s'élimine en même temps que le bloc quadratique. Il reste trois équations linéaires pour quatre inconnues, d'où la nécessité d'un quatrième satellite.
2.3 · Deux résolutions indépendantes
Solution fermée de Bancroft (1985)
En munissant ℝ⁴ du produit pseudo-euclidien de Minkowski ⟨a,b⟩ = a1b1 + a2b2 + a3b3 − a4b4, et en posant ai = (Xi, Pi) et u = (X, d), l'équation (1) devient
c'est-à-dire : le récepteur appartient au cône de lumière de chaque satellite. Toute la physique du GNSS tient dans cette ligne, et le fait que la métrique de Minkowski apparaisse ici n'est pas une coïncidence formelle — c'est la structure causale de l'espace-temps qui définit la mesure.
En posant λ = ½⟨u,u⟩, le système devient linéaire en u à λ fixé : u = λp + q, et la contrainte ⟨u,u⟩ = 2λ donne un simple trinôme en λ. Aucune itération, aucun point de départ.
Boucle itérative de Newton-Gauss
Avec n > 4 satellites, le système est surdéterminé. On linéarise autour d'une estimation courante, avec ei le vecteur unitaire récepteur → satellite :
La matrice Q = (HTH)−1 ne dépend que de la géométrie et fournit les facteurs d'affaiblissement (DOP), qui multiplient l'erreur de mesure pour donner l'erreur de position.
2.4 · Les deux boucles cachées du modèle de mesure
Deux effets sont faciles à oublier et coûtent chacun plusieurs dizaines de mètres.
- Temps d'émission. Le satellite a émis ~70 ms plus tôt, et s'est déplacé de 270 m depuis. Sa position doit être évaluée à l'instant d'émission, lequel dépend de la distance cherchée : encore une boucle.
- Rotation terrestre (effet Sagnac). Pendant la propagation, le repère ECEF tourne. À l'instant simulé, la correction va de -18,6 m à +22,4 m selon le satellite ; sur 24 h l'enveloppe atteint ±25,3 m à Paris et ±38 m à l'équateur, pour une borne théorique ωEaRT/c = 41,2 m (137 ns). La négliger produit une erreur de 23,3 m — soit davantage que tous les termes relativistes réunis.
Pendant trois semaines, ma chaîne conservait une erreur résiduelle de 24 m que j'attribuais au solveur. Elle venait du modèle : j'injectais la rotation terrestre dans la génération des mesures sans l'appliquer à la résolution. Générer et résoudre doivent partager exactement les mêmes hypothèses, sans quoi on mesure ses propres incohérences au lieu de la physique.
Partie B · 3De l'équation d'Einstein au décalage des horloges
Il s'agit ici de descendre de l'équation de champ jusqu'à un nombre de microsecondes par jour, sans sauter d'étape.
3.1 · L'équation de champ et sa limite de champ faible
À gauche la courbure, à droite le contenu en énergie-impulsion. Autour de la Terre le champ est faible : on pose gμν = ημν + hμν avec |h| ≪ 1. En régime statique et pour des vitesses faibles, l'équation des géodésiques se réduit à d²xi/dt² = (c²/2)·∂i h00. L'identification avec a = −∇Φ donne
Résultat central : le potentiel newtonien n'est rien d'autre que la déformation de la composante temporelle de la métrique. La gravitation que nous subissons quotidiennement est une courbure du temps, pas de l'espace. En réinjectant (6) dans (5) on retrouve d'ailleurs ∇²Φ = 4πGρ, ce qui fixe le coefficient 8πG/c⁴.
3.2 · Marche d'une horloge
Le temps propre d'une horloge de vitesse v au potentiel Φ s'écrit, au premier ordre :
Appliquée au satellite puis à une horloge posée sur le géoïde, et soustraite, elle donne trois contributions.
| Contribution | Expression | Écart relatif | µs / jour |
|---|---|---|---|
| Gravitationnelle (RG) altitude, potentiel plus faible → l'horloge avance |
Φsat/c² − Φsol/c² | +5,2914·10⁻¹⁰ | +45,718 |
| Cinématique (RR) 3 874 m/s → l'horloge retarde |
−v²/(2c²) | −8,3491·10⁻¹¹ | -7,214 |
| Écart géoïde / modèle sphérique rotation terrestre et aplatissement J₂, qui se compensent sur le géoïde |
Φsol/c² − W₀/c² | +8,024·10⁻¹³ | +0,069 |
| Total | — | +4,4646·10⁻¹⁰ | +38,574 |
Attention à ne pas confondre le troisième terme avec « l'effet de la rotation terrestre » : sur le géoïde, le terme centrifuge (+0,104 µs/j à l'équateur, +0,045 µs/j à Paris) est exactement compensé par l'aplatissement, de sorte que toutes les horloges du géoïde battent au même rythme. Ce qui reste ici n'est que l'écart entre le potentiel réel W₀ et le modèle sphérique −µ/RT que j'ai utilisé pour isoler la part gravitationnelle.
Les deux effets ne se compensent pas : il reste +38,57 µs/jour. La parade est élégante — l'oscillateur des satellites est volontairement déréglé avant le lancement, à 10 229 999,995 433 Hz au lieu de 10,23 MHz exactement, pour qu'une fois en orbite il paraisse juste vu du sol. La relativité générale n'est pas une correction logicielle : c'est un réglage matériel.
3.3 · Les deux termes que l'on oublie
Terme d'excentricité. L'orbite n'étant pas rigoureusement circulaire, Φ et v varient au cours d'une révolution. Le décalage constant de §3.2 doit être complété par un terme périodique
d'amplitude ±22,9 ns pour e = 0,01, soit 6,9 m de portée. (Convention IS-GPS-200 : l'expression ci-dessus est la correction à appliquer ; Ashby écrit le même terme avec le signe opposé car il décrit l'effet.) Point capital pour la suite : ce terme dépend de l'anomalie excentrique E, donc de chaque satellite pris séparément. Il n'est pas un mode commun.
Effet Sagnac. Purement cinématique en repère tournant, il est de même nature relativiste et se traite par une rotation de la position du satellite d'un angle ωEτ.
Partie B · 4Construction et validation de la simulation
4.1 · Ce que le programme fait
- Constellation képlérienne : 6 plans, 4 satellites par plan, i = 55°, a = 26 559,8 km, période 11,97 h.
- Masque d'élévation 5° depuis Paris (48,857° N ; 2,352° E) → 7 à 9 satellites visibles.
- Résolution du temps d'émission par itération, puis correction de rotation terrestre.
- Génération des pseudodistances, avec injection contrôlée de chaque perturbation.
- Résolution par Newton-Gauss et par Bancroft.
4.2 · Le test qui rend les résultats exploitables
Avant toute conclusion physique, il fallait garantir que la chaîne boucle : sans aucune perturbation, la position retrouvée doit être exactement celle injectée. C'est un test de non-régression, exécuté avant chaque expérience.
Les deux solveurs, qui ne partagent aucune ligne de code, s'accordent à 5·10⁻⁵ m près. C'est ce qui autorise à interpréter ensuite un écart de quelques mètres comme un effet physique et non comme un artefact numérique.
Partie B · 5Résultats
5.1 · Résultat principal : le terme séculaire est un mode commun
L'expérience consiste à supprimer la correction relativiste et à laisser le décalage s'accumuler, puis à résoudre normalement. Trois lectures sont comparées.
Le chiffre de 11,6 km/jour n'est pas une erreur de position : c'est une erreur de datation, et elle est absorbée par l'inconnue d'horloge que le récepteur résout de toute façon. Sur une constellation idéalement homogène, l'erreur de position correspondante est de 2,3 cm par jour. Ce qui dégrade réellement la position, c'est la fraction différentielle du décalage — ici 8,4 m par jour, soit 1375 fois moins que le chiffre couramment avancé.
La formulation d'origine est d'Ashby lui-même (Physics Today, 2002) : sans correction, « les erreurs d'horloge accumulées en un seul jour causeraient des erreurs de navigation de plus de 11 km ». C'est cette phrase qui a fait le tour de la vulgarisation. La littérature d'ingénierie GPS la nuance explicitement : Fliegel & DiEsposti (PTTI, 1996) montrent que seuls les effets différentiels entre satellites comptent pour la navigation, et P. Misra (GPS World, 2023) écrit que ce biais commun « serait absorbé avec celui, bien plus grand, de l'horloge du récepteur — l'estimation de position ne serait pas affectée ». Ma simulation retrouve ce résultat de façon indépendante. À noter aussi que les 11,6 km sont la valeur atteinte en fin de journée entre deux recalages, la moyenne étant d'environ 5,8 km.
Il ne dit pas que la correction relativiste serait inutile. Elle reste indispensable pour deux raisons que ma simulation met en évidence : la part différentielle croît linéairement et dépasse la précision nominale de 5 m en moins d'un jour ; et le GNSS est aussi un service de transfert de temps, pour lequel une dérive de 38,6 µs/jour est rédhibitoire — les réseaux de télécommunication et les horodatages financiers en dépendent.
Deux vérifications indépendantes confortent ces chiffres.
- Résidu d'éphémérides. Ma constellation idéale donne 2,3 cm après un jour. Une estimation analytique indépendante — vitesse radiale ≲ 900 m/s multipliée par 38,6 µs — donne ≈ 3 cm. Même ordre de grandeur.
- Dérive différentielle. Ashby donne la formule δ(Δf/f) = 3GMδa/(2c²a²). Pour la dispersion effectivement tirée dans ma constellation (σ = 15,8 km), elle prédit 1,4932·10⁻¹³ ; ma simulation mesure 1,4941·10⁻¹³, soit 0,06 % d'écart. Le modèle numérique reproduit donc exactement le résultat analytique publié.
5.2 · Le terme d'excentricité, lui, est différentiel dès la première seconde
L'erreur moyenne est de 6,62 m (maximum 7,07 m), pour une amplitude de correction de seulement 22,9 ns. C'est le terme relativiste qui pèse le plus lourd sur la position instantanée, alors que son amplitude est 1 684 fois plus faible que la dérive séculaire accumulée en 24 h. Ce n'est pas l'amplitude d'une correction qui compte, c'est son caractère différentiel.
5.3 · Le cycle de la géométrie
Le PDOP oscille entre 1,39 et 2,49 (moyenne 1,76), pour 7,7 satellites visibles en moyenne. C'est ce facteur qui convertit une erreur de mesure en erreur de position : la même erreur d'horloge coûte près de deux fois plus cher aux instants défavorables.
5.4 · Budget d'erreur
| Poste | Erreur | Nature |
|---|---|---|
| Rotation terrestre / Sagnac négligée | 23,32 m | différentiel, géométrique |
| Terme d'excentricité non corrigé | 6,56 m | différentiel, périodique |
| Désynchronisation horloges satellites (σ = 10 ns) | 5,26 m | différentiel, aléatoire |
| Terme séculaire, 1 jour, constellation réelle | 4,44 m | partiellement commun |
| Bruit de mesure (σ = 1 m) | 1,79 m | aléatoire |
| Terme séculaire, 1 jour, constellation idéale | 4 cm | mode commun pur |
5.5 · Pourquoi la redondance change tout
Avec 4 satellites l'amplification mesurée vaut 4,2c ; avec 8 satellites elle tombe à 0,48c, soit un facteur 9. La redondance n'améliore pas seulement la géométrie : elle dilue les erreurs individuelles. C'est l'argument technique qui justifie l'usage simultané de GPS, Galileo, GLONASS et BeiDou par les récepteurs modernes.
Partie B · 6Analyse critique et limites
Une simulation ne prouve que ce que son modèle contient. Voici ce que le mien ne contient pas, et en quoi cela borne mes conclusions.
| Hypothèse simplificatrice | Effet négligé | Conséquence sur mes conclusions |
|---|---|---|
| Orbites képlériennes pures | Aplatissement terrestre J₂, pression de radiation, Lune et Soleil | Modifie la géométrie instantanée, donc les valeurs exactes de DOP. Sans effet sur la conclusion principale, qui porte sur la structure commune/différentielle. |
| Aucune propagation atmosphérique | Ionosphère (jusqu'à 30 m), troposphère (2 à 25 m) | Dominent le budget d'erreur réel. Mes chiffres relativistes sont donc des contributions relatives, non un budget opérationnel complet. |
| Segment sol absent | Le contrôle au sol resynchronise les horloges et diffuse des polynômes de correction | Limite la plus importante. Ma courbe de dérive séculaire suppose qu'aucune correction n'est appliquée ; en pratique la dérive est bornée par le suivi au sol. |
| Récepteur immobile, mono-fréquence | Dynamique, effet Doppler, combinaison bi-fréquence | Sous-estime les performances réelles d'un récepteur moderne. |
| Dispersion des demi-grands axes tirée aléatoirement | Valeurs réelles publiées dans les almanachs | La valeur de 8,4 m/jour est un ordre de grandeur, pas une mesure. Elle dépend linéairement de l'écart-type choisi (20 km). |
Ce que je referais autrement
- Utiliser des almanachs GPS réels plutôt qu'une constellation nominale, pour remplacer la dispersion tirée au hasard par les demi-grands axes effectifs.
- Écrire le test de non-régression avant le solveur, et non après : il m'aurait fait gagner les trois semaines perdues sur l'erreur de 24 m.
- Comparer à des relevés NMEA d'un récepteur réel, pour confronter le modèle à la mesure — c'est le prolongement naturel de ce travail.
ConclusionCe que la simulation a réellement montré
Le chiffre de onze kilomètres par jour, dont je suis parti, est arithmétiquement exact et physiquement mal interprété. Il quantifie une dérive de datation, non une erreur de position : parce que le récepteur résout son horloge en même temps que sa position, toute perturbation commune à l'ensemble des satellites lui est transparente.
Ce qui dégrade réellement la position, ce sont les termes différentiels : le terme d'excentricité (6,62 m, immédiat et permanent), la dispersion des orbites réelles (8,4 m par jour, cumulatif) et, plus lourd encore que l'ensemble des effets relativistes, la correction de rotation terrestre (23,3 m). La leçon générale dépasse le GNSS : dans un système qui estime ses propres biais, ce n'est pas l'amplitude d'une perturbation qui compte, mais sa structure — et seule la part qui n'est pas commune se paie.
La relativité générale reste indispensable au GNSS. Mais la simulation montre qu'elle l'est pour des raisons plus subtiles, et plus intéressantes, que celle qu'on répète habituellement.
Partie CDéroulé Opérationnel du TIPE
Huit étapes chronologiques, chacune sous la limite de 50 mots. Le SCEI attend explicitement que les difficultés et les impasses y figurent : ce sont ici les étapes 3, 4 et 5.
Calendrier détaillé et jalons du concours
Le DOT étant contraint à 50 mots par étape, voici le déroulé complet sur l'année, mis en regard des échéances officielles de la session 2026.
| Période | Travail réalisé | Échéance SCEI |
|---|---|---|
| Avril 2025 | Publication du thème « Cycles, boucles » au Bulletin officiel | Thème annuel |
| Juillet 2025 | Choix du sujet, lecture d'Ashby (Living Reviews, 2003) | |
| Septembre 2025 | Limite newtonienne, calcul des trois termes relativistes | |
| Octobre 2025 | Codage de la constellation képlérienne et du masque d'élévation | |
| Novembre 2025 | Premier solveur Newton-Gauss — erreur résiduelle inexpliquée de 24 m | |
| Décembre 2025 | Diagnostic : incohérence Sagnac entre génération et résolution | |
| Janvier 2026 | Découverte du mode commun ; rédaction du MCOT | Dépôt MCOT : 15 janv. - 5 févr. |
| Février 2026 | Termes différentiels, budget d'erreur, étude de sensibilité | |
| Mars 2026 | Solveur de Bancroft, validation croisée, étude du DOP sur 24 h | |
| Avril 2026 | Contre-expertise bibliographique, correction de trois erreurs | |
| Mai 2026 | Analyse critique des limites, rédaction, tracé des figures | |
| 2 juin 2026 | Dépôt de la présentation (PDF 4:3, moins de 5 Mo) | Dépôt présentation : 25 févr. - 9 juin |
| Mi-juin 2026 | Validation par le professeur référent | Validation : 11 - 19 juin |
| Été 2026 | Oral de 15 minutes devant le jury | Épreuve |
Les dates de travail sont indicatives ; elles
se modifient dans contenu.py, listes DOT et
CALENDRIER. Les trois échéances en encadré sont, elles, celles publiées par le
SCEI pour la session 2026.
AnnexeExtrait du code
La chaîne complète représente environ 400 lignes de Python/NumPy réparties en trois
modules : gnss.py (modèle et solveurs), experiences.py
(protocoles), figures.py (tracés). Le cœur de la boucle de Newton-Gauss :
def newton_gauss(S, P, u0=None, tol=1e-4, itmax=30, corriger_rotation=True):
u, hist = (np.zeros(4) if u0 is None else np.array(u0, float)), []
for k in range(itmax):
rho, Sr = portee_geom(S, u[:3], corriger_rotation) # boucle interne : Sagnac
e = (Sr - u[:3]) / rho[:, None] # vecteurs unitaires
H = np.column_stack([-e, np.ones(len(S))]) # matrice de geometrie
du = np.linalg.lstsq(H, P - (rho + u[3]), rcond=None)[0]
u += du
hist.append(np.linalg.norm(du))
if hist[-1] < tol:
break
return u, H, hist
Et la solution fermée de Bancroft, qui repose entièrement sur le produit de Minkowski :
mink = lambda a, b: a[0]*b[0] + a[1]*b[1] + a[2]*b[2] - a[3]*b[3]
A = np.column_stack([S4, P4]) # lignes a_i = (x_i, y_i, z_i, P_i)
r = np.array([0.5*mink(a, a) for a in A])
M = np.diag([1., 1., 1., -1.])
p, q = M @ (np.linalg.inv(A) @ np.ones(4)), M @ (np.linalg.inv(A) @ r)
# <lam*p + q, lam*p + q> = 2*lam -> trinome en lam, deux racines
lam = np.roots([mink(p,p), 2*mink(p,q) - 2, mink(q,q)])
Conformément aux attendus, les listings complets sont à fournir en deux exemplaires papier le jour de l'oral.