MfMax: Maximum final Mass Orbit Transfer

MfMax is a Fortran and Matlab package designed for the numerical solution of continuous 3D maximum final mass transfer around the Earth, especially for low thrust engines (down to 0.2 Newton for a 1500 Kilogrammes satellite). The optimal control model given by the French Space Agency is the following (we refer to [1] for details):

           mf -> max
          (x,m) in W71,oo([0,tf]), u in L3oo([0,tf])
          dx/dt = f0(x)+1/m (u1f1(x)+u2f2(x)+u3f3(x)), t in [0,tf]
          dm/dt = -ß|u|
          x(0) = x0, m(0) = m0, h(x(tf)) = 0
          |u| <= Tmax

where Tmax is the maximum modulus of the thrust. The state of the satellite is described by the geometry of the ellipse osculating to the trajectory and its position on it, x = (P,ex,ey,hx,hy,L), and by its mass m.

The numerical method used is an homotopic method combined with single shooting. The shooting code is implemented in Fortran 90 and is based on J.B Caillau's TfMin. The homotopy method used L.T Watson's HOMPACK90. A specific Matlab interface is provided. It allows the user to set the parameters of the maximum final mass problem (initial conditions...) and to draw the orbits computed.

The Fortran kernel of the software uses two public libraries: Minpack, for the ODE solver RKF45 by H. A. Watts and L. F. Shampine, and the NLE solver HYBRD by B. S. Garbow, K. E. Hillstrom and J. J.. We are grateful to the authors for making their software available.

[1]  J. B. Caillau, J. Gergaud, and J. Noailles, 3D Geosynchronous Transfer of a Satellite: Continuation on the Thrust, Journal of Optimization Theory and Applications (2002).
[4]  E. Allgower and K. Georg, Numerical continuation methods. An introductions, Springer-Verlag, 1990

Please register, indicating who you are and for what kind of application you intend to use the package.

MfMax-v0 package source (Fortran 90 and Matlab 4 or higher). This version is for fixed final time and fixed final longitude. (archive file)
mfmax-v0.pdf (manual, included in above zip file )

MfMax-v1 package source (Fortran 90 and Matlab 4 or higher). This version is for free final time and fixed final longitude (more precise and no local minimum). (zip file)
mfmax-v1.pdf (manual, included in above zip file)

Soon (for february 2004) a detailed explanation of the method used in MfMax-v0 and MfMax-v1.
MfMaxmethod.pdf (explanation of the method used in the 2 version of mfmax)

Link to Netlib at ENSEEIHT
MfMax uses Netlib codes.

J. Gergaud, T. Haberkorn
Last modified: Mon Jul 21 2003