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)