SpaceX火箭精准着陆的算法

Lars Blackmore是SpaceX的首席火箭着陆工程师,他撰写的文章《火箭自主精准着陆》(Autonomous Precision Landing of Space Rockets)中粗略提到了猎鹰9火箭精准着陆的算法,即凸优化(Convex Optimization)。

实现精准着陆的关键在于控制偏离变量(Dispersions)。降落过程中的环境不确定性导致偏离变量增加。在着陆前的一瞬间,至少要99%的偏离变量值符合要求,否则着陆将会失败。控制偏离变量的三个关键过程是:1)返回前发动机点火及大气层外的轨道控制;2)大气层内采用栅格翼(Grid Fin)的空气动力控制;3)着陆前发动机点火及转向控制(或横向移动)。

很显然,对降落过程中的火箭进行远程控制是不现实的,必须采用自主控制,所有的计算和控制均须火箭自行完成,且必须瞬间完成。Lars Blackmore提到,降落的高速控制计算是凸优化计算,采用了CVXGEN生成飞控代码(Flight Code)。CVXGEN是一套自动生成解决凸优化问题程序代码的软件,作者是斯坦福大学的Jacob Mattingley博士。CVXGEN适合解决少于2000个系数因子的凸优化问题。

猎鹰9火箭采用CVXGEN生成的飞控代码是静态的还是动态的?前者是一次性生成、安装并执行,后者是在降落和着陆过程中动态生成并执行。个人判断倾向于后者。

CVXGEN作者Jacob Mattingley博士的指导老师是斯坦福大学教授Stephen Boyd。Stephen Boyd教授所著的《凸优化》(Convex Optimization)一书是凸优化问题方面的权威著作。

SpaceX火箭如何进行重复点火?

打火机靠摩擦火石产生火花引燃气体。贝爷在野外烤肉,引火经常用刀摩擦火石,有时也钻木取火或让电池短路生火。家里燃气灶、汽车等靠电池放电产生电火花引火。SpaceX的猎鹰9火箭在发动机关闭后,重新点火需要用到蓄电池吗?答案是不需要。

猎鹰9火箭目前采用Merlin 1D发动机,主燃料是液氧煤油(LOX/RP-1)。点火剂是TEA-TEB(三乙基铝烷-三乙基硼烷)混合物,TEA-TEB遇氧可自燃。火箭发射时,TEA-TEB和液氧喷进燃烧室,引发自燃,也引燃随后流进燃烧室的主燃料液氧煤油,实现发动机点火

猎鹰9火箭脱离大气层,一级二级火箭分离后,一级火箭发动机处于关闭状态。一级火箭通过喷射冷气流实现姿态翻转,随后发动机重新点火(Boostback Burn),点火剂是火箭自身携带的TEA-TEB和液氧。发动机重新启动的目的是实现返回大气层前的轨道控制。

这里还有一个问题,一级火箭发动机在无重力环境下重新点火,燃料怎么进入燃烧室?答案是用加压氮气把燃料“推”进去

猎鹰9火箭在地面发射时,为减轻火箭重量,用于点火的TEA-TEB和液氧是从地面上的容器喷入燃烧室的。火箭的重量需要“斤斤计较”,不像卡车装货多点儿少点儿无所谓。小时候在酒泉看过一次火箭发射,时间是晚上。老爸抱起我,让我站在一堆砖上以便看得清楚。火箭喷吐烈焰,直刺黑暗苍穹的景象至今记忆犹新。很多年后我好奇地问老爸,那次发射成功了吗?老爸犹豫了一会儿告诉我,由于临时加了一点几公斤的仪器,火箭没有入轨,掉到澳大利亚的沙漠里了☹️。

TEA-TEB同样被用于SpaceX Falcon Heavy的发动机点火,但正在研发的Raptor发动机则不再采用。Raptor发动机采用火花点火(Spark Ignition)

NASA开放API—NASA Open APIs

NASA开放API的目的是让应用开发者能够使用NASA的数据,包括图像数据。

当前的数据类别包括:

  1. 每日天文图片APOD(Astronomy Picture of the Day)
  2. 近地小行星信息,Asteroid-NeoWs (Near Earth Object Web Service)
  3. 地球
  4. 火星探测器拍摄的照片
  5. 专利
  6. 声音

上述数据类别日后应该会逐步扩充。

用获取火星探测器拍摄照片的API写了个测试应用:http://mars.nullthought.net

这个例子比较简单,可以选择不同的火星探测器(好奇号Curiosity、机遇号Opportunity、勇气号Spirit),根据输入的火星日(SOL)获取探测器在该火星日拍摄的照片(API返回结果可能是很多张图片,例子只是选了前面25张,或不到25张)。