2.1 Atmospheric Entry Aerothermodynamics and Aerodynamic Stability 1

Total Page:16

File Type:pdf, Size:1020Kb

2.1 Atmospheric Entry Aerothermodynamics and Aerodynamic Stability 1

Contents

Aerodynamics 2.1 Atmospheric Entry Aerothermodynamics and Aerodynamic Stability...... 1 2.2 Atmospheric Trajectories...... 23 2.3 Descent Stage...... 45 Dynamics and Control 3.1 Transit Orbits...... 64 3.2 Tether System...... 93 3.3 Inertia Properties and Tethered Correctional Maneuvers...... 102 3.4 Attitude Dynamics...... 119 Propulsion 4.1 Earth Launch Vehicle...... 126 4.2 Nuclear Thermal Rocket...... 131 4.3 In-situ Propellant Production and Mars Launch Vehicle...... 141 4.4 Miscellaneous Propulsion...... 148 Structures 5.1 Earth Return Assembly Structures...... 182 5.2 Habitation Module Structures...... 185 Human Factors 6.1 Tether Sizing, Radiation &Thermal Concerns, and Hab Layout...... 224 6.2 Consumables and Life Support...... 234 Communications 7.1 Antenna Sizing and Communication Issues...... 237 Power 8.1 Launch, Outbound Secondary, and Return Power...... 241 Science 9.2 Long-Range Rover and Greenhouse...... 248 APPENDIX 2.1 Aero-heating and Stability Santosh Kuruvilla

Matlab Programs The following programs are the trajectory and heating codes written for this course. All the equations and material properties are in the programs. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Santosh Kuruvilla % AAE 450 % Mars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all clear all counter = 1; %for lcv1 = 200:200:600; % S = lcv1; S = 25.13; %for lcv2 = .4:4:4.4; % CD = lcv2; CD = 10; % for lcv3 = 0.1:5:10.1; % rnose = lcv3; rnose = 4; global L D dw rhoo Beta rmars ho ha mu Cpw sbc emic alpha CD CL S m go rnose sigma C a b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Constants For Mars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rhoo = 4.7*10^-4; % kg/m^3 Beta = 0.1 ; %1/km ho = 49; % km rmars = 3380; %km ha = 100; %km

2 mu = 42828; %km^3/s^2 go = 0.38 * 9.81; cpfcht = 1.37; % Flight Conditions alpha = 40*pi/180; % rad sigma = 0*pi/180; % Vehicle Characteristics m = 81495;% kg Vehicle mass CL = 1.758; % Lift coefficient K = cpfcht + 3/cpfcht + 1; % Material Properties dw = 3984/(100*100*100);%kg/cm^3 Cpw = 755 ;% Jouls / (kg K) emic = 0.6; % Constant For Temp sbc = 5.669*10^-12;% W/cm^2/K^4 % Mars Atmosphere constants C = 2.35*10^4; a = 0.526; b = 1.19; % Time of flight time = [0 190]; % Initial Conditions Of entry Alt = 100 ;% Km Velocity = 5.5; % Km/s Flpath = -10; %Flight path Angle in digrees Heading = 10 ; % Heading angle in digrees Lat = 0;% Latitude in digrees q = 0;% Convective Heating Twall = 1500; % Wall IC Long = 10; %Longitude

3 qr = 0; % Radiative Heating Ic = [Alt Velocity Flpath*pi/180 Heading*pi/180 Lat*pi/180 q Twall Long*pi/180 qr]; [t,x] = ode45('Prj1',time,Ic); % Output gamma = x(:,3); % Flight Path height = x(:,1); % Altitude vel = 1000*x(:,2); temp = x(:,7); rho = rhoo * exp(-Beta *(height - ho)); % Curvefit for radiative Heating Eq. 2.1.23 vms = [6000 6150 6300 6500 6700 6900 7000 7200 7400 7600 7800 8000 8200 8400 8600 8800 9000]; fmv = [.2 1 1.95 3.42 5.1 7.1 8.1 10.2 12.5 14.8 17.1 19.2 21.4 24.1 26.0 28.9 32.8]; fv = polyfit(vms,fmv,2);

for n = 1:1:size(x(:,1)); if x(:,1) > 100 ; gload(:,n) = 0; D(:,n) = 0; L(:,n) = 0; funcv(:,n) = 0; pdynam(:,n) = 0; qd(:,n) = 0; qrd(:,n) = 0; vdt(:,n) = -D(:,n)/(m*1000) - mu*sin(gamma(n,:))/(rmars + height(n,:))^2; rooversh = 2/rmars *(m/(CL*S)) * (go*rmars*1000/(vel(n,:)^2 - 1)); rounersh = (2/rmars *(m/(CL*S)) * (go*rmars*1000/(vel(n,:))^2)*gload)/sqrt(1 + (L/D)^2); else D(:,n) = 0.5 * rho(n,:) * (vel(n,:))^2 * CD * S; L(:,n) = 0.5 * rho(n,:) * (vel(n,:))^2 * CL * S;

4 funcv(:,n) = fv(:,1)*(vel(n,:))^2 + fv(:,2)*(vel(n,:)) + fv(:,3); qd(:,n) = (1.35*10^-8) * ((rho(n,:)/rnose)^0.5) * ((vel(n,:))^(3.04))* (1 - ((Cpw*temp(n,:))/(0.5*(vel(n,:)).^2))); if funcv(:,n) >= 0 qrd(:,n) = C*rnose^(a) * (rho(n,:))^(b) * funcv(:,n); else qrd(:,n) = 0; end pdynam(:,n) = 0.5*rho(n,:)*(vel(n,:))^2; vdt(:,n) = -D(:,n)/(m*1000) - mu*sin(gamma(n,:))/(rmars + height(n,:))^2; gload(:,n) = 1000*vdt(:,n)*(1/-9.81)*(1 + (L(:,n)/(D(:,n)))^2)^(.5); rooversh = 2/rmars *(m/(CL*S)) * (go*rmars*1000/(vel(n,:))^2 - 1); rounersh = (2/rmars *(m/(CL*S)) * (go*rmars*1000/(vel(n,:))^2)*gload)/sqrt(1 + (L/D)^2); end end

Time = [t]; fid = fopen('Time','a'); fprintf(fid,'%12.8f\n',Time); fclose(fid); clear Time

Agload = [gload]; fid = fopen('Gloading','a'); fprintf(fid,'%12.8f\n',Agload); fclose(fid); clear Agload

Apdynam = [pdynam]; fid = fopen('Dypress','a');

5 fprintf(fid,'%12.8f\n',Apdynam); fclose(fid); clear Apdynam

Avelocity = [x(:,2)]; fid = fopen('Vinf','a'); fprintf(fid,'%12.8f\n',Avelocity); fclose(fid); clear Avelocity

AAltitude = [x(:,1)]; fid = fopen('Altitude','a'); fprintf(fid,'%12.8f\n',AAltitude); fclose(fid); clear AAltitude

Aflpath = [x(:,3).*180/pi]; fid = fopen('gamma','a'); fprintf(fid,'%12.8f\n',Aflpath); fclose(fid); clear Aflpath

AWalltemp = [x(:,7)]; fid = fopen('TempWall','a'); fprintf(fid,'%12.8f\n',AWalltemp); fclose(fid); clear AWalltemp

Aqdtmars = [qd]; fid = fopen('Conhrate','a'); fprintf(fid,'%12.8f\n',Aqdtmars);

6 fclose(fid); clear Aqdtmars

% counter = counter + 1;

%end %counter = counter + 1; %end %counter = counter + 1; %end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Santosh Kuruvilla ( Statespace form of the Diff Eqns) % AAE 450 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function xdot = Prj1(t,x) global L D dw rhoo Beta rmars ho ha mu Cpw sbc emic alpha CD CL S m go rnose sigma C a b if x(1) > 100 D = 0; L = 0; rho = 0; else rho = rhoo * exp(-Beta *(x(1) - ho)); % Atmospheric Density with alt D = 0.5 * rho * (1000*x(2))^2 * CD * S; L = 0.5 * rho * (1000*x(2))^2 * CL * S; end G = dw * Cpw * 1; nu = rho * S * CD/ (2*m*Beta); vel = 1000*x(2);

7 qd = (1.35*10^-8) * ((rho/rnose)^0.5) * ((vel)^(3.04)) * (1 - ((Cpw*x(7))/(0.5*(vel)^2))); vms = [0 6000 6150 6300 6500 6700 6900 7000 7200 7400 7600 7800 8000 8200 8400 8600 8800 9000]; fmv = [0 .2 1 1.95 3.42 5.1 7.1 8.1 10.2 12.5 14.8 17.1 19.2 21.4 24.1 26.0 28.9 32.8]; fv = polyfit(vms,fmv,2); funcv = fv(:,1)*(vel)^2 + fv(:,2)*(vel) + fv(:,3); qrd = C*rnose^(a) * rho^(b) * funcv; pdynam = 0.5*rho*(1000*x(2))^2; vdt = -D/(m*1000) - mu*sin(x(3))/(rmars + x(1))^2; if D <=0; gload = 0; else gload = 1000*vdt*(1/-9.81)*(1 + (L/(D))^2)^(.5); end if funcv >= 0 qrds = C*rnose^(a) * rho^(b) * (fv(:,1)*(1000*x(2))^2 + fv(:,2)*(1000*x(2)) + fv(:,3)); else qrds = 0; end bc = m/(CD*S); % Ballistic Coefficient xdot(1) = x(2) * sin(x(3)); % altitude xdot(2) = -D/(m*1000) - mu*sin(x(3))/(rmars + x(1))^2; % Velocity xdot(3) = L*sin(sigma)/(1000*m*x(2)) + (x(2)^2/(x(1)+rmars) - mu/(rmars + x(1))^2) * cos(x(3))/x(2); % Gam xdot(4) = L*cos(sigma)/(1000*m*x(2)*cos(x(3))) - x(2)/(rmars + x(1)) * cos(x(3)) * cos(x(4)) * tan(x(5));% Heading xdot(5) = x(2)/(rmars + x(1)) * cos(x(3)) * sin(x(4)); % Latitude xdot(6) = (1.35*10^-8) * ((rho/rnose)^0.5) * ((vel)^(3.04)) * (1 - ((Cpw*x(7))/ (0.5*(vel)^2)));% Convective heating xdot(7) = 1/G *(qd + qrds - emic*sbc*x(7)^4); % Wall temperature xdot(8) = x(2)/((rmars + x(1))*cos(x(5))) * cos(x(3)) * sin(x(4));% Longitude

8 if qrds <=0; xdot(9) = 0;% Radiative heating else xdot(9) = C*rnose^(a) * rho^(b) * (fv(:,1)*(1000*x(2))^2 + fv(:,2)*(1000*x(2)) + fv(:,3)); end xdot = xdot'; return

Following Programs Are the programs used for the stability analysis.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % AAE 450 % Stability and moment calculations % Santosh J Kuruvilla %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all close all

% Nomenclature % C_A = Axial Force Coefficient, F_A/ (q_inf * S) % C_N = Normal Force Coefficient, F_N/ (q_inf * S) % C_l = Rolling Moment Coefficient, M_x/ (q_inf * S) % C_l_bet = Rolling Moment Derivitave, dC_l/dbet % C_m = Pitching Moment Coefficient, M_y/ (q_inf * S) % C_m_alf = Pitching Moment Derivitave, dC_m/dalf % C_n = Yawing Moment Coefficient, M_z/ (q_inf * S) % C_n_bet = Yawing Moment Derivitave, dC_n/dbet % C_Y = Side Force coefficient % C_Y_bet = Side Force Derivitave, dC_Y/dbet

9 % The following equations are from ' Equations and Charts for the evaluation of the Hypersonic Aerodynamic Characteristics of Lifting Configurations % By The Newtonian Theory' % By % E.L. Clark and L.L. Trimmer % von Karman Gas Dynamics Facility ARO, Inc. Technical Documentary Report NO. AEDC-TDR-64-25, March 1964.

% Cp calculations

Gam = 1.4; % Ratio of Specific heats for atmosphere K = Gam + 3/Gam + 1 ; % Cp_max Modified Newtonian Theory coefficient for alf =.1:1*pi/180:90*pi/180; % Flat Topped Cone Frustum % Validity 0 <= alf <= pi/2 %alf = 0; Rn_cf = 1.5; % Nose Radius Rb_cf = 4; % Base Radius eta_cf = Rn_cf/Rb_cf ; delta_cf =19.15*pi/180 ; % Angle between %phi_cf = ; L_cf = 8; % Length (X direction) S_cf = 45; % Reference Area l_cf = 8; % moment reference lengths Const_cf1 = K*L_cf*Rb_cf*(1 + eta_cf)/S_cf ; % Const_cf1 = 1; C_N_cf = Const_cf1 *(pi/2 * cos(alf) * sin(alf) * sin(delta_cf) * cos(delta_cf) + (cos(alf))^2 * (sin(delta_cf))^2 +...

10 2/3 * (sin(alf))^2 * (cos(delta_cf))^2); C_A_cf = Const_cf1 * tan(delta_cf) * (2 * cos(alf) * sin(alf) * sin(delta_cf) * cos(delta_cf) + pi/2 * ( (cos(alf))^2 * (sin(delta_cf))^2 +... + ((sin(alf))^2 * (cos(delta_cf))^2)/2)); C_m_cf = C_N_cf * Rb_cf /(l_cf * tan(delta_cf)) * (1 - 2/(3*(cos(delta_cf))^2) * (1 - eta_cf^3)/(1 - eta_cf^2)); C_l_bet_cf = 0; C_Y_bet_cf = Const_cf1 * ( -pi/2 * cos(alf) * sin(delta_cf) * cos(delta_cf) - 2/3 * sin(alf) * (cos(delta_cf))^2); C_n_bet_cf = C_Y_bet_cf * Rb_cf /(l_cf * tan(delta_cf)) * (1 - 2/(3*(cos(delta_cf))^2) * (1 - eta_cf^3)/(1 - eta_cf^2));

% Circular Cylinder R_cyl = 4; L_cyl = 20.2; S_cyl = 80.8; l_cyl = 20.2; Const_cyl1 = K*L_cyl*R_cyl/S_cyl ;

%Const_cyl1 = 1; C_N_cyl = Const_cyl1 * 4/3 * (sin(alf))^2 ; C_A_cyl = 0; C_m_cyl = C_N_cyl * L_cyl/(2*l_cyl) ; C_Y_bet_cyl = Const_cyl1 * (-4/3) * (sin(alf))^2 ; C_n_bet_cyl = C_Y_bet_cyl * L_cyl/(2*l_cyl) ; C_l_bet_cyl = 0 ;

% Hemisphere R_Hm = 4; Sref_Hm = pi*R_Hm^2; cons_Hm = (K*R_Hm^2)/Sref_Hm;

11 C_N_Hm = cons_Hm * pi/4 * sin(alf) * ( 1 + cos(alf)); C_A_Hm = cons_Hm * pi/8 * ( 1 + cos(alf))^2; C_Y_Bet_Hm = cons_Hm * -pi/4 * (1 + cos (alf)); % Flat Plate; C_l_fp = 2*(sin(alf))^2 * (cos(alf))^2; C_d_fp = 2*(sin(alf))^3 + 60/100 * 2*(sin(alf))^3 ;

% C_L C_D C_L = (C_N_cyl + C_N_cf) * cos(alf) - (C_A_cyl + C_A_cf) * sin(alf); C_D = ((C_N_cyl + C_N_cf) * sin(alf) + (C_A_cyl + C_A_cf) * cos(alf)) + 60/100 * ((C_N_cyl + C_N_cf) * sin(alf) + (C_A_cyl + C_A_cf) * cos(alf)) ; C_L_h = (C_N_cyl + C_N_Hm) * cos(alf) - (C_A_cyl + C_A_Hm) * sin(alf); C_D_h = ((C_N_cyl + C_N_Hm) * sin(alf) + (C_A_cyl + C_A_Hm) * cos(alf)) + 60/100 * ((C_N_cyl + C_N_Hm) * sin(alf) + (C_A_cyl + C_A_Hm) * cos(alf)) ; C_L_hmsf = (C_N_Hm) * cos(alf) - C_A_Hm*sin(alf); C_D_hmsf = ((C_N_Hm) * sin(alf) + C_A_Hm * cos(alf))*1.6; Sreftot = 396; C_m_m1 = C_m_cyl - C_N_cyl*(L_cyl)/(l_cyl+l_cf); C_m_m2 = C_m_cf + C_A_cf*(L_cf)/(l_cyl+l_cf); C_m_config = C_m_m1 + C_m_m2; figure(1) hold on plot(alf*180/pi,C_L_h,'or',alf*180/pi,C_L_h/C_D_h,'*b',alf*180/pi,C_D_h,'sqg') legend (' C_L ', ' L/D ', ' C_D ') xlabel(' \alpha [ deg ] '); ylabel(' C_L , L/D, C_D '); title(' Lift Curve, Lift to drag, and Drag Curve Vs \alpha : SJK ') grid on figure(2)

12 hold on plot(alf*180/pi,C_m_cyl,'*') legend (' C_M ') xlabel(' \alpha [ deg ] '); ylabel(' C_M '); %title(' C_M Vs \alpha : SJK ') grid on figure(3) hold on plot(alf*180/pi,C_L/C_D,'or',alf*180/pi,C_L_h/C_D_h,'*b',alf*180/pi,C_l_fp/C_d_fp,'sqg',a lf*180/pi,C_L_hmsf/C_D_hmsf,'

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Swept Wedge Wing Stability

13 % Santosh J Kuruvilla %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %clear all %close all %clc n = 0; for alpha = 0:1*pi/180:pi/2 ; n = n + 1; beta = 0; epsilon_U = 8.3 * pi/180 ; % Wedge Half Angle Upper epsilon_L = 0; % Wedge Half Angle Lower Lamda_U = 81.31 *pi/180; Lamda_L = 81.31 *pi/180; Gmda_U = 24.10 *pi/180; % Wing Top angle Gmda_L = .001; % Wing Bot angle Gamma_U = atan(tan(Gmda_U)/sin(Lamda_U)); Gamma_L = atan(tan(Gmda_L)/sin(Lamda_L)); b = 3.866 * 0.5 /6.250;% Half base span bnose = 1.585 /6.250; blang = 0.955 /6.250; %length to get sweep c = 6.250/6.250; % Aircraft Chord length t_u = 0.865/6.250;% Thickness t_l = 0;% Thickness t_f = 0.414/6.250; R = 1/6.250;% Side Radius l = .6*c; hanglebase = .914/6.250; Sref = b*c - bnose*2/6.250; % Reference area (Planform area) Gam = 1.4; % Ratio of Specific heats for atmosphere K = Gam + 3/Gam + 1 ; % Cp_max Modified Newtonian Theory coefficient %K = 2;

14 cos_nu_upper = (cos(beta) * sin(epsilon_U - alpha) + sin(beta) * tan(Lamda_U) * sin(epsilon_U))/sqrt(1 + (tan(Lamda_U))^2 * (sin(epsilon_U))^2 ); cos_nu_Lower = (cos(beta) * sin(epsilon_L + alpha) + sin(beta) * tan(Lamda_L) * sin(epsilon_L))/sqrt(1 + (tan(Lamda_L))^2 * (sin(epsilon_L))^2 );

Ap = b*c - bnose*2/6.250; % Planform area Ab = b*t_u; % Base area (half of the wing) As = c*t_u/2; % Side area ( half of the wing) h_u = R * cos(Gamma_U); h_l = R * cos(Gamma_L);

%% Lower Half of the wing %% Valid for 0 <= alpha <= (pi - epsilon_L) if alpha >=0 & alpha <= (pi - epsilon_L) %%%% Normal-Force Coefficient %%%% Cp_L = K * cos_nu_Lower^2; if alpha >= (pi - epsilon_L) & alpha <= pi CN_L = 0; else CN_L = Cp_L * Ap/Sref; end %%%% Axial-Force Coefficient %%%% CA_L = Cp_L * Ab/Sref ; %%%% Pitching Moment Coefficient %%%% %Cm_L = CN_L * c/(3*l) - CA_L* 1/l * (t_l/3 + h_l); Cm_L = CN_L/l * (c/3 - tan(epsilon_L)*(t_l/3 + h_l)); %%%% Side Force Coefficient %%%% Delta_Cp_L = (-4*K*cos(beta)*sin(beta)*tan(Lamda_L)*sin(epsilon_L)*sin(epsilon_L + alpha))/(1 + (tan(Lamda_L))^2 + (sin(epsilon_L))^2); CY_L = Delta_Cp_L * As/Sref;

15 CY_Beta_L = -4*K*As/Sref * tan(Lamda_L) * sin(epsilon_L) * sin(epsilon_L + alpha)/(1 + (tan(Lamda_L))^2 + (sin(epsilon_L))^2); %%%% Yawing moment coefficient Derivitave %%%% Cn_Beta_L = CY_Beta_L * c/(3*l) * (1 - 1/(tan(Lamda_L))^2); %%%% Rolling moment coefficient Derivitave %%%% Cl_Beta_L = CY_Beta_L * 1/l * (t_u/3 * (1/(tan(Gmda_L))^2 - 1) - h_l); else CN_L = 0; CA_L = 0; Cm_L = 0; CY_L = 0; CY_Beta_L = 0; Cn_Beta_L = 0; Cl_Beta_L = 0; end

%%% Upper Half of the wing %% Valid for 0 <= alpha <= epsilon_U if alpha >= 0 & alpha <= epsilon_U Cp_U = K * cos_nu_upper^2; %%%% Normal-Force Coefficient %%%% if alpha >= epsilon_U & alpha <= pi CN_U = 0; else CN_U = -Cp_U * Ap/Sref; end %%%% Axial-Force Coefficient %%%% CA_U = Cp_U * Ab/Sref; %%%% Pitching Moment Coefficient %%%% % Cm_U = CN_U * c/(3*l) - CA_U* 1/l * (t_u/3 + h_u);

16 Cm_U = CN_U/l * (c/3 - tan(epsilon_U)*(t_u/3 + h_u)); %%%% Side Force Coefficient %%%% Delta_Cp_U = (- 4*K*cos(beta)*sin(beta)*tan(Lamda_U)*sin(epsilon_U)*sin(epsilon_U - alpha))/(1 + (tan(Lamda_U))^2 + (sin(epsilon_U))^2); CY_Beta_U = -4*K*As/Sref * tan(Lamda_U) * sin(epsilon_U) * sin(epsilon_U - alpha)/(1 + (tan(Lamda_U))^2 + (sin(epsilon_U))^2); %%%% Yawing moment coefficient Derivitave %%%% Cn_Beta_U = CY_Beta_U * c/(3*l) * (1 - 1/(tan(Lamda_U))^2); %%%% Rolling moment coefficient Derivitave %%%% Cl_Beta_U = -CY_Beta_U * 1/l * (t_u/3 * (1/(tan(Gmda_U))^2 - 1) - h_u); else Cp_U = K * cos_nu_upper^2; CN_U = 0; CA_U = 0; Cm_U = 0; CY_U = 0; CY_Beta_U = 0; Cn_Beta_U = 0; Cl_Beta_U = 0; end

CN = CN_L + CN_U; CA = CA_L + CA_U; Cm = Cm_L + Cm_U; Cl_Beta = Cl_Beta_U + Cl_Beta_L; CY_Beta = CY_Beta_L + CY_Beta_U; Cn_Beta = Cn_Beta_L + Cn_Beta_U; C_L = CN * cos(alpha) - CA * sin(alpha); C_D = CN * sin(alpha) + CA * cos(alpha); alf(n) = alpha;

17 CLt(n) = C_L; CDt(n) = C_D; Cmt(n) = Cm; % Flat plate CNfp(n) = 2*(sin(alpha))^2; CLfp(n) = CNfp(n) *cos(alpha); CDfp(n) = CNfp(n) *sin(alpha); end

Cmalf = -diff(CLt)/diff(alf) *(0.6*c - .8*c); figure(3) hold on plot(alf*180/pi,Cmt+(0.5*c - 0.7*c)*CLt./alf,'kd')

%figure(2) %hold on %plot(alf*180/pi,(Cmalf).*alf,'o')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Material Properties Database ( I had Grand Plans for a huge material % Data base for Future classes, But I % Lost Interest). % Santosh J Kuruvilla %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Material = [Density(Kg/m^3) Cp(J/kg-K) emic templimit(single use)(K)]; % The emisitivity numbers are estimates (Basically guess work, by looking at materials we do know about).

% Zirconium Diboride ZrBr2

18 6000 795 0.8 3033.15;% AKA un-obtanium (Steves name), This stuff exists but exact specifics are not known. These numbers from % Methods for Analysis of Preliminary Spacecraft Designs, AAE451, S/C design, Purdue University. % By Steven P. Schneider, Associate Professor.

% Sintered Silicone Carbide SiC 3080 715 0.5 1773.15;% These properties change with temperature, these are for 20 deg C. % NIST Property Data Summaries: ' SiC Material summary '

% Sintered Alumina Al203 3984 755 0.6 2323.15;% As above

% HRSI %a 144.166 0.85 1533.15 %b 352.406 0.85 1533.15

Heat shield weight Calculator

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Heat Shield Weight Calculator% %Santosh J Kuruvilla %Not Commented well. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Weights close all clear all

19 %Hab nose rnose = .288; theta = 120*pi/180; rbot = 1.15; hnose = 15; thetatop = 70*pi/180; rbottp = 4.68; Base = 7; htt = 15; top = 1; bh = 15;

Swetnosele = 4*pi*rnose^2 /2 ; Swetnosebotside = theta * rbot * sqrt(rbot^2 + hnose^2); Swetnosetop = thetatop * rbottp * sqrt(rbottp^2 + hnose^2); Swetnosetri = Base * htt - 1/2 * (Base - top) * htt; Swetnosetribot = bh * hnose; %triangle thetabs = 120*pi/180; rbs = 1.15; htri = 10.82; thetatp = 50*pi/180; rtp = 4.68; lsn = 7;

Swetbotsidetri = thetabs * rbs* htri; Swettoptri = thetatp * rtp * htri; Swetsqbasetri = bh * htri; Swetsidetritp = lsn * htri; rhoal = 2700; %Al

20 rhozrbr2 = 6000; rhossca = 3080; rhoal203 = 3984; rhoHSRd = 352.406; rhoHSRi = 144.166;

Weight1 = (Swetnosele * rhoal203 * 2/100 + Swetnosele* rhoal * .15/100); Weight2 = (Swetnosetop * rhoHSRd * 3/100 + Swetnosetop * rhoal * .15/100); Weight3 = (Swetnosebotside * rhoal203 * .8/100 + Swetnosebotside * rhoal * . 15/100)*2;

Weight4 = Swetnosetribot * rhossca * .8/100 + Swetnosetribot * rhoal * .15/100; Weight5 = 2*(Swetnosetri * rhoHSRi * 3/100 + Swetnosetri * rhoal * .15/100);

Weight6 = Swettoptri * rhoHSRi * 3/100 + Swettoptri * rhoal * .15/100; Weight7 = 2*(Swetbotsidetri * rhossca * .4/100 + Swetbotsidetri * rhoal * .15/100); Weight8 = (Swetsidetritp * rhoHSRi * 3/100 + Swetsidetritp * rhoal * .15/100) *2; Weight9 = (Swetsqbasetri * rhossca * .5/100 + Swetsqbasetri * rhoal * .15/100);

Weigt = Weight1 + Weight2 + Weight3 + Weight4 + Weight5 + Weight6 + Weight7 + Weight8 + Weight9

Weightnose = Weight1 + Weight2 + Weight3 + Weight4 + Weight5

% ervtot rnosea = 8.05/2 ; rbasea = 10.50/2; h1 = 10.03; h2 = 6; h3 = 4.06; h4 = 6.03;

21 Swetnose = 0.5 * 4 * pi * rnosea^2; Swetprop = 2*pi*rnosea*h1; Swetretrpow = 2*pi*rnosea*h2; Swetgarage = 2*pi*rnosea*h3; SwetHab = 2*pi*rbasea*h4;

WeightAl = (Swetnose + Swetprop + Swetretrpow + Swetgarage + SwetHab) * rhoal * . 15/100; Weighth1 = Swetnose * 10/100 * rhoal203 * 2/100; Weighth2 = Swetnose * 40/100 * rhoal203 * .9/100; Weighth3 = Swetnose * 10/100 * rhossca * .9/100; Weighth4 = Swetnose * 40/100 * rhoHSRd * 3/100; Weighth5 = (Swetprop + Swetretrpow + Swetgarage + SwetHab) * rhossca * .6/100 * 30/100; Weighth6 = (Swetprop + Swetretrpow + Swetgarage + SwetHab) * rhoHSRd * 3/100 * 70/100;

WeightErvtot = WeightAl + Weighth1 + Weighth2 + Weighth3 + Weighth4 + Weighth5 + Weighth6

Weightlaunchmars = Swetnose *rhoal * .15/100 + Swetnose * rhossca * .068/100

% Littleguy

Rnoselg = 1.6; leng = 6.53; Hlig = 1.73; Baselg = 3.93;

Rthtp = 1.73/2;

22 thtp = 45*pi/180; Rside = 0.45; thside = 120*pi/180;

Swetnos = 0.5 * 4 * pi * Rnoselg^2 * 0.5; Swetbotplate = Baselg * leng * 90/100; Swetsidebot = thside * Rside * sqrt(Rside^2 + leng^2); Swettopcv = thtp * Rthtp * sqrt(Rthtp^2 + leng^2); Swettside = 1.56 * leng * .85;

Weigtalt = (Swetnos + Swetbotplate + Swetsidebot + Swettopcv + Swettside) * 0.15/100 * rhoal; Weigh1ctv = Swetnos * 2.5/100 * rhoal203 * 50/100; Weigh2ctv = Swetbotplate * .8/100 * rhossca * 90/100; Weigh3ctv = 2 * Swetsidebot * .6/100 * rhossca * 90/100; Weigh4ctv = Swettopcv * rhoHSRd * 3/100; Weigh5ctv = 2 * Swettside * rhoHSRd * 3/100 * 80/100;

Wectv = Weigtalt + Weigh1ctv + Weigh2ctv + Weigh3ctv + Weigh4ctv + Weigh5ctv

23 Appendix 2.2 Aero-assist Nick Saadah aae450atrajs.m – code responsible for propagating the Crew Transfer Vehicle’s arrival into the Earth’s atmosphere

%Nicholas Saadah %AAE 450 %Presentation #1 (1/16/01) %CTV arrival to Earth clear all global fcflag fhflag faflag feflag fvflag

%Constants umars = -398600; %km^3/s^2 g = 9.8; %m/s^2 rmars = 6378; %km msc = 5000; %kg areasc = 25.66; %m^2 fcflag = 0; fhflag = 0; faflag = 0; feflag = 0; fvflag = 0;

%Initial Conditions xi = rmars+200; %km yi = 0; %km vi = 11.65; %km/s

24 gammaideg= input('gamma: '); %deg maxgload = input('maxgload: '); betadeg = input('beta: '); %deg gammai = gammaideg*pi/180; %radians beta = betadeg*pi/180; %radians vxi = vi*sin(gammai); %km/s vyi = vi*cos(gammai); %km/s p0 = [xi vxi yi vyi]; ti = [0 1e5]; options = odeset('Reltol',1e-8); [t,xx] = ode45('aae450eoms',ti,p0,options,umars,rmars,msc,areasc,g,beta,maxgload); x = xx(:,1); vx = xx(:,2); y = xx(:,3); vy = xx(:,4); r = sqrt(x.^2 + y.^2); alt = r-rmars; clapp = min(alt); if min(alt) < 0 | fvflag == 1 [a b] = min(abs(alt)); x = x(1:b); vx = vx(1:b); y = y(1:b); vy = vy(1:b); t = t(1:b); r = r(1:b); alt = alt(1:b);

25 contact = 1; else contact = 0; end if fvflag == 1 contact = 0; end if fhflag == 1 [c d] = size(xx); for i = 1:1:c-1 if vx(i+1) - vx(i) == 0 htrj = i; break end end x = x(1:htrj); vx = vx(1:htrj); y = y(1:htrj); vy = vy(1:htrj); t = t(1:htrj); r = r(1:htrj); alt = alt(1:htrj); end v = sqrt(vx.^2 + vy.^2); ro = .047*exp(-.1*((r-rmars)-49)); q = .5.*ro.*(v.*1000).^2; q = q + 1e-12; k = .125*((msc*maxgload*g)./(q*areasc)).^2; %options = optimset('Display','off');

26 for i = 1:1:length(q) if k(i) > 2 alpha(i) = pi/2; elseif k(i) > 0 & k(i) < 2 alpha(i) = fzero('aae450fzeros',[0 pi/2],[],[],k(i)); end end alpha = alpha'; cl = 2*sin(2*alpha); lift = cl*areasc.*sin(alpha).*q; cd = 2*(1-cos(2*alpha)); drag = cd*areasc.*sin(alpha).*q; taf = sqrt(lift.^2 + drag.^2); adt = taf/msc; alt = r-rmars; gs = adt/9.8; tmin = t/60; thrs = t/3600; alpha = alpha*180/pi; rvec = [x y zeros(length(x),1)]; vvec = [vx vy zeros(length(vx),1)]; h = cross(rvec,vvec); hmag = sqrt(h(:,1).^2 + h(:,2).^2 + h(:,3).^2); scripte = v.^2/2 + umars./r; ecc = sqrt(1 + 2*scripte.*hmag.^2/umars^2);

[e f] = max(alt); alts = alt(1:f); [e f] = min(alts); alts = alts(f:length(alts));

27 [a100err c100] = min(abs(alts-100)); c100 = c100+f-1; rvecexit = [x(c100) y(c100) 0]; vvecexit = [vx(c100) vy(c100) 0]; hvecexit = cross(rvecexit,vvecexit); hexitmag = sqrt(hvecexit(1)^2 + hvecexit(2)^2 + hvecexit(3)^2); gammaexit = acos(hexitmag/(r(c100)*v(c100))); gammaexit = gammaexit*180/pi; vexit = v(c100); theta = linspace(0,2*pi,100); xms = rmars.*cos(theta); yms = rmars.*sin(theta); figure plot(x,y) hold on axis equal fill(xms,yms,'g') if contact == 1 plot(x(b),y(b),'r*') end

28 aae450atrajr.m code responsible for propagating the Earth Return Vehicle’s arrival into the Martian atmosphere

%Nicholas Saadah %AAE 450 %Presentation #1 (1/16/01) %ERV arrival at Mars clear all global fcflag fhflag faflag feflag

%Constants umars = -42828; %km^3/s^2 g = 9.8; %m/s^2 rmars = 3397; %km msc = 55200; %kg areasc = 81.71; %m^2 fcflag = 0; fhflag = 0; faflag = 0; feflag = 0;

%Initial Conditions xi = rmars+100; %km yi = 0; %km vi = 5.64; %km/s gammaideg= input('gamma: '); %deg maxgload = input('maxgload: '); betadeg = input('beta: '); %deg gammai = gammaideg*pi/180; %radians beta = betadeg*pi/180; %radians

29 vxi = vi*sin(gammai); %km/s vyi = vi*cos(gammai); %km/s p0 = [xi vxi yi vyi]; ti = [0 3e5]; options = odeset('Reltol',1e-8); [t,xx] = ode45('aae450eomt',ti,p0,options,umars,rmars,msc,areasc,g,beta,maxgload); x = xx(:,1); vx = xx(:,2); y = xx(:,3); vy = xx(:,4); r = sqrt(x.^2 + y.^2); alt = r-rmars; clapp = min(alt); if min(alt) < 0 contact = 1; [a b] = min(abs(alt)); x = x(1:b); vx = vx(1:b); y = y(1:b); vy = vy(1:b); t = t(1:b); r = r(1:b); alt = alt(1:b); else contact = 0; end

30 if fhflag == 1 [c d] = size(xx); for i = 1:1:c-1 if vx(i+1) - vx(i) == 0 htrj = i; break end end x = x(1:htrj); vx = vx(1:htrj); y = y(1:htrj); vy = vy(1:htrj); t = t(1:htrj); r = r(1:htrj); alt = alt(1:htrj); end v = sqrt(vx.^2 + vy.^2); ro = .00047*exp(-.1*((r-rmars)-49)); q = .5.*ro.*(v.*1000).^2; q = q + 1e-12; k = .125*((msc*maxgload*g)./(q*areasc)).^2; %options = optimset('Display','off'); for i = 1:1:length(q) if k(i) > 2 alpha(i) = pi/2; elseif k(i) > 0 & k(i) < 2 alpha(i) = fzero('aae450fzeros',[0 pi/2],[],[],k(i)); end end alpha = alpha';

31 cl = 2*sin(2*alpha); lift = cl*areasc.*sin(alpha).*q; cd = 2*(1-cos(2*alpha)); drag = cd*areasc.*sin(alpha).*q; taf = sqrt(lift.^2 + drag.^2); adt = taf/msc; alt = r-rmars; gs = adt/9.8; tmin = t/60; thrs = t/3600; alpha = alpha*180/pi; rvec = [x y zeros(length(x),1)]; vvec = [vx vy zeros(length(vx),1)]; h = cross(rvec,vvec); hmag = sqrt(h(:,1).^2 + h(:,2).^2 + h(:,3).^2); scripte = v.^2/2 + umars./r; ecc = sqrt(1 + 2*scripte.*hmag.^2/umars^2);

[e f] = max(alt); alts = alt(1:f); [e f] = min(alts); alts = alts(f:length(alts)); [a100err c100] = min(abs(alts-100)); c100 = c100+f-1; rvecexit = [x(c100) y(c100) 0]; vvecexit = [vx(c100) vy(c100) 0]; hvecexit = cross(rvecexit,vvecexit); hexitmag = sqrt(hvecexit(1)^2 + hvecexit(2)^2 + hvecexit(3)^2); gammaexit = acos(hexitmag/(r(c100)*v(c100))); gammaexit = gammaexit*180/pi;

32 vexit = v(c100); theta = linspace(0,2*pi,100); xms = rmars.*cos(theta); yms = rmars.*sin(theta); figure plot(x,y) hold on axis equal fill(xms,yms,'r') if contact == 1 plot(x(b),y(b),'g*') end

33 aae450atrajt.m – code responsible for propagating the Habitation Module’s arrival into the Martian atmosphere

%Nicholas Saadah %AAE 450 %Presentation #1 (1/16/01) %Hab arrival at Mars clear all global fcflag fhflag faflag feflag

%Constants umars = -42828; %km^3/s^2 g = 9.8; %m/s^2 rmars = 3397; %km msc = 75000; %kg areasc = 65; %m^2 fcflag = 0; fhflag = 0; faflag = 0; feflag = 0;

%Initial Conditions xi = rmars+100; %km yi = 0; %km vi = 8.39; %km/s gammaideg= input('gamma: '); %deg maxgload = input('maxgload: '); betadeg = input('beta: '); %deg gammai = gammaideg*pi/180; %radians beta = betadeg*pi/180; %radians

34 vxi = vi*sin(gammai); %km/s vyi = vi*cos(gammai); %km/s p0 = [xi vxi yi vyi]; ti = [0 200]; options = odeset('Reltol',1e-8); [t,xx] = ode45('aae450eomt',ti,p0,options,umars,rmars,msc,areasc,g,beta,maxgload); x = xx(:,1); vx = xx(:,2); y = xx(:,3); vy = xx(:,4); r = sqrt(x.^2 + y.^2); alt = r-rmars; clapp = min(alt); if min(alt) < 0 contact = 1; [a b] = min(abs(alt)); x = x(1:b); vx = vx(1:b); y = y(1:b); vy = vy(1:b); t = t(1:b); r = r(1:b); alt = alt(1:b); else contact = 0; end

35 if fhflag == 1 [c d] = size(xx); for i = 1:1:c-1 if vx(i+1) - vx(i) == 0 htrj = i; break end end x = x(1:htrj); vx = vx(1:htrj); y = y(1:htrj); vy = vy(1:htrj); t = t(1:htrj); r = r(1:htrj); alt = alt(1:htrj); end v = sqrt(vx.^2 + vy.^2); ro = .00047*exp(-.1*((r-rmars)-49)); q = .5.*ro.*(v.*1000).^2; q = q + 1e-12; k = .125*((msc*maxgload*g)./(q*areasc)).^2; %options = optimset('Display','off'); for i = 1:1:length(q) if k(i) > 2 alpha(i) = pi/2; elseif k(i) > 0 & k(i) < 2 alpha(i) = fzero('aae450fzeros',[0 pi/2],[],[],k(i)); end end alpha = alpha';

36 cl = 2*sin(2*alpha); lift = cl*areasc.*sin(alpha).*q; cd = 2*(1-cos(2*alpha)); drag = cd*areasc.*sin(alpha).*q; taf = sqrt(lift.^2 + drag.^2); adt = taf/msc; alt = r-rmars; gs = adt/9.8; tmin = t/60; thrs = t/3600; alpha = alpha*180/pi; rvec = [x y zeros(length(x),1)]; vvec = [vx vy zeros(length(vx),1)]; h = cross(rvec,vvec); hmag = sqrt(h(:,1).^2 + h(:,2).^2 + h(:,3).^2); scripte = v.^2/2 + umars./r; ecc = sqrt(1 + 2*scripte.*hmag.^2/umars^2);

[e f] = max(alt); alts = alt(1:f); [e f] = min(alts); alts = alts(f:length(alts)); [a100err c100] = min(abs(alts-100)); c100 = c100+f-1; rvecexit = [x(c100) y(c100) 0]; vvecexit = [vx(c100) vy(c100) 0]; hvecexit = cross(rvecexit,vvecexit); hexitmag = sqrt(hvecexit(1)^2 + hvecexit(2)^2 + hvecexit(3)^2); gammaexit = acos(hexitmag/(r(c100)*v(c100))); gammaexit = gammaexit*180/pi;

37 vexit = v(c100); theta = linspace(0,2*pi,100); xms = rmars.*cos(theta); yms = rmars.*sin(theta); figure plot(x,y) hold on axis equal fill(xms,yms,'r') if contact == 1 plot(x(b),y(b),'g*') end

38 aae450eoms.m – equations of motion for Earth arrival

%Nicholas Saadah %AAE 450 %Planetary EOMs %CTV arrival to Earth function xdot = aae450eoms(t,x,flag,umars,rmars,msc,areasc,g,beta,maxgload) global fcflag fhflag faflag feflag fvflag r = sqrt(x(1)^2 + x(3)^2); rvec = [x(1) x(3) 0]; v = sqrt(x(2)^2 + x(4)^2); vvec = [x(2) x(4) 0]; ro = .047*exp(-.1*((r-rmars)-49)); q = .5*ro*(v*1000)^2; if q < 1e-12 k = 3; else k = .125*((msc*maxgload*g)/(q*areasc))^2; end %options = optimset('Display','off'); if k > 2 alpha = pi/2; elseif k > 0 & k <= 2 alpha = fzero('aae450fzeros',[0 pi/2],[],[],k); else fprintf('error\n') end

39 cd = 2*(1-cos(2*alpha)); cl = 2*sin(2*alpha); drag = cd*areasc*sin(alpha)*q; lift = cl*areasc*sin(alpha)*q*cos(beta); aero = sqrt(lift^2 + drag^2); gload = aero/(msc*g); h = cross(rvec,vvec); hmag = sqrt(h(1)^2 + h(2)^2 + h(3)^2); scripte = v^2/2 + umars/r; ecc = sqrt(1 + 2*scripte*hmag^2/umars^2); xdot(1) = x(2); xdot(2) = umars*x(1)/r^3 - (.001*drag*x(2))/(v*msc) + ... (.001*lift*x(4))/(v*msc); xdot(3) = x(4); xdot(4) = umars*x(3)/r^3 - (.001*drag*x(4))/(v*msc) - ... (.001*lift*x(2))/(v*msc); if r-rmars <= 100 & faflag == 0 fprintf('atmospheric entry\n') faflag = 1; end if r-rmars > 100 & faflag == 1 fprintf('atmospheric exit\n') faflag = 0; end if r < rmars & fcflag == 0 fprintf('contact with planet surface\n') fcflag = 1; end if r-rmars > 200 & x(3) > 0 & ecc > 1 & fhflag == 0

40 fprintf('hyperbolic trajectory - e = %.4f\n',ecc) fhflag = 1; end if r-rmars > 200 & x(3) > 0 & ecc < 1 & feflag == 0 fprintf('elliptic trajectory - e = %.4f\n',ecc) feflag = 1; end if v <= 1 fvflag = 1; end if r < rmars | fhflag == 1 | v <= 1 xdot(1) = 0; xdot(2) = 0; xdot(3) = 0; xdot(4) = 0; end xdot = xdot'; return

41 aae450eomt.m – equations of motion for Mars arrival

%Nicholas Saadah %AAE 450 %Planetary EOMs %CTV arrival to Earth function xdot = aae450eomt(t,x,flag,umars,rmars,msc,areasc,g,beta,maxgload) global fcflag fhflag faflag feflag r = sqrt(x(1)^2 + x(3)^2); rvec = [x(1) x(3) 0]; v = sqrt(x(2)^2 + x(4)^2); vvec = [x(2) x(4) 0]; ro = .00047*exp(-.1*((r-rmars)-49)); q = .5*ro*(v*1000)^2; if q < 1e-12 k = 3; else k = .125*((msc*maxgload*g)/(q*areasc))^2; end %options = optimset('Display','off'); if k > 2 alpha = pi/2; elseif k > 0 & k <= 2 alpha = fzero('aae450fzeros',[0 pi/2],[],[],k); else fprintf('error\n') end

42 cd = 2*(1-cos(2*alpha)); cl = 2*sin(2*alpha); drag = cd*areasc*sin(alpha)*q; lift = cl*areasc*sin(alpha)*q*cos(beta); aero = sqrt(lift^2 + drag^2); gload = aero/(msc*g); h = cross(rvec,vvec); hmag = sqrt(h(1)^2 + h(2)^2 + h(3)^2); scripte = v^2/2 + umars/r; ecc = sqrt(1 + 2*scripte*hmag^2/umars^2); xdot(1) = x(2); xdot(2) = umars*x(1)/r^3 - (.001*drag*x(2))/(v*msc) + ... (.001*lift*x(4))/(v*msc); xdot(3) = x(4); xdot(4) = umars*x(3)/r^3 - (.001*drag*x(4))/(v*msc) - ... (.001*lift*x(2))/(v*msc); if r-rmars <= 100 & faflag == 0 fprintf('atmospheric entry\n') faflag = 1; end if r-rmars > 100 & faflag == 1 fprintf('atmospheric exit\n') faflag = 0; end if r < rmars & fcflag == 0 fprintf('contact with planet surface\n') fcflag = 1; end if r-rmars > 200 & x(3) > 0 & ecc > 1 & fhflag == 0

43 fprintf('hyperbolic trajectory - e = %.4f\n',ecc) fhflag = 1; end if r-rmars > 200 & x(3) > 0 & ecc < 1 & feflag == 0 fprintf('elliptic trajectory - e = %.4f\n',ecc) feflag = 1; end if r < rmars | fhflag == 1 xdot(1) = 0; xdot(2) = 0; xdot(3) = 0; xdot(4) = 0; end xdot = xdot'; return

44 aae450fzeros.m – flat plate equation

%Nicholas Saadah %AAE 450 fzero solver %2/17/01 function alpha = aae450fzero(x,k) alpha = [(sin(x))^2*(1-cos(2*x)) - k]; return

45 APPENDIX 2.3 Take-off and Landing Jeremy Davis acceldiff.m % Jeremy Davis % A&AE 450 Spring 2001 % Code used to numerically differentiate velocity vectors % in order to obtain acceleration histories. function accel = acceldiff(t,v) sz = size(t) i = 2; accel(1,1) = 0; while i < sz(1,1) accel(i) = (v(i) - v(i-1))/(t(i) - t(i-1)); i = i + 1; end size(accel) accel(1,1) = accel(1,2); accel = accel'; return

46 subreefeom.m

% Jeremy Davis % A&AE 450 Spring 2001 % Code used to solve ODE for parachute during % subsonic stages of deployment. function xdot = subreefeom(t,x) global umars rmars msc areasc cdsub areapsub numsub dragsub v = sqrt(x(2)^2 + x(4)^2); % in m/s ro = .01226*exp(-.1*(x(4)/1000)); q = .5*ro*(v^2); % in N/m^2 dragsub = cdsub*areapsub*q; % in N xdot(1) = x(2); xdot(2) = -((dragsub*x(2))/(v*msc)); xdot(3) = x(4); xdot(4) = -((dragsub*x(4))/(v*msc)) - ((9.81*(3/8))); xdot = xdot'; return

47 superdiam.m

% Jeremy Davis % AAE 450 Spring 2001 % Similar code to subreefdiam.m, but for supersonic deployment. global diam m = 70700; % in kg rho = .0092; % kg/m^3 Cd = .5; % Conical Ribbon Parachute (M = 0.1 - 3.0) diam = 30; % meters. num = 3; % number of parachutes being used. vterm = sqrt((8*m*3.73)/(pi*num*Cd*rho*(diam^2))); circum = 2*pi*(diam/2); % circumference of the parachute, in meters

% CANOPY MASS % ------dens = .0373; % in kg/m^2 ("specific weight" of nylon) Dc = .95*diam; % constructed diameter Mc = (pi/4)*(Dc^2)*dens*num; % in kg

% SUSPENSION LINE MASS % ------lod = 2;% rigging length over diameter of parachute ( 1

48 Mpara = Mc + Msl; % in kg, mass of the total parachute system

%disp('Pertinent Information Associated with this Mass: ');

%disp('Mass of the Spacecraft [in tonnes]: '); %disp(m/1000); %disp('Number of Parachutes Being Deployed: '); %disp(num); %disp('Diameter of the Supersonic Chutes [meters]: '); %disp(diam);

49 supereom.m

% Jeremy Davis % A&AE 450 Spring 2001 % Code used to solve ODE for deployment % during supersonic stages. function xdot = supreefeom(t,x) global msc areasc cd areap num v = sqrt(x(2)^2 + x(4)^2); % in m/s ro = .01226*exp(-.1*(x(4)/1000)); q = .5*ro*(v.^2); % in N/m^2 drag = cd*areap*q; % in N xdot(1) = x(2); xdot(2) = -((drag*x(2))/(v*msc)); xdot(3) = x(4); xdot(4) = -((drag*x(4))/(v*msc)) - ((9.81*(3/8))); xdot = xdot'; return

50 supersubhm.m

% JEREMY DAVIS % AAE 450 SPRING 2001 % Mars Descent Simulation: % Adapted for other stages (ERV, and CTV) but mathematically similar warning off superdiam global rmars msc areasc cd fcflag areap diam

%Constants msc = 70700; %kg dsc = diam; %m areap = num*(pi*(dsc/2)^2); %m^2 areasc = pi*((8.75/2)^2); % areas of the spacecraft, in m^2 cd = Cd; fcflag = 0; tf = 0; i = 2; gamma = 1.359; R = 188.95; % J/kg*K T = 218; % K sos = sqrt(gamma*R*T); % m/s

% INITIAL CONDITIONS init_alt = 17500; % meters init_M = 3; init_vel = init_M*sos; % in m/s

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

51 %Initial Conditions t(1) = 0; x(1) = 0; % meters y(1) = init_alt; % meters vi = init_vel; % m/s %thetaideg = input('theta: '); %degrees thetaideg = 45; thetai = thetaideg*pi/180; %radians vx(1) = vi*sin(thetai); %m/s vy(1) = -vi*cos(thetai); %m/s time = (-vy(1) + sqrt((vy(1)^2) - (4*1.8394*init_alt)))/(2*1.8394) % based on no- parachute situation p0 = [x(1) vx(1) y(1) vy(1)]; % ALL IN METERS ti = [0 time]; options = odeset('Reltol',1e-12); [tt,xx] = ode45('supereom',ti,p0,options);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PERTINENT INFORMATION disp('PERTINENT INFORMATION'); disp('------'); disp('Initial Mass of the HAB in tonnes: '); disp(msc/1000); disp('Altitude at Parachute Deployment in km: '); disp(init_alt/1000); disp('Velocity at Parachute Deployment in m/s: '); disp(init_vel); disp('------');

52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRAJECTORY SOLUTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = xx(:,1); % ALL IN METERS vx = xx(:,2); y = xx(:,3); vy = xx(:,4); t = tt; v = sqrt((vx.^2) + (vy.^2)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TRIM THE VECTORS TO REMOVE NEGATIVE ALTITUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sz = size(x); i = 1; while i < sz(1,1) if abs(v(i)) < sos brk = i - 1; t = t(1:brk); x = x(1:brk); y = y(1:brk); vx = vx(1:brk); vy = vy(1:brk); v = sqrt((vx.^2) + (vy.^2)); break end i = i + 1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FINDING THE ACCELERATION AND RESULTING G-LOADS DURING % PARACHUTE DEPLOYMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

53 gload = -acceldiff(t,v)/9.81; gload = gload'; sizer = size(gload); sizer = sizer(1,1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PERTINENT INFORMATION disp('Supersonic Parachute Pertinent Information'); disp('------'); disp('Number of Supersonic Parachutes Being Used: '); disp(num); disp('Diameter of each parachute in meters is [m]: '); disp(diam); disp('The mass of the supersonic parachute is [kg]: '); disp(Mpara); disp('Supersonic Parachute Deployment Time [sec]: '); disp(t(end)); disp('------'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% ======% ======% ======STAGE BREAK ======% ======% ======

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SUBSONIC REEFED STAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

54 global cdsub areapsub diamsub numsub reefref reefref = .3; % reefing reference number, (the percentage of nominal diameter) msc = 53100; % NEW MASS AFTER HEAT SHIELD RELEASE subreefdiam

%Initial Conditions reeftime = .01; % deployment time of reefed subsonic chutes areapsub = numsub*(pi*(diamsub/2)^2); treef(1) = t(end); xreef(1) = x(end); % meters yreef(1) = y(end); % meters vxreef(1) = vx(end); %m/s vyreef(1) = vy(end); %m/s p0reef = [xreef(1) vxreef(1) yreef(1) vyreef(1)]; % ALL IN METERS tireef = [treef(1) reeftime+treef(1)]; options = odeset('Reltol',1e-12); [ttreef,xxreef] = ode45('subreefeom',tireef,p0reef,options);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % REEFED TRAJECTORY RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% xreef = xxreef(:,1); vxreef = xxreef(:,2); yreef = xxreef(:,3); vyreef = xxreef(:,4); treef = ttreef; vreef = sqrt((vxreef.^2) + (vyreef.^2)); gloadreef = -acceldiff(treef,vreef)/9.81; gloadreef = gloadreef';

55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % COMBINING THE SUPERSONIC AND REEFED RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = [x' xreef']'; y = [y' yreef']'; vx = [vx' vxreef']'; vy = [vy' vyreef']'; t = [t' treef']'; v = [v' vreef']'; gload = [gload gloadreef]; sz = size(x); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PERTINENT INFORMATION disp('Subsonic Reefed Pertinent Information'); disp('------'); disp('No Information Yet for Reefed Chutes'); disp('------'); % ======% ======% ======STAGE BREAK ======% ======% ======

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SUBSONIC FULLY DEPLOYED PARACHUTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% global cdsub areapsub diamsub numsub reefref

56 reefref = 1.0; % reefing reference number, (the percentage of nominal diameter) subreefdiam

%Initial Conditions deptime = 200; % deployment time of fully deployed subsonic chutes areapsub = numsub*(pi*(diamsub/2)^2); tsub(1) = t(end); xsub(1) = x(end); % meters ysub(1) = y(end); % meters vxsub(1) = vx(end); %m/s vysub(1) = vy(end); %m/s p0sub = [xsub(1) vxsub(1) ysub(1) vysub(1)]; % ALL IN METERS tisub = [tsub(1) deptime+tsub(1)]; options = odeset('Reltol',1e-12); [ttsub,xxsub] = ode45('subreefeom',tisub,p0sub,options);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FULLY DEPLOYED CHUTE TRAJECTORY RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% xsub = xxsub(:,1); vxsub = xxsub(:,2); ysub = xxsub(:,3); vysub = xxsub(:,4); tsub = ttsub; vsub = sqrt((vxsub.^2) + (vysub.^2)); gloadsub = -acceldiff(tsub,vsub)/9.81; gloadsub = gloadsub';

57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CUT OFF TIMES AFTER TERMINAL VELOCITY IS REACHED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sz = size(tsub); z = 2; while z < sz(1,1) if ysub(z) < 1200 % ALTITUDE TO CUT AT termpoint = z; xsub = xsub(1:termpoint); ysub = ysub(1:termpoint); vxsub = vxsub(1:termpoint); vysub = vysub(1:termpoint); vsub = vsub(1:termpoint); tsub = tsub(1:termpoint); gloadsub = gloadsub(1:termpoint); break end z = z + 1; end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % COMBINING THE SUPERSONIC AND REEFED AND SUBSONIC RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = [x' xsub']'; y = [y' ysub']'; vx = [vx' vxsub']'; vy = [vy' vysub']'; t = [t' tsub']'; v = [v' vsub']'; gload = [gload gloadsub]; sz = size(x);

58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PERTINENT INFORMATION disp('Fully Deployed Subsonic Chute Pertinent Information'); disp('------'); disp('Number of Subsonic Parachutes: '); disp(subnum); disp('Diameter of Each Subsonic Parachute [m]: '); disp(diamsub); disp('Deployment Time of Subsonic Parachutes [sec]: '); disp(tsub(end)-tsub(1));

% ======% ======% ======STAGE BREAK ======% ======% ======

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RETRO ROCKET DESCENT STAGE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% altcut = 500; % altitude at which chutes are cut and retros fired, in meters if y(end) < altcut altcut = y(end); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % REDEFINE SIM TO STOP AT CHUTE CUT POINT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% n = 1;

59 while n < sz(1,1) if y(n) < altcut stop = n-1; x = x(1:stop); y = y(1:stop); vx = vx(1:stop); vy = vy(1:stop); t = t(1:stop); v = v(1:stop); gload = gload(1:stop); break end n = n + 1; end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Rocket Parameters & Constants %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ge = 9.81; % m/s^2; Isp = 300; % seconds mfreal = msc; % MASS OF THE HAB, kg T = 160000; % Newtons m0 = mfreal*1.2; % kg (a guess) Vd = -v(end); % m/s yalt = y(end); % meters gm = (3/8)*ge; mf = 60000; % dummy argument %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RUN ITERATION TO OBTAIN REQUIRED THRUST FOR A SOFT LANDING % AND TO OBTAIN THE REQUIRED PROPELLANT MASS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

60 while mf > mfreal vnew(1) = 3; % dummy argument while abs(vnew(end)) > 1 % touchdown velocity burntime = 100; % seconds tnew = linspace(0,burntime,1000); a = m0*ge*Isp; b = T.*tnew; ynew = (ge*Isp/T).*(a-b).*(log(a-b)-1) + Vd.*tnew + ge*Isp.*tnew.*log(a) + yalt... - ((m0*(ge^2)*(Isp^2))/T).*(log(a)-1) - (gm/2).*(tnew.^2); counter = 1; while counter < 1000 if ynew(counter) < 0 % remove negative altitudes counterblock = counter -1; break end counter = counter + 1; end ynew = ynew(1:counterblock); tnew = tnew(1:counterblock); velocity = veldiff(tnew',ynew'); vnew = velocity; T = T + 200; end vnew(1) = vnew(2); mdot = T/(ge*Isp); % mass flow during burn

61 mf = m0 - (mdot*tnew(end)) % final mass after touchdown m0 = m0 - 200; % iterative step for initial mass end mprop = m0 - mf; % propellant mass required for landing disp('Required thrust for the burn is [N]: '); disp(T); disp('Required propellant mass for burn is [in kg]: '); disp(mprop); disp('Velocity at touchdown is [m/s]: '); disp(-vnew(end));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Now convert to total histories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% gloadnew = acceldiff(tnew',vnew')/9.81; vnew = -vnew; t = [t' (tnew+t(end))]'; x = [x' x(end)*ones(1,counterblock)]'; y = [y' ynew]'; vx = [vx' zeros(1,counterblock)]'; vy = [vy' vnew]'; v = [v' vnew]'; gload = [gload gloadnew']'; sz = size(t); figure plot(t,y); xlabel('Time [sec]');

62 ylabel('Altitude [meters]'); figure plot(t(1:sz(1,1)-1),v); xlabel('Time [sec]'); ylabel('Velocity [m/s]'); figure plot(t(1:sz(1,1)-3),gload); xlabel('Time [sec]'); ylabel('Gload');

63 veldiff.m

% Jeremy Davis % A&AE 450 Spring 2001 % Code used to numerically differentiate position vectors % in order to obtain velocity histories. function velocity = veldiff(t,y) sz = size(t); i = 2; velocity(1) = 0; while i < sz(1,1) velocity(i) = (y(i) - y(i-1))/(t(i) - t(i-1)); i = i + 1; end velocity(1) = velocity(2); return

64 Appendix 3.1.1 MIDAS Input/Output files Kassadra DeVoto

Input file for Habitat trajectory MIDAS ver 16.07 6/6/96 Jet Propulsion Laboratory California Institue of Technology SUN Fortran 1.4 head = 'Hab Free-Return Trajectory' shota = 'earth' bulsi = 'earth' body = 'mars','venus' jdl = 2014,01,14 alt(1) = 300 dls = 28.5 rcb = 200 altc = 200 jdate = 0.0 ndl = 0 nda = 0 ndb = 2 ndc = 2 tpb = 180 tpc = 420 tend = 800 rn(3) = 1 varyi = 'tpb','tpc','tend' loops = 20, $ $end Input File is: hab.inp Output File is: hab.out

65 Start Time: Mar 4, 2001 18:40:15

66 Output file for Habitat trajectory

Hab Free-Return Trajectory Mar 4, 2001 18:40:15

Heliocentric Ephemeris in AU and Days Earth Ecliptic and Equinox of 2000 Minimum Delta-V

Trajectory 1.03 Search converged in 11 iterations

Minimum Delta-V= 7.6852514 km/s Gradient Norm= .39570114E-08

tend tpb tpc 793.49569 171.70681 426.65102 .15828046E-07 -.53776428E-16 -.21510571E-15

veq 7.6852514 vhl 3.6073138 vhp 3.8073635 dvt 7.6852514 dvmt .0 dvpl 3.9050373 dvl 3.7802141 dvb .0 dvc .0 dva 3.9050373

jdate .0 adate 793.49569 rcb 3849.1464 rcc 7982.9141 ptl .14146698E-01 pta .15828046E-07 prcb .0 prcc 0.

Heliocentric State of Ephemeris Bodies and Body Centered Equatorial Parameters Departure Parameters: Earth (2,0) Jan 14, 2014 0:00:00 2456671.500

Heliocentric Ecliptic of 2000 x -.39278864 y .90173584 z -.27592115E-04 xd -.16053080E-01 yd -.69351901E-02 zd .26704452E-06 radi .98357025 theta 113.53754 phi -.16073196E-02 radot .52622482E-04 vthe .17487008E-01 vphi .26852074E-06

67 sma 1.0000002 ecc .16703205E-01 inc .18323558E-02 lan 174.84247 apf 288.14368 tru 10.551390

Body Centered Ecliptic of 2000 vhxo -3.5818390 vhyo .32688514 vhzo -.27620305 vhro 1.7301025 vhto 3.1532835 vhpo -.27615451

Body Centered Planet Equator and Equinox of Date c3 13.012713 dla -2.0377664 rla 173.65285 vhxo -3.5829349 vhyo .39854426 vhzo -.12826971 phao 118.65991 Arrival Parameters: Earth (2,0) Mar 17, 2016 11:53:47 2457464.996 Heliocentric Ecliptic of 2000 x -.99572910 y .11539972E-01 z .24950384E-05 xd -.47939819E-03 yd -.17267918E-01 zd .55138149E-06 radi .99579597 theta 179.33600 phi .14355870E-03 radot .27925342E-03 vthe .17272314E-01 vphi .55068180E-06 sma 1.0000002 ecc .16703205E-01 inc .18323558E-02 lan 174.84247 apf 288.14368 tru 76.349851

Body Centered Ecliptic of 2000 vhxi -2.2233781 vhyi 3.0903881 vhzi -.45913137E-01 vhri 2.2590422 vhti -3.0644146 vhpi -.45918797E-01

Body Centered Planet Equator and Equinox of Date vhp 3.8073635 dap 18.120008 rap 128.12336 vhxi -2.2339331 vhyi 2.8466499 vhzi 1.1841218

68 phai 53.605968

Gravity Assist Parameters: Mars (2,0) Unpowered Jul 4, 2014 16:57:48 2456843.207 Heliocentric Ecliptic of 2000 x -.73441910 y -1.3338200 z -.99189440E-02 xd .12785969E-01 yd -.55497881E-02 zd -.43015880E-03 radi 1.5226771 theta 241.16223 phi -.37323582 radot -.13026889E-02 vthe .13877203E-01 vphi -.43865402E-03 sma 1.5236915 ecc .93417789E-01 inc 1.8485573 lan 49.517693 apf 286.60403 tru 265.04641

Body Centered Ecliptic of 2000 vhxi -5.1507942 vhyi -4.3115386 vhzi .82793731 vhxo -6.3885040 vhyo -1.9823369 vhzo 1.0309626 vhri 6.2557227 vhti -2.4324492 vhpi .86870644 vhro 4.8110619 vhto -4.6401159 vhpo 1.0623251

Body Centered Planet Equator and Equinox of Date Reference plane for B plane angle is Planet Orbit Plane vhxi 4.7270639 vhyi -4.6608320 vhzi -1.3179676 vhxo 2.5109889 vhyo -6.0160397 vhzo -1.8187159 vhi 6.7679780 vho 6.7679780 bend 22.540577 dvb .0 beta1 175.89979 beta2 358.79943 rca 3849.1464 thec 31.447251 phic 10.911219 inci 162.37681 lani 174.08559 apfi 141.30196 alfa1 .24453882E-01 alfa2 .0 bt -4666.7383 br 485.18639 phai 22.435175 phao 135.30465

69 Gravity Assist Parameters: Venus (2,0) Unpowered Mar 16, 2015 15:37:28 2457098.151 Heliocentric Ecliptic of 2000 x .14695726 y .70523846 z .11838373E-02 xd -.19869192E-01 yd .40261679E-02 zd .12018451E-02 radi .72038817 theta 78.229174 phi .94156057E-01 radot -.10978916E-03 vthe .20272699E-01 vphi .12020272E-02 sma .72333160 ecc .67663667E-02 inc 3.3945649 lan 76.641599 apf 54.930823 tru 306.65954

Body Centered Ecliptic of 2000 vhxi -5.5743248 vhyi 2.0602313 vhzi -2.7700316 vhxo -.75788966 vhyo 6.1785715 vhzo -2.0595102 vhri .87520536 vhti 5.8773867 vhpi -2.7714736 vhro 5.8906446 vhto 2.0023661 vhpo -2.0691933

Body Centered Planet Equator and Equinox of Date Reference plane for B plane angle is Planet Orbit Plane vhxi 1.1596128 vhyi 5.7908390 vhzi 2.8481936 vhxo -4.8725280 vhyo 3.9026017 vhzo 2.0047183 vhi 6.5567313 vho 6.5567313 bend 58.192619 dvc .0 beta1 186.35268 beta2 338.05633 rca 7982.9141 thec 17.381653 phic 7.6009283 inci 26.339710 lani 1.7450584 apfi 17.344568 alfa1 -.25836797 alfa2 .0 bt -13482.372 br -1611.8641 phai 82.329152 phao 153.95008

Heliocentric Trajectory Departure: Earth time: .000 days Jan 14, 2014 0:00:00 2456671.500

70 x0 -.39278864 y0 .90173584 z0 -.27592115E-04 xd0 -.18121765E-01 yd0 -.67463982E-02 zd0 -.15925356E-03 radi .98357025 theta 113.53754 phi -.16073196E-02 radot .10518403E-02 vthe .19308182E-01 vphi -.15922406E-03 sma 1.2991554 ecc .24858019 inc .47247910 lan 293.34263 apf 164.43720 tru 15.757718 elx0 -.31130258 ely0 .28410039E-01 elz0 -.24005188E-01 eldx0 .36078508E- 02 eldy0 -.39867223E-02 eldz0 -.28695990E-03 x -.73441910 y -1.3338200 z -.99189440E-02 xd .98111362E-02 yd -.80399100E-02 zd .48015006E-04 radi 1.5226771 theta 241.16223 phi -.37323582 radot .23102933E-02 vthe .12472346E-01 vphi .63065936E-04 sma 1.2991554 ecc .24858019 inc .47247910 lan 293.34263 apf 164.43720 tru 143.38146 elx -.18610716E-01 ely -.15578339E-01 elz .29914815E-02 eldx .45706866E- 03 eldy -.21111973E-04 eldz .33620640E-03

Gravity Assist: Mars time: 171.707 days Jul 4, 2014 16:57:48 2456843.207 x0 -.73441910 y0 -1.3338200 z0 -.99189440E-02 xd0 .90962990E-02 yd0 -.66946835E-02 zd0 .16527190E-03 radi 1.5226771 theta 241.16223 phi -.37323582 radot .14759319E-02 vthe .11197312E-01 vphi .17489005E-03 sma 1.1333948 ecc .36473009 inc .96953978 lan 263.80166 apf 170.84250 tru 166.51516 elx0 -.23082776E-01 ely0 -.71625279E-02 elz0 .37250471E-02 eldx0 -.45913901E-03 eldy0 -.47222164E-03 eldz0 -.56783803E-02 x .14695726 y .70523846 z .11838373E-02 xd -.23088634E-01 yd .52160511E-02 zd -.39798198E-03 radi .72038817 theta 78.229174 phi .94156057E-01 radot .39568423E-03 vthe .23667174E-01 vphi -.39863276E-03

71 sma 1.1333948 ecc .36473009 inc .96953978 lan 263.80166 apf 170.84250 tru 3.5842208 elx .21965624 ely -.81183407E-01 elz .10915308 eldx .14812513E-03 eldy .53568191E-02 eldz .11537073E-01

Gravity Assist: Venus time: 426.651 days Mar 16, 2015 15:37:28 2457098.151 x0 .14695726 y0 .70523846 z0 .11838373E-02 xd0 -.20306910E-01 yd0 .75945915E-02 zd0 .12378435E-04 radi .72038817 theta 78.229174 phi .94156057E-01 radot .32923428E-02 vthe .21429162E-01 vphi .69680304E-05 sma .84188691 ecc .20834487 inc .95981576E-01 lan 359.42170 apf 23.281097 tru 55.526393 elx0 .29864638E-01 ely0 -.24346658 elz0 .81154992E-01 eldx0 -.93811637E- 02 eldy0 -.43584233E-02 eldz0 .93639986E-03 x -.99572910 y .11539972E-01 z .24950384E-05 xd -.17635065E-02 yd -.15483070E-01 zd -.25965674E-04 radi .99579597 theta 179.33600 phi .14355870E-03 radot .15839595E-02 vthe .15502467E-01 vphi -.25969643E-04 sma .84188691 ecc .20834487 inc .95981576E-01 lan 359.42170 apf 23.281097 tru 156.63321 elx .18825593 ely -.26166664 elz .38875170E-02 eldx -.63300885E-02 eldy -.45809576E-02 eldz -.18028097E-02 Arrival: Earth time: 793.496 days Mar 17, 2016 11:53:47 2457464.996 hca 127.62 197.07 461.11 rn .00 .05 .78 Performance improved with the following impulses n= 3 tm= 533.7 elm= 1.2614 dvm= .0158 xm= -.9625 -.3249 -.0006 dxdv= 20.7548 218.006 -.1788

72 * n= 3 tm= 685.6 elm= 1.6526 dvm= .0081 xm= .5464 .3853 .0007 dxdv=-331.709 267.726 .7501 Solution time= 0.04 sec Cumulative run time= 0.14 sec Step= .100E- 01

73 Input file for ERA Earth-to-Mars trajectory MIDAS ver 16.07 6/6/96 Jet Propulsion Laboratory California Institue of Technology SUN Fortran 1.4

head = 'Earth to Mars ERV Trajectory' shota = 'EARTH' bulsi = 'MARS' jdl = 2012,07,04 ndl = 0 nda = 0 alt(1) = 300 dls = 28.5 dla = 28.5 jdate = -180 adate = 0 varyi = 'jdate','adate' loops = 20, $ $end

Input File is: ex.inp Output File is: ex.out

Start Time: Feb 23, 2001 10:23:25

74 Output file for ERA Earth-to-Mars trajectory

Earth to Mars ERV Trajectory Feb 23, 2001 10:23:25

Heliocentric Ephemeris in AU and Days Earth Ecliptic and Equinox of 2000 Minimum Delta-V

Trajectory 1.03 Search converged in 22 iterations

Minimum Delta-V= 5.7559559 km/s Gradient Norm= .27166312E-08

jdate adate -237.54606 69.281786 -.25966493E-08 -.10551719E-07

veq 5.7559559 vhl 2.9949943 vhp 2.7046237 dvt 5.7559559 dvmt .0 dvpl 2.1527832 dvl 3.6031727 dva 2.1527832

Heliocentric State of Ephemeris Bodies and Body Centered Equatorial Parameters

Departure Parameters: Earth (2,0) Nov 9, 2011 10:53:40 2455874.954 Heliocentric Ecliptic of 2000 x .68156360 y .71882978 z -.22143867E-04 xd -.12764770E-01 yd .11772935E-01 zd -.30142608E-06 radi .99057821 theta 46.524351 phi -.12808177E-02 radot -.23952369E-03 vthe .17363294E-01 vphi -.30678051E-06

75 sma 1.0000002 ecc .16703849E-01 inc .16325710E-02 lan 174.84617 apf 288.13503 tru 303.54315

Body Centered Ecliptic of 2000 vhxo -2.2604185 vhyo 1.7150609 vhzo .95867883 vhro -.31073102 vhto 2.8203520 vhpo .95867188

Body Centered Planet Equator and Equinox of Date c3 8.9699907 dla 31.372100 rla 152.36227 vhxo -2.2653653 vhyo 1.1862046 vhzo 1.5591759 phao 84.044839

Arrival Parameters: Mars (2,0) Sep 11, 2012 6:45:46 2456181.782 Heliocentric Ecliptic of 2000 x -.39028068 y -1.4371495 z -.20529986E-01 xd .14033120E-01 yd -.24658209E-02 zd -.39620091E-03 radi 1.4893418 theta 254.80684 phi -.78982460 radot -.12924961E-02 vthe .14188859E-01 vphi -.41405679E-03 sma 1.5236915 ecc .93416382E-01 inc 1.8486829 lan 49.522218 apf 286.59271 tru 278.70344

Body Centered Ecliptic of 2000 vhxi -2.6489958 vhyi .52385999 vhzi .15290902 vhri .18655730 vhti -2.6936976 vhpi .15549541

Body Centered Planet Equator and Equinox of Date

76 vhp 2.7046237 dap -23.406977 rap 263.18560 vhxi -.29450417 vhyi -2.4645162 vhzi -1.0744378 phai 86.044758

Heliocentric Trajectory

Departure: Earth time: .000 days Nov 9, 2011 10:53:40 2455874.954 x0 .68156360 y0 .71882978 z0 -.22143867E-04 xd0 -.14070271E-01 yd0 .12763465E-01 zd0 .55338193E-03 radi .99057821 theta 46.524351 phi -.12808177E-02 radot -.41898588E-03 vthe .18992184E-01 vphi .55337256E-03 sma 1.2524394 ecc .21018949 inc 1.6689473 lan 46.568310 apf 7.2399656 tru 352.71606 elx0 -.19952618 ely0 .15138770 elz0 .84622174E-01 eldx0 -.34989166E-02 eldy0 -.32845945E-02 eldz0 -.23738229E-02 x -.39028068 y -1.4371495 z -.20529986E-01 xd .12503197E-01 yd -.21632664E-02 zd -.30788856E-03 radi 1.4893418 theta 254.80684 phi -.78982460 radot -.11847502E-02 vthe .12633118E-01 vphi -.32425068E-03 sma 1.2524394 ecc .21018949 inc 1.6689473 lan 46.568310 apf 7.2399656 tru 201.00870 elx .46445841 ely -.91850343E-01 elz -.26810114E-01 eldx .93679844E-03 eldy .41767610E-02 eldz .19196162E-02 Arrival: Mars time: 306.828 days Sep 11, 2012 6:45:46 2456181.782

hca 208.29 rn .08 Solution time= 0.02 sec Cumulative run time= 0.10 sec Step= .100E-01

77 Input file for ERV Mars-to-Earth trajectory

MIDAS ver 16.07 6/6/96

Jet Propulsion Laboratory California Institue of Technology SUN Fortran 1.4

head = 'ERV Return Trajectory' shota = 'MARS' bulsi = 'EARTH' jdl = 2014,07,01 nda = 0 altb = 0 re = 0 jdate = 500 tend = 180 varyi = 'jdate','tend' loops = 20, $ $end

Input File is: ret.inp Output File is: ret.out

Start Time: Feb 20, 2001 15:48:07

78 Output file for ERV Mars-to-Earth trajectory

ERV Return Trajectory Feb 20, 2001 15:48:07 Heliocentric Ephemeris in AU and Days Earth Ecliptic and Equinox of 2000 Minimum Delta-V Trajectory 1.01 Search converged in 27 iterations Minimum Delta-V= 6.1208630 km/s Gradient Norm= .34849266E-08 jdate tend 543.37845 230.53496 -.42856265E-08 -.13264570E-07

veq 6.1208630 vhl 2.6045870 vhp 4.2207553 dvt 6.1208630 dvmt .0 dvpl 4.0447129 dvl 2.0761501 dva 4.0447129

adate 773.91341 pta -.13264570E-07

Heliocentric State of Ephemeris Bodies and Body Centered Equatorial Parameters Departure Parameters: Mars (2,0) Dec 26, 2015 9:04:58 2457382.878

Heliocentric Ecliptic of 2000 x -1.6415441 y .24136007 z .45352722E-01 xd -.15129100E-02 yd -.12649611E-01 zd -.22791273E-03 radi 1.6598129 theta 171.63560 phi 1.5657446 radot -.34940016E-03 vthe .12735137E-01 vphi -.21844729E-03 sma 1.5236915 ecc .93418211E-01 inc 1.8485195 lan 49.516334 apf 286.60743 tru 195.49841

79 Body Centered Ecliptic of 2000 vhxo 1.4676982 vhyo 1.7501951 vhzo 1.2516200 vhro -1.1628418 vhto -1.9450818 vhpo 1.2838729

Body Centered Planet Equator and Equinox of Date c3 6.7838737 dla 40.027907 rla 161.77694 vhxo -1.8943865 vhyo .62368748 vhzo 1.6751679 phao 63.483265

Arrival Parameters: Earth (2,0) Aug 12, 2016 21:55:18 2457613.413 Heliocentric Ecliptic of 2000 x .78037191 y -.64616400 z .18937944E-04 xd .10692432E-01 yd .13186836E-01 zd -.46553173E-06 radi 1.0131674 theta 320.37454 phi .10709624E-02 radot -.17448754E-03 vthe .16976169E-01 vphi -.46227024E-06 sma 1.0000002 ecc .16703012E-01 inc .18923977E-02 lan 174.84136 apf 288.14628 tru 217.38690

Body Centered Ecliptic of 2000 vhxi 1.0752808 vhyi 3.6945937 vhzi -1.7345096 vhri -1.5281061 vhti 3.5314646 vhpi -1.7344810

Body Centered Planet Equator and Equinox of Date vhp 4.2207553 dap -1.6296341 rap 75.444500 vhxi 1.0603215 vhyi 4.0836363 vhzi -.12003257 phai 111.22588

80 Heliocentric Trajectory Departure: Mars time: .000 days Dec 26, 2015 9:04:58 2457382.878 x0 -1.6415441 y0 .24136007 z0 .45352722E-01 xd0 -.66524339E-03 yd0 -.11638789E-01 zd0 .49495832E-03 radi 1.6598129 theta 171.63560 phi 1.5657446 radot -.10209975E-02 vthe .11611758E-01 vphi .52305134E-03 sma 1.3425413 ecc .25115112 inc 3.0169324 lan 140.39486 apf 195.90620 tru 195.36978 elx0 .26648441 ely0 .31777631 elz0 .22725192 eldx0 -.37317257E-02 eldy0 -.97760936E-03 eldz0 .57429932E-02 x .78037191 y -.64616400 z .18937944E-04 xd .11313459E-01 yd .15320642E-01 zd -.10022286E-02 radi 1.0131674 theta 320.37454 phi .10709624E-02 radot -.10570427E-02 vthe .19015760E-01 vphi -.10022089E-02 sma 1.3425413 ecc .25115112 inc 3.0169324 lan 140.39486 apf 195.90620 tru 344.07345 elx -.89981079E-01 ely -.30916903 elz .14514631 eldx .23411785E-02 eldy -.51471190E-02 eldz -.95122426E-02 Arrival: Earth time: 230.535 days Aug 12, 2016 21:55:18 2457613.413 hca 148.70 rn .00

Solution time= 0.03 sec Cumulative run time= 0.03 sec Step= .100E-01

81 Appendix 3.1.2 MATLAB files used for trajectory calculations

Habitat Trajectory determination and display clear all; close all;

AU = 1.495978e8;

% All orbital information is taken from MIDAS files

% Venus orbit information av = .72333160*AU; ev = .67663667E-02; iv = 3.3945649*pi/180; lanv = 76.641599*pi/180; aphv = 54.930823*pi/180; thsv1 = 343.50998*pi/180; thsv2 = (175.07957+1080)*pi/180; thsv = linspace(thsv1,thsv2, 793);

% Calculate Venus orbit wrt solar ecliptic pv = av*(1-ev^2); thv = thsv+aphv; rv = pv./(1+ev.*cos(thsv)); xvf = rv.*cos(thv); yvf = rv.*sin(thv); yvi = yvf*cos(iv); rvf = sqrt(xvf.^2+yvi.^2); xv = rvf.*cos(thv+lanv); yv = rvf.*sin(thv+lanv); zv = sqrt(rv.^2-xv.^2-yv.^2).*sign(pi-mod(thv,2*pi));

82 % Earth orbit earthorb

% Mars Orbit marsorb

% Habitat Trajectory - Earth to Mars a1 = 1.2991554*AU; e1 = .24858019; i1 = .47247910*pi/180; lan1 = 293.34263*pi/180; aph1 = 164.43720*pi/180; ths11 = 15.757718*pi/180; ths12 = 143.38146*pi/180; ths1 = linspace(ths11, ths12, 172); p1 = a1*(1-e1^2); th1 = ths1+aph1; r1 = p1./(1+e1.*cos(ths1)); x1f = r1.*cos(th1); y1f = r1.*sin(th1); y1i = y1f*cos(i1); r1f = sqrt(x1f.^2+y1i.^2); x1 = r1f.*cos(th1+lan1); y1 = r1f.*sin(th1+lan1); z1 = sqrt(r1.^2-x1.^2-y1.^2).*sign(pi-mod(th1,2*pi));

% Habitat Trajectory - Mars to Venus a2 = 1.1333948*AU; e2 = .36473009; i2 = .96953978*pi/180;

83 lan2 = 263.80166*pi/180; aph2 = 170.84250*pi/180; ths21 = 166.51516*pi/180; ths22 = (3.5842208+360)*pi/180; ths2 = linspace(ths21, ths22, 255); p2 = a2*(1-e2^2); th2 = ths2+aph2; r2 = p2./(1+e2.*cos(ths2)); x2f = r2.*cos(th2); y2f = r2.*sin(th2); y2i = y2f*cos(i2); r2f = sqrt(x2f.^2+y2i.^2); x2 = r2f.*cos(th2+lan2); y2 = r2f.*sin(th2+lan2); z2 = sqrt(r2.^2-x2.^2-y2.^2).*sign(pi-mod(th2,2*pi));

% Habitat Trajectory - Venus to Earth a3 = .84188691*AU; e3 = .20834487; i3 = .95981576E-01*pi/180; lan3 = 359.42170*pi/180; aph3 = 23.281097*pi/180; ths31 = 55.526393*pi/180; ths32 = (156.63321+360)*pi/180; ths3 = linspace(ths31, ths32, 366); p3 = a3*(1-e3^2); th3 = ths3+aph3; r3 = p3./(1+e3.*cos(ths3)); x3f = r3.*cos(th3);

84 y3f = r3.*sin(th3); y3i = y3f*cos(i3); r3f = sqrt(x3f.^2+y3i.^2); x3 = r3f.*cos(th3+lan3); y3 = r3f.*sin(th3+lan3); z3 = sqrt(r3.^2-x3.^2-y3.^2).*sign(pi-mod(th3,2*pi));

% Display trajectory in b&w x = [x1 x2 x3]; y = [y1 y2 y3]; z = [z1 z2 z3]; px = []; py = []; pz = []; for i = [1:length(x)] if (mod(i,5) == 1) px = [px x(i)]; py = [py y(i)]; pz = [pz z(i)]; end end plot3(px/AU,py/AU,pz/AU,'k:'); hold plot3(x1(1)/AU,y1(1)/AU,z1(1)/AU,'ko'); plot3(x2(1)/AU,y2(1)/AU,z2(1)/AU,'ko'); plot3(x3(1)/AU,y3(1)/AU,z3(1)/AU,'ko'); plot3(x3(end)/AU,y3(end)/AU,z3(end)/AU,'ko'); plot3(xv/AU,yv/AU,zv/AU,'k'); plot3(xm/AU,ym/AU,zm/AU,'k'); plot3(xe/AU,ye/AU,ze/AU,'k');

85 ERA Trajectory Earth to Mars clear all; close all;

AU = 1.495978e8;

% All orbital information taken from MIDAS files % Earth orbit ae = 1.0000002*AU; ee = .016704123; ie = .0015476714*pi/180; lane = 174.84774*pi/180; aphe = 288.13136*pi/180; thse1 = 303.54483*pi/180; thse2 = (245.78624 + 360)*pi/180; thse = linspace(thse1,thse2, 307); pe = ae*(1-ee^2); the = thse+aphe; re = pe./(1+ee.*cos(thse)); xef = re.*cos(the); yef = re.*sin(the); yei = yef*cos(ie); ref = sqrt(xef.^2+yei.^2); xe = ref.*cos(the+lane); ye = ref.*sin(the+lane); ze = sqrt(re.^2-xe.^2-ye.^2).*sign(pi-mod(the,2*pi));

% Mars Orbit am = 1.5236915*AU; em = .93415785E-01; im = 1.8487363*pi/180;

86 lanm = 49.524141*pi/180; aphm = 286.58789*pi/180; thsm1 = 136.17361*pi/180; thsm2 = 278.70649*pi/180; thsm = linspace(thsm1,thsm2, 307); pm = am*(1-em^2); thm = thsm+aphm; rm = pm./(1+em.*cos(thsm)); xmf = rm.*cos(thm); ymf = rm.*sin(thm); ymi = ymf*cos(im); rmf = sqrt(xmf.^2+ymi.^2); xm = rmf.*cos(thm+lanm); ym = rmf.*sin(thm+lanm); zm = sqrt(rm.^2-xm.^2-ym.^2).*sign(pi-mod(thm,2*pi));

% Trajectory information a = 1.2524394*AU; e = .21018949; i = 1.6689473*pi/180; lan = 46.568310*pi/180; aph = 7.2399656*pi/180; ths1 = 352.71606*pi/180; ths2 = (201.00870 + 360)*pi/180; ths = linspace(ths1, ths2, 307); p = a*(1-e^2); th = ths+aph; r = p./(1+e.*cos(ths)); xf = r.*cos(th);

87 yf = r.*sin(th); yi = yf*cos(i); rf = sqrt(xf.^2+yi.^2); x = rf.*cos(th+lan); y = rf.*sin(th+lan); z = sqrt(r.^2-x.^2-y.^2).*sign(pi-mod(th,2*pi));

% Display Trajectory in b&w px = []; py = []; pz = []; for i = [1:length(x)] if (mod(i,5) == 1) px = [px x(i)]; py = [py y(i)]; pz = [pz z(i)]; end end plot3(xe/AU,ye/AU,ze/AU,'k'); hold plot3(xm/AU,ym/AU,zm/AU,'k'); plot3(px/AU,py/AU,pz/AU,'k:'); plot3(x(1)/AU,y(1)/AU,z(1)/AU,'ko'); plot3(x(end)/AU,y(end)/AU,z(end)/AU,'ko'); plot3(0,0,0,'k.',0,0,0,'ko');

88 ERV Trajectory Mars to Earth clear all; close all;

AU = 1.495978e8;

% All orbital information taken form MIDAS files % Earth orbit ae = 1.0000002*AU; ee = .016702386; ie = .0020865941*pi/180; lane = 174.83777*pi/180; aphe = 288.15468*pi/180; thse1 = 351.04569*pi/180; thse2 = (217.38320 + 360)*pi/180; thse = linspace(thse1,thse2, 230); pe = ae*(1-ee^2); the = thse+aphe; re = pe./(1+ee.*cos(thse)); xef = re.*cos(the); yef = re.*sin(the); yei = yef*cos(ie); ref = sqrt(xef.^2+yei.^2); xe = ref.*cos(the+lane); ye = ref.*sin(the+lane); ze = sqrt(re.^2-xe.^2-ye.^2).*sign(pi-mod(the,2*pi));

% Mars Orbit am = 1.5236915*AU; em = .93419578E-01; im = 1.8483974*pi/180;

89 lanm = 49.511935*pi/180; aphm = 286.61844*pi/180; thsm1 = 195.49286*pi/180; thsm2 = 311.74200*pi/180; thsm = linspace(thsm1,thsm2, 230); pm = am*(1-em^2); thm = thsm+aphm; rm = pm./(1+em.*cos(thsm)); xmf = rm.*cos(thm); ymf = rm.*sin(thm); ymi = ymf*cos(im); rmf = sqrt(xmf.^2+ymi.^2); xm = rmf.*cos(thm+lanm); ym = rmf.*sin(thm+lanm); zm = sqrt(rm.^2-xm.^2-ym.^2).*sign(pi-mod(thm,2*pi));

% Trajectory information a = 1.3425413*AU; e = .25115112; i = 3.0169324*pi/180; lan = 140.39486*pi/180; aph = 195.90620*pi/180; ths1 = 195.36978*pi/180; ths2 = 344.07345*pi/180; ths = linspace(ths1, ths2, 230); p = a*(1-e^2); th = ths+aph; r = p./(1+e.*cos(ths)); xf = r.*cos(th);

90 yf = r.*sin(th); yi = yf*cos(i); rf = sqrt(xf.^2+yi.^2); x = rf.*cos(th+lan); y = rf.*sin(th+lan); z = sqrt(r.^2-x.^2-y.^2).*sign(pi-mod(th,2*pi));

% Display trajectory in b&w px = []; py = []; pz = []; for i = [1:length(x)] if (mod(i,5) == 1) px = [px x(i)]; py = [py y(i)]; pz = [pz z(i)]; end end plot3(xe/AU,ye/AU,ze/AU,'k'); hold plot3(xm/AU,ym/AU,zm/AU,'k'); plot3(px/AU,py/AU,pz/AU,'k:'); plot3(x(1)/AU,y(1)/AU,z(1)/AU,'ko'); plot3(x(end)/AU,y(end)/AU,z(end)/AU,'ko'); plot3(0,0,0,'k.',0,0,0,'ko');

91 earthorb.m % determine Earth orbit for entire mission span

AU = 1.495978e8;

% earth orbital constants ae = 1.0000002*AU; ee = .016704483; ie = .0014359985*pi/180; lane = 174.84981*pi/180; aphe = 288.12652*pi/180; thse1 = 357.07811*pi/180; thse2 = (357.54476 + 6*360)*pi/180; thse = linspace(thse1,thse2, 2192); pe = ae*(1-ee^2); the = thse+aphe; re = pe./(1+ee.*cos(thse)); xef = re.*cos(the); yef = re.*sin(the); yei = yef*cos(ie); ref = sqrt(xef.^2+yei.^2); xe = ref.*cos(the+lane); ye = ref.*sin(the+lane); ze = sqrt(re.^2-xe.^2-ye.^2).*sign(pi-mod(the,2*pi));

92 marsorb.m % determine Mars orbit for entire mission span

AU = 1.495978e8;

% Mars orbital constants am = 1.5236915*AU; em = .093414999; im = 1.8488065*pi/180; lanm = 49.526670*pi/180; aphm = 286.58157*pi/180; thsm1 = 317.81442*pi/180; thsm2 = (39.820555 + 4*360)*pi/180; thsm = linspace(thsm1,thsm2, 2192); pm = am*(1-em^2); thm = thsm+aphm; rm = pm./(1+em.*cos(thsm)); xmf = rm.*cos(thm); ymf = rm.*sin(thm); ymi = ymf*cos(im); rmf = sqrt(xmf.^2+ymi.^2); xm = rmf.*cos(thm+lanm); ym = rmf.*sin(thm+lanm); zm = sqrt(rm.^2-xm.^2-ym.^2).*sign(pi-mod(thm,2*pi));

93 Calculate impact of cutting tether on approach trajectory at Mars

AU = 1.495978e8; mum = 42809.6920936; rm = 3393.15984; mue = 398600; re = 6378.14; vinf = 6.767978; rcut = rm + 600000; rp = rm + 3849.1464; vp = sqrt(vinf^2 + 2*mum/rp); h = rp*vp; a1 = -mum/(vp^2-2*mum/rp); e1 = 1 - rp/a1; p1 = h^2/mum; vcut = sqrt(vinf^2 + 2*mum/rcut); gcut = acos(h/(rcut*vcut)); thcut = acos((p1/rcut - 1)/e1); vr1 = vcut*(-sin(gcut)); vv1 = vcut*cos(gcut); dv = .04325; vr2 = vr1 + dv*(-cos(gcut)); vv2 = vv1 + dv*(-sin(gcut)); vcut2 = sqrt(vv2^2 + vr2^2); gcut2 = acos(vv2/vcut2); h2 = rcut*vcut2*cos(gcut2); p2 = h2^2/mum; a2 = -mum/(vcut2^2-2*mum/rcut);

94 e2 = sqrt(1- p2/a2); rp2 = a2*(1-e2); alt2 = rp2 - rm; vinf2 = sqrt(vcut2^2-2*mum/rcut); ren = rm+100; ven = sqrt(vinf^2+2*mum/ren); gen = acos(h2/(ren*ven)); gend = gen*180/pi;

95 Appendix 3.2 Tether System Anne DeLion

%%%%%% % % Anne DeLion % AAE 450 % 21 February 2001 % % This code calculates several things for the CDR % %%%%%% clear all clf

%%%%%%%%%%%%%%%%%%%%%% % % % Constants % % % %%%%%%%%%%%%%%%%%%%%%% % Spectra 2000 material properties sigm = 3.51e9; % Max tensile strength (Pa) E = 170e9; % Young's Modulus of elasticity (Pa) dens = 970; % Density (kg/m^3) sf = 5; % Factor of Safety sig = sigm/sf; % Max tensile strength after accounting for safety factor (Pa)

% Rotation constants rpm = 2; % Rotation rate to create g forces wzf = rpm*(2*pi/60); % Final angular rate (rad/s)

% Hab/NTR Properties

96 Mh = 72000; % Hab mass (kg) Lh = 26; % Hab length (m) [including HeatShield] Dh = 12; % Hab diameter (m) [including HeatSheild] rh = 85; % Hab distance to cm (m) Ixh1 = (Mh/12)*((3*(Dh/2)^2)+(4*Lh^2)); Iyh1 = 2.721e5; % MOI from D. Klein Izh1 = Ixh1; Ixh2 = 2.1645e9; Iyh2 = Iyh1; Izh2 = Ixh2;

Mn = 32989; % NTR mass (kg) Ln = 17.5; % NTR length (m) Dn = 8.3; % NTR diameter (m) rn = (Mh/Mn)*rh; % NTR distance to cm (m) Ixn = 0; Iyn = 0; Izn = 0;

% ERV/Spent Stage Properties Me = 30930; % ERV mass (kg) Le = 10.1; % ERV length (m) De = 10.5; % ERV diameter (m) re = 223; % ERV distance to cm (m) Ixe1 = (Mh/12)*((3*(Dh/2)^2)+(4*Lh^2)); Iye1 = 3.36e5; % MOI from D. Klein Ize1 = Ixe1; Ixe2 = 5.467e9; % " Iye2 = Iye1; Ize2 = Ixe2;

97 Ms = 10000; % Spent stage mass (kg) Ls = 18; % Spent stage length (m) Ds = 10; % Spent stage diameter (m) rs = (Me/Ms)*re; % Spent stage to cm (m) Ixs = 0; Iys = 0; Izs = 0;

% Tension created by centripetal acceleration Th = Mh*rh*(wzf^2); % Tension on Hab tether (N) Te = Me*re*(wzf^2); % Tension on ERV tether (N)

% Tether Structure Lht = rh+rn; % Total hab tether length (m) Rht = sqrt(Th/(pi*sig)); % Hab tether radius (m) Ah = (pi*Rht^2); mht = dens*Ah*Lht; % Hab tether mass (kg) sh = (Th*Lht)/(Ah*E); % Hab tether stretch (m) kh = (Ah*E)/Lht; % Hab tether stiffness

Let = re+rs; % Total ERV tether length (m) Ret = sqrt(Te/(pi*sig)); % ERV tether radius (m) Ae = (pi*Ret^2); met = dens*Ae*Let; % ERV tether mass (kg) se = (Te*Let)/(Ae*E); % ERV tether stretch (m) ke = (Ae*E)/Let; % ERV tether stiffness %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Add Power Cables to Hab Tether % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

98 mcab = 350; % Power cable mass (kg) %wcab = 2210; % kg/km %lcab = Lht*1.1; % Cable length (Hab tether lenght + 10%) %num = 3; % Number of cables %dcab = .02; % Cable Diameter (m) %dtot = ((num*dcab)+(2*Rht))*1.21; % Diameter of 3 Cables plus Tether * 20% %mtot = (3*wcab*(lcab/1000))+mht; % Total mass of cables/tether (kg) %voltot = (pi*(dtot/2)^2)*lcab; % Total Volume cable/tether (m^3)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Tether Mass Versus g Level % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% per = .38:.01:1.1; % g Force levels g = 9.81; % 1 g acceleration (m/s^2) acc = per.*g; % Acceleration at various g levels (m/s^2)

% Vary omega, keep r the same omega = sqrt(acc./re); T1 = Me.*re.*omega.^2; mass1 = dens.*(T1./sig).*Let;

% Vary dist from ERV to cm, omega is constant dcm = acc./wzf^2; L2 = dcm+((Me/Ms).*dcm); T2 = Me.*dcm.*wzf^2; mass2 = dens.*(T2./sig).*L2;

% Plot the tether mass versus g level for both cases. %figure(1)

99 %plot(per,mass1) %hold on %plot(per,mass2,'r') %title('Tether Mass vs. g Force Level') %xlabel('g Forces') %ylabel('Tether Mass (kg)') %figure(2) %plot(per,omega*60/(2*pi)) %figure(3) %plot(per,dcm) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Tether Volume on Reel % % Based on 2rpm spin for both vehicles, % % rh = 85m & re = 223m % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Hab tether volume vol_ht = Ah*Lht; % Total tether volume (m^3) drh = .5; % Reel radius (m) dlh = 3; % Reel length (m) vol_hr = (pi.*drh.^2).*dlh; % Reel volume (m^3) Thtvol = vol_ht+vol_hr; % Total volume (m^3) diah = 2.*sqrt(Thtvol./(pi.*dlh)); % Diameter of tether/reel (m) %ctrtot = voltot+vol_hr; % Total volume reel/tether/cables (m)

% ERV tether volume vol_et = Ae*Let; % Total tether volume (m^3) dre = .5; % Reel radius (m) dle = 3; % Reel length (m)

100 vol_er = (pi*dre^2)*dle; % Reel volume (m^3) Tetvol = vol_et+vol_er; % Total volume (m^3) diae = 2*sqrt(Tetvol/(pi*dle)); % Diameter of tether/reel (m)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Spin-up Delta-V *HAB* % % % % This method assumes a three step spin-up % % 1. Thrust connected Hab/NTR up to initial spin rate % % 2. Stop thrust, release vehicles, and ang. mom. slows down % % 3. Tether is deployed; small ang vel still in system, % % thrust to 2rpm % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initial Spin - Connected vehicles % Keep 20 N of tension on tether to keep it taut wzh2 = sqrt(20/(Mh*rh)); % (rad/s)Spin rate after deployment (before 2rpm spin) Fh1 = 400; % (N) Force generated by the thrusters xh1 = 20; % (m) Offset of thrust from cm (connexion btwn vehicles) wzh0 = (Izh2*wzh2)/Izh1; % (rad/s)Initial spin rate needed (of connected vehicles) gload_hab = (xh1*wzh0^2)/9.81; burn_time_hab1 = wzh0*(Izh1/(Fh1*xh1)); % (s) Burn time to generate om1 omhb = 0; counter = 0; for time1 = 165:165:2*165; counter = counter + 1; omha = omhb; burnt1(counter) = time1; % Increasing burn time (s) omh1(counter) = ((Fh1*xh1)/Izh1)*burnt1(counter) + omha;

101 omhb = omh1(counter); end

% Spin-up to artificial grav (2rpm) xh2 = xh1+rh; % Moment arm (m) - from cm to thruster burn_time_hab2 = (wzf-wzh2)*(Izh2/(Fh1*xh2)); omhb = wzh2; counter = 0; for time2 = 200:200:10*200; counter = counter + 1; omha = omhb; burnt2(counter) = time2; % Increasing burn time (s) omh2(counter) = ((Fh1*xh2)/Izh2)*burnt2(counter) + omha; omhb = omh2(counter); end figure(1) plot(burnt2,omh2,'o-')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Spin-up Delta-V *ERV* % % % % Using same method as the HAB % % only spin-up from .38 to 1g is incremental % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initial Spin-up - connected vehicles wze2 = sqrt(60/(Me*re)); % (rad/s) Spin rate after deploy (before grav spin-up)

102 Fe1 = 315; % Thrust (N) xe1 = 5; % Offset of thrust from cm (at connexion) wze0 = (Ize2*wze2)/Ize1; % Initial spin rate gload_erv = (xe1*wze0^2)/9.81; % Max g load generated burn_time_erv1 = wze0*(Ize1/(Fe1*xe1)); omeb = 0; counter = 0; for timee1 = 187:187:10*187; counter = counter + 1; omea = omeb; burnte1(counter) = timee1; % Increasing burn time (s) ome1(counter) = ((Fe1*xe1)/Ize1)*burnte1(counter) + omea; omeb = ome1(counter); end figure(2) plot(burnte1,ome1,'*-')

% Spin-up to artificial grav over 1 month % 1. Spin up to .38g % 2. Add .02g additional each day (31 days to complete) to achieve 1g

% Spin up to .38g xe2 = re+xe1; % Moment Arm (m) wza(1) = sqrt((.38*9.81)/re); % Ang vel for .38g on deployed tether (rad/s) grav_burntime1 = (wza(1)-wze2)*(Ize2/(Fe1*xe2)); % Burn time to generate .38g (s)

% Incremental burn scheme omeb = wze2; counter = 0; for timee2 = 175:175:10*175;

103 counter = counter + 1; omea = omeb; burnte2(counter) = timee2; % Increasing burn time (s) ome2(counter) = ((Fe1*xe2)/Ize2)*burnte2(counter) + omea; omeb = ome2(counter); end

% Additional burns to create 1g add(1) = .38; for i = 1:31 add(i+1) = add(i)+.02; wza(i+1) = sqrt((add(i+1)*9.81)/re); wz_add(i) = wza(i+1)-wza(i);% Addtional ang vel needed to add .02g (rad/s) grav_burn_31(i) = (wz_add(i))*(Ize2/(Fe1*xe2)); % Burn time (s) for each incremental burn end figure(3) plot(burnte2,ome2,'+-')

%figure(2) %plot(add,wza) %figure(3) %plot(linspace(0,31,32),add) %figure(4) %plot(grav_burn_31,wza(:,2:32)) %figure(5) %plot(add(:,2:32),grav_burn_31) %figure(6) %plot(grav_burn_31,wz_add)

104 Appendix 3.3.1 Inertial Property Determination Debbie Klein

Derivations

Amount of propellant used for out-of-plane maneuvers

where H0 = initial angular momentum H

 Hf = final angular momentum H H f 0 H = change in angular momentum

 = change in out-of-plane angle

H H M * t r * Isp * mdot * t r * Isp * m      m  m H 0 I z z I z z I z z I z z where M = moment arm t = change in time r = distance to moment arm mdot = mass flow rate

Ispm = mass based specific impulse

Ispw = weight based specific impulse

Solving for m,  * I  m  z z r * Ispw * g

105 Distance to center of mass

(mi*di) = mtot*dcm

m1*0 + m2*L = (m1 + m2)*dcm

dcm = m2L / (m1 + m2)

Spin rate Using the acceleration of gravity and definition of centripetal acceleration,

2 2 ac = 0.38*g = ac = (v /r) = (v /dcm)

2 2 2  = v/r = v/dcm   = (v /dcm )

2 2 2 2 0.38*g = v /dcm = (v /dcm )*dcm =  *dcm

0.38* g   d cm

Equations

to Mars:

2 2 2 2 Ixx = (mpyr / 20)*[a1 +b1 ]+mpyr*[d1 +d2 ]

2 2 2 2 +(mprs / 12)*[b2 +c2 ]+mprs*(0.5*d2 )+0.5*mNTR*rNTR

2 2 2 2 2 Iyy = mHab*d3 +mNTR*d4 +mt*d5 +(mpyr / 20)*[b1 +2*h1 ]

2 2 2 2 +mpyr*d2 +(mprs / 12)*[a2 +b2 ]+mprs*(0.5*d2 )

2 2 2 +(mNTR / 12)*[3*rNTR +4*LNTR ]+(mt / 12)*(4*Lt )

Izz = Iyy

return trip to Earth:

2 2 Ixx = .5*(mERV*rERV +mstg*rstg )

2 2 2 Iyy = mERV*d1 +mstg*d2 +mt*d3 +

106 2 2 [mERV / 12]*(3*rERV +4*LERV )+

2 2 2 [mstg / 12]*(3*rstg +4*Lstg )+(mt / 12)*(4*Lt )

Izz = Iyy

107 Appendix 3.3.2 MATLAB codes

Tether length calculation g = 9.81; %m/s^2 m1 = input('Please enter the mass of the Hab or ERV (in metric tons): '); m1 = m1*1000; m2 = input('Please enter the mass of the NTR or spent stage (in metric tons): '); m2 = m2*1000; w = input('Please enter the spin rate (in rpm): '); w = w*2*pi/60; %rad/sec f = input('Please enter the gravitational acceleration (in #g): '); dcm = f*g/(w^2) %meters length = (m1+m2)*dcm/m2 %meters

108 MOIs on way to Mars clear all %Habitation parameters %pyramid mpyr = 23.44; a1 = 9.8; b1 = 15.4; h1 = 15; Vpyr = (a1*b1*h1)/3; d1 = h1/4; %meters (distance from cm pyramid to base of pyramid) %rectangular prism mprs = 51.56; a2 = 11; b2 = 9.8; c2 = 15.4; Vprs = a2*b2*c2; d2 = a2; mh = 75; %metric tons (mass) d3 = 85; %meters (distance from Hab cm to system cm)

%NTR parameters mN = 33; mN = mN*1000; %(kg) rN = 4; LN = 24; d4 = 255;

%Tether parameters mT = 255; %kg LT = 340; d5 = LT/2-d3;

109 %For the system Ixx = (mpyr/20)*(a1^2+b1^2)+mpyr*(d1^2+d2^2)+ (mprs/12)*(b2^2+c2^2)+mprs*(.5*d2^2)+.5*mN*rN^2 %kg*m^2 Iyy = mh*d3^2+mN*d4^2+mT*d5^2+(mpyr/20)*(b1^2+2*h1^2)+mpyr*d2^2+ (mprs/12)*(a2^2+b2^2)+ ... mprs*(.5*d2^2)+(mN/12)*(3*rN^2+4*LN^2)+(mT/12)*(4*LT^2) Izz = Iyy

110 MOIs on way back to Earth %ERV parameters mERV = 30; %metric tons (mass) mERV = mERV*1000; %(convert to kg) rERV = 8/2; %meters (radius) LERV = 6; %meters (length) d1 = 223.4; %meters (distance from Hab cm to system cm) %2nd Stage parameters mstage = 12; mstage = mstage*1000; %(kg) rstage = 8/2; Lstage = 10; d2 = 558.5;

%Tether parameters mT = 975; %kg LT = d1+d2; d3 = LT/2-d1;

%For the system Ixx = .5*(mERV*rERV^2+mstage*rstage^2) %kg*m^2 Iyy = mERV*d1^2+mstage*d2^2+mT*d3^2+(mERV/12)*(3*rERV^2+4*LERV^2)+ (mstage/12)*(3*rstage^2+4*Lstage^2)+(mT/12)*(4*LT^2) Izz = Iyy

%Mass changes clear all g=9.81; Iz=input('Please enter the moment of inertia about z(kg*m^2): '); wz=input('Please enter the angular rotation rate (rad/sec): '); Isp = input('Please enter the Isp (sec): ');

111 r = input('Please enter the distance from the cm to Hab or ERV (m): '); %delphi=input('Please enter the angle of change(deg): '); %delphi=delphi*pi/180; delphi=linspace(0,pi); delm=delphi*Iz*wz/(r*Isp*g); delphi=delphi*180/pi; plot(delphi,delm,'*') axis([0 max(delphi) 0 max(delm)]) grid on xlabel('rotation of ang mom (deg)') ylabel('propellant used (kg)') %Tether dynamics clear all %p1 = position of s/c #1 %p2 = position of s/c #2 %v1 = velocity of s/c #1 %v2 = velocity of s/c $2 %f1 = forces on s/c #1 %f2 = forces on s/c #2 g = 9.81; %m/s^2 m1 = 1000; %kg m2 = 1000; %kg L = 100; %m - length of tether gload = 1; % # gs cm = L*m2/(m1+m2);%m - distance from cm to s/c #1 k = (L-cm)/cm; dt = .01; i = 1;

112 T = 100; %N

%Initial conditions theta(1) = 0; beta(1) = 0; w(1) = sqrt(gload*g/cm); v1x(1) = 0; v1y(1) = 0; v1z(1) = sqrt(gload*g*cm); v2x(1) = 0; v2y(1) = 0; v2z(1) = -w(1)*(L-cm); t(1) = 0; thresh1 = 80*pi/180; thresh2 = 100*pi/180; while t(i) <= 50 x1(i) = cm*cos(theta(i))*sin(beta(i)); y1(i) = -cm*cos(theta(i))*cos(beta(i)); z1(i) = cm*sin(theta(i)); x1hat(i) = -x1(i)/cm; y1hat(i) = -y1(i)/cm; z1hat(i) = -z1(i)/cm; v1mag = sqrt(v1x(i)^2 + v1y(i)^2 + v1z(i)^2); fcent1 = m1*v1mag^2/cm; fcent1x(i) = fcent1*x1hat(i); fcent1y(i) = fcent1*y1hat(i); fcent1z(i) = fcent1*z1hat(i); if theta(i) > thresh1 & theta(i) < thresh2 thrustx(i) = T*cos(theta(i));

113 thrusty(i) = T*sin(theta(i)); else thrustx(i) = 0; thrusty(i) = 0; end thrustz(i) = 0; f1x(i) = fcent1x(i) + thrustx(i); f1y(i) = fcent1y(i) + thrusty(i); f1z(i) = fcent1z(i) + thrustz(i); a1x(i) = f1x(i)/m1; a1y(i) = f1y(i)/m1; a1z(i) = f1z(i)/m1; i = i+1; t(i) = t(i-1) + dt; fprintf('t = %.2f\n',t(i)) v1x(i) = v1x(i-1) + a1x(i-1)*dt; v1y(i) = v1y(i-1) + a1y(i-1)*dt; v1z(i) = v1z(i-1) + a1z(i-1)*dt; x1(i) = x1(i-1) + v1x(i-1)*dt + .5*a1x(i-1)*dt^2; y1(i) = y1(i-1) + v1y(i-1)*dt + .5*a1y(i-1)*dt^2; z1(i) = z1(i-1) + v1z(i-1)*dt + .5*a1z(i-1)*dt^2; if z1(i) > cm z1(i) = cm; elseif z1(i) < -cm z1(i) = -cm; end if y1(i) > cm y1(i) = cm; elseif y1(i) < -cm y1(i) = -cm;

114 end theta(i) = asin(z1(i)/cm); if y1(i) > 0 theta(i) = pi-theta(i); elseif z1(i) < 0 & y1(i) > 0 theta(i) = -theta(i); end beta(i) = 0; end len = length(x1hat); t = t(1:len); v1x = v1x(1:len); v1y = v1y(1:len); v1z = v1z(1:len); x1 = x1(1:len); y1 = y1(1:len); z1 = z1(1:len); theta = theta(1:len);

115 Tether maneuver eoms en route to Mars function xdot = aae450tether2eom(t,x,flag,Ix,Iy,Iz,Mx,My,Mzi) %Equations of motion if sin(x(5)) > sin(60*pi/180) Mz = Mzi; % fprintf('%.2f\n',Mz) else Mz = 0; % fprintf('%.2f\n',Mz) end xdot(1) = x(2); %x(1) = thetax, x(2) = thetaxdot xdot(2) = (Mx - (Iz-Iy)*x(4)*x(6))/Ix; xdot(3) = x(4); %x(3) = thetay, x(4) = thetaydot xdot(4) = (My - (Ix-Iz)*x(6)*x(2))/Iy; xdot(5) = x(6); %x(5) = thetaz, x(6) = thetazdot xdot(6) = (Mz - (Iy-Ix)*x(2)*x(4))/Iz; xdot = xdot'; return

116 Tether eom return to Earth function xdot = aae450tether2eom(t,x,flag,Ix,Iy,Iz,Mx,My,Mzi) %Equations of motion if cos(x(5)) > cos(120*pi/180) & cos(x(5)) < cos(60*pi/180) & sin(x(5)) > 0 Mz = Mzi; elseif cos(x(5)) > cos(120*pi/180) & cos(x(5)) < cos(60*pi/180) & sin(x(5)) < 0 Mz = -Mzi; else Mz = 0; end xdot(1) = x(2); %x(1) = thetax, x(2) = thetaxdot xdot(2) = (Mx - (Iz-Iy)*x(4)*x(6))/Ix; xdot(3) = x(4); %x(3) = thetay, x(4) = thetaydot xdot(4) = (My - (Ix-Iz)*x(6)*x(2))/Iy; xdot(5) = x(6); %x(5) = thetaz, x(6) = thetazdot xdot(6) = (Mz - (Iy-Ix)*x(2)*x(4))/Iz; xdot = xdot'; return

117 Tether maneuvers to Mars function [vm1,wz,thetaz,t,T,dvx,dvy] = aae450tether2(thetaz0,thetazdot0,Mzi,tf); %Declaration of constant Ix = 1.016e6; %kg-m^2 Iy = 1.012e10; %kg-m^2 Iz = 1.012e10; %kg-m^2 Mx = 0; %Nm My = 0; %Nm r = 85; %m m = 100000; %kg

%initial conditions thetax0 = 0; thetaxdot0 = 0; thetay0 = 0; thetaydot0 = 0; t0 = 0; p0 = [thetax0,thetaxdot0,thetay0,thetaydot0,thetaz0,thetazdot0]; ti = [t0 tf]; options = odeset('RelTol',1e-12); [t,xx] = ode45('aae450tether2eom',ti,p0,options,Ix,Iy,Iz,Mx,My,Mzi); thetax = xx(:,1); wx = xx(:,2); thetay = xx(:,3); wy = xx(:,4); thetaz = xx(:,5); wz = xx(:,6);

T(1) = 0; for i = 2:1:length(wz) if wz(i) == wz(i-1)

118 T(i) = 0; else T(i) = Mzi/r; end end T = T'; Fx = T.*sin(thetaz); Fy = T.*cos(thetaz); ax = Fx/m; ay = Fy/m; dvx = trapz(t,ax); dvy = trapz(t,ay); vm1= [wz*r.*sin(thetaz) wz*r.*cos(thetaz) wz*0]; return

119 Tether maneuver home function [vm1,wz,thetaz,t,T,dvx,dvy] = aae450tether2(thetaz0,thetazdot0,Mzi,tf);

Ix = 1.016e6; %kg-m^2 Iy = 1.012e10; %kg-m^2 Iz = 1.012e10; %kg-m^2 Mx = 0; %Nm My = 0; %Nm r = 85; %m m = 100000; %kg %initial conditions thetax0 = 0; thetaxdot0 = 0; thetay0 = 0; thetaydot0 = 0; t0 = 0; p0 = [thetax0,thetaxdot0,thetay0,thetaydot0,thetaz0,thetazdot0]; ti = [t0 tf]; options = odeset('RelTol',1e-12); [t,xx] = ode45('aae450tether3eom',ti,p0,options,Ix,Iy,Iz,Mx,My,Mzi); thetax = xx(:,1); wx = xx(:,2); thetay = xx(:,3); wy = xx(:,4); thetaz = xx(:,5); wz = xx(:,6); T(1) = 0; for i = 2:1:length(wz) if wz(i) == wz(i-1) T(i) = 0; elseif sin(thetaz(i)) > 0

120 T(i) = Mzi/r; elseif sin(thetaz(i)) < 0 T(i) = -Mzi/r; end end T = T'; Fx = T.*sin(thetaz); Fy = T.*cos(thetaz); ax = Fx/m; ay = Fy/m; dvx = trapz(t,ax); dvy = trapz(t,ay); vm1 = [wz*r.*sin(thetaz) wz*r.*cos(thetaz) wz*0]; return

121 Appendix 3.4 Attitude Dynamics Chris Heidelberger

Matlab files Run file %run script for 450 by Chris Heidelberger clear all global k1; global k2; global k3; global om; global a1; global e1; global mew;

%------Hab I1=2.1645e9; I2=2.721e5; I3=2.1645e9; %------ERA %I1=1.5e7; %I2=4.12e6; %I3=1.5e7; %------ERV %I1=5.467e9; %I2=3.36e5; %I3=5.467e9; %------k1=(I2-I3)/I1; k2=(I3-I1)/I2; k3=(I1-I2)/I3;

122 mew=1.327e11; re=1.49596e8; ae=re; ee=0; ome=sqrt(mew/(ae^3));

%------Hab r0=re; a1=1.2992638*re; e1=0.24863708; om=sqrt(mew/(a1^3)); thst0=15.74*pi/180; %initial/final orbit locations (deg->rad) thstf=143.36*pi/180; Ea0=2*atan(sqrt((1-e1)/(1+e1))*tan(thst0/2)); Eaf=2*atan(sqrt((1-e1)/(1+e1))*tan(thstf/2)); w10=0*2*pi/60*om; %initial conditions (rpm->rad/s) w20=0*2*pi/60*om; %non-dim. by omega=sqrt(mew/a3) w30=2*2*pi/60*om; psi0=0.5*pi/180; lambda=[1,0,0]; e0=sin(psi0/2).*lambda; e40=cos(psi0/2); Ea1=Ea0:.01:Eaf; coordx=(Ea1-Ea0)/(Eaf-Ea0).*100;

%------ERA %r0=re; %a1=1.2524363*re;

123 %e1=.21018772; %om=sqrt(mew/(a1^3)); %w10=0*2*pi/60; %w20=0*2*pi/60; %w30=0*2*pi/60; %thst0=352.71835*pi/180; %thstf=201.00936*pi/180; %Ea0=2*atan(sqrt((1-e1)/(1+e1))*tan(thst0/2)); %Eaf=2*atan(sqrt((1-e1)/(1+e1))*tan(thstf/2)); %psi0=0.5*pi/180; %lambda=[1,0,0]; %e0=sin(psi0/2).*lambda; %e40=cos(psi0/2); %Ea1=Ea0:.01:Eaf+2*pi; %coordx=(Ea1-Ea0)/(Eaf-Ea0+2*pi).*100;

%initial and final conditions for ode45 w01=[w10 w20 w30 e0(1) e0(2) e0(3) e40 r0 e0(1) e0(2) e0(3) e40]; options=odeset('RelTol',1e-8,'AbsTol',1e-8); [EA,ww1]=ode45('elip_non_inert_eom',Ea1,w01,options); w11=ww1(:,1); w21=ww1(:,2); w31=ww1(:,3); e11=ww1(:,4); e21=ww1(:,5); e31=ww1(:,6); e41=ww1(:,7); r11=ww1(:,8); e12=ww1(:,9); e22=ww1(:,10);

124 e32=ww1(:,11); e42=ww1(:,12); w11r=w11.*60./2./pi.*om; w21r=w21.*60./2./pi.*om; w31r=w31.*60./2./pi.*om; c111=1 - 2.*e31.^2 - 2.*e11.^2; c131=2.*(e31.*e11+e21.*e41); %essential dir.cos elements c231=2.*(e21.*e31-e11.*e41); c311=2.*(e31.*e11-e21.*e41); c321=2.*(e21.*e31+e11.*e41); c331=1 - 2.*e11.^2 - 2.*e21.^2; c112=1 - 2.*e32.^2 - 2.*e12.^2; c132=2.*(e32.*e12+e22.*e42); %essential dir.cos elements c232=2.*(e22.*e32-e12.*e42); c312=2.*(e32.*e12-e22.*e42); c322=2.*(e22.*e32+e12.*e42); c332=1 - 2.*e12.^2 - 2.*e22.^2; nut1=acos(c331); prec1=atan2(c231,c131); %precession and spin angle from dircos spin1=atan2(c321,-c311); %using atan2 fn. which does quadrant check nutd1=nut1.*(180/pi); %convert to degrees precd1=prec1.*(180/pi); spind1=spin1.*(180/pi); nut2=acos(c332); prec2=atan2(c232,c132); %precession and spin angle from dircos

125 spin2=atan2(c322,-c312); %using atan2 fn. which does quadrant check nutd2=nut2.*(180/pi); %convert to degrees precd2=prec2.*(180/pi); spind2=spin2.*(180/pi);

%r1=r11; %len=85/1000; %length of tether to c.m. (m->km) %thst1=2*atan(sqrt((1+e1)/(1-e1))*tan(EA./2)); %t0tp1=sqrt(a1^3/mew)*(Ea0-e1*sin(Ea0)); %t1tp1=sqrt(a1^3/mew).*(Ea1-e1.*sin(Ea1))-t0tp1; %t0tpe=sqrt(ae^3/mew)*(thst0-ee*sin(thst0)); %thste=(ome.*(t1tp1+t0tpe))'; %beta=(thste-thst1)+0.0001; %rec=(re^2+r1.^2-2*re.*r1.*cos(beta)).^(0.5); %alpha=pi/2-acos((re^2-r1.^2-rec.^2)./(-2.*r1.*rec)); %epsi=-(prec1)+alpha; %epsi2=pi-epsi; %res=(len^2+rec.^2-2*len.*rec.*cos(epsi)).^(0.5); %res2=(len^2+rec.^2-2*len.*rec.*cos(epsi2)).^(0.5); %kappa=acos((rec.^2-len^2-res.^2)./(-2*len.*res)).*(180/pi); %kappa2=acos((rec.^2-len^2-res2.^2)./(-2*len.*res2)).*(180/pi); figure(1); subplot(2,2,1); hold on; plot(coordx,nutd2); ylabel('Tilt (deg)'); subplot(2,2,2); hold on;

126 plot(coordx,precd2+90); ylabel('Precession (deg)'); subplot(2,2,3); hold on; plot(coordx,spind2-90); xlabel('% of transfer'); ylabel('Axial Spin (deg)'); subplot(2,2,4); hold on; plot(coordx,w31r,':',coordx,w21r,coordx,w11r,'--'); xlabel('% of transfer'); ylabel('Body Spin'); axis([0 100 -1 3]);

%figure(2); %plot(coordx,kappa,coordx,kappa2,':'); %xlabel('% of transfer'); %ylabel('comm. angle');

%figure(3); %hold on; %plot(t1tp1,kappa-kappa2); %xlabel('time'); %ylabel('difference in angle');

127 EOM file %script to set eom into state variable form function ydot = elip_non_inert_eom(Ea,y) global k1; global k2; global k3; global a1; global e1; global om; global mew; ydot(1)=(1-e1*cos(Ea))*k1*(y(2)*y(3) - 12*a1^3/y(8)^3*(y(4)*y(5)- y(6)*y(7))*(y(6)*y(4)+y(5)*y(7))); ydot(2)=(1-e1*cos(Ea))*k2*(y(3)*y(1) - 6*a1^3/y(8)^3*(1-2*y(5)^2- 2*y(6)^2)*(y(6)*y(4)+y(5)*y(7))); ydot(3)=(1-e1*cos(Ea))*k3*(y(1)*y(2) - 6*a1^3/y(8)^3*(1-2*y(5)^2-2*y(6)^2)*(y(4)*y(5)- y(6)*y(7))); ydot(4)=0.5*(1-e1*cos(Ea))*(y(1)*y(7) - y(2)*y(6) + (y(3)+sqrt(a1^3/y(8)^3))*y(5)); ydot(5)=0.5*(1-e1*cos(Ea))*(y(1)*y(6) + y(2)*y(7) - (y(3)+sqrt(a1^3/y(8)^3))*y(4)); ydot(6)=0.5*(1-e1*cos(Ea))*(-y(1)*y(5) + y(2)*y(4) + (y(3)-sqrt(a1^3/y(8)^3))*y(7)); ydot(7)=-0.5*(1-e1*cos(Ea))*(y(1)*y(4) + y(2)*y(5) + (y(3)-sqrt(a1^3/y(8)^3))*y(6)); ydot(8)=abs(a1*e1*sin(Ea)); ydot(9)=0.5*(1-e1*cos(Ea))*(y(1)*y(12) - y(2)*y(11) + (y(3))*y(10)); ydot(10)=0.5*(1-e1*cos(Ea))*(y(1)*y(11) + y(2)*y(12) - (y(3))*y(9)); ydot(11)=0.5*(1-e1*cos(Ea))*(-y(1)*y(10) + y(2)*y(9) + (y(3))*y(12)); ydot(12)=-0.5*(1-e1*cos(Ea))*(y(1)*y(9) + y(2)*y(10) + (y(3))*y(11)); ydot=ydot'; return

128 Appendix 4.1.2 Ejection Seat Stephen Hanna

Schematic of Ejection Seat

Fig. A4.1.2. Schematic of SR-2 Ejection Seat.1

129 Ejection Decision

I. Ejection Decision II. Canopy Jettison III. Seat begins to rise, leg restraints retract legs IV. Catapult fires; First seat movement V. Trip-rods arm drogue gun and TRU (barostat timer assembly) VI. Seat clears airplane, drogue gun lanyard withdraws sear VII. Lanyard initiates separation rocket VIII. Drogue gun fires IX. Drogue gun piston pulls drogue chute from seat headrest X. Drogue chute inflates, begins to slow seat. XI. TRU Barostat inhibits timer until below 10000 ft. XII. TRU 1.25 second delay passes, then TRU 1. Releases Inertial reel harness 2. Unlatches Survival Kit from seat pan 3. Unlocks 'Scissor shackle' XIII. The Drogue Shackle then imparts the pull of the Drogue chute to the Main Parachute Extraction Line XIV. The Main Parachute Extraction line pulls the Face Curtain Retainer pins from the sides of the headrest XV. Then the Main Parachute Extraction Line extracts the Main Chute Bag, stretching the Main Chute Risers to the full length XVI. The Main Chute then inflates to full XVII. The Crewman is pulled from the seat by the parachute XVIII. Opening shock tends to cause Crewman to release the Face Curtain

History: Lockheed S/R-2 or SR-2: Stabilization Retardation

130 The S/R-2 was equipped with a fast deploying drogue chute which keeps the seat from tumbling and helped decellerate the seat/man package to a speed where the parachute deployment forces were more within the range of human tolerance. Another change that occurred over time was the change to a gas operated retractor for the shoulder harness to position the occupant prior to the catapult stroke. The concept was to set the occupants back against the seat structure and hopefully straighten his spinal column before the G load increased. The canopy jettison system was also modified in concert with the delay charges to provide a faster egress from the aircraft. One other point to mention in regard to the S/R-2 is that the emergency oxygen system was optimized for high altitude use.

In order to reduce parachute opening times for low altitude ejections, a gun deployed parachute made by Weber is incorporated. The chute includes an integral drogue gun which fires a slug out at a 45 degree angle over the crewman's left shoulder. This parachute was also installed on some of the C-2 seats, so the presence of the gun deployed parachute alone does not indicate the seat is an S/R-2. The parachute firing mechanism was activated during seat separation and included an aneroid system to prevent the chute from deploying above 15000 feet.

The D-ring at the front center of the seat is cable connected to an initiator under the seat pan. The cable is spring mounted to prevent injuries after ejection and prior to seat separation at which time the cable is severed. When pulled, the initator gas is routed to the inertia reels to retract the crewman back upright. It is also routed to the foot restraint reels and via a quick disconnect fitting to the canopy removal system. As the canopy is jettisoned, an initiator in the canopy system is actuated and gas from it is directed back into the seat via another quick disconnect to actuate the gas-operated sequencing system, and to fire the catapult after a 0.3 second delay to allow the canopy to clear the area.

The Drogue chute is mounted in the headrest with the drogue gun mounted in the center of the rails behind it. It is fired 0.2 seconds after the gas from the canopy system begins the sequencing, at about the same time as the seat clears the aircraft

131 rails. At that time, the rocket section of the rocket/catapult (ROCAT) is being ignited by gas from the catapult portion. Other portions of the seat system actuated by the canopy initiator include the arming of the pyrotechnic aneroids which sense altitude by air pressure and continue the seat sequencing when the seat is below 15,000 feet. Also, gas arms the lower drogue attach point cutters which will sever the lower riser lines 10.0 seconds later. This will allow the seat to decellerate, then the cutters will allow the seat to swing down under the 6.2 foot drogue decending in a controlled fashion until the aneroids fire at 15,000 feet.

When the aneroid units continue the seat separation, the following events happen:

 Inertia reel straps are severed

 Inertia reel is unlatched to allow the straps to unspool if the severance cutters failed

 Lap belt is released at the seat attach points

 Foot restraint cables are severed

 D-ring handle cable is severed

 Seat separation reel is gas actuated

 Parachute lanyard is pulled as the man and seat separate

 Drogue upper riser cutters are armed via a 0.3 second delay

After separation, the survival kit is retained by straps connected to the crewman's harness on each hip. It is manually deployed by pulling the curved yellow handle inboard on the right side of the seat pan. A yellow and black striped handle under the oxygen connections is the manual scramble handle which mechanically and pyrotechnically executes most of the seat separation functions to allow the crewman to either egress the aircraft on the ground, manually bailout from the aircraft, or manually separate from the seat in case of a seat separation failure. The scramble handle disconnects the lanyard on the parachute so that it must be manually actuated by the D- ring on the left riser if the parachute is needed.

132 The yellow cover on the left of the seat bucket protects the secondary catapult T handle. This handle is used if there is a failure of the seat to fire normally. The canopy must be jettisoned prior to using this handle as the seat will fire immediately on pulling the T handle. To prevent the T handle from being used as the primary handle, the D- ring must be pulled first to arm the T handle. The yellow pyrotechnic hose on the left side of the seat near the headrest is the Rocket Catapult connection. In case of a crash, the crash rescue crew would sever that line with bolt cutters to prevent accidental firing of the rocket while rescuing the crewman. References 1. Kevin Coyne, The Ejection Site, (http://www.bestweb.net/~kcoyne/index.html), 2001. 2. F & L enterprises, Parachute and Ejection Seat History, (http://www.ejectionseat.com), 1998.

133 Appendix 4.2 Nuclear Thermal Rocket Adam Irvine

MATLAB codes %Adam Irvine %Sizing using n# NERVA derived engines %AAE450 %E, Texit, F, Pc clear all E=input('Enter E: '); temp=3100; n=input('Enter n: '); %n=3; F=222411/n; %50000lbs thrust total

Pc=3500000; g=9.81;%m/sec2

MAX=179000 DV=3650+417; %??????????????????????????????????????? Rtanks=8.3/2;

Ru=8314; M_H2=2.016; M_CH4=16.043; M_CO2=44.01; M_H2O=18.015; phi=temp/100; %*temp in Kelvins

CpH2=1/M_H2*(56.505-702.74*phi^-.75+1165/phi-560.7*phi^-1.5); CpCH4=1/M_CH4*(-627.87+439.74*phi^.25+-24.875*phi^.75+323.88*phi^-.5);

134 CpCO2=1/M_CO2*(-3.7357+30.529*phi^.5+-4.1034*phi+0.024198*phi^2); CpH2O=1/M_H2O*(143.05-183.54*phi^.25+82.751*phi^.5-3.6989*phi);

GammaH2=CpH2/(CpH2-8.314/M_H2); GammaCH4=CpCH4/(CpCH4-8.314/M_CH4); GammaCO2=CpCO2/(CpCO2-8.314/M_CO2); GammaH2O=CpH2O/(CpH2O-8.314/M_H2O); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PH2=(.018061*temp-5.715417)*10^6; %specfic reactor power (W/s/Kg) PCH4=(.008269*temp-4.374854)*10^6; PCO2=(.002246*temp-.670951)*10^6; PH2O=(.003039*temp-.162990)*10^6; rhoH2=71; rhoCO2=1101; rhoH2O=1000; rhoCH4=1;

RRSP=PH2; M=M_H2; gamma=GammaH2; rhoprop=rhoH2; %71 for H2 cstar=sqrt(gamma*(Ru/M)*temp)/(gamma*(2/(gamma+1))^((gamma+1)/(2*(gamma- 1)))); Me=machnum(E,gamma); Pe=Pc*(1+((gamma-1)/2)*Me^2)^(gamma/(1-gamma)); cf=sqrt((2*gamma^2)/(gamma-1)*(2/(gamma+1))^((gamma+1)/(gamma-1))*(1- (Pe/Pc)^((gamma-1)/gamma)))+(Pe/Pc)*E; At=F/(cf*Pc); Ae=E*At;

135 Dt=2*sqrt(At/pi); De=2*sqrt(Ae/pi); mdot=Pc*At/cstar; Isp=F/(g*mdot); %sepecfic impluse (sec)

%Pcore=m_dot_p(Hv + int(cp..dtemp))=m_dot_p*P %reactor power generated (W) Pcore=mdot*RRSP; %reactor power generated (W)

Pd=1570000000; %power density (W/m^3)

M=0.2; %prop injected gaseous DeltaP=0.20; %regenertive cooling pressure drop DeltaP_core= 0.10; %core pressure drop rho_core=2300; %kg m3 %Vcore=Pcore*(6.4*10E-19*tb+1/Pd); %core volume estimated Vcore=Pcore/Pd; %Ecore=Pcore*tb; %Core energy (MW-hrs or W.s(J)

%Uranium Core (235_Ur) %Ur_E=3.206*10^-11; %[J] or 200 MeV %M_Ur=0.235; %(Kg/mol) %rho_Ur=19100; %Kg/m^3

Mcore=Vcore*rho_core; sig=1;

%Keff=p*f*nu*sig*Pnl %keff=1; %critical reactor Keff=1.1; %margin of 10% supercritical

136 f=1.2; %1.1-1.2 N_U235=9.74e-4; I=15; S_U=0.08; %lethargy S_H=1; S_C=.158; Sigs_H=1.421E-4; Sigs_C=2.736E-1; Sigs_U235=0; Sigs_U238=6.084E-4; Siga_H=1234E-6; Siga_C=2.28E-4; Siga_U235=1.032E-1; Siga_U238=5.571E-4; Sigt_U235=6.652E-1; Sigt_U238=1.173E-3; Sigt_C=2.736E-1; Sigt_H=1.421E-4; p=exp(-N_U235*I/(S_H*Sigs_H+S_C*Sigs_C+S_U*Sigs_U238)); Siga_core=(Siga_U235+Siga_U238+Siga_H+Siga_C)*100; f=Sigt_U235/(Siga_core/100+Sigt_U235); %f=.9988; Dcore=1/(3*(Sigt_U235+Sigt_U238+Sigt_C+Sigt_H))/100; Lcore=sqrt(Dcore/Siga_core); v_fe=2.43; phiF=577; phia=106;

%nu=v_fe*(phiF/phia);

137 %nu=2.0529; %Pnl=Keff/(p*nu*sig*f);

%tau=.01; %fref=1; %Bm=sqrt((1-Pnl)/(Pnl*(Lcore^2+tau)))/100; %Vcorecm=Vcore*100^3; %%%%Humble stuff that doesn't work has been commented out%%% %crap=subs(solve('X^6-(Bm*Vcorecm/3.141^2)^2*X^2+(2.405*Vcorecm/ (3.141^2))^2=0','X')); %stuff=(find(real(crap)>1)); %Rcore=real(crap(stuff(find(crap(stuff)<50))));

RL=.327/1.136; Hcore=(Vcore/RL^2/pi)^(1/3); Rcore=Hcore*RL;

%Hcore=Vcorecm/(pi*Rcore^2); %Bg=sqrt((pi/Hcore)^2+(2.405/Rcore)^2); Vcore2=pi*Rcore^2*Hcore; Mshield=(Rcore*1.1)^2*pi*3500; Mcontain=2*Pc*Vcore*.38/(g*2500); thetacn=acos(2*.985-1); Ln=(De-Dt)/(2*tan(thetacn)); rhonoz=8500; tw=3*Pc*(Dt/2)/310000000; f1=-tw/Ln; f2=(De/2-Dt/2)/Ln; %Mnoz=2*pi*rhonoz*Ln*(1/3*f1*f2*Ln^2+1/2*(f1*(Dt/2)+f2*tw)*Ln+(Dt/2)*tw); %tapered Mnoz=pi*rhonoz*tw*Ln*(De/2+Dt/2); %constant thickness Mtchamber=(Mcontain+Mnoz)/.4;

138 Mfeed=Mtchamber*.249; Mcool=Mtchamber*.351; Mtotal1=95000; total=1; c=1; while abs(total-MAX) > 50 Mpay=MAX-Mtotal1; lambda=.3; diff=100; while (diff) > 30 Mprop=Mpay*(exp(DV/(Isp*g))-1)*(1-lambda)/(1-lambda*exp(DV/(Isp*g)))*1.02; Vtank=Mprop/rhoprop*1.03; Ltank=Vtank/(pi*Rtanks^2); Ptank=10^(-.1281*(log10(Vtank)+.2498))*10^6; Mtank=250000*Vtank/(g*2500); gammap=1.66; Tf=273*(Ptank/21000000)^((gammap-1)/gammap); Mpress=Vtank*250000/(8314/4.003*Tf); Vptank=Mpress*8314/4.003*273/21000000; Rptank=(Vptank/4*3/(4*pi))^(1/3); Mptank=21000000*Vptank/(g*10000*4); Mturbo=turbo(Pc,250000,mdot); [Mpropd, Mpdlost,Vdtank,Rdtank]=disposet(Mtchamber*n+Mturbo*n+Mshield*n+Mcore*n,Isp); Mdtank=250000*Vdtank/(g*2500);

Mt=Mtchamber*n+Mtank+Mturbo*n+Mshield*n+Mcore*n+Mptank*4+Mpress+Mdtank+M pdlost+Mpropd; Mtotal=Mt*(1.1+.05*n)+Mprop; diff=(Mtotal*lambda-Mt); lambda;

139 if diff < 0 lambda=lambda+.0005; else lambda=lambda-.0005; end end total=Mtotal+Mpay; Mpaystor(c)=Mpay; totalstor(c)=total; Mtotstor(c)=Mtotal; c=c+1; if Mtotal1 < Mtotal Mtotal1=Mtotal*1.0005; else Mtotal1=Mtotal1*.9995; end end Mpay Mpropnominal=Mprop*(100/104) x=((Mtotal-Mtank-Mprop)*(Ln+Rptank*2+.5)/2+ (Mtank+Mprop)*(Ln+Rptank*2+.5+Ltank/2)+Mpay*(Ln+Rptank*2+.5+Ltank+10))/179000 Momentfail=F*(.5+De/2) Forceneeded=Momentfail/x gimbalangle=atan(Forceneeded/(F*2)) NewForce=F*cos(gimbalangle) tb=Mpropnominal/(mdot*3) Impulse=Isp*g*Mpropnominal tbfail=Impulse/(NewForce*2) NeededMprop=mdot*2*tbfail difference=NeededMprop-Mpropnominal allocated=Mprop*.04

140 Momentfail=2*F*(.5+De/2) Forceneeded=Momentfail/x gimbalangle=atan(Forceneeded/(F)) NewForce=F*cos(gimbalangle) tb=Mpropnominal/(mdot*3) Impulse=Isp*g*Mpropnominal tbfail=Impulse/(NewForce) NeededMprop=mdot*tbfail difference=NeededMprop-Mpropnominal allocated=Mprop*.04 function Mturbo=turbo(Pc,Pt,mdot)

Cp=14209; gamma=1.409; g=9.81; rho=71; n=.75;

Pd_rea=Pc*.05; Pdischarge=Pc+Pd_rea; Ptrajguess=2; Pinlet=Pdischarge*Ptrajguess; Pd_cooling=Pinlet*.2; Pd_feed=50000; Pdyn=1/2*71*100; PumpP=Pinlet+Pd_cooling+50000+3550-Pt; Hp=PumpP/(g*rho); Preq=g*mdot*Hp/n; Ptrajnew=(1-Preq/(n*mdot*Cp*300))^(-gamma/(gamma-1));

141 tol=.0001; while abs(Ptrajnew-Ptrajguess)>tol Ptrajguess=Ptrajnew; Pinlet=Pdischarge*Ptrajguess; Pd_cooling=Pinlet*.2; Pd_feed=50000; Pdyn=1/2*71*100; PumpP=Pinlet+Pd_cooling+50000+3550-Pt; Hp=PumpP/(g*rho); Preq=g*mdot*Hp/n; Ptrajnew=(1-Preq/(n*mdot*Cp*300))^(-gamma/(gamma-1)); end Nr=2*Hp^.75/sqrt(mdot/rho); torque=Preq/Nr; Mturbo=1.5*44.95^.6; function [Mpropd, Mpdlost,Vdtank,Rdtank]=disposet(Mpush,Isp) g=9.81; Mpropd=(Mpush)*exp(240*1.03/(g*Isp))-(Mpush); Mptotguess=Mpropd*2; diff=1; while diff > .5 Mpdlost=793*4*.043*pi*(3*Mptotguess/(pi*4*71))^(2/3); Mpdtot=Mpdlost+Mpropd; diff=abs(Mpdtot-Mptotguess); if diff > .5 Mptotguess=Mpdtot; end end Vdtank=Mpdtot/71*1.03; Rdtank=(Vdtank*3/(4*pi))^(1/3);

142 function M=machnum(E,gamma) %Adam Irvine AAE439 HW2P4 %This uses bisector iteration Mhigh=10; Mlow=1; Msav=0; err=1; tol=0.000001; while err>=tol M=1/2*(Mhigh+Mlow); %Function discribing mach and E F=E-1/M*((2+(gamma-1)*M^2)/(gamma+1))^((gamma+1)/(2*(gamma-1))); if F>0 Mlow=M; end if F<0 Mhigh=M; end err=abs(M-Msav); Msav=M; end return

143 Appendix 4.3 In-situ propellant prodution Adam Butt

Single Stage to Orbit %AAE 450 %Adam Butt %Single Stage To Orbit (SSTO) Analysis %Matlab Code close all clear all mpl1=8610; %Payload mass for the first stage [kg] mpl_upper=23000; %Payload mass for the upper stage [kg] mpl2=mpl1+mpl_upper; %Total payload mass for the second burn [kg] Isp1=340; %Specific impulse delivered from a CH3OH/LOX engine [s] %Isp2=365; %Specific impulse delivered from a CH4/LOX engine [s] Isp2=Isp1; %Specific impulse delivered from a CH3OH/LOX engine [s] g=9.81; %Gravitational constant [m/s^2] deltav=5660; %Total delta v required to return to Earth [m/s] r_mars=3397; %Mean radius of Mars [km] r_orbit=150; %"Optimal" orbital radius from the Marsian surface [km] omega_mars=0.975; %Angular velocity of Mars [rev/day] ang_vel_mars=omega_mars/(3600*24.62); %Angular velocity of Mars [rev/s] mu_mars=4.2828e4; %Marsian gravitational constant [km^3/s^2] v_surf=(r_mars*ang_vel_mars)*1000; %Surface velocity at an equitorial marsian latitude [m/s] v_orbit=(sqrt(mu_mars/(r_mars+r_orbit)))*1000; %Velocity at the "optimal" orbit [m/s] rho_methane=423.503; %Density of Methane [kg/m^3] rho_methanol=794.413; %density of Methanol [kg/m^3] rho_LOX=1140.412; %Density of LOX [kg/m^3] mol_methane=16.043; %Molecular weight of methane [kg/kgmol]

144 mol_methanol=32.042; %Molecular weight of methanol [kg/kgmol] mol_LOX=31.999; %Molecular weight of liquid oxygen [kg/kgmol] r1=1.1; %Optimal mixture ratio for Methanol/LOX r2=3.5; %Optimal mixture ratio for Methane/LOX %D=3.2; %Max tank diameter [m] %D2=6; %R1=.5*D; %Tank radius [m] %R2=4; %D2=2*R2; lambda1=0.93; %Propellant mass fraction for a storable prop. stage lambda2=lambda1; %Propellant mass fraction for a storable prop. stage %lambda2=0.88; %Propellant mass fraction for a cryogenic prop. stage finert1=1-lambda1; %Inert mass fraction finert2=1-lambda2; %Inert mass fraction deltav1=(v_orbit-v_surf)+0.05*deltav; %Delta v fraction for first stage + err for losses deltav2=(deltav-deltav1)+.025*deltav; %Delta v fraction for second stage + err for g- loss deltav_tot=deltav1+deltav2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %"Stage 2" mp2=(lambda2*mpl2*(exp(deltav2/(g*Isp2))-1))/(exp(deltav2/(g*Isp2))*(lambda2-1)+1); %Propellant mass for second stage [kg] min2=mp2/lambda2-mp2; %Inert mass for the second stage [kg] mo2=mp2+mpl2+min2; %Initial mass for the second stage [kg]

145 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %"Stage 1" mp1=(lambda1*(mp2+mpl1)*(exp(deltav1/(g*Isp1))-1))/(exp(deltav1/(g*Isp1))*(lambda1- 1)+1); %Propellant mass for fisrt stage [kg] min_lower=(mp1/lambda1-mp1)+min2; %Inert mass for the lower stage [kg] min1=min_lower+0.1*min_lower %Total inert mass plus 10% redundancy [kg] mo1=mp1+(mpl1+mp2)+min1 %Initial mass for the first stage [kg]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Tank sizing for Stage 1 m1_LOX=mp1*((3*mol_LOX)/(3*mol_LOX+2*mol_methanol)); %Mass of LOX for 1st stage [kg] m1_methanol=mp1*((2*mol_methanol)/(3*mol_LOX+2*mol_methanol)); %Mass of Methanol for 1st stage [kg]

V1_LOX=(m1_LOX/rho_LOX); %Volume for 1st stage LOX tanks (2 tanks) [m^3] V1_methanol=(m1_methanol/rho_methanol)/4; %Volume for 1st stage methanol tanks (2 tanks) [m^3]

%L1_LOX=(V1_LOX-(4/3)*pi*R1^3)/(.25*pi*D^2) %Length of 1st stage LOX tanks [m] %L1_methanol=(V1_methanol-(4/3)*pi*R1^3)/(.25*pi*D^2) %Length of 1st stage methanol tanks [m] %L1_LOX_tot=2*R1+L1_LOX %L1_methanol_tot=2*R1+L1_methanol

%R1_LOX=((3*V1_LOX)/(4*pi))^(1/3) %R1_methanol=((3*V1_methanol)/(4*pi))^(1/3)

146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Tank sizing for Stage 2 m2_LOX=mp2*((3*mol_LOX)/(3*mol_LOX+2*mol_methanol)); %Mass of LOX for 2nd stage [kg] m2_methanol=mp2*((2*mol_methanol)/(3*mol_LOX+2*mol_methanol)); %Mass of Methane for 2nd stage [kg]

V2_LOX=(m2_LOX/rho_LOX); %Volume for 2nd stage LOX tanks [m^3] V2_methanol=(m2_methanol/rho_methanol)/4; %Volume for 2nd stage methane tanks [m^3]

%Cylindrical tanks %L2_LOX=(4*V2_LOX)/(pi*D2^2) %Length of 2nd stage LOX tanks [m] %L2_methanol=(4*V2_methanol)/(pi*D2^2) %Length of 2nd stage methane tanks [m]

%Cylindrical w/ hemispherical tops and bottoms %L2_LOX=(V2_LOX-(4/3)*pi*R2^3)/(.25*pi*D2^2) %Length of 1st stage LOX tanks [m] %L2_methanol=(V2_methanol-(4/3)*pi*R2^3)/(.25*pi*D2^2) %Length of 1st stage methanol tanks [m] %L2_LOX_tot=2*R2+L2_LOX %L2_methanol_tot=2*R2+L2_methanol

%Spherical tanks %R2_LOX=((3*V2_LOX)/(4*pi))^(1/3) %R2_methanol=((3*V2_methanol)/(4*pi))^(1/3)

%Toroidal tanks r_meth=1.5; R_methanol=(((V1_methanol+V2_methanol)*4)/2)/(2*pi^2*r_meth^2)

147 r_LOX=1.5; R_LOX=((V1_LOX+V2_LOX)/2)/(2*pi^2*r_LOX^2)

%Methanol tanks (cylindrical w/ hemispherical tops and bottoms) R1=1.1; D=2*R1; %L1_methanol=((V1_methanol+V2_methanol)-(4/3)*pi*R1^3)/(.25*pi*D^2); %L1_methanol_tot=2*R1+L1_methanol L1_methanol_tot=(4*(V1_methanol+V2_methanol))/(pi*D^2)

%LOX tanks (cylindrical) D2=3; R2=.5*D2; V_LOX=(V1_LOX+V2_LOX)/4; %L2_LOX=(V_LOX-(4/3)*pi*R2^3)/(.25*pi*D2^2) %L2_LOX_tot=2*R2+L2_LOX L2_LOX=(4*V_LOX)/(pi*D2^2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LOX_needed=m1_LOX+m2_LOX %Total mass of LOX to be produced %Methane_needed=m2_methane %Total mass of Methane to be produced Methanol_needed=m1_methanol+m2_methanol %Total mass of Methanol to be produced V_total=V1_LOX+V1_methanol+V2_LOX+V2_methanol; %Total volume of the propellants [m^3] mp_tot=mp1+mp2

%L_LOX_tot=2*R2_LOX+L1_LOX_tot %L_methanol_tot=2*R2_methanol+L1_methanol_tot

Mt=(mp1+mp2)/450; %Mass of generic propellant produced per day [kg/day] %Mt=(mp1)/450

148 Pe=0.145*(Mt)^1.238; %Elec. power in kilowatts required to produce propellant Pe_sample_return=Pe-0.25*Pe; Pe_washington=Pe-0.9*Pe; Pe_final=1.5*Pe_washington

149 Code to determine Hydrogen feedstock mass clear all close all

H2=5.5; counter=1; while H2>.00001 CH3OH=5.332*H2; sum1(:,counter)=CH3OH; H2O=5.662*H2; O2=.88*H2O; sum2(:,counter)=O2; H2=H2O-O2; counter=counter+1; end

CH3OH_produced=sum(sum1) O2_produced=sum(sum2)

150 Appendix 4.4 Attitude Control Casey Kirchner

Erv Attitude Control % Casey Kirchner % AAE 450 Spring 2001 % ERV RCS, Tether Spin, and Mars surface landing retro rocket propellant budget and sizing code clear all;

% Things to add % Turbopump on Descent stage

% Recent changes... % 3/26 (midnight) changed nitrogen pressurant to helium... total stage mass 12926.21 --> 12782.19 % 3/26 (midnight) changed landing DV to 69.28 m/s... total stage mass 12782.19 --> 13000.60 % 3/26 (midnight) changed DV safety factors from 0% or 10% to 5%... total stage mass 13000.60 --> 12572.62 % 3/26 (midnight) changed ullage from 5% to 3%... total stage mass 12572.62 --> 12570.62 % 3/26 (midnight) changed DV safety factors from 5% to 2%... total stage mass 12570.62 --> 12306.38 % 3/26 (midnight) changed hover DV to zero... total stage mass 12306.38 --> 11979.04

%%%%%%%%%%%%% % Constants % %%%%%%%%%%%%%

151 g_0 = 9.81; % m/s^2 This is a scaling factor to convert between force and mass, NOT necessarily to denote Earth's gravitational influence (therefore it works for RCS as well as launch). a_0 = 0.005; % m/s^2 Acceleration of spacecraft under thrusting, based on 10 N thrusters on Galileo's 2 tonne bus g_mars = 0.38*g_0; % m/s^2 Acceleration of gravity on Mars Ru = 8314.3; % J/kmol-K, Universal Gas Constant gamma = 1.66; % for helium Mw_N2 = 14.007*2; % kg/kmol, molecular weight of nitrogen Mw_He = 4.002602; D_prop = 1.0; % m, propellant tank diameter (must be 1.1 or less to prevent negative tank length!)

D_prop_CTV = 0.15; % m, prop tank diam. on CTV (smaller system) rho_g = 1550; % kg/m^3 density of graphite Ftu_g = 2340000000; % Pa, material strength of graphite fs = 1.25; % safety factor rho_al = 2770; % kg/m^3 (from ME 315 book... Incropera & DeWitt... alloy 2024-T6) rho_MMH = 0.874*1000; % density of fuel - convert from g/cc (TEP output) to kg/m^3 rho_NTO = 1.431*1000; % density of oxidizer O_F = 1.6; % O/F ratio tw_al = 0.5/1000; % thickness of aluminum tank liner 1/2 mm --> m Ae_At = 40; % retro rocket expansion ratio

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% ERV RCS/Spin/Retro Propulsion Calculations %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Accept ERV inputs fprintf(1,'%1s\n',' '); disp('Hab RCS Inputs')

152 Isp_RCS = 330;%input('Enter Isp of ERV RCS engines: '); % 330 Isp_retro = 300;%input('Enter Isp of retro engines: '); % 300 ERV_to_CM = 5 + 223;%input('Enter length of tether from ERV to system CM (m): '); % Engines 5 m away from tether attach point on 6 m long ERV...223 m away from system cm tether_rot_rate = 2; % Initial rotation rate (Mars gravity) of tethered system landing_mass = 55.2;%input('Enter mass of structure to land on Mars (tonnes): '); % 55.2 ISRU_spent_mass = 15;%input('Enter mass of ERV spent ISRU stage (tonnes): '); % 15 heat_sheild_mass = 15.41;%input('Enter total mass of ERV heat sheild (tonnes): '); % 15.41 sheild_remain_mass = 0.625;%input('Enter mass of ERV heat sheild remaining upon landing (tonnes): '); % 0.625 sheild_drop_mass = heat_sheild_mass - sheild_remain_mass; CTV_mass = 4; % tonnes ERV_mass = 25; % tonnes GRG_mass = 2.3+6; % tonnes structure + rover DESC_mass = 4; % tonnes ISRU_mass = 15; % tonnes not necessary?

% Delta V required for course corrections per Longuski (assume same for HAB and ERV) DV_RCS = 100*1.02; % m/s

% Delta V required for perigee lowering/raising in parking orbit from Nick Saadah DV_orbit = 4*1.02; %m/s DV required to enter atmosphere and thus us it to successively lower perigee (aerobraking)

% Delta V required to land Hab on surface of Mars after parachute deployment % Assume parachute is at terminal velocity so the only acceleration is Mars gravity

153 DV_retro = 69.28*1.02;%82*1.1; % m/s Number from Jeremy Davis.... assume 200 m height at engine on, 10 s burn to surface and no drag term Tb_retro = 10; % s, time to burn while landing Tb_hover = 10;%20; % s, time to hover while looking for landing site DV_hover = 0;%(g_0*Isp_retro*log(1/0.97) - g_mars*Tb_hover)*1.02; % m/s prop. required to hover... guessing mass fraction on first term

% Delta V required for CTV to separate from vehicle and land on Earth (TOTAL guess) DV_earth_land = 20*1.02; % m/s

% Delta V required for CTV+ISRU to dock with ERV in orbit (and for ISRU to fly around to other side of ERV) DV_dock = 10*1.02;%20; % m/s (rerun this with 10 m/s)

% Delta V required for ERV orbit maintenance during surface stay DV_station = 1.0*1.02;%10; % m/s Nick says "good lord! change this to less than 1.0!!!"

% Apply rocket equation to solve for Hab mass fractions: DV = -g_0*Isp*ln(Mfinal/Minitial) - g_local*tb (neglect drag term); tether_ang_rate = 2*pi*tether_rot_rate/60; % convert from rpm to rad/s ERV_tang_vel = tether_ang_rate*ERV_to_CM; % m/s

% Earth Arrival phase Mfraction_earth_arrival = exp(-DV_earth_land/(g_0*Isp_RCS)); Minitial_earth_arrival = CTV_mass/Mfraction_earth_arrival; prop_earth_arrival_mass = Minitial_earth_arrival - CTV_mass; % prop on CTV Mfinal_RCS2 = Minitial_earth_arrival + ISRU_spent_mass + ERV_mass;

% Transit to earth Mfraction_RCS2 = exp(-DV_RCS/(g_0*Isp_RCS));

154 Minitial_RCS2 = Mfinal_RCS2/Mfraction_RCS2; spun_mass = Mfinal_RCS2; prop_RCS2_mass = Minitial_RCS2 - spun_mass; % prop split btwn ISRU and ERV according to tang. vel./dist. from tether CM Mfinal_build(1) = Minitial_RCS2;

% Spin up phase (from Annie Dransfield) % Initial Spin-up - connected vehicles % ERV/Spent Stage Properties

Me = 30*1000; % ERV mass (kg) Mfinal_sul should be very close to Me... Le = 30.82; % ERV length (m) De = 8.05; % ERV diameter (m) re = 223; % ERV distance to cm (m) Ixe1 = (Me/12)*((3*(De/2)^2)+(4*Le^2)); % eqn. from Annie Iye1 = 33600; % from Debbie Ize1 = Ixe1; Ixe2 = 5.467e9; % from Debbie Iye2 = Iye1; Ize2 = Ixe2;

Ms = 15*1000; % Spent stage mass (kg) Ls = 10.03; % Spent stage length (m) Ds = 8.05; % Spent stage diameter (m) rs = (Me/Ms)*re; % Spent stage to cm (m) Ixs = (ISRU_spent_mass/12)*((3*(Ds/2)^2)+(4*Ls^2)); % eqn. from Annie Iys = Ms/12*(3*(Ds/2)^2 + Ls^2); % eqn. from Debbie Izs = Ixs; wze2 = sqrt(60/(Me*re)); % (rad/s) Spin rate after deploy (before grav spin-up)

155 Fe1 = 314.2570; % Thrust (N) xe1 = 5; % Offset of thrust from cm (at connection) xs1 = 9; wze0 = (Ize2*wze2)/Ize1; % Initial spin rate wzf = tether_rot_rate*(2*pi/60); % Final angular rate (rad/s) gload_erv = (xe1*wze0^2)/9.81; % Max g load generated burn_time_erv1 = wze0*(Ize1/(Fe1*xe1));

% Spin-up to artificial grav over 1 month % 1. Spin up to .38g % 2. Add .02g additional each day (31 days to complete) to achieve 1g Fe2 = 314.2570; % Thrust (N) xe2 = re+xe1; % Moment Arm (m) xs2 = rs+xs1;

% Mass Fractions wza(1) = sqrt((1.0*9.81)/re); % Ang vel for .38g on deployed tether (rad/s) GOING BACKWARDS SO NOW 1g! add(1) = 1.0;

% Tangential velocites vt_erv0 = wze0*xe1; % Tan vel of connected erv/spent-stage after thrust vt_erv1 = wze2*xe2; % Tan vel of ERV after deployment, before 2rpm spin-up vt_erv2 = wza(1)*xe2; % Tan vel of ERV during constant 2rpm spin stage vt_erv3 = wzf*xe2; % Tan vel of ERV during constant 1g spin stage vt_isru0 = wze0*xs1; % Tan vel of connected erv/spent-stage after thrust vt_isru1 = wze2*xs2; % Tan vel of ISRU after deployment, before 2rpm spin-up vt_isru2 = wza(1)*xs2; % Tan vel of ISRU during constant 2rpm spin stage vt_isru3 = wzf*xs2; % Tan vel of ISRU during constant 1g spin stage

156 for i = 1:31 add(i+1) = add(i)-.02; wza(i+1) = sqrt((add(i+1)*9.81)/re); wz_add(i) = abs(wza(i+1)-wza(i)); % Addtional ang vel needed to add .02g (rad/s) grav_burn_31(i) = (wz_add(i))*(Ize2/(Fe2*xe2)); % Burn time (s) for each incremental burn DV_build(i)= wz_add(i)*(xe2+xs2)*1.02; % Tan vel of ERV during constant 2rpm spin stage Mfraction_build(i) = exp(-DV_build(i)/(g_0*Isp_RCS)); Minitial_build(i) = Mfinal_build(i)/Mfraction_build(i); prop_build_mass(i) = Minitial_build(i) - Mfinal_build(i); % prop on ERV and ISRU Mfinal_build(i+1) = Minitial_build(i); end %[End Annie and Debbie's contributions]

% Spin-up phase, tether deployed (spin up to 0.38g) Mfinal_sul = Mfinal_build(31); DV_sul = (vt_erv2+vt_isru2)*1.02; Mfraction_sul = exp(-DV_sul/(g_0*Isp_RCS)); Minitial_sul = Mfinal_sul/Mfraction_sul; prop_sul_mass = Minitial_sul - Mfinal_sul; % prop on ISRU and ERV Mfinal_sus = Minitial_sul;

% Spin-up phase, tether not deployed DV_sus = (vt_erv0+vt_isru0)*1.02; Mfraction_sus = exp(-DV_sus/(g_0*Isp_RCS)); Minitial_sus = Mfinal_sus/Mfraction_sus; prop_sus_mass = Minitial_sus - Mfinal_sus; % prop on ISRU and ERV

157 prop_spin_up_mass = prop_sus_mass + prop_sul_mass; % prop on ISRU and ERV Mfinal_dock = Minitial_sus;

% Docking phase Mfraction_dock = exp(-DV_dock/(g_0*Isp_RCS)); Minitial_dock = Mfinal_dock/Mfraction_dock; prop_dock_mass = Minitial_dock - Mfinal_dock; % prop split btwn ISRU and ERV according to weights Mfinal_return_flight = Minitial_dock;

% ERV orbit maint. Mfraction_station = exp(-DV_station/(g_0*Isp_RCS)); Minitial_station = ERV_mass/Mfraction_station; prop_station_mass = ERV_mass - Minitial_station; %prop on ERV ERV_mass = ERV_mass + prop_station_mass*1.2; % update ERV weight

% Landing phase Mfraction_landing = exp(-(DV_retro+(g_mars*Tb_retro))/(g_0*Isp_retro)); Minitial_landing = (CTV_mass+ERV_mass+GRG_mass+DESC_mass+ISRU_mass)/Mfraction_landing; prop_landing_mass = Minitial_landing - landing_mass; % prop on DESC Mfinal_hover = Minitial_landing;

% Hovering phase Mfraction_hover = exp(-(DV_hover+(g_mars*Tb_hover))/(g_0*Isp_retro)); Minitial_hover = Mfinal_hover/Mfraction_hover; prop_hover_mass = Minitial_hover - Mfinal_hover; % prop on DESC Mfinal_orbit = Minitial_hover + sheild_drop_mass; % heat sheild jettisoned

% Parking orbit perigee burn phase Mfraction_orbit = exp(-DV_orbit/(g_0*Isp_retro));

158 Minitial_orbit = Mfinal_orbit/Mfraction_orbit; prop_orbit_mass = Minitial_orbit - Mfinal_orbit; % prop on ERV Mfinal_RCS1 = Minitial_orbit;

% Enroute maneuvering/attitude phase (trip TO Mars) Mfraction_RCS1 = exp(-DV_RCS/(g_0*Isp_RCS)); Minitial_RCS1 = Mfinal_RCS1/Mfraction_RCS1; prop_RCS1_mass = Minitial_RCS1 - Mfinal_RCS1; % split between DESC and ERV (according to CG considerations....?) launched_mass = Minitial_RCS1;

%%%%%%%%%%%%%%%%%%%%%%%%%%% % Delta V and Prop Masses % %%%%%%%%%%%%%%%%%%%%%%%%%%%

% Total delta V required for RCS/Retro ERVTOT_DV = DV_sul + DV_sus + 2*DV_RCS + sum(DV_build) + DV_orbit + DV_retro + DV_hover + DV_earth_land + DV_station + DV_dock;

% Total Hab RCS/spin/retro propellant mass required prop_total_mass = prop_landing_mass + prop_hover_mass + prop_orbit_mass + prop_RCS1_mass + prop_RCS2_mass + prop_station_mass + prop_dock_mass + sum(prop_build_mass) + prop_spin_up_mass; % metric tons prop_on_ERV_mass = prop_orbit_mass + prop_station_mass + (Me/ (Me+DESC_mass))*prop_RCS1_mass + (Me/(Ms+Me))*(prop_RCS2_mass + sum(prop_build_mass) + prop_spin_up_mass + prop_dock_mass); prop_on_ISRU_mass = (Ms/(Ms+Me))*(prop_RCS2_mass + sum(prop_build_mass) + prop_spin_up_mass + prop_dock_mass);

159 prop_on_DESC_mass = prop_landing_mass + prop_hover_mass + (DESC_mass/ (Me+DESC_mass))*prop_RCS1_mass; prop_on_CTV_mass = prop_earth_arrival_mass;

%%%%%%%%%%%%%%%%%% % Engine Sizing % %%%%%%%%%%%%%%%%%%

% This is a system-level mass estimate and includes the feedsystem... more accurate geometry can be added later % Thrust level F_ISRU = launched_mass*1000*a_0 % N F_ERV = F_ISRU; F_DESC_RCS = F_ISRU; F_CTV = CTV_mass*1000*a_0; % N F_DESC = 1.2*landing_mass*1000*g_mars % N 1.2 is the F/W ratio

% Engine Physical Dimensions pg. 195 - 199 ME_ISRU = F_ISRU/(g_0*(0.006098*F_ISRU + 13.44)) % kg ME_ISRU_total = ME_ISRU*10; LE_ISRU = (0.0054*F_ISRU + 31.92)/100 % m DE_ISRU = (0.00357*F_ISRU + 14.48)/100 % m ME_ERV = ME_ISRU; ME_ERV_total = ME_ISRU_total; LE_ERV = LE_ISRU; DE_ERV = DE_ISRU; ME_CTV = F_CTV/(g_0*(0.006098*F_CTV + 13.44)); % kg ME_CTV_total = ME_CTV*10; LE_CTV = (0.0054*F_CTV + 31.92)/100; % m

160 DE_CTV = (0.00357*F_CTV + 14.48)/100; % m ME_DESC = F_DESC/(g_0*(25.2*log(F_DESC) - 80.7)) % kg book page 195 ME_DESC_RCS = ME_ISRU; ME_DESC_RCS_total = ME_ISRU_total; LE_DESC = (0.000030*F_DESC + 327.7)/100 % m DE_DESC = (0.00002359*F_DESC + 181.3)/100 % m LE_DESC_RCS = LE_ISRU; DE_DESC_RCS = DE_ISRU; ME_DESC_total = ME_DESC_RCS_total + ME_DESC; total_engine_weight = ME_ISRU_total + ME_ERV_total + ME_CTV_total + ME_DESC_total; landing_engine_weight = ME_ISRU_total + ME_CTV_total + ME_DESC_total;

%%%%%%%%%%%%%%% % Tank Sizing % %%%%%%%%%%%%%%%

% Propellant Masses ox_total = (O_F/(O_F+1))*(prop_total_mass*1000); % kg fu_total = (1/(O_F+1))*(prop_total_mass*1000); % kg ox_on_ERV_mass = (O_F/(O_F+1))*(prop_on_ERV_mass*1000); % kg fu_on_ERV_mass = (1/(O_F+1))*(prop_on_ERV_mass*1000); % kg ox_on_CTV_mass = (O_F/(O_F+1))*(prop_on_CTV_mass*1000); % kg fu_on_CTV_mass = (1/(O_F+1))*(prop_on_CTV_mass*1000); % kg ox_on_ISRU_mass = (O_F/(O_F+1))*(prop_on_ISRU_mass*1000); % kg fu_on_ISRU_mass = (1/(O_F+1))*(prop_on_ISRU_mass*1000); % kg ox_on_DESC_mass = (O_F/(O_F+1))*(prop_on_DESC_mass*1000); % kg fu_on_DESC_mass = (1/(O_F+1))*(prop_on_DESC_mass*1000); % kg

161 % Propellant Volumes ox_volume = ox_total/rho_NTO*1.03; % m^3 Extra 5% for ullage fu_volume = fu_total/rho_MMH*1.03; % m^3 ox_on_ERV_volume = ox_on_ERV_mass/rho_NTO*1.03; % m^3 fu_on_ERV_volume = fu_on_ERV_mass/rho_MMH*1.03; % m^3 ox_on_CTV_volume = ox_on_CTV_mass/rho_NTO*1.03; % m^3 fu_on_CTV_volume = fu_on_CTV_mass/rho_MMH*1.03; % m^3 ox_on_ISRU_volume = ox_on_ISRU_mass/rho_NTO*1.03; % m^3 fu_on_ISRU_volume = fu_on_ISRU_mass/rho_MMH*1.03; % m^3 ox_on_DESC_volume = ox_on_DESC_mass/rho_NTO*1.03; % m^3 fu_on_DESC_volume = fu_on_DESC_mass/rho_MMH*1.03; % m^3

% Propellant Tank Pressures V_flow = 10; % m/s typical flow velocity m_dot = 0.19896; % kg/s based on 0.18 m exit diameter and tep parameters (for RCS engines) Pc = 1048003; % Pa = 152 psi chamber pressure DP_feed = 50000; % Pa, pressure drop through feedsystem DP_dynamic_ox = 0.5*rho_NTO*(V_flow)^2; % dynamic pressure drops DP_dynamic_fu = 0.5*rho_MMH*(V_flow)^2; DP_injector = 0.3*Pc; % Delta P through injector... historically 20%-30% DP_total_ox = DP_feed + DP_dynamic_ox + DP_injector; DP_total_fu = DP_feed + DP_dynamic_fu + DP_injector; ox_on_ERV_press = (10^(-0.1281*(log(ox_on_ERV_volume)-0.2588)))*10^6; % Pa fu_on_ERV_press = (10^(-0.1281*(log(fu_on_ERV_volume)-0.2588)))*10^6; % Pa ox_on_CTV_press = (10^(-0.1281*(log(ox_on_CTV_volume)-0.2588)))*10^6; % Pa fu_on_CTV_press = (10^(-0.1281*(log(fu_on_CTV_volume)-0.2588)))*10^6; % Pa ox_on_ISRU_press = (10^(-0.1281*(log(ox_on_ISRU_volume)-0.2588)))*10^6; % Pa fu_on_ISRU_press = (10^(-0.1281*(log(fu_on_ISRU_volume)-0.2588)))*10^6; % Pa ox_on_DESC_press = (10^(-0.1281*(log(ox_on_DESC_volume)-0.2588)))*10^6; % Pa fu_on_DESC_press = (10^(-0.1281*(log(fu_on_DESC_volume)-0.2588)))*10^6; % Pa

162 % Pressurant tank pressures Ti = 300; % K, temp of pressurant tank before blowdown Tf = 200; % K, temp of pressurant tank after blowdown %Tf = Ti*(pf/pi)^((gamma-1)/gamma) ERV_press_vol = ox_on_ERV_volume + fu_on_ERV_volume; ERV_press_mass = ((ox_on_ERV_press+fu_on_ERV_press)/2)*ERV_press_vol*Mw_He/(Ru*Tf); CTV_press_vol = ox_on_CTV_volume + fu_on_CTV_volume; CTV_press_mass = ((ox_on_CTV_press+fu_on_CTV_press)/2)*CTV_press_vol*Mw_He/(Ru*Tf); ISRU_press_vol = ox_on_ISRU_volume + fu_on_ISRU_volume; ISRU_press_mass = ((ox_on_ISRU_press+fu_on_ISRU_press)/2)*ISRU_press_vol*Mw_He/(Ru*Tf); DESC_press_vol = ox_on_DESC_volume + fu_on_DESC_volume; DESC_press_mass = ((ox_on_DESC_press+fu_on_DESC_press)/2)*DESC_press_vol*Mw_He/(Ru*Tf); press_on_ERV_vol = ERV_press_mass*Ru*Ti/ ((ox_on_ERV_press+fu_on_ERV_press+DP_total_ox+DP_total_fu)*Mw_He); press_on_CTV_vol = CTV_press_mass*Ru*Ti/ ((ox_on_CTV_press+fu_on_CTV_press+DP_total_ox+DP_total_fu)*Mw_He); press_on_ISRU_vol = ISRU_press_mass*Ru*Ti/ ((ox_on_ISRU_press+fu_on_ISRU_press+DP_total_ox+DP_total_fu)*Mw_He); press_on_DESC_vol = DESC_press_mass*Ru*Ti/ ((ox_on_DESC_press+fu_on_DESC_press+DP_total_ox+DP_total_fu)*Mw_He);

% Tank Lengths Loxt_ERV = (ox_on_ERV_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); % propellant tanks are cylindrical Lfut_ERV = (fu_on_ERV_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Dprt_ERV = 2*(3*press_on_ERV_vol/(4*pi))^(1/3); % pressurant tanks are spherical

163 Loxt_CTV = (ox_on_CTV_volume - (pi*D_prop_CTV^3)/6)/((pi*D_prop_CTV^2)/4); Lfut_CTV = (fu_on_CTV_volume - (pi*D_prop_CTV^3)/6)/((pi*D_prop_CTV^2)/4); Dprt_CTV = 2*(3*press_on_CTV_vol/(4*pi))^(1/3); Loxt_ISRU = (ox_on_ISRU_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); % propellant tanks are cylindrical Lfut_ISRU = (fu_on_ISRU_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Dprt_ISRU = 2*(3*press_on_ISRU_vol/(4*pi))^(1/3); % pressurant tanks are spherical Loxt_DESC= (ox_on_DESC_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Lfut_DESC = (fu_on_DESC_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Dprt_DESC = 2*(3*press_on_DESC_vol/(4*pi))^(1/3);

% Tank Surface Areas Soxt_ERV = pi*D_prop^2 + pi*D_prop*Loxt_ERV; Sfut_ERV = pi*D_prop^2 + pi*D_prop*Lfut_ERV; Sprt_ERV = pi*Dprt_ERV^2; Soxt_CTV = pi*D_prop_CTV^2 + pi*D_prop_CTV*Loxt_CTV; Sfut_CTV = pi*D_prop_CTV^2 + pi*D_prop_CTV*Lfut_CTV; Sprt_CTV = pi*Dprt_CTV^2; Soxt_ISRU = pi*D_prop^2 + pi*D_prop*Loxt_ISRU; Sfut_ISRU = pi*D_prop^2 + pi*D_prop*Lfut_ISRU; Sprt_ISRU = pi*Dprt_ISRU^2; Soxt_DESC = pi*D_prop^2 + pi*D_prop*Loxt_DESC; Sfut_DESC = pi*D_prop^2 + pi*D_prop*Lfut_DESC; Sprt_DESC= pi*Dprt_DESC^2;

% Tank Wall Thicknesses tw_oxt_ERV = (fs*D_prop*ox_on_ERV_press)/(2*Ftu_g); tw_fut_ERV = (fs*D_prop*fu_on_ERV_press)/(2*Ftu_g);

164 tw_prt_ERV = (fs*Dprt_ERV*(ox_on_ERV_press+fu_on_ERV_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g); tw_oxt_CTV = (fs*D_prop_CTV*ox_on_CTV_press)/(2*Ftu_g); tw_fut_CTV = (fs*D_prop_CTV*fu_on_CTV_press)/(2*Ftu_g); tw_prt_CTV = (fs*Dprt_CTV*(ox_on_CTV_press+fu_on_CTV_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g); tw_oxt_ISRU = (fs*D_prop*ox_on_ISRU_press)/(2*Ftu_g); tw_fut_ISRU = (fs*D_prop*fu_on_ISRU_press)/(2*Ftu_g); tw_prt_ISRU= (fs*Dprt_ISRU*(ox_on_ISRU_press+fu_on_ISRU_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g); tw_oxt_DESC = (fs*D_prop*ox_on_DESC_press)/(2*Ftu_g); tw_fut_DESC = (fs*D_prop*fu_on_DESC_press)/(2*Ftu_g); tw_prt_DESC = (fs*Dprt_DESC*(ox_on_DESC_press+fu_on_DESC_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g);

% Tank Masses Moxt_ERV = rho_g*Soxt_ERV*tw_oxt_ERV + rho_al*Soxt_ERV*tw_al; % kg, tank mass includes aluminum liner Mfut_ERV = rho_g*Sfut_ERV*tw_fut_ERV + rho_al*Sfut_ERV*tw_al; Mprt_ERV = rho_g*Sprt_ERV*tw_prt_ERV; Moxt_CTV = rho_g*Soxt_CTV*tw_oxt_CTV + rho_al*Soxt_CTV*tw_al; Mfut_CTV = rho_g*Sfut_CTV*tw_fut_CTV + rho_al*Sfut_CTV*tw_al; Mprt_CTV = rho_g*Sprt_CTV*tw_prt_CTV; Moxt_ISRU = rho_g*Soxt_ISRU*tw_oxt_ISRU + rho_al*Soxt_ISRU*tw_al; % kg, tank mass includes aluminum liner Mfut_ISRU = rho_g*Sfut_ISRU*tw_fut_ISRU + rho_al*Sfut_ISRU*tw_al; Mprt_ISRU = rho_g*Sprt_ISRU*tw_prt_ISRU;

165 Moxt_DESC = rho_g*Soxt_DESC*tw_oxt_DESC + rho_al*Soxt_DESC*tw_al; Mfut_DESC = rho_g*Sfut_DESC*tw_fut_DESC + rho_al*Sfut_DESC*tw_al; Mprt_DESC = rho_g*Sprt_DESC*tw_prt_DESC; total_tank_mass = Moxt_ERV + Mfut_ERV + Mprt_ERV + Moxt_CTV + Mfut_CTV + Mprt_CTV + Moxt_ISRU + Mfut_ISRU + Mprt_ISRU + Moxt_DESC + Mfut_DESC + Mprt_DESC; % kg, total mass of tanks total_liner_mass = rho_al*tw_al*(Soxt_ERV + Sfut_ERV + Soxt_CTV + Sfut_CTV + Soxt_ISRU + Sfut_ISRU + Soxt_DESC + Sfut_DESC); % kg, total mass of tank liners

ERV_tank_mass = Moxt_ERV + Mfut_ERV + Mprt_ERV; CTV_tank_mass = Moxt_CTV + Mfut_CTV + Mprt_CTV; ISRU_tank_mass = Moxt_ISRU + Mfut_ISRU + Mprt_ISRU; DESC_tank_mass = Moxt_DESC + Mfut_DESC + Mprt_DESC;

%%%%%%%%%%%%%% % Inert mass % %%%%%%%%%%%%%%

% According to the AAE 439/539 text, we add 10% of the total inert mass for support structure ERV_support_mass = 0.10*(ME_ERV_total + ERV_tank_mass); ERV_inert_mass = ME_ERV_total + ERV_tank_mass + ERV_support_mass; CTV_support_mass = 0.10*(ME_CTV_total + CTV_tank_mass); CTV_inert_mass = ME_CTV_total + CTV_tank_mass + CTV_support_mass; ISRU_support_mass = 0.10*(ME_ISRU_total + ISRU_tank_mass); ISRU_inert_mass = ME_ISRU_total + ISRU_tank_mass + ISRU_support_mass; DESC_support_mass = 0.10*(ME_DESC_total + ME_DESC + DESC_tank_mass); DESC_inert_mass = ME_DESC_total + ME_DESC + DESC_tank_mass + DESC_support_mass;

166 inert_total_mass = ERV_inert_mass + CTV_inert_mass + ISRU_inert_mass + DESC_inert_mass;

%%%%%%%%%% % Output % %%%%%%%%%% fprintf(1,'%1s\n',' '); fprintf(1,'%19s\n','Delta V Budget, m/s'); fprintf(1,'%1s\n',' '); fprintf(1,'%42s %8.2f\n','Landing DV:',DV_retro); fprintf(1,'%42s %8.2f\n','Hovering DV:',DV_hover); fprintf(1,'%42s %8.2f\n','Mars Orbit Entry DV:',DV_orbit); fprintf(1,'%42s %8.2f\n','Mars Orbit Maintenance DV (ERV):',DV_station); fprintf(1,'%42s %8.2f\n','Mars Orbit Docking DV (ERV to CTV+ISRU):',DV_dock); fprintf(1,'%42s %8.2f\n','Spin-up DV, tether deployed:',DV_sul); fprintf(1,'%42s %8.2f\n','Spin-up DV, tether not deployed:',DV_sus); fprintf(1,'%42s %8.2f\n','Spin-up DV, transition from 0.38g to 1.0g:',sum(DV_build)); fprintf(1,'%42s %8.2f\n','Enroute to Mars RCS/Maneuvering DV:',DV_RCS); fprintf(1,'%42s %8.2f\n','Enroute to Earth RCS/Maneuvering DV:',DV_RCS); fprintf(1,'%42s %8.2f\n','Total DV:',ERVTOT_DV); fprintf(1,'%1s\n',' '); fprintf(1,'%6s\n','Masses'); fprintf(1,'%33s %15s %15s %15s %15s %15s\n',' ',' ERV Subsystem',' CTV Subsystem',' ISRU Subsystem',' DESC Subsystem',' Total'); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Descent Engine mass (kg): ',0,0,0,ME_DESC,ME_DESC); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','RCS Engine mass (x10) (kg): ',ME_ERV_total,ME_CTV_total,ME_ISRU_total,ME_DESC_RCS_total,ME_ERV_total+ ME_CTV_total+ME_ISRU_total+ME_DESC_RCS_total);

167 fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Oxidizer tank masses (kg): ',Moxt_ERV,Moxt_CTV,Moxt_ISRU,Moxt_DESC,Moxt_ERV+Moxt_CTV+Moxt_ISRU+M oxt_DESC); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Fuel tank masses (kg): ',Mfut_ERV,Mfut_CTV,Mfut_ISRU,Mfut_DESC,Mfut_ERV+Mfut_CTV+Mfut_ISRU+Mfut _DESC); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Pressurant tank masses (kg): ',Mprt_ERV,Mprt_CTV,Mprt_ISRU,Mprt_DESC,Mprt_ERV+Mprt_CTV+Mprt_ISRU+Mprt _DESC); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Struct. support mass (kg): ',ERV_support_mass,CTV_support_mass,ISRU_support_mass,DESC_support_mass,E RV_support_mass+CTV_support_mass+ISRU_support_mass+DESC_support_mass); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Stage inert mass (kg): ',ERV_inert_mass,CTV_inert_mass,ISRU_inert_mass,DESC_inert_mass,inert_total_ma ss); fprintf(1,'%1s\n',' '); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Oxidizer masses (kg): ',ox_on_ERV_mass,ox_on_CTV_mass,ox_on_ISRU_mass,ox_on_DESC_mass,ox_tota l); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Fuel masses (kg): ',fu_on_ERV_mass,fu_on_CTV_mass,fu_on_ISRU_mass,fu_on_DESC_mass,fu_total); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Pressurant masses (kg): ',ERV_press_mass,CTV_press_mass,ISRU_press_mass,DESC_press_mass,ERV_pre ss_mass+CTV_press_mass+ISRU_press_mass+DESC_press_mass); fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Total prop masses (kg): ',ox_on_ERV_mass+fu_on_ERV_mass+ERV_press_mass,ox_on_CTV_mass+fu_on_C TV_mass+CTV_press_mass,ox_on_ISRU_mass+fu_on_ISRU_mass+ISRU_press_ma ss,ox_on_DESC_mass+fu_on_DESC_mass+DESC_press_mass,ox_total+fu_total+ER V_press_mass+CTV_press_mass+ISRU_press_mass+DESC_press_mass); fprintf(1,'%1s\n',' ');

168 fprintf(1,'%33s %15.2f %15.2f %15.2f %15.2f %15.2f\n','Total stage masses (kg): ',ox_on_ERV_mass+fu_on_ERV_mass+ERV_press_mass+ERV_inert_mass,ox_on_CT V_mass+fu_on_CTV_mass+CTV_press_mass+CTV_inert_mass,ox_on_ISRU_mass+f u_on_ISRU_mass+ISRU_press_mass+ISRU_inert_mass,ox_on_DESC_mass+fu_on_ DESC_mass+DESC_press_mass+DESC_inert_mass,ox_total+fu_total+ERV_press_m ass+CTV_press_mass+ISRU_press_mass+DESC_press_mass+inert_total_mass); fprintf(1,'%1s\n',' '); fprintf(1,'%15s\n','Tank and Engine Geometry'); fprintf(1,'%33s %15s %15s\n',' ',' Length (m)',' Diameter (m)'); fprintf(1,'%33s %15.2f %15.2f\n','Retro Engine: ',LE_DESC,DE_DESC); fprintf(1,'%33s %15s %15.2f\n','Retro Engine Throat: ',' N/A',DE_DESC/Ae_At); fprintf(1,'%33s %15.2f %15.2f\n','RCS Engines on ERV (each): ',LE_ERV,DE_ERV); fprintf(1,'%33s %15.2f %15.2f\n','RCS Engines on CTV (each): ',LE_CTV,DE_CTV); fprintf(1,'%33s %15.2f %15.2f\n','RCS Engines on ISRU (each): ',LE_ISRU,DE_ISRU); fprintf(1,'%33s %15.2f %15.2f\n','RCS Engines on DESC (each): ',LE_DESC_RCS,DE_DESC_RCS); fprintf(1,'%33s %15.2f %15.2f\n','Oxidizer tank on ERV: ',Loxt_ERV,D_prop); fprintf(1,'%33s %15.2f %15.2f\n','Fuel tank on ERV: ',Lfut_ERV,D_prop); fprintf(1,'%33s %15.2f %15.2f\n','Oxidizer tank on CTV: ',Loxt_CTV,D_prop_CTV); fprintf(1,'%33s %15.2f %15.2f\n','Fuel tank on CTV: ',Lfut_CTV,D_prop_CTV); fprintf(1,'%33s %15.2f %15.2f\n','Oxidizer tank on ISRU: ',Loxt_ISRU,D_prop); fprintf(1,'%33s %15.2f %15.2f\n','Fuel tank on ISRU: ',Lfut_ISRU,D_prop); fprintf(1,'%33s %15.2f %15.2f\n','Oxidizer tank on DESC: ',Loxt_DESC,D_prop); fprintf(1,'%33s %15.2f %15.2f\n','Fuel tank on DESC: ',Lfut_DESC,D_prop); fprintf(1,'%33s %15s %15.2f\n','Pressurant tank on ERV: ',' Spherical',Dprt_ERV); fprintf(1,'%33s %15s %15.2f\n','Pressurant tank on CTV: ',' Spherical',Dprt_CTV);

169 fprintf(1,'%33s %15s %15.2f\n','Pressurant tank on ISRU: ',' Spherical',Dprt_ISRU); fprintf(1,'%33s %15s %15.2f\n','Pressurant tank on DESC: ',' Spherical',Dprt_DESC); fprintf(1,'%1s\n',' '); F_ISRU F_ERV F_DESC_RCS F_CTV F_DESC Mfraction_hover

170 HAB Attitude Control % Casey Kirchner % AAE 450 Spring 2001 % Hab RCS, Tether Spin, and Mars surface landing retro rocket propellant budget and sizing code clear all; % Things to add % Iterate on final blowdown temp for a converged pressurant mass % Turbopump for retro engine? % Recent additions.... % 3/26 (midnight) changed nitrogen pressurant to helium... total stage mass 9975.86 --> 9868.31 % 3/26 (midnight) changed DV safety factors from 5% to 2%... total stage mass 9868.31 --> 9335.61 % 3/26 (midnight) changed ullage from 5% to 3%... total stage mass 9335.61 --> 9334.14 % 3/26 (midnight) changed Fguess in the spin-up portion from 666 N to the real number... no effect on mass % 3/26 (midnight) changed hover DV to zero... total stage mass 9334.14 --> 9013.64

%%%%%%%%%%%%% % Constants % %%%%%%%%%%%%% g_0 = 9.81; % m/s^2 This is a scaling factor to convert between force and mass, NOT necessarily to denote Earth's gravitational influence (therefore it works for RCS as well as launch). a_0 = 0.005; % m/s^2 Acceleration of spacecraft under thrusting, based on 10 N thrusters on Galileo's 2 tonne bus g_mars = 0.38*g_0; % m/s^2 Acceleration of gravity on Mars Ru = 8314.3; % J/kmol-K, Universal Gas Constant

171 gamma = 1.66; % for helium Mw_N2 = 14.007*2; % kg/kmol, molecular weight of nitrogen Mw_He = 4.002602; D_prop = 1.0; % m, propellant tank diameter (must be 1.1 or less to prevent negative tank length!) rho_g = 1550; % kg/m^3 density of graphite Ftu_g = 2340000000; % Pa, material strength of graphite fs = 1.25; % safety factor rho_al = 2770; % kg/m^3 (from ME 315 book... Incropera & DeWitt... alloy 2024-T6) rho_MMH = 0.874*1000; % density of fuel - convert from g/cc (TEP output) to kg/m^3 rho_NTO = 1.431*1000; % density of oxidizer O_F = 1.6; % O/F ratio tw_al = 0.5/1000; % thickness of aluminum tank liner 1/2 mm --> m Ae_At = 40; % retro rocket expansion ratio

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% HAB RCS/Spin/Retro Propulsion Calculations %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Accept Hab inputs fprintf(1,'%1s\n',' '); disp('Hab RCS Inputs') Isp_RCS = 330;%input('Enter Isp of Hab RCS engines: '); % 330 Isp_retro = 300;%input('Enter Isp of retro engines: '); % 300 HAB_to_CM = 105;%20 + input('Enter length of tether from Hab to system CM (m): '); % Engines 20 m away from tether attach point on 38 m long Hab... 85 m away from system cm tether_rot_rate = 2;%input('Enter rotation rate of Hab tether (rpm): '); % 2 landing_mass = 53;%input('Enter mass of Hab to land on Mars (tonnes): '); % 53 NTR_spent_mass = 37.5;%input('Enter mass of Hab spent NTR stage (tonnes): '); % 37.5

172 heat_sheild_mass = 22;%input('Enter total mass of Hab heat sheild (tonnes): '); % 22 sheild_drop_mass = 17;%input('Enter mass of Hab heat that drops off before landing (tonnes): '); %17 % Delta V required for course corrections per Longuski (assume same for HAB and ERV) DV_RCS = 100*1.02; % m/s % Delta V required for perigee lowering/raising in parking orbit from Nick Saadah... assuming 75 tonne veh. weight (actually 79, so will have to change this number) DV_orbit = 20; %10*2; %m/s One 10 m/s burn to raise, another to lower perigee for landing Nick now says 24 would be better % Delta V required to land Hab on surface of Mars after parachute deployment % Assume parachute is at terminal velocity so the only acceleration is Mars gravity DV_retro = 74.4*1.02;%69.34*1.02; %82*1.02; % m/s Number from Jeremy Davis.... assume 200 m height at engine on, 10 s burn to surface and no drag term... new number = 69.34 m/s Tb_retro = 32.8;%11.6; %10; % s, time to burn while landing, new number = 32.8 s Tb_hover = 10;%20; % s, time to hover while looking for landing site DV_hover = 0;%(g_0*Isp_retro*log(1/0.97) - g_mars*Tb_hover)*1.02; % m/s prop. required to hover... guessing mass fraction on first term % Apply rocket equation to solve for Hab mass fractions: DV = g_0*Isp*ln(Mfinal/Minitial) - g_local*tb (neglect drag term); tether_ang_rate = 2*pi*tether_rot_rate/60; % convert from rpm to rad/s HAB_tang_vel = tether_ang_rate*HAB_to_CM; % m/s % Landing phase Mfraction_landing = exp(-(DV_retro+(g_mars*Tb_retro))/(g_0*Isp_retro)); Minitial_landing = landing_mass/Mfraction_landing; prop_landing_mass = Minitial_landing - landing_mass; Mfinal_hover = Minitial_landing;

173 % Hovering phase Mfraction_hover = exp(-(DV_hover+(g_mars*Tb_hover))/(g_0*Isp_retro)); Minitial_hover = Mfinal_hover/Mfraction_hover; prop_hover_mass = Minitial_hover - Mfinal_hover; Mfinal_orbit = Minitial_hover + sheild_drop_mass; % heat sheild jettisoned

% Parking orbit perigee burn phase Mfraction_orbit = exp(-DV_orbit/(g_0*Isp_retro)); Minitial_orbit = Mfinal_orbit/Mfraction_orbit; prop_orbit_mass = Minitial_orbit - Mfinal_orbit; Mfinal_RCS = Minitial_orbit;

% Enroute maneuvering/attitude phase Mfraction_RCS = exp(-DV_RCS/(g_0*Isp_RCS)); Minitial_RCS = Mfinal_RCS/Mfraction_RCS; spun_mass = Mfinal_RCS; prop_RCS_mass = Minitial_RCS - spun_mass; Mfinal_sul = Minitial_RCS;

% Spin up phase % [Annie's contribution] % Modified with my variable names % Initial Spin - Connected vehicles % Keep 20 N of tension on tether to keep it taut Lh = 30; % Hab length (m) [including HeatShield] Dh = 12; % Hab diameter (m) [including HeatSheild] Ixh1 = (Mfinal_sul*1000/12)*((3*(Dh/2)^2)+(4*Lh^2)); Iyh1 = 1.016e6; Izh1 = Ixh1; Ixh2 = 1.012e10; Iyh2 = Iyh1;

174 Izh2 = Ixh2; % Dynamic variables wzh2 = sqrt(20/(Mfinal_sul*1000*HAB_to_CM)); % (rad/s)Spin rate after deployment (before 2rpm spin) Fguess = 398.0273; % (N) Force generated by the thrusters xh1 = 20; % (m) Offset of thrust from cm (connexion btwn vehicles) xn1 = 20; % Offset of thruster from cm for NTR wzh0 = (Izh2*wzh2)/Izh1; % (rad/s)Initial spin rate needed (of connected vehicles) gload_hab = (xh1*wzh0^2)/g_0; burn_time_hab1 = wzh0*(Izh1/(Fguess*xh1));% (s) Burn time to generate om1 burn_time_hab2 = (tether_ang_rate-wzh2)*(Izh2/(Fguess*HAB_to_CM)); NTR_to_CM_su = HAB_to_CM*Mfinal_sul/NTR_spent_mass; % balance loads on either side of CM

% Tangential Velocities vt_hab0 = wzh0*xh1; % Tan vel. while hab/ntr connected, vt_hab1 = wzh2*HAB_to_CM; % Tan vel after deployment, before 2rpm spin-up vt_hab2 = tether_ang_rate*HAB_to_CM; % Tan vel after 2rpm spin-up vt_ntr0 = wzh0*xn1; % Tan vel of connected Hab/NTR (assumes NTR thruster at 20m) vt_ntr1 = wzh2*(xn1+NTR_to_CM_su); % Tan vel after deployment, before 2rpm spin-up vt_ntr2 = tether_ang_rate*(xn1+NTR_to_CM_su); % Tan vel after 2rpm spin-up % [End Annie's contribution]

DV_tether_sul = ((vt_hab2-vt_hab1)+(vt_ntr2-vt_ntr1))*1.02; % m/s Mfraction_sul = exp(-DV_tether_sul/(g_0*Isp_RCS));

175 Minitial_sul = Mfinal_sul/Mfraction_sul; prop_sul_mass = Minitial_sul - Mfinal_sul; Mfinal_sus = Minitial_sul; DV_tether_sus = (vt_hab0+vt_ntr0)*1.02; Mfraction_sus = exp(-DV_tether_sus/(g_0*Isp_RCS)); Minitial_sus = Mfinal_sus/Mfraction_sus; prop_sus_mass = Minitial_sus - Mfinal_sus; prop_spin_up_mass = prop_sus_mass + prop_sul_mass; launched_mass = Minitial_sus;

%%%%%%%%%%%%%%%%%%%%%%%%%%% % Delta V and Prop Masses % %%%%%%%%%%%%%%%%%%%%%%%%%%%

% Total delta V required for Hab RCS/Retro HAB_DV = DV_tether_sul + DV_tether_sus + DV_RCS + DV_orbit + DV_retro + DV_hover; % Total Hab RCS/spin/retro propellant mass required prop_total_mass = prop_landing_mass + prop_hover_mass + prop_orbit_mass + prop_RCS_mass + prop_spin_up_mass; % metric tons prop_on_HAB_mass = prop_landing_mass + prop_hover_mass + prop_orbit_mass + (prop_RCS_mass + prop_sul_mass)*(vt_hab2/(vt_hab2 + vt_ntr2)) + prop_sus_mass*(vt_hab0/(vt_hab0 + vt_ntr0)); prop_on_NTR_mass = (prop_RCS_mass + prop_sul_mass)*(vt_ntr2/(vt_hab2 + vt_ntr2)) + prop_sus_mass*(vt_ntr0/(vt_hab0 + vt_ntr0));

176 %%%%%%%%%%%%%%%%%% % Engine Sizing % %%%%%%%%%%%%%%%%%%

% This is a system-level mass estimate and includes the feedsystem... more accurate geometry can be added later % Thrust level F_HAB = launched_mass*1000*a_0; % N, coupled thrusting, Hab contribution F_NTR = NTR_spent_mass*1000*a_0; % N, coupled thrusting, NTR contribution F_descent = 1.76*landing_mass*1000*g_mars; % N 1.2 is the F/W ratio USE 1.76

% Engine Physical Dimensions pg. 195 - 199 ME_HAB = F_HAB/(g_0*(0.006098*F_HAB + 13.44)) % kg ME_HAB_total = ME_HAB*10; LE_HAB = (0.0054*F_HAB + 31.92)/100 % m DE_HAB = (0.00357*F_HAB + 14.48)/100 % m ME_NTR = F_NTR/(g_0*(0.006098*F_NTR + 13.44)) % kg ME_NTR_total = ME_NTR*10; LE_NTR = (0.0054*F_NTR + 31.92)/100 % m DE_NTR = (0.00357*F_NTR + 14.48)/100 % m ME_descent = F_descent/(g_0*(25.2*log(F_descent) - 80.7)) % kg book page 195 LE_descent = (0.000030*F_descent + 327.7)/100 % m DE_descent = (0.00002359*F_descent + 181.3)/100 % m total_engine_weight = ME_HAB_total + ME_NTR_total + ME_descent; HAB_engine_weight = ME_HAB_total+ ME_descent; NTR_engine_weight = ME_NTR_total; % guess

177 %%%%%%%%%%%%%%% % Tank Sizing % %%%%%%%%%%%%%%%

% Propellant Masses ox_total = (O_F/(O_F+1))*(prop_total_mass*1000); % kg fu_total = (1/(O_F+1))*(prop_total_mass*1000); % kg ox_on_HAB_mass = (O_F/(O_F+1))*(prop_on_HAB_mass*1000); % kg fu_on_HAB_mass = (1/(O_F+1))*(prop_on_HAB_mass*1000); % kg ox_on_NTR_mass = (O_F/(O_F+1))*(prop_on_NTR_mass*1000); % kg fu_on_NTR_mass = (1/(O_F+1))*(prop_on_NTR_mass*1000); % kg

% Propellant Volumes ox_volume = ox_total/rho_NTO*1.03; % m^3 Extra 5% for ullage fu_volume = fu_total/rho_MMH*1.03; % m^3 ox_on_HAB_volume = ox_on_HAB_mass/rho_NTO*1.03; % m^3 fu_on_HAB_volume = fu_on_HAB_mass/rho_MMH*1.03; % m^3 ox_on_NTR_volume = ox_on_NTR_mass/rho_NTO*1.03; % m^3 fu_on_NTR_volume = fu_on_NTR_mass/rho_MMH*1.03; % m^3

% Propellant Tank Pressures V_flow = 10; % m/s typical flow velocity m_dot = 0.19896; % kg/s based on 0.18 m exit diameter and tep parameters (for RCS engines) Pc = 1048003; % Pa = 152 psi chamber pressure DP_feed = 50000; % Pa, pressure drop through feedsystem DP_dynamic_ox = 0.5*rho_NTO*(V_flow)^2; % dynamic pressure drops DP_dynamic_fu = 0.5*rho_MMH*(V_flow)^2; DP_injector = 0.3*Pc; % Delta P through injector... historically 20%-30% DP_total_ox = DP_feed + DP_dynamic_ox + DP_injector;

178 DP_total_fu = DP_feed + DP_dynamic_fu + DP_injector; ox_on_HAB_press = (10^(-0.1281*(log(ox_on_HAB_volume)-0.2588)))*10^6; % Pa fu_on_HAB_press = (10^(-0.1281*(log(fu_on_HAB_volume)-0.2588)))*10^6; % Pa ox_on_NTR_press = (10^(-0.1281*(log(ox_on_NTR_volume)-0.2588)))*10^6; % Pa fu_on_NTR_press = (10^(-0.1281*(log(fu_on_NTR_volume)-0.2588)))*10^6; % Pa

% Pressurant tank pressures Ti = 300; % K, temp of pressurant tank before blowdown Tf = 200; % K, temp of pressurant tank after blowdown HAB_press_vol = ox_on_HAB_volume + fu_on_HAB_volume; HAB_press_mass = ((ox_on_HAB_press+fu_on_HAB_press)/2)*HAB_press_vol*Mw_He/(Ru*Tf); NTR_press_vol = ox_on_NTR_volume + fu_on_NTR_volume; NTR_press_mass = ((ox_on_NTR_press+fu_on_NTR_press)/2)*NTR_press_vol*Mw_He/(Ru*Tf); press_on_HAB_vol = HAB_press_mass*Ru*Ti/ ((ox_on_HAB_press+fu_on_HAB_press+DP_total_ox+DP_total_fu)*Mw_He); press_on_NTR_vol = NTR_press_mass*Ru*Ti/ ((ox_on_NTR_press+fu_on_NTR_press+DP_total_ox+DP_total_fu)*Mw_He);

% Tank Lengths Loxt_HAB = (ox_on_HAB_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); % propellant tanks are cylindrical Lfut_HAB = (fu_on_HAB_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Dprt_HAB = 2*(3*press_on_HAB_vol/(4*pi))^(1/3); % pressurant tanks are spherical Loxt_NTR = (ox_on_NTR_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4); Lfut_NTR = (fu_on_NTR_volume - (pi*D_prop^3)/6)/((pi*D_prop^2)/4);

Dprt_NTR = 2*(3*press_on_NTR_vol/(4*pi))^(1/3);

% Tank Surface Areas

179 Soxt_HAB = pi*D_prop^2 + pi*D_prop*Loxt_HAB; Sfut_HAB = pi*D_prop^2 + pi*D_prop*Lfut_HAB; Sprt_HAB = pi*Dprt_HAB^2; Soxt_NTR = pi*D_prop^2 + pi*D_prop*Loxt_NTR; Sfut_NTR = pi*D_prop^2 + pi*D_prop*Lfut_NTR; Sprt_NTR = pi*Dprt_NTR^2;

% Tank Wall Thicknesses tw_oxt_HAB = (fs*D_prop*ox_on_HAB_press)/(2*Ftu_g); tw_fut_HAB = (fs*D_prop*fu_on_HAB_press)/(2*Ftu_g); tw_prt_HAB = (fs*Dprt_HAB*(ox_on_HAB_press+fu_on_HAB_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g); tw_oxt_NTR = (fs*D_prop*ox_on_NTR_press)/(2*Ftu_g); tw_fut_NTR = (fs*D_prop*fu_on_NTR_press)/(2*Ftu_g); tw_prt_NTR = (fs*Dprt_NTR*(ox_on_NTR_press+fu_on_NTR_press+DP_total_ox+DP_total_fu))/ (4*Ftu_g);

% Tank Masses Moxt_HAB = rho_g*Soxt_HAB*tw_oxt_HAB + rho_al*Soxt_HAB*tw_al; % kg, tank mass includes aluminum liner Mfut_HAB = rho_g*Sfut_HAB*tw_fut_HAB + rho_al*Sfut_HAB*tw_al; Mprt_HAB = rho_g*Sprt_HAB*tw_prt_HAB; Moxt_NTR = rho_g*Soxt_NTR*tw_oxt_NTR + rho_al*Soxt_NTR*tw_al; Mfut_NTR = rho_g*Sfut_NTR*tw_fut_NTR + rho_al*Sfut_NTR*tw_al; Mprt_NTR = rho_g*Sprt_NTR*tw_prt_NTR; total_tank_mass = Moxt_HAB + Mfut_HAB + Mprt_HAB + Moxt_NTR + Mfut_NTR + Mprt_NTR; % kg, total mass of tanks total_liner_mass = rho_al*tw_al*(Soxt_HAB + Sfut_HAB + Soxt_NTR + Sfut_NTR); % kg, total mass of tank liners

180 HAB_tank_mass = Moxt_HAB + Mfut_HAB + Mprt_HAB; NTR_tank_mass = Moxt_NTR + Mfut_NTR + Mprt_NTR;

%%%%%%%%%%%%%% % Inert mass % %%%%%%%%%%%%%%

% According to the AAE 439/539 text, we add 10% of the total inert mass for support structure HAB_support_mass = 0.10*(ME_HAB_total + ME_descent + HAB_tank_mass); NTR_support_mass = 0.10*(ME_NTR_total + NTR_tank_mass);

HAB_inert_mass = ME_HAB_total + ME_descent + HAB_tank_mass + HAB_support_mass;

NTR_inert_mass = ME_NTR_total + NTR_tank_mass + NTR_support_mass;

%%%%%%%%%% % Output % %%%%%%%%%% fprintf(1,'%1s\n',' '); fprintf(1,'%19s\n','Delta V Budget, m/s'); fprintf(1,'%1s\n',' '); fprintf(1,'%32s %8.2f\n','Landing DV:',DV_retro); fprintf(1,'%32s %8.2f\n','Hovering DV:',DV_hover); fprintf(1,'%32s %8.2f\n','Mars Orbit DV:',DV_orbit); fprintf(1,'%32s %8.2f\n','Spin-up DV, tether deployed:',DV_tether_sul); fprintf(1,'%32s %8.2f\n','Spin-up DV, tether not deployed:',DV_tether_sus); fprintf(1,'%32s %8.2f\n','Enroute RCS/Maneuvering DV:',DV_RCS); fprintf(1,'%32s %8.2f\n','Total DV:',HAB_DV); fprintf(1,'%1s\n',' ');

181 fprintf(1,'%6s\n','Masses'); fprintf(1,'%32s %15s %15s %15s\n',' ',' Hab Subsystem',' NTR Subsystem',' Total'); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Descent Engine mass (kg): ',ME_descent,0,ME_descent); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','RCS Engine mass (x10) (kg): ',ME_HAB_total,ME_NTR_total,ME_HAB_total+ME_NTR_total); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Oxidizer tank masses (kg): ',Moxt_HAB,Moxt_NTR,Moxt_HAB+Moxt_NTR); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Fuel tank masses (kg): ',Mfut_HAB,Mfut_NTR,Mfut_HAB+Mfut_NTR); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Pressurant tank masses (kg): ',Mprt_HAB,Mprt_NTR,Mprt_HAB+Mprt_NTR); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Struct. support mass (kg): ',HAB_support_mass,NTR_support_mass,HAB_support_mass+NTR_support_mass); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Stage inert mass (kg): ',HAB_inert_mass,NTR_inert_mass,HAB_inert_mass+NTR_inert_mass); fprintf(1,'%1s\n',' '); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Oxidizer masses (kg): ',ox_on_HAB_mass,ox_on_NTR_mass,ox_total); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Fuel masses (kg): ',fu_on_HAB_mass,fu_on_NTR_mass,fu_total); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Pressurant masses (kg): ',HAB_press_mass,NTR_press_mass,HAB_press_mass+NTR_press_mass); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Total prop masses (kg): ',ox_on_HAB_mass+fu_on_HAB_mass+HAB_press_mass,ox_on_NTR_mass+fu_on_N TR_mass+NTR_press_mass,ox_total+fu_total+HAB_press_mass+NTR_press_mass); fprintf(1,'%1s\n',' '); fprintf(1,'%32s %15.2f %15.2f %15.2f\n','Total stage masses (kg): ',ox_on_HAB_mass+fu_on_HAB_mass+HAB_press_mass+HAB_inert_mass,ox_on_NT

182 R_mass+fu_on_NTR_mass+NTR_press_mass+NTR_inert_mass,ox_total+fu_total+HA B_press_mass+NTR_press_mass+HAB_inert_mass+NTR_inert_mass); fprintf(1,'%1s\n',' '); fprintf(1,'%15s\n','Tank and Engine Geometry'); fprintf(1,'%32s %15s %15s\n',' ',' Length (m)',' Diameter (m)'); fprintf(1,'%32s %15.2f %15.2f\n','Retro Engine: ',LE_descent,DE_descent); fprintf(1,'%32s %15s %15.2f\n','Retro Engine Throat: ',' N/A',DE_descent/Ae_At); fprintf(1,'%32s %15.2f %15.2f\n','RCS Engines on Hab (each): ',LE_HAB,DE_HAB); fprintf(1,'%32s %15.2f %15.2f\n','RCS Engines on NTR (each): ',LE_NTR,DE_NTR); fprintf(1,'%32s %15.2f %15.2f\n','Oxidizer tank on Hab: ',Loxt_HAB,D_prop); fprintf(1,'%32s %15.2f %15.2f\n','Fuel tank on Hab: ',Lfut_HAB,D_prop); fprintf(1,'%32s %15.2f %15.2f\n','Oxidizer tank on NTR: ',Loxt_NTR,D_prop); fprintf(1,'%32s %15.2f %15.2f\n','Fuel tank on NTR: ',Lfut_NTR,D_prop); fprintf(1,'%32s %15s %15.2f\n','Pressurant tank on Hab: ',' Spherical',Dprt_HAB); fprintf(1,'%32s %15s %15.2f\n','Pressurant tank on NTR: ',' Spherical',Dprt_NTR); fprintf(1,'%1s\n',' '); F_HAB F_NTR F_descent weights = [launched_mass Minitial_sul Minitial_RCS Minitial_orbit (Minitial_hover+sheild_drop_mass) Minitial_landing landing_mass]; numbahs = [1 2 3 4 5 6 7]; plot(numbahs,weights) %title('Figure 1 Mass of Hab Vehicle after Earth Departure') xlabel('Earth Departure S p i n - u p RCS Mars Orbit Hover Land') ylabel('Mass (Tonnes)')

183 Appendix 5.1 ERV structures Kevin Dahya bending_mom.m dec=58.8; % deceleration due to gravity m/s^2 Mass=85000; Force=Mass*dec; Ra=Force/2; Rb=Force/2; Length=30.1; x1=8; x2=14.9; x3=15.1; %points at where cut was taken along length x4=28; y1=5.25; y2=5.25; y3=5.25; %Distance from neutral axis to point where stresses are determined y4=5.25; d1=8; d2=8; d3=8; %diameter at the different sections d4=10; t=0.0304; %thickness of skin Sigma_allowable_yield=320000000; FS = 2; %Safety Factor

I1=(3.14*d1^3*t)/8; I2=(3.14*d2^3*t)/8; I3=(3.14*d3^3*t)/8; %My Inertias I4=(3.14*d4^3*t)/10;

%b1n=25;

184 %b2n=25; %b3n=25; %b4n=25; %h1n=25; %h2n=25; %Base and heights for Czapla's Inertias %h3n=25; %h4n=25;

%Ixc1=(b1n*h1n^3)/36; %Ixc2=(b2n*h2n^3)/36; %Ixc3=(b3n*h3n^3)/36; %Ixc4=(b4n*h4n^3)/36; %Czapla's Inertias %Iyc1=(b1n^3*h1n)/48; %Iyc2=(b2n^3*h2n)/48; %Iyc3=(b3n^3*h3n)/48; %Iyc4=(b4n^3*h4n)/48;

V1=Force/2; M1=V1*x1 V2=-Force/2; M2=V2*x2 V3=Force-(Ra); %Calcs for shear and moments at M3=-(x3*(V3+Force)) %different cuts V4=Force-(Ra); M4=(V4*x4)+(Force*(Length/2)) sigma1=(M1*y1)/I1 sigma2=(M2*y2)/I2 sigma3=(M3*y3)/I3 %Bending Stresses sigma4=(M4*y4)/I4

185 sigma1abs=abs(sigma1); sigma2abs=abs(sigma2); sigma3abs=abs(sigma3); sigma4abs=abs(sigma4);

Sigmas=[sigma1abs sigma2abs sigma3abs sigma4abs]; Sigma_max=max(Sigmas)

MS = (Sigma_allowable_yield/(FS*Sigma_max))-1

186 Appendix 5.2.1 HAB Structures Nick Czapla

HAB images

187 Figure A5.2.1 HAB with ERV in background

Figure A5.2.2 HAB and NTR near Mars

188 Figure A5.2.5 HAB landed Figure A5.2.3 HAB landing near MAV

Figure A5.2.4 One small step…

189 Figure A5.2.7 Initial verification and comm deployment

Figure A5.2.6 RCS Engine removed and HAB settled

190 Figure A5.2.9 SRR and trailer with balloon

Figure A5.2.8 HAB with SRR and balloon

191 Figure A5.2.11 Initial concepts

Figure A5.2.10 SRR and trailer concept

192 Figure A5.2.13 IronCAD drawing of HAB landing

Figure A5.2.12 Initial concepts

193 Figure A5.2.15 IronCAD drawing of HAB comm. dish extended

Figure A5.2.14 IronCAD drawing of HAB settled

194 Figure A5.2.17 IronCAD drawing of science balloon

Figure A5.2.16 IronCAD drawing of MLV

195 196 Appendix 5.2.2 HAB Excel Calculations

HAB first iteration Water Containers 0 1000 1 Oxygen O_2 ACTUAL*2 12 85.33333333 1024 1.024 Pressurization System System total??????? 0 0 Food Food (0.007079m^3/day) 5.6632 5551.970609 5.551970609 Power Generator 2.775 0 Wiring,Electronics????? 0 0 Science # Rover/Garage 12 2 1000 1 General (Inflatalbes/Experi)

Miscellaneous Crew living area 300 0 Extra room 50

TOTAL 394.9382 21.07597061

Hab Size d/h~1 Hab Size d/h~1/2 Vol Req.m^3 400 Vol Req.m^3 400 height m 8 height m 10.5 diameter m 7.978845608 diameter m 6.964507

Inner Shell Inner Shell Height m 8 Height m 10.5 Diameter m 7.978845608 Diameter m 6.964507 Circumference m 25.06628275 Circumference m 21.87965 SurArea m^2 300.530262 SurArea m^2 305.9268 Thickness .5in m 0.0127 Thickness .5in m 0.0127 Density (Kevlar) kg/m^3 1440 Density (Kevlar) kg/m^3 1440 Vol m^3 3.816734327 Vol m^3 3.88527 Mass kg/mT 5496.097431 5.496097Mass kg/mT 5594.788

Outer Shell-Cylinder Outer Shell-Cylinder Height m 9 Height m 11.5 Diameter m 8.978845608 Diameter m 7.964507 Circumference m 28.2078754 Circumference m 25.02124

197 SurArea m^2 380.5079577 SurArea m^2 387.3852 Thickness .5in m 0.0127 Thickness .5in m 0.0127 Density (Al) kg/m^3 2780 Density (Al) kg/m^3 2780 Vol m^3 4.832451062 Vol m^3 4.919791 Mass kg/mT 13434.21395 13.43421Mass kg/mT 13677.02

Total Hab Mass mT Total Hab Mass mT 40.01 40.35

Outer Shell-Hexagon Outer Shell-Hexagon Height 9 Height 11.5 Radius of Inscribed Shell 8.5 Radius of Inscribed Shell 7.5 Length of 1 Side 4.907 Length of 1 Side 4.907 Area-1 Side 44.163 Area-1 Side 56.4305 Area-Top 62.56425 Area-Top 55.20375 Area-Bottom 62.56425 Area-Bottom 55.20375 Al Sheet Al Sheet Thickness 0.005 Thickness 0.005 Density 2780 Density 2780 Volume- 1 Side 0.220815 Volume- 1 Side 0.282153 Volume 6 Sides 1.32489 Volume 6 Sides 1.692915 Volume Top and Bottom 0.6256425 Volume Top and Bottom 0.552038 Total Volume 1.9505325 Total Volume 2.244953 Mass 5422.48035 Mass 6240.968 HoneyComb Core HoneyComb Core Thickness 0.0254 Thickness 0.0254 Density 33.63877309 Density 33.63877 Volume- 1 Side 1.1217402 Volume- 1 Side 1.433335 Volume 6 Sides 6.7304412 Volume 6 Sides 8.600008 Volume Top and Bottom 3.1782639 Volume Top and Bottom 2.804351 Total Volume 9.9087051 Total Volume 11.40436 Mass 333.3166824 Mass 383.6286 Shell Mass Total 5755.797032 5.755797Shell Mass Total 6624.597

Total Hab Mass Total Hab Mass 32.33 33.30 Structure 11.25189446 Strucure 12.21939 Inside Stuff 21.07597

198 HAB second iteration System total??????? 0 0 Food Food (0.007079m^3/day) 22.65 5551.970609 5.551971 Power Generator 15 8000 8 Wiring,Electronics????? 0 7600 7.6 Science # Rover/Garage 12 2 1000 1 General (Inflatalbes/Experi) 60 1500 1.5

Miscellaneous Crew living area 350 0 Extra room 15

TOTAL 445.15 39.17597 GOOD Hab Size d/h~1 Hab Size d/h~1/2 Vol Req.m^3 450 Vol Req.m^3 450 height m 9.75 height m 12 diameter m 7.665827 diameter m 6.909883

Inner Shell Inner Shell Height m 9.75 Height m 12 Diameter m 7.665827 Diameter m 6.909883 Circumference m 24.08291 Circumference m 21.70804 SurArea m^2 327.116 SurArea m^2 335.4965 Thickness .5in m 0.0127 Thickness .5in m 0.0127 Density (Kevlar) kg/m^3 1440 Density (Kevlar) kg/m^3 1440 Vol m^3 4.154373 Vol m^3 4.260805 Mass kg/mT 5982.298 5.982298 Mass kg/mT 6135.559

Outer Shell-Cylinder Outer Shell-Cylinder Height m 10.75 Height m 13 Diameter m 8.665827 Diameter m 7.909883 Circumference m 27.2245 Circumference m 24.84963 SurArea m^2 410.6247 SurArea m^2 421.324 Thickness 0.0025 Thickness 0.0025 Density 2780 Density 2780 Volume-Outer Al 1.026562 Volume-Outer Al 1.05331 Total Mass Outer 2853.842 Total Mass Outer 2928.202 Diameter Top /Bot m 8.665827 Diameter Top /Bot m 7.909883 Sur Area Top/Bot m^2 58.9807 Sur Area Top/Bot m^2 49.13942

199 Total Area Top/Bot 117.9614 Total Area Top/Bot 98.27883 Thickness m 0.0254 Thickness m 0.0254 Volume Top/Bot m^3 2.996219 Volume Top/Bot m^3 2.496282 Density kg/m^3 33.63877 Density kg/m^3 33.63877 Mass Top/Bot kg 100.7891 Mass Top/Bot kg 83.97188 Diameter Sides m 8.660827 Diameter Sides m 7.904883 Circumference Sides m 27.20879 Circumference Sides m 24.83392 Sur Area Sides m^2 292.4945 Sur Area Sides m^2 322.841 Volume Sides m^3 7.42936 Volume Sides m^3 8.200161 Density 33.63877 Density 33.63877 Mass Sides 249.9146 Mass Sides 275.8434 Total Mass HC 350.7037 Total Mass HC 359.8152 Diameter Top /Bot m 8.665827 Diameter Top /Bot m 7.909883 Sur Area Top/Bot m^2 117.9614 Sur Area Top/Bot m^2 98.27883 Thickness m 0.0025 Thickness m 0.0025 Volume Top/Bot m^3 0.294903 Volume Top/Bot m^3 0.245697 Density kg/m^3 2780 Density kg/m^3 2780 Mass Top/Bot kg 819.8317 Mass Top/Bot kg 683.0379 Diameter Sides m 8.610027 Diameter Sides m 7.854083 Circumference Sides m 27.0492 Circumference Sides m 24.67433 Sur Area Sides m^2 290.7789 Sur Area Sides m^2 320.7663 Volume Sides m^3 0.726947 Volume Sides m^3 0.801916 Density 2780 Density 2780 Mass Sides 2020.913 Mass Sides 2229.326 Total mass Inner 2840.745 Total mass Inner 2912.364 Total Mass Outer Shell Total Mass Outer Shell Al + HC + Al 6045.291 6.045291 Al + HC + Al 6200.381

Total Hab Mass mT Total Hab Mass mT 51.20 51.51 Stucture 12.02759 Stucture 12.33594 Inside Stuff 39.17597 Inside Stuff 39.17597

Outer Shell-Hexagon Outer Shell-Hexagon Height 10.75 Height 13 Radius of Inscribed Shell 8.5 Radius of Inscribed Shell 7.5 Length of 1 Side 4.907 Length of 1 Side 4.907 Area-1 Side 52.75025 Area-1 Side 63.791 Area-Top 62.56425 Area-Top 55.20375 Area-Bottom 62.56425 Area-Bottom 55.20375 Al Sheet Al Sheet Thickness 0.005 Thickness 0.005 Density 2780 Density 2780 Volume- 1 Side 0.263751 Volume- 1 Side 0.318955

200 Volume 6 Sides 1.582508 Volume 6 Sides 1.91373 Volume Top and Bottom 0.625643 Volume Top and Bottom 0.552038 Total Volume 2.20815 Total Volume 2.465768 Mass 6138.657 Mass 6854.834 HoneyComb Core HoneyComb Core Thickness 0.0254 Thickness 0.0254 Density 33.63877 Density 33.63877 Volume- 1 Side 1.339856 Volume- 1 Side 1.620291 Volume 6 Sides 8.039138 Volume 6 Sides 9.721748 Volume Top and Bottom 3.178264 Volume Top and Bottom 2.804351 Total Volume 11.2174 Total Volume 12.5261 Mass 377.3396 Mass 421.3626 Shell Mass Total 6515.997 6.515997 Shell Mass Total 7276.196

Total Hab Mass Total Hab Mass 51.67 52.59 Structure 12.49829 Structure 13.41176 Inside Stuff 39.17597 Inside Stuff 39.17597

HAB third iteration Food Food (0.007079m^3/day) 22.65 5504 5.504 Power Generator 7.802 4500 4.5 Wiring,Electronics????? 0 5000 5 Solar Outside 2700 2.7 Science # Rover/Garage 12 2 1800 1.8 General (Inflatalbes/Experi) 60 1500 1.5

Miscellaneous Crew living area 350 0 Extra room 30

TOTAL 514.132 37.148 Vol m^3 4.154373463 Vol m^3 4.12851 Mass kg/mT 5982.297786 5.982298 Mass kg/mT 5945.054

Inner Shell-Cylinder Inner Shell-Cylinder Height m 9.75 Height m 8.3 Diameter m 7.6658269 Diameter m 8.308493 Circumference m 24.08290547 Circumference m 26.1019 SurArea m^2 327.1160207 SurArea m^2 325.0795

201 Thickness 0.0025 Thickness 0.0025 Density 2780 Density 2780 Volume-Outer Al 0.817790052 Volume-Outer Al 0.812699 Total Mass Outer 2273.456344 Total Mass Outer 2259.303 Diameter Top /Bot m 7.6658269 Diameter Top /Bot m 8.308493 Sur Area Top/Bot m^2 46.15384615 Sur Area Top/Bot m^2 54.21687 Total Area Top/Bot 92.30769231 Total Area Top/Bot 108.4337 Thickness m 0.0254 Thickness m 0.0254 Volume Top/Bot m^3 2.344615385 Volume Top/Bot m^3 2.754217 Density kg/m^3 33.63877309 Density kg/m^3 33.63877 Mass Top/Bot kg 78.8699849 Mass Top/Bot kg 92.64848 Diameter Sides m 7.6608269 Diameter Sides m 8.303493 Circumference Sides m 24.06719751 Circumference Sides m 26.08619 Sur Area Sides m^2 234.6551757 Sur Area Sides m^2 216.5154 Volume Sides m^3 5.960241463 Volume Sides m^3 5.499491 Density 33.63877309 Density 33.63877 Mass Sides 200.4952101 Mass Sides 184.9961 Total Mass HC 279.365195 Total Mass HC 277.6446 Diameter Top /Bot m 7.6658269 Diameter Top /Bot m 8.308493 Sur Area Top/Bot m^2 92.30769231 Sur Area Top/Bot m^2 108.4337 Thickness m 0.0025 Thickness m 0.0025 Volume Top/Bot m^3 0.230769231 Volume Top/Bot m^3 0.271084 Density kg/m^3 2780 Density kg/m^3 2780 Mass Top/Bot kg 641.5384615 Mass Top/Bot kg 753.6145 Diameter Sides m 7.6100269 Diameter Sides m 8.252693 Circumference Sides m 23.9076046 Circumference Sides m 25.9266 Sur Area Sides m^2 233.0991449 Sur Area Sides m^2 215.1908 Volume Sides m^3 0.582747862 Volume Sides m^3 0.537977 Density 2780 Density 2780 Mass Sides 1620.039057 Mass Sides 1495.576 Total mass Inner 2261.577518 Total mass Inner 2249.19 Total Mass Outer Shell Total Mass Outer Shell Al + HC + Al 4814.399057 4.814399 Al + HC + Al 4786.138 Radiation Chamber Radiation Chamber Inner Shell-Diameter 2.1 Inner Shell-Diameter 2.1 Inner Shell Height 2.5 Inner Shell Height 2.5 SurArea m^2 23.42057323 SurArea m^2 23.42057 Thickness 0.0025 Thickness 0.0025 Volume 0.058551433 Volume 0.058551 density 2780 density 2780 mass 162.772984 mass 162.773 Outer Wall-Diameter 2.6 Outer Wall-Diameter 2.6 OuterWall-Height 3.14 OuterWall-Height 3.14 Sur Area 36.26654559 Sur Area 36.26655

202 Thickness 0.0025 Thickness 0.0025 Volume 0.090666364 Volume 0.090666 mass 252.0524919 mass 252.0525 Radiation Chamber Radiation Chamber Mass 414.8254758 0.414825 Mass 414.8255 Total Hab Mass mT Total Hab Mass mT 42.38 42.35 Stucture 4.81 Stucture 4.79 Inside Stuff 37.15 Inside Stuff 37.15 Radiation Chamber 0.414825476 Radiation Chamber 0.414825

Loading Calculations Cost Height Diam Mat Cost/kg Mass 14406.18 9.75 7.67Al 1.25 11.55 0 9.75 7.67Kevlar 5.98 0 9.75 7.67Al/Honecomb 4.81 14316.49 8.3 8.31Al 1.25 11.48 0 8.3 8.31Kevlar 5.95 0 8.3 8.31Al/Honecomb 4.79 14587.12 11 7.22Al 1.25 11.69 0 11 7.22Kevlar 6.06 0 11 7.22Al/Honeycomb 4.87 14316.49 12 6.91Al 1.25 11.48 12 6.91Kevlar 5.95 12 6.91Al/Honeycomb 4.79 7 9.05Al 11.55 7 9.05Kevlar 5.99 7 9.05Al/Honeycomb 4.82 d/h 0.786666667 1.001204819 0.656363636 0.575833333 1.292451504 Hoop Stress Pressure (Mpa) (N/m^2) D t 30.605 1.01E+05 7.67 0.0127 15.302 1.01E+05 7.67 0.0254 14.569 1.01E+05 8.74 0.0304 7.774 1.01E+05 7.67 0.05 4.858 1.01E+05 7.67 0.08

203 4.319 1.01E+05 7.67 0.09 3.887 1.01E+05 7.67 0.1 2.776 1.01E+05 7.67 0.14

11.519 1.01E+05 6.91 0.0304 12.035 1.01E+05 7.22 0.0304 177.363 1.01E+05 8.75 0.0025 266.044

Figure A5.2.19 Varying diameter Figure A5.2.18 Varying thickness Varying D Varying t Varying D 15.000 0.16 10 14.500 9 0.14 14.000 8 0.12 13.500 7 ) a )

P 0.1

( 13.000 m

6 ( s s s s e r e t 12.5000.08 5 n S k

c p

i Figure A5.2.20 Mass vs. Diameter / height o h 4

o 12.000

T 0.06 H HoneyComb Composite (Kevlar) Aluminum 3 11.500 0.04 13.00 2 11.000 0.02 12.00 1 10.500 11.000 0 10.000 0.000 20.000 40.000 60.000 80.000 100.000 120.000 140.000 160.000 180.000 200.000 10.00 6 6.5 7 Hoop Stres7.5 s (M Pa) 8 8.5 9 )

s Diameter (m) e

n 9.00 n o t (

s

s 8.00 a M Current HAB 7.00 AAE450 Hab6.00 I added about 15m^3 to account for thi ngs I forgot Component Volume alotted (m^3) Density Mass (kg) Mass (MT) 5.00

4.00 0.55 0.65 0.75 0.85 0.95 1.05 1.15 1.25 204 D/h (kg/m^3) Water Potable Water 4 1000 3200 3.2 Hygienic Water 8 1000 8000 8 Inert Water 360 0.36 Water Containers 1 600 0.6 Gases O_2 1024 1.024 N_2 225 0.225 Pressurization System Tanks-8 0 0 4 N2 4 867.5 0.8675 4 O2 4.56 867.5 0.8675 Food Food (0.007079m^3/day) 22.65 5504 5.504 Power Generator 7.802 4500 4.5 Wiring,Electronics????? 0 5000 5 Science # Rover/Garage 12 2 1400 1.4 General (Inflatalbes/Experi) 60 1500 1.5

Miscellaneous Crew living area 350 2000 2 Extra room 30 Crew 500 0.5 Airlock 10 3000 3 Ejector Seats 1000 1 Space Suits (10) Space Suits Regular (6) 600 0.6 Space Suits- EVA (4) 500 0.5

Interior TOTAL 514.012 40.648

Exterior Solar (Outside) 1800 1.8 Parachute 0.855 600 0.6 Satelitte Com Antenna Landing Gear Heat Shield Attachments NTR mating structure

205 Exterior Total 0.855 2.4 Heat Shield Heat Shield Mass 24831 24.83 Propulsion System Rcs Tanks Propellant Tanks (4) 12 56 0.056 Pressurant Tanks (2) 0.8 280 0.28 Propellants Propellant 3000 3 Pressurrant 50 0.05 Engines (30) 30 Length 1.5 Diameter 0.93 Per Engine 1.018936307 83 0.083 Total (30) 30.56808922 2.49 Retro Thrusters (????)

Prop. Sys. Total 43.36808922 5.959 Exterior-All w/heatshield TOTAL 44.22308922 33.19 Hab Size d/h~1 Hab Size d/h~1/2 Vol Req.m^3 525 Vol Req.m^3 525 height m 9.75 height m 8.75 diameter m 8.280039397 diameter m 8.740387

Inner Shell Inner Shell Height m 9.75 Height m 8.75 Diameter m 8.280039397 Diameter m 8.740387 Circumference m 26.01251094 Circumference m 27.45874 SurArea m^2 361.3142894 SurArea m^2 360.2639 Thickness .5in m 0.0127 Thickness .5in m 0.0127 Density (Kevlar) kg/m^3 1440 Density (Kevlar) kg/m^3 1440 Vol m^3 4.588691475 Vol m^3 4.575352 Mass kg/mT 6607.715724 6.6077Mass kg/mT 6588.507

Inner Shell-Cylinder Inner Shell-Cylinder Height m 9.75 Height m 8.75 Diameter m 8.280039397 Diameter m 8.740387 Circumference m 26.01251094 Circumference m 27.45874 SurArea m^2 361.3142894 SurArea m^2 360.2639 Thickness 0.0025 Thickness 0.0025 Density 2780 Density 2780

206 Volume-Outer Al 0.903285723 Volume-Outer Al 0.90066 Total Mass Outer 2511.134311 Total Mass Outer 2503.834 Diameter Top /Bot m 8.280039397 Diameter Top /Bot m 8.740387 Sur Area Top/Bot m^2 53.84615385 Sur Area Top/Bot m^2 60 Total Area Top/Bot 107.6923077 Total Area Top/Bot 120 Thickness m 0.0254 Thickness m 0.0254 Volume Top/Bot m^3 2.735384615 Volume Top/Bot m^3 3.048 Density kg/m^3 33.63877309 Density kg/m^3 33.63877 Mass Top/Bot kg 92.01498238 Mass Top/Bot kg 102.531 Diameter Sides m 8.275039397 Diameter Sides m 8.735387 Circumference Sides m 25.99680298 Circumference Sides m 27.44303 Sur Area Sides m^2 253.468829 Sur Area Sides m^2 240.1265 Volume Sides m^3 6.438108257 Volume Sides m^3 6.099213 Density 33.63877309 Density 33.63877 Mass Sides 216.5700628 Mass Sides 205.17 Total Mass HC 308.5850451 Total Mass HC 307.701 Diameter Top /Bot m 8.280039397 Diameter Top /Bot m 8.740387 Sur Area Top/Bot m^2 107.6923077 Sur Area Top/Bot m^2 120 Thickness m 0.0025 Thickness m 0.0025 Volume Top/Bot m^3 0.269230769 Volume Top/Bot m^3 0.3 Density kg/m^3 2780 Density kg/m^3 2780 Mass Top/Bot kg 748.4615385 Mass Top/Bot kg 834 Diameter Sides m 8.224239397 Diameter Sides m 8.684587 Circumference Sides m 25.83721007 Circumference Sides m 27.28344 Sur Area Sides m^2 251.9127982 Sur Area Sides m^2 238.7301 Volume Sides m^3 0.629781995 Volume Sides m^3 0.596825 Density 2780 Density 2780 Mass Sides 1750.793947 Mass Sides 1659.174 Total mass Inner 2499.255486 Total mass Inner 2493.174 Total Mass Outer Shell Total Mass Outer Shell Al + HC + Al 5318.974842 5.319Al + HC + Al 5304.709 Radiation Chamber Radiation Chamber Inner Shell-Diameter 2.1 Inner Shell-Diameter 2.1 Inner Shell Height 2.5 Inner Shell Height 2.5 SurArea m^2 23.42057323 SurArea m^2 23.42057 Thickness 0.0025 Thickness 0.0075 Volume 0.058551433 Volume 0.175654 density 2780 density 2780 mass 162.772984 mass 488.319 Outer Wall-Diameter 2.6 Outer Wall-Diameter 2.6 OuterWall-Height 3.14 OuterWall-Height 3.14 Sur Area 36.26654559 Sur Area 36.26655 Thickness 0.0025 Thickness 0.0075 Volume 0.090666364 Volume 0.271999

207 mass 252.0524919 mass 756.1575 Radiation Chamber Mass 414.8254758 0.4148Radiation Chamber Mass 1244.476

Total Hab Mass mT Total Hab Mass mT 79.57 80.39 Stucture 5.32 Stucture 5.30 Inside Stuff 40.65 Inside Stuff 40.65 Radiation Chamber 0.414825476 Radiation Chamber 1.244476 Exterior 33.19 Exterior 33.19

Totals Total Hab Mass (Second Column Hab- % Total mT Currnt) Mass Hab Structure 6.55 8.15% Propulsion System 5.96 7.41% Heat Shield 24.83 30.89% Exterior 2.4 2.99% Interior 40.65 50.57% Total 80.39

Total Hab Volume Hab 525 Propulsion System 43.36808922 Heat Shield Exterior 0.855 Interior See Hab Volume 569.2230892

% Total On Landing Mass Hab 6.55 10.43% Propulsion System 5.96 9.49% Heat Shield 7.24 11.53% Exterior 2.4 3.82% Interior 40.65 64.73%

208 HAB with Garage AAE450 Hab I added about 15m^3 to account for thi ngs I forgot Component Volume alotted (m^3) Density (kg/m^3) Mass (kg) Mass (MT) Water Potable Water 1.28 1000 1280 1.28 Hygienic Water 4.22 1000 4220 4.22 Inert Water 360 0.36 Water Containers 1 600 0.6 Gases O_2 716 0.716 N_2 225 0.225 Pressurization System Tanks-8 0 0 4 N2 4 867.5 0.8675 4 O2 4.56 867.5 0.8675 Food Food (0.007079m^3/day) 16.99 1984 1.984 Power

Wiring,Electronics????? 0 5000 5 Miscellaneous Crew living area 350 2000 2 Extra room 30 Crew 500 0.5

Ejector Seats 4.5 864 0.864 Space Suits (10) Space Suits Regular (6) 5.73 330 0.33 Space Suits- EVA (4) 3.82 500 0.5

Interior/Hab TOTAL 426.1 20.314

Rover Garage Science # Rover 12 2 800 0.8 General (Inflatalbes/Experi) 60 1500 1.5 Airlock 10 3000 3 Generator 6.6 3300 3.3 Interior/Garage TOTAL 88.6 8.6

209 INTERIOR TOTAL 514.7 28.914

Exterior Solar Panels 19.5L=6.5m,W=1.5,D=2m 2000 2 Parachutes 2.64 1900 1.9 Com Antenna 0.30L=15ft,D=7ft*.1 800 0.8 Landing Gear 0.74 244 0.244 Heat Shield Attachments 1000 1 NTR mating structure 2000 2 Tether/PowerCable 500 0.5 Exterior Total 23.17762418 8.444 Heat Shield Heat Shield Mass 17070 17.07

Propulsion System Rcs Tanks Propellant Tanks (4) 17.48610471L=2,21,d=1.1 65.68 0.06568 Pressurant Tanks (2) 6.107256119d=1.74 13.88 0.01388 Propellants Propellant 9730.9 9.7309 Pressurrant 267.19 0.26719 Engines (10) 10 Length 0.34 Diameter 0.16 Per Engine 0.006836106 38.68 0.03868 Total (10) 0.068361056 0.3868 Retro Thrusters h 3.35 d=1.6 1.87 3.066879035 104.54 0.10454 Prop. Sys. Total 23.66172188 10.56899 Exterior-All w/heatshield TOTAL 46.83934606 36.08

Hab Size d/h~1 Hab Size d/h~1/2 Vol Req.m^3 525 Vol Req.m^3 430 height m 9.75 height m 7.166667 diameter m 8.280039 diameter m 8.740387

Inner Shell Garage VolTot126 Height m 9.75 Height m 2.1

210 Diameter m 8.280039 Diameter m 8.740387 Circumference m 26.01251 Circumference m 27.45874 SurArea m^2 361.3143 SurArea m^2 177.6633 Thickness .5in m 0.0127 Thickness .5in m 0.0304 Density (Kevlar) kg/m^3 1440 Density AL/HoneyComb kg/m^3 485.3429 Vol m^3 4.588691 Vol m^3 5.400966 Mass kg/mT 6607.716 6.607716Mass kg/mT 2621.32

Inner Shell-Cylinder Inner Shell-Cylinder Height m 9.75 Height m 7.166667 Diameter m 8.280039 Diameter m 8.740387 Circumference m 26.01251 Circumference m 27.45874 SurArea m^2 361.3143 SurArea m^2 316.7876 Thickness 0.0025 Thickness 0.0025 Density 2780 Density 2780 Volume-Outer Al 0.903286 Volume-Outer Al 0.791969 Total Mass Outer 2511.134 Total Mass Outer 2201.674 Diameter Top /Bot m 8.280039 Diameter Top /Bot m 8.740387 Sur Area Top/Bot m^2 53.84615 Sur Area Top/Bot m^2 60 Total Area Top/Bot 107.6923 Total Area Top/Bot 120 Thickness m 0.0254 Thickness m 0.0254 Volume Top/Bot m^3 2.735385 Volume Top/Bot m^3 3.048 Density kg/m^3 33.63877 Density kg/m^3 33.63877 Mass Top/Bot kg 92.01498 Mass Top/Bot kg 102.531 Diameter Sides m 8.275039 Diameter Sides m 8.735387 Circumference Sides m 25.9968 Circumference Sides m 27.44303 Sur Area Sides m^2 253.4688 Sur Area Sides m^2 196.675 Volume Sides m^3 6.438108 Volume Sides m^3 4.995546 Density 33.63877 Density 33.63877 Mass Sides 216.5701 Mass Sides 168.044 Total Mass HC 308.585 Total Mass HC 270.575 Diameter Top /Bot m 8.280039 Diameter Top /Bot m 8.740387 Sur Area Top/Bot m^2 107.6923 Sur Area Top/Bot m^2 120 Thickness m 0.0025 Thickness m 0.0025 Volume Top/Bot m^3 0.269231 Volume Top/Bot m^3 0.3 Density kg/m^3 2780 Density kg/m^3 2780 Mass Top/Bot kg 748.4615 Mass Top/Bot kg 834 Diameter Sides m 8.224239 Diameter Sides m 8.684587 Circumference Sides m 25.83721 Circumference Sides m 27.28344 Sur Area Sides m^2 251.9128 Sur Area Sides m^2 195.5313 Volume Sides m^3 0.629782 Volume Sides m^3 0.488828 Density 2780 Density 2780 Mass Sides 1750.794 Mass Sides 1358.942 Total mass Inner 2499.255 Total mass Inner 2192.942

211 Total Mass Outer Shell Total Mass Outer Shell Al + HC + Al 5318.975 5.318975Al + HC + Al 4665.191 Radiation Chamber Radiation Chamber Inner Shell-Diameter 2.1 Inner Shell-Diameter 2.1 Inner Shell Height 2.5 Inner Shell Height 2.5 SurArea m^2 23.42057 SurArea m^2 23.42057 Thickness 0.0075 Thickness 0.0075 Volume 0.175654 Volume 0.175654 density 2780 density 2780 mass 488.319 mass 488.319 Outer Wall-Diameter 2.6 Outer Wall-Diameter 2.6 OuterWall-Height 3.14 OuterWall-Height 3.14 Sur Area 36.26655 Sur Area 36.26655 Thickness 0.0075 Thickness 0.0075 Volume 0.271999 Volume 0.271999 mass 756.1575 mass 756.1575 Radiation Chamber Mass 1244.476 1.244476Radiation Chamber Mass 1244.476

Total Hab Mass mT Total Hab Mass mT 62.96 73.53 Stucture 5.32 Stucture 8.53 Inside Stuff 20.31 Inside Stuff 28.91 Radiation Chamber 1.244476 Exterior 36.08 Exterior 36.08

212 213 Figure A5.2.21 Lauch mass breakdown

Hab Structure Propulsion System Heat Shield Exterior Interior Total

80.00

70.00

60.00

50.00 s e n 40.00 n o T

30.00

20.00

10.00

0.00 1 Figure A5.2.22 Landing mass breakdown

Total Hab Mass Hab %Propulsion Total SystemOn HeatLanding Shield Exterior Interior Total % Total mT Mass Mass 60.00 Hab Structure 8.53 11.60% Hab 8.53 15.91% Propulsion System 10.57 14.37% Propulsion System 2.07 3.86% Heat Shield 17.07 23.22% Heat Shield 5.65 10.54% 50.00Exterior 8.444 11.48% Exterior 8.44 15.75% Interior 28.91 39.32% Interior 28.91 53.94% Total 73.53 Total 53.61 40.00 s e n 30.00 n o T

20.00

10.00

0.00 1 214 215 Appendix 5.2.3 HAB MATLAB code llthin.m %Nick Czapla m=89090; a=1; g=9.81*.38; F=m*(a+g); SF=2; L=9.5; Load=F*SF; n=6; SigmaY=[276e6 207e6 825e6 220e6 1483e6]; %AL6061-T6 Beryllium Titanium Magnesium Steel AISI4340 E=[68e9 304e9 110e9 45e9 200e9]; rho=[2700 2000 4400 1700 7800]; A=Load./(SigmaY.*n); I=4.*Load.*L.^2./(pi.^2.*E.*n); t=0.0127; %.5inches for l1=1:1:300 %AL dth(1)=A(1).*l1./(pi.*t); Ith(1)=pi.*dth(1).^3.*t./8; if Ith(1)>I(1) d(1)=dth(1); Ith(1)=pi.*dth(1).^3.*t./8; VolumeTh(1)=L.*pi.*(d(1).*t); MassTh(1)=rho(1).*VolumeTh(1); TotalMassTh(1)=MassTh(1).*n; TotalVolumeTh(1)=n.*VolumeTh(1); break

216 end end for l2=1:1:300 %Be dth(2)=A(2).*l2./(pi.*t); Ith(2)=pi.*dth(2).^3.*t./8; if Ith(2)>I(2) d(2)=dth(2); Ith(2)=pi.*dth(2).^3.*t./8; VolumeTh(2)=L.*pi.*(d(2).*t); MassTh(2)=rho(2).*VolumeTh(2); TotalMassTh(2)=MassTh(2).*n; TotalVolumeTh(2)=n.*VolumeTh(2); break end end for l3=1:1:300 %Ti dth(3)=A(3).*l3./(pi.*t); Ith(3)=pi.*dth(3).^3.*t./8; if Ith(3)>I(3) d(3)=dth(3); Ith(3)=pi.*dth(3).^3.*t./8; VolumeTh(3)=L.*pi.*(d(3).*t); MassTh(3)=rho(3).*VolumeTh(3); TotalMassTh(3)=MassTh(3).*n; TotalVolumeTh(3)=n.*VolumeTh(3); break end end for l4=1:1:300 %Mg dth(4)=A(4).*l4./(pi.*t);

217 Ith(4)=pi.*dth(4).^3.*t./8; if Ith(4)>I(4) d(4)=dth(4); Ith(4)=pi.*dth(4).^3.*t./8; VolumeTh(4)=L.*pi.*(d(4).*t); MassTh(4)=rho(4).*VolumeTh(4); TotalMassTh(4)=MassTh(4).*n; TotalVolumeTh(4)=n.*VolumeTh(4); break end end for l5=1:1:300 %St dth(5)=A(5).*l5./(pi.*t); Ith(5)=pi.*dth(5).^3.*t./8; if Ith(5)>I(5) d(5)=dth(5); Ith(5)=pi.*dth(5).^3.*t./8; VolumeTh(5)=L.*pi.*(d(5).*t); MassTh(5)=rho(5).*VolumeTh(5); TotalMassTh(5)=MassTh(5).*n; TotalVolumeTh(5)=n.*VolumeTh(5); break end end TotalMassTh TotalVolumeTh d

218 Appendix 6.1.1 Tether sizing, radiation and thermal concerns Devin Cummings gravity.m %Devin Cummings %AAE 450 Design Project -- Manned Mission to Mars %Human Gravity Differences

R = 10:.5:2000; %R is length of tether in meters a = 0.38*9.8; %a is centripetal acceleration needed to match Mars gravitational acceleration w=sqrt(a./R); %w is angular spin rate needed to attain desired Mars acceleration in hab in rad/sec wrev=w./(2.*pi).*60; %wrev is angular spin rate in rpm figure(1) plot(R,wrev) xlabel('Radius of Tether (meters)') ylabel('Angular Velocity needed to attain Mars gravity (rpm)') title('Tether Length for Hab Module vs. Angular Velocity needed for Mars Gravity') gtext({'To produce 0.38g:','2 rpm requires 85m tether radius','1 rpm requires 340m tether radius'})

%Gravity Gradient Calculations gg=0.01.*9.8.*0.38./13048; %gg=gravity gradient in 1/s^2 wggmax=sqrt(gg); h=2; %h is height of astronaut in meters af=a;

219 %accel at feet in m/s^2 ah=w.^2.*(R-h); %accel at head in m/s^2 percdiff=(af-ah)./af.*100; %percdiff is percent difference between head and feet figure(2) plot(R,percdiff) xlabel('Radius of Tether (meters)') ylabel('Percent Difference in Gravity between Head and Feet (%)') title('Tether Length for Hab Module vs. Percent Difference of Gravity between Head and Feet')

%Coriolis Acceleration (ac) - should not exceed 0.25*centripetal acceleration (a) v=1; %v is velocity of astronaut walking inside hab module alpha=pi/2; %alpha is angle between angular velocity vector w and astronaut walking velocity v ac=2.*w.*v.*sin(alpha); figure(3) plot(R,ac) xlabel('Radius of Tether (meters)') ylabel('Coriolis Acceleration for astronaut walking at a rate of 1 m/s') title('Tether Length for Hab Module vs. Coriolis Acceleration felt by Astronauts')

220 ssvolume.m

%Devin Cummings %AAE 450 Design Project -- Manned Mission to Mars %Storm Shelter Volume r=.8; %r is interior radius of storm shelter in meters h=2; %h is interior height of storm shelter t=0.25; %t is desired thickness of water for shielding Vtot=pi*(r+t)^2*(h+2*t)-pi*r^2*h; disp('Volume of Water needed to protect crew is'); disp(Vtot); Vwat=5.5 %Vwat is volume of water being taken Vextra=Vwat-Vtot %Vextra is extra wash water hextra=Vextra/(pi*(r+t)^2); %hextra is extra height on top of storm shelter to contain left over water htotal=h+2*t+hextra; disp('Total height of storm shelter is'); disp(htotal); diamtot=2*(r+t); disp('Outer diameter of storm shelter is'); disp(diamtot); Vcheck=pi*(diamtot/2)^2*htotal-pi*r^2*h

221 thermalcontrol.m

%Devin Cummings %AAE 450 Design Project -- Manned Mission to Mars %Thermal Control Calculations

%Spacecraft Parameters P=3.8e26;%total power output of sun, W Aref=396;%Reference area, m^2 Atot=831.863;%Total area, m^2 Q=500;%Dissipated power of s/c, W E=0.6;%emittance, unitless alpha=0.95;%apsorptance, unitless

%Other Parameters o=5.67e-8;%Stefan-Boltzmann Constant,W/(m^2K^4) a=0.61;%Venus planetary albedo Rv=6051800;%Equatorial Radius of Venus, m

%Location Parameters - Closest to Sun rv1=17.7e9;%distance from Venus, km D1=99.7e9;%distance from Sun, km alt1=rv1-Rv;

%Location Parameters - Closest to Venus rv2=8000000;%distance from Venus, km D2=108e9;%distance from Sun, km alt2=rv2-Rv;

%%%%%%%Case 1 = closest to Sun,%%%%%%%%%%%%%%%%%%%%% %Solar Radiation Intensity

222 Js1=P/(4*pi*D1^2)

%Visibility Factor H1=alt1/Rv; F121=1/((1+H1)^2);%V. Factor at worst case, full visibility

%Planetary Reflection Radiation Ja1=Js1*a*F121

T1=(((alpha/E)*((Aref/Atot)*Js1)+(Aref/Atot)*Ja1+Q/(E*Atot))/o)^(1/4)

%%%%%%%Case 2 = closest to Venus,%%%%%%%%%%%%%%%%%%%%% %Solar Radiation Intensity Js2=P/(4*pi*D2^2)

%Visibility Factor H2=alt2/Rv; F122=1/((1+H2)^2);%V. Factor at worst case, full visibility

%Planetary Reflection Radiation Ja2=Js2*a*F122

T2=(((alpha/E)*((Aref/Atot)*Js2)+(Aref/Atot)*Ja2+Q/(E*Atot))/o)^(1/4)

223 Appendix 6.1.2 HAB layout

Figure A6.1.1 Internal isometric view

Figure A6.1.2 Level 1 isometric view

Figure A6.1.3 Level 1 top view

224 Figure A6.2.4 Level 2 galley

Figure A6.2.8 Level 3 bedroom FigureFigure A6.1.6 A6.1.9 Level Level 2 top 3 hygiene view Figure A6.1.10Figure A6.1.5 Level 3Level top view 2 isometric view Figure A6.2.7 Level 3 isometric view

225 Appendix 6.2 Consumables Code Brandon Abel

Consumables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Human Factors Mass/Cost/Risk Analysis % % Brandon Abel % % AAE 450 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%% % Mission Inputs % %%%%%%%%%%%%%%%%%% TOF=800; % Time of flight [days] Crew=4; % Crew size [persons]

%%%%%%%% % Food % %%%%%%%% Fcr=.62; % Food consumption rate [kg/person/day] Fy=0.0; % Food recyclable percentage [%/100] Fvr=.007079; % Food volume rate [m^3/person/day] Ftr=Fcr*(1-Fy); % Food consumable rate [kg/person/day] Ftv=Fvr*(1-Fy); % Food volume total rate [m^3/person/day] Tfc=Ftr*TOF*Crew; % Food total [kg] Tfv=Ftv*TOF*Crew; % Food volume [m^3] Tfim=0; % Food system mass [kg] Tfiv=0; % Food system volume [m^3]

%%%%%%%%% % Water % %%%%%%%%%

226 Wpcr=4; % Potable water consumption rate [kg/person/day] Wpy=0.9; % Potable water recyclable percentage [%/100] Wpvr=0.001; % Potable water volume rate [m^3/person/day] Wtp=Wpcr*(1-Wpy); % Potable water consumable rate [kg/person/day] Wtv1=Wpvr*(1-Wpy); % Potable water total volume [m^3/person/day] Twpc=Wtp*TOF*Crew; % Potable water total [kg] Twpv=Wtv1*TOF*Crew;% Potable water volume [m^3] Whcr=25; % Hygiene water consumption rate [kg/person/day] Why=0.9; % Hygiene water recyclable percentage [%/100] Whvr=0.001; % Hygiene water volume rate [m^3/person/day] Wth=Whcr*(1-Why); % Hygiene water consumable rate [kg/person/day] Wtv2=Whvr*(1-Why); % Hygiene water total volume [m^3/person/day] Twhc=Wth*TOF*Crew; % Hygiene water total [kg] Twhv=Wtv2*TOF*Crew;% Hygiene water volume [m^3] Twim=800; % Water system mass [kg] Twiv=1.0; % Water system volume [m^3]

%%%%%%%%%% % Oxygen % %%%%%%%%%% Ocr=0.8; % Oxygen conusmption rate [kg/person/day] Oy=0.86; % Oxygen recyclable percentage [%/100] Ovr=0.0; % Oxygen volume rate [m^3/person/day] Ot=Ocr*(1-Oy); % Oxygen consumable rate [kg/person/day] Otv=Ovr*(1-Oy); % Oxygen total volume [m^3/person/day] Toc=Ot*TOF*Crew; % Oxygen total [kg] Tov=Otv*TOF*Crew;% Oxygen volume [m^3] Toim=800; % Oxygen system mass [kg] Toiv=1.0; % Oxygen system volume [m^3]

227 %%%%%%%%%% % Totals % %%%%%%%%%% Tc=Tfc+Twpc+Twhc+Toc+Tfim+Twim+Toim; % Total mass [kg] Tv=Tfv+Twpv+Twhv+Tov+Tfiv+Twiv+Toiv; % Total volume [m^3]

228 Appendix 7.1 Communication Link Budget Darcy Kuhn

Downlink from LGA to 34m HEF Subnetwork Earth to Mars (Downlink) 401300000 km r Frequency 8.00 GHz f

Transmit Power (dBW) 800.00 (W) 29.03 Pt

(dB) 2.00 Lo 2 Transmitter antenna gain (peak dBi) 25.41 Gt Gt=h*(10.472*f*D) ; Gt= 347.41

[Gt]=10*log(Gt) Dish diameter (m) 0.30 D

Terminal EIRP (dBW) 52.44 EIRP EIRP=10*log(Pt)+Gt -Lo

(dB); a.k.a. "Free Space Loss" 281.37 Ls FSL=32.4+20*log(r)+20*log(f)

Received isotropic power (dBW) -228.93 Rec'd iso. pwr=EIRP-Ls Dish diameter (m) 34.00 Half-power beamwidth (deg) 0.119 2 Receiver antenna gain (peak dBi) 74.85 Gr Gr=h*(10.472*f*D) ; Gr= 4462310

[Gr]=10*log(Gr)

(dB) 2.00 Lo1

Received signal power (dBW) -156.08 Pr Pr=Rec'd iso. pwr+Gr -Lo1 o System temperature (dB-K) 13.14 T s 13.14 (20.6 K) 13.14 o o o o System G/T s (dB-K) 55.10 Gr/T s Gr/T s= Gr -T s Boltzmann's constant (dBW/K-Hz) -228.60 k o o (dBW/Hz) -215.46 No=kT s No=Boltzmann's const. + T s

Received Pr/No (dB-Hz) 59.38 (Pr/No)r (Pr/No)r=Pr -No (dB-bit/s) 24 kbps 43.80 R

Received Eb/No (dB) 15.58 (Eb/NEo)br/No=(1/R)(Pr/No); (Eb/No)r=(Pr/No)r -R

(dB) 1.50 Lo2

(dB) 10.00 (Eb/No)reqd (Eb/No)reqd = (Eb/No)r -M - Lo2 o Margin (dB) 4.08 Margin (M)M=EIRP+Gr -(Eb/No)reqd -R-kT s-…

...Ls-Lo1-Lo2

229 Uplink from 34m HEF Subnetwork Earth to Mars (Uplink) 401300000 km r Frequency 10.00 GHz f

Transmit Power (dBW) 200000.00 (W) 53.01 Pt

(dB) 2.00 Lo 2 Transmitter antenna gain (peak dBi) 68.43 Gt Gt=h*(10.472*f*D) ; Gt= 6972360

[Gt]=10*log(Gt) Dish diameter (m) 34.00 D

Terminal EIRP (dBW) 119.44 EIRP EIRP=10*log(Pt)+Gt -Lo

(dB); a.k.a. "Free Space Loss" 284.47 Ls FSL=32.4+20*log(r)+20*log(f)

(dB) Lo1 Weather fade

(dB) Lo2

Received isotropic power (dBW) -165.03 Rec'd iso. pwr=EIRP-Ls-Lo1-Lo2 Dish diameter (m) 0.50 2 Receiver antenna gain (peak dBi) 31.78 Gr Gr=h*(10.472*f*D) ; Gr= 1507.86

[Gr]=10*log(Gr)

(dB) 2.00 Lo1

Received signal power (dBW) -135.24 Pr Pr=Rec'd iso. pwr+Gr -Lo1

Receiver temperature (dB-K) Tr 35.8 (3806 K) 35.80

Receiver antenna temp (dB-K) Ta 24.8 (300 K) 24.77 o System temperature (dB-K) 36.10 T s 36.1 (4106 K) 36.10 o o o o System G/T s (dB-K) -4.32 Gr/T s Gr/T s= Gr -T s Boltzmann's constant (dBW/K-Hz) -228.60 k o o (dBW/Hz) -192.50 No=kT s No=Boltzmann's const. + T s

Received Pr/No (dB-Hz) 57.26 (Pr/No)r (Pr/No)r=Pr -No (dB-bit/s) 24 kbps 43.80 R

Received Eb/No (dB) 13.46 (Eb/No)r Eb/No=(1/R)(Pr/No); (Eb/No)r=(Pr/No)r -R

(dB) 1.50 Lo2

(dB) 10.00 (Eb/No)reqd (Eb/No)reqd = (Eb/No)r -M - Lo2 o Margin (dB) 1.96 Margin (M) M=EIRP+Gr -(Eb/No)reqd -R-kT s-…

...Ls-Lo1-Lo2

230 Example Link Budget Problem Satellite Altitude 40609 km r Frequency 8.00 GHz f

Transmit Power (dBW) 100.00 (W) 20.00 Pt

(dB) 2.00 Lo 2 Transmitter antenna gain (peak dBi) 51.57 Gt Gt=h*(10.472*f*D) ; Gt= 143447

[Gt]=10*log(Gt) Dish diameter (ft) 20.00 D 6.10 m Half-power beamwidth (deg) 0.45

Terminal EIRP (dBW) 69.57 EIRP EIRP=10*log(Pt)+Gt -Lo

(dB); a.k.a. "Free Space Loss" 202.63 Ls FSL=32.4+20*log(r)+20*log(f)

(dB) 4.00 Lo1 Weather fade

(dB) 6.00 Lo2

Received isotropic power (dBW) -143.07 Rec'd iso. pwr=EIRP-Ls-Lo1-Lo2 Dish diameter (ft) 3.00 D 0.91 m Half-power beamwidth (deg) 2.99 2 Receiver antenna gain (peak dBi) 35.09 Gr Gr=h*(10.472*f*D) ; Gr= 3227.56

[Gr]=10*log(Gr)

(dB) 2.00 Lo3

Received signal power (dBW) -109.98 Pr Pr=Rec'd iso. pwr+Gr -Lo3 Receiver noise at antenna port (dB) 11.50

Receiver temperature (dB-K) Tr 35.8 (3806 K) 35.80

Receiver antenna temp (dB-K) Ta 24.8 (300 K) 24.77 o System temperature (dB-K) 4106.00 T s 36.1 (4106 K) 36.10 o o o o System G/T s (dB-K) -1.01 Gr/T s Gr/T s= Gr -T s Boltzmann's constant (dBW/K-Hz) -228.60 k o o (dBW/Hz) -192.50 No=kT s No=Boltzmann's const. + T s

Received Pr/No (dB-Hz) 82.52 (Pr/No)r (Pr/No)r=Pr -No (dB-bit/s) 2 Mbits/s 63.00 R

Received Eb/No (dB) 19.52 (Eb/No)r Eb/No=(1/R)(Pr/No); (Eb/No)r=(Pr/No)r -R

(dB) 1.50 Lo4

(dB) 10.00 (Eb/No)reqd (Eb/No)reqd = (Eb/No)r -M - Lo4 o Margin (dB) 8.02 Margin (M) EIRP+Gr -(Eb/No)reqd -R-kT s-…

...Ls-Lo1-Lo2-Lo3-Lo4

231 Downlink from Antenna to 34m HEF Subnetwork Distance from Earth to Mars (Downlink) 401300000 km r Frequency 8.50 GHz f

Transmit Power (dBW) 800.00 (W) 29.03 Pt

(dB) 2.00 Lo 2 Transmitter antenna gain (peak dBi) 46.89 Gt Gt=h*(10.472*f*D) ; Gt= 48905

[Gt]=10*log(Gt) Dish diameter (m) 3.35 D Half-power beamwidth (deg) 0.387

Terminal EIRP (dBW) 73.92 EIRP EIRP=10*log(Pt)+Gt -Lo

(dB); a.k.a. "Free Space Loss" 283.06 Ls FSL=32.4+20*log(r)+20*log(f)

(dB) 4.00 Lo1 Weather fade

(dB) 6.00 Lo2

Received isotropic power (dBW) -219.13 Rec'd iso. pwr=EIRP-Ls-Lo1-Lo2 Dish diameter (m) 34.00 Half-power beamwidth (deg) 0.119 2 Receiver antenna gain (peak dBi) 78.10 Gr Gr=h*(10.472*f*D) ; Gr= 5037530

[Gr]=10*log(Gr)

(dB) 2.00 Lo3

Received signal power (dBW) -143.03 Pr Pr=Rec'd iso. pwr+Gr -Lo3 o System temperature (dB-K) 13.14 T s 13.14 (20.6 K) 13.14 o o o o System G/T s (dB-K) 64.96 Gr/T s Gr/T s= Gr -T s Boltzmann's constant (dBW/K-Hz) -228.60 k o o (dBW/Hz) -215.46 No=kT s No=Boltzmann's const. + T s

Received Pr/No (dB-Hz) 72.43 (Pr/No)r (Pr/No)r=Pr -No (dB-bit/s) 500000.00 56.99 R

Received Eb/No (dB) 15.44 (Eb/No)rEb/No=(1/R)(Pr/No); (Eb/No)r=(Pr/No)r -R

(dB) 1.50 Lo4

(dB) 10.00 (Eb/No)reqd (Eb/No)reqd = (Eb/No)r -M - Lo4 o Margin (dB) 3.94 Margin (M)M=EIRP+Gr -(Eb/No)reqd -R-kT s-…

...Ls-Lo1-Lo2-Lo3-Lo4

232 Appendix 8.1 Power MATLAB codes Patrick Kennedy batterypower.m Power=7000; %W time=9; %hr Vdb=27.5; %V depthofdischarge=0.7;

%Specific energy Edm=51.5; %W-hr/kg

%Energy density Edl=51.7; %W-hr/L

C=Power*time/(Vdb*depthofdischarge); %A-hr Cposs=120; %A-hr num=C/Cposs; %number of batteries

Mass=C*Vdb/Edm %kg Volume=C*Vdb*.001/Edl %m^3

233 fuelcellpower.m clear %powerneed=20; powerneed=[20 25 30 35 40]; %kW weightpu=280; %lb masspu=weightpu/2.2; %kg long=0.36; %m width=0.38; %m depth=1.14; %m volumepu=long*width*depth; %m^3 units=9;

%------% Power needed for m=1:length(powerneed) Electrolyzerpower=0.00007*powerneed(m)^2+1.5837*powerneed(m); drierspower=-9E-06*powerneed(m)^2+0.0102*powerneed(m); H2liquifpower=0.00002*powerneed(m)^2+0.4897*powerneed(m); O2liquifpower=0.0000009*powerneed(m)^2+0.285*powerneed(m); rechargepower=Electrolyzerpower+drierspower+H2liquifpower+O2liquifpower;

days=[0:0.01:14]; % days=5;

% Mass cellmass=-0.0043*powerneed(m)^2+12.686*powerneed(m);

H2tankmass=(days/14)*(-0.0307*powerneed(m)^2+23.063*powerneed(m)); O2tankmass=(days/14)*(-0.0207*powerneed(m)^2+13.314*powerneed(m)); H2Otankmass=(days/14)*(0.0001*powerneed(m)^2+2.3477*powerneed(m));

234 Electrolyzermass=-0.0008*powerneed(m)^2+16.165*powerneed(m); Ancillariesmass=-0.0107*powerneed(m)^2+5.815*powerneed(m); Radiatormass=0.0002*powerneed(m)^2+5.2969*powerneed(m);

H2Omass=(days/14)*(0.0018*powerneed(m)^2+121.91*powerneed(m)); H2mass=(days/14)*(-0.00007*powerneed(m)^2+0.7014*powerneed(m)); O2mass=(days/14)*(0.0002*powerneed(m)^2+5.3969*powerneed(m));

dryingmass=0.0004*powerneed(m)^2+0.4411*powerneed(m); dryingradmass=0.0009*powerneed(m)^2+0.8321*powerneed(m); H2liquifmass=0.01*powerneed(m)^2+6.8505*powerneed(m); H2liquifradmass=-0.0008*powerneed(m)^2+12.066*powerneed(m); O2liquifmass=0.0006*powerneed(m)^2+2.2373*powerneed(m); O2liquifradmass=-0.0002*powerneed(m)^2+3.7038*powerneed(m); powercondmass=47.4*10; %kW assumed from solar array

Mass=H2tankmass+O2tankmass+H2Otankmass+Electrolyzermass+Ancillariesmass+R adiatormass+H2Omass+H2mass+O2mass+dryingmass+dryingradmass+H2liquifmass+ H2liquifradmass+O2liquifmass+O2liquifradmass+powercondmass+2*cellmass;

% Volume, plus above H2Vratio=(days/14)*(-4E-06*powerneed(m)^2+0.2251*powerneed(m)); O2Vratio=(days/14)*(-9E-06*powerneed(m)^2+0.1102*powerneed(m)); Volume=H2Vratio+O2Vratio+volumepu*units+2*volumepu*units;

if length(days)~=1 figure(1) if m==1 plot(days,Mass,'b-',5,Mass(501),'r*')

235 elseif m==2 plot(days,Mass,'r-') elseif m==3 plot(days,Mass,'g-',5,Mass(501),'rh') elseif m==4 plot(days,Mass,'c-') elseif m==5 plot(days,Mass,'k-') end legend('20 kW','new design','25 kW','30 kW','old design','35 kW','40 kW') xlabel('DAYS') ylabel('MASS (kg)') title('FUEL CELL SYSTEM MASS VS. DAYS OF OPERATION') hold on figure(2) if m==1 plot(days,Volume,'b-',5,Volume(501),'r*') elseif m==2 plot(days,Volume,'r-') elseif m==3 plot(days,Volume,'g-',5,Volume(501),'rh') elseif m==4 plot(days,Volume,'c-') elseif m==5 plot(days,Volume,'k-') end legend('20 kW','new design','25 kW','30 kW','old design','35 kW','40 kW')

236 xlabel('DAYS') ylabel('VOLUME (m^3)') title('FUEL CELL SYSTEM VOLUME VS. DAYS IN OPERATION') hold on end end

237 solarpower.m clear % Solar Arrays

%------% Power input in kW

% Power for 30 kW fuel cell %power=71.1317;

% Power for 20 kW fuel cell %power=47.4048;

% Power for graph power=[0:0.1:80]; %------powerdensity=0.223; density=1.2275; sunenergy=0.58; %kW/m^2 efficiency=0.24; degradation=0.95; area=degradation*power/(sunenergy*efficiency); %m^2 mass=density*area/0.45; %kg

% double structure mass for artificial gravity mass2=mass+2*0.55*mass; if length(power) ~= 1

238 figure(1) plot(71.1317,2781,'rh',47.4048,1853,'r*',power,mass2) xlabel('ARRAY POWER PRODUCED (kW)') ylabel('ARRAY MASS (kg)') title('SOLAR ARRAY MASS VS. POWER PRODUCED') legend('old design','new design')

figure(2) plot(71.1317,485,'rh',47.4048,324,'r*',power,area) xlabel('ARRAY POWER PRODUCED (kW)') ylabel('ARRAY AREA (m^3)') title('SOLAR ARRAY AREA VS. POWER PRODUCED') legend('old design','new design') end

239 Appendix 9.2.1 Long Range Rover Alec Spencer

LRR Design Considerations The starting place for the design of the long-range pressurized rover is in its design capabilities. To adequately attain our exploration mission goals, we set benchmarks that the rover must achieve. The rover’s baseline capabilities are a 1000 Km range with a typical crew of two for 14 days. To judge the effectiveness of the rover in achieving the total exploration mission, a success will be defined in terms of distance covered. This distance is set at 10,000 Km which possibly gives the exploration mission ten excursions of 1000 Km each. The rover must be large enough for the crew to live comfortably while on an excursion. Complete exploration hinges on the ability to navigate accurately and maximize data collection. Data collection on the rover can be done actively or passively depending on the level of detail and type of data that is to be acquired. The power source for such a rover is an enormous part of the design process. Options for rover power sources include an internal combustion engine, fuel cells, solar power, or nuclear devices. Each source of power has advantages and disadvantages. The internal combustion engines have lower efficiencies (15%-30%), but the propellant can easily be manufactured on planet and the total system is much lighter. Fuel cells have higher efficiencies (50-60%), but tanks for liquid hydrogen, oxygen, or methane are large, heavy, and need to be stored cryogenically. HAB fuel cell is sized for 30 kW for 5 days and has a 4.5 tonne mass and 7.8 m3 volume. Solar powered rovers do not need fuel, but inefficiencies due to Martian dust and day-to-night cycles make the required solar array too big to feasibly power a large rover. HAB solar array is sized for 71 kW, has a mass of 1.8 tonne and a volume of 485 m3 (due it’s large area). Nuclear powered vehicles can last for years and do not require fuel but are extremely heavy due to the required shielding for close human proximity. This design choice is also impacted by the total mission design. Weight reduction is a huge factor in all of the science equipment design. Only certain fuels will be manufactured in the in-situ production plant and hydrogen brought from Earth is a precious commodity on Mars.

240 Another design consideration is the redundancy and reliability of the rover, and its place in the entire mission. The sizing of tanks for oxygen, fuel, water, and food were done with an emergency mission plan of four crew for 30 days. This was done so that the rover could be used as a temporary HAB for short emergency periods. Each system also has more than one level of redundancy. This is due mainly to the fact that the explorers will be in the most dangerous and risky situations while on excursion. Initial sizing of the rover is based upon comfort and available space in the ERA launch vehicle. For comfort reasons, the rover is designed so that a human can stand comfortably inside it due to the 14-day mission duration. With the ERV removed from the ERA fairing, there is an 8 meter diameter cylinder that is 4 meters tall available for possible rover space. This space acts as a garage (MG) for the rover on planet. With these considerations in mind, the body for the rover was constrained to a 6m x 3m x 3m box. This gives room for a wider wheelbase and allows for up to 1 m ground clearance. We approximated such a rover to have a 6-tonne mass.

Power The combination of minimizing rover mass and the availability of fuel production on planet are the main driving forces behind our decision to use an internal combustion engine for power. The two choices for rover fuel from the in-situ plant are methane and methanol. Methane is easier to produce with the Sabatier reaction, but it is also a gas and therefore takes up more volume. In addition, complete combustion of methane with oxygen occurs with a mixture ratio of 3.5 moles O2 to every mole of methane (calculated using TEP code by Adam Butt). Space is a limiting factor on the pressurized rover so this fuel may not be the best choice. Methanol takes an extra step to produce, but it is stored in a liquid form at room temperatures. The mixture ratio for methanol’s complete combustion occurs at 1.5. The following reaction shows the buffer method and mixing ratio for complete

CH3OH + 1.5 O2 + b CO2  (1+b) CO2 + 2 H2O

241 combustion of methanol. The variable b represents the number of moles of CO 2 that are take in from the atmosphere to buffer the reaction, thereby reducing the heat of combustion. This means less oxygen needs to be produced and carried with the rover with methanol fuel than with methane. The cryogenic storage of both the methane and oxygen make such a system even more unfavorable. When the energy densities of the two bi-propellant options are compared, methane outperforms methanol by volume and by mass (Zubrin, page 145) but not buy a large amount. Methanol is also used in Formula 1 racing, so the technology to create such an engine is well known. In contrast, a methane-burning engine would need to be designed from scratch.

Wheels Inflatable wheels sized for a 6-tonne vehicle are heavier and have the possibility of deflating. Hard rubber wheels eliminate this problem but are still heavy. Conic spring steel wheels eliminate both of these problems.

LRR images The dimensions for the rover are in Figure A9.2.1. Artistic renderings show the rover in detail in Figures A9.2.2 – A9.2.11. We created the rover using AutoCAD R14 and rendered the pictures with Bryce 3D. The terrain and astronauts were borrowed from the Mars Art Toolkit. Figures A9.2.2 and A9.2.3 show the internal components of the rover mentioned in section 9.2.1 of the report. Figures A9.2.4-A9.2.8 are various external views of the rover. Initial concepts are displayed in the final four Figures.

242 Figure A9.2.1 LRR dimensions [m]

Figure A9.2.2 LRR internal components

Airlock Hygiene water Potable water tank tank water dispenser

Entertainment Food Center storage Airlock door

CO scrubbers 2 O regulators Access panels 2 243 Figure A9.2.3 Science workstations

Storage location for robotic arm Glove box

Computers

Figure A9.2.4 External view

244 Figure A9.2.5 External view

Figure A9.2.6 Rear view with glovebox

245 Figure A9.2.7 Front view

Figure A9.2.8 Close-up

246 Figure A9.2.9 Initial rover concept

Figure A9.2.11 Intermediate rover concept

Figure A9.2.10 Initial rover concept Figure A9.2.12 Intermediate rover concept

247 Appendix 9.2.2 Inflatable Greenhouse

Figure A9.2.13 Diagram for greenhouse.m Design considerations The MATLAB code greenhouse.m calculates greenhouse properties for a range of inner radii and theta angles. The angle theta is shown in Figure A9.2.13. The range for the radii is 1-m to 10-m in 1000 steps and the range for theta is 0o to 1500 in steps of 10o. The results of the code are found in Figures A9.2.14 -A9.2.18. The greenhouse configurations were evaluated with respect to mass, ceiling height, floor space, and enclosed volume. The greenhouse is limited to 1- tonne. The ceiling height must be greater than 2-m so the crew can stand inside it. The floor area must be large enough for adequate planting space. The volume enclosed becomes important because the plants will quickly convert all the CO2 into O2. A larger volume allows the plants longer intervals of carbon dioxide rich environments for the crew to conduct experiments. Figure A9.2.15 shows the different greenhouse configurations plotted with respect to system mass. The mass of the greenhouse is proportional to the surface area of the foil. The curves shows a quadratic relationship so this makes sense. The spherical configurations increase in mass more quickly because they have a higher surface area ratio than the flatter dome type designs. The greenhouse is designed with a 4-m radius and 80o theta angle. This design provides ample ceiling height for a 1-tonne greenhouse. Floor area was not maximized because this maximizes the force needed to hold the greenhouse down. Theta angles greater than 90o were eliminated because they give the same floor area as the their component below 90o with a lower ceiling and internal volume.

248 Figure A9.2.15 Greenhouse Mass hemisphere sphere

Figure A9.2.16 Inner ceiling

hemisphere

sphere

249 Figure A9.2.17 Floor area

hemisphere

sphere

Figure A9.2.18 Packed Foil Volume

250 Anchor system The anchoring system for the greenhouse is calculated with a 5-psi internal pressure. The total lifting force created by the greenhouse is given by the internal pressure multiplied by the floor area. A simple force balance shows how the distributed pressure simplifies to this relation. To keep the greenhouse secured to the soil, Spectra 2000 cable and stakes of three different material properties are analyzed and sized with the MATLAB code anchor.m. This code is run after greenhouse.m and uses the floor size and internal pressure to calculate the lifting force. The system is analyzed for a range of 3 to 30 stakes holding the greenhouse to the soil. Figure A9.2.19 shows the system mass for the different materials. At first glance, the plot seems to show that there is no change in the system configuration when additional stakes are added. This is because the code uses simple tensile stress analysis to size the cross-sectional area needed to withstand such a force without yield. Adding additional stakes to the system only decreases the mass and cross-sectional area of each stake. This gives us freedom to select the level of redundancy in the system by choosing the number to stakes. The trade- off occurs when the greenhouse is set-up on planet surface. Thirty stakes holding the greenhouse is great for redundancy, but each stake must be twisted into the ground and then secured into the permafrost by the crew. The lightest anchor configuration occcurs with titanium. However, we selected aluminum stakes because the mass penalty between the two materials is relatively small compared to the added cost of machining titanium. Ten stakes hold down the greenhouse. This number gives ample redundancy and reduces the mass of each stake for handling by the crew. Figures A9.2.20 and A9.2.21 show the radius and mass of each stake calculated for each stake and cable configuration.

251 Figure A9.2.19 Anchor system mass

Figure A9.2.20 Stake Mass

252 Figure A9.2.21 Stake Radius

Greenhouse images The dimensions for the greenhouse are found in Figure A9.2.22. A simple rendering of the greenhouse shows the basic configuration in Figure A9.2.23. Bryce renderings account for Figures A9.2.24 – A9.2.26. The internal soil organization and crew walkways are displayed in Figure A9.2.27. Figure A9.2.28 shows an intial design concept.

253 254 FigureFigure A9.2.24 A9.2.22Figure A9.2.26 External Greenhouse Close-upview dimensions external view

Figure A9.2.25Figure Internal A9.2.28 view Initial design concept

Figure A9.2.27 Greenhouse Figure A9.2.23 Greenhousefloor configuration and soil organization

255 256 greenhouse.m % Alec Spencer frequency 6 icosahedron % AAE450 Spacecraft Design hexagons 55 (whole sphere) % Science pentagons 12 % Inflatable greenhouse dividers 380 radius=linspace(1,10,1000); %inner radius angle_deg=linspace(0,150,16); %see problem figure for details angle_rad=angle_deg*pi/180; wo=.00150; %outside ETFE in [m] (150 microns) wi=.00050; %inside ETFE in [m] (50 microns) for i=1:1000; for j=1:16; r1(i,j)=radius(i); r2(i,j)=1.09*r1(i,j); %middle layer radius r3(i,j)=1.18*r1(i,j); %outer layer radius

%geometry for calculating floor space, ground covering, and vertical pressure theta1(i,j)=angle_rad(j); h(i,j)=r1(i,j).*cos(theta1(i,j)); %distance from center of sphere to floor c(i,j)=r1(i,j)+h(i,j); %ceiling from center of floor b1(i,j)=r1(i,j).*sin(theta1(i,j)); %distance from center of floor to inner layer (r1) theta2(i,j)=acos(h(i,j)./r2(i,j)); %angle to r2 where ground intersects b2(i,j)=r2(i,j).*sin(theta2(i,j)); %distance from center of floor to middle layer (r2) theta3(i,j)=acos(h(i,j)./r3(i,j)); %angle to r3 where ground intersects b3(i,j)=r3(i,j).*sin(theta3(i,j)); %distance from center of floor to outer layer (r3)

%surface of a sphere A1(i,j)=2*pi*r1(i,j).*(r1(i,j)+r1(i,j).*cos(theta1(i,j)));

257 A2(i,j)=2*pi*r2(i,j).*(r2(i,j)+r2(i,j).*cos(theta2(i,j))); A3(i,j)=2*pi*r3(i,j).*(r3(i,j)+r3(i,j).*cos(theta3(i,j)));

%projected area on ground A1f(i,j)=pi*b1(i,j).^2; %inner floor space V1f(i,j)=.01*A1f(i,j); %1cm foam rubber floor massf(i,j)=100*V1f(i,j); %mass floor A2f(i,j)=pi*(b2(i,j).^2-b1(i,j).^2); %annular ring between r1 and r2 A3f(i,j)=pi*(b3(i,j).^2-b2(i,j).^2); %annular ring between r3 and r2 Amat(i,j)=A1f(i,j)+A2f(i,j)+A3f(i,j); Vmat(i,j)=.01*Amat(i,j); massmat(i,j)=100*Vmat(i,j); %1 cm mat for protection from ground

%pressurized lifting force p_plant=0.7*6894.75729317; %Pressure [psi]*[Pa/psi] (Dr. Zubrin's number for what plants can tolerate) p_human=5*6894.75729317; %Pressure [psi]*[Pa/psi] for human shirt sleeve environment

%volume of thin spherical shell V1(i,j)=A1(i,j).*wi; V2(i,j)=A2(i,j).*wi; V3(i,j)=A3(i,j).*wo;

%dividers hd(i,j)=.1*r1(i,j); %average height of a divider ld(i,j)=.2*r2(i,j); %average length of a divider nd(i,j)=(35+25*5+6*5)+(35+25*5+6*5)*cos(theta2(i,j)); %number of dividers Ad(i,j)=ld(i,j).*hd(i,j).*nd(i,j); Vd(i,j)=Ad(i,j).*wi;

258 Vf(i,j)=V1(i,j)+V2(i,j)+V3(i,j)+Vd(i,j); %total foil volume massfoil(i,j)=1720*Vf(i,j); %specific gravity of ETFE is 1.72; water=1g/cm^3=1000kg/m^3 masstot(i,j)=massfoil(i,j)+massmat(i,j)+massf(i,j)+2*25+50; %total mass with two 25 kg space heaters and 50 kg pressure regulator/airlock voltot(i,j)=Vf(i,j)+Vmat(i,j)+V1f(i,j); %packed volume end end

%1 tonne limit on greenhouse mass mass_limit=linspace(1000,1000,1000); rmass_limit=([r1(280,1) r1(281,2) r1(283,3) r1(288,4) r1(295,5) r1(304,6) r1(317,7) r1(334,8) r1(355,9) r1(383,10) r1(420,11) r1(467,12) r1(530,13) r1(613,14) r1(723,15) r1(868,16)]); Amass_limit=([A1f(280,1) A1f(281,2) A1f(283,3) A1f(288,4) A1f(295,5) A1f(304,6) A1f(317,7) A1f(334,8) A1f(355,9) A1f(383,10) A1f(420,11) A1f(467,12) A1f(530,13) A1f(613,14) A1f(723,15) A1f(868,16)]); cmass_limit=([c(280,1) c(281,2) c(283,3) c(288,4) c(295,5) c(304,6) c(317,7) c(334,8) c(355,9) c(383,10) c(420,11) c(467,12) c(530,13) c(613,14) c(723,15) c(868,16)]); vmass_limit=([voltot(280,1) voltot(281,2) voltot(283,3) voltot(288,4) voltot(295,5) voltot(304,6) voltot(317,7) voltot(334,8) voltot(355,9) voltot(383,10) voltot(420,11) voltot(467,12) voltot(530,13) voltot(613,14) voltot(723,15) voltot(868,16)]); %2 meter limit on inner ceiling height height_limit=linspace(2,2,1000); rc_limit=([r1(1,1) r1(2,2) r1(5,3) r1(9,4) r1(16,5) r1(25,6) r1(38,7) r1(55,8) r1(79,9) r1(112,10) r1(159,11) r1(227,12) r1(334,13) r1(511,14) r1(839,15)]); mc_limit=([masstot(1,1) masstot(2,2) masstot(5,3) masstot(9,4) masstot(16,5) masstot(25,6) masstot(38,7) masstot(55,8) masstot(79,9) masstot(112,10) masstot(159,11) masstot(227,12) masstot(334,13) masstot(511,14) masstot(839,15)]); Ac_limit=([A1f(1,1) A1f(2,2) A1f(5,3) A1f(9,4) A1f(16,5) A1f(25,6) A1f(38,7) A1f(55,8) A1f(79,9) A1f(112,10) A1f(159,11) A1f(227,12) A1f(334,13) A1f(511,14) A1f(839,15)]);

259 for k=1:10 for l=11:16 figure(1)%mass hold on plot(r1(:,k),masstot(:,k),'b'); plot(r1(:,l),masstot(:,l),'k'); plot(r1(:,1),mass_limit,'r'); plot(rc_limit,mc_limit,'m'); %plot(r1(:,1),massfoil(:,1),r1(:,5),massfoil(:,5),r1(:,10),massfoil(:,10)); %verification %plot(r1(:,1),massmat(:,1),r1(:,5),massmat(:,5),r1(:,10),massmat(:,10)); %plot(r1(:,1),massf(:,1),r1(:,5),massf(:,5),r1(:,10),massf(:,10)); title('Greenhouse mass') xlabel('inner radius [m]'); ylabel('mass [kg]'); axis([1 10 0 2000]); hold off figure(2) hold on plot(r1(:,k),voltot(:,k),'b'); plot(r1(:,10),voltot(:,10),'m'); plot(r1(:,l),voltot(:,l),'k'); plot(rmass_limit,vmass_limit,'r'); title('Packed volume') xlabel('inner radius [m]'); ylabel('volume [m^3]'); %axis([1 10 0 2000]); hold off

260 figure(3)%floor area hold on plot(r1(:,k),A1f(:,k),'b'); plot(r1(:,l),A1f(:,l),'k-.'); plot(rmass_limit,Amass_limit,'r'); plot(rc_limit,Ac_limit,'m'); title('Floor area'); xlabel('inner radius [m]'); ylabel('area [m]'); hold off figure(4)%ceiling hold on plot(r1(:,k),c(:,k),'b'); plot(r1(:,l),c(:,l),'k'); plot(r1(:,1),height_limit,'m'); plot(rmass_limit,cmass_limit,'r'); title('inner height'); xlabel('inner radius [m]'); ylabel('height [m]'); end end greenhouse=([' r1 ' ' A1f ' ' rf ' ' c ' ' mass ' ' vol']) greenhousenum=([r1(334,8) A1f(334,8) sqrt(A1f(334,8)/pi) c(334,8) masstot(334,8) voltot(334,8)])

261 anchor.m %hold down cable calculation for selected greenhouse (run after greenhouse.m) r3=1.18*4; %greenhouse outer radius floor=A1f(334,8); %floor area ring=A2f(334,8)+A3f(334,8); %outer ring area f1=ring*p_human; lf1=f1-masstot(334,8)*9.81*.38 %lifting force with just outer pillows inflated f2=floor*p_plant+f1; lf2=f2-masstot(334,8)*9.81*.38 %pressurized for plants f3=floor*p_human+f1; lf3=f3-masstot(334,8)*9.81*.38 %pressurized for shirt sleeve environment

% material properties of Spectra 2000 (from Anne DeLion's tether code) sig_sp=3.51e9; % Max tensile strength (Pa) den_sp=970; % desity kg/m^3 sf_sp = 1.5; % Factor of Safety sigsp = sig_sp/sf_sp; %All your base are belong to us. % material properties of Al 7075-T6 sig_al=550e6; % Max tensile strength (Pa) den_al=2800; % desity kg/m^3 sf_al = 1.5; % Factor of Safety sigal = sig_al/sf_al; % material properties of steel sig_st=1200e6; % Max tensile strength (Pa) den_st=7700; % desity kg/m^3 sf_st = 1.5; % Factor of Safety sigst = sig_st/sf_st;

262 % material properties of titanium sig_ti=970e6; % Max tensile strength (Pa) den_ti=4400; % desity kg/m^3 sf_ti = 1.5; % Factor of Safety sigti = sig_ti/sf_ti;

%use f3 to size hold down cables cables=linspace(3,30,27); length=1.3681+.5*pi*r3; %distance from ground to edge of sphere + 1/4 circumference area_sp=f3./cables./sigsp; radius_sp=sqrt(area_sp./pi); vol_sp=area_sp*length.*cables; mass_sp=vol_sp.*den_sp; area_al=f3./cables./sigal; % 1 meter aluminum stakes radius_al=sqrt(area_al./pi); vol_al=area_al.*cables; mass_al=vol_al.*den_al; area_st=f3./cables./sigst; radius_st=sqrt(area_st./pi); vol_st=area_st.*cables; mass_st=vol_st*den_st; area_ti=f3./cables./sigti; radius_ti=sqrt(area_ti./pi); vol_ti=area_ti.*cables; mass_ti=vol_ti.*den_ti;

263 figure(5) plot(cables,mass_sp+mass_al,'b-',cables,mass_sp+mass_st,'k-.',cables,mass_sp+mass _ti,'r--'); %title('Anchoring system mass'); xlabel('Number of cables/stakes'); ylabel('Mass [kg]'); legend('Aluminum','Steel','Titanium') figure(6) plot(cables,100*radius_al,'b-',cables,100*radius_st,'k-.',cables,100*radius_ti,'r--') %title('Stake radius'); xlabel('Number of cables/stakes'); ylabel('Radius [cm]'); legend('Aluminum','Steel','Titanium') figure(7) plot(cables,mass_al./cables,'b-',cables,mass_st./cables,'k-.',cables,mass_ti./cables,'r--') %title('Mass per stake'); xlabel('Number of cables/stakes'); ylabel('Mass [kg]'); legend('Aluminum','Steel','Titanium')

264

Recommended publications