BEARBEITEN Dies war KEIN Duplikat der Horseshoe Orbit Cycle Times .
Aber diese andere Frage wurde trotzdem gelöscht . Meine ursprüngliche Frage fragte nach der Antwort auf die Gleichung (en) und liefert viele der Variablen. Aber da anscheinend niemand bereit / in der Lage war, sie zu beantworten, fragt diese neue Frage nur nach der Form der Gleichung (en) selbst und einer Liste der beteiligten Variablen, damit ich entweder mehr Informationen zu einer zukünftigen Frage geben oder es versuchen kann und die Gleichungen selbst lösen (obwohl ich meine mathematischen Fähigkeiten dazu bezweifle, daher die ursprüngliche Frage, wenn ich weiß, um welche Gleichungen und Variablen es geht, kann ich es zumindest selbst versuchen).
Welche Variablen müssen bekannt sein, um eine Hufeisenumlaufzykluszeit zu berechnen?
Mit anderen Worten: Was ist die Gleichung und was stellen die Variablen in dieser Gleichung dar (Geschwindigkeit? Masse? Halbe Hauptachsen? usw.), um die Zeit zu berechnen, die ein Objekt benötigt, um von Punkt A auf diesem Bild durchzugehen Punkte B, C, D und E und zurück zu A entlang der hellblauen Linie im Bild oben (Bild auch hier verfügbar )?
Zum Beispiel beenden Erde und Cruithne ihren Zyklus in 770 Jahren, während Janus und Epimetheus ihren in 8 Jahren abschließen. Ich bin zuversichtlich, dass große Halbachsen Schlüsselfaktoren in der Gleichung sind, aber ich weiß nicht, welche anderen Variablen enthalten sind oder wie sich die Variablen in der Berechnung zueinander verhalten.
Ich verstehe auch, dass diese Umlaufbahnen langfristig nicht stabil sind und dass mein Beispiel von Cruithne besonders komplex ist, da es tatsächlich periodisch den Umlaufbahntyp ändert und wahrscheinlich vollständig aus dem Sonnensystem ausgestoßen wird oder die Sonne beeinflusst oder Jupiter, irgendwann. Aber diese Komplexitäten gehören zu einer anderen Zeit. Für diese Frage möchte ich nur die Gleichung in ihrer einfachsten Form kennen.
Das hängt von der Genauigkeit ab, mit der Sie arbeiten möchten. In nullter Ordnung, wie in Murray & Dermott, "Solar System dynamics", Kap. 3. beschrieben, können Sie Folgendes tun:
Nur aus Neugier habe ich ein paar Werte in diese Formel eingefügt und schnell etwas in Python geschrieben:
import numpy as np
#Basic physics quantities
G = 6.678e-8 #cgs units
pi = 3.141592
navo = 6e23 # particles per mole
sigma = 5.67e-5 #erg cm-2 s-1 K-4
kb = 1.38e-16 #erg/K
km = 1e5 #kilometers in cm
mearth = 5.98e27 #g
msun = 2.0e33 #g
au = 1.49e13 #cm
yr = 365*24*3600
rearth = 6370e5
rjupiter = 74000*km
#
# Returns the approximate horseshoe-cycle time in the reduced 3body problem
# Masses of bodies: m0>>m1>>m2
# Semimajor axis distance is from m0 to m1, radial distance is a(m0->m1)-a(m0->m2)
#
def hs_cycle(mcentral, semimajor_axis, radial_distance):
return 4*pi/np.sqrt(G*mcentral)*semimajor_axis**(5./2.)/radial_distance/yr
#
# https://en.wikipedia.org/wiki/(419624)_2010_SO16 around the Sun
#
# Quoted cycle time ~350 years, with d=0.004 AU
#
print("Predicted 2010_SO16 cycletime [years] = ", hs_cycle(msun, 1*au,0.004*au), " predicted = 350 yrs")
#
# Janus/Epimetheus around Saturn
#
# a = 151410 km, d = 25 km, as stated in https://en.wikipedia.org/wiki/Epimetheus_(moon)
# Quoted cycle time = 8 years (from comments)
#
print("Predicted Janus/Epimetheus cycletime [years] = ", hs_cycle(95*mearth, 151410*km,50*km), " predicted = 4 yrs")
#
# 3753 Cruithne
#
# a = 1 AU and semimajor axis difference from https://en.wikipedia.org/wiki/3753_Cruithne
# Quoted cycle time = 770 years
#
print("Predicted 3753 Cruithne cycletime [years] = ",hs_cycle(msun, 1*au, (1.0-0.99774)*au), " predicted = 770 yrs")
und die Ergebnisse, die ich bekomme, sind
Predicted 2010_SO16 cycletime [years] = 495.7747141830971 predicted = 350 yrs
Predicted Janus/Epimetheus cycletime [years] = 11.542076781209305 predicted = 8 yrs
Predicted 3753 Cruithne cycletime [years] = 877.4773702355546 predicted = 770 yrs
Die Formel kann also bis zu einem Faktor von ~2 abweichen. Dies liegt sicherlich einfach daran, dass die Realität komplexer ist als eine einfache Kreisbahnnäherung, aber auch an der Qualität der verwendeten Werte. Wikipedia ist nicht dafür bekannt, bestimmte Werte gut zu recherchieren. Ich nahm die, die ich dort fand. Für SO16 war die Auswahl besonders verwirrend, also nahm ich die beiden, die in derselben Textzeile erwähnt wurden, in der Hoffnung, dass sie aus derselben Quelle stammen würden.
Wer konsistentere Werte findet, kann gerne kommentieren.
Ernest W. Browns On a New Family of Periodic Orbits in the Problem of Three Bodies: (Tafeln 6, 7.) in MNRAS, 71, (5), S. 438–454, veröffentlicht am 10. März 1911, scheint dort zu sein, wo Hufeisenbahnen waren zuerst vorgeschlagen. ( Auch hier erhältlich). Es beginnt:
Es gibt vier bekannte Asteroiden, die um den einen oder anderen Eckpunkt der beiden gleichseitigen Dreiecke zu oszillieren scheinen, deren Basis die Verbindungslinie zwischen Jupiter und Sonne ist. Diese Scheitelpunkte sind die wohlbekannten Positionen des relativen Gleichgewichts. Der heliozentrische Vektor eines dieser Asteroiden kann sich anscheinend bis zu 17° von seiner Gleichgewichtslage entfernen.* Die Schwingungen können daher nicht als sehr klein angesehen werden. Man fragt sich natürlich, ob Schwingungen dieser Art in noch grösseren Bögen möglich sind; und wenn ja, auf welche Weise kann er die Umlaufbahnen am bequemsten erhalten?
*LJ Linders, Arhivfor Mat., Ast. och Fys., So. Tierarzt. Ak. Ich Stockholm, Bd. 4, Nr. 20.
Ich werde einige Hufeisenbahnen im Circular Restricted Three-Body Problem-Formalismus erstellen und sie in Python darstellen und dann mit der Schätzung der synodischen Periode vergleichen, die in der Antwort von @AtmosphericPrisonEscape beschrieben wird .
tl;dr: Gute qualitative Übereinstimmung, keine Überraschungen!
Eine kurze Zusammenfassung der CR3BP-Mathematik in dimensionslosen Einheiten. Der Abstand zwischen den beiden Körpern ist gleich 1, ebenso die Gravitationskonstante. Sie umkreisen einen gemeinsamen Schwerpunkt auf Kreisbahnen mit einer Periode von . Es ist einfacher zu visualisieren und zu berechnen, wenn Sie es in einem rotierenden Rahmen tun, sodass die beiden Massen fest sind. Der dritte Körper an Position wird angenommen, dass es keine Gravitationswirkung auf die ersten beiden hat,
Die Jacobi-Energie ist eine Erhaltungsgröße in diesem Rotationssystem:
bei dem die ist das Pseudopotential. Wenn Sie die geschwindigkeitsabhängigen Terme einstellen auf Null, erhalten Sie eine Oberfläche mit Nullgeschwindigkeit , diese Oberfläche, die in viele/die meisten Fragen zu drei Körperumlaufbahnen eingefügt wird. Diese Diagramme gelten nicht, wenn sich ein Objekt bewegt, und Sie können ihnen daher keine Umlaufbahnen überlagern!
Die Beschleunigung, die der dritte Körper in diesem rotierenden Rahmen spürt, hat beides, was erwartet wird Kräfte und eine geschwindigkeitsabhängige Pseudokraft , die nicht real ist, aber die Tatsache berücksichtigt, dass sich der Rahmen dreht und nicht träge ist.
Hier sind einige Berechnungen. Ich entschied mich was der Situation Jupiter und Sonne ziemlich nahe kommt. Ich wählte eine Reihe von Startpunkten am gegenüberliegenden Punkt aus bei etwa aber das habe ich wirklich nicht gemacht. Was ich wirklich getan habe, ist eine Reihe von Startgeschwindigkeiten zu wählen und für jeden berechnete ich die Position auf der Achse in der Nähe wo die Beschleunigung in der Richtung war Null.
Das gibt den Lösungen ein kleines bisschen Startsymmetrie, aber Halo-Orbits sind holprig und wackelig und nicht immer so stabil, also ist dieser Aufwand nicht wirklich notwendig.
Ich propagierte jede Umlaufbahn, bis sie in denselben Bereich zurückkehrte, und stoppte sie, als sie die x-Achse kreuzte, wodurch eine Familie von Halbzyklen erzeugt wurde.
Um es kurz zu machen, die in der Antwort von @AtmosphericPrisonEscape gezeigte Methode zur Schätzung der Zykluszeit durch Berechnung der synodischen Periode im Trägheitsrahmen stimmt ziemlich gut mit diesen Halo-Umlaufbahnen überein, und das sollte nicht sehr überraschend sein!
oben: Halbzyklen einiger wackeliger Hufeisenbahnen
oben: Zeiten bis zum ersten Kreuzen der x-Achse der gleichen wackeligen Hufeisenbahnen, die zur Berechnung der Halbzykluszeiten verwendet werden.
oben: Zykluszeiten aus dieser Berechnung (schwarze Punkte) versus aus der Schätzmethode der synodischen Periode (rote Punkte). Gute qualitative Übereinstimmung. Auch die Startgeschwindigkeiten y an jedem Startpunkt in x.
unten: Python-Skript für diese Plots.
def x_acc(x, ydot):
r1 = np.abs(x-x1)
r2 = np.abs(x-x2)
xddot = x + 2*ydot - ((1-mu)/r1**3)*(x+mu) - (mu/r2**3)*(x-(1-mu))
return xddot
def C_calc(x, y, z, xdot, ydot, zdot):
r1 = np.sqrt((x-x1)**2 + y**2 + z**2)
r2 = np.sqrt((x-x2)**2 + y**2 + z**2)
C = (x**2 + y**2 + 2.*(1-mu)/r1 + 2.*mu/r2 - (xdot**2 + ydot**2 + zdot**2))
return C
def deriv(X, t):
x, y, z, xdot, ydot, zdot = X
r1 = np.sqrt((x-x1)**2 + y**2 + z**2)
r2 = np.sqrt((x-x2)**2 + y**2 + z**2)
xddot = x + 2*ydot - ((1-mu)/r1**3)*(x+mu) - (mu/r2**3)*(x-(1-mu))
yddot = y - 2*xdot - ((1-mu)/r1**3)*y - (mu/r2**3)*y
zddot = - ((1-mu)/r1**3)*z - (mu/r2**3)*z
return np.hstack((xdot, ydot, zdot, xddot, yddot, zddot))
# http://cosweb1.fau.edu/~jmirelesjames/hw4Notes.pdf
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
from scipy.optimize import brentq
halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]
mu = 0.001
x1 = -mu
x2 = 1. - mu
x = np.linspace(-1.4, 1.4, 1201)
y = np.linspace(-1.4, 1.4, 1201)
Y, X = np.meshgrid(y, x, indexing='ij')
Z = np.zeros_like(X)
xdot, ydot, zdot = [np.zeros_like(X) for i in range(3)]
C = C_calc(X, Y, Z, xdot, ydot, zdot)
C[C>8] = np.nan
if True:
plt.figure()
plt.imshow(C)
plt.colorbar()
levels = np.arange(2.9, 3.2, 0.04)
CS = plt.contour(C, levels,
origin='lower',
linewidths=2)
plt.show()
ydot0s = np.linspace(-0.08, 0.08, 20)
x0ydot0s = []
for ydot0 in ydot0s:
x0, infob = brentq(x_acc, -1.5, -0.5, args=(ydot0), xtol=1E-11, rtol=1E-11,
maxiter=100, full_output=True, disp=True)
x0ydot0s.append((x0, ydot0))
states = [np.array([x0, 0, 0, 0, ydot0, 0]) for (x0, ydot0) in x0ydot0s]
times = np.arange(0, 150, 0.01)
results = []
for X0 in states:
answer, info = ODEint(deriv, X0, times, atol = 1E-11, full_output=True)
results.append(answer.T.copy())
resultz = []
for x0ydot0, thing in zip(x0ydot0s, results):
y = thing[1]
check = y[2:]*y[1:-1] < 0
zc = np.argmax(y[2:]*y[1:-1] < 0) + 1
if zc > 10:
resultz.append((thing, zc, x0ydot0))
if True:
plt.figure()
hw = 1.6
for j, (thing, zc, x0ydot0) in enumerate(resultz):
x, y = thing[:2,:zc]
plt.plot(x, y)
plt.xlim(-hw, hw)
plt.ylim(-hw, hw)
plt.plot([x1], [0], 'ok')
plt.plot([x2], [0], 'ok')
plt.show()
if True:
plt.figure()
for j, (thing, zc, x0ydot0) in enumerate(resultz):
x, y = thing[:2]
plt.plot(times[:zc], y[:zc])
plt.show()
if True:
plt.figure()
for j, (thing, zc, x0ydot0) in enumerate(resultz):
x0, ydot0 = x0ydot0
cycle_time = 2. * times[zc] / twopi
ratio = abs(x0/x2)
T_simple_model = twopi * abs(x0/x2)**1.5
T_synodic_simple_model = 1. / (1. - twopi/T_simple_model) # https://astronomy.stackexchange.com/a/25002/7982
plt.subplot(2, 1, 1)
plt.plot(x0, cycle_time, 'ok')
plt.plot(x0, abs(T_synodic_simple_model), 'or')
plt.subplot(2, 1, 2)
plt.plot(x0, ydot0, 'ok')
plt.subplot(2, 1, 1)
plt.xlabel('x0', fontsize=16)
plt.ylabel('cycle times (periods)', fontsize=16)
plt.subplot(2, 1, 2)
plt.xlabel('x0', fontsize=16)
plt.ylabel('ydot0', fontsize=16)
plt.show()
äh
äh
äh
Harthag
Harthag
äh
äh
Peterh
Harthag
Harthag
äh
äh