Бортовая радиоэлектроника

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

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

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

В памяти основной линии компьютеров недостаточно места для всех программ подъема, спуска и контроля полезной нагрузки в полете, так что память загружается около четырех раз с кассетной ленты самими астронавтами.

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

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

Можно добавить, что сложную систему можно значительно улучшить с помощью более современного аппаратного обеспечения и методик программирования. Любое соперничество извне будет приносить свои плоды — следует внимательно изучить, хороша ли эта идея для НАСА.

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

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК