用户故事

欧空局第一个月球任务卫星轨道月球自动生成飞行代码

挑战

在短时间内以最低成本完成欧空局的第一次月球任务

解决方案

使用MathWorks的基于模型的设计工具来建模、模拟、生成和测试飞行代码

结果

  • 减少50%的系统开发时间
  • 提高流程效率
  • 生成高效的代码

“我们在非常短的时间内,以非常低的预算成功开发了SMART-1 AOCS。用于模拟和飞行代码生成的MathWorks工具在这一成功中发挥了关键作用,并将作为未来卫星项目的基础,如Prisma。”

Per Bodin,瑞典空间公司
SMART-1前往月球的艺术表现。
SMART-1前往月球的艺术表现。

2005年2月27日,欧洲第一颗月球卫星开始了它的月球科学观测阶段,已经实现了欧洲航天局在深空项目中使用电力推进的主要目标。

该项目的主承包商瑞典空间公司(SSC)使用自动生成的飞行代码开发了高级研究和技术小型任务(SMART-1)的姿态和轨道控制系统(AOCS)。AOCS定位航天器的推力矢量,科学仪器指向,并确保太阳能阵列被太阳照亮。它还在月球转移和下降阶段控制航天器体内的电力推进推力矢量对齐,同时提供先进的故障检测、隔离和恢复(FDIR)系统。

“基于模型设计的MathWorks工具帮助我们设计并自动生成SMART-1飞行应用软件的代码,用于姿态控制、功率控制、热控制和FDIR,”SSC SMART-1 AOCS经理Per Bodin解释道。“基于这一成功,我们计划使用Simulink和嵌入式编码器开发所有机载应用软件,近95%的完整飞行软件金宝app®."

挑战

SSC需要在低成本任务配置、严格的软件开发标准和不到两年的短软件开发周期内开发AOCS。此外,由于AOCS需要在强烈辐射、最小重力和其他无法在实验室或地球上测试的影响的恶劣空间环境中执行,SSC需要严格的证明链测试能力,以确保系统在飞行期间正确执行。

“SMART-1是欧空局的第一次月球任务,我们一开始只有几个基本的系统要求,”博丁说。“我们需要一个高效的开发过程,因为基于纸上设计和手工代码的传统方法在时间限制和小型开发团队的情况下行不通。”

解决方案

SSC实现了一个基于MathWorks工具的基于模型的设计的新开发过程,用于建模、模拟、自动生成代码和测试机载AOCS软件。工程师开发了精确的仿真模型来预测系统行为,并创建详尽的系统和软件测试用例,这些用例符合ESA PSS-05软件开发标准。

使用Simu金宝applink, SSC首先建立了系统的体系结构设计模型,该模型只包含少量的子系统层和块,但足以支持初始的仿真场景。金宝app然后,通过只使用允许的块,遵循某些参数命名约定,并添加健壮性检查(如除零保护),将体系结构模型细化到详细设计中。

工程师使用statflow开发了一个状态机,该状态机可以根据运行模式配置AOCS模型的子系统,包括解包、安全、电力推进和科学。此外,他们使用statflow来控制自主动量管理功能来加热推进器。

SSC使用MathWorks工具自动生成应用程序C代码,然后将其编译、集成并链接到整个机载软件中。底层设备驱动程序和操作系统软件是使用传统的手写方法开发的。然后,SSC将车载软件部署到抗辐射的ERC32嵌入式处理器上。

Bodin说:“仿真模型帮助我们创建详细的软件设计,并准确预测系统行为,包括航天器动力学。”“然后我们开发了详细的测试场景,并生成了具有高度信心的代码,实现将与模型行为匹配。”

AOCS金宝app的Simulink子系统通过重用工程师在Simulink中开发和执行的测试用例,在模拟ERC32目标上进行了单元测试和集成测试。除了满足底层软件需求外,单元和集成测试还包括结构代码覆盖率分析、输入范围测试和最大路径测试。

SSC在硬实时仿真环境下进行了软件系统测试,并用MATLAB对测试结果进行了分析。他们在系统级使用集成航天器验证了AOCS。这些试验包括在荷兰的欧洲空间研究和技术中心(ESTEC)进行的开放和闭环试验。

“到目前为止,我们对结果非常满意,”Bodin说。“我们计划在未来的项目活动中使用更多MathWorks工具,包括用于硬件在环测试的Simulink real。”金宝app

结果

  • 减少50%的系统开发时间.Bodin说:“我估计,如果没有MathWorks工具,开发我们的系统需要大约50-100%的时间。”

  • 提高流程效率.“使用MathWorks工具,我们大大减少了设计迭代的次数和软件的版本,”Bodin指出。“自动生成的代码不包含编码错误——只有在模拟研究中大部分被消除的设计问题。”

  • 生成高效的代码.Bodin解释道:“生成的代码与RAM、ROM和执行速度上的手动代码大致相同。“我们当然没有发现生成代码质量方面的重大低效率或其他问题。”