autodiagnost (autodiagnost) wrote,
autodiagnost
autodiagnost

Categories:

Авария Boeing 737 Max глазами разработчика ПО. часть 1

Представляю вашему вниманию перевод статьи «How the Boeing 737 Max Disaster Looks to a Software Developer» Грега Трэвиса. Речь пойдет о том, как желание Боинга сэкономить и «срезать углы» для коммерческой выгоды, а также культура «некомпетентности и неэтичности» в сообществе разработчиков привело к гибели 346 человек.

Я — пилот с 30-летним стажем и разработчик программного обеспечения c 40-летним. Я много писал и об авиации, и о разработке ПО. Пришло время написать одновременно и о том, и о другом.

Сейчас все новости пестрят заголовками об авариях новой модели самолёта Боинга 737 Max(англ.), произошедших буквально одна за одной со свежевыпущенными самолётами. Для индустрии, существование которой всецело держится на ощущении клиентами полного контроля и безопасности, эти два крушения представляют большую экзистенциальную опасность. И несмотря на то, что за последние десятилетия количество смертей в авиакатастрофах снизилось, это достижение — вовсе не повод для излишней самоуверенности.


Первая модель Боинг 737 впервые появилась в 1967, когда мне было 3 года. Это был небольшой самолет с небольшими двигателями и сравнительно простыми системами управления.

Авиакомпании (особенно американская Southwest) полюбили их за простоту, надежность и гибкость. К тому же для пилотирования ими в кабине вместо обычных в то время трёх или четырёх человек требовалось всего два члена экипажа, что позволило авиакомпаниям начать существенно экономить. Вместе с развитием рынка авиаперевозок и появлением новых технологий 737 стремительно рос в размерах, возрастала и сложность электроники и механики. Рос, конечно, не только 737. Авиалайнеры требуют гигантских капиталовложений как со стороны индустрии авиастроения, так и со стороны покупающих их авиакомпаний, поэтому и те, и другие также постоянно укрупнялись.

Большая часть этих рыночных и технологических сил, однако, действовали исходя из экономических интересов компаний, а не в интересах безопасности пассажиров. Инженеры безустанно работали над снижением того, что в индустрии называют «стоимостью пассажиро-километра» — то есть стоимости доставки пассажира из точки А в точку Б.

Очень многое в этой истории оптимизации связано с двигателями. Теорема Карно о коэффициенте полезного действия (КПД) тепловых двигателей говорит, что чем больше и горячее вы делаете двигатель, тем более эффективным он становится. Этот принцип верен в равной мере и для двигателя бензопилы, и для реактивного двигателя.

Элементарно. Наиболее простой и быстрый способ сделать двигатель более эффективным с точки зрения потребления топлива на единицу мощности — сделать его больше. Именно поэтому в двигателе Lycoming O-360 моего небольшого самолёта Cessna стоят поршни размером с большую тарелку. Поэтому дизельные моторы на морских судах делаются размером с трехэтажный дом. И ровно по этой же причине Боинг захотел установить огромные двигатели CFM International LEAP в новую модель 737.

Есть только одна небольшая проблема: оригинальный 737 по сегодняшним меркам оснащался совсем небольшими двигателями, что позволяло легко разместить их под крыльями. Однако по мере того как 737 всё увеличивался в размерах, его двигатели тоже росли, а клиренс между ними и землёй становился всё меньше и меньше.

Чтобы обойти эту проблему было придумано множество ухищрений (или «хаков», как их назвали бы разработчики ПО). К примеру, наиболее заметным и наглядным для публики является изменение формы воздухозаборников с круглой на овальную, чтобы обеспечить больше места под двигателем.

В случае с 737 Max ситуация стала критической. Диаметр лопастей двигателей, устанавливаемых на оригинальный 737, был равен 100 см (40 дюймов), в новых же двигателях для 737 Max диаметр вырос до 176 см. При разнице по осевой линии больше 30 см вы уже не можете сделать воздухозаборник овальным настолько, чтобы двигатель не начал скрести землю.

Тогда было решено нарастить двигатель сверху и сместить его вперед и вверх относительно крыла. Это, в свою очередь, привело к смещению осевой линии тяги двигателя. Теперь при увеличении мощности двигателя, самолет получил тенденцию к кабрированию, то есть к подъему носа.

Для справки: угол атаки самолета — это угол между направлением вектора скорости набегающего воздушного потока и плоскостью крыла. Представьте, что вы выставили руку из открытого окна движущегося по шоссе автомобиля. Если вы будете держать ладонь почти параллельно земле, то это будет малым углом атаки; повернув ладонь относительно плоскости земли, вы увеличите угол атаки. Когда угол атаки становится слишком велик (закритическим), наступает аэродинамическое сваливание в результате срыва воздушного потока. Вы можете убедиться в этом самостоятельно всё также выставив руку из окна движущегося автомобиля: медленно поворачивая свою ладонь вы будете чувствовать всё возрастающую подъёмную силу, толкающую руку вверх, пока ваша рука вдруг не упадёт вниз — это и есть срыв потока с последующим сваливанием.

Таким образом получается, что тенденция к кабрированию при увеличении мощности двигателя на практике означает риск дальнейшего развития сваливания самолета, если пилоты «выжимают газ» (как любит говорить мой сын). Такое развитие событий становится особенно вероятным при низкой скорости полёта.

Хуже того, из-за того, что гондолы двигателей выдвинуты настолько далеко вперёд и так велики, они сами создают подъемную силу, особенно при больших углах атаки. То есть гондолы сделали и без того плохую ситуацию ещё хуже.

Подчеркну: в 737 Max сами гондолы двигателей при высоких углах атаки работают как крылья и создают подъёмную силу. Причём центр приложения этой силы смещён далеко вперёд относительно центра приложения подъёмной силы крыла, что, в свою очередь, приводит к тому, что 737 Max при увеличении угла атаки имеет тенденцию к ещё большему увеличению угла атаки. И это — худший пример некомпетентности в аэродинамике.

Само по себе изменение тангажа при изменении мощности двигателя — достаточно распространённое явление при управлении самолётами. Даже моя небольшая Cessna немного задирает нос при подаче газа. Во время обучения пилотам рассказывают о таких трудностях и учат их преодолевать. Существуют, однако, определённые безопасные пределы, установленные регуляторами с которыми сами пилоты готовы мириться.

Совсем другое дело, когда тангаж меняется при увеличении угла атаки. Самолет, и без того приближающийся к точке аэродинамического сваливания, не должен ни при каких условиях иметь тенденцию к дальнейшему развитию этого эффекта. Такое свойство называется «динамической неустойчивостью», и единственный класс самолётов, где это допустимо — истребители — оборудуется катапультами для пилотов.

Каждый человек в авиационном сообществе мечтает о самолёте, управлять которым было бы максимально естественно и просто. Например, при изменении мощности двигателя, опускании закрылок или выдвижении шасси, условия полёта не должны заметно меняться, не должны возникать крены или изменяться тангаж — поведение должно оставаться предсказуемым.

Корпус летательного аппарата (само железо) должен работать изначально максимально предсказуемо, а не требовать дополнительных “прибамбасов”. Этот авиационный канон был заложен ещё во времена первых полётов братьев Райт в Китти-Хоук.

Очевидно, что новая модель Боинга 737 Max слишком сильно задирает нос при увеличении тяги, особенно при уже и без того больших углах атаки. Они нарушили древнейший закон авиации, а, возможно, и критерии сертификации FAA (Federal Aviation Administration) в США. Но вместо того, чтобы вернуться обратно к чертёжной доске и исправить корпус самолета, Боинг решил положиться на некую «Систему повышения маневренных характеристик» (“Maneuvering Characteristics Augmentation System”(англ.), MCAS).

Боинг решил проблему с железом при помощи программного обеспечения.

Я оставлю обсуждение появления корпоративного языка (прим. пер.: по всей видимости, автор имеет в виду, что название «Система повышения маневренных характеристик» не говорит о том, КАК она это делает ровным счётом ничего, что несвойственно для авиационных терминов) в авиационном лексиконе для другой статьи, но давайте отметим, что эта система могла бы называться и иначе, например, «Дешёвый способ предотвратить сваливание, когда пилоты решили поддать газку» (“Cheap way to prevent a stall when the pilots punch it,” CWTPASWTPPI). Впрочем, наверное, стоит остановиться на MCAS.

Безусловно, MCAS является куда более дешёвой альтернативой глубокой переработки планера, учитывая необходимость вместить новые большие двигатели. Такая переработка могла бы потребовать, например, удлинения переднего посадочного шасси (которое могло бы после этого и не влезть в фюзеляж при втягивании в корпус), загибания крыльев вверх или каких-нибудь других подобных изменений. Это обошлось бы чудовищно дорого.

Вся разработка и изготовление Max 737 проходили под эгидой мифа «это всё тот же старый добрый 737». Признай Боинг, что это не старая модель, и тогда пересертификация заняла бы годы и потребовала миллионы долларов.

«По факту, пилоты, лицензированные летать на Боингах 737 в 1967 году, могут управлять всеми последующими версиями 737».
Из отзыва на раннюю версию статьи от одного из пилотов 737 в одной из крупнейших авиакомпаний.


Хуже того, подобные крупные изменения могли бы потребовать не просто пересертификации в FAA, но и разработки совсем нового планера Боингом. Вот теперь мы говорим о действительно больших деньгах, причём как для производителей самолётов, так и для авиакомпаний.

И всё потому, что главным аргументом Боинга при продаже 737 Max было то, что он всё тот же 737, и любой пилот, летавший на предыдущих моделях, сможет управлять и Max — без дорогого переобучения, получения нового сертификата и нового рейтинга. Авиакомпании — и Southwest тому яркий пример — как правило предпочитают парк из одного «стандартного» типа самолётов. Они предпочитают иметь единственную модель самолёта, которой может управлять любой их пилот, так как тогда и лётчики, и самолеты становятся взаимозаменяемыми, максимизируя гибкость и минимизируя расходы.

Всё так или иначе сводится к деньгам, и MCAS стал ещё одной возможностью для Боинга и его клиентов достижения того, чтобы деньги текли в нужном направлении. Необходимость настаивать на том, что летные характеристики 737 Max не отличаются от предыдущих моделей 737, была ключом к взаимозаменяемости авиапарка 737 Max. Вероятно, она же стала причиной того, что документация о самом существовании MCAS скрывалась.

Если бы вдруг это изменение стало слишком заметным, к примеру, было отражено в руководстве по эксплуатации самолётом или на него обращали бы особое внимание при прохождении пилотами тренировки, то кто-то — вероятно, кто-то из лётчиков — встал бы и сказал: «Эй, что-то это не похоже на 737». И деньги потекли бы не в ту сторону.

Как я уже объяснил, вы можете провести эксперимент с углом атаки самостоятельно, просто выставив руку из окна движущегося автомобиля и покрутив ладонью. Так вот, у такой сложной машины как самолёт тоже есть механический эквивалент руки, выставленной из окна, — сенсор угла атаки.

Вы можете заметить его при посадке в самолёт. Как правило, их два, по одному на каждой стороне самолёта, обычно прямо под окнами кабины пилотов. Не перепутайте их с трубками Пито (о них читайте ниже). Сенсор угла атаки выглядит как флюгер, а трубка Пито — как… хм, трубка. Сенсор угла атаки выглядит как флюгер именно потому, что он и есть флюгер. Его механическое крыло двигается в ответ на изменения угла атаки.

Трубки Пито измеряют, с какой силой воздушный поток «давит» на самолёт, а датчик угла атаки определяет, с какого направления этот поток набегает. Так как трубки Пито, по сути, измеряют давление, они используются для определения скорости движения самолёта относительно воздуха. Сенсор угла атаки же определяет направление движения самолёта относительно потока.

Существует два набора датчиков угла атаки и два набора трубок Пито, по одному на каждой стороне фюзеляжа. Обычно приборы, установленные на стороне основного пилота, берут свои показания с сенсоров с этой же стороны корпуса; аналогично, приборы у второго пилота показывают значения с датчиков его стороны судна. Такой подход создаёт естественную избыточность в аппаратуре, что позволяет быстро и просто проводить перекрёстную проверку любым из пилотов. Если второй пилот считает, что его индикатор авиационной скорости чудит, он может сверить его с показателем аналогичного прибора на стороне основного пилота. Если показания расходятся, то лётчики выясняют какой из приборов показывает истину, а какой лжёт.

Давным давно была шутка о том, что когда в будущем самолёты смогут летать сами по себе, в кабине всё равно должны будут сидеть пилот и собака. Пилот нужен для того, чтобы пассажирам была спокойнее от осознания, что кто-то там впереди есть. Собака же должна кусать пилота, если он попытается хоть к чему-то прикоснуться.

В 737-ом Боинг не только сделал резервные авиационные приборы и сенсоры, но и резервный бортовой компьютер, установив по одному компьютеру со стороны основного и второго пилотов. Полётный компьютер делает множество разных полезных вещей, но основной его задачей является автопилотирование самолётом тогда, когда ему сказали это делать, и проверка, что лётчик не допустил ошибок в ручном режиме пилотирования. Последний пункт называется «защитой диапазона режимов полёта».

Но давайте назовём вещи своими именами — это и есть та самая «кусачая собака» из анекдота.

Что же делает MCAS? Эта система должна опускать нос самолёта, если считает, что судно выходит за пределы допустимых углов атаки, чтобы избежать аэродинамического сваливания. Боинг установил MCAS в 737 Max из-за того, что более крупные двигатели и их новое расположение привели к тому, что сваливание стало более вероятным, чем в предыдущих поколениях модели.

В тот момент, когда MCAS замечает, что угол атаки стал слишком велик, он командует триммерам самолета (системе, которая заставляет самолёт двигаться вверх или вниз) направить нос судна вниз. Она также делает ещё кое-что: косвенно, используя то, что Боинг называет «Elevator Feel Computer» (компьютер ощущения руля высоты, EFC), она толкает штурвальные колонки управления пилота (штурвалы, которые лётчики толкают или тянут, чтобы поднять или опустить нос самолёта) вниз.

В 737 Max, как и большинстве других современных авиалайнеров и даже автомобилей, за всеми процессами наблюдает компьютер, а то и вовсе управляет ими напрямую. Во многих случаях уже не существует прямой механической связи (то есть тросов, гидравлических линий и трубок) между инструментами управления у лётчика и реальным аэродинамическим оперением самолёта, килем и прочими устройствами, которые заставляют самолёт лететь. А если такая механическая связь и есть, то компьютер сам решает что позволительно делать с ними пилоту (и снова та самая кусачая собака).

Однако важно, чтобы пилоты получали физический отклик обо всём, что происходит. В старые добрые времена, когда тросы связывали органы управления лётчиков с оперением, им приходилось с большим усилием тянуть штурвал, если самолёт снижался. Им приходилось с силой толкать его, если самолёт набирал высоту. Под присмотром компьютера же естественные ощущения контроля исчезли. В 737 Max больше не существует «естественного ощущения».

Да, в 737 есть резервные гидравлические системы, связывающие органы управления, с которыми взаимодействует пилот, и непосредственно работающие элероны и другие части самолёта. Однако эти гидравлические системы настолько мощные, что не передают прямой обратной связи от аэродинамических сил, действующих на элероны. Пилоты будут чувствовать только то, что компьютер позволит им почувствовать. И иногда ощущения получаются не такие уж и приятные.

Когда полётный компьютер направляет самолёт на снижение из-за того, что система MCAS решила, что он вот-вот войдёт в сваливание, цепочка моторчиков и компенсаторов заставляет двигаться штурвалы в кабине вперёд. И оказалось, что компьютер может приложить столько усилия к штурвалам, что лётчики, пытаясь притянуть их к себе и показать компьютеру, что он делает что-то совсем-совсем неправильное, быстро выбиваются из сил.

На самом деле то, что система не даёт пилоту управлять самолётом, потянув на себя штурвал, было осознанным решением конструкторов 737 Max. Потому что если лётчики могут потянуть за колонку управления и вновь направить нос самолёта вверх, когда система MCAS говорит, что он должен быть направлен вниз, то в чём вообще смысл в такой системе?

Несмотря на то, что MCAS интегрирован в полётный компьютер, он вмешивается даже тогда, когда автопилот выключен и пилоты пребывают в уверенности, что самостоятельно управляют самолётом. В борьбе же между лётчиками и бортовым компьютером за то, кто в кабине главный, последний измотал людей до смерти (буквально).

Наконец, требовалось скрыть само существование системы MCAS, чтобы никто не сказал: «Эй, это уже не старик 737», и нужные банковские счета не пострадали.

Продолжение во 2 части.
Взято здесь
https://habr.com/ru/post/449564/
Tags: общество, полеты
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments