Lunar polar mission planning

Compute lunar transfer delta-Vs. The steps are:

  1. Set the elements and date so that transfer orbit and lunar orbit match.
  2. Compute the insertion delta-v
  3. Circularize the lunar orbit
  4. Do a Hohmann descent to the powered landing altitude

Contents

%--------------------------------------------------------------------------
%   Copyright (c) 2015 Princeton Satellite Systems
%   All Rights Reserved.
%--------------------------------------------------------------------------
%   Since 2016.1
%--------------------------------------------------------------------------

Constants and parameters

The lander spacecraft is small, only 30 kg. We will be working in Earth-centered ecliptic coordinates for the transfer. The moon has a constant inclination with respect to the ecliptic plane.

rMoon         = Constant('equatorial radius moon');
muMoon        = Constant('mu moon');
gEarth        = Constant('accel grav mks');
muEarth       = Constant('mu earth');
kMToM         = 1000;

ATK Star 26B TE-M-442-1

iSpSolid      = 271.7;
fSSolid       = 0.09;
insEngine     = 'ATK Star 26B TE-M-442-1';

% hDescent is the altitude from which you begin the descent leg. Allow for
% the highest point on dark side, which is 6.5 km higher than Mons Huygens
% (altitude 4.7 km), and allow a margin of 0.3 km
hDescent     	= 6.5 + 4.7 + 0.3;

% Lunar orbit altitude
hLunarOrbit   = 200;
% Initial LEO altitude
rEarthParking	= 7000;
% Adjust this date until the orbits match
jD0               = Date2JD( [2016 5 11 1 30 0] );

% Work in the ecliptic frame
PlanetPosJPL( 'initialize', 10  );
[rJPL, mu, vJPL]	= PlanetPosJPL( 'update', jD0, 1  );
elM               = RV2El(rJPL,vJPL);

[mECIToS, uMoon]  = MoonRot(jD0);
uMoon             = Unit(uMoon);
iPolar            = asin(uMoon(3));

% Dry mass of the lander
massDry      	= 30;

% Specific impulse of the ECAPS LMP-103 engine
iSp          	= 285;

Transfer orbit

Generate a transfer orbit so that apogee is behind the moon. We need to match longitude, argument of perigee and inclination.

rLunarOrbit   = hLunarOrbit + rMoon;
rA            = elM(1)*(1+elM(5)) + rMoon + rLunarOrbit;
rP            = rEarthParking;
[aT,eT]       = RPRA2AE( rP, rA );
t             = linspace(0,Period(aT)/2,1000);
[rM, vM]      = RVOrbGen(elM,t); % Lunar orbit
[r, v]        = RVOrbGen([aT iPolar, 0 0 eT 0],t);
vTP           = VOrbit(rP,aT);

% Transform into ECI for simulation purposes
%-------------------------------------------
cEclToECI     = CEcl2Eq( jD0 );
dVIns         = vTP - sqrt(muEarth/rEarthParking);

% Plot the trajectory for the Earth/Moon transfer
%------------------------------------------------
jD = jD0 + t/86400; % in days
EarthMoon( r, jD, [1, 1], rM );

Compute the delta-vs

% Insertion from LEO
%-------------------
rP       = rMoon+hLunarOrbit;
rA       = Mag(r(:,end)-rM(:,end));
aM       = RARP2A( rP, rA );
vA       = VOrbit( rA, aM, muMoon );
vInf     = Mag(vM(:,end) - v(:,end));
vM       = sqrt(vInf^2 + muMoon/rA);
dV       = [];
dV(1)    = abs(vM-vA);

% Circularization of the lunar orbit
%-----------------------------------
vE       = VOrbit( rA, aM, muMoon );
vC       = sqrt(muMoon/rA);
dV(2)    = abs(vC - vE);

% Hohmann from lunar orbit altitude to hDescent
%----------------------------------------------
dV(3)    = DVHoh( rLunarOrbit, rMoon+hDescent, vC, muMoon  );

% Compute the mass ratio
%-----------------------
mR          = exp(sum(dV)*kMToM/(gEarth*iSp));
massFuel    = massDry*(mR-1);

Insertion delta-V

uE          = iSpSolid*gEarth;

[mF, mT]    = RocketMass( iSpSolid, massFuel+massDry, fSSolid, dVIns );
iIns        = iSpSolid*gEarth*mF/4.448;


clear s

k = 1;
s{k,1} = 'Julian Date';                   s{k,2} = sprintf('%9.2f days',jD0);       k = k + 1;
s{k,1} = 'Transfer Orbit   $\Delta V$';   s{k,2} = sprintf('%4.2f km/s',dVIns);     k = k + 1;
s{k,1} = 'Transfer stage mass';           s{k,2} = sprintf('%4.2f kg',mT);          k = k + 1;
s{k,1} = 'Insertion Impulse';             s{k,2} = sprintf('%4.2f lbf-s',iIns);     k = k + 1;
s{k,1} = 'Insertion Engine';              s{k,2} = insEngine;                       k = k + 1;
s{k,1} = 'Transfer Orbit   $\Delta V$';   s{k,2} = sprintf('%4.2f km/s',dVIns);     k = k + 1;
s{k,1} = 'V$_infty$';                     s{k,2} = sprintf('%4.2f km/s',vInf);      k = k + 1;
s{k,1} = 'Perigee altitude lunar orbit';	s{k,2} = sprintf('%4.2f km',rP-rMoon);    k = k + 1;
s{k,1} = 'Circular orbit altitude';       s{k,2} = sprintf('%4.2f km',hLunarOrbit); k = k + 1;
s{k,1} = 'Descent orbit altitude';        s{k,2} = sprintf('%4.2f km',hDescent);    k = k + 1;
s{k,1} = 'Insertion $\Delta V$';          s{k,2} = sprintf('%4.3f km/s',dV(1));     k = k + 1;
s{k,1} = 'Circularization  $\Delta V$';   s{k,2} = sprintf('%4.3f km/s',dV(2));     k = k + 1;
s{k,1} = 'Orbit lowering  $\Delta V$';    s{k,2} = sprintf('%4.3f km/s',dV(3));     k = k + 1;
s{k,1} = 'Mission total  $\Delta V$';     s{k,2} = sprintf('%4.2f km/s',sum(dV));   k = k + 1;
s{k,1} = 'Mass dry';                      s{k,2} = sprintf('%4.2f kg',massDry);     k = k + 1;
s{k,1} = 'Mass fuel';                     s{k,2} = sprintf('%4.2f kg',massFuel);    k = k + 1;

thisPath = fileparts(mfilename('fullpath'));
DisplayLatexTable(s);

CreateLatexTable(s,fullfile(thisPath,'EarthMoonTransfer'))


%--------------------------------------
% PSS internal file version information
%--------------------------------------
                 Julian Date         2457519.56 days 
 Transfer Orbit   $\Delta V$               3.04 km/s 
         Transfer stage mass               243.45 kg 
           Insertion Impulse          99194.50 lbf-s 
            Insertion Engine ATK Star 26B TE-M-442-1 
 Transfer Orbit   $\Delta V$               3.04 km/s 
                   V$_infty$               0.91 km/s 
Perigee altitude lunar orbit               200.00 km 
     Circular orbit altitude               200.00 km 
      Descent orbit altitude                11.50 km 
        Insertion $\Delta V$              0.789 km/s 
 Circularization  $\Delta V$              0.301 km/s 
  Orbit lowering  $\Delta V$              0.981 km/s 
   Mission total  $\Delta V$               2.07 km/s 
                    Mass dry                30.00 kg 
                   Mass fuel                32.95 kg