El vuelo Ariane V88 [1] fue el vuelo inaugural fallido del cohete Arianespace Ariane 5 , vehículo no. 501, el 4 de junio de 1996. Llevaba la nave espacial Cluster , una constelación de cuatro satélites de investigación de la Agencia Espacial Europea .
El lanzamiento terminó en fracaso debido a múltiples errores en el diseño del software: el código inactivo , destinado sólo al Ariane 4 , con una protección inadecuada contra el desbordamiento de enteros , provocó una excepción manejada de manera inapropiada, deteniendo todo el sistema de navegación inercial que de otro modo no se vería afectado . Esto provocó que el cohete se desviara de su trayectoria de vuelo 37 segundos después del lanzamiento, comenzara a desintegrarse bajo altas fuerzas aerodinámicas y finalmente se autodestruyera a través de su sistema automatizado de terminación de vuelo . La falla se conoce como uno de los errores de software más infames y costosos de la historia. [2] El fracaso resultó en una pérdida de más de 370 millones de dólares. [3]
El Ariane 5 reutilizó el código de la plataforma de referencia inercial del Ariane 4 , pero la primera parte de la trayectoria de vuelo del Ariane 5 se diferenciaba del Ariane 4 por tener valores de velocidad horizontal más altos. Esto provocó que un valor interno BH (sesgo horizontal) calculado en la función de alineación fuera inesperadamente alto. La función de alineación estuvo operativa durante aproximadamente 40 segundos de vuelo, que se basó en un requisito del Ariane 4, pero no sirvió para nada después del despegue en el Ariane 5. [4] Los valores mayores de BH causaron una conversión de datos de un 64 número de punto flotante de bits a un valor entero con signo de 16 bits se desborda y provoca una excepción de hardware . [5] Los programadores habían protegido sólo cuatro de siete variables críticas contra el desbordamiento para mantener dentro de un objetivo de carga de trabajo máxima requerida del 80% para la computadora del Sistema de Referencia Inercial a bordo, y se basaron en suposiciones que eran correctas para el Ariane 4, pero no Ariane 5, trayectoria sobre el posible rango de valores para las tres variables desprotegidas. [6] La excepción detuvo ambos módulos del sistema de referencia inercial, aunque estaban destinados a ser redundantes . El módulo activo presentó un patrón de bits de diagnóstico a la computadora de a bordo que fue interpretado como datos de vuelo, causando en particular desviaciones totales de las boquillas de los propulsores sólidos y del motor principal Vulcain . Esto provocó un ángulo de ataque de más de 20 grados, lo que provocó la separación de los propulsores del escenario principal, la activación del sistema de autodestrucción del lanzador y la destrucción del vuelo. [4]
El informe oficial sobre el accidente (realizado por una comisión de investigación presidida por Jacques-Louis Lions ) señala que "un tema subyacente en el desarrollo del Ariane 5 es la tendencia a mitigar los fallos aleatorios" . El proveedor del sistema de navegación inercial (SRI) ) solo estaba siguiendo la especificación que se le dio, que estipulaba que en caso de detectar cualquier excepción, el procesador debía detenerse. La excepción que ocurrió no se debió a una falla aleatoria sino a un error de diseño. La excepción fue detectada, pero manejada de manera inapropiada porque se había adoptado la opinión de que el software debía considerarse correcto hasta que se demostrara que tenía la culpa. [...] Aunque el fallo se debió a un error sistemático en el diseño del software, se pueden introducir mecanismos para mitigar este tipo de problema. Por ejemplo, las computadoras dentro de los SRI podrían haber seguido brindando sus mejores estimaciones de la información de actitud requerida . Hay motivos de preocupación de que se debería permitir, o incluso exigir, una excepción de software para provocar que un procesador se detenga mientras maneja equipos de misión crítica. De hecho, la pérdida de una función de software adecuada es peligrosa porque el mismo software se ejecuta en ambas unidades SRI. En el caso del Ariane 501, esto tuvo como resultado el apagado de dos unidades críticas de equipos que aún estaban en buen estado." [4]
Otras cuestiones identificadas en el informe se centraron en las pruebas: [4]
Otra perspectiva del fracaso, basada en la ingeniería de sistemas , se centra en los requisitos: [7]
El cúmulo constaba de cuatro naves espaciales cilíndricas estabilizadas por giro de 1.200 kilogramos (2.600 libras) , alimentadas por células solares de 224 vatios. La nave espacial debía haber volado en formación tetraédrica y estaba destinada a realizar investigaciones sobre la magnetosfera de la Tierra . Los satélites se habrían colocado en órbitas muy elípticas; 17.200 por 120.600 kilómetros (10.700 por 74.900 millas), inclinado 90 grados con respecto al ecuador. [8]
Tras el fracaso, se construyeron cuatro satélites del Grupo II de reemplazo. Estos fueron lanzados en pares a bordo de cohetes Soyuz-U / Fregat en el año 2000.
El fracaso del lanzamiento llamó la atención del público en general, los políticos y los ejecutivos sobre los altos riesgos asociados con los sistemas informáticos complejos , lo que resultó en un mayor apoyo a la investigación para garantizar la confiabilidad de los sistemas críticos para la seguridad . El posterior análisis automatizado del código Ariane (escrito en Ada ) fue el primer ejemplo de análisis de código estático a gran escala mediante interpretación abstracta . [9]
El fracaso también perjudicó el excelente historial de éxitos de la familia de cohetes de la Agencia Espacial Europea, marcado por el alto índice de éxito del modelo Ariane 4. No fue hasta 2007 que los lanzamientos del Ariane 5 fueron reconocidos como tan fiables como los del modelo predecesor. [10]