Une sonde martienne échoue à cause d'une erreur d'unité

Le 23 septembre 1999, la sonde Mars Climate Orbiter s'est approchée de Mars à une altitude d'environ 57 km. La NASA visait une altitude comprise entre 140 et 150 km, et la sonde ne pouvait pas survivre en dessous d'environ 80 km.

Une conversion d'unités non effectuée est à l'origine de l'échec

La cause de l'échec tient à une conversion d'unités qui n'a jamais été réalisée. Le logiciel au sol de Lockheed Martin, le constructeur, exprimait l'impulsion des brefs allumages des propulseurs en livres-force seconde. La navigation du Jet Propulsion Laboratory (JPL), en revanche, lisait ces mêmes valeurs en newton-seconde.

La différence d'unités a conduit à des calculs erronés

Une livre-force équivaut à environ 4,45 newtons, et l'écart s'est accumulé pendant le voyage de neuf mois. Le logiciel de Lockheed Martin exprimait les impulsions en livres-force seconde. La navigation du JPL les lisait en newton-seconde, soit un rapport de 4,45 pour 1.

Les allumages fréquents des propulseurs ont aggravé le problème

La désaturation des roues de réaction était 10 à 14 fois plus fréquente que prévu. La sonde est descendue à environ 57 km, soit 23 km en dessous du seuil de survie. Des chiffres exacts, lus dans la mauvaise unité.

Une opération de maintenance courante est devenue dangereuse

Ces brefs allumages relèvent d'une procédure de maintenance courante. Le panneau solaire de la sonde, asymétrique, subit la pression de la lumière du Soleil, ce qui fait tourner ses roues de réaction jusqu'à saturation. Il faut alors allumer brièvement les propulseurs pour les « désaturer ».

Une mauvaise interprétation a conduit à une trajectoire incorrecte

Selon une analyse récente du rapport, ces désaturations étaient 10 à 14 fois plus fréquentes que ce que les navigateurs avaient prévu, et chacune était consignée dans un fichier produit par l'application SM_FORCES. La spécification exigeait des newton-seconde. Le code fournissait des livres-force seconde, de sorte que chaque poussée modélisée par les navigateurs pesait moins du quart de sa valeur réelle.

Personne n'a remarqué l'erreur qui grandissait

Aucun des deux calculs n'était faux en soi. Lockheed produisait des valeurs exactes dans son unité, et le JPL appliquait des formules exactes dans la sienne. Même la version embarquée du calcul, en unités métriques, était correcte : seule la copie restée sur Terre était décalée, ce qui laissait la sonde mieux informée de sa route que ceux qui la pilotaient.

Neuf mois de dérive sans correction

Neuf mois de dérive que personne n'a lue. Lancée le 11 décembre 1998 depuis Cap Canaveral par une fusée Delta II, la sonde devait étudier le climat martien. Pendant la croisière, chaque allumage mal interprété a légèrement décalé la trajectoire réelle par rapport à celle calculée par les ordinateurs.

Des problèmes non résolus ont mené au désastre

Des anomalies ont été détectées dans les fichiers du logiciel au sol, puis discutées de manière informelle, sans jamais être résolues. Personne ne les a rattachées à la trajectoire. Le 15 septembre, huit jours avant l'arrivée, une correction finale devait placer la sonde à 226 km de la surface en vue de l'insertion en orbite.

Un signal final perdu trop tôt

Le 23 septembre 1999, un signal s'est interrompu 49 secondes trop tôt. Le moteur principal s'est allumé à 9h00 min 46 s UTC pour ralentir la sonde. Les équipes s'attendaient à perdre le contact lorsque celle-ci passerait derrière Mars, mais le signal a disparu à 9h04 min 52 s, soit 49 secondes plus tôt que prévu. Il n'a jamais été retrouvé, même après l'écoulement des 21 minutes annoncées d'occultation.

Des calculs avec les valeurs correctes révèlent l'erreur

Les calculs refaits avec les valeurs correctes placent le point le plus bas de la trajectoire à environ 57 km, soit 23 km en dessous du seuil de survie. La sonde s'est désintégrée dans l'atmosphère martienne.

Une petite erreur a grandi avec le temps

Sur un trajet de plus de 600 millions de kilomètres, l'écart d'environ 90 km par rapport à la cible basse représente moins d'un millionième du trajet. Mars Climate Orbiter n'a donc pas manqué sa cible par hasard, mais à cause d'une minuscule erreur, répétée à chaque allumage, qui a disposé de neuf mois pour grandir.

Le coût de la mission était considérable

Coût de la mission : environ 327,6 millions de dollars. Les montants avancés varient selon le périmètre, de 125 millions pour la seule sonde à 327,6 millions en incluant le lancement et les opérations. La perte a également compliqué le programme martien ultérieur de la NASA, car la sonde devait servir de relais de communication pour l'atterrisseur Mars Polar Lander.

L'enquête met en lumière plusieurs défaillances

Ce que le comité a critiqué. Publié le 10 novembre 1999, le rapport du Mars Climate Orbiter Mishap Investigation Board identifie la cause directe : le non-respect du système métrique dans le codage de SM_FORCES. Il ne s'arrête pas là. Il souligne des tests insuffisants, une communication inadéquate entre les équipes du JPL et de Lockheed, ainsi qu'une formation incomplète des opérateurs.

Un rapport complémentaire sur la gestion de la NASA

Tous ces filets de sécurité auraient dû détecter l'erreur. Chez Lockheed Martin, les ingénieurs en propulsion avaient pris l'habitude d'exprimer la force en livres, alors que la pratique des missions spatiales exigeait une conversion en métrique, que les équipes du JPL supposaient effectuée. Le comité a prolongé son travail par un second rapport, consacré à la gestion de projet à la NASA, daté du 13 mars 2000.