Multi-Body Effects

Top  Previous  Next

In the "Orbital Elements" chapter, we learned about the six Keplerian elements that describe an orbit: the semi-major axis, eccentricity, inclination, right ascension of the ascending node, argument of perigee, and true anomaly. These six elements were sufficient enough to describe the entire orbit of the spacecraft. However, these Keplerian elements assume a relatively simple model of gravity.


Keplerian orbits are defined based on two assumptions. The first is that there are only two bodies in the model - the central body, and the satellite. The second is that both bodies are modeled as point masses - each body has a uniform gravitational field around a single point at the very center of the body.


When dealing with the real world, however, the Earth's gravity is not the only force acting upon our orbiting spacecraft. In fact, depending upon where our spacecraft is in space, bodies such as the Moon, the Sun, and even Jupiter can change our orbits in small ways (and sometimes big ways). To increase the fidelity of our analyses, we can add more perturbing forces to our calculations. When we are calculating our orbit with two main gravitational bodies and our spacecraft (three bodies in total), we call that a "Three Body Problem". When three bodies aren't enough and we add more, we call it a "Multi-Body" Problem. However, when dealing with three body and multi-body problems, it is very difficult to calculate by hand. So, the best tool to use for these calculations is a spaceflight simulator, like FreeFlyer.



Modeling a Two Body, Three Body, and Multi-Body Problem



We have a spacecraft orbiting the Earth in a Highly Elliptical Orbit (HEO). What does the orbit look like in a two body model (Earth and Spacecraft), a three body problem (Earth, Sun, and Spacecraft), and a multi-body problem (Earth, Sun, Moon, and Spacecraft)? The initial Keplerian elements for the spacecraft are as follows:


A: 290,521.192 km

E: 0.9759

I: 25.7786 deg

RAAN: 348.5809

W: 344.1243 deg

TA: 0 deg

Epoch: "Jan 01 2010 03:10:00.000"



Create a new Mission Plan and save it as "MultiBodyProblem.MissionPlan"


Adding in Spacecraft


Create a Spacecraft with the following Keplerian elements

oA: 290521.192 km

oE: 0.9759

oI: 25.7786 deg

oRAAN: 348.5809 deg

oW: 344.1243 deg

oTA: 0 deg

Be sure to change the Spacecraft epoch to "Jan 01 2010 03:10:00.000"



Spacecraft Epoch


Click on "Force Model" on the left-hand side of the Spacecraft editor

Uncheck the "Moon" and "Sun" boxes



Force Model Available Bodies


Change the Spacecraft name to "TwoBodySC"

Click "Ok" to close the editor


Right-click "TwoBodySC" and clone it

Double-click "TwoBodySC_Copy1"

In the Spacecraft object's force model, check the "Sun" box

In "Visualization", change the tail color to green

Change the name to "ThreeBodySC"

Click "Ok" to close the editor


Right-click "TwoBodySC" and clone it

Double-click "TwoBodySC_Copy1"

In the Spacecraft object's force model, check the "Sun" and the "Moon" box

In "Visualization", change the tail color to yellow

Change the Spacecraft object's name to "MultiBodySC"

Click "Ok" to close the editor


Adding the ViewWindow


Create a ViewWindow through the Object Browser

Double-click "ViewWindow1"

Check "TwoBodySC", "ThreeBodySC", and "MultiBodySC" under the "Available Objects"

Check "Show Name" for all three Spacecraft

Change the history mode to "Unlimited" for all three Spacecraft

Click on "Viewpoints" on the left-hand side

Change the reference frame to "Inertial"

Change the radius to 660000 km

Click "Ok" to close the editor


Building the Mission Sequence


Drag and drop a While loop onto the Mission Sequence

Change the While loop argument to "(TwoBodySC.ElapsedTime < TIMESPAN(20 days))"

Drag and drop a FreeForm script editor inside the while loop

Double-click on the FreeForm script editor

Change the name to "Step and Update"


In this FreeForm, we will step all Spacecraft, making sure to keep the epochs synced, and update the ViewWindow. To do this, we write:


// Step each spacecraft with an epoch sync

Step TwoBodySC;

Step ThreeBodySC to (ThreeBodySC.Epoch == TwoBodySC.Epoch);

Step MultiBodySC to (MultiBodySC.Epoch == TwoBodySC.Epoch);


// Updates the ViewWindow

Update ViewWindow1;


Your Mission Sequence should look something like this:



Mission Sequence Example


Save and run your Mission Plan, then try and answer these questions:


Which Spacecraft object's orbit did not change from the original ellipse?


What happened to "ThreeBodySC"? What do you think caused this to happen?


What is the shape of the orbit of "MultiBodySC"'?


Which Spacecraft most closely simulates real life? How does this show you the usefulness of Spacecraft modeling software?



See Also

Real World Modeling

Next Topic: J2 Perturbation