Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show ☊ and ☋ with respect to the equator in body-centred inertial frames #1841

Closed
eggrobin opened this issue May 24, 2018 · 6 comments · Fixed by #2170
Closed

Show ☊ and ☋ with respect to the equator in body-centred inertial frames #1841

eggrobin opened this issue May 24, 2018 · 6 comments · Fixed by #2170
Assignees

Comments

@eggrobin
Copy link
Member

eggrobin commented May 24, 2018

This came up during the design discussion in #1840.

This is not quite as simple as changing the conditions for prediction nodes and flight plan nodes, since the xy plane for the body-centred inertial frames is currently the global reference plane (Earth's equator in RSS, Kerbin's in stock) rather than the plane of the equator of the relevant body.

Perhaps it would be easiest to change the definition of BodyCentredNonRotatingDynamicFrame so that it uses the same z axis as BodySurfaceDynamicFrame, making the y axis the node Q rather than making the x axis the point B from figure 1 of the 2009 report of the IAU WGCCRE.

Note that Q≠♈︎ for Earth, since α₀=0; this motivates making the y axis the node Q, rather than the x axis, so that the x axis points towards ♈︎ for Earth (in other words, BodyCentredNonRotatingDynamicFrame for Earth would be the same as Barycentric in RSS).

Addendum: it seems GitHub ignores VS-15 on U+2648 ARIES unless it is within a code block.

@eggrobin
Copy link
Member Author

Perhaps it would be easiest to change the definition of BodyCentredNonRotatingDynamicFrame so that it uses the same z axis as BodySurfaceDynamicFrame, making the y axis the node Q rather than making the x axis the point B from figure 1 of the 2009 report of the IAU WGCCRE.

This sounds mostly useful, except for the Sun; the inclination of the Earth's orbit with respect to the Sun's equator is about 7°, and most other planetary orbits would be similarly inclined.

Perhaps we should use the invariable plane of the solar system for the sun?

The Sun's equator would be a useful reference plane in a system with a highly oblate star, but hopefully in such a system the invariable plane would match the stellar equator better (consider, for instance, the low inclinations of the large moons of Jupiter).

@eggrobin
Copy link
Member Author

except for the Sun

Unfortunately, a similar problem applies to any body with meaningful obliquity, and there is no clear solution when the body is oblate or can be landed on.
For instance, considering orbits around the Earth:

  • the interesting inclination for synchronous and lower is that with respect to the equator (it corresponds to the maximal latitude of the ground track, and it remains constant under the effect of precession induced by 𝐽2);
  • the interesting inclination for the orbit of the Moon is that with respect to the ecliptic, which is roughly constant (around 5°.14) as the nodes precess, whereas the inclination with respect to the Earth's equator varies between 18°.3 and 28°.6 over the same cycle.

Perhaps the solution is to offer two different body-centred reference frames:

  • body equator, as described above (invariant since we do not have axis precession-nutation models);
  • body orbit, whose z axis is perpendicular to the orbit (a slowly rotating frame since the orbit precesses, e.g., with an 18 year period), or invariant plane for the Sun.

We could make the x axis point to the ascending node of the orbit with respect to the equator of the orbiting body; this puts the x axis at the equinox, close to ♈︎ for the case of Earth (coinciding at J2000).

@eggrobin
Copy link
Member Author

Relevant to the "show the inclination" part of this feature request: https://www.reddit.com/r/KerbalSpaceProgram/comments/9jug8y/mods_that_help_out_with_principia/.

@eggrobin
Copy link
Member Author

eggrobin commented May 5, 2019

Further thoughts: showing nodes with respect to the invariable plane or with respect to the ecliptic in the heliocentric or geocentric frames respectively does not seem all that critical: for a heliocentric orbit, one can care about its deviation from the plane of the orbit of a planet, e.g. for a transfer, or for an Earth-trailing orbit (Spitzer, Kepler, STEREO-B, etc.), but we have more appropriate reference frames for that (body-centred fixing the direction of the Sun).

We still do not want to show nodes with respect to the equator of the Sun, but we would want to do so for a very oblate star, and we want to show nodes with respect to the equator of Jupiter, so that showing nodes only in reference frames centred on a body with a landable surface is not the answer.

Perhaps we should display the nodes:

  • unconditionally if the central body has a surface on which it is possible to land, as in that case they are useful for ground track analysis, even if the orbit precesses in a different plane; this is similar to the unconditional displaying of nodes in the surface frame;
  • within some appropriate range if the body has a nonzero 𝐽2 but has no ground, as the inclination with respect to the equator is relevant when 𝐽2 matters, see the Молния inclination etc.

@eggrobin
Copy link
Member Author

eggrobin commented May 14, 2019

we should display the nodes […] within some appropriate range if the body has a nonzero 𝐽2 but has no ground

Using the inner_threshold of the Geopotential::HarmonicDamping for degree 2 with a tolerance of 2-24 (note that the tolerance used here should not vary with the one in the numerics blueprint, since we should not start caring more about the equator of the sun even if we simulate the solar system more accurately), we get the following values for the solar system bodies that have no ground:

Threshold
 2 268 473 408,26164103 m   =   3,3 ℛN = 0,039 𝑎
61 485 396 603,2066574 m    = 860 ℛ𝑒JN = 1,2 𝑟Hill ♃ = 33 𝑎Callisto
54 629 082 549,7388153 m    = 938 𝑅 = 0,89 𝑟Hill ♄ = 15 𝑎Iapetus = 4,2 𝑎Phoebe
10 743 852 957,8324566 m    = 423 𝑅 = 0,16 𝑟Hill ♅ = 18 𝑎Oberon
10 447 898 379,5284729 m    = 424 𝑅 = 0,091 𝑟Hill ⯉ = 29 𝑎Triton = 1,9 𝑎Nereid

The values seem large enough for the gas giants (in particular, they encompass the major satellites), and small enough as to not be a concern for the Sun (even the Parker Solar probe does not come close enough).

For comparison, here are corresponding thresholds for some telluric planets:

Threshold
    90 093 373,0178448409 m =  15 𝑅 = 0,090 𝑟Hill ♀
🜨  1 488 865 844,35271454 m   = 233 ℛ𝑒EN = 1,0 𝑟Hill 🜨 = 3,9 𝑎
 1 065 713 084,68501496 m   = 314 𝑅 = 1,1 𝑟Hill ♂ = 25 𝑎Deimos

These have a surface, so the thresholds would not actually be used.

@eggrobin
Copy link
Member Author

eggrobin commented May 14, 2019

unconditionally if the central body has a surface on which it is possible to land

This is a bad criterion: as adding a technically-landable surface beneath a thousand kilometres of atmosphere should not change the way we display orbits.

A possibility would be to take the maximum of

  • the inner_threshold of the Geopotential::HarmonicDamping for degree 2 with a tolerance of 2-24
  • the semimajor axis of an orbit whose period is twice the period of revolution of the body.

This means that we show the nodes for synchronous orbits (for these and lower orbits, the surface may matter), and when 𝐽2 is relevant.

The table becomes

𝐽2 threshold supersynchronous threshold
 2 268 473 km =   3,3 ℛN = 0,039 𝑎 40 136 621 km =  58 ℛN = 0,69 𝑎
    36 329 km =  15 𝑅 = 0,21 𝑟Hill ☿    385 555 km = 158 𝑅 = 2,2 𝑟Hill ☿
    90 093 km =  15 𝑅 = 0,090 𝑟Hill ♀  2 439 122 km = 403 𝑅 = 2,4 𝑟Hill ♀
🜨  1 488 866 km = 233 ℛ𝑒EN = 1,0 𝑟Hill 🜨 = 3,9 𝑎     66 931 km =  10 ℛ𝑒EN
 1 065 713 km = 314 𝑅 = 1,1 𝑟Hill ♂ = 25 𝑎Deimos     32 427 km =   9,6 𝑅
61 485 397 km = 860 ℛ𝑒JN = 1,2 𝑟Hill ♃ = 33 𝑎Callisto    253 998 km =   3,6 ℛ𝑒JN
54 629 083 km = 938 𝑅 = 0,89 𝑟Hill ♄ = 15 𝑎Iapetus
 = 4,2 𝑎Phoebe
   178 171 km =   3,1 𝑅
10 743 853 km = 423 𝑅 = 0,16 𝑟Hill ♅ = 18 𝑎Oberon    131 256 km =   5,2 𝑅
10 447 898 km = 424 𝑅 = 0,091 𝑟Hill ⯉ = 29 𝑎Triton
 = 1,9 𝑎Nereid
   132 560 km =   5,4 𝑅

While this leads to slightly absurd results for the slowly-rotating planets (Mercury and Venus), where a threshold based on the synchronous altitude is picked even though the synchronous altitude would be outside the Hill sphere, and thus synchronous orbits would be impossible, this is fine: the body-centred non-rotating frame is irrelevant outside the Hill sphere anyway.

The important thing is to avoid showing irrelevant nodes where the reference frame itself is relevant, which happens because the reference plane is not a dynamical property of the reference frame.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant