Прогулка по лунолётам. 4 - Вблизи и на орбите

На прошлых прогулках (первая, вторая, третья) мы опробовали расчетную модель и графическую основу для нашего интерактивного симулятора полётов вблизи Луны и других безатмосферных планет. Однако, данная модель не учитывала ни изменение ускорения свободного падения при наборе высоты, ни сферическую форму планеты, что не позволяло нам сделать главный шаг - набрать первую космическую скорость и выйти в свободный полёт на лунной орбите.

Пришла пора усовершенствовать математику полёта и собрать наш симулятор из трех частей: основного цикла "реального" времени для взаимодействия с пилотом лунолёта, расчетного блока и блока вывода графической информации. Для работы нам понадобится ПМК типа HP 50g/49 (с небольшими переделками программа пойдет и на 48g) или его эмулятор, например, Debug4x.

Итак, наш лунолёт становится способным совершать орбитальные полёты. Вот как это выглядит в понятиях используемой математической модели.

Движение лунолёта характеризуется вертикальной "u" и горизонтальной "v" скоростями, тяга определяется вектором ускорения "a", угол "альфа" которого задаётся как отклонение от вертикали (прямая между лунолётом и центром планеты). Местонахождение определяется расстоянием "r" от центра планеты (высота "h" является разностью этого расстояния и радуса планеты) и углом отклонения "гамма" от места старта "гамма-ноль". Как вы могли заметить, мы перешли к расчетам в полярной системе координат. Пройденная дистанция "L" рассчитывается как сумма пройденных участков пути (наш симулятор рассчитывает манёвр ежесекундно)

Тем не менее, при полёте вблизи поверхности на небольшие расстояния и вертикальных полетах расчеты позволяют использовать привычную и удобную в этих случаях декартову систему координат. Координата "x" вычисляется по приведенной формуле даже более точно с учетом сферической поверхности. Привычный набор параметров: высота, координата "x", скорости, позволяют однозначно определить положение корабля и направление его движения.

Для орбитальных полётов удобнее использовать угол отклонения "гамма" и высоту. Виток вокруг планеты будет означать изменение "гаммы" от нуля до 360°.

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

Чтобы начать полет на симуляторе загружаем в ПМК программу "Лунолёт" (Lunar Ship) из прикрепленного внизу файла.

Параметры и управление

После заставки программа показывает горячие клавиши, доступные пилоту для управления лунолётом.

  • Стрелки вверх и вниз служат для управления ускорением. Одно нажатие клавиши соответствует изменению ускорения на 1 м/сек2. Клавишей "F2" для более точного манёвра можно изменять приращение с 1 до 0,5 м/сек2 и обратно. Клавишей "F6" можно мгновенно выключить двигатель.
  • Вектор тяги задаётся углом "альфа" в пределах [-180°, 180°]. Изначально "альфа" равна нулю (тяга направлена вверх по вертикали). Для изменения угла используются стрелки вправо и влево. Изменение цикличное: угол -190° становится 170° и наоборот. Шаг изменения - 10°. Аналогичным образом клавишей "F1" можно переключать шаг с 10° до 10° и обратно.
  • Клавиша "J" ("var") делает паузу в игре и рисует на экране траекторию полета в орбитальном масштабе. Если вы будете летать вблизи поверхности на малые расстояния, то, разумеется, кроме Луны на картинке ничего видно не будет.
  • Клавиша "N" запускает новую игру (дожидаться приземления необязательно), клавиша "Q" - выход из программы.

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

  • g - ускорение свободного падения на поверхности планеты, м/сек2
  • R - радиус планеты, м
  • c - скорость истечения топлива, м/сек
  • LS - жизнеобеспечение корабля в секундах
  • A - предельное допустимое ускорение, м/сек2. В рассказе С. Лема "Дознание" из цикла о пилоте Пирксе робот сумел сорвать этот предохранитель и вывести корабль на запредельные перегрузки, подвергая смертельному риску экипаж людей. Наш лунолёт не позволяет такие шалости.
  • Ms - "сухая" масса корабля, включая экипаж, кг
  • Mf - масса топлива, кг
  • L/X - переключатель для режима орбитального полёта и полетов вблизи планеты. В первом случае (значение "1") выводится информация о пройденной дистанции L, во втором ("0") - информация о текущей координате "x" на поверхности.

Чтобы изменить параметры, стрелками подведите курсор к полю, введите новое значение и нажмите "Ввод" (Enter).

В кресле пилота

Итак, корабль на старте. Посмотрим, какую бортовую информацию даёт нам симулятор. Координатная сетка показывает масштаб в метрах. При движении лунолёта масштаб будет динамически меняться. В левом ряду расположились все основные цифры телеметрии.

  • H - текущая высота в метрах
  • L (или "X", если выбран это режим) - пройденная дистанция или текущая координата, также в метрах
  • γ - "гамма" - угол отклонения от начальной вертикали, градусы
  • a - текущее ускорение, м/сек2
  • α - "альфа" - угол вектора тяги, градусы
  • V - горизонтальная скорость
  • U - вертикальная скорость
  • LS - запас жизнеобеспечения, секунды
  • F - запас топлива, кг

Теперь обратите внимание на кружок, разделяющий ряд на блок координат и остальную телеметрию. Кружок показывает Луну, а точка - текущее положение корабля согласно углу "гамма" (высота в расчет не принимается). По мере увеличения "гаммы" точка будет вырисовываться в дугу, потом в окружность. Окружность будет означать выполнение полного витка вокруг планеты. Для детального просмотра орбиты существует соответствующий режим, войти в который можно нажав кнопку "J".

Можно не трогая горизонтальных стрелок немедленно перейти в вертикальный полёт и попробовать себя в роли Саши Перепёлкина: разогнаться, набрать высоту около 10 км, а потом совершить мягкую посадку в той же точке.

Можно потренироваться, повторив выполнение задания из "Лунолет-2", совершив баллистический полёт на 250 километров. Для этого, правда, лучше нажать "N" (новая игра) и перейти в режим координат "X".

Но мы сразу попробуем стартовать на орбиту. Ускоряемся и меняем угол. Рекомендуем отклоняться вправо, так как полет влево будет мешать наблюдению за цифрами.

Разгоняемся

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

Так и есть, эллипс вынес на Луну! При таких скоростях от корабля и пилота не осталось и дыма...

Жмем "J", смотрим на орбиту - вот она во всей красе...

Итак, первый полет завершился "сваливанием" на эллипс и падением корабля на поверхность планеты с космической скоростью.

Ваша задача - не повторить ошибки и попытаться совершить круговой полёт вокруг Луны при заданных начальных параметрах (3500 кг топлива, 2250 кг сухой массы корабля). В пошаговом режиме с карандашом и миллиметровкой в уютном кабинете редакции КЭИ - это одно. Пришло время проверить, возможно ли это в суровых условиях динамического полёта.

File attachments: 
AttachmentSize
Binary Data lunar_ship_03.s15.84 KB