|Top Previous Next|
Targeting is a useful tool for any time that you want to achieve a specific goal, but are uncertain of exactly how to do it. For example, you might use targeting to determine the magnitude of a Δv maneuver to change some orbital parameter by a specified amount, or to determine a point in an orbit from which to depart to rendezvous with a satellite. FreeFlyer uses the differential corrector method or "shooting method" to achieve this.
Targeting using the differential corrector method works by taking some parameter which affects the result of some function, and varying the parameter until the function outputs a specific desired result. You begin with some "seed" value for the parameter, calculate the result for that seed, and then apply some perturbation to the seed to change the result. So if the parameter were increased, and the result was farther from the goal than the initial result, the targeting function would decrease the parameter on the next iteration. This process continues until the desired result is achieved within some tolerance. We can call the changing parameter a "Vary" and the result an "Achieve". An illustration of this process is shown below.
One-Dimensional Case of the Shooting Method
For more information on this process, see the "Targeting" page of the Maneuvering and Targeting Guide in the FreeFlyer Help File.
The mechanism for the targeting process in FreeFlyer is called a Targeting loop, which consists of the following components:
•Target - command which begins the Targeting loop
•Iterate - command which specifies the objects that are restored to their initial states after each iteration of the loop
•Vary - command which specifies the parameters that are adjusted with each iteration
oRequires a seed value and a perturbation value
•Achieve - command which defines the goals of the targeting sequence
oRequires a goal value and a tolerance value
•End - command to close the targeting loop
An unlimited number of Iterate, Vary, and Achieve commands can be present in any single Targeting loop, although for best results, we recommend having an equal number of Vary and Achieve commands. In the Default Targeting mode, which is what we will discuss here, you cannot have a Vary statement after an Achieve statement, and Targeting loops cannot exist inside If statements, For loops, While loops, etc. If this functionality is essential to your Mission Plan, you would need to use the Runtime Setup Targeting feature, which is out of scope for this tutorial. If you are interested, more information can be found in the FreeFlyer Help File.
If you need to access specific properties of your Targeting loop, you can use a DifferentialCorrector object. A DifferentialCorrector object allows you to set the maximum number of iterations for a Targeting loop (the default value is 35) and provides access to the status of the Targeting loop during execution. We will not use a DifferentialCorrector object in this tutorial, but more information can be found in the FreeFlyer Help File if you are interested.