Стратегия тяги и вращения для круговой стандартной орбиты GTO с использованием ионного двигателя?

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

Но мне интересно, как бы вы на самом деле нацеливали непрерывную ионную тягу, когда вы двигаетесь по высокоэллиптической орбите в начале? Есть ли способ сделать это, не тратя много топлива? Или вы используете тягу только в течение части орбиты (в начале), когда она находится вблизи перицентра, и, следовательно, требуется больше времени для накопления дельта-v, потому что двигатель фактически выключен большую часть времени?

Вот быстрый, глупый расчет, показывающий, что для 0,2N и 2200 кг, начиная с 300 км LEO, требуется около 600 дней, чтобы медленно выйти на GEO. Спутник вращается один раз за один оборот вокруг Земли, поэтому мне приходится время от времени немного замедлять скорость вращения, чтобы поддерживать их синхронизацию, чтобы тяга всегда была касательной к круговой орбите.


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

Q1: Чтобы использовать наименьшее количество ионного топлива, должен ли космический корабль медленно вращаться или иметь фиксированное положение, возможно, по касательной к апоапсису? При вращении с постоянной или линейной скоростью?

Q2: Как можно модулировать тягу и положение, чтобы сделать стандартный эллиптический GTO круговым с использованием ионного двигателя 0,2 Н за наименьшее количество времени?

введите описание изображения здесь

def deriv(X, t):

    r, v  = X.reshape(2, -1)
    vhat  = v / np.sqrt((v**2).sum())
    rhat  = r / np.sqrt((r**2).sum())
    rsq   = (r**2).sum()

    acc_grav   = -GMe * rhat  / rsq
    acc_thrust = vhat * acc   # right now, thrust is just in vhat direction

    return np.hstack((v, acc_grav + acc_thrust))


import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint

GMe = 3.986004418E+14  # m^3/s^2

re  = 6371.E+03   # m
alt = 300.E+03    # m
a   = re + alt    # m
v0  = np.sqrt(GMe / a)  # vis-viva equation for circular

T = 2. * np.pi * a / v0
print "period (min) ", T/60., " at ", alt, " km altitude."

acc  = 0.2/2200.  # m/s^2  0.2N and 2200kg

X0   = np.array([a, 0, 0, 0, v0, 0])  # initial state vector

days = np.linspace(0, 600, 100000)
t    = days * 24. * 3600.

tol  = 1E-10  # good enough for rough answer but not an accurate trajectory
answer, blob = ODEint(deriv, X0, t, rtol=tol, atol=tol, full_output=True)

xp, yp  = 0.001*answer.T[:2]
alti_km = np.sqrt(xp**2 + yp**2) - 0.001*re

if 1 == 1:
    plt.figure()
    plt.subplot(3, 1, 1)
    plt.plot(days, xp)
    plt.plot(days, yp)
    plt.title('x, y (km)')
    plt.subplot(3, 1, 2)
    plt.plot(xp, yp)
    plt.title('xy (km)')
    plt.subplot(3, 1, 3)
    plt.plot(days, alti_km)
    plt.title('altitude (km)')
    plt.show()
Если у вас есть время, серия коротких ускорений вокруг перицентра каждой орбиты должна быть более эффективной, чем непрерывная тяга, использующая эффект Оберта. Однако я предполагаю, что большинство спутников с ионными двигателями придают большее значение времени до станции, чем расходу ∆v. en.wikipedia.org/wiki/Oberth_effect
Ага, я бы тоже так предположил. Я начал думать об этом, когда прочитал связанные вопросы и ответы - похоже, что либо математика не учитывала, что вы не можете эффективно использовать тягу часть времени, либо что GTO на самом деле не был эллипсом - что привело к бонусу часть здесь.
Я не мог полностью следовать вашей смоделированной стратегии, но для непрерывной тяги из традиционного низкого перигея, апогея на гео-высоте, вы хотите направлять тягу прямо вниз в апогее (чтобы избежать его повышения), но проградировать в перигее. Таким образом, вам нужно повернуться на 90 градусов на входящей конечности и на 270 градусов на исходящей!
Хорошо, я попробую, это, безусловно, звучит разумно. У меня есть забавное чувство, что это можно сделать (или хотя бы приблизительно) аналитически, но теперь, когда ноутбуки являются гигафлопами, легко быть ленивым.
Ага, я бы с ума сошла в вычислениях :)
@RussellBorogove Prograde ожоги в перицентре? Это не округляет орбиту. Он поднимает апоцентр и придает эллипсу больший эксцентриситет. Для циркуляризации вам нужны ожоги в прямом направлении и ожоги в апоапсисе (это поднимает париапсис и снижает эксцентриситет). И ожоги апоапсиса не годятся для использования преимущества Оберта.
О, хорошее горе. Извините, я не знаю, о чем я думал, — опубликовал сегодня утром перед кофе.

Ответы (2)

тл; Д.Р.: Оптимизация траектории для непрерывной тяги сложна, и в этой области ведутся очень активные исследования.

Разъяснения 2021 года:

Методология

  1. Для наименьшего количества топлива лучше всего использовать тягу как можно меньше времени и только тогда, когда она чрезвычайно эффективна ( η 0,98 ). Но это также означает, что для достижения желаемой орбиты потребуется невероятно много времени.
  2. И наоборот, чтобы выйти на орбиту за наименьшее количество времени, нужно делать как можно больше тяги, даже если это не так эффективно .
  3. Как правило, при оптимизации траектории мы устанавливаем максимальное время передачи и оптимизируем наименьшую общую тягу с течением времени (т. е. наименьшую общую тягу). Δ в ) за это максимальное время. Это позволяет найти тонкий баланс между «наименьшим количеством топлива» и «вывести этот космический корабль на орбиту своей миссии и начать науку / зарабатывать деньги».

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

Ответы

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

Q1: Чтобы использовать наименьшее количество ионного топлива, должен ли космический корабль медленно вращаться или иметь фиксированное положение, возможно, по касательной к апоапсису? При вращении с постоянной или линейной скоростью?

Если ваша тяга всегда направлена ​​в направлении вектора скорости, вы постоянно увеличиваете скорость космического корабля и, следовательно, увеличиваете SMA (наряду с изменением других элементов). Чтобы сделать орбиту круговой, вам нужно поднять только периапсе, пока она не совпадет с апоапсисом. Чтобы поднять SMA, вам нужно все время толкать... но это повлияет на вашу эксцентричность. Следовательно, лучший подход, вероятно, состоит в том, чтобы поднять SMA до GEO, а затем сделать круговую орбиту. Чтобы потреблять наименьшее количество топлива, вы должны включать двигатель только тогда, когда вы находитесь в очень небольшой области вашего периапсида, так что ваш апоапсис очень немного увеличивается на полвитка позже. Повторяйте это, пока не достигнете целевого SMA. Затем сделать круг.

Q2: Как можно модулировать тягу и положение, чтобы сделать стандартный эллиптический GTO круговым с использованием ионного двигателя 0,2 Н за наименьшее количество времени?

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

Полная информация (2017)

Редактировать: Что касается вращения вашего космического корабля, вы захотите построить углы тяги в плоскости и вне плоскости (относительно рамы RNC космического корабля). Это даст вам представление о том, насколько двигатели должны быть стабилизированы перед тягой. Этот угол полностью зависит от того, какие параметры орбиты вы меняете (см. законы управления Нааса, Руджеро и Петропулоса). Я ожидаю , что этот угол не сильно изменится во время коррекции орбиты, но я могу ошибаться (надеюсь, скоро будет ответ ). Это ожидание основано на уравнениях, выполняющих мгновенную оптимальную коррекцию каждого параметра, ср. рисунки 4 и 5 внизу.

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

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

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

  1. Самый простой: использовать субоптимальный закон управления с обратной связью (например, Q-закон Петропулоса), который подается на оптимизатор как генетический алгоритм. Это приводит к субоптимальному решению для траектории, но часто очень близко к оптимальному решению. Все, что вам нужно, это закодировать Q-закон и ГА и определить начальную и конечную орбиты. Другие элементы управления, заслуживающие внимания, включают Naasz и Ruggiero (но обратите внимание, что первоначальная формулировка для управления Naasz была проверена только в случаях, когда вы хотите увеличить значение орбитального параметра, и вам нужно выполнить небольшое изменение в уравнениях, чтобы сделать это работает по-другому (я могу предоставить информацию, если это необходимо, я проверил изменения в своем собственном исследовании)).

  2. Самый теоретический и математический метод: косвенные методы, которые решают двухточечную краевую задачу путем нахождения гессиана. Требуются желаемые начальные и конечные условия. Существует несколько таких методов, в основном начатых Беттсом в 1998 году, в том числе прямая стрельба, непрямая стрельба и недавно использованная непрямая коллокация. Одна из проблем, с которой вы столкнетесь, — это выбор начальных множителей Лагранжа, зная, что неправильный выбор может помешать сходимости. Кроме того, эти методы приводят к решениям с открытым контуром.

  3. Прямые методы: время дискретизировано, и на каждом этапе вы пытаетесь найти лучший контроль. Это также метод разомкнутого цикла, и из-за того, как поставлена ​​проблема, вы сталкиваетесь с проклятием размерности (см. Lantoine 2012). Тем не менее, некоторые считают это современным уровнем оптимизации траектории (см. «Оптимизация траектории космического корабля», Conway 2010).

  4. Лучший способ: динамическое программирование: идея здесь состоит в том, чтобы разбить задачу на более простые независимые задачи (подход типа «разделяй и властвуй») и применить принцип оптимальности (принцип обхода графа Беллмана, где кратчайший путь от a до c соответствует кратчайшему пути из a в b и из b в c) (см. рис. 2). Основным недостатком здесь является то, что разделение пространства состояний на независимые подзадачи означает, что вы собираетесь использовать массу памяти для хранения текущих решений... и затем вам нужно будет пройти по этому графу. Однако главное преимущество заключается в том, что вы всегда найдете глобальное оптимальное решение, а возвращаемый функционал представляет собой управление с обратной связью.

  5. Дифференциальное динамическое программирование: это не очень новый метод сам по себе, но он определенно снова набирает обороты в недавней истории. В частности, он используется в NASA Mystic, которое занимается оптимизацией траектории для миссии Dawn (у которой есть три Safran PPS-1350, но каждый раз включается только один, это довольно крутая миссия). Идея этого метода состоит в том, чтобы выбрать начальное предположение для управления, распространить (реальную) динамику вперед, вычислить стоимость, выполнить коррекцию управления путем распространения назад (но с использованием квадратичной аппроксимации динамики (т. е. вы будете нужна также матрица перехода состояний и якобиан STM, который является гессианом динамики)), и, наконец, проверьте, минимизируете ли вы функцию стоимости, снова распространяясь вперед (см. Рисунок 3). Ссылки вы'

Надеюсь, это поможет!

фигура 1фигура 1

фигура 2фигура 2

Рисунок 3Рисунок 3

Рисунок 4Рисунок 4

Рисунок 5Рисунок 5

Это действительно красивый ответ! Я думаю, что он заслуживает лучшего вопроса, чем этот. Для ограниченной задачи от эллиптической 300 x 35786 GTO до круговой GEO, возможно, упрощающий метод «развивающегося эллипса» будет лучше, чем поточечная итерация по всей орбите. Загвоздка здесь в том, что спутник должен вращаться так, чтобы всякий раз, когда он попадет в перицентр, двигатель был направлен в правильном направлении, и, вероятно, включает 400 или 500 витков, каждый из которых немного больше. То, что у вас здесь, лучше подходит для задачи типа «достижение Юпитера через коллектор».
Спасибо :-) Позвольте мне отредактировать ответ, чтобы рассказать о проблеме ротации, которая в основном не является проблемой.
Я все еще думаю, что этот ответ заслуживает гораздо лучшего вопроса, чем этот.
Я понял, что, хотя это объясняет способы определения стратегии, на самом деле она не называется. Q и Q2 — два очень четких вопроса, и здесь нет ответа ни на один из них. Четыре года назад я был слишком вежлив, чтобы сказать, что, хотя это, вероятно, очень хорошо отвечает на другой вопрос, это не отвечает на мой вопрос в том виде, в котором он был задан. Так что я не принял и решил вернуть это в игру.
@uhoh Обновлено ;-)
Супер! Конечно, «когда вы находитесь в очень небольшой области вашего периапса» и «низкая тяга (0,2 Н)» не очень совместимы, но позвольте мне потратить некоторое время, чтобы прочитать ваше обширное редактирование, спасибо!

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

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

Эта задача 2D, но для достижения изменения наклона вам нужно вытолкнуть из плоскости возле апсид. Вы можете визуализировать это как указание «на страницу» в перицентре и медленное вращение вверх, пока он не окажется в плоскости в средней точке, и, наконец, «вне страницы» в апоцентре.

Более реалистичный переход с GTO на GEO потребовал бы НАМНОГО больше спиралей, чем в этой задаче (которая представляет собой глупый переход с какой-то сумасшедшей эллиптической орбиты на орбиту Марса). Для CubeSat или малого спутника с очень ограниченной тягой передача около 6 месяцев может занять более 250 спиралей!

Еще одно заметное отличие состоит в том, что эта проблема решается за минимальное время, а не за минимальное количество топлива. В общем, проблемы с минимальным расходом топлива, как известно, намного сложнее решить с помощью косвенной оптимизации, и обычно используют гомотопию, чтобы сначала решить проблему min (u ^ 2) (где u - усилие управления, в данном случае величина тяги ), а затем с причудливой математикой все ближе и ближе к min(u). Задача min(u^2) имеет гораздо более широкий радиус сходимости, поэтому успешные начальные догадки о костях найти намного проще. Эти численные трудности являются одной из причин, по которой на практике почти всегда предпочитают прямые методы. Для передач с очень малой тягой передача с минимальным временем часто может быть близка к передаче с минимальным порохом.

Когда у вас есть доступная высокая тяга, переход с GTO на GEO будет завершен импульсными маневрами в апсидах. По мере того, как ваш максимальный уровень тяги будет уменьшаться, вам придется либо совершать тягу на больших участках орбиты, либо вам придется совершать тягу для большего количества витков, либо и то, и другое. Доступное топливо и временные ограничения будут определять окончательный выбор траектории.

Это здорово, спасибо!