Page 1 of 1

Low thrust trajectory optimization

PostPosted: Thu Jul 29, 2010 2:45 pm
by Jorisatesa
Here is a preliminary presentation of the approach for solving low-thrust trajectory problem under GMAT.

The method used for formulating the optimizationn problem is based on pseudospectral method. The objective function is always the mass (minimisation).
The code is full functional, although only rendezvous terminal constraints are implemented, and the initial guess is proposed internally by the code. Eventually, as we discussed, the user should be able to provide the initial guess - most certainly under the form of an array of variables [10 x number of nodes]

Any comments on improving the GUI are welcome. I basically tried to make it simple, avoiding duplication with other GMAT feature, and implementing some of the options that have been discussed.

Joris

Re: Low thrust trajectory optimization

PostPosted: Tue Aug 03, 2010 7:05 pm
by shughes
This is incredible work Joris.

Here are some ideas and questions:
  • Is the time of flight currently a fixed constant or can departure and arrival epoch be included as optimization parameters?
  • For longer or more complex trajectories, we probably need to have several pseudospectral segments that have position (and probably velocity) continuity at the nodes. Can you implement something where you can create a number of segments and then order them into a complete trajectory like this:
    Code: Select all
    Create LowThrustArc departure;
    departure.NumberofNodes = 45;
    departure.InitialEpoch = 01 Jan 2010 12:00:00:000;
    Create LowThrustArc cruise;
    Create LowThrustArc arrival;

    Create LowThrustTrajectory lowThrustTraj;
    lowThrustTraj.Arcs = {departure, cruise, arrival};
  • How can we configure the pseusospectral command for a flyby where we need to apply a constraint on minimum flyby altitude.

Re: Low thrust trajectory optimization

PostPosted: Tue Aug 10, 2010 1:35 pm
by Jorisatesa
So far, the time of flight is fixed, but it can be easily included as an optimization parameter. However, we have to be careful about how the ephemerides are handled. It is not possible to use the ephemerides (e.g. DE405) directly during the optimisation - non differentiability in general - and most likely we should use somewhat degraded ephemerides, for instance, by propagating a celestial body state (e.g. planet or moon) from a DE405 state during the optimisation ... not sure I am clear.

I will implement the LowThrustArc object you propose and most certainly something similar for the constraints. That would yield something cleaner for the scripting, which is for now "heavy" for the pseudospectral command.

I think the swing-by/flyby case can be tricky! Basically, for fidelity purposes, I am not sure the swing-by phase should be done with intermediate constraints, but it is possible to have: {PseudoSpectral LowThrust Segment 1 + Propagate + PseudoSpectral LowThrust Segment 2} to construct a valid NLP for the Optimize command. Thus, it would simply require an inequality terminal constraint on the final state wrt the flyby body B-plane for {PseudoSpectral LowThrust Segment 1}.
This constraint is not yet implemented. We should also check how the vinfs are defined, and if the periapsis radius can be easily computed. I may be a bit over optimistic for that part though... ;)

Re: Low thrust trajectory optimization

PostPosted: Tue Aug 10, 2010 4:07 pm
by shughes
Jorisatesa wrote:So far, the time of flight is fixed, but it can be easily included as an optimization parameter. However, we have to be careful about how the ephemerides are handled. It is not possible to use the ephemerides (e.g. DE405) directly during the optimisation - non differentiability in general -


The DE files are contain coefficients of Chebyshev polynomials (9th order if my memory is correct) and so they can provide planetary velocities and accelerations. Isn't that all you need to allow the endpoints to vary?

Re: Low thrust trajectory optimization

PostPosted: Tue Aug 10, 2010 4:50 pm
by Jorisatesa
Indeed it is all I need! I thought the polynomials were only valid on short intervals (few days) creating some discontinuities at some order :? . I will try that then!

Re: Low thrust trajectory optimization

PostPosted: Wed Aug 11, 2010 1:52 pm
by shughes
The polynomials are short over some time spans, but given the high order, I believe the first few derivatives are smooth at the segments. I'm sure they are for velocity. Not as sure for acceleration.

Re: Low thrust trajectory optimization

PostPosted: Mon Aug 22, 2011 10:24 pm
by Briehm
What version of GMAT has the PseudoSpectral command? Both 2008-09-30 and R2011a do not have this command available as one of the command choices when adding commands in the Missions tab.

Re: Low thrust trajectory optimization

PostPosted: Sun Oct 09, 2011 10:19 am
by Jorisatesa
Hi Brian,
Sorry I haven't seen your message earlier.

It is indeed a plugin, which is however not yet fully operational for GMAT. The dynamic is a separate implementation the one used in GMAT. That is, you can compute an optimal low-thrust trajectory, but it would overlook dynamical contributions other than the main gravity. All parameters are however coming from GMAT. Changes on the plugin would be minor and straightforward, but GMAT has to provide information on the gradient of the dynamics for the plugin to be full operational - I haven't checked if it is the case in the new release.
Furthermore, this plugin requires an optimizer, e.g. Ipopt or Snopt. It is given in a separate plugin. Unfortunately for this one, few changes were necessary in the older version of GMAT, and I haven't checked yet if it can work with the R2011a without changes of GMAT's base code.

At this stage, if you only need a simple two-body low-thrust trajectory under GMAT, the only thing to check would be the optimizer plugin. If you want, I can send you the code and tell you how to make it work.

Joris

Re: Low thrust trajectory optimization

PostPosted: Sun Oct 09, 2011 11:26 pm
by Briehm
The code and instructions for the plug-in would be very helpful.

Re: Low thrust trajectory optimization

PostPosted: Tue May 29, 2018 4:00 pm
by adrian
Can you send me the code and instrucction? Please. I am trying to make a preliminary trajectory for a university project