Calculating elliptic orbits in Cartesian coordinates

Click For Summary
SUMMARY

This discussion focuses on calculating the three-dimensional positions of celestial bodies using their orbital elements in a Matlab function. The key elements include the semi-major axis, eccentricity, argument of periapsis, inclination, and longitude of ascending node. The user successfully plots two-dimensional orbits but seeks assistance in incorporating the third dimension using the inclination and longitude of ascending node. The provided formulas for heliocentric distances and transformations between true anomaly and eccentric anomaly are essential for achieving accurate 3D representations.

PREREQUISITES
  • Understanding of orbital mechanics and Keplerian elements
  • Proficiency in Matlab programming for implementing orbital calculations
  • Familiarity with trigonometric functions and their applications in 3D space
  • Knowledge of heliocentric coordinates and transformations
NEXT STEPS
  • Research "Matlab 3D plotting techniques" for visualizing orbital paths
  • Study "Eccentric Anomaly to True Anomaly conversion" for accurate calculations
  • Explore "Heliocentric coordinate transformations" to enhance understanding of orbital mechanics
  • Investigate "Bessel Functions in orbital mechanics" for approximating true anomaly
USEFUL FOR

Astronomers, astrophysicists, and software developers working on celestial mechanics simulations will benefit from this discussion. It is particularly relevant for those seeking to enhance their understanding of 3D orbital calculations and Matlab programming.

AbsentMinded
Messages
3
Reaction score
0
I have a function to plot the orbits of planets based on their orbital elements (Semi-major Axis, Eccentricity, Argument of periapsis, Inclination, and longitude of ascending node). I have the x and y coordinates working great using only the semi-major axis, eccentricity, and argument of periapsis. Now I'm having trouble taking things into the third dimension with the inclination and longitude of ascending node. I know I need to get the distance from the longitude of the ascending node, and multiply it by sin(inclination), but I'm having trouble. Here's what I have so far:


apoapsis = (1+eccentricity)*SemiMajor;
periapsis = (1-eccentricity)*SemiMajor;
Semi-Minor = sqrt(apoapsis*periapsis);
SunFocus = sqrt((SemiMajor)^2-(SemiMinor)^2);
xc = SunFocus*cos(ArgOfPeriapsis);
yc = SunFocus*sin(ArgOfPeriapsis);
x = xc + SemiMajor*cos(time)*cos(ArgOfPeriapsis) - SemiMinor*sin(time)*sin(ArgOfPeriapsis);
y = yc + SemiMajor*cos(time)*sin(ArgOfPeriapsis) + SemiMinor*sin(time)*cos(ArgOfPeriapsis);
z = ?

This is psuedocode of a Matlab function. The inputs are the 5 orbital elements listed above (no mean anomaly for now). The orbits plot perfectly in two dimensions for every object I've thrown at it (plantes, dwarfs, comets, etc.), but I really want to get the inclination in there for 3 dimensions. Any help would be greatly appreciated.
 
Physics news on Phys.org
This works for Heliocentric positions where:

R,X,Y,Z-Heliocentric Distances
TA - True Anomaly
N - Longitude of the Ascending Node
w - Argument of the Perihelion

R = a * (1 - e ^ 2) / (1 + e * Cos(TA))
X = R * (Cos(N) * Cos(TA + w) - Sin(N) * Sin(TA+w)*Cos(i)
Y = R * (Sin(N) * Cos(TA+w) + Cos(N) * Sin(TA+w)) * Cos(i))
Z = R * Sin(TA+w) * Sin(i)

TA can be found using Mean Anomaly and eccentricity.

Correct approximations for Keplerian Elements can be found at the bottom of the site:

JPL Keplerian Elements
 
This works for Heliocentric positions where:

R,X,Y,Z-Heliocentric Distances
TA - True Anomaly
N - Longitude of the Ascending Node
w - Argument of the Perihelion

R = a * (1 - e ^ 2) / (1 + e * Cos(TA))
X = R * (Cos(N) * Cos(TA + w) - Sin(N) * Sin(TA+w)*Cos(i)
Y = R * (Sin(N) * Cos(TA+w) + Cos(N) * Sin(TA+w)) * Cos(i))
Z = R * Sin(TA+w) * Sin(i)

TA can be found using Mean Anomaly and eccentricity.

Correct approximations for Keplerian Elements can be found at the bottom of the site:

http://ssd.jpl.nasa.gov/?planet_pos
 
Awesome, I'll give this a try, thank you.
 
Philosophaie said:
This works for Heliocentric positions where:

R,X,Y,Z-Heliocentric Distances
TA - True Anomaly
N - Longitude of the Ascending Node
w - Argument of the Perihelion

R = a * (1 - e ^ 2) / (1 + e * Cos(TA))
X = R * (Cos(N) * Cos(TA + w) - Sin(N) * Sin(TA+w)*Cos(i)
Y = R * (Sin(N) * Cos(TA+w) + Cos(N) * Sin(TA+w)) * Cos(i))
Z = R * Sin(TA+w) * Sin(i)

TA can be found using Mean Anomaly and eccentricity.

Correct approximations for Keplerian Elements can be found at the bottom of the site:

http://ssd.jpl.nasa.gov/?planet_pos

That worked perfectly, thank you!http://imgur.com/5Zafkj1
http://imgur.com/5Zafkj1
 
AbsentMinded said:
That worked perfectly, thank you!http://imgur.com/5Zafkj1
http://imgur.com/5Zafkj1

How did you solve for the TA? Did you use Bessel Functions? Is there any easy way to approximate it?
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 8 ·
Replies
8
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
13
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K