En caso de error, reinicie el avión.
¿Qué software controla los aviones de pasajeros modernos y vale la pena preocuparse por su fiabilidad?
A finales de abril – principios de mayo, hubo dos incidentes de alto perfil a la vez relacionados con problemas en el funcionamiento de los sistemas informáticos a bordo de los aviones de pasajeros. Inicialmente, un mal funcionamiento en las tabletas iPad utilizadas por las tripulaciones retrasó unos 20 vuelos de American Airlines. Unos días después, los expertos en seguridad descubrieron un error en el software del Boeing 787 que podría conducir a una pérdida total del control del avión.
TJ intentó averiguar qué tipo de software ayuda a los pilotos a volar aviones modernos y si vale la pena preocuparse por su confiabilidad.
Fallo y error
El motivo de las masivas demoras en los vuelos de American Airlines el 28 de abril fue una falla en una de las aplicaciones de navegación del iPad. Con la ayuda del programa, los comandantes de tripulación y sus asistentes debían trazar una ruta, así como recibir información sobre el tiempo estimado de movimiento de la placa. Según informes de los medios, el dispositivo falló temporalmente, lo que obligó a varios pilotos a cancelar el despegue a la vez.
Algunos de los pilotos lograron solucionar el problema sin salir de la franja. Otros se vieron obligados a despegar con un retraso significativo. Todo este tiempo circularon mensajes en las redes sociales, en los que la versión más popular de lo que estaba sucediendo era un rumor sobre un mal funcionamiento en uno de los modelos de aviones específicos de la aerolínea. Más tarde, la suposición fue refutada, pero los pasajeros a bordo tuvieron que ponerse bastante nerviosos.
El error, revelado un poco más tarde durante las pruebas de laboratorio del software del Boeing-787, resultó ser más grave que la inesperada decepción de los pilotos de las tabletas de Apple. Según los representantes de la Administración Federal de Aviación de los Estados Unidos (FAA), el código de uno de los sistemas que controlan el avión requería un reinicio obligatorio después de 248 días de operación continua. De lo contrario, el vuelo, justo durante el vuelo, corría el riesgo de cambiar al llamado modo a prueba de fallas y desenergizarse por completo. Dos pares de generadores instalados en los motores de la aeronave, así como dos generadores de repuesto, podrían perder energía automáticamente.
A pesar del alto peligro potencial del error, no representa una amenaza para la seguridad de los pasajeros en condiciones reales, argumentaron los funcionarios de la FAA: durante el funcionamiento de Boeing, todos los sistemas se reinician constantemente y nunca funcionan seguidos durante 248 días. Los ejecutivos de Boeing también se apresuraron a tranquilizar a los pasajeros. La compañía señaló que todos los aviones están equipados con un sistema de seguridad adicional que les permite arrancar los motores en modo de emergencia en caso de un corte de energía.
En un comentario a TJ, un empleado de una de las divisiones de la compañía en Seattle confirmó que el error debería solucionarse pronto y que en realidad solo podría representar una amenaza teórica. Según el especialista, en condiciones de funcionamiento el software de Boeing se reinicia con mucha más frecuencia que en el momento crítico.
Riesgo de guerra
Los desastres en los que el software del avión de pasajeros tuvo la culpa se pueden contar con los dedos de una mano. Casi todos ellos están asociados con aviones militares, no civiles.
En 1993, debido a un mal funcionamiento en el programa que controlaba el vuelo, el caza sueco multiusos JAS.39 Gripen se estrelló . Esto sucedió durante las actuaciones de demostración. Durante la ejecución de uno de los elementos del programa, el piloto perdió el control. Unos segundos más tarde, el piloto tuvo que salir disparado y el avión cayó cerca del lago, alrededor del cual se reunieron los espectadores. Se evitaron las víctimas. Más tarde se supo que la causa del desastre fue el factor de amplificación demasiado alto de los comandos ejecutados con la palanca de control de la máquina. Después de un tiempo, el problema se solucionó y continuaron las pruebas de JAS.39 Gripen.
En 2007, un error en el software del avión de combate estadounidense F-22 Raptor impidió que un grupo de estos aviones completara un vuelo de prueba desde una base en Hawai hasta la isla japonesa de Okinawa. Los problemas comenzaron tan pronto como el F-22 cruzó la llamada línea de fecha, una línea condicional que recorre el meridiano 180 grados. Las fechas del calendario en diferentes lados del mismo difieren en un día. Como resultado de la falla, se interrumpió el funcionamiento de los dispositivos de navegación, el sistema de combustible estaba averiado y la comunicación falló parcialmente. Después de varios intentos fallidos de restablecer los controles operativos, los pilotos tomaron la decisión de volar de regreso a Hawai, a pesar de que dicho plan estaba asociado con un cierto riesgo y requería repostar en el aire.
En el campo de la aviación civil, estos incidentes prácticamente no ocurren. Según un ex empleado de Boeing, que acordó hablar con TJ bajo condición de anonimato, hoy los fabricantes de aviones más grandes han estado probando software en laboratorios por más tiempo que el diseño en sí, los motores y otros componentes del avión.
No puede perderse el software de la aeronave si no está seguro de su seguridad. Este es un lugar común, por supuesto. Todos saben eso. Pero es importante comprender que la gente trabaja en todas partes. En el curso del trabajo, en algún lugar puede haber deficiencias, en algún lugar algo puede salir mal. Nadie está a salvo de esto. De hecho, lo único que puede hacer al final es pensar en elementos de repuesto, de emergencia y redundantes para cualquier sistema de aeronave. Y durante años para mejorar el sistema y ganar experiencia. Al mismo tiempo, las aeronaves logran conservar el título del modo de transporte más seguro.ex empleado de Boeing
Los incidentes más resonantes que han surgido debido a problemas en el software utilizado en la aviación no están asociados con los programas a bordo, sino con el software en el que trabajan los despachadores y los servicios de comunicación terrestre. El accidente del vuelo 5022 de Spanair es uno de los más famosos de su tipo.
En agosto de 2008, el avión se estrelló y mató a más de 150 personas en total. La investigación mostró que el sistema informático de la aerolínea estaba infectado por un virus informático, un troyano. Algunos internautas malinterpretaron los resultados del examen, sugiriendo que se trataba de un software a bordo. De hecho, el virus entró en una computadora en el suelo. Debido a la contaminación, los técnicos que lo atendieron no pudieron detectar a tiempo indicios de la presencia de al menos tres fallas técnicas en el avión.
Para aviones de pasajeros y puentes levadizos
El software de los aviones es súper confiable (los detalles lo dictan), pero aún no es perfecto. Esto se sabía mucho antes de los últimos problemas. Más de 14 millones de líneas de código son responsables del funcionamiento del mismo Boeing-787 , y nadie puede garantizar que todo siempre se ejecutará al 100% como se pretendía.
Al mismo tiempo, los programas que controlan las aeronaves en la actualidad, a través de años de mejora y ” programación paranoica ” que busca eliminar los posibles errores, han alcanzado un nivel en el que estadísticamente son más estables y confiables que los pilotos que las controlan. Los datos de la FAA de los últimos 10 años muestran que la gran mayoría de los accidentes y desastres se deben a factores humanos y no a problemas de software.
Al mismo tiempo, la alta calidad y confiabilidad no se logran en absoluto debido a algunos métodos radicalmente nuevos de creación de algoritmos. Uno de los principales lenguajes en los que se escribe el código de aviación civil es conocido por cualquier programador de C / C ++.
El segundo idioma importante para la industria es Ada , desarrollado a finales de los 70 . El lenguaje se creó originalmente como parte de un proyecto del Departamento de Defensa de EE. UU. Para sistemas de control para complejos automatizados que operan en tiempo real, es decir, sistemas a bordo para buques de guerra, aviones, equipos de tanques y misiles. El software del Boeing 777 todavía se está ejecutando en la aviación civil en Ada. Como admite el desarrollador de software del Boeing 787 más nuevo, trasladar el código Ada a C. fue una de sus primeras tareas en el desarrollo de software.
En una de las publicaciones antiguas sobre “Habrahabr” se puede encontrar una descripción detallada de qué es exactamente el código del programa a bordo y cómo se organiza la arquitectura de los sistemas de control en la aviación . Según el autor del material, el moderno sistema de control de aeronaves (sistema de control fly-by-wire, EDSU), al igual que los lenguajes de programación, no es una novedad. EDSU se ha estado desarrollando y mejorando desde la época soviética, cuando se introdujo por primera vez en forma analógica en el avión Maxim Gorky y era responsable de controlar las superficies mediante la transmisión de corriente eléctrica.
¿Qué es EDSU? En primer lugar, es un complejo de software y hardware que consta de accionamientos para las superficies de control de la aeronave, sensores de control, sistemas de control, sistemas de visualización y sistemas auxiliares, sistemas de comunicación y sistemas de potencia. Cada uno de los sistemas se suele duplicar al menos una vez. Dependiendo de las leyes de control requeridas, las decisiones de precio y disposición, la arquitectura puede variar: contener más duplicación, control, bucles de potencia o, por el contrario, menos.wwakabobik, usuario de “Habrahabr”
Además, la arquitectura de todo el sistema enumerado es de vital importancia. Los errores y las deficiencias en él, por regla general, pueden provocar accidentes y desastres. Según el usuario, los errores clásicos en la arquitectura son la dependencia del sistema de la fuente de alimentación, la duplicación incorrecta del sistema de control, así como varios errores “estúpidos”: por ejemplo, cambiar el signo al cruzar el ecuador o cambiar las zonas horarias y la probabilidad de mostrar velocidad negativa en una aeronave civil.
Una pieza importante de software en la aviación es también un sistema operativo en tiempo real llamado QNX. El sistema se creó en los años 80. La empresa que lo desarrolló fue absorbida más tarde por la canadiense BlackBerry.
QNX se distingue no solo por la capacidad de trabajar con procesos en tiempo real, sino también por su altísima fiabilidad. El sistema puede funcionar durante mucho tiempo sin reiniciar ni congelar, así como restaurar aplicaciones después de un bloqueo mediante el reinicio automático. Además, el sistema operativo es fácilmente escalable y le permite aumentar rápidamente la funcionalidad.
La popularidad de este sistema operativo ha ido creciendo gradualmente. Habiendo obtenido una excelente reputación en la industria (en la industria del petróleo y gas, en la operación de plantas de energía, etc.), QNX se convirtió gradualmente en la base de muchos proyectos en la industria automotriz, cohetería y luego en aviación civil.
Al mismo tiempo, el sistema operativo sigue estando en el centro de las cosas familiares para los humanos. Sobre esta base, por ejemplo, el Blackberry 10 fue creado para teléfonos inteligentes Blackberry. QNX también opera puentes levadizos en San Petersburgo y se utilizó como el sistema operativo principal en el sistema automático de conducción de trenes del metro de San Petersburgo.
Confía en el coche
Hoy, los sistemas de control automatizados son responsables del 95% de los componentes de todo el vuelo. Con su ayuda, se calculan y controlan el rumbo, el tiempo de movimiento, la ruta, el funcionamiento del motor y el ángulo óptimo en el que el ala del avión se encontrará con el flujo de aire entrante en el cielo.
Según el informe de la FAA , la mayoría de los pilotos se han acostumbrado gradualmente a depender del software para todo y ahora son “extremadamente reacios” a pasar al modo manual. Como han descubierto los especialistas de la organización, esto tiene efectos tanto positivos como negativos.
Por un lado, la probabilidad de que ocurra un accidente o una catástrofe disminuye, ya que los programas funcionan cada año de manera más confiable. Por otro lado, los pilotos a menudo pierden la habilidad de navegar un barco en situaciones críticas. Como resultado, el factor humano recibe una nueva refracción: la necesidad de tecnología se convierte en una dependencia excesiva de ella.
Sin embargo, independientemente de los avances en el campo de la automatización del control de aeronaves, la aviación civil no podrá prescindir de los pilotos en un futuro próximo. Como admiten los propios pilotos, pensar que un software podrá reemplazar por completo a una persona en la cabina de un avión de pasajeros es como asumir que un quirófano repleto de tecnología y electrónica puede realizar una operación sin un médico.