2 уравнения движения тела в 3D

Как записать уравнения движения двух тел в 3D в виде системы дифференциальных уравнений?

Ответы (2)

с т а т е "=" [ р Икс , р у , р г , в Икс , в у , в г ]

с т а т е ˙ "=" [ в Икс , в у , в г , а Икс , а у , а г ]

а "=" мю р 2 (Универсальный закон тяготения Ньютона / ускорение двух тел в скалярной форме)

Ошибок деления на ноль можно избежать, используя векторное уравнение для ускорения, поскольку любой из компонентов положения может быть равен нулю, но норма будет положительным числом (при условии, что сама норма не равна 0)

а "=" мю | р | 3 р (Универсальный закон тяготения Ньютона / ускорение двух тел в векторной форме. Обратите внимание, что был добавлен отрицательный знак, поскольку ускорение свободного падения направлено в направлении, противоположном вектору положения.

Вот версия этого ODE для Python:

def two_body_ode( t, state, mu = pd.earth[ 'mu' ] ):
    r = state[ :3 ]
    a = -mu * r / np.linalg.norm( r ) ** 3

    return np.array( [
        state[ 3 ], state[ 4 ], state[ 5 ],
        a[ 0 ], a[ 1 ], a[ 2 ] ] )

И сюжет для развлечения:введите описание изображения здесь

Этот ответ на Как решить задачу двух тел в кадре ECI с помощью численного интегрирования? говорит:

Вместо одного дифференциального уравнения второго порядка

р ¨ "=" мю р 3 р

Мы можем решить следующую пару дифференциальных уравнений первого порядка параллельно

в ˙ "=" мю р 3 р
р ˙ "=" в

используя различные простые методы, включая стандартные библиотеки или доморощенные реализации Рунге-Кутта, включая мой любимый простой RK4/5 с переменным размером шага .

[...]

Из этого ответа вы можете увидеть 2D-реализацию, использующую не только монополь 1 / р 2 гравитационный член, но дополнительный квадруполь Дж 2 термин для обозначения сплюснутой формы и поля Земли. Подробнее об этом см. в этом ответе на проблему с получением прямоугольных составляющих ускорения спутника на орбите вокруг Земли с учетом J2.

Здесь мю со стандартным гравитационным параметром , который был бы произведением г М если бы мы точно знали каждый параметр. Оказывается, для тел Солнечной системы мы можем определить их произведение гораздо точнее, чем любое из них по отдельности. Если вам нравится работать без единиц измерения, а ваше вращающееся тело имеет незначительную массу, установите мю "=" 1 и ваш период будет 2 π .

Итак, вопрос:

Как записать уравнения движения двух тел в 3D в виде системы дифференциальных уравнений в виде Xdot = f(X).

Выписано, р ˙ "=" в и в ˙ "=" мю р 3 р становиться:

Икс ˙ "=" в Икс
у ˙ "=" в у
г ˙ "=" в г
в Икс ˙ "=" мю р 3 Икс
в у ˙ "=" мю р 3 у
в г ˙ "=" мю р 3 г
р "=" ( Икс 2 + у 2 + г 2 ) 1 / 2

Если:

Икс "=" [ Икс у г в Икс в у в г ]

затем

Икс ˙ "=" [ в Икс в у в г Икс   мю ( Икс 2 + у 2 + г 2 ) 3 / 2 у   мю ( Икс 2 + у 2 + г 2 ) 3 / 2 г   мю ( Икс 2 + у 2 + г 2 ) 3 / 2 ]

Спасибо за публикацию, мне не хватало отдельных скалярных уравнений \dot{v} в моем ответе.