Calculating a lunar Sun-synchronous orbit for 86°

Nydoc

New member
Joined
Mar 17, 2012
Messages
4
Reaction score
0
Points
0
The tricky bit in having a low lunar orbit is dealing with mass concentrations (mascons). As part of Apollo 16, the satellite PFS-2 was put in orbit around the moon to measure charged particles and magnetic fields. This satellite crashed into the moon just 35 days later because lunar gravitational anomalies had perturbed its orbit.

http://science.nasa.gov/science-news/science-at-nasa/2006/06nov_loworbit/ said:
There are actually a number of 'frozen orbits' where a spacecraft can stay in a low lunar orbit indefinitely. They occur at four inclinations: 27º, 50º, 76º, and 86º"—the last one being nearly over the lunar poles.

I have been trying to calculate a sun-synchronous lunar orbit at 86° using the excel sheet that user boogabooga posted in this thread. The mean radius of the moon is listed on Wikipedia as 1737.1 km. I don't know enough about Legendre polynomials to calculate the J2 value for the moon, but I did find this value online as 0.0002027. The gravitational constant of the moon I was able to calculate:

(0.0000000000667384*7.3477E+22)/1000000000 = 4903.737417 km^3/s^2

After modifying the parameters of orbited body in the excel sheet, I started playing with the orbital parameters of the satellite to achieve the desired inclination of 86°. I actually ended up with an inclination of 94° as I assumed this should be equivalent. I ended up with an orbital height of 150 km with an eccentricity of 0.85.

Am I doing this right? Is a lunar Sun-synchronous orbit at 86° possible with zero eccentricity?
 

Attachments

I've had a look at this. Short story: what you're trying to do isn't going to work.

Some background to the best of my understanding:

The J2 approximation is treating the body as a uniformly distributed mass (I think), but accounts for the shape of the body being oblate instead of spherical. This works pretty well for the Earth, luckily enough for us.

The problem with the moon is that it is NOT a uniformly distributed mass, as you know. I imagine that the gravitational potential function is quite complicated. Also, orbits around the moon will suffer perturbations from the sun and earth.

I doubt that the oblate-only approximation holds very well for lunar orbits, and it doesn't appear that a lot of effort goes into cataloging the J2 coefficient. (I see what you found, but I'm not sure if this is J2 or some other coefficient).

As it is, Orbiter does not appear to model either the J2 perturbation or the effect of mascons for the moon. I see no Jcoeff entry in the moon's config file. Also, I just tested a lunar orbit and I did not notice any precession in my LAN over several orbits. So, trying to figure this out is kind of a waste of time.

Other than that, it appeared that you had the right idea in the Excel.
 
Thanks for taking a look. It doesn't surprise me that Orbiter doesn't model precession for lunar orbits since lunar gravity is so lumpy and lunar orbits are not very frequently modeled. My hope was that an orbit at 86º would be more stable since it is mentioned as one of the frozen orbits according to this article:
http://science.nasa.gov/science-news/science-at-nasa/2006/06nov_loworbit/

My understanding is that the moon is oblate but only has about one-third the oblateness of the earth. Do you think such an orbit might be possible in real life with some minimal Delta-V requirements for orbital corrections? I was thinking of something like a remotely-operated orbital lab that would have access to the lunar polar regions.
 
You could try to learn to use GMAT. It has a better lunar gravity model:

http://gmat.gsfc.nasa.gov/

This might get you started:
Code:
%General Mission Analysis Tool(GMAT) Script
%Created: 2014-09-17 02:22:02


%----------------------------------------
%---------- Spacecraft
%----------------------------------------

Create Spacecraft DefaultSC;
GMAT DefaultSC.DateFormat = UTCGregorian;
GMAT DefaultSC.Epoch = '01 Jan 2000 11:59:28.000';
GMAT DefaultSC.CoordinateSystem = LunarEquator;
GMAT DefaultSC.DisplayStateType = Keplerian;
GMAT DefaultSC.SMA = 1839.999999999964;
GMAT DefaultSC.ECC = 1.661147375111222e-014;
GMAT DefaultSC.INC = 80.99999999999962;
GMAT DefaultSC.RAAN = 201.1274377837464;
GMAT DefaultSC.AOP = 0;
GMAT DefaultSC.TA = 205.211471924842;
GMAT DefaultSC.DryMass = 850;
GMAT DefaultSC.Cd = 2.2;
GMAT DefaultSC.Cr = 1.8;
GMAT DefaultSC.DragArea = 15;
GMAT DefaultSC.SRPArea = 1;
GMAT DefaultSC.NAIFId = -123456789;
GMAT DefaultSC.NAIFIdReferenceFrame = -123456789;
GMAT DefaultSC.Id = 'SatId';
GMAT DefaultSC.Attitude = CoordinateSystemFixed;
GMAT DefaultSC.ModelFile = '../data/vehicle/models/aura.3ds';
GMAT DefaultSC.ModelOffsetX = 0;
GMAT DefaultSC.ModelOffsetY = 0;
GMAT DefaultSC.ModelOffsetZ = 0;
GMAT DefaultSC.ModelRotationX = 0;
GMAT DefaultSC.ModelRotationY = 0;
GMAT DefaultSC.ModelRotationZ = 0;
GMAT DefaultSC.ModelScale = 3;
GMAT DefaultSC.AttitudeDisplayStateType = 'Quaternion';
GMAT DefaultSC.AttitudeRateDisplayStateType = 'AngularVelocity';
GMAT DefaultSC.AttitudeCoordinateSystem = EarthMJ2000Eq;
GMAT DefaultSC.EulerAngleSequence = '321';



%----------------------------------------
%---------- ForceModels
%----------------------------------------

Create ForceModel DefaultProp_ForceModel;
GMAT DefaultProp_ForceModel.CentralBody = Luna;
GMAT DefaultProp_ForceModel.PrimaryBodies = {Luna};
GMAT DefaultProp_ForceModel.PointMasses = {Earth, Sun};
GMAT DefaultProp_ForceModel.Drag = None;
GMAT DefaultProp_ForceModel.SRP = Off;
GMAT DefaultProp_ForceModel.RelativisticCorrection = Off;
GMAT DefaultProp_ForceModel.ErrorControl = RSSStep;
GMAT DefaultProp_ForceModel.GravityField.Luna.Degree = 4;
GMAT DefaultProp_ForceModel.GravityField.Luna.Order = 4;
GMAT DefaultProp_ForceModel.GravityField.Luna.PotentialFile = 'LP165P.cof';

%----------------------------------------
%---------- Propagators
%----------------------------------------

Create Propagator DefaultProp;
GMAT DefaultProp.FM = DefaultProp_ForceModel;
GMAT DefaultProp.Type = PrinceDormand78;
GMAT DefaultProp.InitialStepSize = 60;
GMAT DefaultProp.Accuracy = 9.999999999999999e-012;
GMAT DefaultProp.MinStep = 0.001;
GMAT DefaultProp.MaxStep = 500000;
GMAT DefaultProp.MaxStepAttempts = 50;
GMAT DefaultProp.StopIfAccuracyIsViolated = true;

%----------------------------------------
%---------- Coordinate Systems
%----------------------------------------

Create CoordinateSystem LunarEquator;
GMAT LunarEquator.Origin = Luna;
GMAT LunarEquator.Axes = Equator;

%----------------------------------------
%---------- Subscribers
%----------------------------------------

Create XYPlot XYPlot1;
GMAT XYPlot1.SolverIterations = Current;
GMAT XYPlot1.UpperLeft = [ 0.002617801047120419 0 ];
GMAT XYPlot1.Size = [ 0.5 0.4506065857885615 ];
GMAT XYPlot1.RelativeZOrder = 399;
GMAT XYPlot1.Maximized = false;
GMAT XYPlot1.XVariable = DefaultSC.UTCModJulian;
GMAT XYPlot1.YVariables = {DefaultSC.Luna.RadPer};
GMAT XYPlot1.ShowGrid = true;
GMAT XYPlot1.ShowPlot = true;

Create XYPlot XYPlot2;
GMAT XYPlot2.SolverIterations = Current;
GMAT XYPlot2.UpperLeft = [ 0.003490401396160559 0.4558058925476603 ];
GMAT XYPlot2.Size = [ 0.5 0.4506065857885615 ];
GMAT XYPlot2.RelativeZOrder = 397;
GMAT XYPlot2.Maximized = false;
GMAT XYPlot2.XVariable = DefaultSC.UTCModJulian;
GMAT XYPlot2.YVariables = {DefaultSC.LunarEquator.RAAN};
GMAT XYPlot2.ShowGrid = true;
GMAT XYPlot2.ShowPlot = true;


%----------------------------------------
%---------- Mission Sequence
%----------------------------------------

BeginMissionSequence;
Propagate DefaultProp(DefaultSC) {DefaultSC.ElapsedDays = 60};
Propagate DefaultProp(DefaultSC) {DefaultSC.ElapsedDays = 60};
Propagate DefaultProp(DefaultSC) {DefaultSC.ElapsedDays = 60};
Propagate DefaultProp(DefaultSC) {DefaultSC.ElapsedDays = 365};
 
Back
Top