>>Вы просто подставили более точные данные, я полагаю? Мне кажется, достигнутая точность - это, скорее, удачное совпадение, чем демонстрация качества алгоритма. В программе все-таки довольно много грубых упрощений.
>>Во-первых - программа тангажа. Я взял простую линейную вместо гравитационного разворота.
>Я заменил расчет угла наклона таблицей, так как неизвестна функция, по которой её делали. Надеюсь, так более точно. Но всё-таки высота у меня получается меньше, чем надо. А что Вы имеете ввиду под "гравитационным разворотом"?
Гравитационный разворот (англ. gravity turn или zero-lift turn) - это специальный вид траектории взлета РН на начальном этапе (и посадки некоторых посадочных аппаратов тоже), когда вектор тяги поддерживвается строго параллельным текущему вектору скорости. Это уменьшает потери на управление и боковую аэродинамическую нагрузку (если есть). "Сатурн-5", естественно, следовал этой траектории на участке работы 1-й ступени. Траектория поддается несложному математическому расчету. Если выполнять этот расчет программно, то функция тангажа должна довольно точно совпасть с графиком отчета.
Одна из причин, почему высота выходит немного меньше - плоская Земля. Нетрудно прикинуть по теор. Пифагора, что неучет кривизны Земли дает ошибку по высоте около L*L/(2Rземли), где L - полная длина траектории. Прикидка дает ок. 0,6 км - это ок. 1 % по высоте. По дальности ошибка много меньше, т. к. там косинус, а не синус. :)
>>Во-вторых - падение УИ и рост тяги с высотой. Для падения УИ нужна более точная модель, а рост тяги с высотой вообще не учтен (помните таблицы в отчете?)
>Я это уже учел в новой версии (еще не закончена - хотел бы исправить и ошибки, которые Вы выявили, см. ниже).
Вы учли, как я успел заметить, лишь более точное изменение давления, но не тот закон, по которому УИ от давления зависит. Это более сложная вещь, к тому же она может зависеть от особенностей двигателя.
>>В-третьих - сопротивление воздуха считается слишком грубо.
>На стр. 20-3 http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19900066484_1990066484.pdf есть графики коэффициента лобовой аксиальной силой. Это ли тот самый коэффициент Cx или другой? Можем ли мы их использовать для более точного расчета? (Кстати на стр. 17-28 и 17-29 того же документа описано явление "т.н. горящей задницы" ракеты, вопрос, который задавался на форумах и, думаю, Павлюк-"Старый" отвечал.)
Сейчас тороплюсь, но по первому ощущению - значения с этого графика можно прямо подставлять в переменную dragF вместо вычисления вроде dragF = Cx*Rho(h)*Math.PI*dragRad*dragRad*V*V/2
>>Кстати, я не уверен, что гравитационные потери в программе считаются правильно, там может быть небольшая ошибка в формуле (не тот угол взят).
>Что Вы имеете ввиду? Какой угол нужно взять?
Я имею в виду последний столбец в таблице. Там - вычисленное значение гравитационных потерь. Оно может быть не очень точно из-за того, что я, возможно, в формулу подставил не совсем тот угол. У меня сейчас нет времени думать над этим, через две недели конференция, и мне срочно надо готовиться. Может быть, потом. В любом случае, эта возможная ошибка никак не сказывается на конечных результатах траектории (дальность, скорость), т. к. гравитационные потери лишь вычисляются, но никак не используются для траекторных расчетах. Впрочем, при гравитационном развороте углы, которые я мог спутать, в точности равны между собой, так что ошибка, может, вообще не сказывается.
>>И одно замечание по Вашей версии: округляйте цифры! Семь значащих цифр выглядят нелепо. Студентов-первокурсников за это на лабораторных убивают металлической линейкой. :)
>Когда я был первокурсником, нам тоже на это обращали внимания. Попов тоже делал мне замечание об этом. Но я компьютерщик. Давайте дать компьютеру работать точно, а результат всё равно закругляется при выводе :)
Однако Вы не только тратите свое время, но и загромождаете программу совершенно ненужными цифрами, что никак не облегчает ее понимание. Может, шутки ради, выкинуть из нее все то, что никак или почти никак не сказывается на конечном результате? Все эти таблицы 5х6 и земной эллипсоид? ;)
По-хорошему, у меня такое впечатление, что Вы могли ограничиться заменой линейного тангажа на табулированный и полностью экспоненциальной атмосферы на табулированную (причем хватило бы двух-трех членов). И результат, полагаю, почти не отличался бы от того, которого Вы добились. Все остальное было лишним. Ну, возможно, поправка к ускорению свободного падения тоже имеет некоторое значение.
>>Да, и еще. Я посмотрел, Вы зачем-то внутри программы стали добиваться невероятной точности от вычисления ускорения свободного падения и радиуса Земли. Это не только бессмысленно, но и привело к одной ошибке (небольшой, кстати): эффективная скорость истечения газов Vex и УИ Isp связаны между собой формулой Isp=Vex/g0, где g0 - это нормальное ускорение свободного падения, т. е. константа, равная 9,80665 ~= 9,81. Это НЕ МЕСТНОЕ ускорение свободного падения. Оно и на Луне будет 9,81, и в космосе. :)
>Я посмотрел, но g0 используется много раз. Где именно надо заменить на 8,80665 (т.е. используется гравитационная константа) и где - оставить точное местное ускорение?
Нормальное ускорение 9,80665 нужно оставить в формуле тяги. В остальных местах, кажется, можно менять на местное. Да, кстати. Местное ускорение уже учитывает центробежную силу. В программе центробежная сила уже учтена. Поэтому сейчас она учитывается дважды. Имеет смысл вычесть из местного ускорения, которое Вы вычисляете, центробежную силу на мысе Канаверал, т. е. добавить к вычисляемому Вами g величину w2*Rканаверал*cos2(phi), где w - угловая скорость вращения Земли, Rканаверал - радиус Земли в районе Канаверал, phi - широта Канаверала. Надеюсь, не ошибся.
>>Ну если выходит из графиков столько, значит, столько и есть. Имеет смысл исправить ускорение свободного падения на 9,81. И округлить все вычисления до 3 значащих цифр: 34,3/(9,81*2,90)=1,21.
>Вы имеете ввиду, заменить g0 гравитационной константой (9,80665) здесь?
>var Thrustcur = M0*TtW*g0*Ispcur/Isp0
Именно.
>>При расчете центробежной силы к радиусу земного эллипсоида добавлена ... высота ракеты!!! (Эх, на косинус широты я множить не стал, ну так это и не исправлено... Но высота ракеты добавлена!!!)
>Ну ладно, высоту h0 только-что убрал оттуда. Косинус широты там есть. Не понимаю, что не исправлено.
Еще, кстати, космодром находится выше уровня моря. ;) Что сказывается, кстати, и на тяге двигателей.
>>Что ещё можно добавить?
>>а) Затабулировать изменение тяги двигателей с высотой по графику - изменение небольшое, но оно есть. Кстати, можно вообще заменить расчет тяги двигателей через меняющийся УИ, как это делается сейчас, на табулированное значение сумм тяг двигателей со стр. 5-3 отчета.
>Вы имеете ввиду стр. 5-4?
Нет. Я имею в виду, что вместо вычисления тяги двигателей в формуле var Thrustcur = M0*TtW*g0*Ispcur/Isp0 можно просто вставить туда суммарное значение по табл. на стр. 5-3. Там же индивидуальные тяги двигателей как функции времени приведены. Вот можно их просуммировать, и будет Вам полная тяга в каждый момент времени.
> А изменение потока горючего (стр. 5-4, графика вправо-внизу) я уже учел (новую версию выложу после исправления ошибок, выявленных Вами).
Ох, Аллах...
>>б) Последовательно заменить прямую Землю неплоской - Вы верно указали, что кривизна Земли в траекторных расчетах не учитывается.
>Ведь не из-за этого ли высота у меня получается слишком маленькой? А как должна по-Вашему она учитываться? Угол в таблице углов в http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19920075301_1992075301.pdf дан так:
>Elevation is the angle between the velocity vector and the local horizontal plane, positive above the horizontal plane.
Как учитываться? Несложно. Нужно вместо декартовых координат, использующихся в нынешнем алгоритме, перейти к полярным с началом в центре Земли. Вертикальную ось заменить радиальной, вместо горизонтальных координат, скоростей и ускорений считать угловые величины. Это чуть-чуть добавит тригонометрии. Совсем не сложно.
>>А можно вообще последовательно перейти трехмерной задаче. Конечно, это потребует добавить кучку дополнительной тригонометрии.
>Давайте сначала решим двухмерную :)
Хотелось бы понять, зачем... ;)
Re: Версия 2 - Лучезар23.08.2010 20:54:50 (28, 5764 b)
Re: Версия 2 - 7-4023.08.2010 23:06:31 (30, 7616 b)
Re: Версия 2.3 - Лучезар24.08.2010 11:02:01 (37, 4904 b)