Contents
AlphaCentauri flyby at constant thrust
lY = 9460730472580.8;
YEAR = 365.25*86400;
d = Straight2DStructure;
d.dF = 4.4*lY;
d.uE = 5000;
d.eta = 0.6;
sigma = 20.0;
d.f = 0.02;
years = 375;
d.sigma = sigma*1e3;
d.tF = years*YEAR;
d.mP = 100;
[lambda,alpha] = SolveLambdaFlyby( d );
m0 = d.mP/lambda;
power = d.mP/alpha;
thrust = EngineThrust( power, d );
[dF, vF, mF] = FlybyConstantThrust( thrust, d );
[~,data] = EngineReport(thrust,d,true)
SimulateFlyby( data )
subplot(3,1,1)
text(25,2,sprintf('Payload: %d kg\nPower: %.2f MW\nThrust: %.2f N\nMass: %.0f kg',...
d.mP,power*1e-6,thrust,m0));
k = 1;
s = {};
s{k,1} = 'Final position'; s{k,2} = sprintf('%12.2f',dF/lY); s{k,3} = 'lY'; k = k + 1;
s{k,1} = 'Final velocity'; s{k,2} = sprintf('%12.2f',vF); s{k,3} = 'km/s'; k = k + 1;
s{k,1} = 'Final time'; s{k,2} = sprintf('%12.2f',years); s{k,3} = 'yr'; k = k + 1;
s{k,1} = 'Fuel'; s{k,2} = sprintf('%12.2f',mF); s{k,3} = 'kg'; k = k + 1;
s{k,1} = 'Mass Total'; s{k,2} = sprintf('%12.2f',m0); s{k,3} = 'kg'; k = k + 1;
s{k,1} = 'Mass Engine'; s{k,2} = sprintf('%12.2f',mE); s{k,3} = 'kg'; k = k + 1;
s{k,1} = 'Mass Payload'; s{k,2} = sprintf('%12.2f',mP); s{k,3} = 'kg'; k = k + 1;
s{k,1} = 'Exhaust Velocity'; s{k,2} = sprintf('%12.2f',uE); s{k,3} = 'km/s'; k = k + 1;
s{k,1} = 'Power'; s{k,2} = sprintf('%12.2f',power/1e6); s{k,3} = 'MW'; k = k + 1;
s{k,1} = 'Thrust'; s{k,2} = sprintf('%12.2f',thrust); s{k,3} = 'N'; k = k + 1;
s{k,1} = 'Specific power'; s{k,2} = sprintf('%12.2f',sigma); s{k,3} = 'kW/kg'; k = k + 1;
s{k,1} = 'Efficiency'; s{k,2} = sprintf('%12.2f',eta); s{k,3} = ''; k = k + 1;
s{k,1} = 'Tank fraction'; s{k,2} = sprintf('%12.2f',f); s{k,3} = '';
DisplayLatexTable(s)
if 0
CreateLatexTable(s,'PointDesignAlphaCentauri');
end
return;
Warning: distance too large to achieve in time
Warning: EngineReport: Distance not achieved!
Report:
---- INPUTS ---- -- --
Payload 100 kg
Desired distance 4.40 LY
Travel time 375.00 years
---- ENGINE ---- -- --
Thrust Efficiency 0.60
Exhaust velocity 5000 km/s
Specific Power 20.00 kW/kg
Fuel Tank Fraction 0.02
---- OUTPUTS ---- -- --
Payload Mass Fraction 0.00 mP/m0
Payload Power Fraction Inf kW/kg
Delta-V 0.00 km/s
---- PAYLOAD DEPENDENT ---- -- --
Thrust 1.23 N
Distance target 4.40 LY
Distance achieved 2.99 LY
Power 5.12 MW
Total Mass Inf kg
Mass Dry 414.47 kg
Mass Engine 256.25 kg
Mass Fuel 2911.19 kg
Flow Rate 0.00 g/s
data =
struct with fields:
tF: 1.1834e+10
dF: 4.1627e+13
f: 0.02
uE: 5000
eta: 0.6
sigma: 20000
mP: 100
mE: 256.25
v0: []
createdBy: 'Straight2DStructure'
lambda: 0
alpha: 0
dV: 0
thrust: 1.23
p: 5.125e+06
m0: Inf
mF: 2911.2
mD: 414.47
mDot: 2.46e-07
tS: 8.7464e+09
vS: 5206
Final position simulation 4.40 Distance (LY)
Final velocity simulation 10412.07 km/s
Final time simulation 375.00 year
Final position 4.40 lY
Final velocity 10412.07 km/s
Final time 375.00 yr
Fuel 2911.19 kg
Mass Total 3325.66 kg
Mass Engine 1656.34 kg
Mass Payload 505.37 kg
Exhaust Velocity 20000.00 km/s
Power 5.12 MW
Thrust 1.23 N
Specific power 20.00 kW/kg
Efficiency 0.50
Tank fraction 1.00
An array of durations
taus = linspace(300,500);
Ps = zeros(size(tau));
m0s = Ps;
dZero = Ps;
for k = 1:length(taus)
d.tF = taus(k)*YEAR;
dZero(k) = ZeroPayloadFlyby( d, d.tF );
if d.dF<dZero(k)
[lambda,alpha] = SolveLambdaFlyby( d );
[Ps(k),m0s(k)] = SolveFlybyPower( d );
end
end
Plot2D(taus,[dZero/lY;Ps*1e-6],'Years',{'Zero Payload Distance, LY','Power to 4.4 LY (MW)'},...
'Alpha Centauri Flyby')
subplot(2,1,1)
yy = axis; hold on;
plot(yy(1:2),4.4*[1 1],'r-')
subplot(2,1,2)
text(400,80,sprintf('Payload: %d kg\nuE: %g km/s\nsigma: %g kW/kg\neta: %g\nf: %g',...
mP,uE,sigma,eta,f));
Numerical simulation and trajectory plot
mD = mP + mE + f*mDot*tF;
SimulateFlyby( mD, mF, thrust, uE, tF )
subplot(3,1,1)
text(25,2,sprintf('Payload: %d kg\nPower: %.2f MW\nThrust: %.2f N\nMass: %.0f kg',...
mP,power*1e-6,thrust,m0));