Я пытался ответить на уравнение скорости и расстояния от Солнца космического корабля с солнечным парусом, но что-то упускаю.
Я подготовил математическое решение и получил около 0,4 года, чтобы достичь нулевой скорости на основе уравнения vis-viva. Очевидно, я сделал некоторую ошибку в предположениях, потому что это означает, что он находится на круговой орбите с нулевой скоростью, что означает бесконечное расстояние, а бесконечное расстояние за конечное время — это плохо.
Когда я решаю численно, я получаю аналогичное число около 0,5 лет, чтобы достичь положительной энергии, гелиоцентрического C3, скорости убегания и т. д., и я верю в эту симуляцию.
Вопрос: Почему мое математическое решение vis-viva оказалось таким близким, несмотря на то, что оно было неправильным? При каких условиях это было бы хорошим приближением?
Этот ответ говорит:
Учитывая начальное ускорение на 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()
Во-первых, вы, кажется, имеете следующее непонимание векторов силы солнечного паруса:
Наклоните его на 45 градусов, чтобы сделать тягу тангенциальной.
Тяга не тангенциальная под углом 45 градусов.
На самом деле солнечный парус всегда имеет тягу, перпендикулярную парусу , и, таким образом, не может достичь тяги, идеально касательной к Солнцу, поскольку тогда поперечное сечение было бы равно нулю.
Ваша обработка угла 45 градусов также не работает. Величина вектора тяги масштабируется на , так как площадь поперечного сечения уменьшается, а свет сохраняет большую часть своего первоначального импульса с большим углом.
Это означает, что у вас есть тангенциальная составляющая (половина вашего значения) и радиальный компонент (что вы не учли).
Это существенно повлияет на вашу следующую часть, которая предполагает круговую орбиту. При радиальном ускорении орбита не может оставаться круговой, что делает недействительным аргумент о живой силе, который вы приводите. Другая проблема заключается в том, что используемый вами частный случай vis-viva применим только к скорости круговых орбит. Чтобы это приближение имело смысл, вы должны гарантировать, что орбита остается примерно круговой, что сложно, поскольку всегда есть радиальная тяга от паруса.
Ваш код выглядит так, как будто он также зависит от фиктивного дифференциального уравнения, полученного из исходной ошибочной модели солнечного паруса.
Отвечать:
Почему мое математическое решение vis-viva оказалось таким близким, несмотря на то, что оно было неправильным?
Вероятно, это не близко, так как его сравнивают с альтернативным расчетом, основанным на той же самой уязвимости.
асдфекс
асдфекс
асдфекс
ооо
Коннор Гарсия
асдфекс