Astrogator LEO Rendezvous and Proximity Operations (RPO)

STK Premium (Space) or STK Enterprise
You can obtain the necessary licenses for this training by contacting AGI Support at support@agi.com or 1-800-924-7244.

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

Problem statement

Rendezvous and proximity operations (RPO) mission planning can be a very complex process. An RPO mission planner with minimal training wants to plan an RPO mission. STK’s Astrogator capability has a very robust feature set that allows for complex RPO mission planning and requires significant expertise to efficiently and effectively plan an RPO mission.

Solution

 

Use Astrogator to model an RPO mission. You will follow some basic steps in modeling missions of one satellite approaching another already in orbit using Astrogator. You will model two satellites already in the same plane, with an “Inspector Satellite” trailing a “Target Satellite” in True Anomaly, and will target two in-plane burns to approach and subsequently circumnavigate the target. You’ll create a Mission Control Sequence (MCS) to perform a nonoptimal transfer to the target satellite and a maneuver to enter into a Natural Motion Circumnavigation (NMC) relative orbit.

It is worth noting that there is nothing trivial about RPO. This tutorial is intended to address a common RPO mission requirement, while providing a basic understanding of Astrogator's techniques. It is not meant to cover or address all of the nuances regarding this type of relative orbit. As mentioned above, this tutorial will not result in a minimum Delta-V solution, as osculating orbital effects are not considered in determining optimal departure and transfer times.

Recommended training

This tutorial assumes you have some working knowledge of Astrogator. If not, you should go through the following tutorials to become familiar with Astrogator:

What you will learn

Upon completion of this tutorial, you will be able to:

  • Model a target satellite and a maneuvering (RPO) satellite
  • Model a drift approach, Vbar hop, and target a NMC
  • Generate and evaluate relevant data sets

Video guidance

Watch the following video. Then follow the steps below, which incorporate the systems and missions you work on (sample inputs provided).

The video references a starter scenario that you can find in the SDF. You don't need the starter scenario for the tutorial because the steps in the tutorial walk you through how to get the starter scenario. The starter scenario was used for a virtual training to speed things up.

Model the world!

Before you can begin with any analysis, you need to create a scenario and add a satellite. Do that now.

  1. Create a new scenario and call it LEO_Rendezvous.
  2. Set the analysis period to the following. Either accept the default start time and add two days (+2 days) or use the specified times below:
  3. OptionValue
    Analysis Start Time1 Jul 2018 16:00:00.000 UTCG
    Analysis End Time+ 2 days

  4. Add a satellite () using the Define Properties () method in the Insert STK Objects () tool.
  5. Enter the following in the satellite's properties.
  6. OptionValue
    NameTarget_Sat
    PropagatorAstrogator
  7. Change the Initial State () to the following LEO orbit.
    1. Apopasis Altitude: 500 km

      Periapsis Altitude: 500 km

      Inclination: 98.5 deg

      RAAN: 90 deg

      Argument of Perigee: 0 deg

      True Anomaly: 0 deg

  8. Change the Propagation duration stopping condition to two (2) days.

Example LEO orbit values.

Propagate the satellite and clean up graphics

Now that you have the satellite ready, you can propagate it.

  1. Run () Astrogator to propagate the satellite.
  2. Clear () the run graphics.
  3. Select the 2D Graphics - Pass page.
  4. Click the Resolution button.
  5. Set the Maximum time between orbit points to ten (10) sec. This is purely aesthetic.

Create the inspector satellite

You have a good start on the inspector satellite with the LEO satellite you just built. Now copy that satellite and then modify the new copy.

  1. Copy () Target_Sat () in the Object Browser.
  2. Paste () the new satellite into the Object Browser.
  3. Rename the new satellite RPO_Sat.
  4. Open RPO_Sat's properties and on its Basic>Orbit page, modify the True Anomaly to 30 degrees. This will offset RPO_Sat 30 degrees ahead of Target_Sat in an in-plane leading position.
  5. Change the color of the propagate segment to be a different color than Target_Sat
  6. Run () Astrogator.
  7. Clear () the Graphics.

Reference the target satellite

  1. Select the Basic - Reference page in RPO_Sat's () properties ().
  2. Select Target_Sat as the Reference vehicle.
  3. Click Select and then Apply .
  4. This sets the reference for relative parameters, e.g., targeting relative orbit parameters.

Display the RPO satellite relative to Target_Sat

You can show the RPO trajectory relative to Target_Sat. This is an aesthetic change, but it makes the relative maneuvers easier to understand.

  1. In the Properties of the RPO_Sat, select the 3D Graphics - Orbit Systems page.
  2. Click the Add VVLH System button.
  3. Select Target_Sat and click OK .
  4. Clear the other to ensure Target_Sat VVLH is the only one showing.
  5. Click Apply .

View the RPO satellite trajectory

  1. Select the 3D Graphics - Pass page.
  2. Set the Orbit Track Lead Type to All.
  3. Click OK .

Add an RPO maneuver to approach the target satellite

  1. Bring RPO_Sat's () properties () to the front.
  2. Select the Basic - Orbit page.
  3. Change the existing Propagate () segment duration to 600 seconds.
  4. This propagation time is an arbitrary selection based on an initial guess for a mission requirement, and may not be optimal. For an optimal (minimum Delta-V) solution, you can use a Lambert solver to seed a two-body initial guess to Astrogator (refer to the Design Tool Components topic for more information on the Lambert Solver). Conversely, you can use the optimization profiles of SNOPT or IPOPT within Astrogator. This will be discussed at the end of the tutorial.

  5. Add a Target Sequence () after the propagate segment.
  6. Name the new Target Sequence "Target Approach."

Add an in-plane maneuver

First you will insert an in-plane maneuver to cause the satellite to drift to a specific point (in RIC coordinates) relative to the target satellite.

  1. Insert a Maneuver Segment inside the Target Sequence and name it "Burn1."
  2. In the properties panel for the Burn1 maneuver, change the Attitude Control option to Thrust Vector.
  3. Click the ellipsis next to thrust axes. Ensure that All STK Objects is selected in the filter drop-down, and select RPO_Sat as the object. Select the RIC axes on the right side as the thrust axes.
  4. Click the targets beside the X, Y, and Z values. They should become checked (). Keep the default 0 m/s values for each dimension; this serves as the initial guess for the target sequence.

Drift toward the satellite

  1. Add a new propagate () segment after the Maneuver ().
  2. Rename the propagate segment Drift.
  3. Set the Drift Propagate duration trip value to ten (10) hours. This will have an impact on the drift rate: 30 deg drift in 10 hours -> 3 deg/hour.
  4. Similar to the propagation time above, this transfer duration is an arbitrary selection based the mission needs for this tutorial.

  5. Set the color of the Drift propagate segment to something different than the Target_Sat color.
  6. Run () Astrogator.

RPO drifting with Target_Sat

Set goals for the target sequence

You would like to target a desired position relative to Target_Sat at the end of the drift propagate segment. You can specify those desired values and solve for them using the Target Sequence.

  1. Select the Drift Propagate segment in the Mission Control Sequence (MCS) Browser.
  2. With Drift selected, click Results .
  3. Expand () the Relative Motion Components directory.
  4. Move () CrossTrack, InTrack, and Radial to the Selected Components field.
  5. Click OK .

Set the Differential Corrector search profiles

Rather than attempting to force a single Differential Corrector to solve for the maneuver components in three axes all at once, you can nest a few differential correctors to quickly “walk into” the solution.

Build first differential corrector

  1. Select the Target Approach target sequence in the MCS.
  2. By default there will be one Differential Corrector profile in the target sequence’s properties panel. Rename the existing Differential Corrector to "Target to InTrack."
  3. Open the properties of the Target InTrack differential corrector.
  4. In this first profile, you’re only going to solve for the InTrack maneuver component. For the Y maneuver component, perform the following:
    • Select the Use check box.
    • Set the Perturbation to 1 m/sec.
    • Set the Max Step to 10 m/sec.
    • Setting the Perturbation and Max Step sizes appropriately for your differential corrector is an important step. If set too large or too small, it can prevent the differential corrector from converging on a solution. It is important to think through the magnitude of the changes required for each control parameter in the differential corrector, and to set these fields accordingly.

  5. As an equality constraint, you want to achieve a relative InTrack position. For the InTrack result, perform the following:
    • Enable the Use option.
    • Set the desired value to be 1 km.
    • Set the Tolerance to 0.001 km.
  6. Click the Convergence tab at the top of the dialog.
  7. In the Convergence Criteria drop box, select the following:
  8. Click OK .
  9. Save your scenario.

Build second differential corrector

  1. In the target sequence’s properties panel, click the copy icon ( ) to copy the differential corrector. Click the paste icon ( ) to paste a copy.
  2. Rename the copy to "Target Radial & InTrack."
  3. Open the properties of the new differential corrector.
  4. In this differential corrector, you will use the solution previously determined for the Y maneuver component while also solving for the Radial or X maneuver component.

  5. Make sure the Y maneuver component is still enabled.
  6. For the X maneuver component, perform the following:
    • Select the Use check box.
    • Set the Perturbation to 1 m/sec.
    • Set the Max Step to 10 m/sec.
  7. Make sure the InTrack result is still selected.
  8. You need to add the relative radial position as an equality constraint. For the Radial result, perform the following:
    • Select the Use check box.
    • Set the Tolerance to 0.001 km.
  9. In the Scaling Method drop-down box, choose By Tolerance.
  10. Click OK .

Build third differential corrector

  1. In the target sequence’s properties panel, click the copy icon ( ) to copy the differential corrector. Click the paste icon ( ) to paste a copy.
  2. Rename the copy to "Target RIC."
  3. Open the properties of the new differential corrector.
  4. In this differential corrector, you will use the solution previously determined for the X and Y maneuver components while also solving for the Cross-Track or Z maneuver component.

  5. For the X, Y, and Z Maneuver component, perform the following:
    • Select the Use check box.
    • Set the Perturbation to 1 m/sec.
    • Set the Max Step to 10 m/sec.
  6. Make sure the Radial and InTrack results are enabled.
  7. You need to add the relative cross-track position as an equality constraint. For the CrossTrack result, perform the following:
    • Select the Use check box.
    • Set the Tolerance to 0.001 km.
  8. In the Scaling Method drop-down box, choose By Tolerance.
  9. Click OK .
  10. Save your scenario.

Solve for the Control Parameters

  1. Set the Action to Run Active Profiles. This informs the target sequence to run the profile and solve for the control parameters to meet the desired results.
  2. Run () Astrogator to solve for the solution. The sequence should converge. If it does not converge, try adjusting the duration of the Drift propagate segment.
  3. Right-click Open the 3D Graphics window and zoom to RPO_Sat. Orient your view so you can see the orbit Astrogator created so far. Notice how RPO_Sat has initiated its transfer to Target_Sat.
  4. Zoom in on Target_Sat. Notice how the orbital trace for RPO_Sat stops 1 km away from it on the VBar or In-track direction relative to Target_Sat.

To close all target status windows at the same time, left-click the target icon () in the upper-left corner of one of the windows; when the menu appears, select "Close All Targeting Status Windows."

Target a maneuver to circumnavigate the target sequence

You’ve successfully targeted a maneuver to transfer RPO_Sat from its initial position 30 degrees away in True Anomaly from Target_Sat, to a position 1 km away from Target_Sat on Target_Sat’s VBar. You now need to compute the maneuver required to initiate the relative orbit to circumnavigate Target_Sat in a stable manner.

Add a Target Sequence to the end of the MCS

  1. Add a second Target Sequence to the end of the MCS.
  2. Rename it "Target_NMC."

Insert a Maneuver segment to represent the burn

You will do a three- axis burn to circumnavigate the target. Since you will be starting your circumnavigation relative orbit on Target_Sat’s VBar, it is primarily a radial maneuver required to formulate the orbit. But there are specific conditions that need to be met in order to achieve the natural motion circumnav, the primary condition being that the orbital periods of RPO_Sat and Target_Sat are matched.

  1. Insert a Maneuver Segment inside the Target Sequence and name it “Burn2.”
  2. Change the Attitude Control option to Thrust Vector.
  3. Click the ellipsis next to thrust axes. Ensure that All STK Objects is selected in the filter drop-down and select RPO_Sat as the object. Select the RIC axes on the right side as the thrust axes.
  4. Set the X, Y, and Z values to 0.0 m/sec.
  5. Click the targets beside the X, Y, and Z values. They should become checked ( ). These values serve as the initial guesses for the target sequence to use for the maneuver components.

Set the goals of the target sequence to achieve relative orbital parameters

  1. Select the Burn2 segment in the Mission Control Sequence (MCS) Browser.
  2. With Burn2 selected, click Results.
  3. Expand () the Formation Components directory.
  4. Move () Rel Mean SemiMajorAxis to the Selected Components field.
  5. Adding this value to the differential corrector will ensure you achieve a relative orbit where the orbital period is matched with Target_Sat’s.

  6. Expand () the Relative Motion Components directory.
  7. Move () CrossTrackRate to the Selected Components field.
  8. Adding this value to the differential corrector will ensure you achieve a relative orbit that is completely in plane with Target_Sat.

  9. Click OK .

Add a new Propagate segment after the maneuver

  1. Add a new Propagate () segment after the Maneuver () in the second Target Sequence ().
  2. Rename the Propagate segment to Prop2PlaneCross.
  3. Add a new stopping condition of type Y-Z Plane Cross.
  4. You want Burn2 to generate Delta-V that will propagate RPO_Sat to the negative VBar or -Y side of Target_Sat. That is essentially a position where RPO_Sat is crossing the Y-Z plane of Target_Sat, where the Y-Z plane represents the In-Track/Cross-Track plane of Target_Sat in the stopping condition’s properties.

  5. Change the Coordinate System from Earth Inertial by clicking the ellipsis button, selecting Target_Sat in the object list, and then the RIC coordinate system on the right.
  6. Delete the Duration stopping condition.
  7. Set the Criterion to Cross Decreasing.
  8. Click Results beneath the MCS for the Prop2PlaneCros segment.
  9. You want to achieve a symmetrical relative position on the negative VBar of Target_Sat from where RPO_Sat is currently. The satellite is currently 1 km in the positive VBar, so you want to add a relative position component as the result.

  10. Open the Relative Motion folder in the component list and double-click InTrack to add it as an equality constraint.
  11. Change the color of the Propagate segment.

RPO_Sat Propagating to Target YZ Plane Cross

Set the properties of the differential corrector

Similarly to the first Target Sequence, set up the second Target Sequence to walk into a circumnav relative orbit in a stepwise fashion. To do this, use three nested differential correctors.

Build first differential corrector

  1. Select the Target NMC target sequence in the MCS.
  2. By default there will be one Differential Corrector profile in the target sequence’s properties panel. Rename the existing Differential Corrector Target Radial and InTrack.
  3. In natural motion relative orbits, the radial and in-track components are intrinsically linked. This can easily be determined by the LTT transformation of the Clohessy-Wiltshire equations. For that reason, it makes sense to solve for the relative radial and in-track components in the same differential corrector.

  4. Open the properties of the “Target Radial and InTrack” differential corrector.
  5. In this first profile, you’re going to solve for the Radial and InTrack maneuver components for the NMC. For the X and Y maneuver components perform the following:
    • Select the Use check box.
    • Set the Perturbation to 0.1 m/sec.
    • Ensure the Max Step Size is set to 10 m/sec.

  6. Since you are varying the Radial and InTrack Delta-V, you need to add the Relative Semimajor Axis and relative InTrack position as an equality constraints. For the Rel_Mean_Semimajor_Axis result, perform the following:
    • Select the Use check box.
    • Set the desired value to 0 km.
    • Set the Tolerance to 1e-5 km.
  7. For the InTrack result, perform the following:
    • Select the Use check box.
    • Set the desired value to -1 km.
    • Set the Tolerance to 0.001 km.

    This will ensure that the maneuver is computed to place RPO_Sat 1km on the other side of Target_Sat when crossing the YZ Plane.

  8. In the Scaling Method drop-down box, choose By Tolerance.
  9. In the Convergence Criteria drop box, select the following:
  10. Click OK .
  11. Save your scenario.

Build Second Differential Corrector

  1. In the target sequence’s properties panel, click the copy icon ( ) to copy the differential corrector. Click the paste icon ( )to paste the copy.
  2. Rename the copy to "Target CrossTrack Rate."
  3. Open the properties of the new differential corrector.
  4. In this differential corrector, you will only solve for the cross-track component of the circumnav ellipse. The LTT equations tell you the cross-track component of natural motion ellipses are decoupled from the radial and in-track components. So, solving for the cross-track component by itself makes sense.

  5. Clear both the X and Y maneuver control parameter check boxes.
  6. In this profile, since you’re only going to solve for the cross-track maneuver component for the NMC, you need to perform the following for the Z maneuver control parameter:
    • Select the Use check box.
    • Set the Perturbation to 0.1 m/sec.
    • Set the Max Step to 10 m/sec.
  7. Clear both the Rel_Mean_Semimajor_Axis and InTrack results check boxes.
  8. Since you are varying the cross-track Delta-V, you need to add the CrossTrackRate as an equality constraint. For the CrossTrackRate result, perform the following:
    • Select the Use check box.
    • Set the desired value to 0 km/sec.
    • Set the Tolerance to 1e-6 km/sec.
  9. Click OK .
  10. Save your scenario.

Build Third Differential Corrector

  1. In the target sequence’s properties panel, click the copy icon ( ) to copy the differential corrector. Click the paste icon ( ) to paste a copy.
  2. Rename the copy to "Target RI and CrossTrack Rate."
  3. Open the properties of the new differential corrector.
  4. In this differential corrector, you will use the solutions previously determined for the X, Y, and Z maneuver components and further refine them in a single differential corrector.

  5. For the X, Y, and Z maneuver components, perform the following:
    • Select the Use check box.
    • Ensure the Perturbation is set to 0.1 m/sec.
    • Ensure the Max Step is set to 10 m/sec.
  6. You need to add all three equality constraints. For the Rel_Mean_Semimajor_Axis, InTrack, and CrossTrack results, perform the following:
    • Select the Use check box.
    • Ensure the CrossTrackRate Tolerance is set to 1e-6km/sec.
    • Ensure the Rel_Mean_Semimajor_Axis Tolerance is set to 1e-5km.
    • Ensure the InTrack Tolerance is set to 0.001km.
  7. In the Scaling Method drop-down box, choose By Tolerance.
  8. Click OK .
  9. Save your scenario.

Propagate the Natural Motion Circumnav for 12 hours

  1. After the Target NMC target sequence, add a propagate segment and name it NMC.
  2. Set the trip value for the duration stopping condition to be 12 hours.
  3. Your MCS should look like this:

Solve for the control parameters

  1. For the Target NMC target sequence, set the Action to Run Active Profiles. This informs the target sequence to run the profile and solve for the control parameters to meet the desired results.
  2. Run () Astrogator to solve for the solution.
  3. Clear () the graphics.

Evaluate the maneuvers performed

Take a look at the differential correct window for the second target sequence (Target NMC), where you targeted the Radial, In-Track, and Cross-Track Rate (Target.NMC.Target RI & CrossTrackRate). It will show you the Delta-V magnitude for each maneuver axis of the satellite.

At first glance, the large in-track (Y) maneuver component makes sense. The satellite arrived on Target_Sat’s VBar and needed to perform an in-track maneuver to move to the negative VBar. What may not make sense is the larger radial (X) maneuver component. What is the reason for this?

Generate a Maneuver Summary report to get a feel for the total Delta-V required for this maneuver. You can do this two ways.

  1. Right-click Burn2 in the MCS.
  2. Select Summary... You can also click the Summary () icon.
  3. Notice the Delta-V magnitude reported:

  4. You can also right-click RPO_Sat in the Object Browser.
  5. Select the Report & Graph Manager ().
  6. Expand () the Installed Styles directory.
  7. Generate a Maneuver Summary report.

Take a moment to evaluate the total Delta-V reported, which is 81.195 m/sec for Burn2.

Remember that the resulting magnitude of the maneuver vector is computed using the root of the sum of the squares (RSS). So.

It’s worth asking again “why is the radial maneuver required?” What if there were little or no radial component in the maneuver?

The tiny cross-track component wouldn’t even register, and you’d be left with just the expected in-track component.

To understand the reason for the radial component, you need to go back to Burn1, the rendezvous maneuver.

Look at the differential corrector results for the first target sequence (Target Approach).

Notice it too has a large radial component of -84.588 m/sec required to perform the maneuver. Remember, RPO_Sat had the same orbital parameters as Target_Sat, but was offset in True Anomaly by 30 degs. In many ways, you could say RPO_Sat was “coplanar” with Target_Sat, with matched inclinations and the same altitude. So why the radial component required?

It goes back to the caveat at the beginning of this lesson. This rendezvous was not optimal.

Effects of osculating elements and HPOP

Both Target_Sat and RPO_Sat were propagated in Astrogator using the High Precision Orbit Propagator (HPOP) using osculating elements. What are osculating elements? “Osculating elements are the true time-varying orbital elements, and they include all periodic (long- and short-periodic) and secular effects. They represent the high-precision trajectory and are useful for highly accurate simulations” (Vallado 616; 9.2).

If the satellites had been propagated using a two-body propagator, without osculating elements, the cross-track component would disappear. It just would not have been realistic.

For computing and planning rendezvous using full-force models and osculating elements, choosing optimal departure and arrival times to minimize the differences in orbital periods and other elements is critical. Careful consideration of those times could have minimized the need for much of the radial maneuver component during the rendezvous, and ultimately to maintain the in-track NMC.

Visualize the osculating elements

Create an RIC Plot for Target_Sat and RPO_Sat:

  1. In the object browser, right-click on Target_Sat and select Report & Graph Manager.
  2. Expand the Installed Styles on the right side and locate and double-click the RIC graph style.
  3. In the dialog box that appears, select RPO_Sat and click assign.

Here you see the RIC plot for Target_Sat to RPO_Sat. It clearly shows the point in time when the rendezvous maneuver takes place, the transfer to RPO_Sat, and when RPO_Sat begins its proximity operations (where the RIC plots converge). Range is drawn on the secondary Y axis.

  1. Select the zoom tool and lasso the cross-range plot line from the beginning of the graph to the point when the rendezvous happens.
  2. Keep zooming in in this manner until you can see the initial maneuver (Burn1) affect the cross-track component.

Notice the initial drift in cross-track during the 600 sec propagation segment, then the large oscillation that takes place when Burn1 occurs (vertical black line).

The maneuver took place when the relative difference in the cross-track components of Target_Sat and RPO_Sat were not zero. Additionally, you can see that the cross-track component moved by over a kilometer when you initiated the transfer. You needed to raise RPO_Sat’s orbit to drift over to Target_Sat, and it turns out that the rate at which Inclination and RAAN vary, are very sensitive to altitude. So during the transfer, the planes of the two satellites were moving differently and at different rates.

Additionally, to minimize the radial components of the maneuvers and the overall Delta-V required, you needed to apply careful consideration of the timing of the maneuvers. This can partly be visualized by plotting an altitude plot of RPO_Sat.

Generate an Altitude plot

  1. Right-click RPO_Sat () in the Object Browser and select Report & Graph Manager ().
  2. Create a new graph style (), and name it Altitude.
  3. Expand () the Astrogator Values > Geodetic Folder and double-click the Altitude data provider.
  4. Click OK .
  5. Click Generate .

Notice the drastic change in altitude early in RPO_Sat’s ephemeris when it enters the transfer to Target_Sat. Also notice the how there is a jog in the altitude as RPO_Sat enters the NMC around Target_Sat.

These redirections manifest as radial components, and are indicative of suboptimal departure and arrival times.

You could implement a more robust solution by incorporating an optimization target profile like IPOPT or SNOPT, to determine the optimal times to initiate the transfer and the drift duration.

Enter near-optimal departure and drift times

To demonstrate the effect of more-optimal departure and arrival times, enter the following propagation times and rerun the MCS.

  1. For the initial propagate segment, enter 0 sec for the trip time.
  2. For the Drift propagate segment, enter 34325 sec for the trip time.
  3. Rerun the MCS.
  4. How does the total Delta-V required compare?

Lastly, try a further step of incorporating a minimum Delta-V Lambert solution into Astrogator via the scripting interface to seed an optimal two-body transfer solution. This will greatly increase the efficiency of the transfer and proximity operations maneuvers. Though not necessary, this “semi-analytic” approach of combining analytic solutions from Lambert with the numerical solutions of Astrogator’s search profiles, can be quite successful.