Техника - молодёжи 1987-05, страница 53

Техника - молодёжи 1987-05, страница 53

Консультант раздела —-Герой Советского Союза, летчик-космонавт СССР Ю. Н. Глазков.

I _/150 Vit (A Uj-t V

М-У8П > А-Уу-б;

НЕШ

НЕШ

.....

да

fi—p

V. _ E>co$y+G- .w м

vi+r vi+1

ные видеосообщения о положении грави-лета в пространстве. Например, такие (они изображены на блок-схеме): 1 ВП 50 Fx2 Fx П9 Сх ИП9 FABT точка К — ВП /—/ 54 П1 («Гравилет вблизи звезды») ВП /—/ 10 П2 («Гравилет на подходе к астероиду») ВП 9 ПЗ («Гравилет за орбитой астероида»). Черточка изображает космический аппарат, буква Е — звезду, 0 — астероид. Конечно, ничто не мешает использовать любые другие видеосообщения; скажем, если в приведенной последовательности заменить К — на КНОП, звезда изобразится единичкой, а если эту команду вообще опустить — тройкой. Можно использовать и подходящие словесные сообщения.

Очередь за числовыми величинами (обозначения те же, что и на блок-схеме). В регистр 5 засылается количество градусов в радиане: 180 FJI4- (57,29578) П5. Остальные константы характеризуют планетную систему, куда нас занесло: (радиус звезды R0 в м) П6 (гравитационная постоянная звезды G0 в м32) П4 (радиус орбиты астероида R в м) ПД (масштаб 1, определяющий смену видеосообщений, в м) П8. Удобно задавать в качестве масштаба половину радиуса орбиты: ИПД 2 П8; тогда на меньших расстояниях от звезды будет выдаваться первое видеосообщение, затем второе, а при выходе за пределы орбиты — третье.

Остается ввести начальные координаты и скорости самого гравилета: (расстояние от центра звезды г в м) ПА (угол отклонения У от прямой, соединяющей звезду и астероид, в градусах) ПС (вертикальная, точнее, радиальная скорость и в м/с) ПВ (горизонтальная, точнее, трансверсальная скорость V в м/с) ПО. Трансверсальная скорость задается в неподвижной системе координат. Положительным для нее и угловой координаты считается направление по часовой стрелке.

Переключатель Р—Г при полетах на гравилете устанавливается в положение Г. Работа с программой начинается командой В/О С/П (в регистре X может находиться любое неотрицательное число). При останове на индикаторе появляется видеосообщение, показывающее, где в данный момент находится гравилет. В регистр У выводится его расстояние от орбиты астероида, оно вызывается командой ХУ. При выходе корабля за пределы области, перекрываемой видеосообщениями (когда г больше 31), видеосообщение не выводится, на индикаторе оказывается содержимое регистров 4, 5, 6 и т. д. Если корабль в результате неудачного маневра вонзается в звезду (г меньше R0), на индикаторе появляется ЕГГОГ. Для задания маневра надо набрать время t в секундах, нажать ПП, набрать требуемый коэффициент гравитации К и нажать С/П. Если К = 1, то корабль заданное время летит по обычной гиперболической или эллиптической орбите, как в программе «Кеплер» (№2 за 1986 г.). Если К = 0, гравитация на него не действует, и он летит по прямой (конечно, в системе координат, связанной с движущимся астероидом, она вы

глядит очень даже кривой). При отрицательных значениях К притяжение сменяется отталкиванием. С увеличением абсолютной величины К сила притяжения (отталкивания) возрастает в соответствующее число раз.

Пройдемся одновременно по блок-схеме программы и ее воплощению на языке Б3-34. Начнем «от печки» — с блока ввода t и К. Время маневра запоминается в рабочем регистре 9, а введенное значение К умножается на гравитационную постоянную звезды, и результат записывается в регистр 7 (первая формула на блок-схеме). В закон тяготения, как известно, входит произведение гравитационных масс взаимодействующих тел (а гравитационная постоянная объекта пропорциональна его массе), поэтому безразлично, какую из них менять, а со звездой это проделать математически гораздо проще. Затем вычисляется угловая скорость астероида (вторая формула на блок-схеме и команды по адресам 19—26 в программе). Эта величина, естественно, от наших маневров никак не зависит (под знаком радикала, заметьте, фигурирует истинная гравитационная постоянная звезды G0), поэтому можно было бы рассчитать ее заранее и записать в регистр вместо радиуса орбиты; так, кстати, и делалось в программе «Кеплер». Но стоит ли вычислять что-то вручную, когда это можно поручить ЭВМ?

Далее приближенно определяется угловое расстояние сС, пройденное гравиле-том за заданное время (третья формула на блок-схеме и команды по адресам 30—43). Это единственное использованное во всем алгоритме приближенное выражение. Чтобы не сделать большой ошибки, приходится ограничивать время маневра: задавать его в 5—10 раз меньше характерных времен r/u и r/v — они вычисляются соответственно командами ИПА ИПВ -f- и ИПА НПО Индексом i, кстати, на блок-схеме помечены значения всех переменных на текущем шаге. Вычисленный угол записывается в рабочий регистр 9 (время больше нам не понадобится), причем с обратным знаком — так удобнее.

Затем вычисляется новое угловое расстояние между гравилетом и астероидом (четвертая формула на блок-схеме). К старому прибавляется угол, пройденный самим гравилетом, а из суммы вычитается угол, пройденный астероидом. В программе эта короткая формула разбросана по адресам 18, 27—29 и 44—45 — это позволяет наиболее полно использовать стек.

После того как угол определен, наступает очередь других переменных. Их значения рассчитываются по формулам, хорошо известным из небесной механики. Для начала вычисляется и «проталкивается» до конца стека удельный момент количества движения гравилета М (46— 50). Эта величина, кстати, остается постоянной при любых маневрах, поэтому гравилет всегда может вернуться на тот астероид, откуда он стартовал (вот он, единственный и главный шанс наших героев!), зато не способен состыковаться

50