Circular Restricted Three-body Problem (CR3BP) Configuration
STK Premium (Space) or STK Enterprise
You can obtain the necessary licenses for this tutorial by contacting AGI Support at support@agi.com or 1-800-924-7244.
This lesson requires STK 12.7 or newer to complete. Optional steps are included if using an older version of STK.
The results of the tutorial may vary depending on the user settings and data enabled (online operations, terrain server, dynamic Earth data, etc.). It is acceptable to have different results.
Capabilities covered
This lesson covers the following STK Capabilities:
- STK Pro
- Astrogator
- Analysis Workbench
Problem statement
Engineers and operators require a quick way to create initial designs for spacecraft trajectories for mission planning and operations. You want to model an "Earth-Moon" circular restricted three-body problem (CR3BP) system.
The circular restricted three-body problem (CR3BP) represents a medium level of model fidelity that simultaneously incorporates the gravitational effects of two massive bodies on some smaller body, like a spacecraft.
Solution
Use STK's Astrogator capability and the CR3BP Setup Tool to model an Earth-Moon CR3BP system. The CR3BP Setup Tool is available using STK 12.7 or later. It was built to assist in configuring the STK scenario to address the CR3BP problem. In this lesson, you will learn how to use the CR3BP Setup Tool to define a new idealized circular orbit around the Moon and build the necessary components. Before the CR3BP Setup Tool was available, you needed to manually create a custom central body and custom reference frames, and you had to design a force model with customized central bodies. Now you can do the same thing easily with just a few clicks using the CR3BP Setup Tool.
What you will learn
Upon completion of this tutorial, you will be able to:
- Create a custom central body
- Create unique reference frames
- Design a force model with the customized central bodies and reference frames
Video guidance
Watch the following video. Then follow the steps below, which incorporate the systems and missions you work on (sample inputs provided).
Creating a new scenario
- Create a new scenario and call it EarthMoonCRP.
- Set the analysis time to the following:
- Click .
Option | Value |
---|---|
Analysis Start Time | 4 Mar 2019 17:00:00.000 UTCG |
Analysis End Time |
+30 days |
Inserting a satellite
Create a new satellite that you will modify later in the lesson.
- Insert a default satellite ().
- Right-click the Satellite () object.
- Select Rename.
- Rename the Satellite () object to L1HaloOrbit.
- Click Save (). A folder with the same name as your scenario is created for you.
- In the Save As window, verify the scenario name and location and click .
Please save your scenario as an .sc file, because you will build custom components in the Component Browser. VDFs (the other save option) may not package external files held by the Component Browser.
Setting up CR3BP with Design Tools
Within the Design Tools, you will use the CR3BP Setup Tool to define a new circular orbit Moon and call it Noom. You will build the necessary components with this setup tool. This tool is built to assist in configuring the scenario to address the Circular Restricted Three-Body Problem.
- Open the Component Browser from the Utilities menu.
- From the list of component folders, open the Design Tools.
- Duplicate the CR3BP Setup Tool.
- Set the name to "Noom Setup".
- Open the Noom Setup properties.
You cannot duplicate orange components. This prevents interdependencies as you build and design additional idealized central bodies.
Configuring an idealized central body "Noom"
When creating a new idealized central body, you can specify the orbit for the central body. For each setup, there will be a list of components in the top right with the Mass Parameter and Characteristic components. These values aren't editable, but you can copy and modify their format. As you create components, those components will populate the Associated Objects list.
- Central Body should be Earth.
- Set Source Secondary to Moon. The list of available Source Secondary bodies will change depending on the selected Central Body.
- Leave the initial Epoch as the scenario start time.
- Set the Ideal Orbit Radius as "Epoch-centered average source radius".
- Set the name of the Ideal Secondary to "Noom."
- Tab or click out of the box to validate the name.
- Click .
- Review the Associated Objects list. You have just created a new idealized circular orbit "Noom" central body. You can also verify that it is built by checking the Central Bodies folder in the Component Browser.
Creating the components
Along with creating the coordinate system, you will build calculation objects.
- Set the Coordinate System to Barycenter-centered if it isn't already set.
- Click .
- Review the Associated Objects list. You have created new Analysis Workbench Axes, Point, and Systems which depend on Noom.
- Click under the Calculation Objects for Selected System list.
- Review the Associated Objects list. There are new Cartesian Calculation Objects that depend on the earlier created rotating system. You can also verify that these have been built by checking the Calculation Objects - Cartesian Elems folder in the Component Browser.
- Click .
- Close the Component Browser.
Modeling the new central body Noom
Now that you created the new Noom, have STK display it in the scenario. You can visualize Noom's orbit, but first you need to add a new planet object to the Object Browser.
- Bring the Insert STK Objects tool to the front.
- Insert a Planet object () using the Define Properties () method.
- Set the Central Body to Noom.
- Set the Ephemeris Source to Analytic.
- Select the 2D Graphics - Attributes tab.
- Make the following changes:
- Increase the Line Width.
- On the 3D Graphics - Attributes tab, verify that the Inherit from 2D Planet Graphics check box is selected.
- Click .
Option | Value |
---|---|
Inherit from scenario | Off |
Show Subplanet Point | Off |
Show Subplanet Label | Off |
Show Orbit | On |
Modifying your view
View your new secondary body in the 3D Graphics window by pulling the view around to observe its circular orbit. Note the real Moon.
- Close the 2D Graphics window.
- Right-click Noom and Zoom To in the 3D Graphics window. Move the window around until you see the real Moon. Note Noom’s proximal, but not coincident, position with respect to the Moon. If you used the "instantaneous" Noom, then both the Noom and Moon would overlap.
Adding imagery for Noom
Update the imagery for Noom.
- Click the Globe Manager () icon in the 3D Graphics window toolbar.
- Click Add Central Body ( ) in the Globe Manager toolbar.
- Select Noom.
- Right-click Noom in the Globe Manager Hierarchy tab.
- Select Add Terrain/Imagery ().
- Open the Path drop-down menu.
- Select <STK install folder>\STKData\VO\Textures.
- Select gray.jp2 or Moon.jp2 from the directory.
- Click .
- Clear the Moon check box in the Globe Manager Hierarchy tab.
- Save () the scenario.
Your 3D window should look similar to this:
You may think to yourself, "Well that was easy, but what did I actually do?" You need to break it down. The next sections help you walk though manually building each component for a new object called Luna. This helps you to understand the various dependencies. Also, in case you do not have STK 12.7 or later, and thus do not have the CR3BP Setup Tool, then you may use the steps below to build the components you need.
Creating a central body "Luna" with manual configuration
In this section, you will build an idealized model of the Moon and call it Luna. To get started, you'll duplicate the generic Asteroid Template in the Component Browser to create a new central body with minimal preset options requiring modification. Then you can set the parameters as desired.
- Extend the Utilities menu.
- Select the Component Browser... option.
- Select Central Bodies directory.
- Select the AsteroidTemplate.
- Click Duplicate component ().
- Rename the Central Body "Luna", to differentiate it from "Noom".
- Set the User Comment to "Circular Orbit Moon."
Configuring Luna's properties
- Double-click Luna to open the properties panel.
- Set the following properties:
- Click beside the Analytic field.
- Set the following properties:
- Ensure J2, J3, and J4 are set to zero (0).
- Click .
- Set the Shape option to Sphere.
- Set the Radius to 1737.4 km.
Option | Value |
---|---|
Gravitational Parameter | 4902.800305555400 km^3/sec^2 |
Parent | Earth |
Gravitational Models | ZonalsToJ4 |
Option | Value |
---|---|
Gravitational Parameter | 4902.800305555400 km^3/sec^2 |
Ref. Distance | 1737.4 km |
Defining the attitude
You can set the attitude to IAU_1994.
- Under the Attitude field, click beside the Analytic field.
- Set the Epoch (JED) to 2458547.209134070.
- Set the following options for Right Ascension:
- Set the following options for Declination:
- Set the Rotation Offset to 180 deg.
- Set the Rate to 1.480234944229988e-04 deg/sec.
- Click .
Option | Value |
---|---|
Orientation | 0 deg |
Rate | 0 deg/sec |
Option | Value |
---|---|
Orientation | 90 deg |
Rate | 0 deg/sec |
Defining the analytic orbit for the ephemeris
Take a moment to define the Analytic Orbit for the Ephemeris of Luna.
- Under the Ephemeris field, click beside the Analytic field.
- Set the Epoch (JED) to 2458547.209134070.
- Set the following options for Semi-major Axis:
- Set the following options for Eccentricity:
- Set the following options for Inclination:
- Set the following options for Right ascension of ascending node:
- Set the following options for Longitude of Periapsis:
- Set the following options for Mean longitude:
- Click to close the Ephemeris Analytic Orbit dialog.
- Click to close the Central Bodies dialog.
- Close the Component Browser.
Option | Value |
---|---|
Semi-major Axis | 385424.900010217330418527 km |
Rate | 0 km/sec |
Option | Value |
---|---|
Eccentrcity | 0 |
Rate | 0 |
Option | Value |
---|---|
Inclination | 21.681031236043310 deg |
Rate | 0 deg/sec |
Option | Value |
---|---|
Right ascension of ascending node | 12.619041698874328 deg |
Rate | 0 deg/sec |
Option | Value |
---|---|
Longitude of Periapsis | 140.441905041691513 deg |
Rate | 0 deg/sec |
Option | Value |
---|---|
Mean longitude | 323.316086420511397 deg |
Rate | 0.000151175657974 deg/sec |
Modeling the new central body
Now that you created the new "Luna," have STK display it in the scenario. You can visualize Luna's orbit, but first you need to add a new planet object to the Object Browser.
- Bring the Insert STK Objects tool to the front.
- Insert a Planet object () using the Define Properties () method.
- Set the Central Body to Luna.
- Set the Ephemeris Source to Analytic.
- Select the 2D Graphics - Attributes tab.
- Make the following changes:
- Increase the Line Width.
- On the 3D Graphics - Attributes tab, verify that the Inherit from 2D Planet Graphics check box is selected.
- Click .
Option | Value |
---|---|
Inherit from scenario | Off |
Show Subplanet Point | Off |
Show Subplanet Label | Off |
Show Orbit | On |
Modifying your view
View your new secondary body in the 3D Graphics Window by pulling the view around to observe its circular orbit. Note the real Moon.
- Close the 2D Graphics Window.
- Right-click Luna and Zoom To in the 3D Graphics window. Move the window around until you see the real Moon. Note Luna’s proximal, but not coincident, position with respect to the Moon.
Adding imagery
Update the imagery for Luna.
- Click the Globe Manager () icon in the 3D Graphics window toolbar.
- Click Add Central Body ( ) in the Globe Manager toolbar.
- Select Luna.
- Right-click Luna in the Globe Manager Hierarchy tab.
- Select Add Terrain/Imagery ().
- Open the Path drop-down menu.
- Select <STK install folder>\STKData\VO\Textures.
- Select gray.jp2 or Moon.jp2 from the directory.
- Click .
- If still visible, clear the Moon check box in the Globe Manager Hierarchy tab.
- Save () the scenario.
Configuring coordinate systems
You will create custom components in STK's Analysis Workbench capability to define the Barycenter reference frame and system associated with the system comprised of the new central body (Luna) and the Earth.
- Open Analysis Workbench from the Analysis menu or by clicking the toolbar icon ().
- Select the Vector Geometry tab, and filter by Primary Central Bodies.
- Click Earth. You will create all of your components under Earth.
- Click the Create new Vector () icon.
- Leave the Type as Displacement.
- Name the vector EarthLunaVector.
- Set the Origin Point as Earth Center.
- Set the Destination Point as Luna Center.
- Clear the Apparent check box. You care about the true location of your central bodies regardless of any light time delays.
- Click .
Creating the Earth-Luna axes
- Click the Create New Axes () icon.
- Set the Type to Aligned and Constrained.
- Name the axes EarthLunaAxes.
- For the Aligned Vector, select Earth EarthLunaVector.
- Set the Cartesian values to:
- For the Constrained vector, select Luna Orbit_AngMomentum.
- Set the Cartesian components to:
- Click .
- Save () the scenario.
Option | Value |
---|---|
X | 1 |
Y | 0 |
Z: | 0 |
The EarthLunaVector will provide the X unit vector for the axes.
Option | Value |
---|---|
X | 0 |
Y | 0 |
Z | 1 |
The angular momentum vector for Luna’s orbit will provide the Z unit vector for the axes, and the Y unit vector will result as a consequence of the right-hand rule.
Creating the EarthLunaPrimaryCentered system
- Click the Create new System () icon.
- Leave the Type as Assembled.
- Name the system EarthLunaPrimaryCentered.
- Leave the Origin Point as Earth Center.
- Set the Reference Axes to Earth EarthLunaAxes.
- Click .
Creating a barycentered frame
Now, you’ll create a barycentered frame, a common frame when working with the CR3BP.
- Click the Create new Point () icon.
- Leave the Type as Fixed in System.
- Name the point EarthLunaBarycenter.
- Leave the Fixed Point Type as Cartesian.
- Set the X component to 4683.13788266 km.
- Set the Reference System field to Earth EarthLunaPrimaryCentered.
- Click .
You will use the CR3BP mass parameter to define the point. It will be μ nondimensional units from the Earth center along the Earth-Luna direction. The mass parameter, μ, is given as:
Note the two-body mass parameter units cancel, leaving a nondimensional three-body mass parameter. Multiplying the three-body mass parameter by the characteristic distance of the system, which is the constant semimajor axis of the secondary’s circular orbit, gives:
Creating the EarthLunaBarycentered system
- Click the Create new System () button again.
- Leave the Type as Assembled.
- Name the system EarthLunaBarycentered.
- Set the Origin Point to EarthLunaBarycenter.
- Set the Reference Axes to EarthLunaAxes.
- Click .
- Close Analysis Workbench.
- Save () the scenario.
You created five new components in Analysis Workbench under the Earth central body:
- EarthLunaVector (vector)
- EarthLunaAxes (axes)
- EarthLunaBarycenter (point)
- EarthLunaBarycentered (coordinate system)
- EarthLunaPrimaryCentered (coordinate system)
Configuring calculation objects
You will create some custom components so that you can report them out after the study.
- Extend the Utilities menu.
- Select the Component Browser... option.
- Expand the Calculation Objects component and select Cartesian Elems.
- Duplicate () each of the six position and velocity calculation objects.
- Name the duplicates in the following way, with EL standing for Earth-Luna:
- Open each of the six duplicated elements and change the CoordSystem to Earth EarthLunaBarycentered.
- Close the Component Browser.
- Save () the scenario.
Original | Duplicate Name |
---|---|
Vx | ELVx |
Vy | ELVy |
Vz | ELVz |
X | ELRx |
Y | ELRy |
Z | ELRz |
Adding a second 3D view
You can open multiple 3D views that enable you to view important reference frames for your systems.
- Extend the View menu and select Duplicate 3D Graphics Window. You will use the existing settings for the 3D Graphics window and update these to display your rotating frame trajectory.
- Click the Properties () button in the new 3D Graphics window.
- Open the Vector tab. You may want to add axes, planes, or additional libration points to the window. For now, you’ll just add the Earth-Noom L1 libration point.
- Open the Points tab and click .
- Select Noom from the list of Primary Central Bodies.
- Select the L1 point () from the "Components for" section. You will need to scroll down to the bottom of the list.
- Click .
- Optionally, change the color of the point.
- Change the System field to EarthNoomBarycenterCenteredRotating. If you are using Luna, then select EarthLunaBarycentered for all equivalent changes.
- Change the size of the point to your preference.
- Click , then click .
- Save () the scenario.
Configuring the force model
You built and defined the Noom central body. In the next few steps you will create a force model that utilizes it.
- Extend the Utilities menu.
- Select the Component Browser... option.
- Select the Propagators directory.
- Select the Three Body template.
- Click Duplicate component ().
- Rename the new propagator "EarthNoomCRP".
- Double-click EarthNoomCRP to open the properties panel.
- In the CR3BP Force, set the secondary body to Noom.
- Click .
Setting up the Astrogator satellite
Now that you have defined all the components of your new system, you will place a satellite in orbit about the L1 point.
Configuring the 3D view
You will go through L1HaloOrbit's () properties and set its specific parameters.
- Double-click L1HaloOrbit () to open its properties. You added the L1HaloOrbit () Satellite object at the beginning of this tutorial.
- Open the 3D Graphics - Orbit System page.
- Click .
- Change the Filter by option to Primary Central Bodies.
- Select Noom from the list of central bodies.
- Select EarthNoomBarycenterCenteredRotating from the "Systems for" Noom list.
- Click .
Editing the satellite's properties
- Return to the 3D Graphics - Orbit System page for L1HaloOrbit ().
- Ensure EarthNoomBarycenterCenteredRotating is highlighted. If EarthNoomBarycenterCenteredRotating is not highlighted, click it once to highlight it.
- Select Inertial by Window to highlight it.
- Select 3D Graphics 1 - Earth in the 3D Windows section.
- Click .
- Save () the scenario.
Configuring the orbit
You created a satellite object very early in your scenario. You will now go in and modify this satellite’s orbit. You will place it in orbit about the Earth Noom L1 position by specifying its initial state.
- Open the Basic - Orbit page.
- Ensure the Initial State is selected.
- Change the Propagator to Astrogator.
- Define the properties within the Elements tab as follows:
Option | Value |
---|---|
Coord. System | Noom EarthNoomBarycenterCenteredRotating |
Coordinate Type | Cartesian |
X Component | 322022.503957876 km |
Y Component | 0 km |
Z Component | 54884.505761407 km |
Vx Component | 0 km/sec |
Vy Component | 0.2585583925805190 km/sec |
Vz Component | 0 km/sec |
Update the propagator
- Select the Propagate segment
- Change the propagator to EarthNoomCRP.
- Click .
- Set the Minimum propagation time to 10 sec.
- Click .
- Add a Z-X Plane Cross stopping condition with the following definitions:
- Remove or disable the Duration stopping condition.
- Right-click the Propagate segment and select Results…
- Open the Cartesian Elems folder.
- Add the six "BarycenteredEarthNoom" position and velocity calculation objects.
- Save () the scenario.
Option | Value |
---|---|
Criterion | Cross Increasing |
Repeat Count | 5 |
Coord. System | Noom EarthNoomBarycenterCenteredRotating |
Generate results
Since you defined your system and your satellite, you can run your MCS to visualize your solution and generate various data.
- Run the MCS. Assuming everything has gone according to plan, you should see an Earth-Noom L1 halo orbit in the rotating frame that looks like these examples. These examples are for one revolution.
- Right-click the Propagate segment and select Summary….
- Scroll to the bottom and note the “User-selected results”. These should include the six Earth-Noom position and velocity calculation objects. The values should be close to what you used for the initial conditions.
- Save () the scenario.
An Earth-Noom L1 halo orbit, rotating view
An Earth-Noom L1 halo orbit, inertial view
Jacobi integral report
You can generate a final relevant report for the three-body analysis to validate your work.
- Right-click the satellite () in the Object Browser.
- Select the Report & Graph Manager ().
- Select the MyStyles directory.
- Click the New Report button ().
- Set the name to "Jacobi Integral Report".
- Expand the Astrogator Values directory.
- Expand the MultiBody directory.
- Move () Time to the Report Contents.
- Move () Jacobi Integral to the Report Contents.
- Click .
- Generate the report.
Notice the Jacobi Integral over the length of the propagation. A value that is constant to several digits indicates that the model is numerically simulated properly.
Building an L1 Halo orbit for a new system
The halo orbit you built used predefined values. But how would you create a halo orbit for a new system? How should you approach a new solution? In your case, you have an existing solution, so use that to build additional halo orbits.
Look at the dimensional units. For an Earth-Moon use case, the CR3BP mass parameter, μ, is given as:
Note the two-body mass parameter units cancel, leaving a nondimensional three-body mass parameter. This is a good start, but you need a few other parameters. You can calculate these, or you can find them from the CR3BP Setup Tool.
- Duplicate the CR3BP Setup Tool and set the name to "BlueMoon Setup".
- Set the Ideal Orbit Radius as "Instantaneous characteristic distance" and name it "BlueMoon".
- Repeat the steps from above to create the new Associated Objects.
- You need to find your characteristic values, and you need to be precise. Select the units icon for each of the listed parameters (Mass Parameter to Characteristic Acceleration). This will appear gray, but you can select it. Best practice, but not required, is to click Format and change the precision to 16 and the notation to Floating point. Optionally, you can also change the units, in this case m/sec to km/sec.
- Copy the values. For completeness, here are the parameters for BlueMoon:
Parameter Value Mass Parameter 0.0121505846734139 - Characteristic Distance (L) (Call it L` for BlueMoon)
406370.3595444307429716 km Characteristic Time (T = sqrt( L^3 / (GM_Earth + GM_Moon))) 407811.5490727517171763 sec Characteristic Velocity (V = L/T) (Call it V` for BlueMoon) 0.996466 km/sec Characteristic Acceleration 0.0024434473292663 m/sec^2 - You can reuse two components, L and V, from Noom to solve for BlueMoons L1 halo. Repeat the actions in step 4 to get the precise values for Noom's L and V. Call these Lnoom and Vnoom. The mass parameter, μ, for BlueMoon and Noom are the same.
- Noom's Characteristic Distance (Lnoom) = 385424.9000102173304185 km
- Noom's Characteristic Velocity (Vnoom) = 1.0231837400529219622 km/sec
- From your previously solved orbit of L1HaloOrbit, you will complete the following actions:
- Take the old X and Z values from Noom's initial state segment and divide by Lnoom.
- Take the old Vy value from the Noom's initial state segment and divide by Vnoom.
- Once you have the nondimensional state ( X, Y, Z, Vx, Vy, Vz), redimensionalize it with the characteristic distance and velocity from the tool. To "redimensionalize" your state vector, multiply the appropriate nondimensionalized components (position and velocity) by the characteristic distance and velocity you get from the system you have set up with the design tool. See the simplified expressions below.
- X` = L` * (Xnoom/Lnoom) = 339522.4354 km
- Z` = L` * (Znoom/Lnoom) = 57867.13919907630km
- V`y= V` * (Vynoom/Vnoom) = 0.2518068232865140 km/sec
- This process should work because the three-body μ values should be the same in this tutorial; only the characteristic quantities should be different.
- Repeat the steps from above to create the new BlueMoon planet objects, visulize it, and create a force model for it.
- Then model and display your satellite with your newly created coordinate systems, propagators, and newly solved X`, Z`, and V`y. You will also need to make a new VGT system for visualizing.
Summary
In this lesson, you set up a scenario to address the Circular Restricted Three-Body Problem. You utilized the Design Tool CR3BP Setup Tool to build the components, but also investigated how you could build components manually. Then you designed a new force model and used that to model a satellite in L1 Halo Orbit of your idealized Moon or "Noom". Finally, you examined some reports and also discussed how to model other L1 Halo Orbits using the derived solution in this work.