vendredi 18 janvier 2013

Missile Scud vs. Anti-missile Patriot

En 1991, pendant la guerre du Golfe, un anti-missile Patriot manque l’interception d’un missile Scud. Bilan : 28 soldats morts.

Mais que s'est-il passé ?


La position de l’anti-missile est calculée en multiples de dixièmes de seconde. Rien de grave jusque là me direz vous... En fait si tout le problème est là...

Un compteur totalise le nombre de dixièmes de seconde depuis le démarrage de l’horloge du Patriot.
Le format utilisé est en base 2 avec mantisse de 24 bits. Or 1/10 n’est pas exactement représentable en binaire. Pour représenter 1/10, on a utilisé (en binaire) : 0,00011001100110011001100
En faisant cette approximation, on obtient une erreur d’environ 0,000000095s en décimal.
Seulement, après 100 heures, l’erreur totale est d'environ : 0,34 s et pendant ce laps de temps, un missile Scud (1676 m/s) parcourt près de 600 mètres !

Finalement l'erreur ne venait pas à proprement parlé du programme qui faisait tout les calculs à merveille mais plutôt de ceux qui l'avait conçu et qui avaient oubliés que 10 n'était pas une puissance de 2.

1 commentaire:

  1. Bonjour,
    Je trouve cela scandaleux que l'armée américaine se permette de faire des erreurs aussi élementaires et capitales. Alors que celles ci mettent en danger la vie d'autrui. Les impôts ne devraient il pas servir à régler ces problèmes ? Moi et mes collègues restons indignée devant si peu de professionnalisme.
    Cordialement,
    Jean Bond.

    RépondreSupprimer