Calculate how to dump an asteroid on the sun.

Original author: Rhett Allain
  • Transfer
image

I do not know how to do without spoilers. You could limit yourself to a generalized question regarding physics, but if you follow the wonderful science fiction series on SyFy, “The Expanse” [ Space ], you can close the tab and go read some more — for example, why not fly at the speed of light? .

Not closed? Good. The task is the following: my spacecraft is orbiting around the Sun somewhere in the asteroid belt between Mars and Jupiter, and I need to destroy some asteroid. It is possible that the best way to do this would be to send it towards the Sun. Can I crash into this asteroid so that it falls into the sun?

The task is difficult, but it can be divided into three parts: a flight to an asteroid, a collision with an asteroid and the resulting trajectory of the asteroid. But first you need to make a few assumptions. I will take the approximate figures from The Expanse, since everything is already calculated there.

• Asteroid - Eros. It moves in a circular orbit around the Sun (in fact, it is not, but close enough), the radius of the orbit is 1.5 AU. (1 AU, astronomical unit - distance from the Sun to the Earth). The mass of Eros is 6.7 * 10 15 .
• Spacecraft - Nauvoo, a large ship for interstellar travel. In fact, it is a cylinder with a radius of 0.25 km and a length of 2 km. The initial orbital distance is 2.5 AU.
• There is a lot of empty space in Nauvoo, so we take its density for 1000 kg / m 3 . According to the formula of the volume of the cylinder we get a mass of 4 * 10 10 kg. Pretty massive ship!
• And another estimate is needed - the Nauvoo reactive force. If there are people on board, then most likely you will need an acceleration of 1 g (9.8 m / s 2). Without people, let acceleration be 2 g.

That's all the assumptions.

Part 1: Flight to Eros


I wanted to develop a numerical model for calculating the trajectory and impact force of Nauvoo. But I will not do that. Orbital mechanics are very complicated. You can’t just say: “Direct the ship to Eros and start the engines.”

For best results, the ship must make a head-on collision with Eros. If the radius of the circular orbit of Eros is 1.5 AU, then its speed is 24,000 m / s. Nauvoo travels at a speed of 19,000 m / s. Will Nauv be able to gain an orbital speed of 24,000 m / s in the opposite orbital direction?

With an acceleration of 2 g, it will take a little more than 30 minutes to go from 19,000 m / s in one direction to 24,000 m / s in the opposite direction. Yes, it seems strange to me too. But I accept the result: so, a head-on collision between Eros and Nauvoo, each moving at a speed of 24,000 m / s.

Part 2: The Clash


One could, of course, limit oneself to a simple one-dimensional inelastic collision between Nauvoo and Eros, after which they remain together. This is an excellent exam question, but I want to achieve more. I will create something more realistic - partly elastic collision (momentum is preserved, but not kinetic energy), and it will not be completely in one dimension.

To simulate a collision can be represented by two objects in the form of springs. When they get closer to a distance smaller than the sum of their sizes (and begin to overlap each other), the spring force starts pushing them apart. The more they intersect, the more power. Moreover, it is possible to make this collision inelastic, using the smaller spring constant at the moment when the objects move from each other.

Let's go to the collision. Nauvoo is moving right towards Eros, but they are not centered. And so, how their collision will work. I note that our Eros is spherical (not true), and Nauvoo is small compared to it. In the original article, you can click the play button and see the animation.

#mass of erors
me=6.7e15#radius of erors
re=15e3
erors=sphere(pos=vector(-5*re,0,0), radius=re)
#starting momentum
erors.p=me*vector(24000,0,0)
startp=erors.p #used to caclulate change#length of Nauvoo
L=2e3#Nauvoo starts off axis
nauvoo=cylinder(pos=vector(5*re,.4*re,0), axis=vector(2e3,0,0), radius=250)
#mass of Nauvoo
nauvoo.m=4e10
nauvoo.p=nauvoo.m*vector(-24000,0,0)
attach_trail(nauvoo)
attach_trail(erors)
#k is the effective spring constant 
k=1e12
t=0
dt=0.001#lastr is used to determine if the spring is compressing or relaxing
lastr=nauvoo.pos-erors.pos
#e is the modifier to spring constant for relaxing
e=.1while t<7:
    rate(1000)
    r=nauvoo.pos-erors.pos
    F=vector(0,0,0)
    if mag(r)<(erors.radius+L/2):
        F=k*mag(r)*norm(r) #this is force on nauvooif mag(r)>mag(lastr):
            F=e*k*mag(r)*norm(r)        
    nauvoo.p=nauvoo.p+F*dt
    erors.p=erors.p-F*dt
    nauvoo.pos=nauvoo.pos+nauvoo.p*dt/nauvoo.m
    erors.pos=erors.pos+erors.p*dt/me
    t=t+dt
    lastr=r
print("Eros change in v = ",(erors.p-startp)/me," m/s")

Notice that the program-shown change in the vector speed of Eros turns out to be tiny. The problem is that Eros is about 10,000 times as massive as Nauvoo. Although Nauvoo and Eros will experience the same change in momentum, the mass of Eros will result in a very small change in its speed. Even if Nauvoo moved 100 times faster, it would not help much.

Part 3: Fall on the Sun


Since Nauvoo cannot seriously change the speed of Eros, this part seems silly. But it will not stop me. I will only note that before that I had already written about the modeling of physics of falling on the Sun. It may seem to you that falling into the sun is very easy - but it is not.

Instead of changing the speed of my calculation of the collision, I accept that some incredibly awesome collision will cause the speed of Eros to change to 10,000 m / s. Then I will model two collisions. The first will cause the resulting velocity vector to show on the sun. The second will just slow down Eros.

This model demonstrates two indicated impacts (the first is yellow, the second is red), and for comparison, the old orbit.

G=6.67e-11
Ms=1.989e30
AU=1.496e11
g=9.8
f1=series(color=color.red)
sun=sphere(pos=vector(0,0,0), radius=4e9, color=color.yellow)
eros=sphere(pos=vector(1.5*AU,0,0), radius=sun.radius/7)
eros.m=6.687e15
ve=sqrt(G*Ms/mag(eros.pos))
eros.p=eros.m*ve*vector(0,1,0)
attach_trail(eros)
dv=1e4
erosA=sphere(pos=eros.pos, radius=eros.radius, color=color.yellow)
erosA.m=eros.m
erosA.p=erosA.m*(vector(0,ve,0)+vector(-dv,0,0))
erosB=sphere(pos=eros.pos, radius=eros.radius, color=color.red)
erosB.m=eros.m
erosB.p=erosB.m*(vector(0,ve,0)+vector(0,-dv,0))
attach_trail(erosB)
attach_trail(erosA)
t=0
dt=1e3whileTrue:
    rate(10000)
    re=eros.pos-sun.pos
    reA=erosA.pos-sun.pos
    reB=erosB.pos-sun.pos
    Fe=-G*Ms*eros.m*norm(re)/mag(re)**2
    FeA=-G*Ms*erosA.m*norm(reA)/mag(reA)**2
    FeB=-G*Ms*erosB.m*norm(reB)/mag(reB)**2
    eros.p=eros.p+Fe*dt
    erosA.p=erosA.p+FeA*dt
    erosB.p=erosB.p+FeB*dt
    eros.pos=eros.pos+eros.p*dt/eros.m
    erosA.pos=erosA.pos+erosA.p*dt/erosA.m
    erosB.pos=erosB.pos+erosB.p*dt/erosB.m
    t=t+dt

What will happen? You will be surprised that the push of Eros towards the Sun will actually lead him to move away from him. The best option is to slow down Eros, but unless you stop it completely, it will not fall on the sun.

But still, in the end, Nauvoo did not encounter Eros. Oh. Spoiler…

Also popular now: