Насколько различаются резервные компьютеры управления полетом?

Факты

На самолетах Airbus есть компьютеры для защиты зоны полета или для перемещения поверхностей управления. FADEC полностью контролируют двигатели. Компьютеры принимают решения вместо пилотов или даже вопреки их командам. Подобные компьютеры есть и в самолетах Boeing, хотя у экипажа больше полномочий.

введите описание изображения здесь
Электронный отсек A330, источник , фото 'swiss_a320'

Последствия для безопасности

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

Об этом лучше сказать в этой статье :

Из-за серьезных последствий, возникающих в результате единственной точки отказа, аппаратная избыточность имеет решающее значение в системах DAL A. Но если в самолете используется избыточная архитектура, построенная с аналогичными каналами, эта система по-прежнему будет подвержена общим отказам, которые могут привести к одинаковому отказу всех каналов.

Вопрос

Какие принципы используются в авиации для уменьшения вероятности выхода из строя резервных компьютеров или одновременного совершения одних и тех же ошибок?

3 или 4, как правило. Но чтобы ответить на другой ваш вопрос: если все избыточные компьютеры производятся или запрограммированы одинаково ошибочным образом, тогда экипаж и пассажиры действительно будут облажаться, если они пройдут все проверки, проверки и испытания и будут обнаружены в работающем продукте, который почему сделать такую ​​вещь и получить ее через процесс и получить сертификат очень дорого и отнимает много времени.
Но, к сожалению, ваше беспокойство обоснованно, и многие летчики-испытатели погибли из-за неисправного компьютера и компьютерных программ, а также, я думаю, пассажиры и члены экипажа.
Очень тесно связано (читайте дальше заголовка): Почему критически важные бортовые компьютеры избыточны?
Пример бага, вынесенного через тестирование . К счастью, это довольно редкая вещь.
Каким весом вы готовы пожертвовать? Какой штраф вы готовы заплатить за следующий уровень увольнения? Вы проинформировали генерального директора? Вы хотите работать завтра утром?
Возможно, они заставят программистов подняться в первый испытательный полет.
Здесь есть две отдельные проблемы: избыточность и непохожесть. Уровень избыточности — это всего лишь мера того, сколькими системами вы управляете и отслеживаете, в то время как непохожесть — это то, насколько отдельные и независимые эти системы. Я бы предложил уточнить, какой из них вас интересует, переименовав заголовок примерно так: «Насколько непохожи дублирующие компьютеры управления полетом».
@CodyP: Спасибо, это хорошее предложение.
@mins Я немного не согласен с изменением названия. Такое ощущение, что вопрос был изменен и делает недействительными части некоторых ответов (например, части 2 и 4 принятого ответа не о компьютерах). Может быть, старое название и упоминание в вопросе «как дублирующие системы делаются непохожими»? Или, может быть, просто удалить «компьютеры», потому что большая часть избыточности находится за пределами самих компьютеров. Я не уверен... Я оставлю это на ваше усмотрение.
Дублированные системы построены на разных микросхемах, с использованием разных языков программирования (один из них — ADA) и кодируются разными командами в соответствии с одной и той же функциональной спецификацией. Это сводит к минимуму вероятность того, что одни и те же рабочие параметры (например, воздушная скорость, угол атаки и т. д.) будут давать одну и ту же «ошибку» из-за ошибок в двух системах. После AF447 Airbus внесла изменения в системы программного обеспечения, чтобы упростить отключение при наличии противоречивых результатов.
@ Pete855217 - похоже, вы конкретно и действительно ответили на этот замечательный и увлекательный вопрос. Спасибо за это
Кстати, изображение в вопросе ...... несколько пугающее, в некотором роде!

Ответы (4)

Что касается Airbus:

  1. Каждый блок состоит из двух разных плат, одна из которых управляет выходом, а другая проверяет его. Непохожие означают как разные процессоры, так и наборы микросхем (A320 использует i386 (Intel) и m68k (Motorola); в более новых моделях используются другие комбинации, в основном те, которые широко использовались в то время, когда они были разработаны), а также программное обеспечение, написанное двумя независимыми командами.

  2. Есть аварийные переключения, два или три в зависимости от системы (IIRC, устройство, считывающее боковые джойстики, является единственным с четырьмя копиями).

  3. Две основные оси, тангаж и крен, контролируются двумя разными системами. ELAC управляет рулем высоты и элеронами, SEC управляет горизонтальным стабилизатором и спойлерами. Это две полностью независимые цепочки, включающие в себя разные собственно рули, за исключением боковых стиков.

  4. A320 имеет (гидро) механическую резервную копию для тангажа с помощью триммера и рыскания с помощью педалей, используя муфту рыскания и крена для крена. Это работает даже при полном отказе электропроводки. IIRC резервных копий на более новых моделях нет (потому что полного отказа электросети никогда не было).

Расширяя немного разные доски - не знаю об аэробусе или ком-то еще в частности, но я слышал о наличии трех разных систем для принятия решения - это означает, что если одна "неисправна", она не согласуется с другими, и правильное решение может быть поддержано, но вы не можете сказать, что есть что с двумя системами. Это правильно?
@Baldrickk Да, это обычная причина для голосования двумя из трех: с двумя, если один ошибается, вы не можете знать, какой из них неправильный; все, что вы можете знать, это то, что они не согласны. С тремя, если один ошибается, вы можете знать, потому что двое все еще согласны. Пока нет двух из трех неправильных, три дают вам гораздо лучшую способность справляться с разногласиями, чем два.
«потому что полного отказа электрооборудования никогда не случалось» >> Можно подумать, что производители самолетов давно узнали о законе Мерфи. Спросите Эла Хейнса о «невозможных» неудачах. en.wikipedia.org/wiki/United_Airlines_Flight_232 :-/
@MichaelKjörling См.: Отчет меньшинства
@Baldrickk, в целом да, но это никогда не относится к Airbus . Во всех системах Airbus один блок принимает решение, а другой проверяет его. А если проверка не проходит, то двухсистемный блок объявляется неисправным и используется отказоустойчивый подход.
«...потому что полного отказа электричества никогда не было» - черт возьми, надеюсь, я не на первом самолете, с которым это происходит.
@ Шон, вот в чем дело. Случился отказ гидравлики, но он все равно нужен для управления полетом. Поскольку электрический отказ менее вероятен, чем гидравлический, потребность в электроэнергии не так сильно увеличивает риск.
Понял, и я не спорю с вами. Однако со стороны Airbus очень недальновидно думать, что крайне маловероятная ситуация невозможна. Снова спросите капитана Хейнса о том, что невозможно. В тот день произошло множество «невозможных» вещей.
@JanHudec спасибо за дополнительную информацию. интересно знать, что они сделали бы это таким образом.
@Shawn: ты, кажется, намекаешь, что разбираешься в безопасности полетов лучше, чем Airbus. Не могли бы вы рассказать об этом подробнее?
@MartinArgerami Прошу прощения, если вы так восприняли то, что я написал. Я просто говорю, что в реальном мире есть несколько довольно хороших примеров того, что производители самолетов считали невозможными, например, полный отказ гидравлики на DC-10. Вероятно, Airbus не помешает помнить об этих примерах, если они хотят иметь дело с «невозможными» ситуациями. И по моему опыту, полеты (и другие вещи) всегда включали в себя готовность к невозможному и невероятному, так что с вероятными вещами, какими бы сложными они ни были, было намного легче справиться.
@Шон: не нужно извиняться. Все, что я хотел сказать, это то, что существует много знаний о безопасности полетов. И Airbus, и Boeing давно строят самолеты, и год от года знания об авариях увеличиваются. Реальность такова, что мы уже находимся на этапе, когда большинство несчастных случаев не вызвано ошибками конструкции.

Избыточность достигается не только за счет увеличения количества компьютеров, но и за счет их разнообразия. На авиалайнерах Airbus используются два разных компьютера (один с чипами Intel, другой с чипами Motorola в случае A320), и программное обеспечение пишется дважды, одно для управления, другое для мониторинга, двумя командами, которым не разрешено взаимодействовать. .

Цитата из главы 12 Справочника по авионике :

Несмотря на единовременные затраты, вызванные непохожестью, принципиально важно, чтобы все пять компьютеров были разной природы, чтобы избежать общих сбоев. Эти отказы могли привести к полной потере электрической системы управления полетом. Следовательно, можно выделить два типа компьютеров:

2 ELAC (компьютеры руля высоты и элеронов) и 3 SEC (компьютеры спойлеров и руля высоты) на A320/A321 и,

3 FCPC (первичные компьютеры управления полетом) и 2 FCSC (дополнительные компьютеры управления полетом) на A330/A340.

Возьмем, к примеру, модель 320. ELAC производятся компанией Thomson-CSF на основе микропроцессоров 68010, а SEC производятся в сотрудничестве с SFENA/Aerospatiale с аппаратным обеспечением на основе микропроцессора 80186. Таким образом, у нас есть две разные проектные и производственные группы с разными микропроцессорами (и связанными с ними схемами), разными компьютерными архитектурами и разными функциональными характеристиками. На уровне программного обеспечения архитектура системы приводит к использованию четырех программных пакетов (канал управления ELAC, канал мониторинга ELAC, канал управления SEC и канал мониторинга SEC), когда функционально достаточно одного.

Известно, что у 777 есть три резервных компьютера, созданных разными командами / компаниями на разных языках программирования.
По моему опыту, иногда даже базовые алгоритмы должны быть разными (если это возможно).
Святой карась! Motorola 68010 и Intel 80186? Это положительно древние !! Хотя, я думаю, когда A320 впервые сошел с конвейера в 1987 году, они были довольно новыми...
@FreeMan: Eurofighter также использует Motorola 68000. За исключением некоторых обновлений среднего возраста, они должны быть доступны в течение следующих 30 или более лет. Чтобы последний летал, вероятно, потребуется украсть фишки из музея. По крайней мере, более современные компьютеры Airbus используют PPC.
Это вызывает совершенно новый вопрос (который может быть неуместным для этого форума) о том, как Airbus заставляет Intel и Moto производить эти древние процессоры и / или сколько они (их поставщик) хранят? Intel и Moto уже давно окупили свои затраты на разработку и запуск, поэтому производство большего количества должно быть почти чистой прибылью, но содержание производственных заводов в крошечных количествах обходится очень дорого . /OT размышления
@FreeMan: Это чипы военного класса, которые прошли очень долгий процесс утверждения. Часть процесса заключается в том, чтобы убедиться, что кто-то сможет производить эти чипы в ближайшие десятилетия. Конечно, при значительной государственной финансовой поддержке. Это действительно выгодные контракты, поэтому производители не вымрут и не потеряют интерес. Подсказка: не только сиденья для унитазов стоят дороже, чем их эквиваленты из массивного золота.
@FreeMan Даже если бы стоимость 68000 mil-grade была «смехотворно высокой», например, 10 000 долларов за деталь, это было бы ничтожно мало по сравнению со стоимостью сертификации более новой конструкции чипа. Например, даже один час летных испытаний обойдется более чем в 10 000 долларов только для того, чтобы запустить самолет, не считая стоимости фактического наблюдения за поведением чего-либо внутри него.
... некоторые обязательные процедуры сертификации двигателей имеют бюджет порядка 20 или 30 миллионов долларов США - и вдвое или втрое больше, если тесты не пройдены с первого раза и их необходимо провести повторно. Таких денег хватит на кучу процессорных чипов! Но даже 20 млн долларов — это довольно мало для полноценного проекта «нового двигателя» с бюджетом порядка 1 млрд долларов.

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

Чтобы защититься от таких случаев, вы можете провести аудит, моделирование, статический анализ кода и множество других форм проверок и тестирования.

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

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

У Fast Company был отличный отчет о процессе написания программного обеспечения для космического челнока. Хотя он не имеет прямого отношения ни к Airbus, ни к Boeing, он дает представление о том, как работал процесс и к чему он привел.

Программное обеспечение для космического корабля "Шаттл" также было одним из самых дорогих программных проектов за всю историю почти по всем измеримым показателям. Однако нельзя отрицать, что это дало качество, на которое большинство программных проектов даже не надеются даже приблизиться (и я сам говорю это как разработчик программного обеспечения).
Я знал парня, который работал над программным обеспечением для шаттла. Я не думаю, что он когда-либо полностью оправился от этого...
@BobJarvis Мне любопытно, не могли бы вы поделиться подробностями?
Между Space Shuttle и Airbus есть принципиальная разница. У Space Shuttle была одна реализация программного обеспечения и одна реализация аппаратного обеспечения, полагаясь на тщательную реализацию и используя аварийное переключение только для механических отказов в процессе эксплуатации. С другой стороны, Airbus использует несколько реализаций и полагается на аварийное переключение для обработки как механических сбоев, так и ошибок проектирования программного и аппаратного обеспечения.
@JanHudec: На самом деле у космического челнока была одна реализация аппаратного обеспечения, но две реализации программного обеспечения (основное и резервное программное обеспечение для полета, разработанное двумя отдельными командами на основе одного и того же набора спецификаций).

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