Как найти время пролета между сферами влияния?

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

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

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

Ответы (2)

Извините, я не могу обещать вам идеальный ответ. Во-первых, я нашел эту страницу полезной - http://www.bogan.ca/orbits/gravasst/gravasst.html . К сожалению, структура немного изменилась с тех пор, как я ее использовал, но полезная информация осталась.

Я сделал инструмент для моделирования сценариев «большого тура». Я сделал это, смоделировав замкнутый эллипс, пересекающийся с траекторией орбиты целевой планеты-«рогатки». В момент, когда планета стала преобладающим гравитационным влиянием, модель переключилась на гиперболический переход. Как только солнце снова стало доминирующим гравитационным фактором, я переключился на замкнутый эллипс со следующей планетой (для рогатки) в качестве цели. Я могу поделиться кодом Matlab для моделей перехода и эллипса, если это поможет. Я бы сказал, что это не идеальное решение, но оно подтвердило траектории "Вояджера". С наилучшими пожеланиями Стивен

Вероятно, нет простого способа сделать это, который не включал бы численные методы какого-либо типа. Когда я решал аналогичную проблему для моей программы чтения файлов персистентности Kerbal Space Program, мой метод был в основном следующим:

Создайте функцию, которая принимает время в качестве аргумента и:

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

Редактировать: Упс, забыл шаг в моем методе.

Отсюда я определил диапазон времени для исследования перехвата сферы влияния, рассчитав следующие моменты времени, когда космический корабль будет находиться на расстоянии от звезды между [Периапсис планеты - Радиус сферы влияния] и [Апоцентр планеты + Сфера влияния радиус]

Я использовал функцию «Поиск золотого сечения », чтобы найти время наибольшего сближения в этом временном диапазоне (игнорируя эффекты сферы влияния) и рассчитал расстояние в это время. Если бы это расстояние было больше, чем радиус Сферы Влияния, я предполагал, что в течение этого временного диапазона перехват Сферы Влияния не произойдет, и при желании мог бы перейти к периоду времени, когда космический корабль находился в диапазоне перехвата для проверки.

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

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

Изменить: в моей первоначальной записи не было найдено время ближайшего подхода. Мне нужно было сделать это, чтобы убедиться, что требования для использования метода Риддера были выполнены.

Спасибо за указание на метод Риддлера. Я знал только о методе Брента (через Brentq от SciPy ). Здорово, когда люди находят время, чтобы опубликовать содержательный ответ с подробными объяснениями!
По привычке я не пробовал метод Риддлера в этом ответе , но попробую в следующий раз ;-)