Системы координат для векторов состояния

Сейчас я работаю над проектом из этой книги . В приложении D они предоставляют несколько проектов, которые можно закодировать как обзор всего материала книги. Я закончил первый проект, Site/Track, и мой вывод достаточно близок (благодаря числовой неточности Python) к решению. Я попытался использовать библиотеку Orbital python, чтобы сделать график моего решения, чтобы добавить приятный визуальный акцент в проект.

Я ввожу векторы состояния, конвертируя из единиц расстояния и единиц времени, определенных в книге, в метры и метры в секунду (в соответствии с требованиями функции преобразования орбитальной функции). большая полуось примерно равна радиусу земли. Это, очевидно, неверно, поэтому я перешел к следующей точке данных - тот же результат. Хорошо, может быть, это мой код? Итак, я посмотрел вектор состояния для МКС, нашел здесь, ввел его в свой код, и получается красивый график орбиты. Так что, может быть, это просто данные в книге. Я ввожу другой пример из книги из главы, которой я следовал, чтобы создать программу, где они преобразуют векторы состояния в орбитальные элементы. Это тоже делает этот расчет идеальным. Затем я пробую еще один источник здесь, и эти векторы не работают в моей программе. Я тоже заложил в этот калькулятор все 3 вектора , МКС и один из моей книги сработали, а остальные нет. Я пытаюсь найти несоответствие, которое я явно упускаю...

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

Вот мои входные данные из книги (не функционирующие), определенные в книге как система отсчета IJK (инерциальная)

r = [ 1779987.13023855 -4944211.65294755  4065801.40507205] 
v = [ 2082.84303416 -1179.76617351   410.70269708]

Выход:

KeplerianElements:
    Semimajor axis (a)                           =   3493.823 km
    Eccentricity (e)                             =      0.950399
    Inclination (i)                              =     45.1 deg
    Right ascension of the ascending node (raan) =    160.3 deg
    Argument of perigee (arg_pe)                 =    303.1 deg
    Mean anomaly at reference epoch (M0)         =    144.4 deg
    Period (T)                                   = 0:34:15.239378
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =    144.4 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000

Данные ISS, которые я использовал (показан правильный график), определены на веб-сайте как m50 декартово.

r = [4607312.46, -1531324.39, 4749270.39]
v = [4597.800926, 5516.878978, -2671.990580]

Выход:

KeplerianElements:
    Semimajor axis (a)                           =   6794.798 km
    Eccentricity (e)                             =      0.000980
    Inclination (i)                              =     51.4 deg
    Right ascension of the ascending node (raan) =    212.9 deg
    Argument of perigee (arg_pe)                 =     53.7 deg
    Mean anomaly at reference epoch (M0)         =     62.7 deg
    Period (T)                                   = 1:32:54.113176
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =     62.7 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000
Я не имею права отвечать на этот вопрос, но если бы я был компетентен, я бы хотел видеть ваши входные данные и результаты вашей программы для каждого из упомянутых вами случаев, а не только слова о них.
«На выходе значение эксцентриситета 0,98». Почему я не могу найти это число в ваших таблицах?
И самое главное, где код?
Очевидно, что с вашим первым примером что-то не так, потому что большая полуось меньше радиуса Земли невозможна. Бейт, Мюллер и Уайт содержат много материала о траекториях баллистических ракет, поэтому всегда полезно проверить, соответствуют ли данные, которые они вам дали, «орбите», которая длится всего 20 минут между запуском и приземлением, но < 3500 км глубоко внутри земли во все времена.
@RyanC, это хороший момент; Я предположил , что это многоразовая первая ступень.
ЮВ скорректировано. Спасибо, кода нет, потому что я не верю, что проблема в моем коде, так как все выходные данные совпадают. Я согласен с @uhoh и думаю, что проблема заключается в скорости, поэтому я просмотрел этот набор данных myreaders.info/05_Satellites_Orbit_Elements.pdf . У них по-прежнему ужасные, почти гиперболические орбиты, но я подключу их к уравнению vis-viva, чтобы проверить, не являются ли данные плохими для спутника. Предполагая, что данные «плохие», я предполагаю, что единственный вектор состояния, который дает «хорошую» орбиту, — это МКС. Может быть, я проверю SPICE, чтобы проверить еще несколько наборов данных.

Ответы (1)

Вот частичный ответ, пока вы не добавите дополнительную информацию в соответствии с запросом в комментариях.

благодаря числовой неточности Python

Я не думаю, что вы где-то рядом с пределом поплавков Python. Вместо этого давайте вспомним, что кеплеровы орбиты являются лишь теоретическими приближениями. Самые большие отклонения происходят из-за экваториального сжатия Земли, выраженного Дж 2 что составляет около 1 части на тысячу эффект. Если вы просто используете центральный г М / р 2 сила, которую вы собираетесь получить на порядок 0,1%. Затем идут мультипольные члены более высокого порядка, гравитация Солнца и Луны и т. д.

Вот векторы начального состояния, о которых вы сообщаете. (Я думаю, что вы конвертировали из безразмерных чисел в своем источнике? Было бы неплохо их тоже увидеть)

r = [1779987.13023855, -4944211.65294755, 4065801.40507205]  
v = [2082.84303416, -1179.76617351, 410.70269708]  

Уравнение vis-viva невероятно полезно. Для центральных силовых (кеплеровских) орбит это связывает скалярные значения а , р и в независимо от того, в каком направлении указывают эти два последних вектора, так что это очень удобно!

в 2 "=" г М ( 2 р 1 а )

или

1 а "=" 2 р в 2 г М

Стандартный гравитационный параметр Земли (произведение г М ) составляет около 3,986E+14 м^3/2^2.

У вас есть р "=" 6644,12 км и в "=" 2,42874 км/с. Экваториальный радиус Земли (6378,137 км) обычно используется для присвоения значения высоты, поэтому объект находится на высоте 266 км, перемещаясь только на 31% от 7,746 км/с, необходимых для круговой орбиты на этом расстоянии, так что это собираюсь нырнуть в землю.

Приведенное выше уравнение vis-viva дает а "=" 3493,823 км точно так, как вы показываете в выводе, что неудивительно, поэтому я не буду подтверждать другие пункты.

Это может быть плохо продуманная проблема, отправляющая космический корабль в глубокое погружение, или, поскольку он настолько медленный, что может даже выжить при входе в атмосферу, если у него есть двигатели, немного похоже на многоразовую первую ступень на вершине своей дуги!

Спасибо. Я знал, что значения скорости неверны, я просто пытался сделать несколько красивых графических представлений данных :)