波音公司星际客机软件故障的"前世今生" 对航天器智能测试的启示
第一章节介绍波音公司星际客机飞船轨道飞行测试的回顾、复盘、进展,查阅和整理的全部资料来源于如下的网站:
(1) NASABlogs Commercial Crew Program:
https://blogs.nasa.gov/commercialcrew/
(2)NASA V&V:
https://ti.arc.nasa.gov/news/NASA-Boeing-SAA/
(3)BoeingStarliner:
http://www.boeing.com/space/starliner/
(4)Spaceflight Now:
https://spaceflightnow.com/
第二章节通过对波音公司星际客机软件故障的启示,从知识图谱、算力、算法、数据四个维度谈谈我们对航天器智能测试的展望。
据国外媒体报道,美国东部时间2019年12月20日6时36分,美国波音公司的星际客机飞船从自卡纳维拉尔角发射升空,6时50分飞船与火箭分离后,飞船出现软件故障,最终无法与国际空间站对接,并于美国东部时间12月22日7时58分提前返回地面。
美国东部时间2020年2月28日,波音副总裁兼星际客机项目经理约翰·穆赫兰德(John Mulholland)承认软件测试验证存在问题,对星际客机飞船的软件测试不充分。
美国东部时间2020年3月6日11时30分,美国国家航空航天局(NASA)和波音公司举行媒体电话会议,公布波音公司星际客机飞船首次轨道测试失败的调查结果。NASA和波音联合独立调查小组确定,针对两个软件异常提出61项纠正和预防措施。
波音CST-100 Starliner飞船轨道飞行测试后接受检查 | 图片来源NASA
0 1
回 顾
六年的精心筹划准备
1、飞船软件测试通过NASA审查
2014年2月13日在联合发射联盟的系统集成实验室进行测试中,CST-100开发团队和NASA工程师完成了对波音飞船的硬件审查和软件测试,该航天飞船旨在将宇航员运送到低地球轨道。对将波音公司的CST-100连接到联合发射联盟Atlas V火箭顶部的运载火箭适配器进行了单独的深入评估,并提出了在紧急情况下发出中止信号的检测系统。波音商业计划副总裁兼计划经理约翰·穆赫兰德说:“从图纸到设计实施乃至其他,安全都是CST-100的关键要素,这些测试有助于验证运载火箭适配器和紧急情况检测系统是否正常运行,并能够确保我们未来的乘客安全”。
系统集成测试 | 图片来源NASA
2、火箭发射前首次排练
2019年12月6日波音公司的Starliner飞船在倒计时彩排期间,联合发射联盟小组在卡纳维拉尔角进行了11个小时的倒计时,这架172英尺高(54.2米)的发射器在卡纳维拉尔角的Complex 41发射台上装有超冷的低温推进剂,Starliner任务的Atlas 5倒计时已从近七个小时延长到超过11个小时。更长的倒计时将使宇航员有时间登上Starliner航天器。在模拟的升空时间之前的十多分钟,机组进入臂缩回原处进行发射。当时钟达到零时,ULA的发射团队中止了倒计时。
火箭发射前首次排练测试 | 图片来源NASA
3、完成NASA出厂测试评审
2019年12月12日,美国宇航局总部人类探索与运营副副总裁肯·鲍沃索克(Ken Bowersox)和波音公司经理参加了波音公司在佛罗里达州肯尼迪航天中心运营支持2号楼进行的轨道飞行测试的飞行准备情况审查。波音公司、国际空间站计划和商业船员计划经理正在审查其团队为准备启动波音的无人飞行轨道测试进行的工作。
出厂测试评审 | 图片来源NASA
0 2
复 盘
任重道远的首次轨道飞行测试
1、致命的软件星时错误导致消耗了大量燃料
美国东部时间12月20日6时36分,波音公司星际客机飞船自卡纳维拉尔角发射升空,执行该飞船的首次轨道测试飞行任务。按照计划飞船在这次无人轨道飞行将与国际空间站对接,为国际空间站宇航员送上圣诞礼物。
火箭发射各阶段任务 | 图片来源美国联合发射联盟
▶ 发射顺序从Atlas 5的第一级RD-180发动机在T负2.7秒处点火开始,随后几秒钟后,两个Atlas 5固定式固体火箭助推器点火。
▶ 向东北转以使其与空间站的轨道一致,由Aerojet Rocketdyne生产的双固体火箭助推器将燃烧90秒钟以上,Atlas 5从卡纳维拉尔角的初始爬升过程中提供额外的能量爆发。助推器外壳将在T加2分22秒时抛弃,掉入大西洋。
▶ RD-180发动机响应阿特拉斯5号制导计算机的指令,将降低速度,将Starliner航天器的加速度限制在3.5Gs左右,因为火箭因消耗液体推进剂而变得更轻。
▶ Atlas 5第一阶段将在T +加4分钟29秒时关闭,并在六秒钟后与火箭的上层阶段分离。Starliner飞船的向前对接机构的上升盖将在T加4分钟41秒时分两部分抛弃,然后在T加4分钟35秒将半人马座的两架Aerojet Rocketdyne RL10A-4-2发动机点火。
半人马座发送机点火 | 图片来源美国联合发射联盟
▶ 半人马座上的RL10发动机将消耗超冷的液态氢和液态氧,累计产生近45,000磅推力。
▶ 在半人马座的燃烧初期,在T加5分钟5秒时,Starliner飞船底部的空气动力学裙缘将释放并掉落。
▶ 一旦火箭爬升到大气层,抛弃两半Atlas 5的新型边缘翼。
▶ 半人马座上层级的RL10发动机将点火超过7分钟,直到T加上11分54秒。
▶ Starliner胶囊与Centaur阶段的分离计划在T加14分钟54秒。Starliner稍后将进行轨道,而半人马座将在升空后近一个小时返回印度洋。
飞船与半人马座火箭分离 | 图片来源美国联合发射联盟
火箭的发射本来一切正常,飞船按计划被送入了远地点 192 千米、近地点 77 千米的亚轨道。但是就在飞船与火箭分离后,发现星际客机飞船软件定时器异常,可以理解为飞船的星时错误,表现出的现象是星际客机飞船的 48 台姿轨控推力器开始疯狂工作,飞船误以为处于提升近地点的变轨过程中,在短时间内消耗了大量燃料。在下面的直播画面截图中,能清楚地看到飞船的多台推力器正在工作。
波音任务飞行控制中心 | 图片来源波音
2、通过中继星发送指令紧急挽救未获成功
按照波音星际客机飞船任务执行约31分钟后,将Starliner的四个轨道姿态控制引擎推进器燃烧40秒。而实际任务执行第14分钟54秒飞船与火箭分离后,48 台姿轨控推力器开始疯狂工作,在短时间内消耗了大量燃料。
在发现异常后,NASA和波音公司的飞行控制人员在休斯敦组成的联合小组注意到了这个问题,第一时间尝试向飞船注入正确指令,手动消除影响,但不凑巧的是,当时飞船正好处于两颗TDRS中继卫星的覆盖交接区,因此指令没有注入成功。等到波音公司能够发出正确地面指令,被飞船接收执行后为时已晚,星际客机飞船消耗了过多的燃料,与国际空间站的对接试验不得不取消。
TDRS-13中继星 | 图片来源NASA
3、惊心动魄的飞船返回地面之旅
随后波音公司技术人员立即开始寻找其他潜在的问题,发现了另外一个关键软件缺陷问题“阀门映射错误”:在服务舱和乘员舱分离的过程中,软件故障可能启动错误的推进器,导致乘员舱受损,从而让飞船无法安全着陆。波音公司工程技术人员快速诊断这个问题,并在着陆前约3小时(美国东部时间2019年12月22日凌晨4点)向空中飞行的星际客机发送软件补丁。
在美国东部时间2019年12月22上午7:26左右,Starliner将与其服务模块完成成功分离。
星际客机飞船返回舱与服务舱分离 | 图片来源NASA
在美国东部时间2019年12月22日上午7:53左右部署降落伞,随后将部署主要降落伞。
返回舱部署降落伞 | 图片来源NASA
最终,国际空间站的宇航员们没有等来 2019 年的圣诞礼物,星际客机飞船于美国东部时间12月22日7时58分在著名的白沙导弹靶场着陆。
波音公司CST-100星际客机飞船返回舱着陆| 图片来源NASA
03
进 展
NASA和波音联合独立审核小组调查
1、第1次NASA和波音媒体电话会议
美国宇航局和波音公司在2020年2月7日美国东部标准时间15时30分举行媒体电话会议,讨论联合独立审核小组对12月份在该公司进行的轨道飞行测试中发现的主要问题调查情况。参加媒体电话会议的人员如下:
▶美国宇航局局长吉姆·布莱登斯汀
▶波音公司太空与发射高级副总裁吉姆·奇尔顿
▶美国国家航空航天局人类探索与作战任务局副局长 Douglas Loverro
▶美国宇航局商业船员计划项目经理Kathy Lueders
▶波音CST-100 Starliner计划的副总裁兼项目经理John Mulholland
波音副总裁兼项目经理约翰·穆赫兰德针对第1个软件缺陷解释:“定时器问题之所以未能在与联合发射联盟公司联合测试时发现,是因为公司把飞船测试分成了不同的任务阶段。对于发射,测试在船箭分离后就立即结束了,所以未能发现该定时器偏差,此前未这样做是因为这类测试耗时很长,从发射到对接要历时一天多,当时认为把这些任务阶段分成若干分阶段,并在那些分阶段内做测试更合乎逻辑”。
约翰·穆赫兰德针对第2个软件缺陷解释:“阀门映射用来在软件中标识推力器和阀门,但服务舱同乘员返回舱仍在一起时和两者分离后的映射是不同的。不幸的是,那项要求未被纳入推进控制器接口控制文件。文件中只包含了两者合在一起时的映射。这一疏漏之所以在测试中未被发现,是因为对服务舱模块引擎测试的代用装置无法让工程技术人员查出软件漏洞。
2、第2次NASA和波音媒体电话会议
美国宇航局和波音公司在2020年3月6日美国东部时间11时30分举行媒体电话会议,讨论联合独立审核小组对2019年12月份在该公司进行的轨道飞行测试中发现的主要问题调查结果。参加媒体电话会议的人员如下:
▶ 美国国家航空航天局人类探索与作战任务局副局长 Douglas Loverro
▶ 美国国家航空航天局商业船员计划经理Kathy Lueders
▶ 波音公司太空与发射高级副总裁吉姆·奇尔顿(Jim Chilton)
▶ 波音副总裁兼CST-100 Starliner计划的经理约翰·穆赫兰德John Mulholland
美国宇航局和波音联合独立审核小组是在波音公司进行飞船轨道测试出现异常情况之后成立的,已经完成了其初步调查。该小组的任务是审查任务期间遇到的三个主要异常情况:两个软件编码错误以及空对地通信链接问题。
A、三个主要异常的描述:
(1)任务完成定时器(MET)发生错误软件问题:在星际客机飞船与Atlas V运载火箭分离之后,由于软件编码错误,飞船在终端计数开始之前(即火箭为指定的T0设置正确的时间)将时钟与火箭同步。这导致飞船认为分离后它在任务的另一点,并且没有进行正确的控制。
(2)服务舱模块处置序列的软件问题:波音和NASA审查了其他飞行阶段,其中软件编码可能会影响任务成功。这项审查导致返回舱和服务舱模块分离过程中发现并纠正了软件问题。该更正确保了服务舱模块的成功分离和处置。
(3)空对地通信(S / G)前向链接问题:间歇性的S / G前向链接问题阻碍了飞行控制团队在执行任务期间指挥和控制飞船的能力,并可能妨碍宇航员飞行期间与机组人员的可靠语音通信。
B、审核小组的发现和建议
审核小组的分析确定了针对这两个软件异常的61项纠正和预防措施。这些整改措施分为四类:
(1)进行代码修改:波音公司将检查并更正“任务完成定时器(MET)发生错误软件问题”和“服务舱模块处置序列的软件问题”代码。
(2)改善软件工程:波音将加强其审核流程,包括更好的同行评审和控制委员会审核,并改善其软件流程培训。
(3)改善软件测试:波音将在飞行的所有阶段提高其软件测试的重要性。包括改进的模拟或仿真器端到端测试,与实际飞行系统足够相似,可以充分发现问题。
(4)加强软件产品保证:当硬件设计更改或状态变更,落实到系统设计中时,波音公司将检查软件编码回归测试变更的影响域分析。
目前还不清楚波音公司61项整改措施的具体内容,NASA表示这些措施将“既有组织架构上的,也有技术层面的”。NASA人类探索与作战任务局副局长洛弗罗表示,将与波音公司讨论是否将整改措施的清单公布于众。在波音实施整改措施的同时,NASA计划在波音的软件团队中增派更多的NASA软件产品保证专家。
第二部分:启 / 示 / 展 / 望
波音公司星际客机飞船软件故障启示:
1、系统集成测试缺乏对不可测试项的追踪和落实,尤其是火箭系统与飞船系统间的星时不可测试项,返回舱分系统与服务舱分系统的接口和时序测试不可测试项,为星际客机飞船与空间站对接埋下隐患。
2、服务舱模块引擎测试重点在于推进器的测试,忽略了返回舱与服务舱的分离通讯协议、接口时序测试,即缺少外围设备的通讯协议总线模拟器、接口时序模拟器。
3、在11个多小时的首次排练中,ULA重点测试了火箭发射的流程和任务准备,波音星际客机团队缺少对飞船的遥控、遥测数据检查,尤其是软件产品保证要素“星时合理性检查”。、
4、应急预案准备不充分,仅依靠中继星网络测控手段单一,未动员地面站或者测控船作为测控辅助支撑,当中继星处于盲区时限制了波音飞船的轨道测试。
从知识图谱、算力、算法、数据四个维度加强航天器智能测试展望:
1、面向生死攸关的星时问题,引入知识图谱辅助智能测试
近些年来,星时问题逐渐成为空间飞行器生死攸关的软件产品保证重点,与星时问题相关的知识图谱可以归纳为:硬件的计数器适应性修改导致的软件状态变化问题、星时的初始化问题、星时的复位问题、星时的守时问题、星时的更新校时问题、星时溢出问题、星时的原子操作跳变问题、星时的边界翻转问题、星时的阈值保护问题等等。
如何开展对波音公司星际客机飞船的一百万行代码审查,是个非常棘手的问题,传统的软件测试(300行/人天,大约需要10-20个人工走查1年的时间)已不能满足时效的紧迫性任务要求,波音公司星际客机飞船暴露的软件星时致命问题,给我们的经验启示:在人工智能时代亟需引入知识图谱辅助智能测试。研究基于知识图谱的复杂航天器软件智能化测试框架并构建复杂航天器软件一体化测试平台。结合装备软件测试业务场景,基于知识图谱的复杂航天器软件智能化测试应用,示例如下所示:
▶代码审查业务场景,基于知识图谱的多策略快速检索应用。
基于知识图谱的多策略快速检索应用
▶动态测试业务场景,基于知识图谱的智能推送应用。
▶测试需求业务场景,基于知识图谱的抽取测试需求应用。
▶软件缺陷预测业务场景,基于知识图谱的辅助判定应用。
基于知识图谱的辅助判定软件缺陷预测工具
通过在复杂航天器软件一体化测试平台上,构建基于知识图谱的复杂航天器软件智能化测试框架,形成新型测评生态,改进传统测试模式,提高测试工作效率,提升航天软件质量。
2、基于接口和时序测试问题,加强算力全数字仿真模拟
波音公司星际客机飞船暴露的软件接口致命问题,给我们的经验启示:加强人工智能GPU集群算力、构建全生命周期数字仿真模拟环境,从技术培训、监督检查、质量数据分析等方面开展航天器嵌入式软件产品保证。
虚拟仿真测试工具集
3、突破航天领域测试现状,深度学习与机器学习算法融合
30年间NASA飞行器由软件实现的系统功能从15%增加至80%,以火星探测计划为例,探测器软件规模和速度的乘积符合摩尔定律,波音公司CST-100飞船软件规模超过100万行,F35联合攻击战斗机软件规模超过800万行,且在持续增加,软件规模和复杂度均呈几何级增长趋势。
突破航天领域测试现状,从感知的深度学习算法在智能测试方面应用包括:数据标注、算法模型开发、高性能分布式训练、模型调优、模型部署。从决策的传统机器学习算法在智能测试方面应用包括:业务行为数据采集、结构化/非结构化数据处理、数据和算法的组合建模、算法开发训练调优、模型部署实时训练反馈。
融入机器学习的软件研制与智能测试一体化平台
4、构建未来太空测试生态,测试大数据趋向智能化
未来已来,航天领域的测试数据经历了MB->GB->TB->PB的线性提升,强大的测试集成功能,完整的数据追溯功能;拥有完整项目过程数据、产品数据和组织资产数据,全程记录各类数据的产生过程,可以随时掌握项目运行数据。具备弹性可扩展架构,支持各类软件项目管理工具、软件开发工具、软件测试工具等进行有效集成。构建空间飞行器太空测试生态,推动智能计算和数据计算落地如下图所示:
空间飞行器太空智能测试生态图
作者:李鹏宇 文章审核:高猛 侯成杰
-End-