Pull to refresh

Comments 121

— из-за того, что компьютер только один, при перезагрузке все обновления (патчи) стираются и их нужно дополнительно загружать заново в систему;


Что за бред?

Кластер такой без файловера, еврейский.

Чтобы очередной патч не окерпичил систему, система сбрасывается до заводских при любой проблеме

Вроде разумно. Кроме тех моментов, когда патчей становится слишком много, а времени для их последовательной установки и возвращению к нормальной работе мало.

В теории патчей вообще не должно быть и всё проверено 100500 раз до вылета.

Вояджер — патчили (не помню что).
Опотьюнити — патчили (чуть не потеряли через неделю после примарсения из-за ошибок в распределении памяти — спас «железный» командоаппарат принудительно включавший радиосвязь по расписанию).
Новые Горизонты — патчили (какая-то ошибка с учётом Допплера не позволяла развить нужную пропускную способность связи).
Вояджеру одним из обновлений заменили кодирование на манчестерский код и подняли скорость передачи данных. Это не исправление косяков, это усовершенствование.
Именно. Вояджер адаптировали к жизни после разных поломок и большом удалении от земли и солнца.
Ага, там ещё обошли сбойную ячейку памяти.
Читал когда-то про Опортьюнити. То, что я помню — там патчили из-за атмосферы Марса. Где-то она плотнее, где-то разреженнее и вот аппарат делал какие-то замеры, на основании которых уже проводились корректировки курса с Земли.
На Voyager 2 в 2010 году произошел bit flip в памяти, пришлось патчить, чтобы запретить использовать поврежденный участок памяти.
Это понятно, что сбрасывается, но почему патчи не хранить рядом, и просто по команде с Земли подгружать нужные после перезагрузки?

Возможно повреждение носителя радиацией. Имхо. А дистанционно придёт гарантированно чистый код.

Тогда на чём хранится код базовой прошивки?
Mask ROM, скорее всего.
Именно что прошивка, «железно» зашитая в кристалл на фабрике.
Сейчас бы в 2019 году гадать и надеяться, что код на носителе не повреждён.
Есть же CRC и куча более продвинутых систем коррекции ошибок на носителях.
Мне кажется, что есть 2 возможных причины:
  1. Присланные патчи хранятся в RAM, при неожиданной перезагрузке не успевают переписать из в ПЗУ
  2. Не продумали механизм Update Queue, не рассчитывали, что придётся много раз патчить
Интересно, а делают ли на космических аппаратах виртуалки? И делали ли на Берешит?

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

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

Причем виртуалка же может быть сравнительно простой, типа JVM или виртуальной машины Erlang. Если все же идет борьба за такты — поставить 2 процессора, веса это добавит довольно немного.
Вы что, какие виртуалки на оборудовании такой важности? Скорее всего вылизанная и идеально настроенная RTOS, гораздо ближе к железу.
JVM и Виртуалки в космосе звучит примерно как «Летающая корова». Голый C (и частенько без плюсов), ассемблер.
Уже AGC (бортовой компьютер Аполлонов) имел внутри себя виртуальную машину с более высокоуровневым языком.
Или переводчик плохой, либо весь дополнительный код в оперативке сидит.
Тоже крайне удивило такое корявое решение. Не, ну 50 лет без всяких патчей назад умудрялись аппараты сажать, а сейчас-то почему «на ходу» что-то делают?
Новый аппарат нужно собирать на реле и ваккуумных лампах.
И долетит, и сядет нормально.
А то, понимаешь, привыкли выкатывать сырое в продакшн с надеждой на закрытие косяков патчами…
Если без шуток, то аппарат на реле всё же долетел и сел…
И я глубоко убеждён, что имея в распоряжении просчитанные орбиты Луны и Земли на 100500 лет вперёд, всевозможные датчики для ориентации, высокую производительность БК и т.п., прилунение совершенно реально осуществлять полностью автономно. Ну пусть с минимальной корректировкой из ЦУПа, да и то просто для достижения идеального результата. Но не так же, чтобы за время полёта 10 раз перезагружать компьютер, а сажать чуть-ли не в ручном режиме.
аппарат на реле всё же долетел и сел…
с какой попытки?
прилунение совершенно реально осуществлять полностью автономно.
Очень маловероятно. Если только, аппарат сам будет определять и высчитывать свое местоположение и сам делать поправки на основе этих данных. Но какая-нибудь простенькая задача, типа нулевой скорости на нулевой высоте на последних этапах — вполне по силам автоматике.
Если только, аппарат сам будет определять и высчитывать свое местоположение и сам делать поправки на основе этих данных.

Как раз это он и должен, на мой взгляд, делать. Аппараты обвешивают всевозможными датчиками, а производительность современных БК позволяет производить все вычисления на лету.
Очень маловероятно его вручную посадить. Это вам не р/у коптер, скорости до тысяч метров в секунду, а время прохождения радиосигнала луна-земля-луна 2.5 сек. Вообще невозможно рулить в реальном времени.
Сколько стоила разработка лунохода 50 лет назад, и сколько — у SpaceIL?
Да, умудрялись.
Скажем перед первой посадкой на Луну (Луна-9), из пяти полетевших к Луне (и 11 запущенных, у остальных шести аварии произошли на более ранних этапах), три разбилось при посадке и две пролетело мимо, не сумев перейти на окололунную орбиту.
Или аппараты для доставки на Землю лунного грунта — у трех из шести аварии при посадке.
В Штатах статистика несколько получше, но 2 из 7 Сервейеров тоже разбились.
Кстати, аппарат «Берешит» на орбите Луны и во время посадки использовал бортовой магнетометр и передал в ЦУП SpaceIL некоторую часть научных данных о магнитном поле Луны.
Понимаю, что шутка уже с бородой будет, но… Интересно, хватит ли этого, чтобы что-нибудь анлокнуть? ;-)
Интересно, хватит ли этого, чтобы что-нибудь анлокнуть?

Если вы про ачивки, то XPRIZE «Moonshot Award» они заслужили.
Я скорее про технологии за заработанные очки науки. :)
Анлок скилла «уволить этих прогромистов нах».

Была такая игра, Sword of the srar, хххх-жанра. Там научное исследование могло тупо не завершиться, типа произошла авария. Несколько ходов игры псу под хвост. Бесило страшно. Хотя игра хорошая была.

Это шутка связанная с Kerbal Space Program. Проводя научные измерения и передав ее землю, получаешь очки науки. Которые тратятся на «анлок» новых деталей.
И да, там часто бывает что научная программа выполняется частично из-за потери аппарата.

Ясно. Я её так не освоил. Ставил для чада, но ему больше Спора зашла.

программный код управления, команды и работа с бортовым компьютером — на языке С;
Что-нибудь известно об использовании разработчиками средств статического анализа?
Мне кажется, что MISRA уже давно мастхэв во всем подобных проектах. Тем не менее, статический анализ поможет в предотвращении только самых явных ошибок, а если программист решил затупить, его ничто не остановит.
Интересно, перехватить управление аппаратом и внедрить в его бортовой компьютер дополнительный код\команду, теоретически, возможно было сделать или там все же была определенная защита от внешнего несанкционированного доступа?

Арабы сбили?

Stuxnet у персов, а не у арабов.

Это был намек на то, что не только с упомянутой вами стороны могла «ответка» прилететь ;)
Наверняка аппарат был застрахован, а сейчас с опытом и страховкой можно построить новый.
36:25 — 36:33 «Проблемы с основным двигателем. Мы перезагружаем бортовой компьютер, чтобы включить двигатель.»
Последние 4 секунды жизни аппарата по данным в ЦУП (с 678 до 149 метров снижение)

За 4 сек. комп не перезагрузить. Почему не обеспечили возможность включения основного двигателя по прямой команде с Земли?

Ср.:
при всех посадках на Луну, начиная с Нила Армстронга, – все астронавты выключали автоматическую посадку и садились вручную, пользуясь при этом информацией бортового компьютера, аналогично было при посадке Шатлов на Землю
Астронавты видели куда летят, как сохранять ориентацию, здесь же мгновенной информации о положении аппарата нет. Попробуйте посадить обычный дрон без стабилизации, вручную регулируя скорость каждого пропеллера, да еще и отвернувшись.
В своем вопросе я исходил из прочитанного: «чтобы включить двигатель» — т.е. всего 1 двигатель, а не каждый из нескольких (4х?) пропеллеров. Охотно верю, что в штатном режиме комп справится лучше, чем люди на Земле, но комп был во внештатном режиме — раз его хотели перезагрузить. И почему не было 2го бортового компа?
Без компьютера, управляющего боковыми маневровыми движками, он тут же начнет вращаться в произвольном направлении. А к вопросам «а почему не поставили еще ...» — там каждый грамм на счету, иначе полулюбительский проект за 100 млн превратится в полноценный «Апполон» за 100500.
там каждый грамм на счету
Сколько весит бортовой комп?
Без компьютера, управляющего боковыми маневровыми движками, он тут же начнет вращаться в произвольном направлении
Его пытались перезагрузить. Значит пошли на вариант «Без компьютера». Читаю, что написано в статье. Но м.б. есть другие источники, где сказано иначе?
Вес компа не знаю, но вряд ли мало, к примеру отказавший инерциальный датчик весит 55 грамм и потребляет 2вт, в отличии от бытового, представляющего из себя микросхемку с ничтожным потреблением.
Сомневаюсь, что двигатели можно включить без компьютера — кто же примет команду?
Ну, вот и Вы не знаете, как и я. Но интересно: у кого-то претензии к моему вопросу — он/она всё знает? Автор написал что-то мне непонятное — могу я об этом спросить?
У меня претензия никаких нет, я пытаюсь донести свои соображения, возможно, тоже ошибочные.
UFO just landed and posted this here
Вы думаете, что там домашний компьютер установлен? Это почему же за 4 секунды не перезагрузить?

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

Почему Вы так решили? Bare metal без OS перезагружается за десятки миллисекунд.
Так еще и накатить надо обновы.
Вы вправду считаете, что там винда?

Нет. Почитайте статью. А если лень, то хотя бы первый комментарий к ней.

пишут один датчик — один компютер? напомнило Боинг Мах.

Ожидал что то?

— зафиксирована некорректная работа одного из 3 дублирующих датчиков.

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

Там всего 55 грам, это слишком мало. Скорее (1) цена в пару сот тысят долларов с обвязкой и (2) первый работал исправно, датчик номер 2 просто ввзвал неожиданные сбои, т.ч. не в избыточности датчиков ускорения было дело.

UFO just landed and posted this here

На процессоре местного производства с повышенной устойчивостью к сбоям и радиоактивному излучению: COBHAM GR712RC.

А не надо было КА медвежьим говном называть!
«Как вы яхту назовете...» (а с чувством юмора у кого-то проблемы %)
У меня возникает вопрос — ну почему не использовать давно проверенный в миссиях RAD6000? Типа импортозамещение что ли, все должно быть местного производства?
Почему-то сразу было понятно, что проблема с ПО.
Заголовок спойлера
«Я что-то нажала, и всё исчезло».
Значит раньше компьютеров ставили аж по 3 штуки, хотя они были огромными, а теперь можно хоть целый кластер засунуть из десятков ЭВМ, но их всего 1.
Что за фигня?
То ли полная деградация инженерной мысли, то ли пофигизм высшего порядка.

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

Это всё понятно.
И тем не менее, компьютеры за 50 лет стали меньше, легче и дешевле.
И в той же степени уменьшилась помехоустойчивость к ионизирующим излучениям.
Хотя для приличия второй бортовой они могли поставить, может аппарат даже выжил бы.
Можно заказать CPU общего назначения на старом техпроцессе, думаю линии с производством 90нм найти еще можно.
Не то что можно, а их полно, тот же TMSC даже строит новые заводы на 100+ нм. Множеству электроники за глаза такие нормы.
Вот только 90нм и радиационная стойкость не очень сочетаются. Техпроцессы общего назначения «автоматически» обеспечивают радиационную стойкость только при размерах порядка 250-300нм.

Если меньше — уже нужен специальный техпроцесс. А 250nm — это, я извиняюсь, Pentium II, прошлый век, там современные технологии в стиле «100500 слоёв абстракции мало, нужно 100500100500 слоёв» не очень-то поиспользуешь.
Да пусть в Брянск обращаются, на Кремний. Для уменьшения отбраковки кристаллов их иногда делают 1000нм. На 300нм брак до 70%.
Как и про то, что особенных мегаспецмер для радстойкости там не применили.

200 крад радицаии процессор без специальных мер не выдерживал бы.

Вы представляете последствия попадания потока тяжёлых высокоэнергетических частиц в 90-нм процессор общего назначения?
Такие частицы запросто прошивают и корпус и кристалл. Эффекты там происходят начиная с произвольной переброски состояний задетых вентилей до их пробоя и появления сквозных токов с питалова на землю. И ещё неизвестно что хуже, моментальное окирпичивание системы или каверзная ошибка в рассчётах, которая испортит данные.
Также стоит помнить о том, что в открытом космосе тепло с этой печки сбрасывать банально некуда и процессор, рассчитанный на наличие условно-бесконечной теплоёмкости среды, перегреется ещё до того как аппарат прилетит куда надо.
А если окружить компьютер толстой свинцовой бронёй?
Будет сразу и радиозащита, и теплоёмкость.
Попадая в такую плотную «защиту» высокоэнергетическая частица породит «ливень» вторичных. Может стать даже хуже.
Не сработает. Как правильно заметил VT100, после столкновения частицы с таким слоем образуется вторичный поток частиц, которые тоже вызывают дефекты в кристалле.
На самом деле свинец не обладает такой большой теплоёмкостью, как кажется. Самый эффективный способ сбрасывать тепло в вакууме — излучать его инфракрасным спектром в пространство (причём желательно в направлении противоположном цели). + к этому, аппарат будет нагревать излучение от Солнца (из-за этого их кстати заворачивают как конфеты в специальную экранирующую плёнку).
Конструкторы КА так и поступают. Теплоотводы прокладывают к специальным поверхностям или радиаторам, и аппарат в полёте светит как прожектор. Либо тепло может идти на поддержание топлива/приборов в рабочем состоянии. Но при наличии ядерной топливной ячейки это может быть не оправдано, с неё тоже тепла немало выделяется.

Помимо "а давайте запихнём побольше, чтобы было", есть множество параметров и методик для выбора рационального решения для конечной конфигурации системы. Интегрировать больше узлов в систему — это не всегда означает повышение устойчивости системы к сбоям. IAI продаёт свои решения по всему миру, главы SpaceIL выходцы из передовых технологических частей Армии Обороны Израиля, т.ч. я не сомневаюсь в их оправданном решении по поводу лишь одного центрального процессора. Составляются FMEA, SWOT как минимум. Знаю, потому что у нас работвет человек, который и был ответственен за FMEA в SpaceIL.
По-моему мнению, всё упёрлось в цену, ибо поставить процессор — это не отдать 0.3 млн долларов за штуку по прайсу, это ещё и обвязка, как электронная, так и механическая, так и термальная, а значит цена намного больше чистых 300 тыс долларов за процессор. В добавок процессор особенный по параметрам устойчивочти, что тоже внесло лепту в решение по установке лишь одной единицы.

Помимо «а давайте запихнём побольше, чтобы было
А вот передергивать не обязательно, я просто хочет заострить вопрос на ОДНОМ бортовом компьютере что для космического корабля не допустимо.
Интегрировать больше узлов в систему — это не всегда означает повышение устойчивости системы к сбоям
Это смотря как их организовать — если будут в резерве либо работать в параллель(в кластере) то как раз таки означает. Теория вероятности.
я не сомневаюсь в их оправданном решении по поводу лишь одного центрального процессора
Т.е. логику и математику заменили на „авторитетное мнение“.
Здравствуй, племя младое, незнакомое!
поставить процессор — это не отдать 0.3 млн долларов за штуку по прайсу, это ещё и обвязка, как электронная, так и механическая
Ну а теперь весь корабль пропал — и где здравый смысл?
И дело не только в вероятности выходя из строя, комп может и работать, но с ошибками, поэтому у амеров раньше 3 компа работали параллельно и верным считался результат который был посчитан большее кол-во раз.

Дело в том, что я верю в инженеров и их авторитетное мнение как людей с дестятками лет стажа из передовых отраслей промышленности в Изриале и секретных частей армии; и знаю людей, работавших в SpaceIL над FMEA, которые после работали рядом со мной и я им доверяю. С Ваших слов, простая математическая статистика "сложить параллельно два процессора, чтобы забэкапить" здесь не работает, ибо количество узлов, которые нужно добавить в систему для возможности работы всех элементов системы, усложняет её. И жаль, что так просто это не работает.
"Я не знаю были ли люди на Луне, но я верю в 400 тыс инженеров, которые трудились на благо этого дела"

В данном случае веры в специалистов оказалось недостаточно :(
Но это — опыт, хотя и недешевый.

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

Огромная разница в том, что инвестирующие в стартапы ожидают в результате получить коммерческую прибыль, а инвесторы в этот проект заранее знали, что не получат взамен ничего, кроме фоточек в твиттере.
Поэтому сравнивать 95М там и 95М тут — некорректно.
Простите, не могу удержаться: как вы яхту назовёте, так она и полетит :)
Лучше бы вы всё-таки удержались. Прочитав пару аналогичных коментариев выше и поняв, что эту тупую шутку уровня третьеклассника тут не любят.
Кстати,
как там ваш ник читается? НосГной?
Ой мамочки, сколько ярости, кажется, у кого-то критически дни? :)

Все равно, молодцы, у них хотя бы до Луны аппарат долетел а не затонул в море-океяне.

У меня осталось такое ощущение, что ЦУП просто не был готов к нештатной ситуации при посадке. «У нас сбой, что делать?! Что делать?!» Был ли там человек, который четко понимал логику работы бортовых систем и их реакцию на отдаваемые с Земли команды? Было ли моделирование нештатных ситуаций «в лабораторных условиях» и соответствующая отработка программ бортового компьютера и соответствующих команд с Земли? Я думаю что на этой работе сэкономили, положившись на то что все пройдет без ошибок.
От «последней фотографии» есть ощущение, что это рендеринг — высокочастотная часть пространственного спектра на краях картинки сильно отличается от того, что в центре, что никогда не наблюдается при реальной съемке, и как бы намекает на сглаживание результатов неадаптивной тесселяции.
Из-за особенностей аппаратуры у них «разьехалась» яркость цветовых слоёв в разных местах кадра.
Оно лечится, но вручную.
Читаю комментарии и поражаюсь самоуверенным диванным экспертам — это явно не инженеры, уж точно не системщики. Как один из программистов другого космического проэкта в Израиле, могу с уверенностью заявить, что решение задач для таких проэктов является архисложной. Если б было легко, то все делали и побывали бы уже на луне.
А в каком проекте Вы работаете?
тестирование с линией задержки связи? «нет, не слышали»
Ремарка по двигателю. Во время трансляции было такое обсуждение

34:01 — Принято решение IMU-2 не включать.
34:23 — Телеметрия вернулась. Сильно возросла скорость снижения — 47.9 м/сек, и быстро растёт. Упало ускорение по Z — 0.6. Высота 11 км.
34:52 — Скорость снижения в красной зоне, 71 м/сек, продолжает расти, высота 9140.
35:01 — До контролёров доходит, что ГДУ, возможно, не работает.
35:08 — Тем не менее, согласно телеметрии ГДУ работает нормально, давление поднялось до 16.5 бар, расход топлива идёт. Контролёр 1 — «Интересно...»
35:14 — Получена вторая картинка.
35:19 — Контролёр 2 — «Согласно [неразборчиво], ГДУ не работает.
35:24 — Контролёр 1 — »На данный момент ГДУ работает". Расход топлива продолжает идти.
35:27 — Контролёр 3 — «Посмотрите на данные акселерометров, ГДУ не работает». На этот момент скорость снижения уже 100 м/сек, высота 5600.
35:39 — Систему предлагают перезагрузить. Reset.

Моя рабочая версия событий.

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

Мне казалось, что ситуация, при которой топливо может перемешаться с газом наддува, довольно типична, а значит, должны быть приняты меры против этого, не?

Конечно. На АМС для этих целей обычно применяются надувные мешки/мембраны в баках с топливом. Из-за чего смешение компонентов с газами наддува не происходит и можно запускать двигатели и в невесомости. Но на Берешите применили другой метод, более простой, который обычно применяют на РБ и ступенях ракет. Предварительная осадка топливом двигателями малой тяги. Метод рабочий, но на осадку нужно время. Которого нет при маневрах около Луны. Также он хорошо работает только если топлива в баках много. Больше чем газа наддува. А у Берешита оставалось 76 кг топлива из где-то 400 кг в начале полета и 216 в начале спуска с орбиты спутника Луны
Я не вижу у него отдельных баков для движков малой тяги.
А вот из-за неправильного даже на короткий период соотношения компонентов движок мог поломаться.
Возможно дмт работали за счет разложения гидразина. Просто иначе в осадке топлива, что была перед основным торможением, нет смысла
Возможно для них есть мелкий промежуточный бак.
ДМТ только называются малой, реально у них тяга (суммарная) в половину тяги основного. И расход соответственно.
Одного бака мало, нужны клапана и насосы. Но бак может быть относительно небольшим, потому, что время работы в невесомости у этих двигателей небольшое.
На схеме видно, что основных топливных баков несколько (вероятно, два или три). Может быть, один/два для главного движка, и один для боковых?
Но мелких промежуточных баков там не видно.
Стандартный комплект — 4 бака. 2+2. Для симметрии.
Иллюстрация века
«променяли космос на смартфон»
Sign up to leave a comment.

Articles