Explore mission duration parameterization to SGL distances

See also: UToMF, Constant, Plot2D
%--------------------------------------------------------------------------
%   Copyright (c) 2008 Princeton Satellite Systems, Inc.
%   All rights reserved.
%--------------------------------------------------------------------------

dF = 550*Constant('au');
uEs = 100:100:2000;
thrusts = [1 2 5 10];

% engine parameters
d = struct;
d.eta = 0.5;
d.sigma = 4000;
d.f = 0.02;
d.mP = 200;
m0 = 20000;

year = 365.25*86400;
duration = zeros(length(uEs),length(thrusts));

for k = 1:length(thrusts)
  thrust = thrusts(k);
  uEMin = sqrt(dF*thrust*1e-3/m0);
  jS = find(uEs>uEMin,1);

  for j = jS:length(uEs)
    uE = uEs(j);
    mDot = thrust/(1000*uE); % Convert uE to m/s
    gamma   = mDot/m0;
    dFun    = @(t) (dF - uE*((1-gamma*t)*log(1-gamma*t) + gamma*t)/gamma);

    tMax = 1/gamma;
    [tf,fval,eflag,output] = fzero(dFun,0.5*tMax);
    duration(j,k) = tf;
    d.tF = tf;
    [m00, mF, mE, p] = UToMF( thrust, uE, d );
    mass(j,k) = m00;
    power(j,k) = p*1e-6;
  end
end

Plot2D(uEs,duration/year,'uE (km/s)','Duration (yr)','Duration to 550 AU, m0 of 20000 kg')
legend(num2str(thrusts'))


%--------------------------------------

% $Id: 6ed1e684494c79d5d4bc122ae7689606d1b45cd8 $
Exiting fzero: aborting search for an interval containing a sign change
    because complex function value encountered during search.
(Function value at 4.332e+10 is -102099189923716.7+31755218542485.71i.)
Check function or try again with a different starting value.
Exiting fzero: aborting search for an interval containing a sign change
    because complex function value encountered during search.
(Function value at 4.56e+10 is -113138185162875.8+35185837720205.72i.)
Check function or try again with a different starting value.
Exiting fzero: aborting search for an interval containing a sign change
    because complex function value encountered during search.
(Function value at 1.14e+09 is -59246751489.2196+43982297150.2571i.)
Check function or try again with a different starting value.