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

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

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

Программа аналогична «Лунолёту-3». Изменения внесены в расчёт движения космического корабля и в управление. Цель — упрощение управления, снятие ограничений на параметры манёвров, увеличение точности модели.

Управление

«Лунолёт-3.1» построен на стандартной платформе: сверху параметры луны и лунолёта, слева командное окно, справа полётный журнал.

Команды вводятся в командное окно и состоят из слов и чисел. Дробная часть чисел отделяется точкой. Полёт пересчитывается после любого изменения в командном окне. Красное командное окно означает, что есть непонятная команда.

Команда : (двоеточие) вставляет в журнал пустую строку.

Параметры модели:

e <число> —  допустимая ошибка в секунду (точность моделирования);
n <число> —  число шагов моделирования на одну команду;
R <число> —  радиус небесного тела в метрах;
g <число> —  ускорение силы тяжести на поверхности в м/с2;
M <число> —  сухая масса лунолёта в килограммах;
c <число> —  скорость истечения продуктов сгорания из двигателя в м/с;
v <число> —  стартовая вертикальная скорость в м/с;
h <число> —  стартовая высота в метрах;
u <число> —  стартовая горизонтальная скорость в м/с;
x <число> —  стартовая координата в метрах;
m <число> —  масса топлива и окислителя в килограммах.

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

Управление кораблём отличается от управления «Лунолётом-3». Там задавалась масса топлива, которое надо израсходовать за манёвр, здесь задаётся ускорение. Те, кто летал на «исторических» лунолётах, знают, что для получения максимального ускорения требовалось подбирать расход топлива под время манёвра или наоборот. Почему бы не поручить нудную работу компьютеру? Система управления двигателем сама рассчитает расход топлива. Тем более, что темп расхода топлива меняется во время манёвра: сжигая топливо, корабль становится легче, следовательно, надо уменьшать расход топлива для сохранения заданного реактивного ускорения (из-за этого в старых лунолётах был ограничен расход топлива за манёвр).

Скорости и координаты при моделировании полёта вычисляются приближённо. Ошибки вычислений контролируются при помощи параметра e. Новые координаты и скорости будут вычислены с точностью до e * <время манёвра>. При последовательных манёврах ошибка накапливается. По умолчанию точность равна одной миллиардной (e 1e-9). Например, после миллиона секунд полётного времени (это одиннадцать с половиной суток) координаты будут рассчитываться с точностью до одного миллиметра, а скорости — с точностью до одного миллиметра в секунду.

Для получения требуемой точности программа разбивает манёвр на короткие шаги. Число шагов растёт с ростом длительности манёвра и с уменьшением ошибки. Длительный манёвр и маленькая ошибка заставят программу считать сколь угодно долго (время счёта пропорционально числу шагов). Параметр n ограничивает число шагов при расчёте манёвра. Если программе не хватит указанного числа шагов, то она прервёт манёвр с сообщением «мало шагов для получения заданной точности». Для продолжения полёта следует или разбить манёвр на несколько манёвров, или увеличить число шагов n, или снизить точность.

Автоматический контроль за точностью позволяет снять (или почти снять) ограничения на манёвр. Вы можете за раз сжечь всё топливо или сделать десяток витков вокруг луны. Если вы разделите манёвр на несколько частей, то это не приведёт к изменению результатов расчётов.

Особые ситуации

Эта программа не контролирует перегрузку, полагаясь на вас.

Про сообщение «мало шагов для получения заданной точности» вы уже знаете. Остаётся добавить, что при посадке вероятность его получить увеличивается. Дело в том, что посадочный блок методом двоичного поиска пытается посадить лунолёт в приповерхностный слой толщиной 0.02 миллиметра. На это может уйти большое количество шагов.

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

Если топлива на манёвр не хватит, то лунолёт отработает остаток топлива в заданном режиме. Двигатель затем выключится, программа напечатает «бак пуст». Остаток времени до конца манёвра пройдет в свободном полёте.

При касании поверхности автомат выключает двигатель. В сообщении о посадке выводится полная скорость. Например, «посадка со скоростью 1.800 м/с».

Ограничения

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