Вход для пользователей

You are here

Аполлон 11. Старт с Земли.

Очередная годовщина - повод снова засесть за пульт МК 61. Посадку лунного модуля и старт с Луны - задачи решённые, пора двигаться дальше.
А не замахнуться ли нам на Вильяма, нашего, Шекспира, подумалось мне. После некоторых размышлений, я решил попробовать смоделировать миссию с самого начала: со старта от мыса Канаверал и выхода на околоземную орбиту. Среди "ортодоксальных" космических программ КЭИ (Атмосфера 1, 2 и 3), стартовать с Земли можно только на первой.
На подобные подвиги редакция КЭИ не замахивалась, хотя в эпизоде 8 "Разбуди в апогее", где она использовалась, утверждалось, что Атмосфера 1

предназначена для численного моделирования различных маневров космических аппаратов (ВЗЛЁТ, выход на круговые и эллиптические орбиты, баллистический полет в атмосфере, снижение на парашютах, посадка) в непосредственных окрестностях планет, окруженных газовыми оболочками.

АТМОСФЕРА-1 (КЭИ)

00.Сх 01.ИПА 02.+ 03.ПА 04.ИП7 05.-
06.Fx<0 07.13 08.ИПВ 09./-/ 10.÷
11.БП 12.56 13.С/П 14.П8 15.П2 16.÷
17.ИП6 18.× 19.ИПВ 20.Fx2 21.ИП0
22.Fx2 23.+ 24.П9 25.÷ 26.ИП7
27.ИПА 28.- 29.ИП3 30.÷ 31.9 32.+
33.Fx<0 34.36 35.Сх 36.9 37.-
38.F10x 39.ИП1 40.× 41.- 42.ИПД
43.ИП8 44.- 45.Fx≥0 46.00 47.ПД
48.ИП5 49.+ 50.÷ 51.ИП9 52.F√
53.× 54.П9 55.ИП2 56.ИП9 57.ИПВ
58.ИПА 59.÷ 60.- 61.ИП0 62.× 63.×
64.ИП0 65.+ 66.П0 67.ПП 68.92
69.ИПА 70.÷ 71.Farcsin 72.ИПС 73.+
74.ПС 75.Fo 76.ИП0 77.Fx2 78.ИП4
79.ИПА 80.÷ 81.- 82.ИПА 83.÷
84.ИП9 85.ИПВ 86.× 87.+ 88.×
89.ИПВ 90.+ 91.ПВ 92.FВх 93.+
94.× 95.2 96.÷ 97.В/О

Регистры:
Р0 - V
P1 - Po*Sx/2
P2 - dt
P3 - H (характерный масштаб атмосферы)
Р4 - К (гравитационная постоянная планеты)
Р5 - сухая масса корабля
Р6 - скорость истечения топлива
Р7 - радиус планеты
Р8 - расход топлива
Р9 - служебный
РА - расстояние до центра планеты
РВ - U вертикальная
РС - угловая координата
РД - масса топлива

В принципе, взлететь на ней действительно можно. Можно даже попробовать выйти на орбиту. Для этого нужно в точке старта задать необходимое соотношение минимальных вертикальной и горизонтальной скоростей, соответствующих углу отклонения от вертикали примерно в 10 градусов. Далее траектория будет постепенно наклоняться к горизонту. В теории, можно подобрать такой начальный угол запуска, чтобы вертикальная скорость занулилась при достижении круговой скорости, что и будет соответствовать ситуации выхода на орбиту, но такая траектория будет значительно отличаться от траекторий, используемых на практике. Существенным недостатком Атмосферы-1 является невозможность управления вектором тяги. Кроме того, при полёте в атмосфере КЭИ рекомендует установить шаг по времени не более 5 секунд. Если учесть, что время работы только первых двух ступеней (160 + 360 секунд), количество операций составит порядка 100, что достаточно утомительно. Тут настоятельно необходим автопилот.
Однако, свободных регистров у нас только один - РЕ! Похоже, что придётся выбирать - или автопилот, или коррекция вектора тяги. Использовать Рег.Т стека не получиться, его придётся задействовать для промежуточного хранения либо реактивного, либо аэродинамического ускорения.
В итоге, мне пришла в голову счастливая идея - совместить значение масштаба атмосферы и аэодинамический параметр корабля в одном регистре, используя целую и дробную части по отдельности. К целочисленному значению масштаба прибавляем величину, обратную аэродинамическому параметру. А для извлечения необходимой константы использовать штатные функции МК61 выделения целой или дробной части. Теперь всё сходится - можно пробовать писать код. В результате получился мой вариант программы:
АТМОСФЕРА-1

00.Сx	01.ПxA	02.+	03.xПA	04.Пx7	05.-	06.Fx<0	07.09	08.K-	09.FL1	
10.18	11.Пx0	12.ПxB	13.÷	14.Ftgᐨ¹	15.С/П	16.xП3	17.xП1	18.Пx6	19.ПxD	
20.Пx9	21.Пx2	22.×	23.-	24.Fx≥0	25.08	26.xПD	27.Пx5	28.+	29.÷	
30.Пx9	31.×	32.Пx7	33.ПxA	34.-	35.ПxE	36.÷	37.F10ˣ	38.ПxE	39.K{x}	
40.÷	41.Пx0	42.Fx²	43.ПxB	44.Fx²	45.+	46.F√	47.×	48.Пx5	49.ПxD	
50.+	51.÷	52.xП8	53.Fѻ	54.Пx3	55.Fsin	56.×	57.ПxB	58.ПxA	59.÷	
60.Пx8	61.+	62.Пx0	63.×	64.-	65.Пx2	66.×	67.Пx0	68.+	69.xП0	
70.ПП	71.98	72.ПxC	73.+	74.xПC	75.Fѻ	76.Пx3	77.Fcos	78.×	79.Пx8	
80.ПxB	81.×	82.-	83.Пx0	84.Fx²	85.ПxA	86.÷	87.+	88.Пx4	89.ПxA	
90.Fx²	91.÷	92.-	93.Пx2	94.×	95.ПxB	96.+	97.xПB	98.FВх	99.+	
A0.2	A0.÷	A0.Пx2	A0.×	A0.В/О	

Разбирая код Атмосферы-1, обратил внимание, что КЭИ постепенно ушли от программирования в стиле "спагетти", чем они увлекались поначалу. Мой итоговый код также достаточно прост.
00 - 08: Вычисление высоты, при отрицательной высоте - аварийный останов. Посадочный блок отсутствует - да он тут и не нужен, на данном этапе "посадка" в любом случае -аварийная.
09 - 10: автопилот
11 - 14: вычисление угла наклона траектории - важный параметр, за которым приходится постоянно следить. Поскольку происходит деление на вертикальную скорость, её необходимо задавать отличную от нуля (тысячные доли м/с).
15 - 17: штатный останов, при котором в рег.Х - угол отклонения траектории от вертикали, в рег.Y - высота. Манёвр задаётся несколько необычно: вектор тяги ПП кол-во циклов автопилота С/П.
Шаг времени заносится предварительно в П2. Сделал так по подсказке Ajaja, действительно, пользоваться автопилотом в таком режиме гораздо удобнее. Расход топлива в секунду также заносится предварительно в П9. Этот параметр постоянный и определяется делением начальной массы топлива на время работы ступени, что примерно соответствует реальности. Впрочем, ничто не мешает менять его вручную перед каждым новым манёвром, не превышая максимально допустимого.
18 - 31: расчёт реактивного ускорения. По адресу 24 - проверка уровня топлива. Если его не хватает - аварийный останов, сигнализирующий о необходимости отстрела очередной ступени. Переход на следующую ступень приходится делать "вручную" - меняя содержимое регистров 5, 6 и Д. Реактивное ускорение в дальнейшем цепляется за вершину стека, его величину можно смотреть в рег.Z при очередном останове.
32 - 52: расчёт аэродинамического ускорения, делённого на курсовую скорость (хранится в дальнейшем в рег.8). Вертикальная и горизонтальная компонента торможения атмосферой считаются в дальнейшем простым умножением на U и V соответственно.
53 - 74: Расчет горизонтальной скорости и смещения.
75 - А4: Расчет вертикальной скорости и вертикального смещения.
По сравнению с Атмосферой 1 КЭИ, в рег.1 теперь счётчик автопилота, масштаб атмосферы и аэродинамический параметр корабля хранятся в рег.Е, а освободившийся рег.3 использован для хранения угла вектора тяги.

При работе с программой необходимо учитывать следующие ограничения:
1. Максимальная высота орбиты - 1732 км. При большей высоте происходит аварийный останов по адресу 37.
2. Вертикальная скорость не должна обращаться в ноль. В полёте, как правило, этого не происходит, главное - не забыть задать минимальную величину на старте.

А вот комплект исходных данных для старта:
6371 ВП 3 П7 (радиус Земли)
Fx2 9.81 X П4 (гравитационная постоянная Земли)
ИП7 70 + ПА (начальная высота старта над уровнем моря)
0 П0 ПС
0.001 ПВ
1 П1 (инициализация автопилота)
1 П2 (шаг по времени. До высот 80 км не рекомендуется задавать больше 5 сек.)
Для первой ступени Сатурна-5, выводившего Аполлон на орбиту Земли, на основе данных приведённых в Вики, а также вот этого источника: (https://web.archive.org/web/20120618054155/http://epizodsspace.airbase.r...)
787400 П5 (сухая стартовая масса Аполлона 11)
2580 П6 (удельный импульс) Для кислорода с керосином удельный импульс в вакууме составит примерно 3660 м/с (родные цифры из лунной эпопеи Кон-Тики!). Но в плотной атмосфере земли импульс уменьшается до указанных 2580.
2155600 ПД
17500 В1 173 F1/x + ПЕ (173 взят исходя из диаметра 13 м., коэфф.сопротивления принят за 2)
ИПД 162 / П9 (секундный расход топлива первой ступени) Эта величина соответствует максимальной тяге в 34343 кН у поверхности. В реальности, с набором высоты и падением давления тяга будет увеличиваться за счёт роста удельного импульса. Реализовать это средствами МК61 малореально. Выход я вижу только один - несколько увеличить величину импульса, по отношению к "нулевому". Насколько увеличивать - покажут пробные полёты...

Данные введены, нажимаем В/О С/П. На экране ноль - мизерная вертикальная скорость при нулевой горизонтальной, естественно, даёт нулевой угол отклонения от вертикали. В рег.Y - высота над уровнем моря (70 м).
Для старта вводим угол вектора тяги, ПП, количество циклов автопилота, С/П.
Пристегнулись и поехали!

Метки публикаций: 

Комментарии

Опираясь на слухи, сам я ракеты на орбиту не запускал, при старте с Земли роль играет широта стартовой площадки.

Дело в том, что ракета стартует с начальной горизонтальной скоростью, модуль которой зависит от угловой скорости вращения Земли и расстояния до оси вращения. Вот на это расстояние и влияет географическая широта космодрома.

Чем больше начальная скорость, тем меньше ∆V и меньше топлива нужны для выхода на орбиту. Поэтому космодромы и стараются строить не в Мурманске, а ближе к экватору — Байконур, Восточный…

Хотелось бы отразить это в математической модели, раз уж мы начали разбирать реальные старты. И да, если не хватает чего-то в ПМК, вроде трёхмерных векторов и векторной арифметики, не стесняйтесь формулировать. Добавлю в МК-261.

Про широту думал, конечно. "вставить" её в МК61 не получится, но задача при использовании прг.АТМОСФЕРА решаема.
Вычислить ∆V несложно, зная географическую широту мыса Канаверэл = 28 градусов 28 минут 30 секунд.
Для начала считаем скорость вращения Земли по экватору (на нулевой широте). Делим длину экватора на число секунд в сутках:
ИП7 Fpi X 12 / 36000 / (463.31 м/с)
и умножаем на косинус широты точки старта:
28.2830 К3, (функция перевода из секунд с минутами в доли градуса) Fcos, X (408.45 м/с)
Фактически, старт происходит именно с такой начальной горизонтальной скоростью. Однако, если её сразу учитывать, программа будет использовать её для расчёта аэродинамического торможения, что не соответствует реальности - приземной слой вращается вместе с поверхностью. Поэтому, я корректирую горизонтальную скорость после отработки первой ступени, на высотах 60+ км
ИПО 408.45 + ПО
При таком подходе мы более реалистично учитываем аэродинамические потери, но завышаем гравитационные. Можно оценить, насколько:
408.45 Fx2 ИП7 / (2.6Е-2) - неучтённое центробежное ускорение, уменьшающее силу тяжести. Время работы первой ступени порядка 160 с:
160 х (4.19 м) - примерно 4 м/с дополнительных гравитационных потерь за время работы 1 ступени.
По формуле равноускоренного движения можно оценить и потерю высоты, связанную с этим неучтённым ускорением:
160 Fx2 2.6 ВП-2 х 2 / (332.8 м)

С центробежной силой надо бы поосторожней. Она, как и кориолисова сила, существует только в неинерциальных системах отсчёта (с.о.), как математически точная фикция для компенсации их отличий от инерциальных с.о..

То есть надо определиться с с.о.. Либо это условно неподвижная Земля, где точка старта вращается вместе с поверхностью, и тогда сил инерции нет. Либо с.о. вращается вместе с космодромом, и тогда возникают все эти прелести вращающихся с.о. Но результат, например вышел ли корабль на орбиту, должен быть одинаков, как ни считай.

Видимо, у Пухова с.о. вращается и горизонтальная скорость при старте (относительно космодрома и атмосферы) нулевая. Но и тогда широта должна как-то влиять, например через силы инерции. В его программах при их вычислении точно учитывается расстояние до оси вращения Земли, а не до её центра?

В идеале неплохо бы учитывать годовое движение Земли и считать звёзды, включая Солнце, неподвижными. Тогда сил инерции нет, но придётся учитывать наклон земной оси, дату запуска и использовать немного другую угловую скорость Земли из-за другой длительности звёздных суток — 86164,09054 секунд. Так можно точнее просчитывать полёт на компьютере, сравнивая результат с моделями на ПМК, в которых ради упрощения вычислений часть тонкостей спрятана в силах инерции.

Насколько я понимаю, "неинерциальность" связана именно с использованием сферической (для нашей плоской модели - полярной) системы координат, даже с неподвижным (невращающимся) центром. Неинерциальной системой будет прямоугольная система, работать в которой для эллиптических орбит несподручно. Хотя, может быть, и можно...
В случае модели Пухова, вращением луны в "лунной" части эпопеи пренебрегали из-за её крайне малой величины, порядка 4.5 метров на Лунном экваторе.
Для программ серии "Атмосфера", рассматривались случаи спуска с орбиты в атмосферу, где разница скоростей в любом случае "съедается" трением об атмосферу. Поэтому, на конечном отрезке спуска, перед приземлением, горизонтальная скорость в Атмосфере-1 всегда нулевая. А вот при старте вопрос начальной горизонтальной скорости встаёт в полный рост, от него уже не отмахнёшься.

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

Если посчитать по стандартным формулам величины ускорений, создаваемых инерциальными силами на горизонтальной скорости 400 м/с (для широт, используемых американцами), получаются величины порядка см/с2. Наши спуски севернее, а значит, ускорения ещё меньше.
Для сравнения, прикинул аэродинамическое ускорение, действующее на спускаемый аппарат Востока на конечном этапе посадки (скорость относительно атмосферы 100 м/с) - порядка 10 м/с2. (примерно уравновешивают притяжение Земли, поэтому вертикальная скорость при свободном падении стабилизируется в пределах 100 м/с) То есть, аэродинамические силы на четыре порядка больше инерциальных, а значит, их нет особого смысла учитывать при посадке.

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

Например, если раз в секунду модель допускает расхождение на миллиметр, за 3 часа получится разница на 10 метров. Если эта разница накапливается в скорости, не говоря уже об ускорении, тем более когда разница не хаотична — влияние ошибок растёт не линейно, а быстрее.

Ниже в табличке «Аполлона» приводятся 7 знаков после запятой, и это правильно. Игрушка, конечно, может пренебрегать точностью — основные тенденции отражены, да и ладно.

Понял вашу мысль, и тем не менее, не соглашусь. Нужно учитывать не только сами величины, но и их погрешности. В данном случае, погрешности аэродинамических сил будут с гарантией перекрывать сантиметровые поправки на центробежные и кориолисовы ускорения, создаваемые вращением атмосферы.
В любом случае, я захожу как раз с "игрового конца" - интересно было, получится ли впихнуть модель, учитывающую, хотя бы грубо, аэродинамику, в аскетичные ресурсы МК-61.
С этой точки зрения, точная телеметрия Аполлона интересна в основном, для оценки правдоподобия характеристик полёта, моделируемых ПМК.
Как сказал кто-то из великих: "Цель расчётов - не числа, а понимание".

Про ускорения — возможно, хотя они имеют системный характер и такие влияния могут быть ощутимы. Но то, что при разном выборе направлений спуска придётся гасить скорость на 400 м/с меньше (или больше) всё-таки существенно. Особенно если посадка происходит не в океан, а на космодром, и координаты приземления придётся выровнять.

Эти м/с легко учитываются при ручном переходе из инерциальной СК во вращающуюся СК на границе атмосферы (добавлением/вычитанием этих м/с). Не в них проблема. Погрешность тут возникает из-за того, что данная модель считает в инерциальной системе координат, без учета центробежной силы и силы Кориолиса. Но неточность из-за использования весьма упрощенной аэродинамической модели тут по всей видимости куда больше. Бессмыслено допиливать что-то влияющее на точностью в четвертом после запятой знаке, зная, что в данной моделе ошибка возникает уже во втором знаке.

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

Интересно, был ли он в «Пути к Земле»…

"Далее траектория будет постепенно наклоняться к горизонту" - это так наываемый "гравитационный разворот", что как-раз очень близко к реальным траекториям запуска.
Вопрос, угол вектора тяги тут задается относительно вертикали? Или это угол атаки (как в Атмосфере-2)? Т.к. для максимально реалистичности угол атаки должен быть минимален.
Более-менее реалистичный запуск получится если стартовать вертикально вверх, потом на какой-то небольшой высоте немного отклониться от вертикали и дальше уже идти с нулевым углом атаки, постепенно наклоняясь к горизонту под действием притяжения.

Вектор тяги задаётся традиционно - от вертикали. Но выравнивать его с направлением курсовой легко - при останове в регистре Х находится как раз угол отклонения траектории от вертикали. Если коррекция курса не нужна, нажимаем ПП (ПМК воспринимает его как вектор тяги для очередного маневра) количество циклов автопилота и С/П
Если есть потребность коррекции траектории, набираем нужную величину, учитывая, что для Сатурна 5 указана возможность отклонения вектора тяги 5 градусов в секунду. На эту величину и можно отклонятся от расчетного угла, увеличив или уменьшив содержимое рег.Х

Реальные углы атаки при запусках еще меньше. Вот что нагуглилось:
https://www.ibiblio.org/apollo/Documents/lvfea-AS506-Apollo11.pdf
См. таблицу 11-2, данные для первой ступени, параметры Average Gimbal Angle и Angle-of-Atack для Pitch Plane.
И там же график 11-5 Pitch Plane Angle-of-Atack, где видно, что углы атаки плюс/минус 2 градуса, и явно с попыткой удержания около 0.
Gimbal углы (отклонения вектора тяги двигателя, те что максимум до 5 градусов у ракетных двигателей первой ступени Сатурна-5) тоже маленькие, графика нет, но средний всего 0.23 градуса.

Подумалось, что полётную траекторию (по крайней мере, для первой ступени) считают именно для варианта совпадения вектора тяги с вектором скорости ракеты - для уменьшения аэродинамических потерь, в том числе. А корректировки курса необходимы для компенсирования неоднородностей реальной атмосферы - ветер, восходящие/нисходящие потоки и т.п. То есть, модель Атмосфера-1 КЭИ вполне имеет место быть, ведь в ней атмосфера стационарна, и в этих корректировках необходимости нет. Сложность в расчёте оптимального начального наклона траектории, для выхода на расчётную высоту с необходимой скоростью.

Посидел пару вечеров за ПМК, с программой АТМОСФЕРА.
Первые выводы - летать можно, модель работает, управлять комфортно.
Проблема в недостатке параметров модели Аполлона.
Информацию брал отсюда:
Материалы с сайта Эпизоды космонавтики
и тут:
Сатурн-5

По работе первой ступени: очевидно, что указанного в источниках удельного импульса в 2580 не хватает, чтобы достичь заявленых 2760 м/с скорости (с учетом начальных 408) на высоте 67 км. Точнее, лично у меня этого сделать не получилось.
Попробовал ориентироваться на параметры полёта при реконструкции в Орбитере:

Для ориентира, выписал примерный тайминг тангажа по времени на приборах Орбитера: (время - отклонение от вертикали)
52 - 10
63 - 20
77 - 30
97 - 40
118 - 50
144 - 60
160 - 60
шаг по времени задавал в 1 с.
Время манёвра порядка 5-10 с
В итоге, недолёт по высоте порядка 5 км, и скорости не хватает. Подозреваю, что нужно увеличивать удельный импульс, который с высотой должен расти, а в модели - остаётся постоянным. Увеличив его с 2580 до 2680, выходим на скорости, похожие на реконструированные в Орбитере, но высота всё-равно на 2-3 км меньше получается.

Исторические углы тангажа тут:
https://space.stackexchange.com/questions/23131/saturn-v-ascent-guidance...

+------------+----------------+------------+
|    Time    |     Pitch      | Pitch Rate |
| (seconds)  |   (degrees)    | (degree/s) |
+------------+----------------+------------+
| 0.3 to 30  | 0              | 0          |
| 30 to 80   | 0 to 36.40     | 0.7280000  |
| 80 to 135  | 36.40 to 62.23 | 0.4696364  |
| 135 to 165 | 62.23 to 71.14 | 0.2970000  |
| 165 to 185 | 71.14 to 60.57 | -0.5285000 |
| 185 to 320 | 60.57 to 64.75 | 0.0309630  |
| 320 to 460 | 64.75 to 77.35 | 0.0900000  |
| 460 to 480 | 77.35 to 74.59 | -0.1380000 |
| 480 to 550 | 74.59 to 81.39 | 0.0971429  |
| 550 to 570 | 81.39 to 77.25 | -0.2070000 |
| 570 to 640 | 77.25 to 85.07 | 0.1117143  |
| 640 to 705 | 85.07 to 88.23 | 0.0486154  |
| over 705   | 88.23          | 0          |
+------------+----------------+------------+

С удельным импульсом не хватает места для буквально нескольких комманд и, наверное, ячейки памяти, чтоб реализовать, например, линейную зависимость от плотности атмосферы. Для первой ступени Сатурна-5 там получается от 265 секунд (~2600 м/с) при 1 атмосфере и до 304 c (~2982 м/с) в вакууме ( http://www.braeunig.us/space/specs/saturn.htm )
Неточность при моделировании еще будет и из-за того, что используемая аэродинамическая модель все-таки упрощена и неплохо подходит только для скоростей от 2 махов, т.к. коэффициент аэродинамического сопротивления сильно зависит от скорости ( http://www.braeunig.us/space/aerodyn_wip.htm график 3.2 ).
Ну и атмосферная модель тоже приближенная.
Поэтому, добиться 100% точности в любом случае не получится. Но, все-равно, уже достигнутая точнось как для 105 шагов программы впечатляет. :)

Подумал, как быть с импульсом, и придумал ))

Для учёта зависимости импульса от высоты можно использовать имеющийся в аэродинамическом блоке кусок кода:

ИП7 ИПА - ИПЕ / F10ˣ

Он выдаёт значение от 1 у поверхности до практического 0, согласно заданного масштаба атмосферы. Осталось превратить этот масштабный коэффициент в некую величину, корректирующую импульс. Я поступил просто: посчитал долю, на которую уменьшается импульс от максимального до минимального значения: (2982 - 2600)/2982 = 0.1281... Если умножить её на масштабный коэффициент и вычесть из максимального значения, получим величину импульса на соответствующей высоте. Причём зависимость от высоты, как и положено, нелинейная.
Осталось придумать, куда и как втиснуть это решение.
За неимением свободных регистров, не мудрствуя лукаво, я применил тот же фокус, что и для коэффициента сопротивления. Только теперь "приделал хвоста", естественно, регистру 6, где хранится импульс. Для этого набираем на ПМК:

2600, В1, 2982, /, FВх, - , /--/, П6

Код пришлось немного ужать и сдвинуть, чтобы было куда внедрить соответствующий блок расчётов:

13.Пx6 14.Пx6 15.К{x} 16.Пx7 17.ПxA  18.-    19.ПxE
20.÷   21.F10ˣ 22.xП8  23.×   24.×   25.- 

В итоге получилась очередная
прг.АТМОСФЕРА 1.7

00.В/О 01.ПxA  02.+    03.xПA 04.FL1 05.13   06.Пx0 07.ПxB  08.÷    09.Ftgᐨ¹
10.С/П 11.xП3  12.xП1  13.Пx6 14.Пx6 15.К{x} 16.Пx7 17.ПxA  18.-    19.ПxE
20.÷   21.F10ˣ 22.xП8  23.×   24.×   25.-    26.ПxD 27.Пx9  28.Пx2  29.×
30.-   31.Fx≥0 32.48   33.xПD 34.Пx5 35.+    36.÷   37.Пx9  38.×    39.Пx8
40.ПxE 41.К{x} 42.÷    43.Пx0 44.Fx² 45.ПxB  46.Fx² 47.+    48.F√   49.×
50.Пx5 51.ПxD  52.+    53.÷   54.xП8 55.Fѻ   56.Пx3 57.Fsin 58.×    59.ПxB
60.ПxA 61.÷    62.Пx8  63.+   64.Пx0 65.×    66.-   67.Пx2  68.×    69.Пx0
70.+   71.xП0  72.KПП7 73.ПxC 74.+   75.xПC  76.Fѻ  77.Пx3  78.Fcos 79.×
80.Пx8 81.ПxB  82.×    83.-   84.Пx0 85.Fx²  86.ПxA 87.÷    88.+    89.Пx4
90.ПxA 91.Fx²  92.÷    93.-   94.Пx2 95.×    96.ПxB 97.+    98.xПB  99.FВх
A0.+   A1.2    A2.÷    A3.Пx2 A4.×  

Величины уд.импульса по сконструированному алгоритму получаются такие:
на старте - 2603.6 , на высоте 55 км - 2981.85 м/с.

Во время операции над пациентом без жертв, конечно же, не обошлось. Пострадал сервис.
1. Теперь при останове в рег.Y не высота, а расстояние до центра Земли. С контролем высоты пришлось расстаться окончательно.
2. Высота считается с погрешностью в 1 метр (рег.7 пришлось задействовать для КПП7 по адресу 99, поэтому от обычного 6371 ВП3 придётся отнять единицу). На величины сил и ускорений подобная погрешность никак не влияет, так что жертва оправдана.
3. Вместо привычного В/О С/П нужно не забывать Сх В/О С/П.
В остальном всё работает привычно.
Первый же опыт показал, что скорости к концу отработки первой ступени получаются существенно выше. Короче, жить становится лучше, жить становится веселее! ))
ПС:
При превышении расхода топлива над остатком происходит аварийный останов по адресу 48. Последовательность действий в этом случае такая: 1 П1 Сх В/О С/П и переход на следующую ступень.
Кстати, в эмуляторе Хохлова "отстрел ступеней" очень удобно выполнять с помощью отдельной служебной программы обязательно с расширением .txt Удобная штука оказалась. Принцип тот же, что и "буферной программы" КЭИ, для перехода с прг.ОС-1 к ОС-2. Только теперь делается это в два клика по экрану.

По итогам обсуждений, пришёл к выводу о том, что для первой ступени более правдоподобно будет задавать отклонение вектора тяги от вектора скорости, а не от вертикали. Иначе возникают слишком большие погрешности в аэродинамике, если не контролировать вектор тяги ежесекундно. Думал, как это можно устроить - места свободного совсем мало. Пришёл к такому решению: дельта времени принимаем в одну секунду, тогда освобождается один регистр и 8 шагов программы (умножать на единицу не нужно). Перестроил управление тягой как дельта от угла вектора скорости. Пробные полёты в таком режиме, стараясь удерживать корабль во взлётном коридоре Аполлона, ориентируясь на углы тангажа, с корректировкой тяги не более 5 град. от вектора скорости, показали неплохую достоверность. С первой попытки, скорость на исходе первой ступени получилась 2.329 м/с (2393 у Аполло), высота 57.211 м (57.983 у Аполло). Учитывая, что траекторию я пролетал по 10 секунд - достаточно точно получилось.
Программу для первой ступени сегодня выложу после работы.

Да, так реалистичней. Практически уверен, что Launch Vehicle Digital Computer на Saturn-V примерно так и управлял, увеличиввя/уменьшая углы атаки за счет работы вектором тяги.
Только, в программе это именно угол атаки, а не отклонение вектора тяги. Т.к. подозреваю, изменяемое направление вектора тяги двигателя действовало по-другому.
Когда нужно было увеличить угол атаки, двигатель подправлял направление реактивной струи в том же направлении, т.е. создавая тягу в направлении обратном изменению угла атаки.
Т.е. если нужно задрать нос чуть вверх, вектор направления выхлопа тоже смещался чуть вверх, тем самым давя хвост ракеты вниз и подворачивая нос вверх, преодолевая аэродинамику, пытающуюся выровнять ракету по вектору движения.
Поэтому 5 градусов особого смысла не имеют, они только показывают какую часть тяги двигателя можно было выделять на удержание определенного угла атаки.
Можно, в теории, вычислить, какие максимальные угла атаки ракета могла поддерживать на какой высоте/скорости, но это достаточно нетривиальная задача. Хотя, возможно где-то такие данные и есть.
По графику с исторического запуска, например, видно, что начиная с одного маха и до прохождения отметки максимального динамического давления, угол атаки в Pitch Plane отклонялся не более чем на полградуса.

Нашел отличную иллюстрацию того, что я возможно не очень понятно изложил выше:
https://www.grc.nasa.gov/www/k-12/rocket/gimbaled.html
Ginbal

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

Эти потери, наверное, лучше вообще не учитывать. Там в PDF с графиками еще указано:

Less than 10 percent of the available engine deflection was used throughout flight (based on average engine gimbal angle). S-IC outboard engine cant was accomplished as planned. All dynamics were within vehicle capability. In the region of high dynamic pressure, the maximum angles-of-attack were 1.6 degrees in pitch and 1.4 degrees in yaw. The maximum average pitch and yaw engine deflections were 0.2 degree and 0.3 degree, respectively, in the maximum dynamic pressure region.

Т.е. даже на самом тяжелом для маневрирования этапе работы первой ступени отклонения вектора тяги всего на 0.2 градуса позволяло достигать углов атаки до 1.6 градуса по тангажу. В ПМК-модели эти незначительные отклонения вектора тяги можно вообще не учитывать. Т.е. считать просто по тангажу как в первоначальной версии программы, но для удобства задавать тангаж как текущий вектор движения + угол атаки, а не напрямую. Ну и при полете при достижении скорости в полмаха и больше стараться не задавать слишком большие углы атаки, чтоб не развалить ракету ;)

Я к тому, что моя модель не учитывает рост лобового сопротивления при отклонении угла атаки от ноля.
Т.е. в реальности потери аэродинамические больше, чем у моей "сферической лошади в вакууме",
но зато меньше потери тяги (т.к. углы отклонения меньше).
У меня наоборот - потерь на аэродинамическое руление нет, зато завышены потери реактивной тяги
(углы отклонения у меня больше реальных). Судя по тому, что по итогу получаются близкие к реальным скорости и высота,
эти погрешности в достаточной степни друг-друга компенсируют.