25 março 2019

Quando o software faz tudo


Uma das primeiras coisas que aprendi nos primórdios dos meus tempos de programação foi que num sistema complexo há duas classes de erros. Os conhecidos que se manifestaram e os escondidos que por lá estão e continuarão até um dia se mostrarem. Nunca há certeza absoluta da ausência de “bugs”, por mais testes que se realizem. Obviamente que quanto mais testes, menor a probabilidade. Muitas vezes, o problema nem residirá na implementação da lógica básica, que pode estar certíssima, mas sim na falta de previsão de situações de exceção e de proteção contra inputs incoerentes.

Se estiver em causa um programa que conduz vidas, seja, por exemplo, num automóvel autónomo ou num avião, este princípio assusta um pouco. Se pensarmos nas funções automáticas de proteção, que são supostas evitar estragos e atuar de forma bastante autoritária…

Num voo de teste do Airbus A320, o primeiro avião comercial pilotado “by-wire”, sem ligação mecânica entre os comandos e os lemes, ele despenhou-se tranquilamente numa floresta, naturalmente contra a vontade dos pilotos. O sistema de controlo entendeu que ganhar altitude naquelas circunstâncias seria estruturalmente perigoso para o aparelho e “protegeu-o”, mandando-o ceifar pinheiros. Felizmente na fase de testes.

A recente bronca com os Boeing 737 MAX é apenas mais um problema de um bug não detetado a tempo? Dira que não…

A otimização do consumo de combustível levou à utilização de motores de grande diâmetro, incompatíveis com a posição original dos mesmos na estrutura do velho modelo. O aparelho ficou potencialmente instável, com tendência a “empinar”, podendo entrar em perda. O problema foi corrigido/protegido por… software, que, detetando essa tendência, o aponta para baixo, a fim de não perder sustentação. Tão drástica atuação baseia-se na informação de um único sensor de ângulo. No avião existem dois, mas esta função só lia um, sendo a monitorização dos mesmos e a sinalização de eventuais incoerências uma opção de compra, não incluída na configuração básica do avião. Para ajudar um pouco mais, a Boeing não publicitou essa particularidade, desconhecida dos pilotos, que, ao verem o avião a apontar para baixo sem razão aparente, não tinham nenhuma ideia do que se estava a passar, nem do que fazer para corrigir…

Para lá da ligeireza evidente deste contexto, duas questões de princípio minhas, que pouco entendo, face a estes acidentes tão estúpidos. Como não é possível em circunstâncias tão dramáticas retirar os automatismos e deixar os pilotos pilotarem, se é que ainda o sabem? Entre o automatismo achar que o aparelho está em risco de entrar em perda e os pilotos o verem a picar para o solo, quem deve prevalecer?

Como é possível que, conhecendo o avião a altitude a que está, aceite o mergulho, mesmo supostamente protegendo-o da perda, atirando-o para o chão? Vais cair, ok, mas ao menos estatelas-te a voar como deve ser, não em perda!

Na minha ignorância, parece-me que houve por aqui uns enxertos mal-amanhados e que a culpa não é só nem principalmente do software.


Foto do site da Boeing

3 comentários:

Anónimo disse...

Sem deixar de concordar com o essencial do texto, a Boeing emitiu um boletim em Novembro de 2018 a informar os pilotos do potencial problema se o sistema de estabilização recebesse dados errados do sensor e como o desligar.

Não parece ter chegado a todos os pilotos ...

Ver
https://theaircurrent.com/aviation-safety/boeing-nearing-737-max-fleet-bulletin-on-aoa-warning-after-lion-air-crash/

jorge neves disse...

Não acredito que um problema de segurança com esta gravidade, tenha sio tratado com tanta ligeireza. Tem de haver mais coincidências infelizes.

Carlos Sampaio disse...

Desconhecia esse boletim que, efetivamente, não parece ter chegado a todos os pilotos, mas que também é posterior ao primeiro crash.

Não sei se é 100% correcto, mas li que, com o objetivo de tornar o avião mais barato para as companhias, dispensando formação específcia adicional para os pilotos, houve diferenças relativamente ao modelo anterior, como este famoso sistema de "segurança", que não foram evidencidas/comunicadas, sendo assim desconhecidas.

J. Neves - Pode haver agravantes e atenuantes que desconheço, mas a razão principal para o descontrolo e queda dos aviões parece ter sido efetivamente a chegada de informação errada a esse tal automatismo de "proteção" e mal conhecido.