Lambert Search Profile

The Lambert Search profile finds the most fuel-efficient trajectory between two points or objects for the supplied search parameter ranges. The profile executes a grid search, searching over the input departure and arrival time windows with spacing that you specify. At each point, the profile uses a Lambert solver to find the Delta-V needed to achieve the trajectory for a given departure and arrival time. Once the grid search finishes, the profile uses a parabolic-fit optimization over departure and arrival times, and over phase angle if you do not select “Match Phase of Target.” It uses the resulting departure times, arrival times, and Delta-Vs to determine the minimum Delta-V solution. STK stores the result in Astrogator attributes associated with the profile. The profile can write the departure delay and propagation duration to stopping conditions in propagate segments within the target sequence and the Delta-Vs to maneuvers within the target sequence.

For best performance, ensure that the sequence of propagate, maneuver, propagate, and maneuver segments are within the target sequence. The presence of this sequence allows the profile to write the results of the search to the segments. This gives you an opportunity to perform analyses such as visualizing the two-body Lambert arc or using Lambert Delta-Vs and propagation times as initial guesses to find the corresponding trajectory in the full force model. The profile will still function without these segments, but getting the result of the profile will require reading from the profile’s attributes rather than having the results be automatically written to segment properties.

Switching central bodies

Lambert’s problem uses a two-body model for its solution. The central body that Astrogator uses when solving Lambert’s problem is the central body associated with the satellite. When you create the satellite, you can select a central body or leave it as the default, which is the scenario central body. To do an interplanetary transfer, for example, it is best to select the Sun as your central body for the satellite. This figure shows that Astrogator simply displays the name of the satellite’s central body.

Writing to segments

The profile provides several options to write the results of the Lambert search to propagate and maneuver segments within the target sequence. You can choose to write to two propagate segments and two maneuver segments. The first propagate segment represents a departure delay before performing the first maneuver, and the second propagate segment represents propagation of the Lambert trajectory. Astrogator performs the first maneuver at the departure time and the second maneuver at the arrival time. If you select the option to write to a propagate segment, Astrogator will create a duration stopping condition called “LambertDuration.” If a stopping condition with this name already exists, the trip value will be overwritten. These changes will not be visible unless you click Apply Changes in the target sequence consistent with the general behavior of target sequence profiles. You can also disable all non-LambertDuration stopping conditions on the propagate segment. If you do so, then it’s possible that another enabled stopping condition will trigger before the LambertDuration condition, which could result in unintended behavior. If you select the option to write to a maneuver segment, Astrogator will change the maneuver to an impulsive maneuver if necessary and will set the Delta-V to the inertial Delta-V for the minimum fuel Lambert solution found.

Log

The Lambert Search profile log file is a comma-separated value (CSV) file that contains the Delta-V data for the Lambert arcs solved for during the grid search. The first line of the CSV is a comment containing the best departure and arrival times and corresponding Delta-V found by the optimization process after the grid search. The next line of the CSV (and the first line of data) is a list of the candidate departure times. The first column is the candidate arrival times. Each other data element is the Delta-V for the arrival time for that row and departure time for that column. If the maximum number of revolutions is greater than zero, then this grid will only include solutions with the number of revolutions equal to the number of revolutions of the minimum Delta-V solution. The Delta-V displayed is the minimum of all solution options (such as short or long way and high or low energy) for that departure and arrival time. A Delta-V of infinity means that the Lambert solver could not find a solution for that departure and arrival time.

Parallel processing

This profile takes advantage of shared-memory parallel processing when executing the grid search. STK will take half of all available threads in executing the search and will display in the message viewer the number of threads that it is using. Before Astrogator executes the grid search, it evaluates the target position at each possible combination of arrival and departure times. It processes these computations serially, and STOP is not available during this initialization phase. Once Astrogator computes the target positions and the grid search begins, then clicking STOP will terminate the profile execution.

Input parameters

Option name Attribute Description
Coordinate System CoordinateSystem This is the coordinate system for the target position and velocity. If the system is inertial, then Astrogator will use the central body of the coordinate system when Target Coordinate Type is Keplerian.
Target Coordinate Type TargetCoordinateType This specifies whether the target position and velocity should be entered in Cartesian vectors or Keplerian orbital elements. You can only choose Keplerian when Coordinate System is inertial.
Calculate Second Maneuver at Destination ShouldCalculateSecondManeuver This is true if the Lambert solver should also calculate the required Delta-V to reach the desired end-point velocity.
Match Phase of Target ShouldMatchPhase Set this to true if the satellite should match the phase of the orbit at the target.
X Position TargetPositionX This is the X component of the target position for the end of the Lambert transfer.
Y Position TargetPositionY This is the Y component of the target position for the end of the Lambert transfer.
Z Position TargetPositionZ This is the Z component of the target position for the end of the Lambert transfer.
X Velocity TargetVelocityX This is the X component of the target velocity for the end of the Lambert transfer, and it is visible when you select Calculate Second Maneuver at Destination.
Y Velocity TargetVelocityY This is the Y component of the target velocity for the end of the Lambert transfer, and it is visible when you select Calculate Second Maneuver at Destination.
Z Velocity TargetVelocityZ This is the Z component of the target velocity for the end of the Lambert transfer and is visible when you select Calculate Second Maneuver at Destination.
Semimajor Axis TargetSemimajorAxis This is the target semimajor axis for the end of the Lambert transfer.
Eccentricity TargetEccentricity This is the target eccentricity for the end of the Lambert transfer.
Inclination TargetInclination This is the target inclination for the end of the Lambert transfer.
Right Ascension Of Ascending Node TargetRightAscensionOfAscendingNode This is the target right ascension of the ascending node for the end of the Lambert transfer.
Argument of Periapsis TargetArgumentOfPeriapsis This is the target argument of periapsis for the end of the Lambert transfer.
True Anomaly TargetTrueAnomaly This is the target true anomaly for the end of the Lambert transfer.
Latest Departure Time from Start of Target Sequence LatestDepartureTime This is the latest time from the start of the target sequence for the first Lambert maneuver to occur.
Earliest Arrival Time from Start of Target Sequence EarliestArrivalTime This is the earliest time from the start of the target sequence that the satellite should arrive at its destination.
Latest Arrival Time from Start of Target Sequence LatestArrivalTime This is the latest time from the start of the target sequence that the satellite should arrive at its destination.
Grid Search Time Steps GridSearchTimeStep This is the time step between Lambert evaluations for searching over both the departure window and arrival window of time.
Max Number of Revolutions for Lambert Solution MaxNumRevs This is the maximum number of revolutions for the Lambert solution.
Central Body Collision Altitude Padding AltitudePadding This is the minimum altitude below which the Lambert algorithm will consider the spacecraft to have hit the central body.
Write Departure Delay to First Propagate ShouldWriteToFirstPropagate Set this to true to write the departure delay duration before the Lambert transfer to the 'LambertDuration' stopping condition in the first linked propagate segment.
Disable Non-LambertDuration Stopping Conditions in First Propagate ShouldDisableFirstPropagateStopConditions Set this to true to disable all non-LambertDuration stopping conditions in the first propagate segment. This is visible when you select Write Departure Delay to First Propagate.
First Propagate FirstPropagateSegment This is the propagate segment to manipulate that contains the departure delay. It is visible when you select Write Departure Delay to First Propagate.
Write Initial Inertial Delta-V to Maneuver ShouldWriteToFirstManeuver Set this to true to write the Delta-V solution from Lambert at the start of the transfer to the linked maneuver.
First Maneuver FirstManeuverSegment This is the first maneuver segment to manipulate that occurs at the start of the transfer. It is visible when you select Write Initial Inertial Delta-V to Maneuver.
Write Flight Duration to Second Propagate ShouldWriteToSecondPropagate Set this to true to write the Lambert duration of transfer to the 'LambertDuration' stopping condition in the second linked propagate segment.
Disable Non-LambertDuration Stopping Conditions in Second Propagate ShouldDisableSecondPropagateStopConditions Set this to true to disable all non-LambertDuration stopping conditions in the second propagate segment. This is visible when you select Write Flight Duration to Second Propagate.
Second Propagate SecondPropagateSegment This is the propagate segment to manipulate that contains the transfer duration. It is visible when you select Write Flight Duration to Second Propagate.
Write Final Inertial Delta-V to Maneuver ShouldWriteToSecondManeuver Set this to true to write the Delta-V solution from Lambert at the end of the transfer to the linked maneuver. It is visible when you select Calculate Second Maneuver At Destination .
Second Maneuver SecondManeuverSegment This is the second maneuver segment to manipulate that occurs at the end of the transfer. It is visible when you select Write Final Inertial Delta-V to Maneuver.

Output parameters

Attribute Description
ArrivalPositionX This is the X component of the two-body propagated position at the second maneuver of the Lambert transfer.
ArrivalPositionY This is the Y component of the two-body propagated position at the second maneuver of the Lambert transfer.
ArrivalPositionZ This is the Z component of the two-body propagated position at the second maneuver of the Lambert transfer.
CalculatedArrivalTime This is the arrival time for the satellite at the target position after the start of the target sequence used for the minimum Delta-V Lambert solution.
CalculatedDepartureDelay This is the departure delay after the start of the target sequence used for the minimum Delta-V Lambert solution.
CalculatedTimeOfFlight This is the time of flight between departure and arrival used for the minimum Delta-V Lambert solution.
DeparturePositionX This is the X component of the two-body propagated position at the first maneuver of the Lambert transfer.
DeparturePositionY This is the Y component of the two-body propagated position at the first maneuver of the Lambert transfer.
DeparturePositionZ This is the Z component of the two-body propagated position at the first maneuver of the Lambert transfer.
DidSolutionConverge This is true if the Lambert solver converged on a solution.
FinalDeltaVx This is the X component, in central body inertial coordinates, of Delta-V for the second maneuver.
FinalDeltaVy This is the Y component, in central body inertial coordinates, of Delta-V for the second maneuver.
FinalDeltaVz This is the Z component, in central body inertial coordinates, of Delta-V for the second maneuver.
InitialDeltaVx This is the X component, in central body inertial coordinates, of Delta-V for the first maneuver.
InitialDeltaVy This is the Y component, in central body inertial coordinates, of Delta-V for the first maneuver.
InitialDeltaVz This is the Z component, in central body inertial coordinates, of Delta-V for the first maneuver.