用户故事

NASA艾姆斯研究中心为月球大气尘埃环境探测器开发飞行软件

挑战

为lade航天器开发机载飞行软件

解决方案

使用基于模型的设计对控制系统和航天器建模,生成26000行C代码,执行HIL和PIL测试,并创建任务训练模拟器

结果

  • 用于训练和命令验证的模型
  • 飞行软件在轨道上无缝更新
  • 规范化的代码检查过程被简化

“与使用基于模型的设计相比,手工编写飞行软件将花费更长的时间,并使合作更加困难。管理人员和硬件子系统工程师理解Simulink模型,这使得达成共识很容易,因为每个人都知道软件中发生了什么万博1manbetx。”

Karen Gundy-Burlet博士,美国宇航局艾姆斯研究中心
美国国家航空航天局“拉迪”号宇宙飞船在月球表面附近绕轨道运行。图片由美国宇航局。

美国宇航局发射了月球大气尘埃环境探测器(LADEE),以收集关于月球尘埃环境的密度、组成和变化性的信息。机载光谱仪和其他仪器收集数据和月球尘埃,这将帮助研究人员了解月球和太阳系中的其他天体。

为了在项目成本和时间限制内开发航天器的飞行软件,美国宇航局艾姆斯研究中心的工程师采用了一种低成本、快速原型化的方法,该方法由基于模型的设计支持。万博1manbetx

NASA Ames的LADEE飞行软件主管Karen Gundy-Burlet博士说:“在Simulink中建模和模拟高层航天器控制功能万博1manbetx,然后根据模型生成C代码,将算法设计师和软件开发人员之间的通信错误最小化。”基于模型的设计还支持需求的早期原型,以及在开发的早期阶段的验证和验证。

挑战

LADEE在其设计和任务寿命期间面临几个挑战。首先,lade的可能发射轨迹范围很广。其次,该任务的仪器需要高度精确的指向,而月球的环境条件将要求航天器在轨道上进行频繁的滚动和翻转。

为了解决这些挑战,NASA的工程师们想要在开发过程的早期模拟许多任务场景和故障条件。为了帮助满足NASA软件开发的过程性需求,他们需要建立需求、模型、测试和测试结果之间的双向跟踪。

解决方案

NASA Ames使用基于模型的设计和MATLAB开发了LADEE航天器的机载飞行软件®和仿真软万博1manbetx件®.开发是在一系列构建周期中完成的,每个构建周期包括建模、模拟、代码生成和测试。

在Simulink中,万博1manbetxNASA Ames的工程师为飞行软件开发了模型,包括姿态控制、电源管理、热控制、导航、通信和命令处理的独立模型。该团队还开发了LADEE航天器的Simulink模型万博1manbetx,包括其推进系统、环境和重力场。这些模型确保了飞行软件能够在现实环境中快速开发。

使用Simu万博1manbetxlink Check™,团队验证了他们的模型符合来自MAAB (MathWorks Automotive Advisory Board)指南的自定义建模指南。

在Simulink中运行单元级模拟以验证子系统满足他们的需求后,团队使用Simu万博1manbetxlink Coder™和Embedded Coder®从他们的Simulink控制器模型生成超过26,000行C代码。万博1manbetx

为了捕获任何设计错误,工程师使用Polyspace Bug Finder™和Polyspace Code Prover™对生成的代码执行静态分析。

他们使用S万博1manbetximulink Coder从工厂模型中生成代码,用于处理器在环(PIL)和硬件在环(HIL)测试。他们将控制器代码与NASA的Core Flight Executive (cFE)和Core Flight System (cFS)软件包集成,并将其部署到一个Broad Reach PowerPC处理器上。

该团队进行了大量的实时、系统级PIL和HIL测试,包括月球轨道插入、激活序列、科学操作和故障管理场景。

该团队在整个项目中使用Sim万博1manbetxulink Report Generator跟踪需求和每个需求的测试结果,符合NPR 7150法规。

他们按时完成了软件开发,并与成本估算保持一致。

结果

  • 用于训练和命令验证的模型.Gundy-Burlet说:“我们使用Simulink模型的模拟来训练我们自万博1manbetx己执行任务。”“此外,我们使用从我们的模型中得到的模拟来验证,在我们将命令信号发送到宇宙飞船之前,它们完成了它们想要做的事情,没有产生意想不到的负面后果。”

  • 飞行软件在轨道上无缝更新.甘迪-伯莱特说:“在执行任务期间,我们发现飞船的星跟踪器有问题,还有一些小软件问题。”“我们在Simulink中更新了我们的状态估计模型,以解释这些问题,重新生成代码,在万博1manbetx新软件上运行一个有针对性的测试套件,并将其上传到航天器,该航天器又飞行了一个月,没有发现进一步的缺陷。”

  • 规范化的代码检查过程被简化.Gundy-Burlet指出:“Polyspace Code Prover在我们生成的代码中识别出了死代码以及我们手写代码中的问题。它还识别出了没有错误的代码,以及需要我们密切关注的代码。这些结果使我们能够在正式的检查过程中对代码进行有针对性的评估。”