Visualizing Asteroid Orbits Part1 updated!.doc

advertisement
Visualizing Asteroid Orbits Part 1:
1. Quickly create a program that simulates the earth moving around the sun using Newtonian
Gravitation.(Hopefully you have this done for your homework!) Again, you should only use the semi-major
axis, eccentricity and mass of the earth and sun as inputs to your program. Use a momentum formulation
rather then a kinematics formulation i.e.
Gmearth M sun r sun earth
Fsun earth 
3
rsun earth
pearth  pearth  Fsun earth
psun  psun  Fsun earth
The plane of the earth’s orbit is the plane of the ecliptic. Setup
your program so that this is the xz plane. Create and display this
plane in your program. (i.e. use a series of nested boxes to
visualize the plane of the ecliptic or maybe even something more clever!)
2. Create an Asteroid of mass 6 * 106 kg and radius 4*109 meter initially located at 4*1011 m from the
sun.(Note this radius is not realistic, but it will allow you to SEE your asteroid on the scale of the solar
system.) Find the range of allowed orbital velocities(Bounded by a circular orbit and a parabolic orbit.)
Give your asteroid an orbital velocity to create a circular orbit in the xz plane. Include this Asteroid into your
program.
When we make observations of an asteroid from earth there are a small number of things we can directly
measure.
Things we can measure.
 The vector from the sun to the earth.
 The direction from our observation point on Earth to the Asteroid (your new friend ρ̂ )
 With some effort (to be discussed later) we can determine the distance from the Earth to the Asteroid.
 The velocity of the asteroid.
3. Since gravitation from the sun drives the asteroid, we want to find the vector from the sun to the asteroid.
In your program represent the vectors from the sun
to the earth and the earth to the asteroid using arrow
objects.
Have your program calculate and display the vector
from the sun to the asteroid using an arrow object
and the two vectors you determined previously.
This Earth Sun VECTOR is extremely important in
our orbit determination. Create a label for it and the
other vectors and display them in your program.
Be sure to show Prof Mason or a TA your work
to this point.
3.5 If you haven’t already written a function to
convert calendar dates to Julian Dates, this would be
a good time to do so. The Julian day number can
be considered a very simple calendar, where its calendar date is just an integer. This is useful for reference,
computations, and conversions. It allows the time between any two dates in history to be computed by simple
subtraction.
The Julian day system was introduced by astronomers to provide a single system of dates that could be used
when working with different calendars and to unify different historical chronologies.
For the full Julian date, not counting leap seconds (divisions are real numbers):
Where the JDN for January 1,2000 and 00:00 UTC is 2451544.5 So, for example, January 1, 2000 at midday
corresponds to JD = 2451545.0
Exercise: Include in your program a function to take a calendar date, time and year and convert it JD.
4. An important part of the OD is precisely determining the Earth Sun vector. We will obtain the Earth Sun
vector using the following information: June 22nd is the solstice (JD = 2455004.19), July 4th (JD =
2455016.58)is the date at which the earth is at apogee. These are NOT the same day! In 2000 they were, but
since there is precession of the equinoxes, they now differ by 12.05 degrees. We will set the earth at the
apogee on this date, but since the solstice (where we have coordinates of the form (0,y,0) is not the same as the
date of apogee, we will have to modify our apogee according to the 12.05 degree angle.(The magnitude of the
position vector should still be equal to the apogee, but it will have some x and y components.) We can then
run the orbit forward in time to extrapolate any future Earth Sun vector. Have it keep track of the Julian date
by adding increments of dt (in the appropriate units) to the JD. Have your program run forward to calculate the
earth sun vector at JD2455025.5 (Today!)
My program generates a value of 2455025.50083 <5.34968e+010, -1.42351e+011, 0>
JPL reports a value of
2455025.500000000 = A.D. 2009-Jul-13 00:00:00.0000 (CT)
X = 5.354875025630882E+10 Y =-1.423295261182048E+11 Z = 2.621706827625632E+05
Your values may not match exactly, but they should match to the 3rd decimal place.
Note, JPL is using a more complex solar system model. (OK don’t sweat it!) Also there is some small Z value
to the JPL value. Since we are measuring the coordinates relative to the ecliptic, we would expect Z to be zero
BUT there is a small effect due in Z to the precession of the equinoxes.
Now go ahead and run your program forward for an entire year. The Earth Sun vector should be very close to
the initial earth sun vector! (What real physical reason is there for them not being the same?) The
computational reason for the distance is that our integration technique is very primitive. We will look at better
techniques for numerical integration on Thursday.
Be sure to have someone check off your program at this point!
5. Now that we can find the earth sun vector at any point in time during the program, let us return to the
asteroid. From the velocity of the asteroid, we can determine the momentum of the asteroid. Create and
display the momentum vector on the asteroid. Label this vector.
6. From what you have done so far you should be able
to display the angular momentum vector for the asteroid
about the sun. Create and display this vector.
Do things seem horribly wrong? Your angular
momentum vector is so Gigantic it has made the rest of
your solar system disappear!!! It is more useful to
define the angular momentum per unit mass as
L
h
m
Where h is in units of m2/s
Instead of displaying the angular momentum of the
asteroid, display h instead. (Note you will still need to
scale this so that it will fit on the screen, a factor of
10,000 or so should work)
Let your program run for a while and observe the
angular momentum vector. How does the magnitude of
the asteroid’s angular momentum per unit mass vector change as a function of time?
6. At this point it would be handy to have a switch that you can use to turn the labels on and off. Move all of
your label updating into a block that you can turn on and off with a single variable. This will help to make
your animation faster and less cluttered.
7. Many Asteroid orbits are rotated at some angle from the orbital plane. This is called the inclination.
inclination
We now want to rotate your asteroids orbit relative to the plane of the ecliptic. Rotate your asteroids orbit by
some small angle. Create a variable called inclination and then use that variable to adjust the inclination of the
orbit. (Hint: you only need to adjust the initial velocity components of your asteroid.)
Check the results visually for several values of inclination.
h
Now think about the orbit. Given the following picture, write the
inclination as a function of the components of the angular momentum per
unit mass. Maybe Dr. Ran got to this today in the OD lecture. If not, you
i
are now ahead!
Check that you have implemented your rotation correctly by comparing the inclination you used with the value
of the function you just derived.
8. At this point we have implemented three of the six orbital elements! (a,e and i) We will return to this
project on Friday to finish the rest of the orbital elements and build a full ephemeris generation program.
Download