Mariner 1

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Mariner 1

Description de cette image, également commentée ci-après

Vue d'artiste de Mariner 1

Caractéristiques
Organisation JPL, NASA
Domaine Observation de Vénus
Masse 202,8 kg
Lancement 22 juillet 1962 à 09:21:23 GMT
Lanceur Atlas-Agena B
Fin de mission 22 juillet 1962 à 09:26:16
Durée 293 secondes
Orbite non atteint
Programme Mariner
Index NSSDC MARIN1

Mariner 1 est la première sonde du programme Mariner. Lancée le 22 juillet 1962 pour une mission de survol de Vénus, l'officier de sécurité de champ de tir commanda sa destruction 294,5 s après son lancement.

D'après le communiqué de la NASA :

« le booster fonctionna correctement jusqu'à ce qu'une déviation imprévue en lacet (vers le nord-est) fut détectée par l'officier de sécurité du pas de tir. Une défaillance des commandes de guidage rendit le pilotage impossible et conduisait le véhicule au crash, possiblement sur les couloirs de navigation de l'Atlantique nord ou une zone inhabitée. La commande de destruction fut envoyée 6 secondes avant la séparation, après laquelle la destruction du véhicule serait devenue impossible. La balise radio continua à transmettre son signal pendant 64 secondes après l'envoi de la commande de destruction[1],[2]. »

Le lancement de la sonde était initialement prévu la veille mais avait été reporté précisément à cause d'un dysfonctionnement du système de commande de destruction du lanceur Atlas[1],[A 1].

La NASA attribue à un fonctionnement incorrect des équipements radio embarqués de l'étage Atlas la perte d'un des signaux de guidage au sol, exposant le véhicule à une malfaçon du logiciel pilote. Le rôle de cette erreur logicielle dans l'échec du lancement reste assez mystérieux, noyé dans les ambiguïtés et contradictions des différents rapports et déclarations, officiels ou non.

La nature complexe du problème et les descriptions imprécises qui en ont été faites engendra toutes sortes de légendes urbaines. C'est notamment dans le folklore informatique et jusqu'à récemment que persiste une croyance à propos du rôle supposé d'une faute de frappe en Fortran.

La mission fut accomplie plus tard par Mariner 2, doublure de Mariner 1. Il était originellement prévu que ces deux sondes soient lancées à 24-27 jours d'intervalle pour survoler Vénus avec 3 à 14 jours d'écart[3].

Un bug tristement célèbre[modifier | modifier le code]

L'explication la plus exacte fut celle la plus tardive : une erreur de transcription manuelle d'un symbole mathématique dans la spécification d'un programme, plus exactement une barre suscrite manquante.

« Le trait d'union le plus cher de l'histoire »[modifier | modifier le code]

Néanmoins, il persiste encore la version incriminant un trait d'union manquant dans les données ou le programme de l'ordinateur de bord, parfois même dans les équations. Plusieurs facteurs favorisèrent la longévité de cette mésinterprétation, même dans les rapports officiels de la NASA et du Jet Propulsion Laboratory. Les plus cités sont :

  • la ressemblance entre barre suscrite et un trait d'union ;
  • la difficulté à expliquer la nature exacte de l'erreur au public américain et à ses représentants élus ;
  • la pression politique externe et les contraintes de planning internes. En effet, cette mission :
    • représentait un échec onéreux de la collaboration JPL-NASA-USAF,
    • s'inscrivait dans le contexte de Course à l'espace entre américains et soviétiques,
    • était très exposée en tant que première mission interplanétaire (la sonde russe Venera 1 ayant aussi échoué l'année précédente),
    • devait être suivie de Mariner 2 avant la fin de la fenêtre de lancement de 45 jours, laissant peu de temps aux investigations.

Ambiguïté sur la localisation de l'erreur[modifier | modifier le code]

Le New York Times relatant les conclusions d'un comité, affirma que l'erreur provenait d'un trait d'union manquant dans « des données mathématiques ». Cependant, le même article dit que le symbole aurait dû être fourni à l'ordinateur au sein « d'autres instructions mathématiques programmées »[4]. Ce genre d'incohérence se retrouve dans de nombreuses variantes de l'histoire, officielles ou non.

Le 31 juillet 1962, un responsable de la NASA, Richard B. Morrison, témoigna devant le Congrès des États-Unis que ce trait d'union

« ... indiquait au véhicule d'ignorer les commandes de l'ordinateur jusqu'au rétablissement du contact radar. Sans ce trait d'union, des instructions erronées sont fournies aux systèmes de pilotage. Dans ce cas, l'ordinateur commandait à gauche toute et vers le bas, la fusée le fit et s'écrasa.[réf. nécessaire] »

(on remarquera que Morrison dit que la fusée s'est écrasée et non qu'elle fut détruite). Dans le rapport annuel que la NASA fournit au Congrès en 1963, le trait d'union est décrit manquant de deux façons différentes :

« Le comité NASA-JPL-USAF de debriefing post-vol Mariner R-1 a déterminé que l'omission d'un trait d'union dans le code informatique a transmis des signaux de guidage incorrects au véhicule Mariner propulsé par le lanceur Atlas-Agena depuis Cape Canaveral le 21 juillet[5]. L'omission du trait d'union dans la saisie des données amena l'ordinateur à commander automatiquement des corrections de trajectoire inutiles qui mirent le véhicule hors course à tel point qu'il a fallu le détruire[A 2]. »

Dans ce même rapport, le témoignage de Morrison de l'année précédente est restitué différemment : « Richard B. Morrison, directeur de la division lanceurs de la NASA, témoigna qu'une erreur dans les équations informatiques du lancement de la sonde Mariner 1 vers Vénus le 21 juillet mena à sa destruction quand elle vira hors course[A 3]. »

En 1965, le rapport final de la mission Mariner-Vénus indique qu'après 4 minutes 25 secondes de vol, une « manœuvre imprévue en lacet-tangage » se produit : « ... les commandes de pilotage étaient fournies, mais la mauvaise application des équations de guidage emmenèrent le véhicule hors trajectoire[1]. »

On doit à Arthur C. Clarke le résumé de cette affaire par l'expression « détruite par le trait d'union le plus cher de l'histoire » [6].

Dans un ouvrage de 1985, Oran W. Nicks, directeur des programmes lunaires et planétaires de l'époque, donne une version encore différente mais toujours basée sur le mythe du trait d'union manquant :

« L'antenne de guidage de l'Atlas fonctionnait mal, en deçà de ses spécifications. Quand le signal reçu par la fusée devenait faible et bruité, elle perdait le signal de guidage du sol qui définissait les commandes de pilotage. Cette éventualité avait été envisagée et en l'occurrence l'ordinateur était supposé rejeter les signaux erronés et utiliser un programme interne, ce qui aurait dû faire réussir le lancement. Cependant, à ce point, un second défaut se manifesta. D'une manière ou d'une autre, un trait d'union fut oublié dans le programme de guidage de l'ordinateur embarqué, autorisant les signaux de guidage dégradés à commander le virage et la descente de la fusée. Ce trait d'union manquait aussi au cours des lancements d'Atlas réussis précédents, mais cette partie de l'équation n'était pas alors requise car il n'y avait pas de perte du signal de guidage. Ce qui permet de dire que le premier vol interplanétaire a échoué par absence d'un trait d'union[7]. »

Enfin, le site Web de la NASA explique aujourd'hui que le problème était :

« ... apparemment causé par la combinaison de deux facteurs. Le mauvais fonctionnement de l'équipement radio embarqué sur l'Atlas provoqua la perte prolongée du signal de vitesse. La balise embarquée servant à la mesure de cette vitesse a été inopérante pendant quatre périodes de durées allant de 1,5 à 61 secondes. Le comité de debriefing post-vol Mariner 1 détermina que l'omission d'un trait d'union dans les instructions du programme de saisie des données permit la transmission de signaux de guidage incorrects. Pendant les périodes où la balise ne fonctionnait pas, l'omission du trait d'union dans le programme de saisie de données amena l'ordinateur à accepter le balayage radio émis par le sol à la recherche du contact avec la balise, et à le combiner avec les autres signaux du système de guidage. L'ordinateur se mit alors à commander en saccades des corrections de trajectoire inutiles qui mirent finalement la fusée hors course[2]. »

Ou alors le point le plus cher ?[modifier | modifier le code]

On prétend parfois que le bug provenait d'un point tapé à la place d'une virgule, causant l'instruction de boucle Fortran de la forme :

DO 17 I = 1, 10

à être interprétée comme l'affectation :

DO17I = 1.10

(les caractères d'espace n'étant pas signifiants dans ce langage). Cependant, le Fortran n'a jamais été utilisé dans les programmes des lanceurs Atlas ou leurs systèmes de guidage[8]. La raison pour laquelle cette variante s'est popularisée reste mystérieuse.

Il y a des rapports anecdotiques de la NASA faisant état de ce type de bug, mais dans le programme Mercury, pas Mariner, de plus l'erreur aurait été repérée et corrigée avant qu'elle n'ait pu avoir de conséquences sérieuses[9].

L'erreur de transcription de barre suscrite[modifier | modifier le code]

La défaillance provient d'une erreur de transcription manuelle dans la spécification du programme de guidage. Le rédacteur a oublié la barre suscrite dans la formule :

\bar{\dot{R}_n}

qui signifie « la n-ième valeur lissée de la dérivée de R dans le temps ». Sans le lissage spécifié par cette barre, le programme réagissait aux variations mineures de vélocité comme aux écarts importants. Les corrections erronées induites menèrent la fusée hors trajectoire, ce qui obligea l'officier de sécurité à commander sa destruction. Ce défaut de programmation datait du programme Ranger mais ne s'était jamais manifesté[8].

Description de la sonde[modifier | modifier le code]

La sonde est strictement identique à celle de la mission Mariner 2, sa doublure lancée au cours de la même fenêtre le 27 août.

Article détaillé : Mariner 2.

Références[modifier | modifier le code]

Sur les autres projets Wikimedia :

  1. p. 127
  2. p. 131
  3. p. 133
  • autres notes et références
  1. a, b et c (en)[PDF]« Mariner-Venus 1962 Final Project Report », Jet Propulsion Laboratory,‎ 1965 (consulté en 2010-02-10), p. 87
  2. a et b (en) Dr. Ed Grayzeck, « Mariner 1 », NSSDC, sur http://nssdc.gsfc.nasa.gov/, NASA,‎ 23 novembre 2009 (consulté en 2010-02-10)
  3. (en)[PDF]N.A. Renzetti, « Tracking and Data Acquisition Support for the Mariner Venus 1962 Mission », JPL,‎ 1965 (consulté en 2010-02-10)
  4. (en) Gladwin Hill, « For Want of Hyphen Venus Rocket Is Lost : Lost hyphen led to space failure », The New York Times,‎ 28 juillet 1962, p. 1 (lire en ligne)
  5. Les entrées de ce rapport cite le 21 juillet bien que le décollage ait eu lieu le 22. Le lancement était bien programmé le 21, mais fut retardé pour des raisons techniques.
  6. (en) Arthur C. Clarke, The Promise of Space, Londres, Harper and Row,‎ 1968 (réimpr. 1985 (Berkley)), 325 p. (ISBN 978-0425075654, présentation en ligne), p. 225 :

    « wrecked by the most expensive hyphen in history »

  7. (en) Oran W. Nicks, Far Travelers : The Exploring Machines, NASA,‎ 1985, 255 p. (ISBN 978-0160041891, lire en ligne), chap. 1, (« For Want of a Hyphen »), p. 3
  8. a et b (en) Paul E. Ceruzzi, Beyond the limits : Flight Enters the Computer Age, The MIT Press,‎ mai 1989, 284 p. (ISBN 978-0-262-53082-8 et 978-0-262-03143-1, présentation en ligne), chap. 9, notes 13 & 14, p250
  9. Mark Brader, citant Fred Webb dans alt.folklore.computers, « Mariner I [once more] », The Risks Digest vol. 9, issue 54, sur http://catless.ncl.ac.uk/Risks, Catless,‎ décembre 1989 (consulté en 2010-02-17)