You are here
"Аполлон" на HP-42s
Итак, освежив в памяти математические формулы для численного моделирования космических полётов, я отыскал в ТМ блок-схему алгоритма
и принялся за реализацию программы на языке КПК НР-42S.
Дело продвигалось быстро, за пару вечеров я написал весь код, причём, за счёт более богатого функционала операторов обращения с регистрами, он получился даже короче «классических» для программ КЭИ 98 шагов. Потом отладил программу. Как обычно, поначалу вылезло пару-тройку багов (по разному работали команды переходов по условию и ещё несколько мелочей), но довольно быстро всё заработало, как надо. Скорость расчётов была настолько высока, что после нескольких прогонов появилась идея повысить точность расчётов. В результате, вместо приближённых формул, которые использовались в программах для старых советских ПМК, интегрирование траектории теперь выполнялось с постоянным шагом в 1 секунду.
Потом, вспомнив эталонный во всех отношениях «Орбитер», принялся щедро оснащать программу отдельными процедурами, которые считали и выводили на индикатор разную полезную информацию типа (высоты апо- и пери-центра, период орбиты, время до цели и т.п). Лёгкость, с которой всё это реализовывалось, не могла не радовать.
Воплощая мои хотелки, программа обрастала дополнительными переменными и, быстро перевалив за 200 строк, продолжала жадно расти в объёме.
Поначалу всё было здорово, но постепенно что-то определённо становилось “не так”.
Все переменные уже не помещались в одну строку, интерфейс программы начал терять в наглядности. То же было и с дополнительными процедурами - для их вызова приходилось всё дальше углубляться в меню. И в какой-то момент, вместо восторгов я стал ощущать явную неудовлетворённость.
Становилось ясно, что для точных расчётов в нынешние времена гораздо удобнее использовать полноценный компьютер, с клавиатурой и дисплеем. БОльшая точность требует более объемного кода, а даже банальный ввод программы в память с клавиатуры ПМК, когда эта программа превышает сотню шагов, превращается в утомительное занятие. Кроме того, одно дело разобрать математику расчётов, реализованную в виде ОПН, в 15-20 шагов, когда вся программа умещается перед глазами, другое дело, когда это цепочки уже за сотню операций. В 80е - 90е, использовать обратную нотацию имело смысл - это повышало быстродействие тогдашних медленных процессоров. Но сейчас для программ такого объёма гораздо удобнее и нагляднее стандартный математический вид.
Да и вообще, дальнейшая логика модификации программы и повышение точности расчётов естественно приводила к режиму «полёта в реальном времени» - а это на калькуляторе с экраном в две строки делать не сильно интересно получается… Дело в том, что при полёте на современных симуляторах ты, как правило, ничего не считаешь. За тебя всё делают разнообразные MFD (Многофункциональные дисплеи). Тебе заранее подсказывают, сколько осталось до апо- или пери-центра, куда развернуться, как долго включать двигатель, как меняется высота орбиты, где будет находится цель и т.д и т.п. Конечно, когда ты летишь, тебе не до расчётов - нужно успеть вовремя сделать то, что нужно…
И вдруг я понял, что главная «фишка» тех старых «космических» программ для ПМК заключалась именно в том, что они, как сейчас принято говорить, были «пошаговые»! После каждого манёвра время «останавливалось», и ты имел возможность спокойно подумать, что делать дальше, «в следующее мгновение». И тут важно было именно понимание физики процессов. У тебя не было MFD, перед глазами всегда был только один единственный индикатор, но вся необходимая информация сидела в регистрах, и ты мог (и должен был!) сам разделить, к примеру, расстояние на скорость, чтобы оценить время, или подобрать расход топлива, или величину тормозного импульса и т.д.
А повышая точность симуляции, неизбежно следовало поставить вопрос о том, какая степень точности необходима и достаточна? Я ведь не собирался запускать в космос реальную ракету. Мне не нужны были точные расчёты, мне вполне достаточна была упрощённая математическая модель. Модель, реалистичная на качественном уровне, «в обвязке» игровой программы, позволявшая пролететь путь Аполлона с орбиты на поверхность Луны и обратно с поверхности, до стыковки с командным модулем на орбите.
И тут до меня дошло, что вся эта мощность продвинутого американца была явно избыточна для моих целей. Ведь с упрощённой моделью расчётов в «пошаговом» режиме, прекрасно справлялись и старые советские ПМК, обходясь программами в 98 шагов и 14 регистрами с данными!
Восторг и восхищение возможностями НР-42 никуда не делись, машинка классная, а для тех лет - просто фантастическая по возможностям, но… После того, как программа для моделирования орбитальных полётов на мощном американском ПМК была написана и протестирована, я пришёл к выводу, который оказался удивительным для меня самого. На самом деле, для моих задач скромный советский МК-61 оказывается вполне (а может, даже и более чем) подходящим.
В итоге, к концу недели я откладываю в сторону “американца” и пересаживаюсь на борт старого знакомого - аскетичного ПМК Электроника МК-61…
- darth.righter's blog
- Log in or register to post comments
- 1745 просмотров
Комментарии
Жалко, что HP42s был отложен
Жалко, что HP42s был отложен в сторону, у меня была надежда попробовать полет на DM42 :)
Это временно, я думаю.
Я впечатлён возможностями DM42, в школе бы душу за него отдал))
Пока делал аналог "Лунолёта", увидел, что на нём можно попробовать соорудить пошаговый аналог Орбитера - с возможностью полётов по всей системе. Во всяком случае, объединить весь путь "Луна - Земля" в единый комплекс - вообще не проблема.
А использовать его для моделирования посадки на Луну - как-то ... неспортивно, что ли)
Так что пересел пока на МК-61, но "наш бронепоезд стоит на запасном пути"
Это хороший путь
Это хороший путь.
Ну, тогда пока я надеюсь повторить полет Апполонов на другом "корабле".
По теме
У нас есть "Лунолет-3" в графике: Прогулка по лунолётам. 4 - Вблизи и на орбите. На МК-61, к сожалению, это не "натянуть".
Как насчет портировать Лунолет-3 в графике (+)
под прекрасные графические возможности DM42? :)
О графике
Посмотрел статью - отличная работа!
Но для моего имхо, особая фишка ПМКшных космических программ - именно в отсутствии графики, как бы спорно это не звучало.
Одно суровое численное моделирование! :)
А поработав над программой для DM42, вижу, что и "пошаговый режим" имеет безусловные достоинства перед симуляцией реального времени.
Orbiter, кстати, не так давно
Orbiter, кстати, не так давно стал open source, если кто пропустил. :)
https://github.com/orbitersim/orbiter
Что касается навигации в окресностях Луны, то на самом деле простыми моделями для ПМК ее можно моделировать только очень и очень ограниченно. В реальности там и масконы, и немного смещенный центр притяжения, и влияние Земли и Солнцы.
Очень интересная система эта Земля-Луна, кстати. Одни только Halo-орбиты чего стоят. Одну из которых, например, планируется использовать для будущей миссии "Артемида".
Так же, самые экономные траектории Луна-Земля и обратно, например, подразумевают выход в область точки Лагранжа L1 Земля-Солнце, где уже притяжение Солнца играет свою роль и плавно направляет корабль к цели, экономя кучу топлива.
Даже в Орбитере нет инструментов, чтоб все это расчитывать. Но моделировать можно,если предварительно расчитать в том же GMAT, например, а потом уже пытаться реализовать это в Орбитере.
На ПМК же смоделировать полет с поверхности Луны к станции, находящейся на NRHO, например, вряд ли вообще реально. Разве что на чем-то вроде HP-42S, тут без перехда в 3D не обойтись, и 105 шагов явно не хватит.
NRHO - это вытянутая орбита плоскость которой всегда почти перпендикулярна линии Луна-Земля, несмотря на движение Луны вокруг Земли, она как-бы поворачивается вместе с Луной и поэтому Луна никогда не закрывает станцию от Земли. Выглядит примерно так: https://www.orbiter-forum.com/attachments/t-png.12352/
HP42s
Я тоже голосую за HP42s в этом эксперименте
Ti-nspire CX?
А у Вас нет космически-орбитальных наработок для Ti-nspire CX? Просто у меня на столе под рукой (сын пользуется PC версией на лаптопе).