question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Multiple revolutions lambert solution

See original GitHub issue

I’m using the izzo.lambert function to solve the lambert problem. Trying to implement the multirevolution solution, taking the transfer time from [1,100] days interval. I got

    for v0, v in sols:
ValueError: No feasible solution, try lower M

These are the vectors: r0=[-5396.060601014418, -2995.128313159499, -6223.416953125992] *u.km r =[8916.202484966101, 18190.886121079544, 37797.86948723022] *u.km

First orbit:

  • apogee 8000
  • perogee 600
  • inc 64.3*math.pi/180
  • raan 0
  • aop 310*math.pi/180

Second orbit

  • apogee 39000
  • perigee 800
  • inc 64.3*math.pi/180
  • raan 0
  • aop 270*math.pi/180

How could I use multi-revolution solution?

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:10 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
astrojuanlucommented, Nov 22, 2018

I plotted your results and I just can conclude that you’re right!

index

Several recommendations:

  • You can use from poliastro.util import norm to compute the norm of vectors with units.
  • Instead of your own keplerian2cartesian, you can do this:
from poliastro.core.elements import coe2rv

Earth_k_val = Earth_k.decompose([u.m, u.s]).value

def keplerian2cartesian_alt(kepler):

    a=(kepler[0]+kepler[1]+Req*2)*1000/2  # m
    e=(kepler[0]-kepler[1])/(kepler[0]+kepler[1]+Req*2)
    i=kepler[2]
    OMEGA=kepler[3]
    omega=kepler[4]
    tetta=kepler[5]

    p = a * (1 - e ** 2)

    return coe2rv(Earth_k_val, p, e, i, OMEGA, omega, tetta)

r, v = keplerian2cartesian_alt([...])

And finally, if you want to try more optimal strategies, maybe you can try to change the argument of perigee using continuous thrust:

https://docs.poliastro.space/en/latest/safe.html#poliastro.twobody.thrust.change_argp.change_argp https://docs.poliastro.space/en/latest/user_guide.html#studying-artificial-perturbations-thrust

1reaction
astrojuanlucommented, Nov 21, 2018

Hi @Tarlan0001, sorry for the delay! In this case it’s perfectly possible that there are no multi-revolution solutions for this particular case. You should check the maximum M that does not give an error.

If you want to know more about the mathematical preconditions for a multi-revolution solution to exist, I recommend you this paper:

https://arxiv.org/pdf/1403.2705v2.pdf

This is not really a problem in poliastro, so with your permission I’m closing. Feel free to keep adding comments though!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Multiple revolutions on Lambert's problem - poliastro
Single revolution or direct-transfer arc. This type of solution considers transfer angles which do not exceed 360 degrees. · Multiple revolution arc. This...
Read more >
(PDF) Multiple Revolution Solutions to Lambert''s Problems
Lambert's Problem, which is the determination of the orbit, given the terminal radius vectors and the transfer time, has a multiplicity of ...
Read more >
Multiple Revolution Solutions for the Perturbed Lambert ...
Abstract We present a new method for solving the multiple revolution perturbed. Lambert problem using the method of particular solutions and modified ...
Read more >
Multi revolutions Lambert Problem — pykep documentation
The example demonstrates the basic use of the multiple revolution Lambert solver. In particualar, it defines a fixed geometry of the Earth-Mars constellation...
Read more >
Multiple Revolution Solutions for the Perturbed ... - Springer Link
We present a new method for solving the multiple revolution perturbed Lambert problem using the method of particular solutions and modified ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found