安时积分法计算soc程序_BMS(电池管理系统)第四课——核心!!!SOC算法开发...

SOC基本定义:

69180cff48fab082bc3594f2760ce861.png
  • Qmax- 电池最大允许充放电容量,可理解为额定容量*SOH
  • Ieff - 充放电电流或自放电电流,充电为负
  • η - 充放电的库伦效率
d969791e91a0709459ad714770e46c02.png

目前行业算法方案列表如下,其中安时积分、开路电压、人工神经网络、卡尔曼滤波四中方案通用性比较高,重点介绍一下

98c6436d32c218ae5e25ca169b329396.png

OCV(Open Circuit Voltage)开路电压

先说明一下开路电压的概念,从下面两幅大家可以看出,OCV在实际应用中犹如一把尺子一样,这把尺子的有效程序在于它的斜率是否够大,斜率越大能够表征的容量差异性就越大,计算SOC就越容易。但是如图所示电池放电曲线有很长的平台期,斜率很小尤其图一的磷酸铁锂电池70%左右的时间电池电压平台几乎没有变化。而且受放电倍率和温度影响比较大,所以OCV曲线主要用来修正,标定。只用这一种方案来计算SOC的话误差会很大。

ebe38b5adf10c5fec4147e5aa0989691.png
7163a00dc688eeb193311af3e4e73d09.png

行业主流算法:AH(安时积分)+EKF(卡尔曼滤波)算法

SOC算不准的原因

  • 受限于传感器精度
  • 电磁干扰的影响

EKF算法的优势

  • 适用于在线测量
  • 有助于初值修正
  • 有助于克服传感器精度问题(多次观察)
  • 有助于电磁干扰带来的白噪声
  • 算法的复杂度并不高,实时性好

模型的要求

  • 属于外特性模型
  • 可以是一种等效模型
  • 所建立的模型必须具有较强的实用性

PNGV等效电路模型

等效电路模型是以电池工作原理为基础,使用电阻、电容、恒压源等电路元器件组成电路网络模拟电池动态特性建立模型其优势在于:

  • 对于电池的不同工作状态有很好的适用性;
  • 可推导出模型的状态空间方程,用于定量分析;
  • 在模型中考虑温度的影响;

一阶模型

367d7fa376fe36d4a5dd3e3caf0606a9.png

二阶模型

f03fb5db8732a8388756453fb523d19e.png

三阶模型

7081579c64b7479b8ab20684518e552d.png

阶数越高越精确但并不是越高越好,阶数无限增大会影响系统的快速响应。我们一般选择二阶模型用来模拟电池特性是综合考量比较合适的方案;

77f0187db74f1ab37b2ddf6d0ece9d46.png

下面以实际案列来检验一下我们搭建的算法模型

0e6c11ac47e2d6c25f074a14de802f9d.png

电池(8Ah,96节串联)的电流、电压数据的采样周期为30ms,温度为室温;第一阶段从开始持续到大约5500s处,第二阶段从5500s~6500s,第三阶段从6500s至最后,总测试时间约2.5小时。

EKF计算结果: (SOC1) 47.2%

设备计算结果: (SOC2) 38.7%

真值(OCV) : 48.3%

相对误差: 2.3%

EKF相关参数获取方法简介说明

1.SOC-OCV 曲线获取

  • 基础测试

在室温( 22±3℃)条件下,对新电池以1C电流大小进行试验,实验过程中,通过精密电流测试

装置进行电流积分,计算得到电池的容量。试验中SOC每变化5%,将电池静置3小时,测得稳态

开路电压,并绘制得到电池的SOC-OCV关系。

  • 条件测试

在不同的温度条件下( -20,0,10,40℃)对不同SOH状态的电池(容量衰减到原容量的90%, 80%,70%)的电池,重复上述实验。

注:由于目前还没有统一的SOC-OCV测试标准,不同电池厂商的测试方法可能不同。SOC-OCV曲线簇变化维度可以选择两个,实验温度T和寿命状态SOH.根据验数据, 应用电池的工作环境和健康状态进行自身SOC-OCV特征曲线的修正

af84abacafd4eed2e7a3d80e4b377e1e.png

2.参数R0,R1C1,R2C2的获取

HPPC实验标准,可参照FreedomCAR_Power_Assist_BatteryTest Manual 进行测试(参见下图)

2d8583a84127808515d57f4fae87c761.png

其中放电电流为1倍的max dch ,充电电流为0.75倍的maxch ,间隔放电电流为1C1。然后可以在不同温度和SOH状态下分别进行HPPC测试,得出多组MAP实验结果。

基于HPPC实验,可得一系列的在不同温度、不同寿命状态下、在不同SOC工作点时的电池脉冲实验数据。依据二阶RC锂电池模型和实验数据,可以用最小二乘等方法获取电池在不同温度和SOH条件下的R0、 R1C1、 R2C2等参数。

2f67151475b7d5667f689c35454269d3.png

EKF算法实施的其他细节

关于初值

  1. 递归算法对初值并不十分敏感
  2. 状态值除SOC外,其他可以设为0
  3. 噪声的协方差初值需要基于电流/电压精度及模型精度
  4. 噪声最好在一个数量级,避免顾此失彼
  5. 噪声初值需要通过充分验证,可标定修正
  6. SOC-OCV曲线可以考虑充放电磁滞,及温度、SOH的影响(电芯性能)

EKF误差原因

  1. SOC-OCV曲线准确度,适当考虑影响因子
  2. 模型中的等效参数设置不准确
  3. 电压电流精度误差
  4. 噪声中有非白噪声部分

建议

  1. SOC-OCV曲线测试+修正,并前期验证可行性
  2. 模型参数前期仿真充分验证,并老化修正,实车标定
  3. 电压电流精度保证
8adf48eab4017bf2adfcc1641e2ed3ca.png
0b45676580f16ad6167b431e8d520e5f.png
  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是在MATLAB中使用安时积分法进行BMS SOC仿真的详细步骤: 1. 定义电池模型:根据电池的实际情况,选择一个适当的电池模型,例如Thevenin等效电路模型。 2. 确定初始条件:需要确定初始时刻t0和初始SOCSOC0。 3. 设置时间步长:需要确定时间步长h,通常需要进行多次仿真来找到一个合适的时间步长。 4. 计算预测值:使用安时积分法计算公式,计算下一时刻的预测SOCSOC_pred。 5. 更新当前SOC值:使用预测SOCSOC_pred,更新当前SOCSOC_curr。 6. 更新时间:将时间t增加一个时间步长h,即t = t + h。 7. 重复步骤4-6,直到仿真结束。 8. 可视化结果:将仿真结果可视化,通常是将SOC随时间的变化进行绘图。 下面是一个MATLAB代码示例,用于求解BMS SOC的变化,假设电池使用Thevenin等效电路模型,电池额定容量为100Ah,电池内阻为0.02Ω,负载电阻为0.5Ω,电池电压范围为10V到15V,初始SOC为50%,时间范围为0到1000s,时间步长为1s: ``` % 定义电池模型参数 C = 100; % 电池额定容量,Ah R = 0.02; % 电池内阻,Ω RL = 0.5; % 负载电阻,Ω Vmin = 10; % 电池最小电压,V Vmax = 15; % 电池最大电压,V SOCmin = 0; % 电池最小SOC SOCmax = 1; % 电池最大SOC % 确定初始条件 t0 = 0; SOC0 = 0.5; % 设置时间步长 h = 1; % 初始化SOC和时间 SOC = SOC0; t = t0; % 计算预测值、更新当前SOC值和时间,重复仿真 while t < 1000 Vbatt = Vmin + (Vmax - Vmin) * SOC; Ibatt = (Vbatt - RL * SOC) / R; SOC_pred = SOC - h/(3600*C) * Ibatt; SOC_curr = max(min(SOC_pred, SOCmax), SOCmin); SOC = SOC_curr; t = t + h; end % 可视化结果 plot(0:h:1000, SOC) xlabel('Time (s)') ylabel('SOC') title('Numerical Simulation of Battery SOC using ODE45') ``` 希望这个示例可以帮助你理解在MATLAB中使用安时积分法进行BMS SOC仿真的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值