Finding quickest transfer orbits

Pagnatious

New member
Joined
Mar 3, 2010
Messages
24
Reaction score
0
Points
0
I'm working on and off on a basic solar system and ship simulation in 2D. My current problem is AI and planetary transfer calculations. For a given ship and a given delta-v I need to find the direction to burn the engines that will result in a rendezvous with a body. I have a version that works, kinda, but is rather brute force.

  1. For the ship it steps through all the angles calculating what the resultant velocity from expending the delta-v in that direction would be.
  2. Then it calculates the intersection points of the resultant orbit and the target's orbit.
  3. It then get's the times of intersection and compares the ships and targets position at that time to see if they are close enough to be considered an arrival.
  4. It does a few passes using small resolution in the angle steps and keeps the shortest travel time that gets close enough.

Close enough is defined currently as 80% of sphere of influence size. I need a way to make it more intelligent though, because it's kinda slow even for one ship, let alone several potential AI craft trying to calculate transfers at the same time.
I had looked into Lambert's Problem, but that seems to need to know the departure and arrival time and then determines the needed delta-v.

Is there a method that doesn't rely so much on just searching the space and more on analytical approach? Or at least might there be any suggestions to make that search more efficient? Any decent assumptions that could be made to narrow the range of angles?

Any help would be greatly appreciated.
Cheers
 
Brute force iteration is the normal method for determining the minimum delta-Vs for a transfer. For example, that is how piper's [ame="http://www.orbithangar.com/searchid.php?ID=4439"]Trajectory Planner[/ame] generates it's plots. As I understand it (I've never written such code) you solve Lambert's problem for each pair of arrival/departure dates in your search range.
 
So brute force search looks like maybe the only way? I'm developing this with futuristic ships in mind, nuclear pulse or fusion torch or the like with potential delta-v in the ~40m/s range or so.

The goal is for an AI controlled ship to be able to go "I am willing to spend this much fuel and I want to get to X destination potentially in less time than Y" and then to be able to come up with the, or close enough to, the shortest time transfer to meet those conditions. It will need to be able to deal with taking a ship from Lunar orbit to potentially rendezvous with something orbiting a moon of Jupiter.

At the moment a bodies orbit is only being considered based on the gravity of the object whose SOI it's in. A rough patched conic style. I imagine the high level structure of it to be something like:
SOI = Sphere of influence.

Until orbiting common parent
If parent SOI is not common parent
Leave current SoI heading outwards​
Else
Fall inwards or climb outwards depending on SMa of destination​
Until Entering Target SOI
Determine course to arrive at next goal SOI​
On Entering Target SOI
Determine course to match/arrive at target ship/station/etc​

Essentially climbing one branch of a tree until at the common root node then descending the appropriate branch.


If using the set delta-v to determine arrival time I'll have to try do some tests and such to see if I can come up with a more efficient method, see if there are any attributes of the context that can be exploited to make some time saving assumptions, or something like that. I was thinking I could simplify the SOI departure orbits maybe by having them always be to a certain point/range on the edge of the SOI. I could restrict the auto pilot to only consider pro-grade burns maybe, that would halve the search space. Or only consider angles inwards (towards shared parent, ie The Sun on an Mars to Earth transfer) when the destination has a smaller SMa. Combine that with doing everything I can think of the make getting the orbit elements necessary to determine the intersection points as lightweight as I can.

Or I could make a Lambert Solver and search through departure and arrival times. That's probably better. I hadn't been considering that as I didn't care as much about minimal delta-v, but I realize now that if I constrain the arrival time that that's what really mattered about using high delta-v.

I can get a minimum time as full delta-v allowance in a straight line covering the distance as it is today maybe.
Then increment time up from that until the first arrival time that uses less delta-v than the allowance, or it goes over some arrival time threshold.

Does that seem good as a minimum time estimate? And are there any good resources for looking into making a Lambert Solver?

P.S. I'm glad you people put up with my rambling, typing these things out seems to help me think them through.
 
Back
Top