В марте этого года в РУДН в рамках недели высоких технологий состоялась виртуальная экспедиция «Посадка на Марс». По сути это было больше похоже на олимпиаду — команды школьников в специальной программе задавали начальные параметры для аппарата, который должен был совершить мягкую посадку на Марс:



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

Постановка задачи


Информацию о том, как работает программа, можно получить по открытым источникам. В передаче ТВ Роскосмоса достаточно хорошо виден ее интерфейс:



А на сайте школы №2123 г. Москвы есть отчет о подобном мероприятии с фотографией постановки задачи. Фотография там не очень, но текст, к счастью, можно разобрать:
  • Космический аппарат входит в атмосферу Марса с начальной скоростью 6 км/с. Условная граница атмосферы — 100 км.
  • Для управления доступны два параметра — аэродинамическое качество и траекторный угол входа в атмосферу.
  • Задача: затормозить аппарат в атмосфере так, чтобы при раскрытии парашюта на финальном этапе посадки его скорость была минимальна.


Небольшой предварительный ликбез


Траекторный угол — это угол между вектором скорости космического аппарата и местным горизонтом планеты. Чем меньше траекторный угол, тем более полого будет входить в атмосферу аппарат. При траекторном угле 0° аппарат находится на круговой орбите, а при 90° — падает на планету вертикально.
Аэродинамическое качество — это отношение подъемной силы к аэродинамическому сопротивлению летательного аппарата. Говоря простыми словами, если самолет с выключенным двигателем пролетает 10 км, при этом снижаясь на 5, то его аэродинамическое качество будет равно двум. У птиц оно обычно в районе 10, парапланы, в зависимости от класса, могут иметь аэродинамическое качество 7-10, дельтапланы — 17-20, а лучшие планеры в спокойном воздухе могут пролететь больше 50 км на каждый потерянный километр высоты.
Аэродинамическое качество достаточно сложный параметр, например, оно зависит от угла атаки аппарата:



Угол атаки: угол между направлением движения аппарата и его специально выбранной осью. Если мы говорим об угле атаки крыла, то такой осью будет его хорда, а для нашего случая космического аппарата это будет его строительная ось.

Выбор аппарата


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

Формирование нужной орбиты


В Orbiter есть встроенный редактор сценариев, который вызывается по нажатию Ctrl-F4:



Получить аппарат на орбите Марса можно несколькими способами. Можно открыть сценарий с любым аппаратом на орбите Марса, если он у вас есть. Можно создать новый аппарат или переместить на орбиту Марса существующий. У меня уже был сценарий, так проще всего:



Редактор сценариев позволяет регулировать все элементы орбиты, но получить нужную орбиту, редактируя их только вручную, очень сложно. Мы пойдем гораздо более простым путем. Для начала, переведем аппарат на круговую орбиту над экватором Марса. То, что орбита круговая, означает, что ее эксцентриситет будет нулевым, а для того, чтобы она проходила над экватором, нужно обнулить наклонение орбиты. Высоту орбиты установим в районе 150 км, подгоняя параметр большой полуоси:



Получилось:



Мы находимся в очень хорошем месте орбиты — недавно пересекли линию терминатора. Если мы войдем в атмосферу в районе этой точки, то у нас будет целое освещенное полушарие, чтобы удобно тормозить при дневном свете.
Следующая задача — получить скорость в районе 6 км/с. Для этого мы начинаем разгоняться:



Разгон занимает время, мы уходим с окрестностей перицентра. Поэтому в редакторе отматываем время назад до точки, когда до перицентра останется примерно минута, и повторяем разгон. Проверяем скорость, переместившись в редакторе в район перицентра — 6 км/с, как мы и хотели:



А теперь перемещаемся во времени на два часа назад, чтобы можно было более эффективно менять параметры орбиты:



Все, задача решена. Сохраняем сценарий.

Формирование нужных аэродинамических свойств аппарата


Следующая наша задача — изменить параметры ПТК НП, чтобы его аэродинамическое качество регулировалось в сравнимом с исходной программой диапазоне (0-1,2). Для этого придется лезть в конфигурационные файлы аддона. Аддон ПТК НП требует другой аддон — spacecraft3.dll. Это достаточно продвинутая нотация для сравнительно простого создания сложных аппаратов с аэродинамикой и прочими особенностями. К счастью, в сообществе есть обучающие материалы. Читаем их и понимаем, что нам нужен какой-то простой способ менять аэродинамическое качество. Один из вариантов — попробовать поменять массу аппарата. По идее, изменение массы должно изменить силы, действующие на тело, и, например, если мы сделаем наш корабль легче, то небольшие, установленные в файле конфигурации, крылья будут легче его поднимать. Меняем массу, проверяем — не работает.
Вторая идея — увеличить управляющее воздействие триммеров. Дело в том, что в модели корабля есть небольшие невидимые триммеры. Обтекающая их атмосфера создает силу, которая отклоняет корабль, выводя его на ненулевой угол атаки. Если мы увеличим их площадь, то и сила, отклоняющая корабль, увеличится. Проверяем:



Как мы измерим подъемную силу? Есть хороший аддон Aerobrake MFD, который на лету считает аэродинамическое качество, да вот беда — он не работает с аппаратами, сделанными при помощи spacecraft3.dll. Придется измерять ее другим способом. Для этого воспользуемся готовым сценарием «Посадка» из аддона ПТК НП и посмотрим силы, действующие на аппарат по Ctrl-F9:


D (Drag) — аэродинамическое сопротивление.
G (Gravity) — сила притяжения.
F (Force) — равнодействующая.

Опять не везет — подъемная сила прямо не показана. Но мы можем определить ее косвенно, потому что равнодействующая является суммой всех сил действующих на тело. Для упрощения задачи измерим подъемную силу, когда векторы равнодействующей и аэродинамического сопротивления совпадут:



Получается несложная геометрическая задача:



Подъемная сила по формуле Пифагора будет равна sqr(40*40+83*83)=95. 95/73=1,3 значит, мы подобрали подходящую площадь триммеров.

Смена аппарата в сценарии


Ну а тут уже просто. По аналогии со сценариями, где есть ПТК НП, открываем сохраненный нами сценарий с правильной орбитой и меняем Delta-glider на ПТК НП, заодно подправим топливо до полного бака:



Все, мы готовы для того, чтобы тренироваться.

Играем


Для игры нам потребуется:


В сценарии мы управляем траекторным углом, меняя высоту перицентра. Проще всего это сделать, повернув корабль «влево» относительно вектора орбитальной скорости и дать ипульс маршевыми двигателями:



К сожалению, в Orbiter нет средств для непосредственного измерения траекторного угла. Вместо этого предлагаю ориентироваться на параметр высоты перицентра. Чем он меньше, тем более крутым будет вход в атмосферу:



Перед входом в атмосферу нужно отстрелить кабель-мачту кнопкой K и сбросить агрегатный отсек кнопкой J:



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



На высоте ~5 км сбрасываем люк парашютного отсека кнопкой J и раскрываем тормозной парашют кнопкой K. Затем сбрасываем теплозащитный щит кнопкой J и выпускаем шасси кнопкой G. Три купола основных парашютов раскроются самостоятельно, когда скорость станет допустимой. На высоте 100-300 м включаем посадочные двигатели кнопкой Num + и гасим скорость перед посадкой.



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



Эпилог


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

По тегу Orbiter другие публикации серии, от сценариев где можно просто смотреть, не прикасаясь к управлению, до сложных полетов.

Комментарии (3)


  1. gionet
    08.06.2015 11:38
    +2

    Windows XP
    Жив, курилка!


    1. lozga Автор
      08.06.2015 21:33
      +2

      Не сломалось — не чини. Плюс, у меня железо старое — WiFi-адаптер как точка доступа работает, а драйвера нормальные на него только на XP. И не было еще игры, которую бы сильно хотелось, но она бы не запустилась. В какой-то момент уже стало любопытно — сколько еще система проживет?


      1. gionet
        09.06.2015 01:16

        Дык я только за, я радуюсь, ностальгирую!