I have no idea what this is and have been searching on the net but all I get is eccentric anomaly. The equation that relates hyperbolic eccentric anomaly F to its true anomaly $\theta$ is exactly the same as that between eccentric anomaly E and its true anomaly. I am guessing it is probably the hyperbolic version of the ellipse.
-
1$\begingroup$ A question about the definition of eccentric anomaly for hyperbolic Keplerian orbits is most certainly on-topic here. I think the unexplained close vote for off-topic is both eccentric, and an anomaly! $\endgroup$– uhohCommented Jun 3, 2018 at 12:01
2 Answers
Hyperbolic anomaly is the hyperbolic equivalent of eccentric anomaly.
As you mentioned in a comment above, eccentric anomaly is the angle from the central body to the auxiliary circle of the orbit. Because a hyperbolic orbit does not have an auxiliary circle, we need a different formulation.
For hyperbolic anomaly, we use an equilateral hyperbola, which has an eccentricity of $\sqrt2$.
The tricky bit with hyperbolic anomaly is that instead of an angle, it is defined as an area.
$ F = 2*Area / a^2 $
Where $Area$ is defined as the area between the X axis, the equilateral hyperbola from periapsis until the vertical projection of the spacecraft location, and the line between this projection point and the origin.
In your image, this is the shaded area.
It's a non-intuative parameter that doesn't really have a physical meaning that anyone uses. Primarily, it is just used as a mathematical quantity.
-
$\begingroup$ Is it possible to calculate it from the mean anomaly? $\endgroup$– RobotexCommented Oct 21, 2021 at 8:38
The equation that relates hyperbolic eccentric anomaly F to its true anomaly θ is exactly the same as that between eccentric anomaly E and its true anomaly.
It looks like they are not the same.
From this handy table I've reconstructed the following equation sets. $E$, $D$, and $F$ are the eccentric anomalies for elliptical (and circular), parabolic, and hyperbolic Keplerian orbits.
The source of that table is in turn:
Reference: "Fundamentals of Astrodynamics" by R.R.Bate, D.D.Mueller, and J.E. White, Dover Publications (1971)
You might be able to find pdf versions online, or better yet, physical versions in a library.
note: I have borrowed much of this from this answer.
Ellipse, Circle $(0 \le \epsilon < 1)$:
$$\tan \frac E2 = \sqrt{\frac{1-e}{1+e}} \tan\frac\theta2$$ $$\text{or}$$ $$\cos E = \frac{e+\cos\theta}{1+e\cos\theta} \tan\frac\theta2,$$ $$M = E - e\sin E,$$ $$\Delta M = M_2 - M_1,$$ $$\Delta t = \sqrt{\frac{a^3}{\mu}} \Delta M,$$
Hyperbola ($\epsilon > 1)$:
$$\tanh \frac F2 = \sqrt{\frac{e-1}{e+1}} \tan\frac\theta2$$ $$\text{or}$$ $$\cosh F = \frac{e+\cos\theta}{1+e\cos\theta} \tan\frac\theta2,$$ $$M = e\sinh F-F,$$ $$\Delta M = M_2 - M_1,$$ $$\Delta t = \sqrt{\frac{(-a)^3}{\mu}} \Delta M,$$
Parabola ($\epsilon = 1)$:
$$D = \tan\frac\theta2,$$ $$M = D + \frac{D^3}{3},$$ $$\Delta M = M_2 - M_1,$$ $$\Delta t = \sqrt{\frac{q^3}{\mu}} \Delta M,$$
To get the semi-major axis $a$ or to get $q$, use the following (don't worry that $a$ is negative for the hyperbola):
Ellipse, Hyperbola:
$$a=\frac{r_{peri}}{1-e}$$
Ellipse:
$$a=\frac{r_{peri}+r_{apo}}{2}$$
Circle:
$$a=r$$
Parabola:
$$q=r_{peri}$$
A quick check with $\mu=1$ and $r_{peri}=1$:
e theta a v_peri E/D/F M t
1.5 90.000000 -2.0 1.581139 55.14281 40.94513 2.021271
1.0 90.000000 n/a 1.414214 57.29578 76.39437 1.885618
0.5 90.000000 2.0 1.224745 60.00000 35.19020 1.737177
0.0 90.000000 1.0 1.000000 90.00000 90.00000 1.570796
If you want to try it in Python:
def deriv(X, t):
x, v = X.reshape(2, -1)
acc = -mu * x * ((x**2).sum())**-1.5
return np.hstack((v, acc))
def get_D(theta, e):
if e == 1.0:
D = np.tan(0.5*theta)
else:
D = np.nan
return D
def get_E(theta, e):
if e < 1.0:
term = np.sqrt((1.-e)/(1.+e)) * np.tan(0.5*theta)
E = 2.*np.arctan(term)
else:
E = np.nan
return E
def get_E_alt(theta, e):
if e < 1.0:
term = (e + np.cos(theta)) / (1. + e*np.cos(theta))
E = np.arccos(term)
else:
E = np.nan
return E
def get_F(theta, e):
if e > 1.0:
term = np.sqrt((e-1.)/(e+1.)) * np.tan(0.5*theta)
F = 2.*np.arctanh(term)
else:
F = np.nan
return F
def get_F_alt(theta, e):
if e > 1.0:
term = (e + np.cos(theta)) / (1. + e*np.cos(theta))
F = np.arccosh(term)
else:
F = np.nan
return F
def get_M_from_E(E, e):
if e < 1.0:
M = E - e*np.sin(E)
else:
M = np.nan
return M
def get_M_from_F(F, e):
if e > 1.0:
M = e*np.sinh(F) - F
else:
M = np.nan
return M
def get_M_from_D(D, e):
if e == 1.0:
M = D + D**3/3.
else:
M = np.nan
return M
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
# http://www.bogan.ca/orbits/kepler/orbteqtn.html
quarterpi, halfpi, pi, twopi = [f*np.pi for f in [0.25, 0.5, 1, 2]]
rads, degs = pi/180, 180/pi
mu = 1.0
th0, th1 = 0.0, halfpi
print "th0, th1 (degs): ", degs*th0, degs*th1
eccs = [1.5, 1.0, 0.5, 0.0]
for e in eccs:
print "e: ", e
rp = 1.0 # periapsis
if e < 1.0:
print " is ellipse!"
ra = rp * (1+e)/(1-e)
print "rp, ra: ", rp, ra
a0 = 0.5*(rp + ra)
v0 = np.sqrt(mu * (2./rp - 1./a0))
print "a0, v0: ", a0, v0
E0, E1 = [get_E(th, e) for th in [th0, th1]]
M0, M1 = [get_M_from_E(E, e) for E in [E0, E1 ]]
print "E0, E1 (degs): ", degs*E0, degs*E1
print "M0, M1 (degs): ", degs*M0, degs*M1
print "E0, E1: ", E0, E1
print "M0, M1: ", M0, M1
dt = np.sqrt(a0**3/mu) * (M1-M0)
print "dt (sec): ", dt
elif e > 1.0:
print " is hyperbola!"
ra = rp * (1+e)/(1-e)
print "rp, ra: ", rp, ra
a0 = 0.5*(rp + ra)
v0 = np.sqrt(mu * (2./rp - 1./a0))
print "a0, v0: ", a0, v0
F0, F1 = [get_F(th, e) for th in [th0, th1]]
M0, M1 = [get_M_from_F(F, e) for F in [F0, F1 ]]
print "F0, F1 (degs): ", degs*F0, degs*F1
print "M0, M1 (degs): ", degs*M0, degs*M1
print "F0, F1: ", F0, F1
print "M0, M1: ", M0, M1
dt = np.sqrt((-a0)**3/mu) * (M1-M0)
print "dt (sec): ", dt
elif e == 1.0:
print " is parabola!"
print "rp: ", rp
v0 = np.sqrt(mu * (2./rp))
print "v0: ", v0
D0, D1 = [get_D(th, e) for th in [th0, th1]]
M0, M1 = [get_M_from_D(D, e) for D in [D0, D1 ]]
print "D0, D1 (degs): ", degs*D0, degs*D1
print "M0, M1 (degs): ", degs*M0, degs*M1
print "D0, D1: ", D0, D1
print "M0, M1: ", M0, M1
q = rp
dt = np.sqrt(2.*q**3/mu) * (M1-M0)
print "dt (sec): ", dt
time = np.array([0, dt])
X0 = np.array([rp, 0, 0, v0])
answer, info = ODEint(deriv, X0, time, atol=1E-13, rtol=1E-13, full_output=True)
x, y, vx, vy = answer.T
theta = np.arctan2(y, x)
print degs*theta[0], degs*theta[-1], " should be ", degs*th0, degs*th1
-
$\begingroup$ Thanks for the help! However I have no idea what is this hyperbolic eccentric anomaly F. For the eccentric anomaly E, it is the angle from the center to the Auxiliary circle. But what about F? F is not visually represented on the diagram and thats why I am really confused $\endgroup$ Commented Jun 5, 2018 at 11:49
-
$\begingroup$ @newbie125 oh I see, you'd really like a geometrical explanation or really an illustration. Hmm... I don't know beyond how it's used mathematically, but I will try to find out for you. Thanks for your comment. $\endgroup$– uhohCommented Jun 5, 2018 at 11:55
-
$\begingroup$ @newbie125 I see there is a new and much better answer to your question! $\endgroup$– uhohCommented Jun 14, 2018 at 5:38