哈维尔·Gazzarri MathWorks
使用Simulink电池管理系统(BMS)模型和模拟算法金宝app®和州流®, 包括:
使用Coulomb计数,扩展卡尔曼滤波器和Unscented Kalman滤波器估计充电状态。
使用Simscape electric™开发的电池组对BMS算法进行验证,电池组使用RC元件数量可配置的等效电路表示电池。模型的等效电路结果通过参数估计与实验数据相关联。
在接下来的几分钟里,我将解释在Simulink中建模的BMS的主要组件。金宝app我们可以将该模型用于桌面模拟,例如,我们可以重现不同的使用周期和环境条件,以评估系统对潜在不安全条件的响应;例如,温度、电压或电流超出建议限制。
假设这款电池系统是电动车辆动力系的一部分。假设电池为75%充电,外部温度为15℃。在这些条件下,我们开始驾驶一段时间,然后停止并充电电池。最后,电池静坐,平衡循环踢进去。我们如何知道在这三个典型的使用阶段,电池组仍然在推荐的电气和热限制内?如果外部的温度是40℃而不是15℃,怎么办?如果初始充电状态如何是30%?是否将侵略性的驱动周期导致欠压局面?
模型允许车辆设计师在模拟中测试所有这些情况,而不会冒险对真正的电池造成损坏。
这是Simulink中的BMS模型。金宝app电池及其管理系统位于此模型中。
在左上角,我们定义了不同的驱动场景,它们决定了由左下角的子系统提供的测试序列。右上方的绿色指示灯表示是否有故障;例如,任何电池都达到了超温状态。
系统本身具有表示BMS ECU的模型引用,其各种监视和控制算法,其连接到具有电池组和相关电路和外围设备的表示的块。该型号包含两个版本的电池组:一个小型带有6个单元系列的小型和较大的16模块包,每个模块包含6个单元系列串。在所有情况下,我们都只有一个并行字符串。我们分别致电这些架构6S-1P和96S-1P包。
让我们从电池组及其外围设备的描述开始。
左侧的变体子系统包含前面提到的两个版本的电池组:具有6个单元的小一个,大一个,具有96个细胞。让我们看看小的一张。该电池组是在Simscape中建模的,其中组件颜色告诉我们其物理域。蓝色表示电气和橙色表示热。我们可以看到6个电池串联连接,可以彼此交换热量。热布局是不对称的,在一侧绝缘的底部的细胞数6(因此没有热量在该方向上散发),并且在暴露于外部大气的顶部处的电池1,因此通过对流去除热量。这种不对称性将负责6个细胞之间的显着温差。
是什么使得这种细胞代表真实李离子化学;说,Nimnco?嗯,在每个细胞内部有一个等效电路,其拓扑和参数应该给我一个相当于我会在实验观察的反应。等效电路组件应包括温度,SOC和可能的老化依赖性。如果您对单元格表征感兴趣,请在我们的网站上提供有关如何在电池单元上执行此参数估计的详细帐户,请参阅电池造型。
在电池组旁边有一个具有被动平衡电路的子系统。由来自BMS算法的平衡逻辑命令,当它们的相应电池需要局部放电以降低其SoC时,这些开关选择性地关闭。
保持电池单元模块的平衡允许我更好地利用其总存储容量,因为我们将在几分钟内看到。
植物模型的另一个元件是该组充电器和逆变器接触器电路。在将电池组连接到充电器之前,重要的是要通过电阻预先连接它们,以防止过高的电流冲入包装并可能损坏它。此预连接需要一个特殊的序列,我们将在描述BMS算法时显示。
最后,电池工厂的最后一部分是充电器和负载,它们都在这里简单地表示为遵循来自模型顶层源块的充电和驱动概要的当前源。
BMS ALGO.
现在让我们关注BMS算法。电池管理系统的这一部分监控、保护、限制和报告来自电池组的测量结果。
左侧的子系统使用各个电池电压和温度来计算最大允许充电和放电电流水平。当电池处于低SOC时,其电压低,并且重要的是防止电池提供大量电流,因为这将导致可能低于电池制造商指定的截止电压的过大电压降。将模块中的最小电池电压与该较低阈值进行比较并将其除以该单元计算的最大内部电阻值,我们计算基于电压的电流阈值。
我们还知道,当温度过高或过低时,限制当前的输送或摄入是很重要的。使用具有上升或下降s形剖面的查找表,我们可以根据温度指定电流阈值,并调节允许的电流传递。这是非常重要的,以避免电池材料的物理损伤,无论是在高温充放电期间,还是在低温充电期间,因为这样做低于冰点温度是不允许的。
然后将这两个阈值彼此进行比较,最低的是电流限制。
标有“状态机”的子系统定义了BMS的主要运行状态。这里使用Stateflow表示,这是一个Simulink附加工具箱,用于设计状态逻辑金宝app。在Stateflow中,我们使用组件来表示活动或非活动的状态,这取决于条件,我们在状态中编写的文本是在进入状态时执行的代码,在进入状态期间执行的代码,或者没有退出状态的代码。
状态机有四个并行状态(并行意味着它们可以同时处于活动状态):
SOC估计
在我们需要停止补充之前,知道我们能够驾驶我们的车的时间更长时间取决于电池SOC的准确估计。这具有重要意义,并且比传统车辆燃料表设计的情况更具挑战性,其中测量是直接的。在电池系统中,我们不衡量充电状态,这不是直接可测量的;我们实际上衡量了其他事情,并希望与我们使用SoC衡量的东西。
第三子系统包含三种不同的充电质量方法。在实践中,BMS开发人员只会选择其中一个,但在这里我们展示了所有三个来说明他们的个人优点和限制。第一种方法是知道库仑计数,包括集成进入的电流并离开小区以跟踪电荷状态随时间。这种方法的好处是其简单性和非常低的计算成本。它的缺点包括电流传感器误差的累积,并且由于缺少电压测量的反馈而无法从错误的初始条件中恢复。
这里实现的第二和第三SOC估计方法是无名和扩展的卡尔曼滤波器。两者都是非线性卡尔曼滤波器的变化,并且它们依赖于单位单元的模型来预测由电流刺激产生的终端电压,通过将该预测与终端电压的测量进行比较来估计内部小区状态(其中的SOC)。EKF和UKF之间的选择通常是基于系统非线性的严重性。在这种情况下,唯一存在的非线性是由OCV-Soc关系给出的,并且它是一种温和的,因此预计EKF应该提供足够的结果。
卡尔曼滤波算法包括两部分:状态更新和测量更新。状态更新基于之前的状态值和输入预测当前状态,测量更新使用新获得的数据修正该预测。我们使用的电池模型作为一个MATLAB脚本实现,对应于我们用来模拟电池组的等效电路。
需要考虑的下一个任务是平衡。重要的是要使单个电池单元保持在相同的充电状态,否则具有最高SOC级别的单元将限制我们可以进入包装的充电量,使系统未充分利用。该状态逻辑计算最高和最低电池电压之间的电压差,并根据该差异是否超过设计值,激活被动平衡。BALACE命令是一个布尔矢量,指示要激活的漏洞电阻,以便小区SOC慢慢减少。用所有小区进行这一点,但是SoC最低的一个,最终使所有SOC的融合在规定的公差中。
现在让我们再看看模拟结果。
在该驱动充电平衡序列示例中,我们首先观察各个电池电压随电流进出而变化。在模拟开始时,它们略有不同,因为我们用轻微的SOC不平衡初始化模型。在模拟结束时,由于平衡,值会聚彼此相吻合。
当前怎么样?看看充电期。在恒定电流阶段期间,电流在电荷期间被降低,因为与规定的4.4V限制相比,最大模块电池电压足够高,所以过高的电流可能会驱动超出阈值的电压,显着限制电池的寿命。由于我们根据电池单元查找表内的最大电阻值计算电流限制,因此我们是保守的。较少保守的电流限制计算可以使用估计的SOC和温度的实际电池电阻电阻,因为此信息在所有操作条件下都提供。
温度的痕迹显示最热和最冷的细胞之间有显著的差异。其原因主要是模块布局在热行为上的不对称。电池6比电池1热得多因为它的一侧是绝热的。即使在模拟过程中所达到的最高温度并不直接影响到安全性,这里所展示的温差最终将导致细胞6比细胞1降解得更快,导致细胞条件的不均匀。因此,需要主动的热管理,以保持温差在几摄氏度内。
右上方的图表显示了同一电池的三个SOC估算轨迹,每个轨迹采用不同的方法进行估算。黄色表示库仑计数,蓝色表示UKF,橙色表示EKF。在该仿真中,初始SOC为75%,但初始SOC估计器为80%,以评估其恢复能力。很明显,CC从不这样做,因为它没有办法意识到它是错误的,由于缺乏电压信息。另一方面,两种KF算法都在模拟时间的第一个小时内从初始误差中恢复,EKF的表现优于UKF。
最后,另外两个范围指示BMS状态和六个平衡命令信号中的每一个。
综上所述,我们利用Simulink、Stateflow金宝app、Simscape和Control System工具箱进行建模和仿真,设计了电池管理系统。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳的网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。
本网站使用cookie来改善您的用户体验,个性化内容和广告,并分析网站流量。通过继续使用本网站,您同意我们使用cookie。请看我们隐私政策要了解有关cookie的更多信息以及如何更改设置。