02. На Луну на Аполлоне. Часть 2: Поворот не туда
Итак, освежив в памяти математические формулы для численного моделирования космических полётов, я зарисовал блок-схему алгоритма и принялся за реализацию программы на языке КПК НР-42S.
Дело продвигалось быстро, за пару вечеров я написал весь код, причём, за счёт более богатого функционала операторов обращения с регистрами, он получился даже короче «классических» 98 шагов (это был максимальный размер программ для самого распространенного в середине 80-х советского ПМК Электроника Б3-34. Мой МК-61 был следующей моделью, с размером программной памяти уже в 105 шагов). Потом отладил программу. Как обычно, поначалу вылезали разные баги (по разному работали команды переходов по условию и ещё несколько мелочей), но довольно быстро всё заработало, как надо. Скорость расчётов была настолько высока, что после нескольких прогонов появилась идея повысить точность расчётов. В результате, вместо приближённых формул, которые использовались в программах для старых советских ПМК, интегрирование траектории теперь выполнялось с постоянным шагом в 1 секунду.
Потом, вспомнив эталонный во всех отношениях «Орбитер», принялся щедро оснащать программу отдельными процедурами, которые считали и выводили на индикатор разную полезную информацию типа (высоты апо- и пери-центра, период орбиты, время до цели и т.п). Лёгкость, с которой всё это реализовывалось, не могла не радовать.
Воплощая мои хотелки, программа обрастала дополнительными переменными и, быстро перевалив за 200 строк, продолжала жадно расти в объёме.
Поначалу всё было здорово, но постепенно что-то определённо становилось “не так”.
Все переменные уже не помещались в одну строку, интерфейс программы начал терять в наглядности. То же было и с дополнительными процедурами - для их вызова приходилось всё дальше углубляться в меню. И в какой-то момент, вместо восторгов я стал ощущать явную неудовлетворённость.
Становилось ясно, что для точных расчётов в нынешние времена гораздо удобнее использовать полноценный компьютер, с клавиатурой и дисплеем. БОльшая точность требует более объемного кода, а даже банальный ввод программы в память с клавиатуры ПМК, когда эта программа превышает сотню шагов, превращается в утомительное занятие. Кроме того, одно дело разобрать математику расчётов, реализованную в виде «Обратной Польской Нотации» в 15-20 шагов, когда вся программа умещается перед глазами, другое дело, когда это цепочки уже за сотню операций. В 80е - 90е, использовать обратную нотацию имело смысл - это повышало быстродействие тогдашних медленных процессоров. Но сейчас для программ такого объёма гораздо удобнее и нагляднее стандартный математический вид.
Да и вообще, дальнейшая логика модификации программы и повышение точности расчётов естественно приводила к режиму «полёта в реальном времени» - а это на калькуляторе с экраном в две строки делать не сильно интересно получается… Дело в том, что при полёте на современных симуляторах ты, как правило, ничего не считаешь. За тебя всё делают разнообразные MFD (Многофункциональные дисплеи). Тебе заранее подсказывают, сколько осталось до апо- или пери-центра, куда развернуться, как долго включать двигатель, как меняется высота орбиты, где будет находится цель и т.д и т.п. Конечно, когда ты летишь, тебе не до расчётов - нужно успеть вовремя сделать то, что нужно…
Но ведь главная «фишка» тех старых «космических» программ для ПМК заключалась именно в том, что они, как сейчас принято говорить, были «пошаговые»! После каждого манёвра время «останавливалось», и ты имел возможность спокойно подумать, что делать дальше, «в следующее мгновение». И тут важно было именно понимание физики процессов. У тебя не было MFD, перед глазами всегда был только один единственный индикатор, но вся необходимая информация сидела в регистрах, и ты мог (и должен был!) сам разделить, к примеру, расстояние на скорость, чтобы оценить время, или подобрать расход топлива, или величину тормозного импульса и т.д.
А повышая точность симуляции, неизбежно следовало поставить вопрос о том, какая степень точности необходима и достаточна? Я ведь не собирался запускать в космос реальную ракету. Мне не нужны были точные расчёты, мне вполне достаточна была упрощённая математическая модель. Модель, реалистичная на качественном уровне, «в обвязке» игровой программы, позволявшая пролететь путь Аполлона с орбиты на поверхность Луны и обратно с поверхности, до стыковки с командным модулем на орбите.
И тут до меня дошло, что вся эта мощность продвинутого американца была явно избыточна для моих целей. Ведь с упрощённой моделью расчётов в «пошаговом» режиме, прекрасно справлялись и старые советские ПМК, обходясь программами в 98 шагов и 14 регистрами с данными!
Восторг и восхищение возможностями НР-42 никуда не делись, машинка классная, а для тех лет - просто фантастическая по возможностям, но… После того, как программа для моделирования орбитальных полётов на мощном американском ПМК была написана и протестирована, я пришёл к выводу, который оказался удивительным для меня самого. На самом деле, для моих задач скромный советский МК-61 оказывается вполне подходящим!
В итоге, к концу недели я откладываю в сторону “американца” и пересаживаюсь на борт аскетичного ПМК Электроника МК-61…
Заголовки исправлены, продолжайте в том же духе.
События не всегда подконтрольны нам. Но мы всегда можем контролировать свое понимание этих событий и свою реакцию на них. "Iuppiter iratus ergo nefas".
Фу, это под силу только специалисту.
С уважением
Глебов Иван Тихонович
А почему?
Что ж, полёт нормальный, хотя мне показалось, или эта часть короче?
Он, видно, в ссоре с головою.
Видно, сам себе он враг.
Надо ж выдумать такое...
Во дурак!
Спасибо огромное, Сирена!
глаголом жги сердца людей...
Иван, моё почтение - вам спасибо за прочтение!
глаголом жги сердца людей...
Да где ж взять столько керосина??!!
глаголом жги сердца людей...