自动控制车速的巡航控制系统负责许多复杂和相互关联的控制功能,并且需要大量的分析和设计,以理解和解决功能间耦合和集成问题。由于提供了更多的功能以及由此增加的功能间耦合问题,卡车的巡航控制比乘用车的速度控制复杂得多。
戴姆勒工程师为梅赛德斯奔驰商用车重新设计了巡航控制系统,包括重型卡车、运输车以及长途客车。使用 MathWorks 提供的基于模型设计的工具,他们仅在 18 个月内即完成系统的设计、测试,以及在 ECU 上的软件实现。
梅赛德斯奔驰卡车
“MathWorks 的产品对于该项目的成功至关重要”,戴姆勒卡车产品创新中心项目经理 Mario Wünsche 说到,“MathWorks 的工具使我们能够在整个项目开发过程中,在统一的平台上实现快速原型、仿真和测试,无需手工编码或者学习新的工具。”
挑战
戴姆勒该项目团队由系统工程师和软件工程师组成,虽然已经开发了该应用的 C 代码功能模块,但是现在需要在一个新的目标 ECU 上重新设计并实现该模块功能。从一开始项目开发周期就被控制在 18 个月内。基于以往经验,项目团队认为采用传统的开发流程不可能在要求的时间内完成开发。
项目的目标是创建一个开发架构的模块化应用,以便将来的项目能够复用。由于多个团队会同步进行该项目开发,因此他们还需要彼此共享成果。
复杂的巡航控制软件能够控制驱动和刹车扭矩,调节车间距和限速。系统控制器和道路限速器的输入包括巡航控制操纵杆,油门,踏板,CAN 总线信号,以及车速、车距和加速度。如此多输入多输出的系统设计本身已经充满挑战,戴姆勒还需要确保所设计的系统能够运行在一个存储和计算资源均有限的定点微处理器上。
解决方案
戴姆勒采用了基于模型的设计流程,使用的工具包括MATLAB,Simulink和Embedded Coder等。MathWorks 咨询工程师帮助他们开发了建模指南和模型架构,以便所设计的算法能够生成最优化的 C 代码。
戴姆勒项目团队首先在Simulink和 Statflow中搭建系统模型。该复杂的设计模型包括 3900 个模块,140 个输入信号,40 个输出信号和 340 个参数。他们采用 Concurrent Version System(CVS)作为版本控制工具以使得各团队能够并行开发各子系统。
整个开发过程中,工程师们使用交互式的,自动化的测试工具,基于一个带有预先定义测试用例和控制接口的测试数据库,对所设计的系统不断进行测试。将Simulink 闭环仿真模型和运行在目标微控制器上的产品级代码(由 Embedded Coder 从模型生成)通过 CAN 总线进行通信, 工程师们进行了处理器在环(PIL,processor-in-the-loop)测试。由此,戴姆勒(的工程师们)能够快速地验证Simulink 的仿真结果和PIL测试结果是否一致。
完成测试后,工程师们采用Fixed-Point Designer、Simulink Coder和Embedded Coder为巡航控制系统自动生成定点代码。Fixed-Point Designer帮助工程师们自动确定Simulink模型中绝大部分模块参数的定标和数据类型。Embedded Coder使得工程师们能够生成满足戴姆勒内部质量和编码标准的产品级代码。此外,自定义存储类型功能允许工程师们能够定义和控制不同版本产品中的数据类型。
“MathWorks 的建模和代码生成工具使我们能够快速无缝地实现设计和测试迭代,并使我们能够在仅仅 18 个月的时间内发布我们的产品。”
—— Mario Wünsche, Daimler
代码经过在目标 ECU 上测试后,工程师们在硬件在环(HIL,Hardware-in-the-loop)模拟器上继续测试了目标 ECU,该模拟器由一个运行在虚拟机环境系统(VME Systems)的车辆模型和所有其他的实物车辆 ECU 组成。车辆模型运行在实时环境中,使得团队就像在真实的车辆上采集计算所有的物理参数一样。
结果
更紧凑、 高效的代码。相比之前手工代码版本的巡航控制系统,采用 Embedded Coder 和 Simulink Coder 自动生成的代码,RAM 占用率降低了约 16%。
更高的测试效率。在桌面(开发)电脑上而不是在车辆上调试控制软件,使得戴姆勒项目团队减少了解决软件问题的时间和成本。
更快的开发速度。整个项目,包括系统的分析、重构、建模和测试,仅仅用了 18 个月。如果没有使用 MathWorks 提供的涵盖仿真、产品级代码生成和 PIL 测试等功能的工具,几乎不可能在截止时间前完成项目开发。
全部0条评论
快来发表一下你的评论吧 !