Proxima Centauri
Proxima Centauri
This is a simulated mission from LEO (altitude approximately 255 miles) to Proxima Centauri. The mission has humans aboard, so the max acceleration is 1.0g. This will be simulated on a Raspberry Pi using an eInk screen and a battery backup, running in real time as if it was the ship’s display. I’ve wanted to do something like this for several years, and now I’ve decided to do it.
The journey takes part in three phases:
◼
Acceleration from to with a maximum acceleration a.
v
0
v
t
◼
Coasting at until we reach the deceleration distance .
v
c
d
d
◼
Deceleration from to , the in-system cruising speed.
v
c
v
e
This project doesn’t consider masses or anything else, just velocities and distances, as well as relativistic time passing. I haven’t done much math or physics in years, so I am certain that there are errors in my math and understanding. It also glosses over the technology behind the engines. For example, using some very ballpark numbers, to push the space shuttle (which weighs 81,193 kg) at that speed:
In[]:=
m
shuttle
Out[]=
In[]:=
F=*Quantity9.800665,"Meters"
m
shuttle
2
("Seconds")
Out[]=
In[]:=
F
raptor
Out[]=
In[]:=
n
engine
F
raptor
Out[]=
0.227356
So a single engine at a minimum at just under a quarter throttle to push the space shuttle at 1G. These have a combined LOX / flow rate of 931.2 kg/s:
In[]:=
FlowRate[n_]:=Quantity[931.2,"Kilograms"/"Seconds"]*n
In[]:=
FlowRate[]
n
engine
Out[]=
Later on, we’ll see that the acceleration phase alone takes ~354 days, which means just to get the space shuttle going, we’ll need approximately
In[]:=
m
fuel
n
engine
Out[]=
In[]:=
UnitConvert[Quantity[1.70888×,"Kilograms"],"Tons"]
11
10
Out[]=
For comparison, the external tank on the space shuttle could carry 106,261kg of and 629,340 kg of LOX.
In[]:=
m
et
Out[]=
In[]:=
n
et
m
fuel
m
et
Out[]=
8802.86
We’d need the equivalent of about 8,000 external fuel tanks just for the acceleration phase using our present technology, at least if I did the math right. The space shuttle would also be too small for 5 year mission, but we’ll assume amazing hydroponics, lightweight construction, and a single crew member who somehow doesn’t go crazy from five years of complete isolation.
For completeness, the deceleration period is 354 days, so we actually need
In[]:=
n
et
m
fuel
m
et
Out[]=
17605.7
The total fuel mass needed for the mission is
In[]:=
m
totalfuel
n
engine
Out[]=
or
In[]:=
UnitConvert[,"Tons"]
m
totalfuel
Out[]=
That comes out to 14,275,800 tons of fuel. The USS Gerald Ford, which as of writing this was the latest aircraft carrier to enter service with the US Navy, weighs in at about 90,000 tons.
In[]:=
m
geraldford
Out[]=
In[]:=
m
totalfuel
m
geraldford
Out[]=
158.62
The fuel requirements come out to nearly 160 aircraft carriers weight in fuel. This doesn’t even cover the increased thrust requirements to move all that fuel around, either.
Basic Kinematics
Basic Kinematics
There are four basic kinematics equations.
1
.v=+a*t
v
0
2
.2
v
2
v
0
3
.x=+t
x
0
v
0
4
.x=+t+
x
0
v
0
a*
2
t
2
In[]:=
Acclerate[_,_,a_,t_]:=+*t+,+a*t
x
0
v
0
x
0
v
0
(a*)
2
t
2
v
0
Acceleration Phase
Acceleration Phase
We know our maximum acceleration and the altitude at which the ship was assembled.
In[]:=
a=Quantity9.800665,"Meters"
2
("Seconds")
Out[]=
In[]:=
r=+UnitConvert[Quantity[255,"Miles"],"Meters"]
UnitConvert,"Meters"
Out[]=
In[]:=
μ=*
UnitConvert,"Kilograms"
Out[]=
In[]:=
v
0
μ
r
Out[]=
The escape velocity is somewhat higher. For the sake of a simplified simulation, we’ll assume we’ve gotten to escape velocity instead.
In[]:=
v
escape
Out[]=
The distance to Proxima Centauri is 4.247 light years from Earth, give or take a few hundredths of a light year.
In[]:=
d
ly
Out[]=
In[]:=
d=UnitConvert[,"Meters"]
d
ly
Out[]=
We’ll need to get to a target velocity of 0.999c.
In[]:=
c=
Out[]=
In[]:=
v
cruise
Out[]=
How long will it take us to get to our target velocity?
In[]:=
t
accel
(-)
v
cruise
v
escape
a
Out[]=
After nearly a year, we will be at our cruising velocity and the ship will begin rotating to provide gravity. At this point, we will have covered
In[]:=
d
accel
v
escape
t
a
1
2
2
t
a
Out[]=
or
In[]:=
UnitConvert[,"LightYears"]
d
accel
Out[]=
Deceleration phase
Deceleration phase
The cruising phase is the gap between the acceleration and the deceleration phases, so the next task is to figure out when to start decelerating. The first step in this task is to figure what our final velocity should be to explore Proxima Centauri. As an assumption, three months to cross one Sol-standard astronomical unit (AU) should be a fast enough velocity to explore the system, but slow enough to not just blow past everything. The exploration velocity is then
In[]:=
v
explore
Out[]=
We next need to figure out how far it will take to decelerate to our exploration speed. How long does it take to decelerate from cruising velocity to the exploration velocity? Again, we assume that one gee is the maximum acceleration; we can simulate this by assuming the ship flips around and fires its engines in the reverse direction. We’ll want to position ourselves within about 5 AU of the star.
This gives us our deceleration point. We should start decelerating
or
from Proxima Centauri.
Cruising phase
Cruising phase
Now that we know how far it takes to accelerate to cruising speed and at what point to decelerate, we know how far we have to cover at cruising speed.
Or, to track the number of days:
The total flight time is then
Relativistic time effects
Relativistic time effects
During close to light speed travel, time on Earth will pass faster than it will on the ship. The relative time can be calculated using:
An hour and a half of travel at cruising velocity turns into
Or, in seconds,
For a one hour period at a tenth of the speed of light:
On the ship, only 5.2 years will appear to have passed, but on Earth, 96 years will have passed.
One thing I wanted to figure out is the local time when the relative drift is 50 years. From the simulation, I’ve empirically calculate that the drift once the coasting phase starts is 186 days.
So, we will hit a 50 year clock drift after about 2.25 years of mission elapsed time.
Flight Update Intervals
Flight Update Intervals
How far does the ship travel in a given time period at cruising velocity?
A minute between updates is a reasonable interval; this mostly matters for the flight simulator. In the actual flight software, a ticker will update the flight every second.
The Hardware
The Hardware
The simulation will run on a Raspberry Pi with an 18650-powered battery pack and an eInk display. During the acceleration and deceleration phase, it will make sense to update more often, whereas during the cruising phase it may update more slowly.
◼
Raspberry Pi 3 Model B Rev 1.2
◼
◼
I’ll need to figure out a case probably, but I doubt I can get one made before the launch date.
The Software
The Software
The core simulation (the mission itself) is written in Go. I’ve made the decision to split out the simulation core from the display portion. Source code is on Github.
Figuring out milestones
Figuring out milestones
It would be interesting to figure out when certain milestones will occur. These will generally occur at a set distance; for example, we can assume we pass Mars’ orbit when we’ve gone 0.52 AU.
If we want to solve this as a quadratic root,
One of these solutions will be negative; we can remove this solution because it doesn’t make sense. Therefore, we can compute the time using
Milestones
Milestones
Alternate flight profile
Alternate flight profile
This mission profile uses 99.9% of the fuel that the three-phase mission uses, while taking much longer. I’m curious about the time dilation. We know that the Lorentz factor is calculated as
Again, we should be seeing roughly similar effects on both halves of the mission, so the total relative dilation should be
The expected clock drift for the first flight profile is about 95 years; with the second profile, we expect almost twice as much clock drift. In this case, we spend more time at relativistic speeds, so it seems to make sense that the relative drift would be much longer.