Contents
Optimal impulse for straight-line trajectories
For a given payload fraction and engine specific power, find the specific impulse which minimizes the duration to the target. ------------------------------------------------------------------------ See also: OptimalImpulseDuration, Straight2DStructure, ComputeDurationFraction, Plot2D ------------------------------------------------------------------------
%-------------------------------------------------------------------------- % Copyright (c) 2022 Princeton Satellite Systems, Inc. % All rights reserved. %--------------------------------------------------------------------------
Select a destination (distance)
aus = [5 35 125]; select = 1;
Constants
DAY = 86400; % s AU = Constant('au');
Setup
d = Straight2DStructure; d.dF = aus(select)*AU; % km d.sigma = 1000; % W/kg d.eta = 1; d.f = 0.05; % desired payload fraction lambda = 0.2;
Run
uEOpt = OptimalImpulseDuration( d, lambda ); % uE scan to prove minimum uEs = linspace(0.5*uEOpt,2*uEOpt); tFs = zeros(size(uEs)); for k = 1:length(uEs) d.uE = uEs(k); tFs(k) = ComputeDurationFraction(lambda, d ); end d.uE = uEOpt; tfOpt = ComputeDurationFraction( lambda,d );
Plot
Plot2D(uEs,tFs/DAY,'Exhaust Velocity (km/s)','Duration (days)','Scan and Minimum') hold on plot(uEOpt,tfOpt/DAY,'r*'); yy = axis; text(mean(yy(1:2)),mean(yy(3:4)),... sprintf('lambda: %g\nsigma: %g kW/kg\ndF: %g AU\nf: %g kg/kg',lambda,d.sigma*1e-3,d.dF/AU,d.f),... 'fontsize',11) % lambda scan lambda = linspace(0.1,0.5,20); uEOpt = zeros(1,length(lambda)); tFs = zeros(1,length(lambda)); for k = 1:length(lambda) [uEOpt(k),tFs(k)] = OptimalImpulseDuration( d, lambda(k) ); end Plot2D(lambda,[uEOpt;tFs/DAY],'Payload Fraction',... {'Optimal uE (km/s)','Minimum Duration (Days)'},'Payload Fraction Scan') yy = axis; text(yy(1),yy(4),... sprintf(' sigma: %g kW/kg\n dF: %g AU\n f: %g kg/kg',d.sigma*1e-3,d.dF/AU,d.f),... 'fontsize',11,'VerticalAlignment','top') %-------------------------------------- % $Date$ % $Id: 952f3beafb53a4c98a77faa3539e30ff37618286 $

