基于模型的设计(MBD)在汽车ECU软件开发中的实践
基于模型的设计(Model-based Design,以下简称MBD)是一种围绕模型展开的项目开发方法,指对开发对象或者项目产品进行精确建模,项目的需求分析、功能设计、系统框架、代码生成、测试验证等开发环节都在模型的基础上展开。本文将讨论如何应用MBD实现汽车ECU软件的自主开发。
01
整车厂当下困境
整车厂对发动机控制的研究和原型设计从未停歇,但从未开发过产品化的大型ECU嵌入式控制系统和软件。
在传统的开发方式中,由于缺少对目标对象的建模,每一次项目推进都严重依赖于上阶段开发工作的完成情况,一旦前期设计存在缺陷,就会导致较高的后期修改与完善成本。此外,如果某项需求发生变化,开发团队就不得不重新编码和构建整个系统,从而导致项目延迟数日乃至数周。
除了流程上存在缺陷,传统开发没有中心模型,对前期的系统框架设计依赖度极高,需要拥有十分丰富开发经验的工程师提前布局。
在当前激烈的竞争环境下,汽车行业正在加速产业和技术更迭,整车厂对大型ECU嵌入式控制系统和软件的需求迫在眉睫,而使用传统的开发方式需要招聘、培训工程师来进行开发和测试工作,耗时较久,无法在计划时间内投入生产。MBD无疑是整车厂的最优选,但如何选择一套应用MBD、以模型为核心,且能处理从需求、设计、代码生成到测试的开发工具则成了难题。
02
如何应用MBD
汽车工程师团队在着手开发基于MBD的乘用车ECU软件时,首先需要根据系统需求构建架构模型,随后才能从中衍生设计出所需的仿真模型。
此类高级低保真度模型包含将要在ECU和被控对象(指发动机及其工作环境)中运行的控制软件。由于MBD的核心模型及基础应用形式为“模型控制器+执行器模型”,因此步骤上,团队首先需要通过在各类场景下进行高级模型仿真来执行初始系统和集成测试,用以验证模型是否正确表示了系统及系统是否对输入信号做出了预期内的适当响应;验证完成后,团队需要向模型中增加细节,并对照技术规范不断测试和验证系统级行为。如果系统规模过于庞大、结构也较为复杂,团队可安排工程师独立开发和测试各组件,但组件仍需在全系统仿真中频繁测试。
在针对系统及其工作环境建立起详细模型后,理想状态下,团队可基于控制算法模型自动生成代码来进行软件测试和验证。在硬件在环测试完成后,便可将所生成的代码下载至生产硬件,以便在实际车辆中进行测试。
03
ModelCoder
由迪捷软件自主研发的建模仿真与代码生成软件ModelCoder,便是完全以模型为核心、能够完美解决整车厂当前难题的国产软件。汽车工程师团队可利用ModelCoder开发和建立发动机控制算法模型,完成大量基于模型的设计和验证,并自动生成可信的ECU产品代码,实现汽车ECU软件的设计、开发、测试及验证。
▲ModelCoder界面图
应用ModelCoder带来的好处有:
1. 开发时间缩短。应用ModelCoder的全新ECU软件开发及验证将比应用传统开发方式的预期计划节省相当一部分时间。应用MBD,在ModelCoder工程师的辅助支持下,整车厂工程师的培训时间也将大大缩短。此外,ModelCoder生成的代码直接符合汽车工业软件可靠性联合会所制定的MISRA标准,能够显著降低整车厂为实现高质量软件所需的成本。
2. 集成测试时间缩短。由于开发阶段全过程都在ModelCoder中完成,因此可实现持续测试和验证,在集成测试前便可发现传统开发方式下可能存在的20%以上的缺陷。
3. 应用MBD,汽车工程师团队可借助Modelcoder实现模型复用,显著提升设计效率和质量,模型复用率超60%,ECU软件开发周期缩短50%。ModelCoder的具象化不仅体现在项目形态上,项目的代码生成及后续测试都可直接由模型生成和实现,加快产品功能迭代速度。