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)

Android升级到7.1.2后,以前的WebView被停用

Android升级到7.1.2后,以前的WebView被停用,应用内Web显示采用的是chrome stable.

升级后,多个采用WebView的App会闪退,例如12306和一些手机银行App。此时打开“开发者选项”中的“多进程WebView”,似乎可以避免一些App闪退。实测打开此选项后,12306又可以正常使用了。

iOS上实现单点登录(SSO)

苹果移动设备iPhone,iPad等从iOS 7.0以后支持企业级SSO。根据测试情况,有如下要点信息:

1. iOS Enterprise SSO基于Kerberos登录认证。iOS内置有Kerberos客户端,可以实现从KDC(Key Distribution Center)获取TGT(Ticket Granting Ticket)。内置Kerberos客户端目前采用了Heimdal的代码;

2. iOS的SSO实现需要安装配置描述文件(Profile),该Profile须配置名为com.apple.sso的PayloadType,具体可参见苹果官网的技术文档:Configuration Profile Key Reference,另外这篇文章对此也有较好的解释。安装此配置文件后,例如通过Safari浏览器访问配置了Kerberos认证的站点,则系统会弹出如下窗口:

iOS-Kerberos-SSO

在上述窗口输入正确密码后,iOS系统可从KDC获取TGT票据,从而实现登录认证。随后打开其他基于同一Realm的站点,或者在Hybrid App(App的Bundle Identifier须添加在前述Profile的AppIdentifierMatches中)的WebView中访问同一Realm内的站点,均可以实现SSO。

3. iOS也可实现跨App的SSO(Cross App SSO),对此需要打通App实现登录信息共享。目前市场上主流的EMM产品如MobileIron, AirWatch, Fiberlink(An IBM Company) Maas360等,可以利用打包App的安全Container实现此功能。