Как отсортировать орбитальные позиции в порядке следования кораблей?

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

Как отсортировать этот список, чтобы получить все истинные аномалии в том порядке, в котором за ним будут следовать космические корабли?

Отсортируйте их числовые значения в порядке возрастания.
Но после апоцентра значения начинают уменьшаться
Истинная аномалия увеличивается в направлении движения по орбите. Если вы правильно вычисляете истинную аномалию, на эллиптической орбите объект будет циклически проходить по списку в порядке возрастания снова и снова.
Да, ты прав. Я забыл, что меньшие отрицательные числа имеют большую величину

Ответы (2)

Истинная аномалия представляет собой угол от перицентра через центр тела, находящегося на орбите, до заданного положения на орбите, измеренный в плоскости орбиты, с положительным направлением, обозначенным как направление движения по орбите.

Если ваши истинные значения аномалии находятся в диапазоне ( π , π ] в радианах или ( 180 ° , 180 ° ] в градусах, отсортируйте их в порядке возрастания. На эллиптической орбите тело будет посещать эти истинные аномалии один раз за каждую орбиту в указанном порядке. На параболической или гиперболической траектории он посетит их один раз в указанном порядке.

Если ваши расчеты привели к истинным значениям аномалии за пределами этих диапазонов, вы можете преобразовать углы, чтобы поместить их в этот диапазон. Есть много способов сделать это, я обычно использую функцию arctan2 . Учитывая начальное истинное значение аномалии θ :

ф "=" а р с т а н 2 ( грех θ , потому что θ )

ф будет в диапазоне ( π , π ] или ( 180 ° , 180 ° ] в зависимости от ситуации, и вы можете отсортировать в порядке возрастания, как указано выше.

Интересный! мод ( θ + π ,   2 π ) π   также работает. Вы могли бы указать, что технически ответ невозможен; для правильной орбиты Кеплера невозможно узнать, не существует ли целое число вращений между точками; 0 может прийти через n + 1/2 периодов после π .
@uhoh Да, модуль работает математически; Я склонен избегать его здесь, потому что его реализация на языках программирования с плавающей запятой и отрицательными числами может быть непоследовательной . Что касается дополнительного целого числа оборотов; В заданном виде вопрос предоставил только список истинных аномалий, а дополнительные вращения не имеют значения. На кеплеровской орбите невозможно уйти от ф "=" 20 ° к ф "=" 30 ° не проходя через ф "=" 25 °
это хорошо знать о мод ( ) , Спасибо! Я прочитал это как OP, имеющий таблицу событий , и при условии, что орбита исправна, может быть большое количество вхождений 25 °, только одно из которых находится между данной соседней парой 20 ° и 30 °. Я предполагаю, что пока вопрос короткий и двусмысленный, его можно понять в любом случае.
@notovny Например, положение космического корабля равно Pi/2, и у нас есть список аномалий (Pi/4, -Pi/2, Pi, 0, 3Pi/4). Если я отсортирую его только в порядке возрастания, я получу список (-Pi/2, 0, Pi/4, 3Pi/4, Pi), который неверен. Правильный список (3Pi/4, Pi, -Pi/2, 0, Pi/4). Возможно, мне следует сначала извлечь текущую аномалию космического корабля из каждой аномалии в списке, а затем добавить 2Pi ко всем аномалиям, которые ниже нуля. Затем отсортируйте список и преобразуйте значения обратно

Если у нас есть случайный список истинных аномалий в диапазоне [-PI;PI], мы можем отсортировать его, используя следующий алгоритм:

  1. Вычтите из каждой аномалии аномалию текущей позиции.
  2. Добавьте 2*PI к каждому значению аномалии, которое меньше 0
  3. Отсортировать список аномалий в порядке возрастания
  4. Добавить аномалию текущей позиции к каждой аномалии в списке.
  5. Вычтите 2*PI из каждого значения аномалии, превышающего PI.

После этих шагов мы получим список аномалий, отсортированный в следующем порядке.