探索飞行Spacex火箭和星舰的软件

2021-05-11 17:35:50

编者说明:本周所有,我们都在运行有关Spacex的火箭,星舰和卫星互联网后面的软件和工程的文章。每篇文章都涵盖了该过程的不同部分。我们希望你发现它像我们一样令人兴奋!

从头开始,空间依赖于计算机 - 无论是在地面和航天器上。 Spacex将它带到了一个新的水平。我们最近与史蒂文杰丁讲话,龙的软件开发领导,关于软件开发的特殊挑战,为Spacex的许多任务进行了。

4月23日,4月23日,Spacex和NASA推出了龙的第二次运营使命(船员-2)到国际空间站,成为第一个在飞行普通的Falcon 9和龙飞行宇航员的人类航天使命。大约24小时后,龙自动停靠站,成为第一次两个船员龙同时连接到轨道实验室。这标志着SpaceX的新时代的开头,其中一个人旨在经常将宇航员常规到ISS。

车辆工程师(如GERDING)的软件开发的实际工作基本上是使用C ++完成的,这是公司早期自公司代码的主要工作。该软件读取基于文本的配置文件。 “我们发明了简单的域特定语言来表达这些东西,使得该公司在不是软件工程师的公司中可以配置它。”

SpaceX沿着控制周期的概念,SpaceX的火箭飞行软件。 “您阅读所有输入:通过ADC,网络中读取的传感器,来自IMU的数据,来自星际跟踪器或指导传感器的更新,从地面中的命令,解释说。 “您对那些进行了一些处理来确定您的状态,如您在世界的位置或生活支持系统的状态。确定你的输出 - 你写过那些,等到下一个刻度的时钟,然后再做一整件事。“

控制周期强调了软件的一些性能要求。 “在Dragon上,一些电脑在50赫兹50赫兹运行[控制周期],有点在10赫兹。主机电脑在10赫兹10架。这是管理整个特派团和向其他计算机发送命令。其中一些需要更快地对某些事件做出反应,所以那些在50赫兹奔跑。“

有各种各样的机器与中央飞行系统交谈。 “我们从车辆上的传感器输入了各种不同的传感器。”许多人正在衡量对船舶和船员的健康至关重要的内部价值。 “温度很重要。对于船员的车辆,我们具有氧气和二氧化碳传感器,机舱压力传感器和类似的东西。“

另一组传感器在外部看起来有助于导航和遥测。 “这就像IMU,GPS和明星追踪者。”一旦它们足够接近空间站,它们也使用激光测距仪。

控制周期的另一侧是输出。 “有两种不同类型的输出。一个是真正“打开或关闭阀门”或“打开或关闭”或关闭“。”另一个是遥测,这基本上是一个钥匙值对的流,每20到100毫秒,告诉你值某事。“

有时结果直接来自传感器作为原始数据。但是其他次处理涉及。 “它可以是来自软件的某种计算值,如我们状态机的当前值或算法的结果,该算法将推动输出。”

当车辆在地面上时,数据越过一个提供高数据速率的硬连线连接。 “一旦抬起,就有不同的通信系统,我们可以将该遥测的变化子集管在地上。”一旦它到达地面,就存在系统,让操作员看瞬时值并根据命令车辆做出决定。还有一个系统存储后代的关键数据,当您计划在未来的任务中重复使用助推器和班车时非常重要。

龙目前自主地码头到国际空间站,最终,目标是为车辆完全自主。 “我们确实有能力在需要时控制和转向车辆 - 这是我们在龙演示 - 2任务上证明的能力,”格林德说。

如果出现故障,我们会问会发生什么。 “我猜,这更明显,在有硬件故障时该怎么办。我们有硬件副本,无论是计算机硬件还是传感器或执行器,所以我们检测到它们周围的那些失败和途径。“

Gerding指出,没有办法防范任何任意软件错误。 “我们尝试以一种方式设计软件,即如果它失败,那么该失败的影响是最小的。”例如,如果在推进系统中裁剪软件错误,那不会影响寿命支持系统或指导航天器的引导系统的能力,反之亦然。 “隔离不同的子系统是关键。”

该软件采用防御性设计,使得即使在组件内,Spacex也试图隔离错误的效果。 “我们总是检查错误代码并返回值。我们还具有运营商或机组人员的能力,以覆盖算法的不同方面。“

软件开发过程的大部分是验证和验证。 “写作软件是实际进入准备在太空车上飞行的一些小百分比。”

通过前往空间站的第一个演示特派团(Demo-1),美国宇航局要求该软件承受系统中的任何两个故障。 “我们实施了这款三弦计算机架构,我们需要系统驱动它。” Gerding在谷歌之前工作了一些分布式系统体验,使他能够适合新任务。 “那时软件团队中只有10人。我拿起它去了。我发现那种东西,分布式系统,非常有趣。“

正常运行时间要求在谷歌对待不同。 “如果发生异常发生的事情,你真的希望你的进程失败。它是成千上万的类似过程之一,然后重新开始。如果你有足够的失败,你会被分页,可能会花一些时间弄清楚问题是什么和建立解决它的解决方案。“

在谷歌,这些事故是噪音中有用信号。但这种方法不起作用的火箭。 “在Spacex,我们真的不希望由于软件故障而无法失败。我们宁愿继续继续其余的软件,实际上不会受到该失败的影响。我们仍然需要了解这个失败,这就是遥测因素的在哪里,但我们希望事情继续前进,控制它是最好的。“

在去年11月将尤多达放入太空的代码,有更多的工作。我们将在明天的基于空间的互联网卫星上有另一篇文章。如果您想了解更多关于在空间X的车辆工程师的内容,请查看他们的职业生涯。

标签:太空软件,spacex