Modelling the Lagrangian points of the moon's orbit

The place to discuss creating, porting and modifying Celestia's source code.
Topic author
bdm
Posts: 461
Joined: 22.07.2005
With us: 19 years 4 months
Location: Australia

Modelling the Lagrangian points of the moon's orbit

Post #1by bdm » 03.01.2006, 22:53

I would like to know how to model a satellite at the L4 and L5 Lagrangian points of the moon's orbit in Celestia. All I know is that the moon uses custom orbits in Celestia. This makes the task difficult compared to the Keplerian modelling that is usually used for fictional addons around other stars.

The purpose is to create reasonably accurate Lagrangian orbits for fictional addons and for educational purposes. The goal is to be able to create groups of Lagrangian orbits at the Earth-Moon L4 and L5 points, including halo orbits and kidney orbits.

Ideally it would be useful if there was a way to access the moon's custom orbit in a Celestia and then specify offsets. The offsets would need to modify the following orbital parameters:
* Mean Anomaly
* Longitude of pericentre
* Eccentricity
* Inclination

There may be other orbital parameters that need adjusting that I haven't listed.

So far I believe the task is not possible with current versions of Celestia, but if this is not the case then I'm sure there's many addon creators that would like to know how to perform this task.

MKruer
Posts: 501
Joined: 18.09.2002
With us: 22 years 2 months

Post #2by MKruer » 04.01.2006, 01:18

It?€™s easy,

First Comment out the CustomOrbit "moon" by adding # in front of the line, Next copy the code segment underneath. There were 2 things that ware throwing you off. First was the CustomOrbit. This overrides everything in the EllipticalOrbit. Next you need to add Epoch to define where the object stars in its orbit. In this case -60 and +60.

Code: Select all

"L4" "Sol/Earth"
{
   Texture "moon.*"
Radius   200

   EllipticalOrbit {
      Period           27.321661
      SemiMajorAxis    384400
      Eccentricity     0.054900
      Inclination      5.15
      Epoch           -60

   }

   Obliquity      23.45 # mean axis
   EquatorAscendingNode    0.0  # mean axis
   RotationOffset       38
}

"L5" "Sol/Earth"
{
   Texture "moon.*"
Radius   200

   EllipticalOrbit {
      Period           27.321661
      SemiMajorAxis    384400
      Eccentricity     0.054900
      Inclination      5.15
      Epoch           60

   }

   Obliquity      23.45 # mean axis
   EquatorAscendingNode    0.0  # mean axis
   RotationOffset       38
}

Topic author
bdm
Posts: 461
Joined: 22.07.2005
With us: 19 years 4 months
Location: Australia

Post #3by bdm » 04.01.2006, 01:38

MKruer wrote:It?€™s easy,

First Comment out the CustomOrbit "moon" by adding # in front of the line
I was hoping to find a way to modify the CustomOrbit parameters so I can have a more accurate simulation. You may be on to something with the Epoch here. If I can reuse the custom orbit with a carefully-crafted Epoch, that may be sufficient.

MKruer wrote:There were 2 things that ware throwing you off. First was the CustomOrbit. This overrides everything in the EllipticalOrbit.

I'm not sure it does. I've experimented in the past with the combination of Custom Orbit and Elliptical Orbit. I've found that Celestia does not appear to ignore everything in EllipticalOrbit if CustomOrbit is also specified. It's possible to alter the timings of 27th-century transits of Venus in Celestia by changing the settings for the Elliptical Orbit settings of Venus, and leaving the Custom Orbit defined for Venus.

Avatar
Chuft-Captain
Posts: 1779
Joined: 18.12.2005
With us: 18 years 11 months

Post #4by Chuft-Captain » 05.01.2006, 15:32

bdm,

You may find this snippet useful from my solarsys.ssc which defines L4/L5.
It's been hacked around a bit so ignore any comments in the code. Seems to work, but I'm not 100% sure if scientifically accurate. Give it a try and see if it works for you, and let me know if you think it's accurate. Bear in mind that you may not be able to use it exactly as-is because I've also got an Earth-Moon "barycentre" kludge in there as well. ie. Earth, Moon, L4 and L5 all rotate around the Earth-Moon point. This kludge does invalidate many of the.cel scripts which have been written which visit Earth or Moon, so you may prefer to keep the existing definitions for Earth and Moon and just add and subtract 60deg for the lagrange points. I'm actually not sure myself what are the implications or purpose of the CustomOrbits and whether they are realistic representations of real-life. Someone with more knowledge than me will have to answer that one!

Code: Select all

SOLARSYS.SSC:

"Earth-Moon" "Sol"
{
Class "Invisible"

CustomOrbit "Earth-Moon"
EllipticalOrbit {
Period 1.0000
SemiMajorAxis 1.0000
Eccentricity 0.0167
Inclination 0.0001
AscendingNode 348.739
LongOfPericenter 102.947
MeanLongitude 100.464
}

Obliquity -23.45
RotationOffset 280.5 # offset at default epoch J2000

}

"Earth" "Sol/Earth-Moon"
{
Texture "earth.*"
NightTexture "earthnight.*"

# SpecularTexture "earth-spec.*"
Color [ 0.85 0.85 1.0 ]
SpecularColor [ 0.5 0.5 0.55 ]
SpecularPower 25.0
HazeColor [ 1 1 1 ]
HazeDensity 0.3
Radius 6378.140 # equatorial
# Oblateness 0.0034

# BumpMap "earthbump.*"
# BumpHeight 4.5

Atmosphere {
Height 60
Lower [ 0.43 0.52 0.65 ]
Upper [ 0.26 0.47 0.84 ]
Sky [ 0.40 0.6 1.0 ]
Sunset [ 1.0 0.6 0.2 ]
# Sunset [ 0.3 1.0 0.5 ]
CloudHeight 7
CloudSpeed 65
CloudMap "earth-clouds.*"
}

CustomOrbit "Earth"
EllipticalOrbit {
#Epoch 2452583.763194445 # 2002 Nov 5 06:19UT (Galileo encounter)
Period 27.321661
SemiMajorAxis 4700
Eccentricity 0 # 0.054900
Inclination 0
MeanAnomaly 0.00
}

RotationPeriod 23.9344694 # 23.93419
Obliquity -23.45
RotationOffset 280.5 # offset at default epoch J2000

Albedo 0.30
}

"L5" "Sol/Earth-Moon"
{
Class "Invisible"
Class "Moon"

#CustomOrbit "Moon"
EllipticalOrbit {
Epoch 2452583.763194445 # 2002 Nov 5 06:19UT (Galileo encounter)
Period 27.321661
SemiMajorAxis 379700
Eccentricity 0.054900
Inclination 5.15
AscendingNode 220.288958 # at epoch
ArgOfPericenter 301.622765 # at epoch
MeanAnomaly 255.352094 # at epoch
}
Radius 1.0
}

"Moon" "Sol/Earth-Moon"
{
Texture "moon.*"
BumpMap "moonbump.*"
BumpHeight 0.3

Radius 1737.53
# Oblateness 0.002

#CustomOrbit "moon"
EllipticalOrbit {
Epoch 2452583.763194445 # 2002 Nov 5 06:19UT (Galileo encounter)
Period 27.321661
SemiMajorAxis 379700
Eccentricity 0.054900
Inclination 5.15
AscendingNode 220.288958 # at epoch
ArgOfPericenter 301.622765 # at epoch
MeanAnomaly 315.352094 # at epoch
}

Obliquity 23.45 # mean axis
EquatorAscendingNode 0.0 # mean axis
RotationOffset 38

Albedo 0.12
}

"L4" "Sol/Earth-Moon"
{
Class "Invisible"
Class "Moon"

#CustomOrbit "Moon"
EllipticalOrbit {
Epoch 2452583.763194445 # 2002 Nov 5 06:19UT (Galileo encounter)
Period 27.321661
SemiMajorAxis 379700
Eccentricity 0.054900
Inclination 5.15
AscendingNode 220.288958 # at epoch
ArgOfPericenter 301.622765 # at epoch
MeanAnomaly 15.352094 # at epoch

}

}
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Post #5by selden » 05.01.2006, 17:45

I'm actually not sure myself what are the implications or purpose of the CustomOrbits and whether they are realistic representations of real-life.


Custom orbits specify code written into Celestia for specific bodies. They use VSOP-87 theory to calculate precise locations for the planets. They're accurate to better than an arc-second for about +/- 3000 years from now.

Learning about VSOP-87 is left as an excersize for the student.
Selden


Return to “Development”