Hello all,

I've been using GMAT in my free time to optimize trajectories, and have varied 
burn component values and spacecraft states, usually with success. The vary 
command in GMAT, with the Yukon optimizer that I am using, has the following 
parameters that can be changed:

  *   Initial value: The initial guess. I know the gradient descent 
optimization method that GMAT uses is very sensitive to initial conditions and 
so this must be feasible or reasonably close.
  *   Perturbation: The step size used to calculate the finite difference 
derivative.
  *   Max step: The maximum allowed change in the control variable during a 
single iteration of the solver.
  *   Additive scale factor: Number used to nondimensionalize the independent 
variable. This is done with the equation xn = m (xd + a), where xn is the 
non-dimensional parameter, xd is the dimensional parameter and this parameter 
is a.
  *   Multiplicative scale factor: Same as above, but it's the variable d in 
the equation.

For the initial value, I can usually see when my chosen value is feasible by 
observing the solver window or a graphical display of the orbit in different 
iterations. The max step is the most intuitive of these parameters for me, and 
by trial and error, observation of the solver window and how sensitive my 
target variables are to changes in the control variables I can usually get it 
right and get convergence. It is still partially trial and error though.

However, I do not understand the effect of the other parameters on the 
optimization. I read a bit about finite difference and 
nondimensionalization/rescaling, and I think I understand them conceptually, 
but I still don't understand what values they have to be to get an optimal 
optimization process.

This is especially a problem now because I have started to vary epochs 
(TAIModJulian usually) or time intervals (e.g. "travel for x days" and find 
optimal x, or to find optimal launch windows), and I cannot get the optimizer 
to vary them properly, even when I use a large step size. The optimizer usually 
stays close to the initial values, and eventually leads to a non-convergence 
message.

I have noticed that using large values for the two scale factors sometimes 
gives me larger step sizes and occasionally what I want, but it's still trial 
and error. As far as perturbation goes, I do not understand its influence on 
how the optimization works. Sometimes for extremely small values I get array 
dimension errors, sometimes for very large values I get similar results to if 
I'm using too large a max step size, and that's about it. I usually use 1e-5 to 
1e-7 and it seems to work most of the time.

So I guess my question is two-fold: how to understand the optimization 
parameters of GMAT and what they should be in different situations, and what 
should they be when I want GMAT to consider a wide array of possible 
trajectories with different values of control variables, especially when those 
control variables are epochs or time intervals? Is there a procedure or 
automatic method that takes into account the scale of the optimization problem 
and its sensitivity, and gives an estimate of what the optimization parameters 
should be?
Best regards,
Panagiotis Karakatsanis
_______________________________________________
GMAT-users mailing list
GMAT-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gmat-users

Reply via email to