哈维尔·Gazzarri MathWorks
使用仿真模型和用于电池管理系统模拟算法(BMS)万博1manbetx®和Stateflow®, 包含:
充电状态是利用库仑计数,扩展卡尔曼滤波和无迹卡尔曼滤波估计。
使用Simscape Electrical™开发的电池组验证了BMS算法,该电池组使用可配置数量RC元件的等效电路表示电池单元。通过参数估计得到模型与实验数据的等效电路结果。
在接下来的几分钟中,我将解释在Simulink中建模的BMS的主要组件。万博1manbetx我们可以将此模型用于桌面模拟,例如,我们可以重现不同的使用周期和环境条件,以评估系统对潜在不安全条件的响应;例如,温度、电压或电流超出推荐范围。
比方说,这种电池系统是电动车动力总成的一部分。说电池被充电75%,外温为15℃。在这些条件下,我们开始驾驶了一段时间,然后停止并为电池充电。最后,电池是在休息和在平衡循环踢。我们怎么知道在这三个典型的使用阶段的是,电池组内的遗体推荐的电气和热限制?如果外面的温度是40℃什么,而不是15℃?怎么样,如果充电的初始状态是30%?将积极的驱动循环导致欠压情况?
模型允许车辆设计测试中模拟这些情况,而不用担心造成真正的电池损坏。
这是在Simulink的模型BMS。万博1manbetx电池及其管理系统是这款机型的参考里面。
在左上角,我们定义了不同的驾驶场景,这些场景决定了左下角子系统提供的测试顺序。右上角的绿灯表示是否有故障;例如,任何细胞都达到了超温状态。
系统本身具有表示与它的各种监测和控制算法,连接到一个块与所述电池组的表示和相关联的电路和外围设备的BMS ECU的模型参考。此模型包含该电池组的两个版本:一个小的只有6细胞系列,和更大的16-模块包,含有6芯串联串的每个模块。在任何情况下,我们的模型只是一个并串。我们分别称这些架构6S-1P和96S-1P包。
让我们与电池组及其周边的描述开始。
左边的变体子系统包含前面提到的电池组的两个版本:小一个与6个细胞和大一个具有96个小区。让我们来看看小之一。该电池组中的Simscape,其中组件的颜色告诉我们它的物理域建模。蓝色表示电气和橙色表示热。我们可以看到,6个串联连接,并可以相互进行热交换。热布局是不对称的,与绝缘一侧的底电池号6(因此没有热量可以在该方向上消散)中,在暴露于外部气氛中的顶部电池1,因此通过对流摆脱的热量。这种不对称性将负责的6个细胞之间的显著温度差。
是什么让这个小区代表现实生活中的锂离子化学的;说,工作气压?那么,每个细胞内有一个等效电路,其拓扑结构和参数应该给我一个回应相当于一个我会观察实验。的等效电路组件应该包括温度,SOC,和可能的老化依赖性。如果你有兴趣在细胞特征,如何对电池进行该参数估计详细介绍,请访问我们的网站,寻找电池建模。
旁边的电池组有一个与被动平衡电路的子系统。通过从BMS算法的平衡逻辑指令,这些开关当其对应的小区需要的部分放电,以降低它的SOC选择性地关闭。
在平衡保持各电池单元模块可以让我更好地利用其总存储容量,我们将在几分钟内看到。
植物模型的另一元件是一组充电器和逆变器接触器电路。在此之前的电池组连接到充电器,它通过一个电阻与预连接它们,以防止从冲进包和潜在地损坏它的过高的电流是重要的。这种预连接需要一个特殊的序列,当我们描述BMS算法,我们将展示。
最后,电池厂的最后一块是充电器和负载,两者都在这里简单地表示为电流源命令遵循充电和驱动配置文件从源块在模型的顶层。
BMS ALGO
现在让我们关注一下BMS算法。电池管理系统的这一部分监视、保护、限制和报告来自电池组的测量数据。
左侧用途单个电池电压和温度的子系统来计算最大可允许的充电和放电电流的水平。当细胞是在低SOC,其电压低,并且,以防止该单元将电流传送的大量的,因为这会导致可能潜在地由电池制造商所指定的截止电压低于过大的电压降是很重要。最小电池电压对这种较低的阈值的模块中的比较,并通过该单元计算的最大内部电阻值除以它,我们计算基于电压的电流阈值。
我们也知道,它限制电流输送或进时温度过高或过低是很重要的。使用查找表具有上升或下降的S-形的轮廓,我们可以指定基于温度的电流阈值和调节容许电流输送。这是非常重要的,以避免,因为这样做以下冻结温度不允许在高温充电和放电期间,在充电期间低温下的电池材料的物理损坏。
然后,这两个阈值相对于彼此进行比较,并且最低的成为当前限制。
标记为State Machine的子系统定义了BMS的主要操作状态。这里使用Stateflow表示它,Stateflow是一个Simulink插件工具箱万博1manbetx,用于设计状态逻辑。在Stateflow中,我们使用表示状态的组件,这些状态是活动的还是不活动的,这取决于条件,我们在状态中编写的文本是在状态进入、期间或没有退出时执行的代码。
状态机有四个并行的状态(并行意味着它们可以同时被激活):
SOC估算
知道我们会多久能带动我们的车前,我们需要停下来充电取决于电池SOC的准确估计。这是非常重要的,它比常规的车用燃料测量仪设计的情况下,这里的测量是直接的是更大的挑战。在电池系统中,我们不测量电荷,这是不能直接测量的状态;我们实际测量别的东西,希望有关我们与SOC测量。
第三个子系统,其中包括状态,充电率估计三种不同的方法。在实践中,BMS开发者只能选择其中的一种,但在这里,我们提出三个来说明其各自的优点和局限性。第一种方法,知道的库仑计数,包括进入和离开小区跟踪充电状态随时间的电流进行积分的。这种方法的好处是它的简单性和非常低的计算成本。其缺点包括电流传感器误差的积累和不能把由于缺乏来自电压测量反馈错误的初始状态中恢复。
这里采用的第二和第三SOC估算方法是无味和扩展卡尔曼滤波器。两者都是非线性卡尔曼滤波器的变型和它们依赖于单元电池的模型通过该预测靠端子电压的测量进行比较来预测从当前的刺激而产生的端子电压,估计所述内部单元状态(它们之间的SOC)。EKF和UKF之间的选择是基于系统的非线性的严重程度通常用。在这种情况下,唯一的非线性目前由OCV-SOC关系给出,它是一种温和的,所以预计EKF应该给予适当的结果。
卡尔曼滤波算法由状态更新和测量更新两部分组成。状态更新根据以前的状态值和输入来预测当前状态,而度量更新使用新获得的数据纠正该预测。我们使用的电池模型是作为MATLAB脚本实现的,它对应于我们用来模拟电池组的等效电路。
接下来的任务要考虑的是平衡。它保持单个电池单元大致在相同的充电状态,否则最高SOC水平的电池将限制电荷,我们可以放入包,使未充分利用系统中的量是很重要的。该状态下的逻辑计算的最高和最低电池电压,并且基于该差是否超过设计值之间的电压差,激活被动平衡。平衡命令是一个布尔矢量,指示要激活的泄流电阻,以使细胞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万博1manbetx、Simscape和Control System工具箱,通过建模和仿真来设计电池管理系统。