Вычисление вектора состояния скорости с элементами орбиты в 2D

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

Я довольно часто пользовался руководством по конверсии Рене Шварца , но трансформации и повороты в конце, честно говоря, просто меня смущают, поэтому я в итоге просто использовал Истинную Аномалию и | р | для расчета нового р , который, кажется, работает, но я в тупике, как рассчитать в , у меня есть уравнение для скорости в любой точке орбиты с

в 2 знак равно мю ( 2 | р | 1 а )

Где я просто подключаю новый | р | и я получаю | в | , но пытаясь использовать это уравнение для касательного вектора к любой точке эллипса с заданным углом,

а потому что θ я + б потому что θ Дж

Где а большая полуось, б - малая полуось, а θ угол вокруг эллипса (я использовал истинную аномалию в качестве входных данных для этого угла, это правильно?), похоже, не работает для нахождения вектора, касательного к эллипсу. Итак, мои вопросы:

  • Как найти вектор, касательный к двумерному орбитальному эллипсу, заданному е и а , а также | р | , | в | , и Истинная, Эксцентричная и Подлая аномалия в этот момент? (У меня также есть некоторые дополнительные элементы, которые я еще не использовал, такие как аргумент перицентра, если это полезно.)

  • Как определить, в каком направлении должен быть обращен этот вектор (чтобы он не указывал на ретроградность, когда он должен указывать на прямое направление), учитывая те же значения, что и выше?

+1за отличный рерайт! :) В этом случае здесь может быть существующий ответ, который отвечает на ваш вопрос. Я знаю, что было по крайней мере несколько похожих вопросов. Если ваш вопрос в конечном итоге будет помечен как дубликат, указывающий на существующий ответ, не думайте об этом как о чем-то плохом. Это просто способ stackexchange убедиться, что будущие читатели получат меньше, но более качественных ответов. Если это не поможет, пожалуйста, так и скажите, и помните, что вы можете задать столько дополнительных (качественных) дополнительных вопросов, сколько захотите!
Где-то есть (по крайней мере) еще один ответ, который я еще не могу найти, который также может быть полезен. Кроме того, может быть полезен один из двух документов, связанных в этом ответе .
Я нашел большинство из них раньше, но номер 4 выглядит полезным, спасибо.
Я не уверен, делаю ли я что-то неправильно или нет; использование преобразований в № 4 не дает последовательных результатов, я использую аргумент перицентра как ю знак равно арктический 2 ( е у , е Икс ) и установка наклона и долготы восходящего узла на 0 (Википедия говорит, что это соглашение на странице аргумента перицентра).

Ответы (2)

Если предположить, что направление перицентра является положительным направлением оси x, то вектор а грех Е я + б потому что Е Дж касается орбиты в точке с эксцентрической аномалией Е . Скорость сонаправлена ​​с этим вектором, если орбита движется против часовой стрелки, и противоположна, если орбита движется по часовой стрелке.

Если угол между положительным направлением оси x и направлением перицентра равен ю (измеряется против часовой стрелки), то нужно повернуть вектор на этот угол, и в результате получится ( а грех Е потому что ю б потому что Е грех ю ) я + ( б потому что Е потому что ю а грех Е грех ю ) Дж .

Для компонента y последнего уравнения, которое вы мне даете, результат находится между -a и a, значит ли это, что я неправильно вычисляю аргумент перицентра? Я использовал это уравнение из Википедии: ю знак равно арктический 2 ( е у , е Икс ) . Значение x также колеблется от очень низкого значения до другого.
Находятся е Икс и е у координаты перицентра относительно главного фокуса? Тогда это правильно. Но я не понимаю, почему у -компонент последнего выражения изменится между а и а . Если вы исправите ю и варьироваться Е , то он должен измениться между ( а грех ю ) 2 + ( б потому что ю ) 2 и ( а грех ю ) 2 + ( б потому что ю ) 2 .
Исправлены эти проблемы, просто случайные ошибки, которые появились из-за моей постоянной настройки. Результат все еще не выглядит правильным. Я начинаю с вектора состояния (0,-350) (м/с) и (0,~200) (км) от моей основной массы, поэтому скорость не должна иметь величину выше 350 (перицентр находится там, где я начинаю), но используя в знак равно | в | потому что ( т ) я + | в | грех ( т ) Дж куда т заголовок вектора, который вы дали, имеет величину от 0 до 700. Глядя на числа, это делает в Икс колебаться в противоположную сторону в у , как будто один находится в апоапсисе, а другой в периапсисе.
Кроме того, в моей библиотеке кодирования есть функция поворота вектора, используя ее на а грех Е я + б потому что Е Дж должно работать, верно? Из того, что я могу сказать из источника, он вращается путем преобразования вектора в угол, добавления входного угла, а затем преобразования обратно в вектор, это эквивалентное вращение?
«Я начинаю с вектора состояния (0,-350) (м / с) и (0, ~ 200) (км) от моей основной массы»: указывает ли начальная скорость на основную массу? Тогда дело не в периапсисе, Насчет поворота: да, так, как вы описываете, должно работать.
Ой, я хотел сказать (200, 0) вместо r. Во всяком случае, проблема все еще происходит. Хотя это может быть ошибка в моем коде, пока не могу сказать, я просто переделываю.

Для вычисления вектора скорости в задаче двух тел можно использовать угол траектории полета ф ф п а (из «Основ астродинамики и приложений» Д. Вальядо). ф ф п а угол, измеренный от местного горизонта до вектора скорости. Для этого вычислите угловой момент, который является постоянным:

час знак равно р 0 × в 0

Норма вектора положения | | р | | является:

| | р | | знак равно а 1 е 2 1 + е потому что ф
куда ф является истинной аномалией. Как вы ранее показали, норма скорости как функция р является
в 2 знак равно мю ( 2 | | р | | 1 а )

Так, ф ф п а рассчитывается так:

потому что ф ф п а знак равно | | час | | | | р | | | | в | |
грех ф ф п а знак равно | | час | | | | р | | | | в | | × е грех ф 1 + е потому что ф
ф ф п а знак равно атан2 ( грех ф ф п а , потому что ф ф п а )

Прежде чем я покажу вам выражение вектора скорости, нам нужно определить следующие векторы направления:

Направления

Где р ^ это направление р , т ^ находится в направлении скорости, и н ^ нормальна к орбите и к т ^ . Кроме того, направления р ^ и с ^ перпендикулярны. Таким образом, вектор скорости в можно выразить как:

в знак равно | | в | | т ^ знак равно | | в | | ( с ^ потому что ф ф п а + р ^ грех ф ф п а )

Расчет р и с ^ как функция некоторого направления инерции - простая задача, используя истинный угол аномалии ф .

Я попробую это завтра, но на первый взгляд кажется, что у вас небольшая опечатка, когда вы показываете в знак равно в т ^ ты имеешь в виду, что в знак равно | в | потому что ( т ^ ) я + | в | грех ( т ^ ) к ?
Нет. т ^ является единичным вектором, а не скаляром. Так что вычисление его синуса или косинуса не имеет смысла. в знак равно | | в | | является нормой в и т ^ является единичным вектором в в направление.