Page 1 of 1

Avoiding intersecting orbits

Posted: 16.07.2005, 04:24
by elevator
Good evening,
Love Celestia. I have one question though: I am making a solar system and around the larger planets I have many smaller bodies as moons pretty close together. How can I make sure that the orbital parameters I design doesn't cause the moon's orbits to intersect? What I basically want to avoid is these bodies colliding at some point in time. Is there a way to veryfy if the orbit of one body intersects with the orbit of another?

Thanks,
Elev.

Posted: 16.07.2005, 10:27
by selden
Celestia does not yet implement precession of nodes in Keplerian orbits, so orbits don't change with time. In Celestia, you can turn on "show orbits". If the lines intersect -- *bam* :)

When they come extremely close to one another, you may have to increase the number of line segments that are drawn to be really sure. This is documented in the Celestia's text file celestia.cfg.

If you mean how can you detect such things algorithmically, well, there I can't help.

Posted: 16.07.2005, 15:13
by Spaceman Spiff
Hmm, there's no easy way to visually inspect whether the orbit lines do intersect in Celestia, because looking at a 2D screen with constant width lines doesn't tell you what's in front of what. You'd have to wiggle the scene a little to get a 3D impression. Even so, looking at the orbits of Neptune and Pluto together, you can't easily see that they never get within a few A.U. of each other.

I can't guess your level of Celestia knowledge from what you sent so can I check you do know that in Celestia, if orbits overlap and each body co-incides, they just move though each other - there's no explosions or such? Unrealistic, but not a showstopper.

You could 'audit' for moon collisions by following one (F) and centering it (C), then moving above the moon's orbital plane and speed up time. The other moons make funny looping patterns as they sweep passed the moon you are following. That should let you catch moments of close approach. Slow, rewind or freeze time, and zoom in to see how close the approach is. Practice with Janus and Epimetheus for Saturn. Turn moon labels on!

I also can't guess your level of astronomy knowledge. Checks can be done certainly with very difficult mathematics, but you'd have done that if you knew. If you want a simple way I could suggest these ideas:

1. you calculate the nearest and farthest points for each orbit from the parent body as:

Code: Select all

   Minimum Distance = SemiMajorAxis ?— ( 1 - Eccentricity )
   Maximum Distance = SemiMajorAxis  ?— ( 1 + Eccentricity )


You could tabulate those in a spreadsheet and check the innermost distance of one moon isn't less than the outermost distance of a nearer moon, and vice versa.

If they do overlap and the orbits are in the same plane, you could do the following things:
- Reduce Eccentricity.
- Or if you want to keep eccentricity, reduce SemiMajorAxis.
- Or, if you want to keep that, change Inclination. Tip an orbit by adjusting Inclination (a few degrees should be enough) about a random AscendingNode between 0?° and 360?°. It's not a certain method, but there'll be a very small chance orbits still intersect. It will be rather ineffective though if ArgOfPericenter happens to be close to 0?° or 180?°, because you'll be tipping the orbit about a line very close to the collision point

2. Make the moons' orbits resonant. That is, define their Period's first with integer relations (3:2, 4:3, or for closely spaced moons, 21:20, or even 100:99). Then work out their SemiMajorAxes using Kepler's Law (you need to 'know' the mass of the central body here) to keep astronomical consistency. Audit your moons as I mentioned above. If any two moons keep colliding, offset one of the moon's MeanAnomaly by a random amount between 0?° and 360?° to keep them apart.

3. Use the orbits of those chaotic outer moons of Jupiter or Saturn (they are in an add-on), and scale their Semi-Major Axes. Each set definitely consists of moons that are naturally unlikely to collide. I hope 50-odd for Jupiter is enough!

Spiff.

Posted: 16.07.2005, 15:15
by elevator
Thanks for your reply selden. I did try the whole "visual check" thing and that becomes really hard especially for large orbits because you have to zoom in really close and view it from different angels. For example; Jupiters outer moons, basically just small rocks and over two dusin between 17 million km and 22 million km. That can be a mean distance separating the bodies of less than 100.000 km. With almost 30 moons checking intersection between all of them visually is virtually impossible.

So maybe I'll throw this ball to someone: is it possible to have a function that calculates if a given body's orbit intersects with that of a different body?

Thanks again,
Elev.

Posted: 16.07.2005, 15:20
by elevator
Spaceman, I didn't see your posting at first... thanks; that helps me a little bit. I do have some astronomy knowledge, but nothing advanced. I'll give your advice a try and see if it helps at all. Ideally, I'd like to see Celestia do this calculation, but if it's that difficult of a calculation, I can see that it may not be feasible.

Thanks,
Elev.