Какова численная процедура для нахождения следующего наибольшего сближения двух тел на кеплеровских орбитах?

Учитывая два тела на кеплеровских орбитах, какова процедура нахождения следующего ближайшего сближения двух тел? Тела были бы фактически безмассовыми объектами, подобными двум космическим кораблям, вращающимся вокруг однородного центрального тела. Орбиты могут быть заданы векторами состояния, шестью кеплеровскими элементами или любым представлением элементов, которое приводит к самому простому решению.

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

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

Я предполагаю, что одним из простых способов сделать это было бы написать функцию, которая принимает векторы состояния, распространяет их на время t и затем вычисляет расстояние, а затем просто обертывает это алгоритмом одномерной минимизации Брента (например, fminbnd в Matlab), а затем имеет эвристика, чтобы найти ограниченный диапазон, в котором находится минимум, или расширить радиус поиска, если это не удается. Было бы неплохо найти метод с лучшими свойствами сходимости, чем этот.

Обновлено. Представление орбит, вероятно, должно быть выбрано как самое простое для решения проблемы, хотя и не наблюдательное.
Общая процедура нахождения минимумов некоторой функции состоит в том, чтобы искать нули в первой производной, и для этих нулей требуется положительная вторая производная. Здесь не будет иначе. Вы можете сделать это численно или аналитически, если у вас есть аналитические уравнения. Кеплеровы орбиты имеют точные решения при записи т ( θ ) но обратное θ ( т ) требует либо бесконечных рядов решений, либо численных.
Если два тела имеют иррациональные периоды, то вам, возможно, придется ждать сколь угодно долго, пока они оба одновременно окажутся в точках, где эллиптические орбиты находятся на минимальном расстоянии друг от друга. Просто найти эти две точки не так-то просто, не говоря уже о том, чтобы выяснить, где два тела находятся на своих орбитах. - Хороший вопрос.
Ах, возможно, мне нужно будет прояснить, что это просто «следующая точка наименьшего разделения», а не точка наименьшего разделения.
(Хотя я, конечно, не против более широких ответов, люблю учиться)
@RogerWood Я пошел на риск и добавил частичный ответ

Ответы (4)

Только частичный ответ: я надеюсь, что будет опубликован и более конкретный ответ!


Я вижу, вы хорошо обновили свой вопрос. Это, безусловно, по-прежнему актуально здесь, но я думаю, что вы также можете немного абстрагироваться и задать соответствующий вопрос в Math SE или SciComp SE .

Математический вопрос может выглядеть так:

Учитывая две функции периода г 1 , г 2 независимой переменной т как все минимумы некоторой параметрической функции ф ( г 1 , г 2 ) находиться в диапазоне т 1 т т 2 ?

Аналитические подходы

Если вы знаете г 1 , г 2 и ф аналитически (в данном случае Икс 1 ( т ) ,   Икс 2 ( т ) и | Икс 2 Икс 1 | ), то вы можете просто использовать цепное правило для аналитического дифференцирования, а затем применить все, что могут предложить области математики и численной техники, для поиска нулей.

Но для кеплеровских орбит нет простых аналитических решений для Икс ( т ) .

Этот ответ на вопрос Что такое аналитическое решение задачи двух тел в замкнутой форме для проверки результатов численного интегрирования? объясняет, что существует аналитическое решение обратной задачи, найти время для заданного θ (или два раза для данного р ) в течение одного периода, и это может быть полезно, а может и нет.

Бесконечная серия

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

Передовые методы

Фундаментальным соотношением в небесной механике является уравнение Кеплера, связывающее среднюю аномалию орбиты с ее эксцентрической аномалией и эксцентриситетом. Будучи трансцендентным, уравнение не может быть напрямую решено для эксцентрической аномалии с помощью обычных методов лечения; много работ было посвящено приближенным методам. Здесь мы даем явное интегральное решение, используя методы, недавно примененные к «геометрической проблеме козла» и к динамике сферического коллапса. Решение дается как отношение контурных интегралов; их можно эффективно вычислить с помощью численного интегрирования для произвольных эксцентриситетов. На практике этот метод оказался очень точным: наша реализация на C++ превосходит обычные методы поиска корней и последовательностей более чем в два раза.

[...] По этой причине разработка автоматизированных инструментов, которые предсказывают потенциальные события столкновения (соединения), имеет решающее значение. Мы внедряем байесовский подход к глубокому обучению для решения этой проблемы и разрабатываем архитектуры рекуррентных нейронных сетей (LSTM), которые работают с временными рядами сообщений данных о соединении (CDM) — стандартным форматом данных, используемым космическим сообществом. Мы показываем, что наш метод можно использовать для одновременного моделирования всех характеристик CDM, включая время прибытия будущих CDM, обеспечивая прогнозы развития событий соединения с соответствующими неопределенностями.

Смотрите также:

YouTube:

Паттерны Лиссажу и повторяющиеся/неповторяющиеся паттерны

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

@RogerWood указывает , что важно решить, можете ли вы рассматривать соотношение двух периодов как рациональное число разумного размера (например, 42: 137) или они не связаны каким-либо простым образом и в основном независимы.

Кто занимается такими вещами?

Космическое командование и любая организация, владеющая спутниками или зависимая от них!

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

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

Подробнее о том, как это делается, см. ниже:

Но что, если я хочу попробовать решить эту проблему самостоятельно?

Определите свою проблему практическим способом.

Вы заботитесь о каждом минимуме или только о тех, которые на самом деле близки, как при поиске соединения?

Если они находятся на противоположных сторонах центрального тела, то вскоре они не окажутся рядом друг с другом.

Я думаю, что какой-то подход «разделяй и властвуй» может быть полезен. Разбейте время на достаточно маленькие клетки, чтобы они содержали ноль или один минимум, но не два. Затем снова разделите их пополам. Проверяем производные на краях, если они меняют знак, то, возможно, рядом находится минимум.

Что дальше?

Я все еще думаю, что тщательно написанный вопрос в Math SE или SciComp SE будет весьма плодотворным.

Это ответ, но определенно не хороший ответ. Если, г , это расстояние между двумя спутниками, то мы можем использовать метод Ньютона для производных по времени г и г итеративно найти минимум.

Учитывая 12 элементов орбиты, мы сначала находим разделение, г и относительная скорость и ускорение между двумя спутниками . Затем мы разрешаем компоненты , параллельные направлению г и o ортогонален _ г используя обозначение ( в п , в о ) и ( а п , а о ).

Для первой производной от г , у нас просто г "=" в п . Вторая производная г очевидно, включает компоненту ускорения вдоль г , но это также функция ортогональной составляющей скорости, которая действует как ускорение, вызывая квадратичное увеличение расстояния. Таким образом, выражение для второй производной имеет вид г "=" а п + ( 1 / 2 ) в о 2 / г . Если мы приближаемся к минимуму, в п должен быть отрицательным и а п + ( 1 / 2 ) в о 2 / г должен быть положительным. Однако, а п всегда отрицательно, поскольку оба спутника постоянно ускоряются по направлению к центральной массе. Поэтому относительная скорость должна быть не менее в > ( 2 а п г ) в точке ближайшего сближения.

Близко к минимуму разделения, г вероятно, является достаточно квадратичной функцией времени, и метод Ньютона будет работать очень хорошо. На других позициях вообще хрен развернется! К сожалению, ничто из этого не избавляет от необходимости в хорошем методе распространения орбит во времени (согласно комментариям @uhoh).

Это не настоящий ответ, но он может вас заинтересовать. ;)

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

М "=" Е е грех Е

где М средняя аномалия , Е эксцентрическая аномалия , е является эксцентриситет.

Его достаточно легко решить, используя несколько раундов метода Ньютона (если только е очень близко к 1), но в аналитическом подходе это не очень полезно, и вашу задачу нужно решить дважды, по одному разу для каждого тела. Традиционный аналитический подход состоит в том, чтобы аппроксимировать его с помощью нескольких членов ряда; несколько вариантов приведены в статье Википедии.

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

Позволять Т 1 < Т 2 быть периодами тел. Тогда синодический период

Т с "=" Т 1 Т 2 Т 2 Т 1

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

Обратите внимание, что относительная скорость двух тел равна нулю при самом близком (и самом дальнем) сближении, поэтому относительное расстояние не сильно меняется в это время.


Я предполагаю, что вам нужно общее решение этой проблемы. OTOH, если вы хотите решить это для реальных тел Солнечной системы, вы можете попросить JPL Horizons выполнить расчеты орбиты. Он может легко дать вам расстояние (и скорость его изменения) между любой парой объектов в своей системе и знает множество объектов : 1130203 астероида, 3757 комет, 209 спутников планет, 8 планет, Солнце, L1, L2. , выберите космический корабль и барицентры системы. 

Вот график расстояния между Марсом и Меркурием за период с 4 февраля 2000 г. по 30 декабря 2003 г. Я выбрал их, потому что это планеты с самыми эксцентричными орбитами. Эксцентриситет Меркурия равен 0,20563, Марса — 0,0934. Их периоды составляют 87,9691 дня и 686,98 дня соответственно, поэтому их относительный синодический период составляет ~ 100,888 дня, что составляет ~ 1,1469 периода Меркурия и ~ 0,1469 периода Марса. У них был близкий подход в течение суток после начала графика. Интервал между вертикальными линиями дат составляет 100 дней.

Расстояние Марс-Меркурий

Как видите, период между последовательными сближениями довольно близок к 100 дням, хотя есть небольшой дрейф.


Вот ссылка на живую версию программы Sage/Python, которую я использовал для создания этого графика. Он может рисовать в форматах SVG и PNG. Вы можете использовать его на любых объектах, которые известны Horizons. Его можно использовать для поиска "вручную" решений вашей проблемы, и, возможно, он будет полезен для проверки других методов решения.

Полную информацию об указании идентификаторов тела, времени и временных шагов см. в документации Horizons . Вкратце, число от 1 до 9 идентифицирует барицентр планеты (включая Плутон), например, 1 — Меркурий, 4 — Марс. Добавить 99, чтобы указать центр тела. Перед центром наблюдения необходимо указать префикс @, иначе номер будет считаться идентификатором обсерватории. Если вы введете строку в поля targetили center, Horizons ответит списком идентификаторов, соответствующих этой строке.

Horizons поддерживает множество форматов даты и времени. Чтобы ввести номер дня по юлианскому календарю, добавьте к нему префикс jd.

Параметр datestepмоей программы устанавливает расстояние между вертикальными линиями сетки на графике. Значение datestep10 означает, что эти линии рисуются для каждых 10 точек данных.

Чтобы уменьшить количество запросов Horizons, программа кэширует последние 3 набора данных, которые она извлекает. Если вы вносите «косметические» изменения в график без изменения цели, центра или параметров времени, старые данные используются повторно.

FWIW, следующее ближайшее сближение между Землей и Марсом (399, 499) произойдет JD 2459914,59564 = 2022-декабрь-01 02:17:43 на расстоянии 81452213,932 км.

Я бы попробовал численный подход, используя базовые инженерные подходы. Сначала установите 2 произвольные кеплеровы орбиты, используя данные r и v или элементарные данные. Если интерес представляют орбиты реальных объектов, используйте точные данные о солнечной системе.

Во-вторых, выберите произвольное начальное положение для каждого объекта.

В-третьих, настроить вычисление расстояния между двумя объектами в цилиндрических (или сферических) координатах или путем преобразования в декартовы координаты.

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

Пятый. запускать (распространять) систему на несколько компьютерных часов (вероятно, десятки тысяч витков), ведя журнал времени и расстояния между объектами и других параметров, которые могут представлять интерес при анализе результатов.

Шесть. Отобразите параметр расстояния в зависимости от времени и проверьте минимальные точки и время между минимумами и другими интересующими параметрами. Если данных недостаточно, запустите на несколько часов дольше.

Работа над закрытой формой решения для этого, похоже, не стоит затраченных усилий.

Сэкономьте некоторое время вычислений и запускайте симуляцию только для наименьшего общего кратного (НОК) периодов обращения двух объектов (это когда они возвращаются в исходные положения).