Galileo Mission to Jupiter

http://www.wolfram.com/applications/astronomer/index.html

Terry Robb. <terryr@wolfram.com>

setup

<<Astronomer`HomeSite`

SetLocation[TimeZone->0];

set Galileo piecewise orbital elements

The following expressions set the orbital elements for each leg of the Venus-Earth-Earth-Gravity-Assist maneuver to get the Galileo spacecraft to Jupiter. The final expression, at the end of this section, pieces the elements together.

The element sets were obtained from: http://www2.jpl.nasa.gov/files/misc/gllele.txt

Note also there is a set of elements for the tour within the Jovian system. See http://www2.jpl.nasa.gov/files/misc/gllele2.txt

(* Launch,         {1989,10,19, 01,29,0} to {1989,10,26, 01,55,0} *)
SetOrbitalElements[Galileo[1],
     ViewPoint -> Earth, Epoch -> 1950.,
     Date  -> {1989,10,19, 01,29,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -25840*KiloMeter,
     OrbitalEccentricity  ->   1.26,
     OrbitalInclination   ->  54.9*Degree,
     AscendingLongitude   -> 157.2*Degree,
     PerigeeArgument      ->  -1.1*Degree,
     MeanAnomaly          ->  36.4*Degree];

(* Earth-Venus,     {1989,10,26, 01,55,0} to {1990,02,05, 15,20,0} *)
SetOrbitalElements[Galileo[2],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1989,10,26, 01,55,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 124500000*KiloMeter,
     OrbitalEccentricity  ->   0.20,
     OrbitalInclination   ->   4.3*Degree,
     AscendingLongitude   ->  24.7*Degree,
     PerigeeArgument      ->-175.3*Degree,
     MeanAnomaly          ->-177.3*Degree];

(* Venus Flyby,     {1990,02,05, 15,20,0} to {1990,02,14, 20,56,0} *)
SetOrbitalElements[Galileo[3],
     ViewPoint -> Venus, Epoch -> 1950.,
     Date  -> {1990,02,10, 05,59,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -8555*KiloMeter,
     OrbitalEccentricity  ->   3.59,
     OrbitalInclination   -> 134.9*Degree,
     AscendingLongitude   -> -70.6*Degree,
     PerigeeArgument      ->-109.1*Degree,
     MeanAnomaly          ->   0.0*Degree];

(* Venus-Earth,     {1990,02,14, 20,56,0} to {1990,12,05, 15,47,0} *)
SetOrbitalElements[Galileo[4],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1990,02,14, 20,56,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 147900000*KiloMeter,
     OrbitalEccentricity  ->   0.29,
     OrbitalInclination   ->   3.4*Degree,
     AscendingLongitude   ->  76.0*Degree,
     PerigeeArgument      -> 106.3*Degree,
     MeanAnomaly          -> -10.3*Degree];

(* Earth 1 Flyby,   {1990,12,05, 15,47,0} to {1990,12,12, 01,24,0} *)
SetOrbitalElements[Galileo[5],
     ViewPoint -> Earth, Epoch -> 1950.,
     Date  -> {1990,12,08, 20,35,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -4977*KiloMeter,
     OrbitalEccentricity  ->   2.47,
     OrbitalInclination   -> 142.2*Degree,
     AscendingLongitude   ->  71.8*Degree,
     PerigeeArgument      ->  95.9*Degree,
     MeanAnomaly          ->   0.0*Degree];

(* Earth-Gaspra,    {1990,12,12, 01,24,0} to {1991,10,29, 22,49,0} *)
SetOrbitalElements[Galileo[6],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1990,12,12, 01,24,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 237500000*KiloMeter,
     OrbitalEccentricity  ->   0.43,
     OrbitalInclination   ->   4.5*Degree,
     AscendingLongitude   ->-104.1*Degree,
     PerigeeArgument      ->-136.8*Degree,
     MeanAnomaly          -> -14.9*Degree];

(* Gaspra-Earth,    {1991,10,29, 22,49,0} to {1992,12,05, 10,09,0} *)
SetOrbitalElements[Galileo[7],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1991,10,29, 22,49,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 237600000*KiloMeter,
     OrbitalEccentricity  ->   0.43,
     OrbitalInclination   ->   4.6*Degree,
     AscendingLongitude   ->-103.9*Degree,
     PerigeeArgument      ->-137.1*Degree,
     MeanAnomaly          -> 143.8*Degree];

(* Earth 2 Flyby,   {1992,12,05, 10,09,0} to {1992,12,11, 21,03,0} *)
SetOrbitalElements[Galileo[8],
     ViewPoint -> Earth, Epoch -> 1950.,
     Date  -> {1992,12,08, 15,35,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -5059*KiloMeter,
     OrbitalEccentricity  ->   2.32,
     OrbitalInclination   -> 161.1*Degree,
     AscendingLongitude   -> 155.9*Degree,
     PerigeeArgument      ->-136.7*Degree,
     MeanAnomaly          ->   0.0*Degree];

(* Earth-Ida,       {1992,12,11, 21,03,0} to {1993,08,28, 16,35,0} *)
SetOrbitalElements[Galileo[9],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1992,12,11, 21,03,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 468300000*KiloMeter,
     OrbitalEccentricity  ->   0.69,
     OrbitalInclination   ->   1.5*Degree,
     AscendingLongitude   ->-104.1*Degree,
     PerigeeArgument      ->-173.5*Degree,
     MeanAnomaly          ->  -0.3*Degree];

(* Ida-Jupiter,     {1993,08,28, 16,35,0} to {1995,09,14, 03,12,0} *)
SetOrbitalElements[Galileo[10],
     ViewPoint -> Sun, Epoch -> 1950.,
     Date  -> {1993,08,28, 16,35,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 469300000*KiloMeter,
     OrbitalEccentricity  ->   0.69,
     OrbitalInclination   ->   1.6*Degree,
     AscendingLongitude   ->-105.3*Degree,
     PerigeeArgument      ->-172.5*Degree,
     MeanAnomaly          ->  45.7*Degree];

(* Jupiter Approach,{1995,09,14, 03,12,0} to {1995,12,07, 22,04,0} *)
SetOrbitalElements[Galileo[11],
     ViewPoint -> Jupiter, Epoch -> 1950.,
     Date  -> {1995,09,14, 03,12,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -4136000*KiloMeter,
     OrbitalEccentricity  ->   1.02,
     OrbitalInclination   ->   8.0*Degree,
     AscendingLongitude   ->  27.4*Degree,
     PerigeeArgument      -> 132.3*Degree,
     MeanAnomaly          ->-561.7*Degree];

(* Probe Entry,     {1995,12,07, 22,04,0} to {1995,12,07, 22,04,0} *)
SetOrbitalElements[Galileo[12],
     ViewPoint -> Jupiter, Epoch -> 1950.,
     Date  -> {1995,12,07, 22,04,0}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> -2274000*KiloMeter,
     OrbitalEccentricity  ->   1.03,
     OrbitalInclination   ->   8.2*Degree,
     AscendingLongitude   ->  25.5*Degree,
     PerigeeArgument      -> 134.8*Degree,
     MeanAnomaly          ->   0.0*Degree];

SetOrbitalElements[Galileo,
   {1989,10,19, 01,29,0}, Galileo[ 1],
   {1989,10,26, 01,55,0}, Galileo[ 2],
   {1990,02,05, 15,20,0}, Galileo[ 3],
   {1990,02,14, 20,56,0}, Galileo[ 4],
   {1990,12,05, 15,47,0}, Galileo[ 5],
   {1990,12,12, 01,24,0}, Galileo[ 6],
   {1991,10,29, 22,49,0}, Galileo[ 7],
   {1992,12,05, 10,09,0}, Galileo[ 8],
   {1992,12,11, 21,03,0}, Galileo[ 9],
   {1993,08,28, 16,35,0}, Galileo[10],
   {1995,09,14, 03,12,0}, Galileo[11],
   {1995,12,07, 22,04,0}, TimeZone -> 0];

The syntax used above is: SetOrbitalElements[newobject, date1, object2, date2, object2, ..., daten, objectn, objectn1, opts], which defines a new object to have an orbit built piecewise out of the objects. Between date1 and date2 the orbit of object1 is used and so on.

The Galileo Mission

http://spacelink.msfc.nasa.gov/NASA.Projects/Planetary.Probes/Galileo/

http://galileo.ivv.nasa.gov/index.html

Jupiter System

The four largest moons of Jupiter are Io, Europa, Ganymede, and Callisto. Collectively they are called the Galilean moons. They are each tide locked to Jupiter - that is, they always present the same face to Jupiter. The three inner Galilean moons (Io, Europa, and Ganymede) are also in a near perfect orbital resonance. The orbital periods are nearly in the ratio 1:2:4. In fact, the longitude of those three moons obey (Subscript[λ, Io]) - 3(Subscript[λ, Europa]) + 2(Subscript[λ, Ganymede]) = π exactly! (Well to at least 10 decimal places.)

This orbital resonance is used in the following animation, where the duration is taken as 170 hours. After that time Io, Europa, and Ganymede return approximately to their initial positions.

Double click on the graphic to animate it. Alternatively select the cell and look under the menu Cell/Animate Selected Graphics. Use the number keys to speed up or slow down the graphic.

Do[JupiterSystemPlot[{1997,4,10,h,0,0}],
   {h,0,169,4}]

?Europa

JupiterMoonChart[Text -> False];

VEEGA Maneuver

If you wanted to send a spacecraft to Jupiter, you would point it towards Jupiter and fire your rockets wouldn't you? Wrong. If you can afford to wait a few years, the best way to get it to Jupiter is to send your spacecraft to Venus! The trick is to use the so-called VEEGA maneuver, which stands Venus-Earth-Earth-Gravity-Assist. The Voyager spacecrafts used a related trick.

After sending your spacecraft to Venus for a close flyby, the gravitional field of Venus can add velocity to the craft. In the case of Galileo the flyby was arranged so that the spacecraft swings back towards Earth for not one but two very close flybys. The second Earth gravity-assist adds enough momemtum to take Galileo on a slow journey out to Jupiter. In all, the VEEGA maneuver takes six years.

The Galileo VEEGA was carefully arranged so as to have additional (non gravity-assist) flybys of the asteroids Gaspra and Ida.

set up

In following, all times are in UT. So remember to set SetLocation[TimeZone->0].

events = Map[ModifiedJulianDay, {
     {1989,10,19, 01,29,0},
     {1989,10,26, 01,55,0},
     {1990,02,05, 15,20,0},
     {1990,02,14, 20,56,0},
     {1990,12,05, 15,47,0},
     {1990,12,12, 01,24,0},
     {1991,10,29, 22,49,0},
     {1992,12,05, 10,09,0},
     {1992,12,11, 21,03,0},
     {1993,08,28, 16,35,0},
     {1995,09,14, 03,12,0},
     {1995,12,07, 22,04,0}}];

journey    = Table[Coordinates[Galileo, d,
                               ViewPoint->Sun],
                   {d, First[events],
                        Last[events], 5}];
rendezvous =   Map[Coordinates[Galileo, #,
                               ViewPoint->Sun]&,
                   events];

veega[] :=
OrbitPlot[{Venus, Earth, Jupiter}, 
          PlotStyle -> GrayLevel[0.8],
          Distance  -> 6*AU,
          Axes      -> False,
          Epilog    -> {
             OrbitMark[Sun],
             OrbitMark[Galileo, events[[ 7]],
                       PlotLabel -> "Gaspra"],
             OrbitMark[Galileo, events[[10]],
                       PlotLabel -> "Ida"],
             OrbitMark[Galileo, events[[11]],
                       PlotLabel -> "Jupiter"],
             Table[OrbitMark[Jupiter, {y,1,1},
                         PlotLabel -> y],
                  {y, 1989, 1997}],
             RGBColor[0,0,0], Line   @
                  Map[Take[#,2]&, journey],
             RGBColor[1,0,0], Point /@
                  Map[Take[#,2]&, rendezvous]}];

Double click on the graphic to animate it. Alternatively select the cell and look under the menu Cell/Animate Selected Graphics. Use the number keys to speed up or slow down the graphic.

veega[];

You can make an animation of the trip as follows. [This animation is available in the Graphics Gallery/Animations section of the help browser.]

Do[date={yy,mm,1};
   OrbitPlot[{Venus, Earth, Jupiter}, 
          PlotStyle -> GrayLevel[0.8],
          Distance  -> 6*AU,
          Axes      -> False,
          Epilog    -> {
             OrbitMark[Sun],
             OrbitMark[Venus,    date],
             OrbitMark[Earth,    date],
             OrbitMark[Jupiter,  date,
                       PlotLabel -> "Jupiter"],
             {RGBColor[0,0,1],
              OrbitMark[Galileo, date]},
             OrbitMark[Galileo, events[[ 7]],
                       PlotLabel -> "Gaspra"],
             OrbitMark[Galileo, events[[10]],
                       PlotLabel -> "Ida"],
             OrbitMark[Galileo, events[[11]],
                       PlotLabel -> "Jupiter"],
             Table[OrbitMark[Jupiter, {y,1,1},
                         PlotLabel -> y],
                  {y, 1989, 1997}],
             RGBColor[0,0,0], Line   @
                  Map[Take[#,2]&, journey],
             RGBColor[1,0,0], Point /@
                  Map[Take[#,2]&, rendezvous]}],
     {yy,1990,1995}, {mm,1,12,1}]

Launch, Venus, Earth, Earth, and Jupiter Flyby

The coordinate system used in the following graphics is aligned in the same way as the graphic showing the VEEGA maneuver. It may seems that the flybys are at the wrong angle relative to the VEEGA graphic. This is not the case – remember the planets move, and in all cases below (except for the first case, which is the launch) it is the planet that is catching up to Galileo. All these graphics are viewed from far above the ecliptic plane, and so look down on the north pole of the planets.

Galileo was launched on 1989 October 18 from the Space Shuttle Atlantis. The circle in the graphic is the disk of Earth. The lower red line is the path of Galileo away (!) from Venus. [The upper part of the red line is a continuation of the trajectory back before launch time.]

OrbitPlot[Galileo[1],
          PlotStyle -> RGBColor[1,0,0],
          Distance  -> 4*6378*KiloMeter,
          Epilog    -> Circle[{0,0},
                         6378/149597900]];

Four months later on 1990 February 1, Galileo makes a close flyby of Venus. The circle in this graphic is the disk of Venus. Galileo approaches from the top left. Remember this graphic is relative to Venus, which is moving faster than Galileo.

OrbitPlot[Galileo[3],
          PlotStyle -> RGBColor[1,0,0],
          Distance  -> 4*6378*KiloMeter,
          Epilog    -> Circle[{0,0},
                         6052/149597900]];

Ten months later on 1990 December 8, Galileo arrives back at Earth. This time it swings in very close – in the graphic it appears to collide with the Earth, but in a 3D plot (try OrbitPlot3D) you can convince yourself it misses. [You can also use FindMinimum to determine the minimum distance is 7300 kilometers, or 1000 kilometers above the surface of Earth.] After this flyby, Galileo swings out and passes close to the asteroid Gaspra on 1991 October 29.

OrbitPlot[Galileo[5],
          PlotStyle -> RGBColor[1,0,0],
          Distance  -> 4*6378*KiloMeter,
          Epilog    -> Circle[{0,0},
                         6378/149597900]];

By 1992 December 8, Galileo comes back to Earth yet again!. It arrives exactly two years after the previous flyby (the Earth is back to the same point in its orbit). At this flyby, Galileo picks up a considerable velocity. You can see this velocity change in the animation. On the way out to Jupiter, Galileo passes another asteroid - Ida, on 1993 August 28.

OrbitPlot[Galileo[8],
          PlotStyle -> RGBColor[1,0,0],
          Distance  -> 4*6378*KiloMeter,
          Epilog    -> Circle[{0,0},
                         6378/149597900]];

As Galileo moves further from the Sun it becomes much slower, until it is finally swept up by Jupiter on 1995 December 7. In the following graphic the circle is the disk of Jupiter. Galileo approaches from the top.

OrbitPlot[Galileo[11],
          PlotStyle -> RGBColor[1,0,0],
          Distance  -> 2*71492*KiloMeter,
          Epilog    -> Circle[{0,0},
                         71492/149597900]];

At this point in the mission, rockets are fired to bring Galileo into an orbit. Eleven elliptical orbits take place for 11 months until the end of the mission in November 1997.

Like the VEEGA tour to get to Jupiter, the tour within the Jovian system consists of close flybys and gravity-assists. Each of the eleven orbits (except orbit 5) uses a gravity-assist with either Ganymede, Callisto, orEuropa.

Related Topic: The Pathfinder Mission to Mars

Here are the orbital elements for the Pathfinder mission to Mars.

SetOrbitalElements[Pathfinder,
     ViewPoint -> Sun, Epoch -> 2000.,
     Date  -> {1997,3,1}, TimeZone -> 0,
     OrbitalSemiMajorAxis -> 1.29157234471*AU,
     OrbitalPeriod        -> 536.138*Day,
     OrbitalEccentricity  ->   0.236386,
     OrbitalInclination   ->   0.104*Degree,
     MeanAnomaly          ->  58.807*Degree,
     PerigeeArgument      ->  -9.635*Degree,
     AscendingLongitude   ->  81.218*Degree];

The following displays the trajectory. Marks are placed at months 2,3,4,5,6, and 7 of 1997. Unlike the Galileo mission, which took 6 years and used an economical VEEGA maneuver, the Pathfinder craft takes a direct route to Mars and arrives only 6 months after launch. Launches to Mars are chosen to coincide with oppositions of Mars.

markers[object_] := Table[
      OrbitMark[object, {1997,m,1},
                PlotLabel->m],
          {m,2,7}]

OrbitPlot[{Earth, Mars, Pathfinder},
      Distance  -> 1.8*AU,
      Axes      -> False,
      PlotStyle -> GrayLevel[0.7],
      Epilog    -> {
          OrbitMark[Sun, PlotLabel -> "Sun"],
          OrbitMark[Earth, {1997,1,1},
                         PlotLabel -> "Earth"],
          OrbitMark[Mars,  {1997,1,1},
                         PlotLabel -> "Mars"],
          OrbitMark[Earth, {1996,12,4},
                         PlotLabel -> "Launch"],
          RGBColor[1,0,0], markers[Mars],
          RGBColor[0,0,0], markers[Pathfinder],
          RGBColor[0,0,1], markers[Earth]
          }];