Блог портала New Author

02. На Луну на Аполлоне. Часть 2: Поворот не туда

Аватар пользователя сергей.кержаков
Рейтинг:
1

Итак, освежив в памяти математические формулы для численного моделирования космических полётов, я зарисовал блок-схему алгоритма и принялся за реализацию программы на языке КПК НР-42S.

Дело продвигалось быстро, за пару вечеров я написал весь код, причём, за счёт более богатого функционала операторов обращения с регистрами, он получился даже короче «классических» 98 шагов (это был максимальный размер программ для самого распространенного в середине 80-х советского ПМК Электроника Б3-34. Мой МК-61 был следующей моделью, с размером программной памяти уже в 105 шагов). Потом отладил программу. Как обычно, поначалу вылезали разные баги (по разному работали команды переходов по условию и ещё несколько мелочей), но довольно быстро всё заработало, как надо. Скорость расчётов была настолько высока, что после нескольких прогонов появилась идея повысить точность расчётов. В результате, вместо приближённых формул, которые использовались в программах для старых советских ПМК, интегрирование траектории теперь выполнялось с постоянным шагом в 1 секунду.

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

Воплощая мои хотелки, программа обрастала дополнительными переменными и, быстро перевалив за 200 строк, продолжала жадно расти в объёме.

Поначалу всё было здорово, но постепенно что-то определённо становилось “не так”.

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

Становилось ясно, что для точных расчётов в нынешние времена гораздо удобнее использовать полноценный компьютер, с клавиатурой и дисплеем. БОльшая точность требует более объемного кода, а даже банальный ввод программы в память с клавиатуры ПМК, когда эта программа превышает сотню шагов, превращается в утомительное занятие. Кроме того, одно дело разобрать математику расчётов, реализованную в виде «Обратной Польской Нотации» в 15-20 шагов, когда вся программа умещается перед глазами, другое дело, когда это цепочки уже за сотню операций. В 80е - 90е, использовать обратную нотацию имело смысл - это повышало быстродействие тогдашних медленных процессоров. Но сейчас для программ такого объёма гораздо удобнее и нагляднее стандартный математический вид.

Да и вообще, дальнейшая логика модификации программы и повышение точности расчётов естественно приводила к режиму «полёта в реальном времени» - а это на калькуляторе с экраном в две строки делать не сильно интересно получается… Дело в том, что при полёте на современных симуляторах ты, как правило, ничего не считаешь. За тебя всё делают разнообразные MFD (Многофункциональные дисплеи). Тебе заранее подсказывают, сколько осталось до апо- или пери-центра, куда развернуться, как долго включать двигатель, как меняется высота орбиты, где будет находится цель и т.д и т.п. Конечно, когда ты летишь, тебе не до расчётов - нужно успеть вовремя сделать то, что нужно…

Но ведь главная «фишка» тех старых «космических» программ для ПМК заключалась именно в том, что они, как сейчас принято говорить, были «пошаговые»! После каждого манёвра время «останавливалось», и ты имел возможность спокойно подумать, что делать дальше, «в следующее мгновение». И тут важно было именно понимание физики процессов. У тебя не было MFD, перед глазами всегда был только один единственный индикатор, но вся необходимая информация сидела в регистрах, и ты мог (и должен был!) сам разделить, к примеру, расстояние на скорость, чтобы оценить время, или подобрать расход топлива, или величину тормозного импульса и т.д.

А повышая точность симуляции, неизбежно следовало поставить вопрос о том, какая степень точности необходима и достаточна? Я ведь не собирался запускать в космос реальную ракету. Мне не нужны были точные расчёты, мне вполне достаточна была упрощённая математическая модель. Модель, реалистичная на качественном уровне, «в обвязке» игровой программы, позволявшая пролететь путь Аполлона с орбиты на поверхность Луны и обратно с поверхности, до стыковки с командным модулем на орбите.

И тут до меня дошло, что вся эта мощность продвинутого американца была явно избыточна для моих целей. Ведь с упрощённой моделью расчётов в «пошаговом» режиме, прекрасно справлялись и старые советские ПМК, обходясь программами в 98 шагов и 14 регистрами с данными!

Восторг и восхищение возможностями НР-42 никуда не делись, машинка классная, а для тех лет - просто фантастическая по возможностям, но… После того, как программа для моделирования орбитальных полётов на мощном американском ПМК была написана и протестирована, я пришёл к выводу, который оказался удивительным для меня самого. На самом деле, для моих задач скромный советский МК-61 оказывается вполне подходящим!

В итоге, к концу недели я откладываю в сторону “американца” и пересаживаюсь на борт аскетичного ПМК Электроника МК-61…

Рейтинг:
1
СИРена в Пнд, 26/07/2021 - 21:54
Аватар пользователя СИРена

Заголовки исправлены, продолжайте в том же духе.

__________________________________

События не всегда подконтрольны нам. Но мы всегда можем контролировать свое понимание этих событий и свою реакцию на них. "Iuppiter iratus ergo nefas".

git55 в Втр, 27/07/2021 - 08:44
Аватар пользователя git55

Фу, это под силу только специалисту. Smile
С уважением

__________________________________

Глебов Иван Тихонович

Reactor в Втр, 27/07/2021 - 13:11
Аватар пользователя Reactor

Я ведь не собирался запускать в космос реальную ракету

А почему? Большая улыбка
Что ж, полёт нормальный, хотя мне показалось, или эта часть короче?

__________________________________

Он, видно, в ссоре с головою.
Видно, сам себе он враг.
Надо ж выдумать такое...
Во дурак!

сергей.кержаков в Втр, 27/07/2021 - 15:49
Аватар пользователя сергей.кержаков

Заголовки исправлены, продолжайте в том же духе.

Спасибо огромное, Сирена!

__________________________________

глаголом жги сердца людей...

сергей.кержаков в ср, 28/07/2021 - 03:06
Аватар пользователя сергей.кержаков

Фу, это под силу только специалисту.
С уважением

Иван, моё почтение - вам спасибо за прочтение!

__________________________________

глаголом жги сердца людей...

сергей.кержаков в ср, 28/07/2021 - 03:08
Аватар пользователя сергей.кержаков

Я ведь не собирался запускать в космос реальную ракету
А почему?
Что ж, полёт нормальный, хотя мне показалось, или эта часть короче?

Да где ж взять столько керосина??!!
Большая улыбка

__________________________________

глаголом жги сердца людей...