白皮书

使用 Simulink 和 Simscape 开发电池系统

电池系统开发工作流

电气化正在推动电池在一系列应用中的使用,包括电动汽车(例如汽车、公交车)、船舶、电动垂直起降 (eVTOL) 以及电池储能系统 (BESS)。这些应用在电芯选择、电池包设计(功率/能量密度、体积、重量和寿命)以及电池管理系统 (BMS) 开发方面,对电池系统设计有不同需求。

在测试前进行电池系统设计仿真可以为电池包的动态行为提供深入了解。它还让您能够探索和比较 BMS 算法,扩展运行测试用例,并缩短从电芯到电池系统的技术开发周期。

电池系统开发的工作流始于电池建模,随后是:

开发工作流图,从左到右显示桌面仿真、实时仿真和硬件实现。

使用 Simulink® 和 Simscape Battery,电池系统开发的工作流始于电池建模,然后是电池包设计,接着是开发 BMS 算法。然后您可以执行闭环桌面仿真,以验证电池包设计和 BMS。下一步是使用快速原型构建和硬件在环测试对模型进行实时仿真。开发的最后阶段涉及硬件实现、部署和测试。

开发工作流图,从左到右显示桌面仿真、实时仿真和硬件实现。

用于电池系统开发的系统级仿真。

章节

电池建模

目前有三种不同类型的电池模型:等效电路模型 (ECM)、电化学模型和数据驱动模型。您可以使用 Simscape Battery 和 Simulink 产品创建这些模型并运行仿真,而且所有这些模型都可以集成到 Simulink 中并支持代码生成。

等效电路模型

电池 ECM 使用电阻、电容器和电压源等电路元件对电芯的动态行为进行模拟。电池管理系统 (BMS) 设计和系统级仿真会使用 ECM,因为其简单易懂并且计算效率高。Simscape Battery 提供预置的 ECM 模块,即 Battery Equivalent Circuit 模块,该模块对电池的电-热动态特性进行建模,并支持开路电压 (OCV) 的电池迟滞、电池退化(循环老化日历老化)以及包括热失控在内的故障仿真

电化学电池模型

电化学电池模型是描述电池在充电和放电过程内部发生的物理和化学过程的数学模型。与 ECM 相比,电化学电池模型能提供电池内部过程的详细深入信息,有助于电芯设计、退化研究、快速充电电流优化以及在极端工况下更准确的性能预测。

Simscape Battery 提供:

  • Battery Single Particle 模块,以通过使用具有电解质动力学的单粒子模型 (SPMe) 来表示电池,包括析锂和固体电解质界面 (SEI) 生长。
  • Doyle-Fuller-Newman (DFN) 电池模型,也称为准二维 (P2D) 电池模型,用于仿真电池内部发生的详细物理电化学过程,例如锂扩散、电化学反应、电荷守恒和生热动态特性。

数据驱动的电池模型

数据驱动的电池模型使用经验数据以及系统辨识、机器学习和深度学习等方法,对电池行为进行仿真和预测。它们可以集成到 Simulink 中进行系统级仿真并支持代码生成。当内部动态特性难以通过分析捕获时(例如电池老化建模中的电池退化机制),数据驱动的电池模型是理想选择。数据驱动的电池模型适用于电动汽车车队管理、预测性维护、高级诊断及其他可获得大型数据集并能提高电池寿命预测准确度的应用。

您可以使用深度学习来创建低阶非线性状态空间模型。这种模型的训练数据可以是试验数据,也可以是来自极高保真模型(例如 FEA 电池模型)的仿真数据。

关键要点

  • 使用具有电池退化(循环老化日历老化)以及故障仿真(热失控)的预置 ECM(等效电路模型)模块。
  • 使用 SPMe 和 DFN 电池模型仿真电化学过程。
  • 创建数据驱动的电池模型,这些模型集成到 Simulink 中并支持代码生成。
章节

电池包设计

您可以使用 MATLAB® 中的电池构建器Simscape Battery 应用程序编程接口 (API) 来设计电池包。设计的基本元素包括电芯设计、并联装配、模块、模块装配和电池包设计。

坐标平面,x 轴表示电芯数量,y 轴表示以 kWh 为单位的能量,电池、并联合成、模块、模块装配和电池组设计按该线性顺序增加。

从电芯到电池包的电池包设计。

使用电池构建器或 API,您可以:

  • 从电芯到模块和从模块到电池组构建并可视化具有不同几何形状和拓扑的电池模型。
  • 对具有可自定义流体路径和电池包热连接的冷却板建模。
  • 从自定义电芯组件构建电池模型
  • 对电芯之间的热交换进行建模
  • 研究电芯间的温度变化并度量冷却效率。
  • 为您的电池包设计生成自定义 Simulink 库模型。
  • 设置合适的模型分辨率,以在模型保真度和仿真速度之间取得平衡。

关键要点

  • 开发具有不同模型分辨率的自定义电池包。
  • 在电池模型中添加热效应。
  • 生成用于仿真的电池包模型。
章节

电池热管理系统

工程师可以使用 MATLAB 和 Simulink 设计电池热管理系统来在设定范围内调节电池包温度,并确保它在各种工况下提供最优性能。 

电池和电池包冷却系统图。

使用 Simscape Battery 生成的新旧锂离子电池热分析对比

捕获电池热行为

使用 Simscape Battery,工程师可以在多个保真度级别上对电池热行为(从电芯到电池包)进行建模,以捕获温度非均匀性及其对性能、安全性和老化的影响。

在电芯级别上,您可以沿电芯高度对热模型进行离散化,以提高热建模的保真度并对电芯内部的热梯度进行建模。

在模块和电池包级别,通过可配置的电芯间热路径可以表示传导、对流和辐射效应,支持对电芯间温度变化和热传播进行分析。

为了平衡准确性和仿真速度,Simscape Battery 还支持从高保真有限元或有限体积分析派生的降阶热模型,从而在保留主要热动态特性的同时,支持系统级仿真、实时执行和硬件在环测试。

这些热模型可以直接与详细的冷却表示(例如具有可配置流道的液冷板)耦合,从而能够评估在实际工况下温度分布和冷却有效性。Simscape Battery 提供支持不同流配置的预置冷却板模块,包括并行通道U 形矩形通道边缘冷却

Simscape Battery 中的并行通道模块。

Simscape Battery 中的 U 形通道模块。

Simscape Battery 中的边缘冷却模块。

设计电池热管理的控制功能

使用 Simulink,您可以设计闭环控制功能。该功能结合前馈和 PID 方法来实现循环系统控制,例如进料流(阀门)控制、质量流量(泵)控制和热交换路径选择控制。使用 Simscape Battery,您可以通过预置的模块(例如 Battery Coolant ControlBattery Heater Control)来构建电池热管理控制算法。您还可以使用 Stateflow 根据环境温度和电池温度设计用于在不同工作模式(例如加热和冷却)之间切换的监督控制逻辑。

章节

电池管理系统算法

电池管理系统直接影响电池的安全性、效率和寿命,进而影响系统的整体性能和可靠性。电池管理系统的主要功能是监控、状态估计、电芯平衡、功率管理、热管理、保护和通信。

电池管理系统组件图。

电池管理系统的主要功能。

使用 Simulink 和 Simscape,您能够深入了解电池包的动态行为,探索软件架构,测试各种运行工况并尽早开始硬件测试,从而减少设计错误。工程师可以使用 Simscape Battery 中的内置 BMS 控制模块来评估设计的电池包性能,开发 BMS 算法,并运行系统级仿真。

估计荷电状态

估计荷电状态 (SOC) 的方法有多种,既有简单的电流积分(库仑计数)和电压监测,也有复杂的基于模型和数据驱动的方法,如卡尔曼滤波器和神经网络。

对于开发电池管理系统中基于模型的 SOC 估计的算法,精确的电池模型至关重要。电池管理系统中 SOC 估计的传统方法,例如开路电压 (OCV) 查找和电流积分(库仑计数),在某些情况下易于实现且相对准确。然而,基于 OCV 的方法要求进行 OCV 测量,这需要在测量前经过长时间的静置期。而库仑计数存在初始化不良和电流测量噪声累积的问题。事实证明,扩展卡尔曼滤波器 (EKF) 和无迹卡尔曼滤波器 (UKF) 方法能以合理的计算工作量在真实的 BMS 实现中提供准确的结果。

Simscape Battery 提供多个预置的 SOC Estimator 模块(具有可变容量选项)并支持代码生成:库仑计数自适应卡尔曼滤波器以及卡尔曼滤波器

与卡尔曼滤波器相比,使用神经网络来开发 SOC 估计器不需要关于电池或其非线性行为的大量信息,而是使用电流、电压和温度数据来训练网络并将 SOC 作为响应。您可以使用投影压缩神经网络,这样,在 CPU 上运行或利用无库的 C 或 C++ 代码生成部署到 BMS 嵌入式硬件时,可以实现更快的前向传播。

关键要点

估计健康状态

所有电池,包括在出厂时符合性能规格的电池,都会随着日历寿命和充放电循环而逐渐衰退,表现为可用容量逐渐降低、内阻增大。。后者的测量相对简单,需要的时间也短。但前者则需要完整的充电或放电过程来进行精确计算,而这并不始终可行。

此项挑战导致健康状态 (SOH) 估计越来越受关注,从而带来了自适应卡尔曼滤波器公式的增强。该公式现已不只包括状态,还包括电池参数。精确估计瞬时内部电阻对于 BMS 建立功率限制非常有帮助。

Simscape Battery 提供内置的 SOH 估计器来估计电池容量,包括卡尔曼滤波器、具有和不具有变量权重的最小二乘基于电阻基于容量的 SOH 估计器。

SOH 估计比 SOC 估计更主观;对于如何定义 SOH 尚无共识。因此,每个组织可能有其自己特定的量化 SOH 估计的方法,这就导致无法使用通用的现成解决方案。使用 Simulink 和 Simscape,您可以开发和仿真与您的组织特定的电池健康状况的解释一致的自定义 SOH 估计算法。

关键要点

  • Simscape Battery 提供预置模块,用于使用卡尔曼滤波器或最小二乘算法估计容量。

电芯平衡、电池充电和电池监控

Simscape Battery 为电芯平衡、电池充电和电池保护提供预置的库模块。

电芯平衡功能通过泄放电阻耗散多余电荷,使所有电芯保持相似的 SOC。平衡可防止过度充电或放电损坏电芯从而延长电池寿命。当电芯平衡时,多个电池可以提高容量。

Simscape Battery 中的电芯平衡,展示为 SOC 和时间的函数。

电池充电由恒流/恒压 (CC-CV) 算法控制。这是一种常见方法,它通过在充电时防止过流和过压来维持电池寿命。充电期间电流受到限制,直到达到预设电压。

电池电量与时间的关系图,使用了 Simscape Battery 中的 CC-CV 算法。

保护电池需要监控电流、电压和温度。Simscape Battery 提供了可集成到 BMS 算法中的模块。

集成在 BMS 模型中的电池监控模块

关键要点

  • Simscape Battery 为电芯平衡、电流和电压控制以及电压、电流和温度监控提供了模块。
章节

桌面仿真

Simulink 中的桌面仿真使您能够验证电池系统设计的各项功能。在桌面上,电池系统、环境和算法都是使用行为模型进行仿真的。例如,您可以探索主动式与被动式电芯平衡配置和算法,评估每种平衡方法对于给定应用场景的适用性。您可以在应用到硬件原型前使用桌面仿真探索新的设计构想,并测试多个系统架构。您还可以在桌面仿真中执行需求测试;例如,您可以验证在检测到隔离故障时接触器会被阻止打开或关闭。

当开发中的电池系统必须满足安全需求时,您可以将基于形式化方法的测试集成到符合 IEC 61508、IEC 61851 和 ISO® 26262 等标准的软件开发过程中。

章节

电池系统的实时仿真 

在通过桌面仿真验证后,您可以使用这些 Simulink 模型生成 C 和 HDL 代码进行快速原型 (RP) 设计或硬件在环 (HIL) 测试,以进一步实时验证 BMS 算法。在进行快速原型化时,您将从控制器模型生成用于实时测试的控制软件代码来代替手工编写,然后将代码部署到执行生产微控制器功能的实时计算机。利用自动代码生成,只需数小时(而不是数天)即可在实时硬件上测试模型中的算法更改。您还可以在 Simulink 内与实时控制硬件交互,以更改算法参数并记录测试数据。

与快速原型一样,硬件在环测试也涉及从 Simulink 模型生成代码并将代码部署到实时计算机。硬件在环测试使用的代码是从电池系统模型而不是从控制算法模型生成的,这提供了一个代表电池包、有源和无源电路元件、负载、充电器和其他系统组件的虚拟实时环境。借助此虚拟环境,您可以在开发硬件原型之前,在不会损坏硬件的环境中实时验证 BMS 控制器的功能。

桌面仿真过程中开发的测试可以延续到硬件在环测试,以确保 BMS 设计的推进始终满足需求。虽然 HIL 测试主要用于测试在微控制器或 FPGA 上运行的代码,但您也可以在选择生产控制器硬件之前改用快速原型构建系统(例如 Simulink Real-Time™Speedgoat® 目标硬件),并将其连接到 HIL 设置。

验证 BMS 软件

借助实时仿真(包含快速原型设计和 HIL 测试),电力电子控制工程师能够更加深入地了解 BMS 设计在硬件上运行的情况。RP 和 HIL 的目标都是在硬件上仿真总体设计的一个方面:RP 是仿真 BMS 控制器,而 HIL 则是仿真电池系统的平衡。在 BMS 设计中,实时仿真提供了几大优势,让您能够:

  • 在选择最终控制器硬件之前进行 RP 以开始算法的验证。
  • 利用实时测试系统的灵活性进行快速设计迭代和测试。
  • 在电池系统原型硬件可用前进行 HIL 测试。
  • 结合使用 RP 和 HIL 测试,通过测试用例对 BMS 算法进行测试,避免使用实际硬件进行难以执行、成本高昂或可能损坏硬件的测试。
Simulink 中的被控对象模型部署在 Speedgoat 实时计算机上,BMS 算法部署在微控制器上。两者相连接以进行测试。

电池管理系统软件的硬件在环 (HIL) 测试。BMS 代码从在 Simulink 中建模的 BMS 算法生成,并部署到 Texas Instruments® C2000 微控制器。被控对象模型(电池包、接触器、逆变器、充电器)在 Simulink 中建模。生成代码并部署到带电池模拟器的 Speedgoat 实时机器上运行。

通过在 Simulink 中重用桌面仿真模型来生成实时仿真代码,您可以缩短总体开发时间。您可以生成 C/C++ 和 HDL 代码,在专为实时性能而优化的计算机上执行。从 Simulink 模型生成的实时仿真代码包括能够让您在实时仿真运行时调整控制参数的接口。

执行快速原型构建

在硬件测试期间对控制器代码进行更改会导致延迟和额外的风险。手动修改代码、重新编译,然后将其部署到微控制器或 FPGA 也需要花费很长时间。如果您是控制算法开发者且依赖软件或硬件工程师做出更改,则可能需要更长时间。根据所需更改的程度,还要面临向实现的代码中引入新问题的风险。

您可以使用 Simulink 生成在专用计算机上实时执行并使用高速 I/O 与测试硬件通信的代码来代替手动编写控制器软件更新。这种 RP 方法不仅可以消除手动编码及其相关联的延迟,还可以让您先在桌面上运行仿真模型来验证对 BMS 软件的更改,确认没有引入其他问题。

硬件在环测试

由于构建和修改电池系统的硬件原型可能需要相当大的工作量,而且修复成本通常很高,所以在电池包所在的电气系统中测试此类原型的运行情况并不总是可行。由于这些限制的存在,即使很小的设计改动也可能会威胁到开发计划。而且 BMS 的设计往往进展缓慢,因为团队会认为对之前设计的重大修改风险过大。

借助 Simulink,您可以从电池系统及其所属的更大系统(包括电源和负载)中的硬件的模型中生成 C/C++ 和 HDL 代码。在将此代码部署到实时计算机后,您就能够在电池系统原型中测试控制器之前对您的控制器代码运行硬件实时仿真。因此,您可以提前找到并纠正控制设计错误,从而避免损坏昂贵且难以更换的硬件原型。您还可以发现硬件设计错误,例如不正确的组件选型。

许多 HIL 实时系统(包括 Speedgoat 目标硬件)都集成了电池模拟器,让您能够模拟便携式电池电源,模拟电动汽车的电池组,或馈入电流来仿真充电中的电池。

章节

硬件实现

在硬件实现阶段,Simulink 控制模型已通过桌面仿真、RP 和 HIL 验证,并已准备好为 BMS 生成高效的生产代码。如有必要,您可将产品级代码生成步骤合并到汽车、航空航天和其他受监管行业中使用的正式认证标准的合规工作流中。

生产就绪代码生成

Simulink 从控制器模型中生成可读、紧凑、高效的 C/C++ 和 HDL 代码,可直接在生产微控制器、FPGA 和 ASIC 上实现。与为 RP 生成的代码不同,为生产用途生成的代码不包括支持实时监控、参数调节和数据记录所需的额外接口。利用优化设置,您可以精确控制生成的函数、文件和数据以提高代码效率,并有助于与已有代码、数据类型和标定参数集成。

执行处理器在环仿真

在处理器在环 (PIL) 仿真中,C/C++ 或 HDL 代码在微控制器或 FPGA 上运行,与此同时,设备使用 BMS 硬件的 Simulink 模型步进执行,降低了在 BMS 代码的初始评估过程中损坏硬件原型的风险。PIL 仿真虽然并不实时执行,但却以真实代码运行,可让您在各种条件下验证您的代码,并有信心在实际系统上部署后即可正确执行。

生成产品级代码

桌面仿真、RP、HIL 和 PIL 仿真都能让您验证和确认 BMS 的控制算法。使用 Simulink,您可以基于这些算法来生成生产就绪代码 - 无论是用于在微控制器上实现的优化且稳定的 C/C++ 代码,或是用于 FPGA 编程或 ASIC 实现的可综合 HDL 代码。自动代码生成消除了手动算法转译错误,并且产生 C/C++ 和 HDL 代码与 Simulink 中已验证的算法具有数值等效性。通过在尽可能全面的工况和故障条件下仿真您的控制算法,即使无法面面俱到,也能让您对生成的代码在实时系统中处理同样的条件充满信心。如果以后的硬件测试表明需要更改算法,您只需在您的模型中修改算法,重新运行仿真测试用例来验证更改的正确性,然后生成经过更新的新代码。所有生成的 C/C++ 和 HDL 代码都完全可移植,可通过一系列选项进行优化,并且与 Simulink 模型双向可追踪。

BMS 代码部署到 Texas Instruments C2000 微控制器上。

根据在 Simulink 中建模的 BMS 算法自动生成 BMS 产品级代码。该代码部署到 Texas Instruments C2000 微控制器上。 

资源