O voo Ariane V88 foi o voo inaugural fracassado, de número 501, do foguete lançador de satélites Ariane 5, fabricado pela Arianespace, em 4 de junho de 1996. O lançador transportava a nave espacial Cluster, com um total de quatro satélites de pesquisa da Agência Espacial Europeia.

O lançamento acabou fracassando devido a múltiplos erros de projeto de software, dentre os quais código morto, que não dispunha de proteção adequada contra estouro de inteiro e reuso de código destinado exclusivamente ao Ariane 4, ocasionando um tratamento de exceção inapropriado, que interrompeu todo o sistema de navegação inercial que, de outra forma, funcionaria normalmente. Isso fez com que o foguete se desviasse de sua rota de voo 37 segundos após o lançamento, e começasse a se desintegrar sob a influência de grandes forças aerodinâmicas, até finalmente se autodestruir através de um sistema automatizado de término de voo.

A falha se tornou conhecida como um das falhas de software mais vergonhosas e caras da história, resultando em perdas financeiras de mais de 370 milhões de dólares.

Cronologia Em 1987, os membros da Agência Espacial Europeia se comprometeram com o desenvolvimento do Ariane 5, projetado para lançar satélites de telecomunicações cada vez mais pesados, começando com uma capacidade de carga útil de 6,5 toneladas para a órbita geoestacionária e evoluindo para um total de 12 toneladas. Dentro de sua carenagem, um sistema especial permitiria o lançamento de múltiplas cargas úteis. O Ariane 5, muito maior do que sua versão anterior, Ariane 4, também foi projetado para realizar missões em órbita baixa para dar suporte à Estação Espacial Internacional.

Em comum com seu antecessor, o sistema de orientação do Ariane 5 utilizava sistemas de referência inercial (IRS) redundantes duplos, operando em um arranjo de serviço e reserva.

Seu lançamento inaugural foi realizado a partir do Centro Espacial da Guiana, em Kourou, na Guiana Francesa. A sequência de lançamento começou às 05h00 de 3 de junho de 1996, horário de Kourou, com a transferência do Ariane 501 para a plataforma de lançamento. A tarde é dedicada à remoção dos dispositivos de suporte do lançador da plataforma, seguida pelo abastecimento do subsistema de hélio líquido.

Aos operações de abastecimento do estágio criogênico iniciam-se em 4 de junho, às 01h30, horário de Kourou. O lançador ficou pronto para o início da sequência sincronizada aproximadamente uma hora antes do horário alvo (H0), programado para as 08h35. Vinte minutos antes do lançamento originalmente previsto, às 08h15 (H0-20), os serviços meteorológicos avisaram sobre risco de raios, fazendo com que a contagem regressiva fosse interrompida por uma hora. Às 09h35 ocorre a decolagem do lançador Ariane 501.

Às 09h35min37s, passados apenas 37 segundos de operação, comandos para direção máxima foram enviados aos motores de foguete de combustível sólido e, em seguida, ao motor Vulcain. O lançador se desviou abruptamente de sua trajetória, sendo submetido à forças aerodinâmicas que levaram à sua destruição em H0+40s.

Os destroços do lançador V501 caíram em uma área de cerca de 12 km², a leste da plataforma de lançamento, em região composta principalmente por manguezais e savana, tornando a tarefa de recuperação extremamente difícil.

Falha no lançamento

O Ariane 5 reutilizou código da plataforma de referência inercial do foguete Ariane 4, mas a parte inicial da rota de voo do Ariane 5 diferia daquela do Ariane 4, possuindo valores de velocidade horizontal mais altos. Tal fato acabou gerando um valor interno de viés horizontal — calculado dentro da função de alinhamento — inesperadamente alto. A função de alinhamento esteve em operação por aproximadamente 40 segundos de voo, cumprindo com requisitos especificados para o Ariane 4, mas que não possuíam qualquer utilidade após a decolagem no caso do Ariane 5.

Os valores de viés horizontal mais altos do que os esperados provocaram uma conversão de dados de um número com ponto flutuante de 64 bits para um com valor inteiro e com sinal de 16 bits, que transbordou e causou uma exceção de hardware. Os programadores protegeram somente quatro de um total de sete variáveis críticas contra transbordamento, visando manter a carga de trabalho dentro de uma meta máxima exigida de 80% para o computador do sistema de referência inercial de bordo, baseando-se em premissas que seriam corretas para a trajetória do Ariane 4, mas não para a trajetória do Ariane 5, em relação as possíveis faixas de valores para as três variáveis desprotegidas. A exceção interrompeu ambos os módulos do sistema de referência inercial, embora eles tivessem sido projetados para serem redundantes. O módulo ativo apresentou um padrão de bits de diagnóstico ao computador de bordo, que foi interpretado como dados de voo, causando, particularmente, deflexões totais dos bocais dos propulsores de combustível sólido e do motor principal Vulcain. Isso levou a um ângulo de ataque superior a 20 graus, causando a separação dos propulsores do estágio principal, o acionamento do sistema de autodestruição do lançador e a destruição do voo.

O relatório oficial do acidente, conduzido por uma comissão de inquérito liderada por Jacques-Louis Lions, atestou que "Um tema implícito no desenvolvimento do Ariane 5 é a tendência para a mitigação de falhas aleatórias. O fornecedor do sistema de navegação inercial (SRI) estava apenas seguindo as especificações que lhe foram fornecidas, as quais estipulavam que, no evento de qualquer exceção detectada, o funcionamento do processador deveria ser interrompido. A exceção que ocorreu não se deu por conta de falha aleatória, e sim erro de projeto. A exceção foi detectada, mas tratada de maneira inapropriada, porque adotou-se a visão de que o software deveria ser considerado correto até que se demonstrasse que estivesse em falha [...] Embora a falha tenha ocorrido devido a um erro sistemático de projeto de software, mecanismos podem ser introduzidos para mitigar este tipo de problema. Por exemplo, os computadores que integram os SRIs poderiam ter continuado a fornecer suas melhores estimativas sobre a informação requerida de atitude. Há motivo para preocupação quanto à possibilidade, ou mesmo exigência, de que uma exceção de software cause a paralisação de um processador durante o processamento de equipamentos críticos para a missão.De fato, a perda de uma função de software adequada é perigosa, pois o mesmo software é executado em ambas as unidades SRI. No caso do Ariane 501, isso resultou no desligamento de duas unidades críticas de equipamento que ainda estavam em pleno funcionamento."

Outras questões identificadas no relatório concentraram-se nos testes: O propósito do processo de revisão, que envolve todos os principais parceiros no programa Ariane 5, é validar as decisões de projeto e obter qualificação de voo. Neste processo, as limitações do software de alinhamento não foram completamente analisadas e as possíveis implicações de permitir que o mesmo continuasse a operar durante o voo não foram completamente percebidas. A especificação do sistema de referência inercial e os testes realizados com o equipamento não incluíram especificamente os dados de trajetória do Ariane 5. Consequentemente, a função de realinhamento não foi testada sob condições simuladas de voo da nave, e o erro de projeto não foi detectado. Tecnicamente, teria sido viável incluir quase todo o sistema de referência inercial nas simulações gerais do sistema que foram realizadas. Por uma série de razões, optou-se pelo uso de saída simulada do sistema de referência inercial, e não do sistema real, ou de sua simulação detalhada. Caso o sistema tivesse sido incluído, a falha poderia ter sido identificada. Simulações pós voo foram realizadas em um computador com o software do sistema de referência inercial e em um ambiente simulado, incluindo os dados reais da trajetória do voo do Ariane 501. Tais simulações foram capazes de reproduzir fielmente a sequência de eventos que levou à falha dos sistemas de referência inercial.

Outra perspectiva sobre a falha no lançamento, baseada em engenharia de sistemas, se concentra nos requisitos: Os intervalos de variação aplicáveis à velocidade horizontal e à quantidade de viés horizontal calculada a partir desta variável deveriam ter sido explicitamente estabelecidos. Ao invés disso, assumiu-se uma faixa de 16 bits. A tarefa de alinhamento deveria ter sido desativada em um momento apropriado. Em vez disso, a tarefa de alinhamento permaneceu em execução após a decolagem. Um modelo de falha das plataformas de referência inercial deveria ter sido analisado para garantir a continuidade do serviço durante todo o voo, e não apenas assumir que, no máximo, um módulo falharia. No entanto, ambos os módulos apresentaram falhas e, em vez de encerrar o voo de forma controlada, as mensagens de diagnóstico acabaram interpretadas como dados de voo.

Carga útil A nave espacial Cluster consistia em quatro espaçonaves cilíndricas pesando , estabilizadas por rotação e alimentadas por células solares de 224 watts. As espaçonaves deveriam voar em formação tetraédrica e tinham como objetivo realizar pesquisas sobre a magnetosfera da Terra. Os satélites seriam colocados em órbitas altamente elípticas, de 17 200 por 120 600 km (10 700 por 74 900 milhas), inclinadas a 90 graus em relação ao equador.

Consequências Após a falha, foram construídos quatro satélites Cluster II substitutos, que foram lançados em pares a bordo de foguetes Soyuz-U/Fregat no ano 2000.

A falha no lançamento fez com que os altos riscos associados aos sistemas de computação complexa recebessem atenção da opinião pública em geral, políticos e executivos, resultando no aumento de apoio à pesquisa para assegurar a confiabilidade de sistemas críticos para a segurança. A análise automatizada subsequente do código do Ariane — escrito na linguagem de programação Ada — foi o primeiro exemplo de análise estática de código em larga escala por interpretação abstrata.

O fracasso do voo também prejudicou o excelente histórico de sucesso da família de foguetes da Agência Espacial Europeia, estabelecido pela alta taxa de sucesso do modelo Ariane 4. Somente em 2007 os lançamentos do Ariane 5 passaram a ter o mesmo reconhecimento do modelo anterior em relação à confiabilidade.

Referências

Leitura adicional

Ligações externas Jacques-Louis Lions et al., Ariane 501 Inquiry Board report . , ligação direta para o arquivo de vídeo — Gravação dos segundos finais do voo do foguete. Wired – History's Worst Software Bugs — Artigo sobre as 10 maiores falhas de software já ocorridas, em que o glitch do Ariane 5 é mencionado entre eles . Ariane 5 – 501 (1–3) — Artigo que apresenta o código real em questão . Categoria:Acidentes e incidentes espaciais Categoria:Desastres em 1996 Categoria:1996 na exploração espacial Categoria:Programação Categoria:Projetos de software Categoria:Falhas de software