SpaceX火箭精准着陆的算法

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

凸优化是机载自主性的一个有前途的工具,因为它可以保证收敛到全局最优解。然而,许多问题并不具备使用凸优化所需的凸结构,一种称为“无损凸化(Lossless Convexification)”的技术克服了这一难题。此技术是Lars Blackmore与科研伙伴Behcet Acikmese的研究成果,其关键思想是将非凸问题重新表述为高维的凸问题,然后证明凸问题的最优解也是非凸问题的全局最优解。所谓“无损(Lossless)”,即在凸化过程中没有去除可行空间的任何区域。换句话说,如果存在非凸问题的可行解,可确保能够找到此解。

实现精准着陆的关键在于控制偏离变量(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)一书是凸优化问题方面的权威著作。


Algorithm for Precise Landing of SpaceX Rockets

Lars Blackmore, the Chief Rocket Landing Engineer at SpaceX, briefly mentions the algorithm for the precise landing of the Falcon 9 rocket, which is based on convex optimization, in his article “Autonomous Precision Landing of Space Rockets.

Convex optimization is a promising tool for onboard autonomy because it ensures convergence to a global optimum. However, many problems do not possess the convex structure required for convex optimization. A technique known as “Lossless Convexification” overcomes this challenge. This technique, a result of research by Lars Blackmore and his scientific partner Behcet Acikmese, involves reformulating a non-convex problem into a high-dimensional convex problem and then proving that the optimal solution to the convex problem is also the global optimum of the non-convex problem. The term “lossless” indicates that no feasible region of the problem is discarded during convexification. In other words, if a feasible solution to the non-convex problem exists, it can be found.

The key to achieving precise landing is controlling dispersions. Environmental uncertainties during the descent increase the dispersion variables. At least 99% of the dispersion values must meet the requirements just before landing, or the landing will fail. The three critical processes for controlling dispersions are: 1) engine ignition and orbital control outside the atmosphere before reentry; 2) aerodynamic control using grid fins within the atmosphere; and 3) engine ignition and steering control (or lateral movement) before landing.

It is clear that remotely controlling the rocket during the landing process is impractical. Autonomous control is necessary, with all calculations and controls performed by the rocket itself in real-time. Lars Blackmore mentioned that the high-speed control calculations for landing are convex optimization calculations, implemented using flight code generated by CVXGEN. CVXGEN is software developed by Dr. Jacob Mattingley from Stanford University for automatically generating program code to solve convex optimization problems. CVXGEN is suitable for solving convex optimization problems with fewer than 2000 coefficients.

Is the flight control code generated by CVXGEN for the Falcon 9 rocket static or dynamic? The former is generated, installed, and executed once, while the latter is dynamically generated and executed during descent and landing. Maybe the latter is a better choice.

Dr. Jacob Mattingley, the author of CVXGEN, was supervised by Professor Stephen Boyd at Stanford University. Professor Stephen Boyd’s book “Convex Optimization” is an authoritative text on convex optimization problems.

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注