ZHCABV9A January 2008 – November 2022 BQ27421-G1 , BQ27425-G2A , BQ27425-G2B , BQ27441-G1 , BQ27505-J2 , BQ27505-J3 , BQ27505-J4 , BQ27505-J5 , BQ27520-G4 , BQ27530-G1 , BQ27531-G1 , BQ27545-G1 , BQ27546-G1 , BQ27741-G1 , BQ40Z50 , BQ40Z50-R1 , BQ40Z50-R2
放电过程中会更新电阻,这在图 2-3 中进行了总结。第一次电阻更新发生在一定的等待时间之后,以防止负载开始后的瞬态失真。默认情况下,等待时间为 500 秒,但如果最大放电持续时间 (DF.Max Dsg Duration) 少于 500 秒,则之后的更新等待时间会减少。等待时间定义为 DF.Max Dsg Duration –200。等待时间可缩短至 100 秒。
通过将测量电压与同一 DOD 下的 OCV 值进行比较来进行计算,OCV 值取自 OCV(DOD,T) 表:
dV = V – OCV(DOD,T)
R(DOD) = dV/I
连续进行电阻测量并存储在 RAM 中。
每次超过 DOD 电荷(DOD 电荷为 PassedCharge/Qmax)的 11.1% 后,数据闪存中的电阻都会更新(在 DF.Ra Table 中)。当 DOD 达到 77.7% 时,电阻会在每次超过 3.3% 后更新。在放电终止后进行最终电阻更新。。
第一次更新网格点电阻时,常数 DF.Update Status 增加 1(例如,如果之前没有更新 Qmax,则从 0 增加到 1;如果之前更新了 Qmax,则从 1 增加到 2)。
在存储到数据闪存之前,电阻值归一化为 0°C,即 Ra[dod] = R[dod]/exp(Rb[dod]*T),其中 R 是给定 DOD 处的测量电阻值。Rb[DOD] 是存储为保留数据闪存表的给定 DOD 处阻抗变化的温度系数值,T 是以 °C 为单位的温度。请注意,归一化为 0°C 的电阻值略大于室温下的值,因此不能直接与 R=dV/I 值进行比较。
DOD 高于当前更新的网格点的电阻值按与当前网格点变化相同的因子缩放,例如按因子 Ra_new/Ra_old 缩放。这样,实现了电阻分布的更快收敛。
DF.Ra Table 中的值以毫欧为单位存储,格式为 DF.PackX Ra N,其中 X 是从 0 到 1 的电池组编号,N 是从 0 到 14 的网格点编号,对应于 11.1% 的 DOD 增量,直到 77.7%,然后是 3.3% 的 DOD 增量。在 bq27500 中,两个支持的电池包中的每个电池包都有两个 Ra 表(Ra 和 Rax)。为了节省数据闪存空间,对表进行了压缩。压缩中使用了两个附加参数(Base R 和 Gain)。I=1..14 的 decompression 公式为
R[i] = Base R + sum(R_compressed[k], k = 1 ..I)×2Gain,并且 R[0]=Base R。
DF.PackX Ra flag 和 DF.PackX Rax flag 用于交换数据闪存列的使用,以减少 DF 写入次数。标志值 55 表示当前使用的数据列,而 FF 表示当前未使用的数据列。
在 DF.Update Status 设置为 2 之前,如果在电阻更新期间 DOD 超过 100%,或电阻出现负值,这两种情况都表明 DF.Qmax Cellx 初始猜测过小,DF.Qmax Cell x 将增加 11.1%,并且将重新计算所有电阻。这是第一个 learning 周期内的正常行为。然而,如果 DF.Qmax Cell x 的初始猜测与正确值相差太远,则可能需要第二个周期才能实现完全电阻准确性。为了避免这种情况,请将 DF.Qmax Cell x 设置为电池制造商指定的值,再乘以并联电池的数量。
将 DF.Update Status 设置为 2 后,电阻变化限制在其原始值的 5 倍以下和 0.2 倍以上,并限制为正值。