东风电动车辆股份有限公司使用基于模型的设计开发混合动力电动汽车的电池管理系统

“基于模型的设计为我们提供了一个从构想到生成产品代码的完整的开发流程。MathWorks 公司的工具让我们在开 发早期就可以进行验证,并进行持续的测试,从而使我们可以运用自己的专业知识开发关键的电池管理技术。”

挑战

开发混合动力公交车的电池管理控制系统

解决方案

使用MathWorks 的工具采用基于模型的设 计方法建模、 验证和生成代码, 进行控制 器设计

结果

  • 提前完成项目
  • 重复利用设计
  • 生成 100% 的应用程序代码

东风EQ6110款混合动力电动公交车.

东风电动车辆股份有限公司 (DFEV)在东风汽车公司中负责电动车和混合动力车 (HEV) 的研究和开发工作。东风汽车公司的大多数部件(如电机和电池)均由其他供应商提供。但是,由于电池管理和汽车能源管理的控制策略对 HEV 的性能和燃料经济性至关重要,并且这些控制器必须根据整车系统进行优化和集成,因此 DFEV 决定开发其 HEV 内部的电子控制系统,以此作为其自主知识产权。

东风的工程师们使用 MathWorks 的工具和基于模型的设计开发出一套复杂的电池管理控制系统,以供东风混合动力公交车EQ6110 使用。与普通的城市公交车相比,该车在降低排放的同时还将燃料经济性提高了 30%。

“仅有六名工程师的项目组在预算内按时开发出了控制器模型,并生成了产品代码,”DFEV主任工程师刘晓康博士说。“通过持续的测试验证,并将电池模型用于闭环仿真,使我们能够尽早发现和解决问题,以确保达到或超过我们高质量的标准。”

挑战

东风的工程师们有用C编程开发控制器的经验,但电池管理系统项目更为复杂。此外,电池管理系统项目与整车控制系统的集成也是一大挑战。

“该项目涉及到不同的工程领域,而且工程师们各自的开发方式极为不同,从而导致传统的基于手写C代码的开发方式很难进行调试和维护,”刘博士解释说。“在人力,物力相对有限的情况下,在 18个月这样紧迫的时间计划内靠手写代码很难完成任务。”

东风的工程师们必须遵循 ISO/TS 16949 质量标准,并且要求生成的代码必须符合东风遵循的一组 MISRA ® C 标准。刘博士提到:“我们需要一个能够进行连续测试验证,并生成风格一致、符合标准以及高效的产品代码的开发环境。”

解决方案

东风的工程师们使用 MathWorks 工具和基于模型的设计方法首先对电池管理控制系统进行了设计、仿真和验证,然后为其生成了产品代码。

在确定了项目需求之后,他们使用 MATLAB®、Simulink® 和 Stateflow® 开发出基本的浮点控制器模型。同时,该项目组使用测试数据开发出电池的 Simulink 模型。该模型可以在控制器模型验证时,提供电池动态信息,从而使测试结果更准确。

项目组首先对控制子模块进行单元测试,然后将各子模块集成。再将完整的控制器模型和 Simulink 的电池模型链接在一起,运行仿真来验证控制逻辑的基本功能。

为进一步优化控制器的算法,工程师使用 Simulink Coder™ 很方便地快速生成控制模型的代码,并下载到快速原型器来控制实际电池,以实现对算法的验证。

借助 Fixed-Point Designer™,项目组将浮点模型转换为定点模型,并再次运行仿真,以验证转换质量。工程师们采用MC/DC (修正条件/决策覆盖率) 指标来评估测试的完整性。

在使用 Embedded Coder® 生成了模型的产品代码之后,他们用软件在回路测试的方法验证了生成的代码是否按照设计的方式运行,在该测试中用 Simulink 的电池模型与控制代码形成闭环进行测试。

在最后的验证阶段,项目组将代码下载到他们的基于Freescale™ S12 微处理器的电池控制ECU中。利用被控对象生成的代码,他们对ECU进行硬件在环的仿真,以此验证控制软件和 ECU 硬件是否很好的集成在一起。

他们将控制器安装到样车中进行可靠性和耐久性的路试,使用 CANape 对控制器进行标定,而标定工具用到的ASAP2 标定文件是与产品代码一起自动生成的。

目前嵌入式电池控制系统已安装在东风 EQ6110 公交车中进行试运行工作。

结果

  • 提前完成项目. “从最初的构想到概念验证,再到交付完成的产品,我们只花了 18 个月,”刘博士说,“通过使用基于模型的设计、自动进行代码生成和浮点到定点的转换,我们仅有六名工程师的项目组提前完成了工作。”
  • 重复利用设计. 东风的工程师们正在将部分控制器设计重复运用于公司正在开发的混合动力轿车。“工程师们使用基于模型的设计和 Simulink 可更便捷直观地进行系统开发,在原有基础上增加新的功能,从而极大地减少了开发时间”刘博士说。
  • 生成 100% 的应用程序代码. 项目组使用 Embedded Coder 生成了控制器全部数万行的应用代码。“由于代码是自动生成的,因此能保证一致性,并且更易于维护。同样,此类代码具有高品质,符合我们需要遵循的 MISRA C 标准要求,”刘博士说,“使用手写代码则很难达到这样的品质和一致性。”