Contents
Payload fraction demo for a variety of reference missions
Find the mass-optimal exhaust velocity for a Jupiter mission given other engine parameters.
Our nominal engine has a specific power of 1000 W/kg, a thrust efficiency of 0.4, and a tank structural fraction of 0.05. Our exhaust velocity is in the neighborhood of 100 to 150 km/s. Changing the specific power or efficiency will have a large effect on the payload fraction.
See also: ComputePayloadFraction, OptimalExhaustVelocity, Straight2DStructure
%-------------------------------------------------------------------------- % Copyright 2018, Princeton Satellite Systems, Inc. All rights reserved. %-------------------------------------------------------------------------- year = 365.25*86400; au = Constant('au'); d = Straight2DStructure; d.tF = 365.25*86400; % s d.dF = 5*au; % km d.mP = 1000; % kg d.sigma = 750; % W/kg d.eta = 0.4; d.f = 0.05; d.uE = 120; % km/s % Reference missions years = [1 1.85 3.25 4.5 5.5 10]; aUs = [4 10 20 30 40 125]; uEs = linspace(50,500); % km/s lambda = zeros(length(years),100); for j = 1:length(years) d.tF = years(j)*year; d.dF = aUs(j)*au; for k = 1:100 d.uE = uEs(k); lambda(j,k) = ComputePayloadFraction( d, true ); end [~,kMax] = max(lambda(j,:)); uEMax(j) = uEs(kMax); uEOpts(j) = OptimalExhaustVelocity(d); d.uE = uEOpts(j); lambdaMax(j) = ComputePayloadFraction( d, true ); end Plot2D(uEs,lambda,'Exhaust Velocity (km/s)','Payload Fraction','Reference Missions') hold on plot(uEOpts,lambdaMax,'*') legend('Jupiter - 1 yr','Saturn - 1.85 yr','Uranus - 3.25','Neptune - 4.5',... 'Pluto - 5.5 yr','125 AU - 10 yr','Optimum')

For a 1000 kg payload to Jupiter, calculate over a narrower band of uE
uEOpt = uEMax(1); uEs2 = linspace(uEOpt-50,uEOpt+50,101); lambda2 = zeros(size(uEs2)); alpha = zeros(size(uEs2)); d.tF = years(1)*year; d.dF = aUs(1)*au; for k = 1:length(uEs2) d.uE = uEs2(k); [lambda2(k),alpha(k)] = ComputePayloadFraction( d, true ); end mP = 1000; m0 = mP./lambda2; P = mP./alpha; % limit values for sake of plot m0(m0>5e5) = 5e5; P(P>3e8) = 3e8; Plot2D(uEs2,[m0;P*1e-6],'Exhaust Velocity (km/s)',{'Initial Mass (kg)','Power (MW)'},... 'Jupiter Mission - 1000 kg Payload') subplot(2,1,1) hold on plot(uEs2(51),m0(51),'*')

For an array of times, at a fixed uE
d.uE = uEMax(1); d.dF = aUs(1)*au; tMin = ZeroPayloadTime( d ); ts = linspace(1,3); lambdas = zeros(1,length(ts)); alphas = zeros(1,length(ts)); lambdas2 = zeros(1,length(ts)); alphas2 = zeros(1,length(ts)); for k = 1:length(ts) d.tF = ts(k)*tMin; d.uE = uEMax(1); [lambdas(k),alphas(k)] = ComputePayloadFraction( d, true ); uEOpt(k) = OptimalExhaustVelocity(d); d.uE = uEOpt(k); if uEOpt(k)~= 0 [lambdas2(k),alphas2(k)] = ComputePayloadFraction( d, true ); end end [tPlot,tLabl] = TimeLabl(ts*tMin); Plot2D(tPlot,[lambdas;alphas*1e6],tLabl,{'Payload Fraction','Payload/Power Ratio (kg/MW)'},... 'Payload Fraction Demo'); subplot(2,1,1) hold on plot(tPlot,lambdas2) legend('Fixed uE','Optimal') subplot(2,1,2) hold on plot(tPlot,alphas2*1e6) title(sprintf('d: %g AU, uE: %g km/s, sigma: %g W/kg, eta: %g',... d.dF/au,uEMax(1),d.sigma,d.eta)) %-------------------------------------- % $Id: 22001300e3cbed0e54a99f071fcac10f202e6985 $
Warning: Distance not achievable for sigma
