用户故事

洛克希德Martin Space Systems为虹膜卫星开发GN&C系统,具有基于模型的设计

挑战

开发接口区域成像光谱仪(IRIS)天文台卫星的指导,导航和控制(GN&C)系统

解决方案

利用MATLAB和Simulink进行基于模型的设计,对GN&C系统和IRIS金宝app卫星的组件进行建模,进行闭环和处理器在环仿真,生成产品代码

结果

  • 发展效率加倍
  • 生成高效、无缺陷的代码
  • 设计更新在一天内完成

“一支关于四个工程师设计,集成,并在短短23个月内测试了GN&C系统的团队。我们更高效,因为我们使用了相同的工具来分析和代码开发,并生成了20,000行的无缺陷代码。对我们来说,这为基于模型的设计进行了令人信服的案例。“

Vincentz Knagenhjelm,GN&C工程师,洛克希德Martin Space Systems
虹膜天文台。

接口区域成像光谱仪(IRIS)天文台目前在地球轨道中,它正在捕获太阳的紫外光谱和高分辨率图像。这些图像将帮助科学家更好地了解太阳能大气层的最低水平的能量和等离子体。

IRIS设计和构建的IRIS具有0.33 ArcSEC的有效空间分辨率,使其能够提供太阳铬环和过渡区域的前所未有的视图。为了获得这些高分辨率图像,IRIS依赖于使用基于模型的设计开发的洛克希德Martin空间系统与Matlab开发的精确指导,导航和控制(GN&C)系统®和模拟金宝app®

“基于模型的设计使我们的小团队能够满足飞行软件的积极交付截止日期,”洛克希德马丁的领导GN&C工程师鲍勃Dougherty说。“该软件在轨道​​上完美无瑕地执行,该项目强调了我们建立低成本低风险的能力。”

挑战

在过去的类似项目中,洛克希德马丁工程师生产广泛的算法设计文件,长约1000多页。编程人员根据他们对这些文件的解释写作了代码。整个过程缓慢,有时在手编码过程中引入缺陷。

由于只有23个月的计划用于软件设计、集成和测试,团队需要显著地加快软件交付过程。为了实现这一目标,他们试图用自文档设计代替详细的算法设计文档,重用现有的卫星硬件工厂模型,用自动代码生成代替手工编码,并使用单一的环境进行分析和软件开发。

解决方案

洛克希德·马丁公司的工程师通过使用基于模型的设计加速了IRIS GN&C飞行软件的开发。

在MATLAB和Simulink中,工程师们金宝app开发了一个控制系统的基本模型来分析指向性能,或者航天器重新定向的准确性。

要创建工厂模型,团队重复使用现有的Simulink和StateFlow金宝app®由洛克希德·马丁空间飞行器集成实验室(SVIL)开发的卫星部件模型。他们将反作用轮、磁扭力棒、恒星跟踪器、太阳传感器和其他组件的模型与Simulink环境模型相结合。金宝app

该团队使用Simulink Report Gen金宝apperator™导出了Simulink控制模型,以创建一个在设计评审中深入检查的交互式网络视图。

通过使用工厂模型运行闭环仿真,并使用Simulink coverage™对仿真进行模型覆盖分析,他们验证了最初的GN&C设计。金宝app

使用Mathworks Pilot Engineering Group,将其初始飞行软件GN&C模型分组成部件,包括姿态控制器,反应轮控制器和姿态确定模块。每个组件对应于飞行代码中的软件单元。

他们使用嵌入式编码器®为这些组件生成C代码,为Moog Broad Reach Engineering的抗辐射微处理器及其执行软件添加少量手工生成的“胶水”代码。使用定制的MATLAB用户界面,团队对每个GN&C飞行软件单元进行了各种Simulink测试用例。金宝app

SVIL工程师向工厂模型添加了集成层,并使用嵌入式编码器来生成C代码,该代码部署到用于处理器 - 循环测试的实时计算机。

在运行了实时测试并在Simulink中优化了设计之后,该团队为生产的RAD750处理器生成了大约20,000行代码。金宝appGN&C系统已经在IRIS上运行,IRIS已经在提供高分辨率图像和光谱数据。

结果

  • 发展效率加倍.“我们每小时测量等效源码代码线,发现基于模型的设计比飞行软件的手工编码更有效地增加了两到三倍,”GN&C软件工程师Phil Boyle说。“这不仅适用于虹膜项目,而且是我们使用基于模型的设计的其他项目。”

  • 生成高效、无缺陷的代码.“我们试图在10年前使用自动代码生成,但在可以使用之前,代码必须重新加工,”博伊尔说。“相比之下,我们使用嵌入式编码器为IRIS生成的代码不仅是无缺陷,而且还有效率。”

  • 设计更新在一天内完成.“IRIS投入运行后,我们发现了一些在发射前未知的硬件特性,”Boyle说。“为了考虑到这种硬件行为,我们只需要更新我们的Simulink模型,重新生成代码,并重新运行单元测试和软件项目确认测试。金宝app一天之内,我们就准备好了一个更新的系统。”