计算如何在太阳下滴小行星

图片

我不知道怎么没有破坏者。 您可以将自己限制在一个有关物理学的一般性问题上,但是如果您遵循SyFy上出色的科幻小说系列“广阔” [ 太空 ],则可以关闭选项卡并阅读其他内容-例如,为什么您不能以光速飞行。

不关闭? 好啊 任务如下:我的飞船在火星和木星之间的小行星带中的某个地方绕太阳公转,我需要摧毁一颗小行星。 也许最好的方法是将其发送到太阳的方向。 我可以撞上这颗小行星,让它落在太阳上吗?

这项任务很困难,但是可以分为三个部分:飞往小行星,与小行星碰撞以及小行星的轨迹。 但是首先,您需要做一些假设。 我会从The Expanse中获取大概的数字,因为那里的所有数据都已经计算完了。

•小行星-爱神。 它绕太阳绕圆形轨道运动(实际上不是那样,但是足够近),轨道半径为1.5 AU (1 AU,天文单位是太阳到地球的距离)。 爱神的质量是6.7 * 10 15
•太空飞船-Nauvoo,一艘大型星际旅行船。 实际上,它是一个半径为0.25 km,长度为2 km的圆柱体。 初始轨道距离-2.5 AU
•Nauvoo中有很多空白空间,因此我们将其密度设为1000 kg / m 3 。 根据圆柱体体积的公式,我们得到的质量为4 * 10 10 kg。 相当大的船!
•还有一个估计需要-Nauvoo的反作用力。 如果船上有人,那么很可能您将需要1 g(9.8 m / s 2 )的加速度。 没有人时,让加速度为2 g。

这就是所有的假设。

第1部分:飞往爱神


我想开发一个数值模型来计算Nauvoo的轨迹和冲击力。 但我不会这样做。 轨道力学非常复杂。 您不能只说:“将飞船带到爱神并启动引擎。”

为了获得最佳结果,该船需要与爱神号正面碰撞。 如果爱神星的圆形轨道半径为1.5 AU,则其速度为24,000 m / s。 Nauvoo的行进速度为19,000 m / s。 Nauvoo能否在相反的轨道方向上获得24,000 m / s的轨道速度?

以2 g的加速度,从一个方向的19,000 m / s到相反的方向的24,000 m / s,将花费30多分钟。 是的,我也觉得很奇怪。 但我接受结果:因此,爱神(Eros)和纳沃(Nauvoo)之间的正面碰撞,各自以24,000 m / s的速度运动。

第2部分:碰撞


当然,人们可以将自己限制在Nauvoo和Eros之间的简单一维无弹性碰撞中,然后将它们保持在一起。 这是一个很棒的考试题,但我想取得更多。 我将创建更现实的东西-部分弹性碰撞(节省了动量,但没有动能),并且它不会仅发生在一个维度上。

为了模拟碰撞,可以将两个对象表示为弹簧。 当它们接近的距离小于其大小的总和(并开始彼此重叠)时,它们开始推动弹簧力。 他们越越越越强大。 此外,可以在物体彼此移动时通过使用较小的弹簧常数来使该碰撞无弹性。

让我们继续前进。 我的Nauvoo直奔爱神(Eros),但他们并未居中。 这就是他们的碰撞将如何进行的过程。 我注意到我们的爱神星是球形的(不是真的),而Nauvoo比它小。 在原始文章中,您可以单击“播放”按钮并观看动画。

#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=.1 while 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 nauvoo if mag(r)>mag(lastr): F=e*k*mag(r)*norm(r) nauvoo.p=nauvoo.p+F*dt erors.p=erors.pF*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") 

请注意,该程序显示的Eros矢量速度的变化很小。 问题在于,爱神(Eros)的重量大约是Nauvoo的10,000倍。 尽管Nauvoo和Eros将经历相同的动量变化,但Eros的质量将导致其速度变化很小。 即使Nauvoo的移动速度快了100倍,也无济于事。

第3部分:落在太阳上


由于Nauvoo无法严重改变Eros的速度,因此这部分看起来很愚蠢。 但这不会阻止我。 我只注意到,在此之前,我已经写过关于对太阳入射物理学建模的文章。 在您看来,跌倒太阳很容易,但事实并非如此。

我不会改变碰撞的速度,而是接受一些令人难以置信的可怕碰撞,它将导致爱神星的速度改变10,000 m / s。 然后,我将模拟两个碰撞。 第一个将导致这样一个事实,即所得的速度矢量将显示在太阳上。 第二个只会使爱神减速。

该模型显示了两个指示的命中(第一个为黄色,第二个为红色),为了进行比较,显示了旧轨道。

 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=1e3 while True: 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 

会发生什么? 您会感到惊讶的是,爱神(Eros)向太阳的推动实际上会导致他将离开他的事实。 最好的选择是放慢爱神的速度,但是除非您完全阻止他,否则他不会掉在太阳上。

但是,最后,纳沃没有遇到爱神。 哎呀 扰流板...

Source: https://habr.com/ru/post/zh-CN402177/


All Articles