[Перевод] Особое мнение Ричарда Фейнмана по гибели шаттла “Челленджер”

2ecd8029fd4066dd1d7c480e2133e252.jpg

От переводчика: В процессе чтения неплохого поста про американскую SLS (его тоже переведу, кстати) наткнулся на цитату из документа, на который часто ссылаются в постах про Space Shuttle, но целиком на русском я его найти не смог — особое мнение Ричарда Фейнмана в составе комиссии по расследованию катастрофы шаттла «Челленджер» в 1986 году.

Отчет ПРЕЗИДЕНТСКОЙ КОМИССИИ по катастрофе космического корабля «Челленджер»

Том 2: Приложение F — Личные наблюдения относительно надежности системы «Шаттл»
Р.П. Фейнман

Введение

Оценки вероятности катастрофического отказа системы с потерей корабля и человеческими жертвами странным образом варьируются от примерно 1/100 (оценки инженеров) до 1/100 000 (оценки менеджмента). Каковы причины и последствия такого рассогласования? Вероятность 1/100 000 означает, что каждый день в течение 300 лет можно запускать по шаттлу, и только один из них погибнет, так что правильнее было бы спросить: «В чем причина такой фантастической веры руководства в надежность системы?»

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

Было использовано несколько источников информации:

  • Критерии для сертификации полетов, включая историю изменений в методике тестирования. Протоколы проверок готовности к полетам перед каждым запуском документируют все обсуждения и решения, связанные с безопасностью.

  • Из прямых показаний и отчетов ответственного за безопасность полигона Луиса Дж. Уллиана была получена информация об истории запусков твердотопливных ракет. В дальнейшем он (в качестве председателя комиссии по безопасности прерывания запуска, LASP) исследовал вероятность аварий, приводящич к радиоактивному заражению при запусках аппаратов с плутониевыми источниками питания (RTG, РИТЭГ) для будущих миссий, плюс аналогичное исследование НАСА.

  • Интервью с руководством и инженерами компании Marshall, а также неофициальные интервью с инженерами компании Rocketdyne для книги «История главных двигателей космических челноков».

  • Неофициальная беседа с независимым инженером из Калифорнийского технологического института, который консультировал НАСА по двигателям.

  • Беседа с инженерами NASA JPL о надежности авионики (компьютеры, датчики и исполнительные механизмы).

  • Отчет «Обзор практик сертификации, потенциально применимых к пилотируемым многоразовым ракетным двигателям», подготовленный в Лаборатории реактивного движения Н. Муром и др. в феврале 1986 года для штаб-квартиры НАСА. В нем рассматриваются методы, используемые FAA и военными для сертификации газотурбинных и ракетных двигателей. Также получены неофициальные комментарии от автором данного отчета.

Твердотопливные ракеты (ТТУ, SRB)

Оценка надежности твердотопливных ракет была сделана офицером по безопасности на полигоне на основе опыта предыдущих запусков. Из примерно 2 900 запусков 121 закончился неудачей (вероятность отказа 1/25). Надо учесть, однако, так называемые «детские болезни» — первые запуски новых моделей ракет, в которых обнаруживаются и исправляются конструктивные ошибки, так что более разумной цифрой для «зрелых» аппаратов может быть 1/50. При особом внимании к приемке деталей и сборке можно было бы достичь показателя немного ниже 1/100, но уровень 1/1000, вероятно, недостижим с сегодняшними технологиями. (Поскольку на «Шаттле» два ускорителя, эти показатели отказов необходимо удвоить, чтобы получить вероятность катастроф «Шаттла» из-за отказа ТТУ.)

Представители же НАСА утверждают, что эта цифра гораздо ниже. Они указывают, что эти цифры относятся к беспилотным ракетам, но, поскольку «Шаттл» является пилотируемым кораблем, «вероятность успеха миссии обязательно очень близка к 1,0». Не очень понятно, что означает эта фраза. Означает ли это, что она фактически близка к 1 или должна быть близка к 1? Далее они объясняют: «Исторически чрезвычайно высокая степень успеха миссий привела к различию в философии между программами пилотируемых космических полетов и беспилотными программами; то есть использование теоретической инженерной оценки вместо статистики тестирования». (Эти цитаты взяты из «Данные космических челноков для анализа безопасности РИТЭГов планетарных миссий», страницы 3–1, 3–2, 15 февраля 1985 г., НАСА, АО). Это правда: если бы вероятность отказа была всего лишь 1/100000, потребовалось бы непомерное количество тестов, чтобы определить эту цифру — в итоге получится лишь цепочка удачных полетов, из которой можно лишь понять, что вероятность меньше, чем единица на количество совершенных полетов. Но если реальная вероятность не так мала, эти полеты показали бы проблемы, могущие привести к сбоям, и даже фактические сбои — при вполне разумном количестве испытаний, так что стандартные статистические методы дали бы вполне разумную оценку. На самом деле, НАСА часто сталкивалось с такими близкими к аварийным ситуациями, и должно было бы понять, что вероятность катастрофы не так уж мала. Плюс, НАСА с одной стороны опирается на решение не определять надежность через прошлую статистику, как это делал офицер по безопасности, но в то же время апеллирует к истории, начиная «Исторически эта высокая степень успеха миссии…». Наконец, если мы заменяем статистическую вероятность инженерной оценкой, откуда берется такое огромное несоответствие между оценкой руководства и оценкой инженеров? Похоже, что и внутри организации, и для внешних отчетов руководство НАСА преувеличивает надежность своей системы до уровня фантастики.

Несостоятельность идеи принятия к полетам уплотнительных колец, которые показали эрозию и прогары в предыдущих полетах, в принципе понятна, и полет «Челленджера» — грустный пример. Эта идея опирается на историю предыдущих полетов; сертификация и успешное выполнение этих полетов воспринимается как доказательство безопасности… Но ведь эрозия и прогары не предусматривались при проектировании! Это — предупреждение о том, что что-то идёт не по плану: оборудование работает не так, как ожидалось, и эти неожиданные и непонятные процессы могут привести к любым последствиям, вплоть до катастрофических. Тот факт, что какой-то «сюрприз» не привел к катастрофе раньше, не гарантирует безопасности при следующем полете, по крайней мере до полного изучения процесса и его причин. Если при игре в русскую рулетку первый выстрел оказался осечкой — это не означает, что можно смело продолжать играть. Причина и последствия эрозии и прогаров не были изучены, при этом они происходили неодинаково в разных полетах и в разных кольцах; иногда больше, иногда меньше.

Несмотря на эти колебания от случая к случаю, чиновники вели себя так, как будто точно понимали, что происходит, приводя друг другу внешне логичные аргументы, часто основанные на «успехе» предыдущих полетов. Например, при определении безопасности полета рейса 51-L («Челленджер») при наблюдаемой эрозии кольца в полете 51-C было замечено, что глубина эрозии составляла только одну треть его толщины, а эксперименты по оценке пределов прочности кольца показали, что необходимо было повредить его на всю толщину, чтобы кольцо разрушилось. Но вместо того, чтобы изучить процесс эрозии, или избавиться от неё вовсе, было решено, что существует «коэффициент безопасности, равный трем». Это странное использование инженерного термина «коэффициент безопасности». Если нужно построить мост, выдерживающий определенную нагрузку без деформации, трещин и изломов балок, можно спроектировать его на нагрузку в три раза больше. Этот «коэффициент безопасности» будет учитывать случайные превышения нагрузки при эксплуатации, неизвестные заранее дополнительные силы, слабые места в материале, неожиданные дефекты, и т.д. Если теперь на новый мост действует ожидаемая нагрузка, и в балке появляется трещина, это априори проблема. Никакого запаса прочности нет вовсе, хоть мост и не разрушился («трещина прошла через балку только на треть»). Уплотнительные кольца ТТУ не были рассчитаны на эрозию; она — признак неизвестных проблем. Эрозия не может свидетельствовать о безопасности.

То есть, невозможно было быть уверенным в том, что в следующий раз эрозия не окажется втрое глубже, но тем не менее, чиновники НАСА убеждали себя и окружающих, что они понимают ситуацию, и она полностью под контролем, хоть показатели и варьируются от случая к случаю. Для расчета эрозии была составлена математическая модель, основанная не на физическом понимании, а на эмпирическом подборе параметров кривой. Предполагалось, что поток горячего газа набегает на материал уплотнительного кольца, и теплота определяется в точке застоя (с помощью термодинамических законов). Но для определения степени эрозии резины предполагалось, что она зависит только от этого нагрева по формуле, предложенной на основе данных по аналогичному материалу. График с логарифмической шкалой был похож на прямую, поэтому было предположено, что эрозия изменяется как 0.58 степень от температуры, причем этот коэффициент получен исключительно из реальных данных. Во всяком случае, было определено, что модель согласуется с эрозией (на глубину одной трети радиуса кольца) -, но это же абсолютно неверно! Скорость потока газов — непредсказуема и зависит от структуры уплотнения, а кольцо может разрушиться даже при частичной или полном отсутствии эрозии. Известно, что эмпирическая формула была построена по облаку точек, некоторые из которых были в два раза выше, а некоторые — в два раза ниже установленной кривой, поэтому было решено, что максимальная эрозия с учетом всех неопределенностей может вдвое превышать расчетную, но это же абсолютно несостоятельное объяснение! При использовании математической модели необходимо уделять пристальное внимание любым неопределенностям в модели.

Жидкотопливный двигатель (ЖРД, SSME)

Во время полета 51-L все три главных двигателя космического челнока работали отлично, и лишь после аварии начали отключаться из-за прекращения подачи топлива. Однако возникает вопрос: если бы ЖРД серьезно отказал, и мы бы исследовали его так же подробно, как и ТТУ, обнаружили бы мы такое же недостаточное внимание к неисправностям и надежности? Другими словами, были ли организационные недостатки, способствовавшие аварии, присущи только производителю ТТУ, или они были более общей характеристикой НАСА? Для этого были исследованы основные двигатели и авионика орбитального самолета (аналогичные исследования его фюзеляжа или внешнего бака не проводились).

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

С главным двигателем «Шаттлов» работали по-другому — можно сказать, «сверху вниз». Двигатель был спроектирован и собран сразу, с относительно небольшими предварительными исследованиями материалов и компонентов. То есть, когда обнаруживаются неполадки в подшипниках, лопатках турбины, трубопроводах охлаждающей жидкости и т.д., выявить причины и внести изменения становится дороже и сложнее. Например, были обнаружены трещины в лопастях турбины кислородного турбонасоса высокого давления (кТНВД). Вызваны ли они дефектами материала, влиянием кислородной атмосферы на свойства материала, тепловыми напряжениями при запуске или остановке, вибрацией и напряжениями при устойчивой работе, или в основном каким-то резонансом при определенных скоростях и т.д.? Сколько времени может пройти от зарождения трещины до ее разрушения, и как это зависит от уровня мощности? Использование готового двигателя в качестве испытательного стенда для решения таких вопросов чрезвычайно дорого: не хочется терять двигатель целиком, чтобы узнать, где и как происходит отказ оборудования. Тем не менее, эта информация необходима для получения уверенности в надежности двигателя в эксплуатации. Без точного понимания невозможно достичь уверенности. Еще одним недостатком метода «сверху вниз» является то, что даже если неисправность грамотно изучена, то даже простое по идее исправление, например, новая форма корпуса турбины, может оказаться невозможным без перепроектирования всего двигателя.

SSME — замечательное инженерное сооружение. У него большее соотношение тяги к весу, чем у любого другого двигателя на сегодняшний день, он проектировался на переднем крае техники, а порой и за ним, поэтому, логичным образом, возникло много разного рода недоработок и проблем. Поскольку, к сожалению, он был построен по принципу «сверху вниз», эти ошибки оказывается трудно найти и исправить. Проектная цель — срок службы в 55 миссий (27 тыс секунд работы либо в миссиях продолжительностью по 500 секунд, либо на испытательном стенде) — так и не была достигнута. В настоящее время двигатель требует очень частого технического обслуживания и замены важных деталей, таких как турбонасосы, подшипники, корпуса и т.д. Топливный ТНВД требовал замены каждые три или четыре полета (хотя, возможно, сейчас это уже исправлено), а кислородный — каждые пять или шесть; это менее десяти процентов от первоначальной спецификации. Но наша главная забота здесь — определение надежности.

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

Ниже приводятся некоторые известные проблемы ЖРД. Те, за которыми следует звездочка, похоже, были исправлены:

  • Трещины лопаток турбины в топливных ТНВД *

  • Трещины лопаток турбины в кислородных ТНВД

  • Разрыв линии зажигания (ASI) *

  • Неисправность продувочного обратного клапана *

  • Эрозия камеры ASI *

  • Растрескивание корпуса турбины топливных ТНВД

  • Неисправность гильзы охлаждающей жидкости топливных ТНВД *

  • Неисправность выходного колена основной камеры сгорания *

  • Смещение сварного шва впускного колена главной камеры сгорания *

  • Подсинхронный вихрь кислородных ТНВД *

  • Система безопасного отключения ускорения полета (частичный отказ в резервной системе) *

  • Скол подшипника (частично устранен)

  • Вибрация с частотой 4 000 герц, делающая некоторые двигатели неработоспособными

  • и т.д.

Многие из этих проблем являются «детскими болезнями» новой конструкции: 13 из них возникли в первые 125 тыс секунд работы двигателей и только три — во вторые 125 000 тыс. Естественно, никогда нельзя быть уверенным в том, что все ошибки устранены, и в некоторых случаях «исправление» может не устранить истинную причину. Можно предположить, что в течение следующих 250 тыс секунд может произойти как минимум один «сюрприз», т.е. вероятность 1/500 на двигатель за миссию. В миссии участвуют три двигателя, но допустим, что отказы будут локальными и затронут только один двигатель. «Шаттл» может вернуться на Землю с двумя двигателями, поэтому положим, что неизвестные «сюрпризы» даже сами по себе не снизят вероятность отказа главных двигателей ниже 1/500. К этому добавим вероятность аварии из-за известных, но еще не решенных проблем (те, что без звездочки в списке выше), об этом мы поговорим ниже. Напомним, инженеры компании Rocketdyne (производителя двигателей) оценивают общую вероятность как 1/10 000. Инженеры компании Marshall оценивают его как 1/300, в то время как руководство НАСА, которому эти инженеры подчиняются, утверждает, что он составляет 1/100 000. Независимый инженер, консультирующий НАСА, считал, что 1 или 2 на 100 — разумная оценка.

История процесса сертификации этих двигателей запутана и труднообъяснима. Первоначально подход, по-видимому, был такой: два образца двигателей должны были работать в два раза дольше нормативного времени без сбоев («правило 2x»). По крайней мере, такова практика FAA (Агентство по сертификации авиатранспорта), и NASA, видимо, приняло ее, первоначально рассчитывая, что время работы составит 10 полетов (следовательно, нужно 20х полетного времени для сертификации). Очевидно, что для сравнения лучше всего использовать двигатели с наибольшей общей (летной плюс испытательной) наработкой — так называемые «лидеры парка». Но что, если какой-то образец выйдет из строя быстрее? Тогда, учитывая «правило 2x», мы должны признать двигатели способными отработать половину стендового времени самого плохого образца.

Медленное движение в сторону уменьшения коэффициента безопасности можно проиллюстрировать на примере лопаток турбины топливного ТНВД. Прежде всего, была отброшена идея тестирования всего двигателя: у каждого экземпляра двигателя было много важных частей (например, самих турбонасосов), заменяемых через частые промежутки времени, так что «правило 2х» должно быть перенесено с двигателей на их компоненты. Мы принимаем тТНВД для сертификации, если два образца успешно отработали каждый в течение вдвое большего времени (и с практической точки зрения больше не настаиваем, чтобы это было 10 миссий). Но что значит «успешно»? FAA считает трещину на лопатке турбины «отказом», таким образом действительно обеспечивая коэффициент безопасности больше 2 на практике. Двигатель может нормально работать в течение некоторого времени с момента появления трещины и до момента, когда она станет достаточно большой для разрушения лопатки. FAA рассматривает новые правила, учитывающие это дополнительное время, но только при условии, что процесс тщательнейшим образом проанализирован с помощью проверенных моделей, и с использованием материалов, прошедших тщательные испытания. Ни одно из этих условий не применимо к главному двигателю «Шаттлов».

На многих лопатках турбины ТНВД были обнаружены трещины. В одном двигателе — три штуки было обнаружено после 1900 секунд работы, в другом — ни одной через 4200 секунд, хотя в среднем на таких «пробегах» уже обнаруживались трещины. Надо пояснить, что напряжение в материале лопаток в основном зависит от уровня мощности двигателя. Полет «Челленджера» должен был проходить на уровне мощности 104% от номинала, и предыдущие полеты проходили на этом уровне в течение большей доли времени работы двигателей. Судя по некоторым публикациям, при уровне 104% от номинальной мощности время до появления трещин примерно в два раза больше, чем при 109% или «уровне полной мощности» (FPL). Более поздние полеты планировались на 109% из-за более тяжелой полезной нагрузки, и многие испытания проводились на этом уровне, поэтому, разделив время при 104% на 2, мы получим т.н. время эквивалента полной мощности (EFPL). (Очевидно, что при этом вводится некоторая неопределенность, но она специально не изучалась); самые «ранние» трещины были обнаружены при 1 375 EFPL.

Теперь правило сертификации звучит как: «Ограничить все лопатки максимум 1 375 секундами EFPL». Если кто-то возразит, что коэффициент безопасности 2х тут теряется, то можно указать, что одна турбина проработала 3800 секунд EFPL без трещин, а половина этого времени — 1900, так что мы тут даже консервативны. В реальности же, тут совершаются три грубейшие ошибки. Во-первых, у нас есть только один «долгожитель», и он не является «лидером парка», а два других образца после 3 800 или более секунд работы имели 17 треснувших лопаток «на двоих» (в каждом двигателе 59 лопаток). Во-вторых, мы отказались от «правила 2x» и почему-то заменили его 1х. И в-третьих, 1 375 — это «пробег», на котором мы увидели трещину. Мы можем сказать, что до 1 375 секунд трещин не было обнаружено, но на самом деле последний раз мы проверяли лопатки (и не видели трещин) на 1 100 секундах EFPL. Мы не знаем, когда точно образовалась трещина между этими моментами: например, трещины могли образоваться при 1 150 секундах EFPL. Кстати, «Челленджер» должен был запустить двигатель, очень близкий к этому пределу прочности, в процессе завершения полета.

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

Возможно, это действительно так. Но действительно ли мы уверены, что трещины всегда растут достаточно медленно, чтобы за время миссии не произошло разрушения? Три двигателя работали в течение длительного времени с несколькими треснувшими лопатками (около 3000 секунд EFPL), при этом лопатки не отламывались, но где гарантия, что другие двигатели поведут себя так же?

Очень похожая история фигурирует в сертификации окислительного ТНВД, но мы не будем здесь в неё углубляться. В целом, очевидно, что обзоры готовности к полетам и правила сертификации наглядно показывают проблемы с главными двигателями челноков, аналогичные проблемам с ТТУ.

Авионика

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

Компьютерная система «Шаттла» очень сложна, она содержит более 250 000 строк кода (ха-ха, прим перев). Она отвечает, среди прочего, за автоматическое управление подъемом на орбиту целиком и за спуск от момента нажатия кнопки, выбирающей место посадки, и до входа в плотные слои атмосферы (со скоростью ниже звуковой). Можно было бы выполнить всю посадку автоматически (разве что сигнал опускания шасси не контролируется компьютером и должен подаваться пилотом, якобы из соображений безопасности), но такая полностью автоматическая посадка, вероятно, не так безопасна, как посадка под управлением пилота. Во время орбитального полета компьютер используется для управления полезной нагрузкой, отображения информации для космонавтов и обмена информацией с Землей. Очевидно, что безопасность полетов требует гарантий точности работы этой сложной системы: как самих компьютеров, так и программного обеспечения.

Надежность оборудования обеспечивается за счет четырех идентичных независимых вычислителей. Там, где это возможно, у каждого датчика также есть несколько копий (обычно тоже четыре), и каждая копия отправляет данные во все четыре компьютера. Если входные данные от датчиков расходятся, в качестве эффективного входа используются усредненное значение или «выбор большинства» (в зависимости от ситуации). Все компьютеры работают с идентичными копиями программы, и их входные данные тоже одинаковы (т.к. каждый компьютер видит все копии датчиков), поэтому на каждом этапе работы программы результаты на всех компьютерах тоже должны быть идентичными. Время от времени их сравнивают, но так как процессоры могут работать на немного разных скоростях, перед каждым сравнением состояние синхронизируется. Если один из компьютеров не согласен с остальными или слишком поздно подготовил свой ответ, три других считаются «правильными», а «ошибочный» — полностью исключается из системы. Если теперь другой компьютер выйдет из строя (это определяется двумя оставшимися), он удаляется из системы, а полет прерывается, и начинается снижение к месту посадки. Очевидно, это избыточная система, поскольку отказ одного компьютера никак не влияет на выполнение миссии. Плюс, в качестве дополнительной функции безопасности, имеется отдельный пятый компьютер, в память которого загружены только программы подъема и спуска, и который способен управлять спуском, если произойдет отказ более двух из четырех основных машин.

К сожалению, в памяти главного компьютера не хватает места для всех программ подъема, спуска и полезной нагрузки в полете, поэтому память загружается астронавтами вручную с лент, четыре раза за полет. Из-за огромной сложности замены программного обеспечения такой системы, а также для обеспечения совместимости исправлений, аппаратное обеспечение не менялось с момента создания системы (около пятнадцати лет назад). Фактически, это оборудование устарело; например, память используется старого типа, с ферритовым сердечником. Становится все труднее найти производителей, которые бы надежно поставляли такие устаревшие компьютеры; современные компьютеры намного надежнее, быстрее, и не требуют ручной перезагрузки памяти.

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

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

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

Наконец, вернемся к датчикам и исполнительным механизмам системы авионики. Отношение к отказам и надежности системы здесь не так хорошо, как у разработчиков ПО: например, было обнаружено, что некоторые датчики температуры иногда выходят из строя. Однако те же датчики продолжали использоваться через полтора года после диагностики неисправности, и один запуск даже пришлось отменить из-за одновременного отказа двух из них. Но и после этого эти ненадежные датчики продолжали использоваться снова и снова. Также, реактивные двигатели малой тяги (RCS), используемые для управления в полете, все еще недостаточно надежны. В системе RCS есть значительная степень резервирования, но довольно долго в ней происходят различные сбои, хотя ни один из них еще не был достаточно масштабным, чтобы серьезно повлиять на программу полета; работа двигателей проверяется датчиками, и в случае сбоя компьютеры активируют соседний двигатель. Но эти двигатели вообще не должны отказывать, так что эта проблема все еще требует адекватного решения.

Выводы

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

Официальное руководство, с другой стороны, утверждает, что вероятность катастрофы в тысячу раз меньше. Возможно, за этим стоит желание заверить правительство в успехе NASA, чтобы гарантировать дальнейшее финансирование; либо руководство искренне верит в эти цифры, демонстрируя почти невероятное отсутствие коммуникаций между менеджерами и инженерами.

В любом случае, было огромной ошибкой побудить непрофессионалов (имеется в виду прежде всего победительница конкурса «Учитель в космосе» и член экипажа «Челленджера» Криста МакОлифф — прим. перев.) лететь на такой опасной машине, как если бы она достигла уровня безопасности обычного авиалайнера. Астронавты, как и летчики-испытатели, трезво оценивают свой риск, и мы чтим их мужество. Похоже, Криста МакОлифф была также человеком большого мужества, и она была гораздо ближе к пониманию истинной степени риска, чем руководство НАСА хотело бы заставить нас поверить.

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

Для успеха технологии реальность намного важнее пиара, ведь природу не обманешь.

P.S. От переводчика: Шаттл «Колумбия» потерпел крушение 1 февраля 2003 года (полёт № STS-107) при входе в атмосферу Земли перед посадкой, через 17 лет после «Челленджера». После этого программа Space Shuttle была постепенно свёрнута.

© Habrahabr.ru