Space Communication
Contents
Free-Space Path Loss vs. Cable Loss
Click for more…! Consider a space link with 100 million kilometer distance and a transmit frequency of 2 GHz (S-Band). 1. Calculate the Free-Space Path Loss [dB].
clear all; clc; close all; F = 2; %transmit frequency (S-Band)[GHz] d = 1e8; %[km] L = 92.4 + 20*log10(F) + 20*log10(d); %[dB] fprintf('Free-Space Path Loss L = %4.2f [dB] \n',L); % Assume a typical coaxial cable with a loss of 0.3[dB/m] at S-Band. % How long may this cable be for a total loss equal to the Free-Space % Path Loss from above [m]? c_l = 0.3; %[dB/m] l_cabel = L/c_l; %[m] fprintf('Equivalent Cabel Length = %4.2f [m] \n\n',l_cabel);
Free-Space Path Loss L = 258.42 [dB] Equivalent Cabel Length = 861.40 [m]
Propagation Delays
1.Calculate the two-way propagation delays[min] between Earth and spacecrafts at diferent planets (from Mercury to Saturn; consider the following average distances between Sun-Planet: 0.3871AU for Mercury, 0.723AU for Venus, 1.524AU for Mars, 5.203AU for Jupiter, 9.582AU for Saturn). Assume conjunction Sun-Planet-Earth (Mercury, Venus), or Sun-Earth-Planet
%(Mars,Jupiter, Saturn) for an easy calculation of the minimum distances %(Note that this is not the worst case in terms of maximum distances to be % considered for the actual link design). v_light = 300000;% Speed of light in vacuum [km/s] R_mercury = 0.3871; %[AU] R_venus = 0.7230; %[AU] R_earth = 1.0000; %[AU] R_mars = 1.5240; %[AU] R_jupiter = 5.2030; %[AU] R_saturn = 9.5820; %[AU] AU = 149597871; %[km] mu_sun = 132712440018; %(km^3s?2)
Earth – Mercury
p_d = 2*(R_earth - R_mercury)/v_light*AU/60; fprintf('Min Two-way Propagation Delay, Earth - Mercury = %4.2f [min]\n',p_d); figure(1); T_mercury = 2*pi*((R_mercury*AU)^3/mu_sun)^0.5/86400; % solar days T_earth = 2*pi*((R_earth*AU)^3/mu_sun)^0.5/86400; % solar days time = 0:1:10*T_mercury; fi_earth = rem(time,T_earth)/(T_earth)*360; fi_mercury = rem(time,T_mercury)/(T_mercury)*360; phase = fi_earth - fi_mercury; dist = (R_earth^2 + R_mercury^2 - 2*R_earth*R_mercury*cosd(phase)).^0.5; subplot(2,1,1); plot(time/T_earth,dist); title ('Earth - Mercury Comunication'); ylabel('Distance Earth - Mercury [AU]'); p_d = 2*dist/v_light*AU/60; subplot(2,1,2); plot(time/T_earth,p_d,'k'); ylabel('Two-way Propagation Delay [min]'); xlabel('Time [Earth Period]');
Min Two-way Propagation Delay, Earth - Mercury = 10.19 [min]
Earth – Venus
p_d = 2*(R_earth - R_venus)/v_light*AU/60; fprintf('Min Two-way Propagation Delay, Earth - Venus = %4.2f [min]\n',p_d); figure(2); T_venus = 2*pi*((R_venus*AU)^3/mu_sun)^0.5/86400; % solar days T_earth = 2*pi*((R_earth*AU)^3/mu_sun)^0.5/86400; % solar days time = 0:1:7*T_venus; fi_earth = rem(time,T_earth)/(T_earth)*360; fi_venus = rem(time,T_venus)/(T_venus)*360; phase = fi_earth - fi_venus; dist = (R_earth^2 + R_venus^2 - 2*R_earth*R_venus*cosd(phase)).^0.5; subplot(2,1,1); plot(time/T_earth,dist); title ('Earth - Venus Comunication'); ylabel('Distance Earth - Venus [AU]'); p_d = 2*dist/v_light*AU/60; subplot(2,1,2); plot(time/T_earth,p_d,'k'); ylabel('Two-way Propagation Delay [min]'); xlabel('Time [Earth Period]');
Min Two-way Propagation Delay, Earth - Venus = 4.60 [min]
Earth – Mars
p_d = 2*(R_mars - R_earth)/v_light*AU/60; fprintf('Min Two-way Propagation Delay, Earth - Mars = %4.2f [min]\n',p_d); figure(3); T_mars = 2*pi*((R_mars*AU)^3/mu_sun)^0.5/86400; % solar days T_earth = 2*pi*((R_earth*AU)^3/mu_sun)^0.5/86400; % solar days time = 0:1:6*T_mars; fi_earth = rem(time,T_earth)/(T_earth)*360; fi_mars = rem(time,T_mars)/(T_mars)*360; phase = fi_earth - fi_mars; dist = (R_earth^2 + R_mars^2 - 2*R_earth*R_mars*cosd(phase)).^0.5; subplot(2,1,1); plot(time/T_earth,dist); title ('Earth - Mars Comunication'); ylabel('Distance Earth - Mars [AU]'); p_d = 2*dist/v_light*AU/60; subplot(2,1,2); plot(time/T_earth,p_d,'k'); ylabel('Two-way Propagation Delay [min]'); xlabel('Time [Earth Period]');
Min Two-way Propagation Delay, Earth - Mars = 8.71 [min]
Earth – Jupiter
p_d = 2*(R_jupiter- R_earth)/v_light*AU/60; fprintf('Min Two-way Propagation Delay, Earth - Jupiter = %4.2f [min]\n',p_d); figure(4); T_jupiter = 2*pi*((R_mars*AU)^3/mu_sun)^0.5/86400; % solar days T_earth = 2*pi*((R_earth*AU)^3/mu_sun)^0.5/86400; % solar days time = 0:1:3*T_mars; fi_earth = rem(time,T_earth)/(T_earth)*360; fi_jupiter = rem(time,T_jupiter)/(T_jupiter)*360; phase = fi_earth - fi_jupiter; dist = (R_earth^2 + R_jupiter^2 - 2*R_earth*R_jupiter*cosd(phase)).^0.5; subplot(2,1,1); plot(time/T_earth,dist); title('Earth - Jupiter Comunication'); ylabel('Distance Earth - Jupiter [AU]'); p_d = 2*dist/v_light*AU/60; subplot(2,1,2); plot(time/T_earth,p_d,'k'); ylabel('Two-way Propagation Delay [min]'); xlabel('Time [Earth Period]');
Min Two-way Propagation Delay, Earth - Jupiter = 69.86 [min]
Earth – Saturn
p_d = 2*(R_saturn- R_earth)/v_light*AU/60; fprintf('Min Two-way Propagation Delay, Earth - Saturn = %4.2f [min]\n',p_d); figure(5); T_saturn = 2*pi*((R_saturn*AU)^3/mu_sun)^0.5/86400; % solar days T_earth = 2*pi*((R_earth*AU)^3/mu_sun)^0.5/86400; % solar days time = 0:1:3*T_mars; fi_earth = rem(time,T_earth)/(T_earth)*360; fi_saturn = rem(time,T_saturn)/(T_saturn)*360; phase = fi_earth - fi_saturn; dist = (R_earth^2 + R_saturn^2 - 2*R_earth*R_saturn*cosd(phase)).^0.5; subplot(2,1,1); plot(time/T_earth,dist); title ('Earth - Saturn Comunication'); ylabel('Distance Earth - Saturn [AU]'); p_d = 2*dist/v_light*AU/60; subplot(2,1,2); plot(time/T_earth,p_d,'k'); ylabel('Two-way Propagation Delay [min]'); xlabel('Time [Earth Period]');
Min Two-way Propagation Delay, Earth - Saturn = 142.65 [min]
%2. For the various cases calculate the Free-Space Path Loss[dB], assuming % an RF frequency of 6 GHz. F = 6; %transmit frequency [GHz] % Earth - Mercury L = 92.4 + 20*log10(F) + 20*log10((R_earth - R_mercury)*AU); %[dB] fprintf('Free-Space Path Loss, Earth - Mercury L = %4.2f [dB] \n',L); % Earth - Venus L = 92.4 + 20*log10(F) + 20*log10((R_earth - R_venus)*AU); %[dB] fprintf('Free-Space Path Loss, Earth - Venus L = %4.2f [dB] \n',L); % Earth - Mars L = 92.4 + 20*log10(F) + 20*log10((R_mars - R_earth)*AU); %[dB] fprintf('Free-Space Path Loss, Earth - Mars L = %4.2f [dB] \n',L); % Earth - Jupiter L = 92.4 + 20*log10(F) + 20*log10((R_jupiter - R_earth)*AU); %[dB] fprintf('Free-Space Path Loss, Earth - Jupiter L = %4.2f [dB] \n',L); % Earth - Saturn L = 92.4 + 20*log10(F) + 20*log10((R_saturn - R_earth)*AU); %[dB] fprintf('Free-Space Path Loss, Earth - Saturn L = %4.2f [dB] \n\n',L);
Free-Space Path Loss, Earth - Mercury L = 267.21 [dB] Free-Space Path Loss, Earth - Venus L = 260.31 [dB] Free-Space Path Loss, Earth - Mars L = 265.85 [dB] Free-Space Path Loss, Earth - Jupiter L = 283.93 [dB] Free-Space Path Loss, Earth - Saturn L = 290.13 [dB]
Satellite Design
Your satellite designer wants to reduce the satellite transmitter output power from 50 W to 25 W to save weight. How much is this reduction expressed in dB scale?
P1 = 50; % [W] P1_db = 10*log10(P1); % 17 dBW P2 = 25; % [W] P2_db = 10*log10(P2); % 14 dBW red = (P2_db - P1_db); % - 3 dBW fprintf('Reduction expressed in DB scale %4.0f\n',red); % If you want to maintain the satellite-to-ground % station data link at the same data rate, you could achieve this by % modifying the antenna on ground: By which factor do you have to increase % the diameter of a your dish antenna then? % Pt1*A1r = Pt2*A2r A2r/A1r = Pt1/Pt2 = 2 % Pt - Transmited Power ; % Ar - Effective Area of receiving antena; R_factor = sqrt(P1/P2); fprintf('Diameter increase your dish antenna %4.2f \n',R_factor);
Reduction expressed in DB scale -3 Diameter increase your dish antenna 1.41
Published with MATLAB® 7.10
Hohmann transfer orbit
Find more at https://smallsat.wordpress.com
A spececraft is in a 300 km circular eart orbit. Calculate (a)The orbital delta v required for a Hohmann to a 3000 km coplanar circular earth orbit and (b)The transfer orbit time
clear all; clc; close all; Alt_a = 300; Alt_b = 3000; Re = 6378; R_a = Alt_a + Re; R_b = Alt_b + Re; mu = 398600; V_a = (mu/R_a)^0.5; %Velocity of Circular Orbit at A fprintf('Alt_a = %8.2f Alt_b = %8.2f \n',Alt_a,Alt_b); fprintf('Velocity of Circular Orbit at A = %8.4f km/s \n',V_a); a = (R_a+R_b)/2; %Eliptical Orbit Semimajor Axis fprintf('Eliptical Orbit Semimajor Axis = %8.4f km/s \n',a); Vtp = (2*mu*(1/R_a - 1/(R_a + R_b)))^0.5; %Transfer orbit at Perigee fprintf('Transfer orbit at Perigee = %8.4f km/s \n',Vtp); dVa = Vtp - V_a; fprintf('dV burn at Perigee = %8.4f km/s \n',dVa); Vtb = (2*mu*(1/R_b - 1/(R_a + R_b)))^0.5; fprintf('Transfer orbit at Apogee = %8.4f km/s \n',Vtp); V_b = (mu/R_b)^0.5; %Velocity of Circular Orbit at B fprintf('Velocity of Circular Orbit at B = %8.4f km/s \n',V_b); dVb = V_b - Vtb; fprintf('dV burn at Apogee = %8.4f km/s \n\n',dVb); dVt = dVa + dVb; fprintf('Total delta Velocity required = %8.4f km/s \n',dVt); T = 2*pi*(a^3/mu)^0.5; %Orbital period fprintf('Transfer orbit time = %d m %2.1f s \n\n\n',floor(T/120),rem(T/2,60));
Alt_a = 300.00 Alt_b = 3000.00 Velocity of Circular Orbit at A = 7.7258 km/s Eliptical Orbit Semimajor Axis = 8028.0000 km/s Transfer orbit at Perigee = 8.3502 km/s dV burn at Perigee = 0.6244 km/s Transfer orbit at Apogee = 8.3502 km/s Velocity of Circular Orbit at B = 6.5195 km/s dV burn at Apogee = 0.5734 km/s Total delta Velocity required = 1.1977 km/s Transfer orbit time = 59 m 39.3 s
Assuming the orbits of earth and Mars are circular and coplanar, calculate (a) the time required for a Hohmann transfer from earth orbit to Mars orbit (b) the initial position of Mars ( ? ) in its orbit relative to earth for interception to occur.Radius of earth orbit 1.496 10^8 km. Radius of Mars orbit 2.279*10^8 km.Sun 1.327 10 11 km 3 /s 2 .
R_earth = 1.496E8; R_mars = 2.279E8; mu = 1.327E11; V_earth = (mu/R_earth)^0.5; %Velocity of Circular Orbit of erath fprintf('Velocity of Circular Orbit of Earth = %8.4f km/s \n',V_earth); a = (R_earth + R_mars)/2; %Eliptical Orbit Semimajor Axis fprintf('Eliptical Orbit Semimajor Axis = %8.4f km/s \n',a); Vtp =(2*mu*(1/R_earth - 1/(R_earth + R_mars)))^0.5; %Trans.orbit at Perigee fprintf('Transfer orbit at Periapsis = %8.4f km/s \n',Vtp); dVp = Vtp - V_earth; fprintf('dV burn at Periapsis = %8.4f km/s \n',dVp); Vta = (2*mu*(1/R_mars - 1/(R_mars + R_earth)))^0.5; V_mars = (mu/R_mars)^0.5; %Velocity of Circular Mars Orbit fprintf('Velocity of Circular Mars Orbit = %8.4f km/s \n',V_mars); dVa = V_mars - Vta; fprintf('dV burn at Apoapsis = %8.4f km/s \n',dVa); dVt = dVa + dVp; fprintf('Total delta Velocity required = %8.4f km/s \n',dVt); T = 2*pi*(a^3/mu)^0.5; %Orbital period % The initial position of Mars ( ? ) in its orbit relative to earth for % interception to occur T_mars = 2*pi*(R_mars^3/mu)^0.5; angle_mars = pi/T_mars*T; angle_mars_t =( pi - angle_mars); fprintf('Angle Mars Traveled = %4.3f deg \n\n',angle_mars*180/pi); fprintf('Transfer time = %4.3f days \n',T/(120*60*24)); fprintf('The initial position of Mars = %4.3f deg \n',angle_mars_t*180/pi);
Velocity of Circular Orbit of Earth = 29.7831 km/s Eliptical Orbit Semimajor Axis = 188750000.0000 km/s Transfer orbit at Periapsis = 32.7264 km/s dV burn at Periapsis = 2.9433 km/s Velocity of Circular Mars Orbit = 24.1303 km/s dV burn at Apoapsis = 2.6478 km/s Total delta Velocity required = 5.5911 km/s Angle Mars Traveled = 135.671 deg Transfer time = 258.840 days The initial position of Mars = 44.329 deg
Two geocentric elliptical orbits have common apse lines and their perigees are on the same side of the earth. The fi rst orbit has a perigee radius of r p 7000 km and e 0.3, whereas for the second orbit r p 32,000 km and e 0.5. (a) Find the minimum total delta-v and the time of flight for a transfer from the perigee of the inner orbit to the apogee of the outer orbit. (b) Do part (a) for a transfer from the apogee of the inner orbit to the perigee of the outer orbit.
fprintf('Part A\n'); mu = 398600; R1_p = 7000; %km e1 = 0.3; R2_p = 32000; %km e2 = 0.5; R1_a = R1_p*(e1 + 1)/(1 - e1); h1 = (2*mu*R1_a*R1_p/(R1_a + R1_p))^0.5; V1_p = h1/R1_p; %Velocity at Perigee 1st orbit V1_a = h1/R1_a; R2_a = R2_p*(e2 + 1)/(1 - e2); h2 = (2*mu*R2_a*R2_p/(R2_a + R2_p))^0.5; V2_a = h2/R2_a; %Velocity at Apogee 2nd orbit V2_p = h2/R2_p; x_dist = R2_a + R1_p; R3_p = R1_p; R3_a = x_dist - R3_p; e3 = (R3_a - R3_p)/(R3_a + R3_p); h3 = (2*mu*R3_a*R3_p/(R3_a + R3_p))^0.5; V3_p = h3/R3_p; V3_a = h3/R3_a; dV13_p = V3_p - V1_p; fprintf('\ndV burn at Perigee Orbit 1 = %8.4f km/s \n',dV13_p); dV23_a = V2_a - V3_a; fprintf('dV burn at Apogee Orbit 2 = %8.4f km/s \n',dV23_a); dV_total = dV13_p + dV23_a; fprintf('\nTotal Velocity Increase = %8.4f km/s \n',dV_total); a3 = (R3_p + R3_a)/2; T3 = 2*pi*(a3^3/mu)^0.5; fprintf('Transfer time = %4.3f hours \n\n',T3/(120*60)); % Transfer from the apogee of the inner orbit to the perigee of the % outer orbit. fprintf('Part B'); R4_p = R1_a; R4_a = R2_p; e4 = (R4_p + R4_a)/2; h4 =(2*mu*R4_a*R4_p/(R4_a + R4_p))^0.5; V4_p = h4/R4_p; V4_a = h4/R4_a; dV14_ap = abs(V4_p - V1_a); fprintf('\n\ndV burn at Apogee Orbit 1 = %8.4f km/s \n',dV14_ap); dV42_ap = abs(V4_a - V2_p); fprintf('dV burn at Perigee Orbit 2 = %8.4f km/s \n',dV42_ap); dV_total = dV14_ap + dV42_ap; fprintf('\nTotal Velocity Increase = %8.4f km/s \n',dV_total); a4 = (R1_a + R2_p)/2; T4 = 2*pi*(a4^3/mu)^0.5; fprintf('Transfer time = %4.3f hours \n',T4/(120*60));
Part A dV burn at Perigee Orbit 1 = 1.6989 km/s dV burn at Apogee Orbit 2 = 0.6896 km/s Total Velocity Increase = 2.3885 km/s Transfer time = 16.154 hours Part B dV burn at Apogee Orbit 1 = 1.9708 km/s dV burn at Perigee Orbit 2 = 1.6398 km/s Total Velocity Increase = 3.6106 km/s Transfer time = 4.665 hours
Published with MATLAB® 7.10
Best Fit Solution,Straight Line Fit
%https://smallsat.wordpress.com/
clear all clc T = [0,20,100,100,200,400,400,800,1000,1200,1400,1600]; R = [10.96,10.72,14.1,14.85,17.9,25.4,26,40.3,47,52.7,58,63]; plot(T,R,'r*'); title('Straight Line Fit'); xlabel('Temperature (deg C)'); ylabel('Resistivity (Ohm cm)'); sy = 0; sx = 0; sxy = 0; sx2 = 0; n = 12; for i=1:n sy = sy +R(i); sx = sx + T(i); sxy = sxy + T(i)*R(i); sx2 = sx2 + T(i)*T(i); end a = (sy*sx2-sx*sxy)/(n*sx2-sx^2); b = (n*sxy-sx*sy)/(n*sx2-sx^2); fprintf('\n\n Best Fit Coefficients') fprintf('\n x = %6.4f T + %6.4f \n',b,a) cm_fit =a+b*T; hold on; plot(T,cm_fit,'r'); legend('Data Points','Best Fit Solution','location','northwest');
Best Fit Coefficients x = 0.0337 T + 11.4695
Published with MATLAB® 7.10
Type K Thermocouple, Voltage vs Temperature
Source https://smallsat.wordpress.com/
% Polynomial Coefficients 0-500 °C[4] % Type K thermocouple c= [0,25.08355,7.860106e-2,-2.503131e-1,8.315270e-2,-1.228034e-2,... 9.804036e-4,-4.413030e-5,1.057734e-6,-1.052755e-8]; E= 0; % Measured Voltage difference in mv V = [1,E,E^2,E^3,E^4,E^5,E^6,E^7,E^8,E^9]; T_delta = c*V'; fprintf('Cold Bath Temp. = %0.3f C\n' ,T_delta ); fprintf('Cold Bath Temp. = %0.3f F\n\n' ,T_delta*1.8+32 ); E= 0.74; % Measured Voltage difference in mv V = [1,E,E^2,E^3,E^4,E^5,E^6,E^7,E^8,E^9]; T_delta = c*V'; fprintf('Room Bath Temp. = %0.3f C\n' ,T_delta ); fprintf('Room Bath Temp. = %0.3f F\n\n' ,T_delta*1.8+32 ); E= 3; % Measured Voltage difference in mv V = [1,E,E^2,E^3,E^4,E^5,E^6,E^7,E^8,E^9]; T_delta = c*V'; fprintf('Hot Bath Temp. = %0.3f C\n' ,T_delta ); fprintf('Hot Bath Temp. = %0.3f F\n\n' ,T_delta*1.8+32 );
Cold Bath Temp. = 0.000 C Cold Bath Temp. = 32.000 F Room Bath Temp. = 18.526 C Room Bath Temp. = 65.346 F Hot Bath Temp. = 73.576 C Hot Bath Temp. = 164.436 F
Published with MATLAB® 7.10
Iterative Numerical Solution for Mach, P, and T distribution along the SSME Nozzle
Contents
Iterative Numerical Solution for Mach, P, and T distribution along the
SSME Nozzle
Source https://smallsat.wordpress.com
clear all; clc; close all; Pe = 16.8727; %kPa P0 = 20.4*1000; %kPa T0 = 3500; %K %Gas Properties MW = 22; gamma = 1.22; %X Axis X = [0.00 4.00 8.00 12.00 16.00 20.00 25.00 30.00 50.00 70.00 90.00 100.00... 120.00 140.00 160.00 180.00 200.00 220.00 240.00 260.00 280.00 300.00 305.00]; %Z Axis Z = [17.50 15.50 13.00 12.25 13.00 15.50 18.50 22.00 33.00 41.50 50.50 54.50... 61.00 68.00 74.50 80.50 86.00 91.00 97.00 101.00 105.00 107.50 107.85]; %Diameter Dia = 2*Z; % Compute Mach Number at Exit Me = (2/(gamma - 1)*(((P0/Pe)^((gamma - 1)/gamma)) - 1))^0.5; fprintf('Mach Number at Exit = %8.6f \n',Me); %Compute ratio of geometric throat area to Sonic throat area AeAt = 77.5; %SSME Nozzle geometry; AtAs = (1/AeAt)*(1/Me*(2/(gamma + 1)*(1 + (gamma - 1)/2*Me^2))... ^((gamma + 1)/(2*(gamma - 1)))); fprintf('At/A* = %8.6f \n',AtAs); % At/A* = 1, Nozzle is Choked %Using Iterative Solver at each Nozzle station %Computing A/A* for each section D_exit = 215.7; %Exit Diameter A_As = 77.5*(Dia/D_exit).^2; oldMach = 4; eps = 0.001; for i =1:23 Mx(i) = Solver( oldMach,A_As(i),eps,gamma); end plot(X,Mx,'b'); hold on; plot(X,Mx,'*r'); title('Mach Number Distribution in Nozzle'); xlabel('X axis [cm]'); ylabel('Mach Number'); grid on; %Solving for Pressure Distribution in Nozzle Px = P0./(( 1 + ((gamma - 1)/2)*Mx.*Mx).^(gamma/(gamma - 1))); figure(2); plot(X,Px,'b'); hold on; plot(X,Px,'*r'); title('Pressure Distribution in Nozzle'); xlabel('X axis [cm]'); ylabel('Pressure[kPa]'); grid on; %Pressure Distribution in Nozzle(normalized) figure(3); Pnx = 1./( 1 + ((gamma - 1)/2)*Mx.^2).^(gamma/(gamma - 1)); plot(X,Pnx,'b'); hold on; plot(X,Pnx,'*r'); title('Pressure Distribution in Nozzle (normalized)'); xlabel('X axis [cm]'); ylabel('P/P_0'); grid on; %Temperature Distribution in Nozzle figure(4); Tx = T0./( 1 + ((gamma - 1)/2)*Mx.^2); plot(X,Tx,'b'); hold on; plot(X,Tx,'*r'); title('Temperature Distribution in Nozzle'); xlabel('X axis [cm]'); ylabel('T [ K ]'); grid on; %Computing Exit Temperature, velocity based on Exit mach T_exit = T0/( 1 + ((gamma - 1)/2)*Me^2); fprintf('T_exit = %8.2f K\n',T_exit); V_exit = (T_exit*gamma*8314.4126/MW)^0.5*Me; fprintf('V_exit = %8.2f m/s \n',V_exit);
Mach Number at Exit = 4.858225 At/A* = 1.000152 T_exit = 973.23 K V_exit = 3254.40 m/s
function Mach = Solver( oldMach,A_As,eps,gamma)
maxit = 100000;
for i= 1: maxit
newMach = oldMach -(FOFM(oldMach,gamma)- A_As)/DFDM(oldMach,gamma);
oldMach = newMach;
fofm = FOFM(oldMach,gamma);
if( abs(fofm – A_As)/A_As <= eps)
%display(‘break’);
break;
end
end
Mach = oldMach;
end
function FOFM = FOFM(Mach,gamma)
FOFM = 1./Mach.*(2/(gamma + 1)*(1 + (gamma – 1)/2.*Mach.^2)).^…
((gamma + 1)/(2*(gamma – 1)));
end
function DFDM = DFDM(Mach,gamma)
DFDM = (2^((1 – 3*gamma)/(2 – 2*gamma)))*(Mach.^2 – 1)./…
(Mach.^2.*( 2 + Mach.^2*(gamma – 1))).*…
( 1 + (gamma – 1)/2*Mach.^2/(gamma + 1)).^((gamma + 1)/(2*(gamma -1)));
end