This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ40Z80: SOC与剩余容量(RemCap)下降过快,或直接跳0,满充容量(FullChgCap)偏低

Part Number: BQ40Z80
Other Parts Discussed in Thread: BQSTUDIO

我司使用BQ40Z80设计了一款6串电池的BMS系统,满充容量3300mAh。

SOC以及剩余容量等完全依靠BQ40Z80计算,MCU不加入任何补偿或修正。

近期我们在应用现场发现4例电池的SOC和剩余容量计算有出现大概2种问题:

1. 初始剩余容量偏低(正常3300左右,问题电池1000不到);

2. SOC和剩余容量下降明显过快,甚至直接跳0。

电池数据会上报云端,云端数据截图如下(这些数据直接来源于BQ40Z80的计算,不会有其他补偿或修正)

说明:我们一台设备配备两块电池,所以下面图中都是三条曲线(A包、B包、双包)。

我们将问题电池拿回实验室测试,部分电池无法复现问题,可以复现的电池,用bqstudio抓取数据如下:

编号440电池-电量计监控数据.rar

注意到440B在放电时会复现上面的问题,比如说SOC和剩余容量下降过快,满充容量后期直接跳低(如下图)。

以上,烦请帮忙分析。另外我有一些其他问题:

1. bqstudio中显示的,DOD0、DODEOC、RawDOD的单位是什么,手册中没有写明?

2. 注意到DOD0、DODEOC、RawDOD在放电过程中均不会改变,这三个值分别代表什么意义,什么作用?

  • 您好我们已收到您的问题并升级处理,如有答复将尽快回复您。谢谢!

  • 1. bqstudio中显示的,DOD0、DODEOC、RawDOD的单位是什么,手册中没有写明?

    这些参数没有单位。 许多 DOD 值只是无符号 14 位寄存器内的一个数字,其中 0 表示充满电、 2^14 表示空。

    注意到DOD0、DODEOC、RawDOD在放电过程中均不会改变,这三个值分别代表什么意义,什么作用?

    DOD0 是放电深度、DODEOC 是充电结束时的放电深度、RawDOD 与 DOD0 非常相似,但RawDOD仅基于 CHEM ID。

    DOD 参数用于各种计算,例如 Qmax 更新、设置电池平衡时间等。 通常电池进行休息后,会进行 DOD 更新。 这是 4uV/s 标准。 在充电结束时,DODEOC 被置位,该值将被写入到 DOD0。 当电量监测计在充电后退出弛张状态时,也会更新 OD0。

    我们建议留出一个用于更新 Qmax 和 DOD 的休息期。

    希望以上回答对您有所帮助,如有其他问题请随时联系我们。

  • DOD的问题我明白了,但是SOC和剩余容量跳变的问题还是没有解决。

    我们最近又发现了3个新的电池出现了这种问题,似乎越老的电池越容易出现这种问题。

  • 已帮您把新的问题反馈给工程师,如有新的消息会尽快给到您。

  • 从log files来看,仪表有时会有负载过弱,因此 FCC 会大幅反弹,我们认为这可能是SOC异常行为的原因。

    负载电流变化幅度很大,通常会在 -2600mA 、 -1600mA 、 -200mA 之间跳转,并且在很短的时间内进入充电区域 (正电流) ,不过不是一直这样。因此仪表可能会使用不完全充分的负载预测。 在 FCC 预测中,-2600mA 负载和 -1600mA 负载之间有很大差别,在真正的 FCC 发展过程中您能观察到这一点。 同样,在大约 1000mAh 和大约 440mAh 之间,会以相当离散的步长发生变化,这表明仪表有时使用接近 -2600mA 的电流,有时使用接近 -1600mA 的电流来预测容量。

    这是由Load Select控制的。 您的 gg file有默认设置。 7表示Load Select,3表示Fast Scale Load Select。7会使用之前放电的最大平均负载,而 3 使用当前放电期间的平均电流。 应该是在Fast Scale region稳定 FCC (不会在约 1000mAh 和 440mAh 之间跳转,而是保持在 400mAh 左右,这更容易解释该类型负载)。

    对电池的依赖性 (如果某些电池比其他电池受影响更大) :越是较旧 / 较弱 / 较低的电池,较差负载预测的影响越大 (因为电池电阻较高,而化学容量较低)。

    所以我们建议您将负载选择更改为 3。 

    以上信息是基于您所提供的信息做出判断。

  • 我能理解负载的变化会引起FCC的变化,但是我们现在讨论的是1000mAh到400mAh的跳变,我并不认为负载的变化会引起那么巨大的FCC的变化。

    按上述理论,我们如果使用持续恒定的负载去测试,2600mA负载下会得到400mAh的FCC,200mA负载下会得到1000mAh,但是我们之前的实验数据并不支持这个结论。

    事实上我们应用现场的负载峰值要更大,可以达到10A左右,但是我们并没有发现数量特别多的大跨度的跳变,而是只有个别电池才有这个现象。

    而且这也不能解释为什么使用同样负载程序的AB两个样品,一个容量1000多另一个400多。

  • 单单从上面的数据上也能反驳这个负载变化引起TrueFullChgQ的观点:

    1. 虽然440-B-2和440-B-3的文件中,TrueFullChgQ确实随负载变化在1000和400之间跳变,但是注意到440-B-1文件中,TrueFullChgQ只在300到500之间跳变;

    2. 同样负载的440-A的3次测试均没有跳变现象。

  • 好的收到您的反馈,已跟进给工程师,如有新的信息会尽快给到您。

  • FCC = QStart + RM + reserve capacity.

    QStart = QMax * (DOD0 - DODatEOC)/16384.

    Reserve capacity = 0mAh.

    DOD0 是恒定的。 Qmax 是恒定的。 log file中的 DODATEOC 减少意味着 QStart 会在放电过程中增加一点。

    因此能解释FCC 这么大波动的唯一术语是 RM。

    RM = 从 DOD0 开始的放电仿真的结果 + 通过的充电 /Qmax 直到模拟电压降至终止电压以下。

    由于 RM 必须大幅波动才能解释 FCC 波动,因此我们需要在 RM 仿真中检查可能导致这种情况的原因。

    有三个主要因素会影响这种情况 (虽然温度没有显著变化,log file显示温度逐渐升高,因此不会导致较大的突然波动) :

    1. 负载预测

    2. 电池电阻 (在温度下)

    3. 对于大多数化学物质 (除磷酸锂离子电池) 和 3000mV 终止电压,情况会更少:增量电压 (添加后的终止电压以考虑负载尖峰)。

    在放电期间,从您给出的信息中我们我们无法确切地说是哪一个,因此无法判断导致 RM 摆动的原因。 Delta Voltage在您提供的 gg 文件中被最大值,因此可能这一读数降至 0 ,但这本身不会导致较大的波动 (对于大多数化学品)。

    在放电期间电池电阻不能摆幅太大 (由于内置限制) ,因此就只剩下负载预测。

    从log file无法看出用于预测容量和负载的仪表,所以我们目前来假设。 唯一的方法是模拟这种情况,但这需要一个完整的电量监测计状态,而且这并不简单。 因此我们还是建议尝试不同的负载选择,最终的证明是设置user rate,因为这样仪表就不会改变负载预测,然后观察如果 FCC 停止这种波动,那就证明了是仪表会破坏预测的负载。

  • FCC = QStart + RM + reserve capacity.

    QStart = QMax * (DOD0 - DODatEOC)/16384.

    Reserve capacity = 0mAh.

    DOD0 is constant. QMax is constant. DODatEOC decreases in the log files, which means that QStart increases a little bit over the discharge.

    So the only term that can explain the huge swings in true FCC is RM.

    RM = result from a discharge simulation starting at DOD0 + passed charge/QMax until the simulated voltage drops below Terminate Voltage.

    Because RM must swing significantly to explain the FCC swings, we'll have to check what could cause this in the RM simulation.

    There are three major factors impacting this (while temperature is not changing significantly - the log files show a gradual rise of temperature so that won't cause large sudden swings):

    1. Load prediction
    2. Cell resistance (at temperature)
    3. Less so for most chemistries (except for example Lithium Iron Phosphate) and 3000mV Terminate Voltage: Delta Voltage (which gets added to Terminate Voltage to account for load spikes).

    We don't know either of these three exactly from the provided files during the discharge so it's not possible to tell what caused RM to swing that wildly. Delta Voltage is maxed out in the gg files that you provided so maybe this learned down to 0 but this would not cause the big swings by itself (for most chemistries)

    Cell resistance can't swing that much during a discharge (because of built in limits) so that really leaves the load prediction.

    The log files won't tell us what the gauge used to predict capacity and load so it's up to speculation at this point. The only true way to figure out what's going on is to simulate this but that requires a complete state of the gauge and is not trivial to do. So at this point, I still recommend trying a different load select, The definitive proof would be to set a user rate because then the gauge won't change the load prediction and if FCC stops swinging that much then this is proof that this is about the gauge messing up the predicted load.