Меня интересуют солнечные паруса как метод движения. Я подумал о следующем интересном вопросе о работе солнечных парусов, на который у меня просто нет математических способностей, чтобы ответить, но, надеюсь, некоторые из участников этого форума с лучшими математическими знаниями смогут помочь. мне….
Из https://en.wikipedia.org/wiki/Solar_sail , на среднем расстоянии Земля-Солнце (1 а.е.) радиационное давление от Солнца на солнечные паруса с эффективностью 90% создает тягу если парус перпендикулярен направлению Солнца. Предположим, у нас есть космический корабль на орбите на расстоянии 1 а.е. от Солнца, и, допустим, космический корабль весит 10 кг. Для простоты он вращается вокруг Солнца по круговой орбите. Значит, его орбитальная скорость должна быть постоянной и составлять ~29,8 км/с. Затем космический корабль разворачивает солнечный парус толщиной, скажем, 10 мкм, площадью 1000 квадратных метров и сделан из материала плотностью . Итак, масса паруса составляет всего 0,03 кг, что ничтожно мало по сравнению с массой космического корабля.
Следовательно, общая направленная наружу сила из-за давления солнечного излучения на парус (при условии, что он перпендикулярен направлению Солнца и эффективен на 90 %) составляет Икс . Это дает внешнее ускорение (сила/масса) космическому кораблю Икс вдали от Солнца. На расстоянии 1 а.е. от Солнца центростремительное ускорение из-за силы тяжести этого Солнца Икс . Однако, несмотря на то, что результирующая сила, действующая на космический корабль, по-прежнему направлена внутрь, к Солнцу, моя интуиция подсказывает мне, что космический корабль будет постепенно двигаться по спирали наружу на своей орбите вокруг Солнца.
Я бы также предположил, что сила внешней силы, действующей на космический корабль из-за радиационного давления на паруса, будет (как и гравитация Солнца) падать пропорционально обратному квадрату его расстояния от Солнца.
Но вопросы, на которые я не могу ответить, заключаются в том, как мне рассчитать функцию произвольного времени t с момента раскрытия паруса.
Математика очень быстро усложняется. Прежде чем даже рассматривать тягу, вспомните, что само решение Кеплеровской орбиты двух тел не является явной функцией времени: радиус задается как функция угла (истинная аномалия), но время пропорционально средней аномалии, которую необходимо преобразовать в эксцентрическую. аномалии, а затем истинной аномалии путем численного решения трансцендентного уравнения Кеплера .
Даже в самых простых случаях вы говорите о разложении эллиптических интегралов в ряды или непрерывные дроби. Однако, если у вас есть книга Баттина по астродинамике, он показывает, как делать это вручную, как это делали такие люди, как Гаусс и Лежандр, и что должны были пройти все его студенты в Массачусетском технологическом институте, на страницах 408–418. Тем не менее, он начинает раздел с
Одним из возможных возмущающих ускорений, влияющих на космический корабль, является ускорение тяги, создаваемое двигателями корабля. Определение траектории в этих условиях, как и почти во всех задачах о возмущенном движении, вообще требует применения специальных численных методов. Однако есть несколько примеров, представляющих некоторый практический интерес, для которых можно провести серьезный анализ. В частности, если ускорение тяги постоянно по величине и направлено радиально, по касательной или по окружности, то можно получить, хотя бы частично, весьма интересные математические результаты.
Обзор еще нескольких методов, учитывающих, как именно вы планируете двигаться по спирали, которые я считаю в целом более доступными и полезными в данном случае, — это Петропулос и Симс, 2002 г. , «Обзор некоторых точных решений плоских уравнений». движения толкающего космического корабля». Обратите внимание, что они больше всего заинтересованы в использовании солнечных батарей для питания ионного двигателя, позволяющего вам двигаться в наиболее выгодном направлении, которое очень далеко от радиального!
Только частичный ответ, я точно не знаю, что я делаю, но я попробую.
Обновление: ракеты работают, потому что их впечатляющие неудачи были тщательно изучены при свете дня, а не скрыты. Хотя этот комментарий выражает обеспокоенность тем, что приведенная ниже математика может неблагоприятно запутать читателей, я уверен, что читателям здесь будет ясно, что она не дает правильного ответа и что метод сравнения математического решения с численным решением служит как хороший пример того, как можно проверить ответ.
Учитывая начальное ускорение на 1 а.е. .
Наклоните его на 45 градусов, чтобы сделать тягу тангенциальной, разделите на поскольку теперь он наклонен к Солнцу и учитывает падение с расстоянием от Солнца:
в прямом направлении (в том же направлении, что и скорость течения).
Сейчас
где стандартный гравитационный параметр Солнца . Знак минус появляется, потому что мы знаем, что вопреки первому инстинкту, когда у нас есть ускоряющая сила в прямом направлении, мы, вопреки интуиции, замедляемся на ту же величину. Это также цитируется в нескольких других сообщениях здесь, я поищу другие ответы, чтобы процитировать...
Перепишите и решите:
Если мы установим другими словами, в нулевой момент времени мы движемся с орбитальной скоростью получаем 0,408 года.
Интересно, что когда я пытаюсь смоделировать то же самое численно, я получаю время выхода 0,515 года! Меня это удивляет по двум причинам:
На побег уйдет примерно полгода, но полного уравнения у меня пока нет.
Дальнейшее чтение:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
AU = 150E+06 * 1000 # meters
GM = 1.327E+20 # m^3/s^2
a0 = 8.17E-04 / np.sqrt(2) # dv/dt at 1 AU
year = 365.2564 * 24 * 3600
coef = ( GM**2 / (4 * a0 * AU**2) )
v0 = np.sqrt(GM/AU)
print('v0: ', v0)
print('coef: ', coef)
t0 = coef / v0**3
print('t0 / year: ', t0 / year)
def deriv(X, t):
x, v = X.reshape(2, -1)
vhat = v / np.sqrt((v**2).sum())
rsq = (x**2).sum()
acc_thrust = vhat * a0 * rsq / AU**2
acc = acc_thrust - GM * x * rsq**-1.5
return np.hstack((v, acc))
X0 = np.array([AU, 0, 0, v0])
time = np.linspace(0, 0.6, 10001) * year # half year
answer, info = ODEint(deriv, X0, time, full_output=True)
print(answer.shape)
x, y, vx, vy = answer.T
r, speed = [np.sqrt((thing**2).sum(axis=0))
for thing in answer.T.reshape(2, 2, -1)]
E = 0.5 * speed**2 - GM/r
E_norm = np.abs(E[0])
i_esc = np.argmax(E>=0)
things = time, r, x, y, speed, E
t_esc, r_esc, x_esc, y_esc, s_esc, E_esc = [thing[i_esc]
for thing in things]
print('t_esc / year: ', t_esc / year)
if True:
plt.figure()
plt.subplot(2, 2, 1)
plt.plot(time/year, r/AU)
plt.plot([t_esc/year], [r_esc/AU], 'ok')
plt.ylabel('r/AU')
plt.xlabel('time (years)')
plt.subplot(2, 2, 2)
plt.plot(time/year, speed/1000)
plt.plot([t_esc/year], [s_esc/1000], 'ok')
plt.ylabel('speed (km/s)')
plt.xlabel('time (years)')
plt.subplot(2, 2, 3)
plt.plot(time/year, E/E_norm)
plt.plot([t_esc/year], [E_esc/E_norm], 'ok')
plt.plot(time/year, np.zeros_like(time), '-k')
plt.ylabel('Energy (norm)')
plt.xlabel('time (years)')
plt.subplot(2, 2, 4)
plt.plot(x/AU, y/AU)
plt.plot([x_esc/AU], [y_esc/AU], 'ok')
plt.plot([0], [0], 'oy')
th = np.linspace(0, 2*np.pi, 201)
plt.plot(np.cos(th), np.sin(th), '-r', linewidth=0.5)
plt.ylim(-1, 1.5)
plt.gca().set_aspect('equal')
plt.xlabel('AU')
plt.ylabel('AU')
plt.show()
Джон Дэвис
Петр Назаренко
Лито
пользователь21103
Джон Дэвис
ДДжонМ
Лито