Ариан рейс V88
Тип миссии | Магнитосферный |
---|---|
Оператор | ЧТО |
Свойства космического корабля | |
Стартовая масса | 1200 кг (2600 фунтов) |
Начало миссии | |
Дата запуска | 12:34:06, 4 июня 1996 г. (UTC) |
Ракета | Ариан 5G |
Запуск сайта | Куру ELA-3 |
Конец миссии | |
Утилизация | неудачный запуск |
Разрушен | 4 июня 1996 г. |
Четырехугольный знак миссии ЕКА для Кластера |
Ариан рейс V88 [1] стал неудачным первый полет ракеты Arianespace Ariane 5 , аппарат №. 501, 4 июня 1996 года. На нем находился космический корабль Cluster , группировка из четырех исследовательских спутников Европейского космического агентства .
Запуск завершился неудачей из-за многочисленных ошибок в разработке программного обеспечения: мертвый код , предназначенный только для Ariane 4 , с недостаточной защитой от целочисленного переполнения привел к неправильно обработанному исключению , остановившему всю в остальном незатронутую инерциальную навигационную систему . Это привело к тому, что ракета отклонилась от траектории полета через 37 секунд после запуска, начала распадаться под действием высоких аэродинамических сил и, наконец, самоуничтожилась с помощью автоматической системы прекращения полета . Этот сбой стал известен как одна из самых печально известных и дорогостоящих программных ошибок в истории. [2] В результате неудачи компания потеряла более 370 миллионов долларов США. [3]
Ошибка запуска
[ редактировать ]Ariane 5 повторно использовал код инерциальной эталонной платформы Ariane 4 , но ранняя часть траектории полета Ariane 5 отличалась от Ariane 4 более высокими значениями горизонтальной скорости. Это привело к тому, что внутреннее значение BH (горизонтальное смещение), рассчитанное в функции выравнивания, оказалось неожиданно высоким. Функция выравнивания работала примерно в течение 40 секунд полета, что было основано на требованиях Ariane 4, но не приносило никакой пользы после старта Ariane 5. [4] Большие значения BH приводили к переполнению преобразования данных из 64-битного числа с плавающей запятой в 16-битное знаком целое число со и возникновению аппаратного исключения . [5] Программисты защитили от переполнения только четыре из семи критических переменных, чтобы уложиться в требуемую максимальную рабочую нагрузку в 80 % для бортового компьютера с инерциальной системой отсчета, и полагались на предположения, которые были верны для Ariane 4, но не для Ariane 5. , траектория возможного диапазона значений для трех незащищенных переменных. [6] Исключение остановило работу обоих модулей инерциальной системы отсчета, хотя они должны были быть резервными . Активный модуль представил бортовому компьютеру диагностическую битовую комбинацию, которая была интерпретирована как полетные данные, в частности, вызывая полное отклонение сопел твердотопливных ускорителей и маршевого двигателя Vulcain . Это привело к углу атаки более 20 градусов, что привело к отрыву ускорителей от основной ступени, срабатыванию системы самоуничтожения пусковой установки и разрушению полета. [4]
В официальном отчете о катастрофе (составленном комиссией по расследованию, возглавляемой Жаком-Луи Лионсом ) отмечалось, что «Основной темой при разработке Ariane 5 является уклон в сторону смягчения случайных отказов . Поставщик инерциальной навигационной системы (SRI) ) только следовал предоставленной ему спецификации, которая предусматривала, что в случае любого обнаруженного исключения процессор должен был быть остановлен. Возникшее исключение произошло не из-за случайного сбоя, а из-за ошибки проектирования. Исключение было обнаружено, но ненадлежащим образом обработано. поскольку было принято мнение, что программное обеспечение следует считать правильным до тех пор, пока не будет доказано, что оно неисправно. [...] Хотя сбой произошел из-за систематической ошибки проектирования программного обеспечения, можно ввести механизмы для смягчения проблем такого типа. Например, компьютеры в SRI могли бы продолжать предоставлять наилучшие оценки необходимой информации о положении . Есть основания для беспокойства, что следует разрешить или даже потребовать программное исключение, вызывающее остановку процессора при работе с критически важным оборудованием. Действительно, потеря правильной функции программного обеспечения опасна, поскольку одно и то же программное обеспечение работает в обоих устройствах SRI. В случае с Ariane 501 это привело к отключению двух еще исправных критических единиц оборудования». [4]
Другие проблемы, выявленные в отчете, касались тестирования: [4]
- Целью процесса проверки, в котором участвуют все основные партнеры программы Ariane 5, является проверка проектных решений и получение летной квалификации. В этом процессе ограничения программного обеспечения центровки не были полностью проанализированы, и возможные последствия продолжения его работы во время полета не были осознаны.
- Спецификация инерциальной системы отсчета и испытания, проведенные на уровне оборудования, конкретно не включали данные о траектории Ariane 5. Следовательно, функция перестройки не была проверена в моделируемых условиях полета Ariane 5, и ошибка конструкции не была обнаружена.
- Было бы технически осуществимо включить почти всю инерциальную систему отсчета в общее моделирование системы, которое было выполнено. По ряду причин было решено использовать смоделированные выходные данные инерциальной системы отсчета, а не реальную систему или ее детальное моделирование. Если бы система была включена, сбой можно было бы обнаружить. Послеполетное моделирование проводилось на компьютере с программным обеспечением инерциальной системы отсчета и с моделируемой средой, включая реальные траекторные данные полета Ariane 501. Эти симуляции точно воспроизвели цепочку событий, приведших к отказу инерциальных систем отсчета.
Другой взгляд на сбой, основанный на системной инженерии , фокусируется на требованиях: [7]
- Диапазоны переменных, таких как горизонтальная скорость и вычисленная на ее основе величина BH, должны были быть явно определены количественно. Вместо этого предполагался 16-битный диапазон.
- Задача выравнивания должна была быть деактивирована в соответствующий момент. Вместо этого задача выравнивания выполнялась после взлета.
- Следует проанализировать модель отказа инерциальных эталонных платформ, чтобы гарантировать непрерывное предоставление услуг на протяжении всего полета, а не предполагать, что выйдет из строя не более одного модуля. Вместо этого оба модуля вышли из строя, и вместо того, чтобы корректно завершить полет, выходные диагностические сообщения были интерпретированы как данные полета.
Полезная нагрузка
[ редактировать ]Кластер состоял из четырех цилиндрических космических кораблей со стабилизированным вращением массой 1200 кг (2600 фунтов) , оснащенных солнечными элементами мощностью 224 Вт. Космический корабль должен был лететь в форме тетраэдра Земли и предназначался для проведения исследований магнитосферы . Спутники должны были быть размещены на высокоэллиптических орбитах; 17 200 на 120 600 километров (10 700 на 74 900 миль), наклонена под углом 90 градусов к экватору. [8]
Последствия
[ редактировать ]После аварии Cluster II были построены четыре запасных спутника . Они были запущены парами на ракетах «Союз-У» / Фрегат в 2000 году.
Неудачный запуск привлек внимание широкой общественности, политиков и руководителей к высоким рискам, связанным со сложными вычислительными системами , что привело к увеличению поддержки исследований по обеспечению надежности критически важных для безопасности систем . Последующий автоматизированный анализ кода Ariane ( написанный на языке Ada ) стал первым примером крупномасштабного статического анализа кода методом абстрактной интерпретации . [9]
Неудача также нанесла ущерб превосходному успеху семейства ракет Европейского космического агентства, установленному высокими показателями успеха модели Ariane 4. Лишь в 2007 году запуски Ariane 5 были признаны столь же надежными, как и запуски предыдущей модели. [10]
См. также
[ редактировать ]- Программное обеспечение Mars Climate Orbiter , адаптированное из более раннего Mars Climate Orbiter, не было должным образом протестировано перед запуском.
- Компьютер управления «Аполлоном» — проблема с PGNCS , еще один случай, когда компьютер управления космическим кораблем пострадал из-за неправильной работы подсистемы.
- Список ошибок программного обеспечения
Ссылки
[ редактировать ]- ^ Генрион, Жан Ив; Валле, Тьерри (1997). «В88 Ариан 501» . Капком Спейс .
- ^ Глейк, Джеймс (1 декабря 1996 г.). «Ошибка и сбой» . Журнал Нью-Йорк Таймс . Архивировано из оригинала 20 апреля 2012 года . Проверено 7 апреля 2012 г.
- ^ Доусон, Марк (март 1997 г.). «Программный сбой Ariane 5». Заметки по разработке программного обеспечения ACM SIGSOFT . 22 (2): 84. дои : 10.1145/251880.251992 . S2CID 43439273 .
- ^ Перейти обратно: а б с д Лайонс, JL (19 июля 1996 г.). Авария ARIANE 5 - Полный отчет (Отчет). Информационная комиссия, созданная ЕКА и КНЕС. Архивировано из оригинала 26 апреля 2014 года.
- ^ Нусейбе, Башар (май 1997 г.). «Ариана 5: Кто, черт возьми?» (PDF) . Программное обеспечение IEEE . 14 (3): 15–16. дои : 10.1109/MS.1997.589224 . S2CID 206482665 .
- ^ Жезекель, Жан-Марк; Мейер, Бертран (январь 1997 г.). «Включите это в контракт: Уроки Арианы» . Компьютер . 30 (2): 129–130. дои : 10.1109/2.562936 . Архивировано из оригинала 4 июня 2016 года – через Irisa.
- ^ Ле Ланн, Жерар (март 1997 г.). «Анализ отказа рейса 501 самолета Ariane 5 - взгляд на системную инженерию». Материалы международной конференции 1997 года по разработке компьютерных систем (ECBS'97) . Компьютерное общество IEEE . стр. 339–346. дои : 10.1109/ECBS.1997.581900 . ISBN 0-8186-7889-5 .
- ^ Кребс, Гюнтер. «Кластер 1, 2, 3, 4, 5, 6, 7, 8» . Космическая страница Гюнтера . Проверено 29 ноября 2011 г.
- ^ Фор, Кристель. «История поликосмических технологий» . Проверено 3 октября 2010 г.
- ^ Тодд, Дэвид (март 2007 г.). «Новости космической разведки ASCEND» (PDF) . Архивировано из оригинала (PDF) 14 февраля 2007 года.
Дальнейшее чтение
[ редактировать ]- Томас, LD (2007). «Отдельные недостатки процесса системного проектирования и их последствия» . Акта Астронавтика . 61 (1–6): 406–415. Бибкод : 2007AcAau..61..406T . дои : 10.1016/j.actaastro.2007.01.005 . hdl : 2060/20070002067 . ISSN 0094-5765 – через НТРС .
Внешние ссылки
[ редактировать ]- Жак-Луи Лионс и др., Отчет комиссии по расследованию Ariane 501 ()
- Космический полет сейчас - Кластер II - Ариан 501 взрывается на Wayback Machine (архивировано 25 марта 2015 г.), прямая ссылка на видеофайл - Кадры последних секунд полета ракеты.
- Wired — худшие ошибки в программном обеспечении в истории — статья о 10 крупнейших ошибках в программном обеспечении. В качестве одной из таких ошибок упоминается программный сбой Ariane 5 Flight 501.
- (на немецком языке) Ariane 5 – 501 (1–3) — Хорошая статья (на немецком языке), в которой приведен реальный код, о котором идет речь.