Optimal 3D transfer to Mars, continuous thrust
Optimize a transfer to Mars for continuous thrust, minimizing the total acceleration. This is a fixed end point optimization, run it with different durations and start dates to see how the delta-V required will vary. This routine uses JPL ephemerides for both the Earth and Mars. The optimization function requires fmincon in the Optimization toolbox.
This demo uses a longer duration resulting in a power level that might be appropriate for for a solar powered electric propulsion mission.
See also: Date2JD, TrajectoryBetweenTwoPlanets, SpacecraftFromAccel
Contents
%-------------------------------------------------------------------------- % Copyright (c) 2023 Princeton Satellite Systems, Inc. % All rights reserved. % Since version 2023.1 %--------------------------------------------------------------------------
Compute the optimal trajectory
Launch date
jD0 = Date2JD([2022 6 19 0 0 0]); % Planet IDs planet1 = 3; planet2 = 4; % long, low-thrust transfer years = 0.5; nPts = 50; s = TrajectoryBetweenTwoPlanets( jD0, planet1, planet2, years, 50 );
First-order Norm of Iter F-count f(x) Feasibility optimality step 0 301 1.538129e-04 1.021e+08 1.842e-05 1 602 7.979193e-05 1.399e+07 4.701e+03 1.390e-05 2 903 8.401357e-05 1.016e+05 4.684e+03 3.822e-06 3 1205 7.488607e-05 3.256e+03 3.943e+03 3.079e-06 4 1507 7.359173e-05 1.313e+03 1.585e+02 8.471e-07 5 1808 7.356509e-05 6.971e+02 2.196e-01 2.167e-08 6 2109 7.356494e-05 3.866e+00 4.722e-02 2.326e-10 Optimization stopped because the relative changes in all elements of x are less than options.StepTolerance = 1.000000e-10, and the relative maximum constraint violation, 3.785413e-08, is less than options.ConstraintTolerance = 1.000000e-06. Nonoptimal solution, flag: 2 iterations: 6 funcCount: 2109 constrviolation: 3.8663 stepsize: 2.3264e-10 algorithm: 'interior-point' firstorderopt: 0.04722 cgiterations: 0 message: 'Local minimum possible. Constraints satisfied.↵↵fmincon stopped because the size of the current step is less than↵the value of the step size tolerance and constraints are ↵satisfied to within the value of the constraint tolerance.↵↵<stopping criteria details>↵↵Optimization stopped because the relative changes in all elements of x are↵less than options.StepTolerance = 1.000000e-10, and the relative maximum constraint↵violation, 3.785413e-08, is less than options.ConstraintTolerance = 1.000000e-06.' bestfeasible: [] Final Equality Constraints (km, km/s) -1.2349 3.8663 -2.6399 -1.2964e-06 1.8375e-07 -2.6912e-07
Size the spacecraft
This will compute the power required to move the requested payload given the acceleration profile returned from the optimization. Not all combinations of parameters will converge.
sC = SpacecraftFromAccel; sC.uE = 50; % exhaust velocity, km/s sC.sigma = 300; % specific power, W/kg sC.fS = 0.08; % fuel structural fraction sC.eff = 0.8; % efficiency to jet thrust power sC.mP = 10000; % payload mass, kg SpacecraftFromAccel(sC,s); %--------------------------------------
Total mission DV: 23.2 km/s Max thrust power: 3.496 MW Total mass: 40712.9 kg Payload mass: 10000 kg Engine mass: 11654 kg Fuel mass: 15121 kg Structural mass: 1210 kg Payload Fraction: 0.245622