Contents

SRT Orbiter and Ferry

SRT is Space Rapid Transit a two stage to orbit launch vehicle. Its first stage engine has a rotating detonation engine (RDE) combustor. The second stage is LH2/LO2 engine with perforamnce similar to the RL10B

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

%--------------------------------------------------------------------------
%   Copyright (c) 2019 Princeton Satellite Systems.
%   All rights reserved.
%--------------------------------------------------------------------------

Constants

fuelingTime           = 20; % Hours
galToLiter            = 3.78541178;
truck                 = 17000*galToLiter;
massPayload         	= 500; % kg

% RL10 engines
nH2Engine            	= 1;
thrustH2Engine       	= 110000;
massH2Engine         	= 277;
iSpH2Engine           = 465; % CPS added because orbiter was using Isp from RDE rather than RL10

% RDE Engines
dRDE                	= RDE;
mRDE                	= linspace(0,8);
hRDE                	= linspace(0,50000,length(mRDE));
pRDE                 	= StdAtm(hRDE);
[thrust, iSp, tS]   	= RDE( mRDE, dRDE, pRDE );
mT                    = find(mRDE>dRDE.machTransition);
mT                  	= mT(1);
dF.iSp               	= [iSp(mT) iSp(end)];
dO.iSp              	= iSpH2Engine; % CPS added because orbiter was using Isp from RDE rather than RL10
thrustRDEEngine       = thrust;

% Composite tanks
fTank                 = 0.0252;
hSeparation           = 50;
p                     = StdAtm( hSeparation*1000 );
mSeparation           = 8.0;
mRamjet               = dRDE.machTransition;
rE                    = 6378.165;
hISS                  = 370; % 330 km (205 mi) and 435 km
r2                    = rE + hISS;
r1                    = rE + hSeparation;
v1                    = mSeparation*p.speedOfSound/1000;
[dV, dV1]             = DVHoh( r1, r2, v1 );

Design the Orbiter

rhoH2                 = 70.85; % kg/m^3
rhoO2                 = 1141; % kg/m^3
dVMargin              = 0.0;
fH2Engine             = 5.88;
dO.massPayload        = massPayload; % NASA Requirement
dO.dFuselage          = 4;
dO.lFuselage          = 25;
dO.wingLoading        = 585;  % Space Shuttle
dO.structuralLF       = 1.5; % 2
dO.thicknessRatio     = 0.1;
dO.sweepAngle         = 45*pi/180;
dO.tipRootChordRatio	= 0.3;
dO.aspectRatio        = 1.7;
dO.massEngine         = nH2Engine*massH2Engine;
dO.fuelStructuralFraction    = fTank;
dO.dV                 = dV + dVMargin;
dO.fMaterial          = 0.3; % Weight savings for composites
tol                   = 1e-3;

disp('Orbiter')
[g, h]                = HSVMassEstimation( dO, tol, 'Orbiter' );
                        HSVMassEstimation( dO, tol, 'Orbiter' );

mAve                  = g.gM - g.fuel/2;
thrust                = nH2Engine*thrustRDEEngine;
aAve                  = thrust./mAve;
tBurn                 = dV1*1000./aAve/60;
mH2Orbiter            = g.fuel/(1+fH2Engine);
mO2Orbiter            = g.fuel*fH2Engine/(1+fH2Engine);

clear s

s.wingArea            = h.wingArea;
s.length              = dO.lFuselage;
s.radiusF             = dO.dFuselage/2;
s.massFuel            = g.fuel;
s.massDry             = g.gM - g.fuel;
s.massH2              = mH2Orbiter;
s.massO2              = mO2Orbiter;
s.massCost            = g.wing + g.emp + g.fuselage;
s.aspectRatio         = dO.aspectRatio;
s.g                   = g;
s.h                   = h;
s.d                   = dO;

% SaveStructure(s,'SRTOrbiterData') % PSS version, since 1999, apparently doesn't handle structs with struct fields
save('SRTOrbiterData','s'); % MATLAB built in
Orbiter

                           Group    Mass (kg)            %
 1.                         Wing         79.0         1.07
 2.                     Fuselage        669.5         9.07
 3.                       Engine        277.0         3.75
 4.                    Empennage        184.4         2.50
 5.                         Fuel       5225.5        70.80
 6.                  Fixed Equip        334.9         4.54
 7.                 Landing Gear        110.6         1.50
 8.                      Payload        500.0         6.77
                ---------------- ------------ ------------
                           Total       7380.8       100.00

Design the Ferry

v0                   	= mRamjet*p.speedOfSound/1000; % Turbojet
v1                    = mSeparation*p.speedOfSound/1000; % Ramjet
dF.dV                 = [v0 v1]; % CPS added because ferry delta-V was not specified before
dF.massPayload      	= g.gM;
dF.dFuselage          = 4;
dF.lFuselage        	= 35;
dF.wingLoading        = 311;
dF.structuralLF      	= 2;
dF.thicknessRatio    	= 0.1;
dF.sweepAngle         = 30*pi/180;
dF.tipRootChordRatio 	= 0.3;
dF.aspectRatio       	= 1;
dF.massEngine       	= 1701; %  2 F135 engines
dF.iSp              	= [iSp(mT) iSp(end)];
dF.fMaterial         	= 0.8; % Weight savings for composites
dF.fuelStructuralFraction    = fTank;
[g, h]                = HSVMassEstimation( dF, tol, 'Ferry' );
                        HSVMassEstimation( dF, tol, 'Ferry' );

clear s

s.wingArea            = h.wingArea;
s.aspectRatio         = dF.aspectRatio;
s.massFuel            = g.fuel;
s.massDry             = g.gM - g.fuel;
s.massH2              = h.mF(2);
s.massJP              = h.mF(1);
s.length              = dF.lFuselage;
s.radiusF             = dF.dFuselage/2;
s.massCost            = g.wing + g.emp + g.fuselage;
s.g                   = g;
s.h                   = h;
s.d                   = dF;

% SaveStructure(s,'SRTFerryData') % PSS version, since 1999, apparently doesn't handle structs with struct fields
save('SRTFerryData','s');

mH2Ground             = s.massH2 + mH2Orbiter;
mO2Ground             = mO2Orbiter;

k = 1;
s = {};
s{k,1} = 'Total launch site H2 mass';     s{k,2} = sprintf('%8.1f (kg)',mH2Ground ); k = k + 1;
s{k,1} = 'Total launch site O2 mass';     s{k,2} = sprintf('%8.1f (kg)',mO2Ground );k = k + 1;
s{k,1} = 'Total launch site H2 volume';   s{k,2} = sprintf('%8.1f (l)',mH2Ground*1000/rhoH2 );k = k + 1;
s{k,1} = 'Total launch site O2 volume';   s{k,2} = sprintf('%8.1f (l)',mO2Ground*1000/rhoO2 );k = k + 1;
s{k,1} = 'Total H2 truck deliveries';     s{k,2} = sprintf('%8.1f',ceil(mH2Ground*1000/rhoH2/truck) );k = k + 1;
s{k,1} = 'Total O2 truck deliveries';     s{k,2} = sprintf('%8.1f',ceil(mO2Ground*1000/rhoO2/truck) );k = k + 1;


s{k,1} = 'H2 Fueling rate';               s{k,2} = sprintf('%8.1f (kg/hr)',mH2Ground/fuelingTime);k = k + 1;
s{k,1} = 'O2 Fueling rate';               s{k,2} = sprintf('%8.1f (kg/hr)',mO2Ground/fuelingTime);k = k + 1;
s{k,1} = 'Fueling time ';                 s{k,2} = sprintf('%8.1f (hr)',fuelingTime);

CreateLatexTable( s, 'SRTFueling' )

fprintf('\n\nSRT Fueling\n');
DisplayLatexTable(s)

%--------------------------------------
                           Group    Mass (kg)            %
 1.                         Wing        491.1         3.35
 2.                     Fuselage       3423.4        23.32
 3.                       Engine       1701.0        11.59
 4.                    Empennage        366.9         2.50
 5.                         Fuel        653.2         4.45
 6.                  Fixed Equip        444.4         3.03
 7.                 Landing Gear        220.1         1.50
 8.                      Payload       7380.8        50.27
                ---------------- ------------ ------------
                           Total      14681.0       100.00


SRT Fueling
  Total launch site H2 mass      1279.8 (kg) 
  Total launch site O2 mass      4466.0 (kg) 
Total launch site H2 volume      18062.8 (l) 
Total launch site O2 volume       3914.1 (l) 
  Total H2 truck deliveries              1.0 
  Total O2 truck deliveries              1.0 
            H2 Fueling rate     64.0 (kg/hr) 
            O2 Fueling rate    223.3 (kg/hr) 
              Fueling time         20.0 (hr)