白皮书

使用 Simulink 和 Simscape 开发电池系统

电池系统开发工作流

电气化正在推动电池在一系列应用中的使用,包括电动汽车(例如汽车、公交车)、船舶、电动飞机、并网储能系统和光伏系统。这些应用在电池选择、功率/能量密度、体积、重量和寿命方面对电池系统设计有不同需求。

在测试前进行电池系统设计仿真可以为电池包的动态行为提供深度信息。它还支持您:

  • 探索和比较软件算法。
  • 扩展运行测试用例。
  • 缩短从电芯到电池系统的技术开发周期。

电池系统开发的工作流从构建电芯开始。从电芯设计到电池系统需要执行五项主要任务。这些任务包括:

  • 电池包设计
  • 电热电池包组件设计
  • 电池管理系统 (BMS) 算法开发
  • 集成组件以运行桌面仿真
  • 硬件在环 (HIL) 测试和部署

桥接电芯和电池系统。

使用 Simulink® 和 Simscape™ 的电池系统开发工作流从系统组件的集成开始,以便执行桌面仿真来验证组件设计和算法(请参阅桌面仿真)。下一步是使用快速原型构建和硬件在环测试对模型进行实时仿真(请参阅电池系统的实时仿真)。开发的最后阶段涉及硬件实现、部署和测试(请参阅硬件实现)。

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

使用 Simulink 和 Simscape 的电池系统开发工作流。

小节

电池包设计

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

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

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

使用 Simscape Battery,您可以:

  • 对电热行为进行建模,包括电芯模型中的电荷动力学、老化、热效应和热传递效应。
  • 根据制造商规格书对电芯进行参数化。
  • 从电池到模块和从模块到电池包构建并可视化具有不同几何形状和拓扑的电池模型。
  • 对具有可自定义流体路径和电池包热连接的冷却板建模。
  • 研究电池间的温度变化并度量冷却效率。
  • 为您的电池包设计生成自定义 Simulink 库模型。
  • 设置合适的模型分辨率,以在模型保真度和仿真速度之间取得平衡。

关键要点

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

从电芯到电池系统

小节

电池热管理系统

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

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

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

使用 SimscapeSimscape Battery,您可以从电芯级别开始创建模型,然后添加环境温度影响、热界面材料和冷却板连接来创建更具代表性的模型。通过定义到环境、冷却剂和冷却板位置的热路径,您可以从电池到电池、电池到板和电池到环境的角度考虑热传递。Simscape Battery 提供支持不同流配置的预置冷却板模块,包括并行通道U 形矩形通道边缘冷却

Simscape Battery 中的并行通道模块。

Simscape Battery 中的并行通道模块。

Simscape Battery 中的 U 形通道模块。

Simscape Battery 中的 U 形通道模块。

Simscape Battery 中的边缘冷却模块。

Simscape Battery 中的边缘冷却模块。

电池包级热模型可通过将电池组合成具有热效应的模块并将模块排列在电池包内来构建。您可以对不同老化程度的电池包执行热性能分析,以满足寿命终止 (EOL) 时的保修标准。

电芯热模型以及旁边的电芯。

使用 Simscape 中的热元素库对单个电芯进行详细的一维热建模。

连接到冷却剂热端口的一系列电芯的模型。

使用 Simscape Battery 为电池模块定义冷却剂热路径

您可以使用 Simscape 和 Simscape Fluids™ 中气体、液体和热效应领域的模块对主动、被动或混合冷却/加热解决方案进行建模。您还可以通过绘制示意图来放置管道阀门热交换器流体箱,从而探索冷却/制热系统的架构。

对于液体回路系统,您可以对以下各项进行建模:存放储备流体的扩展流体箱;在电芯附近引导工作流体的冷板;具有泵、流路径和阀门的电机驱动循环系统;以及不同类型的热交换器,例如有线加热器或散热器。

在创建冷却/加热系统模型后,您可以运行仿真,通过探索组件选型和系统参数来细化设计,以及满足散热和功耗等要求。

电动汽车电池冷却系统原理图。

使用 Simulink 和 Simscape 创建的电动汽车 (EV) 电池的主动液体回路冷却/加热系统模型。

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

Simulink 冷却剂控制系统模型。

冷却剂控制系统的 Simulink 模型,该控制系统根据电芯之间的温度以及环境温度计算流速。

关键要点

  • 通过将电芯组合成具有热效应的模块构建电池包级热模型。
  • 使用预置的冷却板模块。
  • 使用各种工作流体构建冷却/加热系统模型。
  • 仿真极端温度条件以针对“假设”场景进行设计。
  • 进行案例研究以评估不同设计方案的热影响。
  • 通过建模和仿真执行组件选择和组件选型。

电池热管理系统设计

Mahindra Electric 使用系统级仿真来优化电动汽车的电池热管理系统

小节

电池管理系统算法

设计良好的电池管理系统 (BMS) 可确保在各种充放电和环境条件下实现最优性能、安全运行和最长使用寿命。使用 Simulink 和 Simscape,您能够深入了解电池包的动态行为,探索软件架构,测试各种运行工况并尽早开始硬件测试,从而减少设计错误。工程师可以使用 Simscape Battery 中的内置 BMS 控制模块来评估设计的电池包性能,开发热管理系统,并运行系统级仿真。

为了实现这些目标,BMS 需带有控制电池包行为和性能的算法。

电池管理系统组件图。

电池管理系统的功能。

精确的电池模型对于开发荷电状态 (SOC) 估计算法至关重要。开路电压 (OCV) 测量和电流积分(库仑计数)等传统 SOC 估计方法在某些情况下相当精确。但是,估计具有平面 OCV-SOC 放电特征的现代化学电池的 SOC 需要使用不同的方法。实践证明,扩展卡尔曼滤波器 (EKF) 和无迹卡尔曼滤波器 (UKF) 方法能在合理的计算工作量前提下提供精确的结果。

Simscape Battery 包含三个 SOC 估计器:库仑计数自适应卡尔曼滤波器以及卡尔曼滤波器。与卡尔曼滤波器 SOC 估计器相比,自适应卡尔曼滤波器 SOC 估计器多出一个终端电阻作为状态。自适应卡尔曼滤波器 SOC 估计器和卡尔曼滤波器 SOC 估计器都可以选择 EKF 或 UKF 来开发用于估计 SOC 的观测器。此类观测器通常包括一个非线性系统(电池)的模型和一个递归算法。该模型使用从电芯测得的电流和电压作为输入,该算法根据一个两步式预测/更新过程来计算系统(其中包括 SOC)的内部状态。

实际荷电状态与估计荷电状态百分比的图,x 轴表示时间,y 轴表示荷电状态。

实际 SOC 和由 Simscape Battery 提供的使用 EKF 估计的 SOC

与卡尔曼滤波器相比,使用神经网络来开发 SOC 估计器不需要关于电池或其非线性行为的大量信息,而是使用电流、电压和温度数据来训练网络并给出 SOC 作为响应。

显示输入、隐藏层和输出的神经网络图。

使用温度、电压和电流计算 SOC 的前馈神经网络。

关键要点

如何使用深度学习估计电池荷电状态

所有电池,包括在出厂时符合性能规格的电池,都会由于使用寿命和充放电循环导致性能会随着时间而降低,表现为储能会逐渐损失,同时内部电阻增加。后者的测量相对简单,需要的时间也短。但前者则需要完整的充电或放电偏移来进行精确计算,而这并不始终可行。此项挑战导致健康状态 (SOH) 估计越来越受关注,从而带来了自适应卡尔曼滤波器公式的增强。该公式现已不只包括状态,还包括电池参数。精确估计瞬时内部电阻对于 BMS 建立功率限制非常有帮助。

三张图显示随时间变化的实际和估计的荷电状态百分比、终端电阻和健康状态。

在 Simscape Battery 中使用自适应卡尔曼滤波器的电池 SOH 估计

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

关键要点

  • Simscape Battery 提供使用卡尔曼滤波器的 SOH 估计器模块。

电动汽车应用中的健康和老化锂电池的基于模型的参数识别

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

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

比较两个电芯的荷电状态随时间变化的图。

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

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

图中显示 CC-CV 算法在恒流和恒压模式下的工作情况。

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

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

电池监控模型图。

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

关键要点

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

Simulink 中的电池管理系统开发

小节

桌面仿真

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

执行逼真仿真的功能是开发 BMS 控制软件的核心,而这始于精确的电池包模型。电池的设计通常会使用有限元分析 (FEA) 模型来模拟电池的物理配置并捕获其电热化学属性。虽然这些模型非常适合设计和优化电池包的化学和几何结构,但控制工程师需要更加适合系统级设计和软件开发的模型。

“我们的许多初始电池模型是凭经验设计的,采用了理想电压源和固定阻抗。现在我们使用的是复杂得多的第一原理模型,因此[我们]对电池这种电化学装置有了非常有价值的见解。我们使用 Simulink 构建了高级等效电路模型,可以使用不同的荷电状态、放电速率、温度和老化级别预测性能。”

“我们使用类似的方法执行了安全关键型仿真,预测电池内部的冷却性能,确保电池包不会过热。要捕获所有多域物理、化学和热传递效应通常需要有限元分析工具和很大工作量。使用 MathWorks 工具,我们能够执行分析并获得见解,从而推动了电池技术的巨大进步。”

关键要点

  • Simscape Battery 提供更精确的电池包模型。

在 Simulink 中开发 BMS 算法时,您可以使用等效电路模拟电芯的热电行为。等效电路通常由一个电压源、一个串联电阻和一个或多个并联电阻电容对组成。电压源提供开路电压,而其他组件对电池的内阻和时变行为建模。这些等效电路元件通常依赖于温度和荷电状态 (SOC)。这种依赖性对于每个电池的化学原理来说是独一无二的,因此需要根据对电芯执行的测量值来确定,而且电芯的类型必须与为其设计控制器的电芯相同。通过使用试验数据的模型相关性分析,您可以使用 Simulink 和 MATLAB 中的优化来参数化等效电路。

Simulink 截图,显示电池等效电路。

具有三个时间常量、内阻和开路电位的电池等效电路。

关键要点

  • 使用 Simulink 和 MATLAB 中的优化来参数化电芯的等效电路。

电池模型参数估计自动化

使用分层方法的电池模型参数估计:使用锂离子磷酸盐电池的示例

除了电池包模型以外,逼真的电池系统仿真还需要连接电池系统与电源和负载的电路组件的精确模型。Simscape Electrical 是 Simulink 的一个附加产品。它提供了装配完整电池系统电路所需的有源和无源电子元件(如用于电池平衡的模拟前端)的完整库。充电源可由直流电源(如光伏 (PV) 系统)组成,也可由经过整流的交流电源组成。

使用 Simulink 和 Simscape 进行系统级仿真时,您可以围绕电池构造复杂的充电源,在各种工况范围和故障条件下验证电池系统。电池包的负载也可采用类似的方法进行建模和仿真。例如,电池包可以通过逆变器连接到电动汽车 (EV) 中的永磁同步电动机 (PMSM)。利用仿真,您可以通过行驶工况改变 EV 的运行,并评估 BMS 能否有效应对不断变化的工况。

关键要点

  • 使用 Simulink 和 MATLAB 中的优化来参数化电芯的等效电路。

高压电池通过受控的三相逆变器向 IPMSM 供电

将桌面仿真集成到您的测试过程后,您可以编写并执行测试用例,运用电池系统检验所有可能的逻辑分支和闭环控制 - 这是进行硬件测试时很少见的一种覆盖级别。采用这种方法,仿真模型就可以看作是推动电池系统设计和测试的可执行规范。Simulink 提供的一系列功能支持通过桌面仿真进行测试,使您能够:

  • 将限制、容差、逻辑检查和时序条件等需求集成到模型中,并能将其追溯到原始设定
  • 构造复杂的基于仿真的测试序列,以执行功能、基线、等效性和背靠背测试
  • 跟踪行业标准指标,如决策、条件和修正条件/决策覆盖率 (MC/DC) 以及关系边界覆盖率
  • 生成测试输入以实现全面的模型覆盖率和自定义目标
  • 使用形式化方法来识别导致整数溢出、死逻辑和除以零的隐藏设计错误
电池管理系统算法的原理图。

在 Simulink 中建模的 BMS 算法和被控对象动态特性,包括电池包、接触器、逆变器和充电器。

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

小节

电池系统的实时仿真

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

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

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

借助实时仿真(包含快速原型设计和 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 微控制器上。

生成产品级代码