Spacecraft trajectory problems   



Spacecraft trajectory problems can be posed as global optimization problems with constraints. One class of these problems is the multiple gravity assist missions with the possibility of using deep space manoeuvres (MSGDSM) (Vinko_et_al:2007). It consists of finding an interplanetary trajectory of a spacecraft equipped with chemical propulsion, able to thrust its engine once at any time between each trajectory leg.

We choose an instance of this problem corresponding to the design of a deltaV-EGA manoeuvre required to reach Jupiter using an Earth Earth Jupiter fly-by sequence with deep space manoeuvres. An EDA based on the use of a mixture of multivariate Gaussian distributions is selected to address the problem. The code belows shows the MATEDA implementation.

First, a global variable that will store the information about the problem instance is defined. Then, a file containing the problem instance is loaded. The problem has 12 continuous variables with ranges defined in Card. The learning parameters of the EDA model specify that: Points are clustered according to the decision variables values, the clustering method used to learn the mixture is k-means, the number of mixture components is 10 and the measure used to cluster the points is the sqEuclidean metric as defined in Matlab. Once the mixture of multivariate Gaussian distributions have been learned and sampled, solutions are repaired to guarantee the variables values are within the prescribed bounds.


  % For a description of the spacecraft trajectory problem and links
  % to the problem instances see (Vinko_et_al:2007) 
 
  global MGADSMproblem
  cd ..\Trajectory
  load EdEdJ  % This instance can be downloaded from the ESA web page 
  NumbVar = 12;
  PopSize = 1000; 
  F = 'EvalSaga'; % The function should be modified to enforce maximization, i.e g(x) = -1*f(x)
  Card(1,:) = [7000,0,0,0,50,300,0.01,0.01,1.05,8,-1*pi,-1*pi];
  Card(2,:) = [9100,7,1,1,2000,2000,0.90,0.90,7.00,500,pi,pi]; 
  cache  = [0,0,0,0,0];  
  learning_params(1:5) = {'vars','ClusterPointsKmeans',10,'sqEuclidean',1};
  edaparams{1} = {'learning_method','LearnMixtureofFullGaussianModels',learning_params};
  edaparams{2} = {'sampling_method','SampleMixtureofFullGaussianModels',{PopSize,3}};
  edaparams{3} = {'replacement_method','best_elitism',{'fitness_ordering'}};
  selparams(1:2) = {0.1,'fitness_ordering'};
  edaparams{4} = {'selection_method','truncation_selection',selparams};
  edaparams{5} = {'repairing_method','SetWithinBounds_repairing',{}};
  edaparams{6} = {'stop_cond_method','max_gen',{5000}};
  [AllStat,Cache]=RunEDA(PopSize,NumbVar,F,Card,cache,edaparams) 




(Vinko_et_al:2007): Tamas Vinko, Dario Izzo and Claudio Bombardelli. Benchmarking different global optimisation techniques for preliminary space trajectory design (2007). Proceedings of 58th International Astronautical Congress.

 
        Back to main page