大韩航空用基于模型设计加速无人驾驶飞行器飞控软件的开发和验证
挑战
开发和验证无人驾驶飞行器的飞控软件
解决方案
使用基于模型设计,开发飞行控制律和操作逻辑并仿真;生成代码并执行验证;实施硬件在环(HIL)测试
结果
- 手工代码的运行时错误100%被识别并消除
- 开发工作量减少60%
- 昂贵的飞行测试工作减至最少
工程师们为无人驾驶飞行器(UAV)开发高完整性飞行管理和控制软件,并在整个开发过程中通过各种技术--包括仿真、单元测试、形式检验和硬件在环(HIL)仿真,对软件进行验证。大韩航空的工程团队使用基于模型设计,加速了这些验证步骤以及UAV飞行控制软件的开发。
“基于模型设计使我们的团队能建立一个可以在多个UAV平台上使用的工作流程。这一流程包括系统建模、自动生成产品代码、验证生成和手写的代码没有运行时错误,”大韩航空高级飞行控制系统工程师Jungho Moon说。“这样一来,我们在开发的早期剔除了潜在的严重错误,提高了开发效率,降低了开发成本。”
挑战
在过去,大韩航空工程师手工编写UAV飞行控制软件代码。公司发现了这种方法的几个缺点,特别是当一种飞行控制系统需要安装在多个无人机平台时。首先,团队开发的算法过于复杂,手工编码十分困难;第二,他们需要能够快速适应硬件规格变更和最新的控制算法;第三,手工代码的审查和单元测试要花费大量的时间和精力来完成。
飞行测试和认证最后期限不可更改。为此,大韩航空需要通过设计模型仿真、自动生成代码、验证生成及手工的代码来缩短开发时间。
解决方案
大韩航空使用基于模型设计开发了新的UAV飞行控制软件。
在开发的早期阶段,工程师们开发了Simulink®模型改进和验证高级需求。
工程师们开发了一种UAV动力学模型,包括使用Aerospace Blockset™开发的起落架动力学以模拟自动起飞和降落。随后,他们使用System Identification Toolbox™进行飞行动力学模型参数估计和性能验证。
团队用Robust Control Toolbox™设计飞行控制律;用Control System Toolbox™计算最优控制增益。
飞行管理和控制系统,包括自主着陆导引子系统,都是在Simulink和Stateflow®中建模的。
在进行了桌面仿真来验证飞行控制律并收集控制响应数据之后,他们在MATLAB®对数据进行了分析,并对结果进行了分析仿真。
工程师使用Simulink Check™和Simulink Coverage™进行定期检查,确保模型符合公司的建模标准(基于MAAB指南),并且测试集对模型MC / DC覆盖率100%。
团队用Embedded Coder®从模型生成超过45000行C源代码。他们将这些C代码与他们手写的硬件驱动程序代码集成在一起,他们重用了模型覆盖的测试用例,得到MC / DC代码覆盖率100%。
团队使用Polyspace Code Prover™对所有代码进行了运行时错误检查,识别出了多个手写代码中的错误,随后进行了纠正。在生成的代码中没有发现运行时错误。
团队使用Simulink Real-Time™进行实时硬件在环(HIL)仿真。HIL模型里,飞行控制和飞行动力学子模型中包含了超过11000个模块。HIL模型在为UAV创建的操作员训练模拟器中进行了复用。
大韩航空工程师向认证机构提供了由Simulink Check和Simulink Coverage所产生的MC / DC覆盖报告,以及由Polyspace Code Prover生成的测试报告。
大韩航空公司如期完成了开发,UAV获得了韩国政府的适航认证。
结果
- 手工代码的运行时错误100%被识别并消除。“Polyspace Code Prover对于安全软件的开发和消除飞行中可能出现的关键错误至关重要,”Moon如是说。“Polyspace在我们的手写代码中发现了很多除零和溢出的错误,并证明了在Embedded Coder生成的代码中没有运行时错误。”
- 开发工作量减少60%。“用MATLAB和Simulink开发的软件比我们手写代码的项目具有更多的功能和验证覆盖率。”Moon说,“模型复用、代码生成,以及基于模型设计减少测试时间,将开发时间减少了60%。”
- 昂贵的飞行测试减至最少。“一次飞行测试的成本可能超过1万美元。” Moon说,“基于模型设计,我们知道如果仿真正确,UAV将会正确飞行。例如,自动驾驶仪的性能和功能验证的飞行次数只需以前的三分之一。”