(MATLAB模拟旋转的地球-自西向东旋转)

根据刘慈欣同名科幻小说改编的《流浪地球》,2019年春节期间上映啦!本文首先声明绝无推销该电影之嫌,因为他没给钱,也绝无褒贬该电影之意,只是探讨其中的科学问题。

《流浪地球》讲述了“太阳将要成为红巨星膨胀而亡,地球将要被太阳大气膨胀淹没”的生死关头,人类联合政府决定将地球作为一个飞船驶离现有轨道,驶向距离4.2光年的“半人马座比邻星”。如此宏伟的决定,需要经历五个阶段:1.刹车阶段:利用赤道上行星发动机的巨大推力,使地球停止自转。2.逃逸阶段:全功率开启行星发动机,使地球加速驶出太阳系。3.先流浪阶段:利用太阳和木星完成最后的加速,使地球驶向比邻星。4.后流浪阶段:全功率开启行星发动机,利用500年将地球加速到0.5%光速,然后滑行1300年;然后掉转发动机,利用700年进行减速。5.新太阳时代:地球泊入比邻星轨道,成为“半人马座比邻星”的卫星。

现在站在娱乐和研究的角度,利用MATLAB模拟地球的减速旋转(刹车阶段),加速旋转,顺时针旋转和逆时针旋转等过程。整个模拟特别简单,M文件没有写太多代码,只是追求视觉上的感受而已。

第一,创建名为DrawEarth的函数文件绘制3D地球,具体代码和相应注释见下图(该函数在“航天派”微信公众号2019年2月5日“模拟卫星发射”的文章中也有介绍)。

第二,创建脚本,编写主程序,具体代码和相应注释如下图。其中,E=DrawEarth(R)为调用DrawEarth( )函数绘制半径为6730km的3D地球,rotate(E, direction, j)函数为围绕z轴旋转图像对象(3D地球),j控制旋转步进(度),j的绝对值增大旋转加快,j为正时自西向东(逆时针)旋转,j为负时自东向西(顺时针)旋转。

第二,保存和运行上述代码,得到视频中的旋转地球。

第三,将j的数值增大为j=50,pause(暂停时间)减小为pause(0.01),即暂停0.01秒,再次保存和运行上述代码,得到加速旋转的地球(如下视频)。相反,将j的数值减小,pause暂停时间增大,就可以得到减速旋转的地球(视频略)。

(MATLAB模拟旋转的地球-加速旋转)

第四,我们都知道地球是自西向东自转的(从北极上空观察为逆时针自转)。但是将j的数值改为负值,如j=-10,再次保存和运行上述代码,便得到自东向西(顺时针)自转的地球,如下视频。

(MATLAB模拟旋转的地球-自东向西旋转)

以上就完成了MATLAB模拟地球加速旋转、减速旋转、自西向东(逆时针)旋转、自东向西(顺时针)旋转的工作。如果喜欢本文, 欢迎转发和关注“航天派”微信公众号的原创文章,同时烦劳点亮右下角的“喜欢”,Many Thanks.