<<< >>> Лунолёт-1 Программы

Мягкой посадки!

«Программа «Лунолёт-1» предназначена не только для численного моделирования манёвров космических аппаратов в непосредственной близости безатмосферных небесных тел или в качестве учебного пособия, но и как основа ряда электронных игр...»

Если эта фраза кажется вам знакомой, значит, вы держали в руках июньский номер журнала «Техника — Молодёжи» за 1985 год, в котором был напечатан фантастический рассказ Михаила Пухова «Истинная правда». Этот рассказ отличается от большинства фантастических произведений тем, что при помощи программируемого калькулятора «Электроника Б3-34» и программы для него каждый может убедиться, что автор ни на шаг не отступает от истины.

Программа «Лунолёт-1» 2010 года является репликой программы 1985 года. За 25 лет вычислительная техника изменилась до неузнаваемости; перенести программу для калькулятора без изменений в окно браузера можно, но сложно и накладно. Да и результатом переноса, по современным меркам, будет неудобно и непривычно пользоваться. Так что при переносе программы было решено сохранить только алгоритм и математическую модель. Тесты показывают, что результаты расчетов по обеим программам совпадают до восьмого знака после запятой для всех ситуаций, кроме посадки с пустым баком (новая программа в этом случае точнее считает посадочную скорость).

Управление

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

Управляется лунолёт текcтовыми командами. Команды состоят из слов и чисел, разделённых пробелами и переносами строк. Числа могут быть целыми и дробными. Дробная часть отделяется от целой части точкой. Обычно вы вводите команду, проверяете таблицу параметров, полётный журнал и вводите следующую команду. Если вы сделали ошибку, то ошибочную команду можно исправить. Программа при этом аккуратно пересчитает весь полёт с начала.

Если командное окно покраснело, значит, программа не распознала команду или вы пытаетесь ввести неправильное значение, например, отрицательную массу корабля. Исправьте ошибку, и командное окно вернется к своему нормальному виду.

Команда : (двоеточие) вставляет в журнал пустую строку, но ничего не делает с лунолётом. Она нужна, чтобы было легче сориентироваться в длинных последовательностях команд.

Большинство команд определяет характеристики корабля, луны и экипажа. Ускорение силы тяжести задаётся так: g <число>. Чем оно больше, тем труднее летать. М <число> задаёт массу корабля без топлива и окислителя. Очень важная характеристика c <число> задаёт скорость истечения продуктов сгорания из сопел двигателя. Чем больше эта величина, тем дальше, выше и быстрее полетит ракета. Пилот корабля теряет сознание, если ускорение превышает значение, заданное командой a <число>. Пока пилот без сознания, корабль летит, как свободно брошенное тело. v <число> и h <число> задают стартовые скорость и высоту. Ещё два параметра T <число> и t <число> управляют отсчётом полётного времени. Например, T 600 t 1 задаст обратный отсчёт времени от 600 секунд к нулю. T 0 t -1 будет считать время с момента старта. Прежде чем взлетать, лунолёт надо заправить командой m <число>.

Команда -- (два минуса) завершает подготовку лунолёта к старту. Можно лететь! В полёте корабль управляется командами из пары чисел: <масса> <время>. Первое число указывает, сколько топлива вы хотите сжечь, второе — сколько будет длиться маневр. После каждой команды в полётный журнал вносится очередная запись. Время можно задавать отрицательным, для лунолёта это будет означать реверс тяги: он перевернётся вверх ногами, сожжёт топливо, затем вернётся в нормальное положение. Нулевое время маневра игнорируется.

Вот пример подготовки лунолёта (в скобках команды). Ускорение силы тяжести на Луне 1.62 м/с2 (g 1.62). Масса корабля 2000 кг, плюс пилот в скафандре 150 кг (M 2150). Работает лунолёт на керосине с жидким кислородом — скорость истечения 3660 м/с (c 3660). Пилот выдерживает трёхкратную перегрузку (a 29.43). Начальные скорость и высота равны нулю (v 0 h 0). Полётные часы тоже установлены на ноль (T 0 t -1). В баках 400 кг топлива и окислителя (m 400). Корабль готов к взлёту (--). Вся подготовка вместе:

g 1.62
M 2150
c 3660
a 29.43
v 0 h 0
T 0 t -1
m 400
--


Попробуем полетать. Взлёт — 20 килограмм за 10 секунд (20 10) плавно поднимают лунолёт на высоту 62.5 метров. Скорость 12.5 м/c. Через 7.7 секунд свободного полёта (0 7.7) лунолёт оказывается в высшей точке траектории на высоте почти 111 метров. Ещё 8 секунд падения (0 8). Высота 59.2 метра, скорость 12.9 м/c вниз. Торможение (17 8). Высота 2.3 метра, скорость -1.3 м/c. Последний манёвр (4 3). Посадка. Посадочная скорость -0.4 м/с, в баках осталось 359 килограмм топлива, время полёта 36 секунд с небольшим. Полёт окончен:

20 10
0 7.7
0 8
17 8
4 3

Аварийные ситуации

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

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

Ограничения

Как вы уже знаете, алгоритм программы не изменился с 1985 года. Из-за малого объема памяти калькуляторов оригинальная математическая модель была упрощена. Программа считает движение лунолёта во время манёвра равноускоренным. В действительности это не так: по мере расходования топлива и окислителя машина становится легче и ускорение растёт. Чтобы избежать больших ошибок, ограничьте расход топлива за один манёвр до 5% массы корабля. Для лунолёта это около 100–200 кг, в зависимости от массы топлива в баках.

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