用户故事

基于模型设计的韩国空速无人机飞行控制软件开发与验证

挑战

开发和验证无人机飞行控制软件

解决方案

利用基于模型的设计(Model-Based Design)对飞行控制规律和运行逻辑进行设计和仿真,生成和验证生产代码,进行HIL测试

后果

  • 100%识别并消除了手写代码中的运行时错误
  • 开发工作减少了60%
  • 成本高昂的飞行测试被最小化

通过MATLAB和Simulink实现的模型重用和效率提升节省了时间,降低了成本。金宝app我们估计,与手工编码相比,基于模型的设计可以节省50%以上的时间,而且随着项目的复杂性增加,基于模型的设计的优势也在增加。”

文正浩,大韩航空
大韩航空无人驾驶飞机。

为无人机(UAV)开发高完整性飞行管理和控制软件的工程师使用各种技术,包括仿真、单元测试、正式测试和硬件在环(HIL)仿真,在整个开发过程中验证软件。在韩国航空公司,工程团队通过基于模型的设计加速这些验证步骤,以及无人机飞行控制软件的总体开发。

Jungho Moon说:“基于模型的设计使我们的团队能够建立一个可在多个无人机平台上使用的流程。该流程包括对系统进行建模和仿真,自动生成生产代码,并验证生成的和手写的代码没有运行时错误。”,韩国航空公司高级飞行控制系统工程师。“因此,我们在开发早期消除了潜在的关键错误,提高了开发效率,降低了开发成本。”

挑战

过去,韩国航空工程师手工编码无人机飞行控制软件。该公司发现了这种方法的几个缺点,特别是当单个飞行控制系统针对多个无人机平台时。首先,团队正在开发的算法太复杂,无法用C语言手工编程。其次,他们需要能够快速部署硬件规格变更和最新的控制算法。第三,手动代码审查和单元测试需要花费太多的时间和精力才能完成。

为了满足飞行测试和认证的不可更改的最后期限,韩国航空需要通过模拟设计模型、自动生成代码以及验证生成的和手写的代码来缩短开发时间。

解决方案

大韩航空利用模型设计(Model-Based Design)开发了新型无人机(UAV)飞行控制软件。

在开发的早期阶段,工程师们开发了Simulink金宝app®用于细化和验证高级需求的模型。

工程师们开发了无人机的动力学模型,包括用于模拟自动起飞和着陆的起落架动力学,以及航空航天区块集™. 后来他们使用了系统识别工具箱™ 为飞行动力学和性能验证估算模型参数。

该团队使用鲁棒控制工具箱设计了飞行控制律™ 控制系统工具箱™ 计算最优控制增益。

在Simulink和statflow中对包括自动着陆制导子系统在内的飞行管理与控制系统进行建模金宝app®

在运行桌面仿真以验证飞行控制规律并收集控制响应数据后,他们在MATLAB中分析了结果,然后分析了飞行测试结果®

使用Simu金宝applink检查™ 和Simulink覆盖范围™, 工程师进行定期检查,以确保模型符合公司的建模标准(基于MAAB指南),并测量其测试套件的100%MC/DC模型覆盖率。

该团队使用Embedded Coder从他们的模型生成了超过45000行源代码®. 他们将此C代码与他们为硬件驱动程序编写的代码集成在一起,并重用模型覆盖率测试用例来测量100%的MC/DC代码覆盖率。

使用Polyspace代码验证程序™, 该团队检查了所有代码的运行时错误,识别了手写代码中的几个错误,并随后进行了更正。在生成的代码中未找到运行时错误。

该团队使用Simulink实时进行了实时半实物仿真™. 在飞行控制和飞行动力学子模型中包含11000金宝app多个模块的HIL模型被重新使用,以创建无人机操作员培训模拟器。

大韩航空工程师向认证机构提供了Simulink Check生成的MC/DC覆盖报告,以及Polyspace Code Prover生成的Simulink覆盖报告和测试报告。金宝app

大韩航空按照计划完成了开发工作,并获得了韩国政府的适航认证。

后果

  • 100%识别并消除了手写代码中的运行时错误. Moon说:“Polyspace代码验证程序对于开发安全软件和消除飞行中可能出现的关键错误至关重要。”。“Polyspace在我们的手写代码中发现了几十个被零除和溢出错误,并证明嵌入式编码器生成的代码中没有运行时错误。”

  • 开发工作减少了60%.“我们用MATLAB和Simulink开发的软件比我们手工编码的项目有更多的功能和验证金宝app范围,”Moon说。模型重用、代码生成和基于模型的设计减少的测试时间使开发工程师的工作时间减少了60%。

  • 成本高昂的飞行测试被最小化.“一次飞行测试的成本可能超过1万美元,”穆恩说。“基于模型的设计,我们知道,如果我们模拟正确,无人机将正确飞行。例如,自动驾驶仪的性能和功能只需验证之前要求的三分之一的飞行测试次数。”