“Bell 525”是世界上第一架采用电传控制的商用直升机。电传系统将直升飞机全时置于计算机控制之下,通过减少飞行员的工作量,增加飞行员的环境感知能力,提高飞机的操控质量,从而获得最大程度的安全。
Bell Helicopter 采用基于模型设计来开发和实施 Bell 525 电传系统的控制律。该项目是 Bell Helicopter 工程师第一次在 DO–178B A 级的工作流中使用自动代码生成。
"我们在 Simulink 中完成了所有的设计和大量的仿真,”Bell 525 电传控制律的负责人 Mike Bothwell 说, “第一次用 Embedded Coder 为真正的飞行控制计算机生成代码时,我们没有发现任何集成问题。这点非常有吸引力,因为在以前的项目中,集成问题确实拖慢了我们的进度。”
The Bell 525 Ships 1 and 2 over the Palo Duro Canyon
挑战
Bell 是第一个将配备电传飞行控制系统的民用直升机推向市场的公司。这意味着减少手写编码和手动代码审查,有助于加速 DO–178B 软件开发流程。在过去的流程中,一个手写代码的小改动将导致一个复杂的审查过程。对一个有强烈目标的飞行测试开发流程来讲,它花费的时间太长。
与之前的 DO–178B 开发方法相比,Bell 525 工程团队想获得一些改进:
首先,他们试图减少软件需求变化时导致的手写代码返工;其次,他们希望简化与飞机系统其他部分代码集成所需的步骤;第三,他们希望建立一个稳健的开发过程,让工程师们为其他团队和项目提供的结果能一致起来。
解决方案
Bell Helicopter 的工程师设计、实施并验证了基于模型设计的Bell 525电传系统的控制律。
飞行品质工程师们使用Simulink 和Stateflow 开发了一种控制律模型,它是基于在 IBMRationalDOORS 定义的 900 高级系统需求。该模型被划分为多个模块,包括螺距、滚转和偏航轴的模块,以及用Stateflow开发的逻辑和模式切换模块。
他们开发了一组测试用例,并在Simulink中运行仿真来验证逻辑和功能。
工程师使用Simulink Requirements,将在 DOORS 里定义的需求与对应的Simulink和Stateflow对象模型联系起来。这种可跟踪性使团队能够执行影响因素分析,识别出在项目需求发生后期更改时受影响的Simulink模型区域。
他们还使用Simulink Check和Simulink Coverage来检查模块是否遵守了 Bell Helicopter 关于 DO-178 的建模规范,并度量了测试用例的模型覆盖率。虽然覆盖率分析并不是资格认证中所必须提供的,它仍然起到重要的作用,因为它帮助团队从低层的测试追溯到高级需求。工程师使用Embedded Coder 从Simulink 控制律模型生成了约 16000 行 C 代码。
“采用基于模型设计,我们获得了第一次飞行的成功,控制和集成方面都没有任何问题。 使用Embedded Coder ,从Simulink模型生成控制律的代码,消除了人工编写代码导致的进度迟缓,解放了团队,使得他们可以实现更广泛的目标。”
——Bell Helicopter, Mike Bothwell
该团队使用Simulink Report Generator生成设计和需求跟踪报道,可用于指导审查过程中所需的流程复审。
通过使用Simulink Coder Inspector,以及用 DO Qualification Kit 工具包对生成的代码进行检测,团队将生成的代码和控制律模型进行自动比较,查找不符合要求块、验证可追溯性,达到 DO-178B 代码审查的目标。
代码评审之后,完成代码并使用与Simulink 模型相同的测试用例来进行测试。然后,软件团队将控制律代码与其他飞行控制代码整合在一起,准备进行“真实”系统测试。
Bell 525 首次飞行成功,并正在进行进一步的全速、满载、极限高度的能力飞行测试。Bell Helicopter 正在将基于模型设计拓展到将来的 DO-178C 项目中。
结果
集成时间减少90%。“我们第一次自动生成代码,并在真实的硬件上运行时没有任何集成问题,” Bothwell 说。“在过去,完成代码的初步集成要花大约 10 周的时间,但基于模型设计中只需要1周时间。”
开发迭代时间从几周减少到几小时 。“在过去的流程中,当我们做一个小的设计更改时,需要几周的时间来等待软件团队完成编码,”Bell 525电传控制律设计师 Jillian Alfred 说。“使用 Simulink 和 Embedded Coder,我们仅需更改模型并重新生成代码。在一个小时内我们就完成了一个新的测试版本。”
可信赖的代码质量。“基于模型设计使我们能够在不影响工作质量的情况下减少花在耗时的任务上的时间,” Alfred 说。“就像对传统手写代码一样,我们对自动生成的代码质量有同样高的信心。使用 Embedded Coder 生成代码,我们知道代码正确无误;通过 Simulink Coder Inspector,我们确保代码可以追溯到模型。”
全部0条评论
快来发表一下你的评论吧 !