利用Simulink对电池管理系统(BMS)的算法进行建模和仿真万博1manbetx®和Stateflow®,包括:
利用库仑计数、扩展卡尔曼滤波和无气味卡尔曼滤波对电荷状态进行估计。
BMS算法针对Simscape electric™开发的电池组进行了验证,电池组使用可配置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个细胞之间的显著温差。
是什么让这个电池代表了现实生活中的锂离子化学;说,NiMnCo ?每个细胞内部都有一个等效电路,它的拓扑结构和参数应该给我一个与我在实验中观察到的响应相当的响应。等效电路元件应包括温度、SOC和可能的老化相关性。如果您对电池特性感兴趣,可以在我们的网站上搜索电池建模,了解如何对电池进行参数估计的详细说明。
旁边的电池组有一个子系统与被动平衡电路。在BMS算法的平衡逻辑的指挥下,当相应的电池需要局部放电以降低其SOC时,这些开关有选择地关闭。
保持电池模块的平衡可以让我更好地利用它的总存储容量,我们将在几分钟后看到。
工厂模型的另一个元素是充电器和逆变器接触器电路的集合。在将电池组连接到充电器之前,通过一个电阻预先连接它们是很重要的,以防止过大的电流冲进电池组,并可能损坏它。这种预连接需要一个特殊的序列,我们将在描述BMS算法时展示这个序列。
最后,电池装置的最后一部分是充电器和负载,两者在这里都简单地表示为电流源,从模型顶层的电源块中命令遵循充电和驱动轮廓。
百时美施贵宝算法
现在让我们关注BMS算法。这部分电池管理系统监控、保护、限制和报告来自电池组的测量数据。
左边的子系统使用单个电池电压和温度来计算最大允许充放电电流水平。当电池处于低SOC时,其电压较低,防止电池输出大量电流是很重要的,因为这将导致过大的电压降,可能会低于电池制造商指定的截止电压。将模块中的最小电池电压与这个较低的阈值进行比较,并将其除以该电池计算的最大内阻值,我们计算出基于电压的电流阈值。
我们还知道,当温度过高或过低时,限制电流的传递或输入是很重要的。使用具有上升或下降s型轮廓的查找表,我们可以根据温度指定电流阈值并调节允许的电流传递。这对于避免在充电和放电过程中的高温和充电过程中的低温下对电池材料的物理损伤是非常重要的,因为在冰点以下的温度是不允许的。
然后将这两个阈值相互比较,最低的一个成为当前的极限。
标记为State Machine的子系统定义BMS的主要操作状态。这里使用Stateflow表示,Stateflow是一个用于设计状态逻辑的Simul万博1manbetxink附加工具箱。在Stateflow中,我们使用组件表示根据条件激活或不激活的状态,我们在状态中编写的文本是在进入状态时、在退出状态时或不退出状态时执行的代码。
状态机有四个并行状态(并行意味着它们可以同时处于活动状态):
SOC估计
要知道在我们需要停车充电之前,我们还能开多久的车,取决于对电池SOC的准确估计。这是非常重要的,它比传统的车辆燃料表设计更具挑战性,在传统的情况下,测量是直接的。在电池系统中,我们不测量充电状态,这是不能直接测量的;我们实际上测量的是其他东西,并希望将我们测量的东西与SOC联系起来。
第三个子系统包含三种不同的荷电状态估计方法。在实践中,BMS开发人员只会选择其中的一个,但是在这里我们将列出所有三个来说明它们各自的优点和局限性。第一种方法被称为库仑计数,包括对进入和离开电池的电流进行积分,以跟踪随时间的电荷状态。这种方法的一个优点是它的简单性和非常低的计算成本。它的缺点包括电流传感器误差的累积,以及由于缺乏电压测量的反馈而无法从错误的初始条件中恢复。
第二种和第三种SOC估计方法是Unscented和扩展卡尔曼滤波器。两者都是非线性卡尔曼滤波器的变体,它们依赖于单元电池的模型来预测由电流刺激产生的终端电压,通过将预测结果与终端电压的测量结果进行比较来估计内部电池状态(其中的SOC)。EKF和UKF的选择通常是根据系统非线性的严重程度来决定的。在这种情况下,唯一的非线性是由OCV-SOC关系给出的,而且它是一个轻微的非线性,因此预计EKF应该给出足够的结果。
卡尔曼滤波算法包括状态更新和测量更新两部分。状态更新基于以前的状态值和输入预测当前状态,测量更新使用新获得的数据纠正这一预测。我们使用的电池模型是用MATLAB脚本实现的,它对应于我们用来模拟电池组的等效电路。
下一个要考虑的任务是平衡。重要的是要保持单个电池电池大致处于相同的充电状态,否则SOC水平最高的电池将限制我们可以放入电池组的电量,使系统未充分利用。该状态逻辑计算最高和最低电池电压之间的电压差,并基于此差异是否超过设计值,激活被动平衡。Balance命令是一个布尔向量,指示要激活哪个输出电阻,以便使小区SOC缓慢降低。对除SOC最低的细胞外的所有细胞都这样做,最终使所有的SOC在规定的容忍范围内收敛。
现在让我们再看看模拟结果。
在这个驱动-充电-平衡序列的例子中,我们首先观察到由于电流进出而引起的单个电池电压的变化。在模拟开始时,它们略有不同,因为我们初始化模型时带有轻微的SOC不平衡。在模拟接近尾声时,由于平衡的结果,这些值会彼此收敛。
目前怎么样?看看充电周期。在恒流阶段,电流在充电过程中被降级,因为与规定的4.4V限制相比,最大模块电池电压足够高,过高的电流可能驱动电压超过阈值,显著限制电池的寿命。由于我们是根据电池查找表中的最大电阻值计算电流限制,所以我们是保守的。一个不太保守的电流限制计算可以使用在估计的SOC和温度下的实际电池电阻,因为这个信息在所有操作条件下都是可用的。
温度迹线显示在最热和最冷的细胞之间有显著的差异。究其原因,主要是模块布局在热性能方面的不对称。6号牢房比1号牢房热得多因为它的一边是隔热的。即使在模拟过程中达到的最高温度对安全没有直接影响,这里显示的温差最终将导致单元6比单元1的降解速度快得多,从而导致单元条件的不均匀。因此需要积极的热管理,将热差保持在几摄氏度之内。
右上方的图表显示了同一电池单元的三个SOC估计轨迹,每个轨迹使用不同的方法执行。黄色代表库仑计数,蓝色代表UKF,橙色代表EKF。在此模拟中,初始SOC为75%,但SOC估计器初始化为80%,以评估其恢复能力。显然,CC从来没有这样做,因为它没有办法意识到它是错误的,因为缺乏电压信息。另一方面,两种KF算法都能在模拟时间的第一个小时内从初始错误中恢复,EKF优于UKF。
最后,另外两个作用域指示BMS状态和6个balance命令信号中的每一个。
总之,我们已经使用Simulink, Stateflo万博1manbetxw, Simscape和控制系统工具箱设计了一个使用建模和仿真的电池管理系统。
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。