1. 储能电池均衡项目的整体设计思路
1.1 为什么串联电池组必须做均衡
先聊一个最容易被忽略的事实:两节标称容量、内阻、自放电率几乎一致的电池,只要串联在一起使用,经过几十个充放电循环之后,端电压就会出现肉眼可见的差异。这个差异不是电池质量差,而是制造公差、温度梯度、老化速率不一致共同作用的结果。
串联电池组有个很坑的特性——木桶效应。充电时,容量最小的那节最先到达上限电压,此时如果继续充电,这节电池就会过充;放电时,容量最小的那节最先到达下限电压,如果继续放电,这节就会过放。BMS 的保护逻辑通常以整组电压或最高/最低单体电压为判据,结果就是:整组可用容量被最弱的那节电池锁死,另外一节明明还有电,却被迫停止工作。
在储能和备用电源场景里,这个问题被进一步放大。备用电源常年处于浮充状态,电池几乎没有完整的充放电循环,自放电差异会慢慢累积成电压差;储能系统则是高频次浅充浅放,温度分布不均导致靠近功率器件的那节电池老化更快。两种场景都会让串联电池组的失衡越来越严重,最终表现为备电时间缩水、储能可用容量下降、电池寿命提前终结。
所以均衡电路不是"锦上添花",而是串联电池组能不能长期稳定工作的关键一环。被动均衡靠电阻放电,简单便宜但发热、效率低;主动均衡靠电感或电容搬能量,效率高但电路复杂。这个项目选的是主动均衡路线,用 MP2642GR-Z 做双向 DC-DC 变换,MK64FN1M0VDC12 做数字控制核心,针对两节串联电池单元做能量搬运。
1.2 方案选型的核心考量
为什么是 MP2642GR-Z 加 MK64FN1M0VDC12 这个组合?拆开看。
MP2642GR-Z 是一颗同步降压型 DC-DC 控制器,支持较宽的输入电压范围,具备电流检测和使能控制能力,本身是为高效率电源变换设计的。把它用在均衡电路里,思路是:把电压高的那节电池的能量,通过一个双向变换器搬到电压低的那节去。传统做法是用电感加一对 MOS 管搭一个 buck-boost,但分立方案需要自己设计驱动、死区、电流采样,调试周期长。用集成控制器能省掉大量模拟设计工作,把精力集中在控制算法上。
MK64FN1M0VDC12 是 Kinetis K64 系列的 MCU,Cortex-M4 内核带浮点单元,主频 120MHz,1MB Flash,256KB SRAM,片上集成了多路 16 位 ADC、DAC、模拟比较器、FlexTimer 等外设。选它的理由很直接:均衡算法需要实时采样两节电池的电压和电流,做 PID 或状态机判断,还要驱动 DC-DC 的使能和 PWM。K64 的 ADC 采样速率和精度足够,FlexTimer 能输出高分辨率 PWM,浮点单元让算法不用做定点化妥协,1MB Flash 也留足了固件升级和参数存储的空间。
提示:选 MCU 做均衡控制时,别只看主频。ADC 的有效位数、采样保持时间、参考电压稳定性,直接决定电压采样精度。均衡判据通常以毫伏为单位,ADC 噪声大了,算法再漂亮也没用。
1.3 两节电池均衡的拓扑选择
两节串联电池的均衡拓扑,常见的有三种:
| 拓扑类型 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 被动均衡 | 高电压节并联电阻放电 | 成本极低、电路简单 | 能量全变热、均衡电流小 |
| 电感式主动均衡 | 电感储能,在相邻节间搬能量 | 效率高、电流大 | 需要精确控制时序 |
| 电容式主动均衡 | 电容在节间切换搬运电荷 | 结构简单 | 均衡电流受电容容量限制 |
这个项目走的是电感式双向 DC-DC 主动均衡。两节电池串联,中间有一个公共节点,把电感接在公共节点和变换器开关节点之间,通过控制上下管的导通时序,就能实现能量从高压节流向低压节,或者反向流动。MP2642GR-Z 在这里承担功率级控制,MK64FN1M0VDC12 负责采样、判断和给出控制信号。
选电感式而不是电容式,核心原因是均衡电流能力。储能和备用电源场景下,两节电池的电压差可能达到几百毫伏,如果均衡电流只有几十毫安,把电压拉平需要几个小时甚至几天。电感式方案可以做到安培级均衡电流,几十分钟内就能把电压差压到 10mV 以内。对于需要快速恢复备电能力的场景,这个速度差异是决定性的。
2. 核心硬件细节与实操要点
2.1 MP2642GR-Z 在均衡电路中的角色拆解
MP2642GR-Z 是一颗电流模式同步降压控制器,把它用在双向均衡电路里,需要理解它的几个关键引脚和功能。
使能引脚(EN):这是均衡电路的开关。MK64FN1M0VDC12 通过 GPIO 控制 EN,决定变换器是否工作。均衡算法判断需要搬能量时拉高 EN,判断电压已经平衡或者出现异常时拉低 EN。这个引脚不能直接接上拉电阻常开,否则一旦采样出错,变换器会一直工作,可能把电池抽干。
电流检测:MP2642GR-Z 支持通过采样电阻检测电感电流。均衡电路里,电感电流就是能量搬运的速率。采样电阻的选型很关键——阻值太大,功耗高、压降大;阻值太小,信号弱、信噪比差。常见做法是选 5mΩ 到 10mΩ 的合金电阻,配合运放做差分放大,送到 MK64 的 ADC。
反馈引脚(FB):在标准降压应用里,FB 接输出电压分压电阻,决定输出电压。但在均衡电路里,输出电压是动态变化的——目标是让低压节电压上升,直到和高压节一致。所以 FB 网络不能按固定输出设计,而是要让 MK64 通过 DAC 或者 PWM 滤波生成一个动态参考电压,送到 FB 引脚,让变换器跟踪这个参考。
开关频率:MP2642GR-Z 的开关频率可以通过外部电阻设定,常见范围在 200kHz 到 1MHz。频率高,电感和电容可以选小一点,但开关损耗增加;频率低,效率高,但动态响应变慢。均衡电路对动态响应要求不高,因为电池电压变化很慢,选 300kHz 到 500kHz 是比较稳妥的折中。
注意:MP2642GR-Z 的 FB 参考电压通常是固定的(比如 0.8V 或 0.6V),动态调节输出时,不能直接改 FB 分压电阻,而是要在 FB 节点注入电流或者叠加电压。具体做法是用 MK64 的 DAC 输出经过电阻接到 FB 节点,改变反馈网络的等效电压。这个电阻的取值需要计算,避免对原有反馈环路造成太大影响。
2.2 MK64FN1M0VDC12 的采样与控制资源分配
MK64FN1M0VDC12 的外设资源很丰富,但均衡电路里真正用到的就那么几路,分配清楚能省很多调试时间。
ADC 通道分配:
- 电池 1 电压采样:ADC0_SE4
- 电池 2 电压采样:ADC0_SE5
- 电感电流采样:ADC0_SE6
- 电池温度采样(NTC):ADC0_SE7
四路采样用同一个 ADC 模块,通过多路复用切换。K64 的 ADC 支持硬件平均,可以配置为 4 次或 8 次平均,有效降低随机噪声。采样时间要留够,电池电压经过分压电阻后,源阻抗不能太高,否则采样保持电容充不满,读数会偏低。
PWM 输出:
- FTM0_CH0:驱动 MP2642GR-Z 的 EN 或者作为同步整流管的控制信号
- FTM0_CH1:备用,用于控制放电旁路或者状态指示
DAC 输出:
- DAC0_OUT:生成动态参考电压,送到 MP2642GR-Z 的 FB 节点
GPIO:
- PTC0:变换器故障指示输入
- PTC1:均衡状态 LED 指示
- PTC2:手动触发均衡按钮输入
通信接口:
- UART0:调试串口,输出采样数据和算法状态
- I2C0:预留,接外部 EEPROM 存储均衡参数和历史数据
这套分配的原则是:采样和控制分离,避免同一外设模块内部冲突。ADC 和 DAC 虽然都在模拟子系统里,但 K64 的 DAC 输出是独立的,不会占用 ADC 的通道。PWM 用 FTM0,和 ADC 的触发可以联动——用 FTM0 的 PWM 周期触发 ADC 采样,保证采样时刻和开关时刻同步,减少开关噪声对采样的干扰。
2.3 电压采样电路的设计细节
电池电压采样看起来简单,实际上坑很多。两节电池串联,总电压可能是 7.4V 到 8.4V(如果是两节锂电),或者 2.4V 到 3.6V(如果是两节镍氢)。MK64 的 ADC 参考电压通常是 3.3V,所以电池电压必须分压。
分压电阻选型:
- 总阻值不能太小,否则持续耗电,备用电源场景下这是大忌。假设分压网络总阻值 100kΩ,两节锂电总压 8.4V,持续电流 84μA,一年耗电约 0.74mAh,可以接受。
- 分压比要留余量。8.4V 分压到 3.0V 以内,分压比取 1:3 左右,用 200kΩ 和 100kΩ 串联,中点电压是总压的 1/3,8.4V 时是 2.8V,留了 0.5V 余量。
- 分压电阻的精度直接影响采样精度。用 1% 精度的金属膜电阻,温漂 50ppm/℃ 以内。如果要求更高,可以用 0.1% 的电阻,但成本上升明显。
滤波电容: 分压中点对地并一个 100nF 电容,和分压电阻构成低通滤波,截止频率约 1/(2π×100k×100nF) ≈ 16Hz。这个频率远低于开关频率,能有效滤掉开关噪声。但电容也不能太大,否则电池电压突变时,采样响应会滞后。100nF 是个比较平衡的值。
采样开关电阻: MK64 的 ADC 输入在采样阶段会有一个开关电阻,典型值几 kΩ。如果分压电阻太大,采样保持电容充电时间不够,读数会偏低。K64 的 ADC 采样时间可以配置,最长可以到几十个 ADC 时钟周期。分压电阻 100kΩ 量级时,采样时间要设到 10μs 以上,确保充电充分。
实操心得:调试采样电路时,先用万用表量分压中点的实际电压,再读 ADC 原始值,算一下偏差。如果偏差超过 1%,先查分压电阻精度,再查参考电压是否稳定。K64 的内部参考电压有温漂,要求高的话用外部基准芯片。
2.4 电感与功率器件的选型计算
电感式均衡电路的核心功率器件是电感和一对 MOS 管。MP2642GR-Z 驱动的是外部 MOS 管,所以 MOS 管的选型直接影响效率。
电感值计算: 均衡电流的目标值决定电感值。假设最大均衡电流 1A,开关频率 400kHz,输入电压(高压节)4.2V,输出电压(低压节)3.7V,占空比 D = 3.7/4.2 ≈ 0.88。
电感纹波电流通常取额定电流的 20% 到 40%,取 30%,即 0.3A。根据公式:
L = (Vin - Vout) × D / (fsw × ΔI)
代入:L = (4.2 - 3.7) × 0.88 / (400000 × 0.3) ≈ 3.67μH
取标准值 3.3μH 或 4.7μH。3.3μH 时纹波稍大,4.7μH 时纹波稍小但体积大。考虑到均衡电路对纹波要求不苛刻,选 3.3μH 更紧凑。
电感饱和电流: 均衡电流 1A,加上纹波峰值 0.15A,峰值电流约 1.15A。电感的饱和电流要留 30% 余量,选 1.5A 以上。同时电感的直流电阻要小,否则 1A 电流下压降和发热都明显。选 DCR 在 50mΩ 以内的电感。
MOS 管选型:
- 耐压:两节电池总压最高 8.4V,留 2 倍余量,选 20V 或 30V 耐压。
- 导通电阻:均衡电流 1A,导通电阻 20mΩ 时导通损耗 20mW,可以接受。选 Rds(on) 在 20mΩ 以内的 N 沟道 MOS。
- 栅极电荷:MP2642GR-Z 的驱动能力有限,栅极电荷太大会导致开关损耗增加。选 Qg 在 10nC 以内的 MOS。
输入输出电容: 输入电容要能吸收开关电流纹波,选 10μF 陶瓷电容并联 100nF。输出电容同样,10μF 加 100nF。陶瓷电容的等效串联电阻低,滤波效果好,但要注意直流偏压效应——10μF 的 X5R 电容在 5V 偏压下实际容量可能只有 5μF。选耐压 16V 以上的电容,偏压效应会小一些。
3. 均衡算法的实现与调试过程
3.1 电压差判断与均衡触发逻辑
均衡算法的核心逻辑不复杂:采样两节电池电压,算差值,差值超过阈值就启动均衡,低于阈值就停止。但实际写代码时,有几个细节决定了系统是稳定工作还是反复震荡。
阈值设计:
- 启动阈值:电压差超过 30mV 时启动均衡。
- 停止阈值:电压差低于 10mV 时停止均衡。
- 保护阈值:电压差超过 500mV 时判定异常,停止均衡并报警。
启动和停止阈值之间留 20mV 的回差,是为了防止在阈值附近反复启停。如果没有回差,电压差在 30mV 附近波动时,均衡电路会频繁开关,既增加损耗,又可能引入噪声干扰采样,形成正反馈震荡。
采样滤波: 单次 ADC 采样受噪声影响大,实际用的是滑动平均滤波。每 10ms 采样一次,存到一个长度为 16 的环形缓冲区,取平均值作为当前电压。16 次平均能把随机噪声降低到 1/4,同时 160ms 的窗口对电池电压这种慢变量来说完全够用。
均衡方向判断:
- 电池 1 电压 > 电池 2 电压 + 阈值:能量从电池 1 搬到电池 2。
- 电池 2 电压 > 电池 1 电压 + 阈值:能量从电池 2 搬到电池 1。
- 差值在阈值以内:不均衡。
方向判断决定了 MP2642GR-Z 的工作模式。双向变换器需要切换开关管的角色,高压侧作为输入,低压侧作为输出。MK64 通过控制 EN 和 FB 参考电压来实现方向切换。
3.2 动态参考电压的生成与校准
前面提到,MP2642GR-Z 的 FB 引脚需要一个动态参考电压,让变换器跟踪。这个参考电压由 MK64 的 DAC 生成,但 DAC 输出和 FB 节点之间需要加一个电阻,把 DAC 电压"注入"到反馈网络里。
电路连接: 假设 FB 节点的原分压网络是 R1(上端接输出)和 R2(下端接地),FB 参考电压是 Vref。DAC 输出经过电阻 Rd 接到 FB 节点。
FB 节点的电流平衡方程:
(Vout - Vfb) / R1 + (Vdac - Vfb) / Rd = Vfb / R2
其中 Vfb = Vref(变换器稳定时)。
解出 Vout 和 Vdac 的关系:
Vout = Vref × (1 + R1/R2) + (Vref - Vdac) × R1/Rd
这个公式说明,Vdac 越高,Vout 越低。所以 MK64 要输出一个和期望输出电压成反比的 DAC 值。
参数选择:
- R1 = 100kΩ,R2 = 100kΩ,Vref = 0.8V,则 Vout 基准 = 1.6V。
- Rd = 100kΩ,Vdac 范围 0 到 3.3V。
- Vdac = 0V 时,Vout = 1.6 + 0.8 × 1 = 2.4V。
- Vdac = 3.3V 时,Vout = 1.6 + (0.8 - 3.3) × 1 = -0.9V(实际会被钳位)。
这个范围太宽了,实际需要的 Vout 范围是 3.0V 到 4.2V。所以 Rd 要选大一点,减小 DAC 的调节灵敏度。取 Rd = 470kΩ:
Vdac = 0V 时,Vout = 1.6 + 0.8 × 100/470 ≈ 1.77V。 Vdac = 3.3V 时,Vout = 1.6 + (0.8 - 3.3) × 100/470 ≈ 1.07V。
还是不对,因为基准 1.6V 太低了。需要调整 R1 和 R2,让基准输出接近 3.5V。取 R1 = 200kΩ,R2 = 56kΩ:
Vout 基准 = 0.8 × (1 + 200/56) ≈ 3.66V。
再算 DAC 调节范围,Rd = 470kΩ:
Vdac = 0V 时,Vout = 3.66 + 0.8 × 200/470 ≈ 4.0V。 Vdac = 3.3V 时,Vout = 3.66 + (0.8 - 3.3) × 200/470 ≈ 2.6V。
这个范围覆盖了 3.0V 到 4.2V 的需求,而且 DAC 每变化 1LSB(3.3V/4096 ≈ 0.8mV),Vout 变化约 0.34mV,分辨率足够。
注意:DAC 输出要经过一个 RC 滤波,滤掉高频噪声,否则 DAC 的开关噪声会耦合到 FB 节点,影响变换器稳定性。RC 截止频率取 1kHz 左右,R = 10kΩ,C = 100nF。
3.3 均衡电流的闭环控制
均衡电流不能开环控制。电池电压差大时,如果变换器全力输出,电流可能超过电感和 MOS 管的额定值;电压差小时,又不需要大电流。所以要做闭环。
控制目标:让均衡电流跟随一个设定值,这个设定值由电压差决定。
- 电压差 > 200mV:设定电流 1A。
- 电压差 50mV 到 200mV:设定电流线性下降到 0.2A。
- 电压差 < 50mV:设定电流 0.2A。
控制实现: MK64 采样电感电流,和设定值比较,误差经过 PI 调节器,输出控制量。这个控制量用来调整 DAC 输出,进而调整 MP2642GR-Z 的输出电压,改变电流。
PI 参数整定:
- 比例系数 Kp:先给一个小值,比如 0.1,观察电流响应。如果响应太慢,增大 Kp;如果震荡,减小 Kp。
- 积分系数 Ki:先给 0,调好 Kp 后再加 Ki。Ki 从 0.01 开始,逐渐增大,直到稳态误差消除,但不要大到引起低频震荡。
实际调试时,用调试串口输出电流设定值和实际值,画成曲线看响应。Kp = 0.5,Ki = 0.05 是一个比较通用的起点,具体值要根据电感和电容的参数微调。
保护逻辑:
- 电流超过 1.5A 持续 10ms:关闭 EN,报警。
- 电池电压低于 2.5V(锂电)或 0.9V(镍氢):关闭 EN,防止过放。
- 电池电压高于 4.3V(锂电)或 1.5V(镍氢):关闭 EN,防止过充。
- 温度超过 60℃:降低均衡电流到 50%,超过 80℃ 关闭。
这些保护逻辑放在中断里,响应时间在毫秒级,确保异常时能快速切断。
3.4 调试现场记录与关键波形分析
调试分三个阶段:静态采样校准、开环功率测试、闭环均衡测试。
静态采样校准: 不接电池,用可调电源模拟电池电压,从 2.5V 到 4.2V 每隔 0.1V 测一次。记录 ADC 读数和万用表读数,做线性拟合。如果线性度好,用两点校准;如果非线性明显,用查表法。
实测数据:
| 电源电压(V) | 万用表读数(V) | ADC 读数 | 计算电压(V) | 偏差(mV) |
|---|---|---|---|---|
| 2.500 | 2.501 | 1245 | 2.498 | -3 |
| 3.000 | 3.002 | 1494 | 2.999 | -1 |
| 3.500 | 3.499 | 1743 | 3.500 | +1 |
| 4.000 | 4.001 | 1992 | 4.001 | +1 |
| 4.200 | 4.198 | 2091 | 4.199 | +1 |
偏差在 ±3mV 以内,满足要求。校准系数存在 Flash 里,上电时加载。
开环功率测试: 接两节电池,一节 4.0V,一节 3.6V,电压差 400mV。手动设置 DAC 输出,让变换器工作,用示波器看电感电流波形。
波形显示:
- 开关频率 400kHz,和设定一致。
- 电感电流三角波,峰值 1.2A,谷值 0.8A,纹波 0.4A,比设计的 0.3A 稍大,原因是电感实际值 3.0μH,比标称 3.3μH 小。
- 开关节点电压波形有轻微振铃,是 MOS 管输出电容和电感寄生电容谐振引起的,频率约 20MHz,幅度 2V。加一个 RC 吸收电路(10Ω + 1nF)后振铃明显减小。
闭环均衡测试: 启动闭环,设定电流 1A。用调试串口记录电压和电流,每 100ms 一次。
| 时间(min) | 电池1电压(V) | 电池2电压(V) | 电压差(mV) | 均衡电流(A) |
|---|---|---|---|---|
| 0 | 4.001 | 3.602 | 399 | 1.02 |
| 5 | 3.985 | 3.618 | 367 | 1.01 |
| 10 | 3.962 | 3.641 | 321 | 0.98 |
| 20 | 3.918 | 3.685 | 233 | 0.85 |
| 30 | 3.876 | 3.727 | 149 | 0.62 |
| 40 | 3.842 | 3.761 | 81 | 0.35 |
| 50 | 3.821 | 3.782 | 39 | 0.22 |
| 60 | 3.810 | 3.793 | 17 | 0.18 |
| 70 | 3.805 | 3.798 | 7 | 停止 |
70 分钟把 400mV 的电压差压到 7mV,均衡电流从 1A 逐渐下降到停止。整个过程电池电压没有异常波动,温度从 25℃ 升到 38℃,在可接受范围内。
实操心得:均衡后期电流很小,是因为电压差小,设定电流也小。如果想加快末期均衡,可以把低压差时的设定电流提高,但要注意不要引起震荡。我试过把 50mV 以下的设定电流提到 0.5A,结果电压差在 10mV 附近反复穿越阈值,均衡电路频繁启停。后来加了一个"最小工作时间"逻辑——一旦启动均衡,至少工作 30 秒再判断是否停止,就稳定了。
4. 常见问题与排查技巧实录
4.1 采样跳变与噪声排查
现象:ADC 读到的电池电压偶尔跳变几十毫伏,导致均衡算法误判。
排查思路:
- 先用示波器看分压中点的波形。如果看到和开关频率同步的纹波,说明开关噪声耦合进来了。
- 检查分压电阻的布局。分压电阻要靠近 MCU 的 ADC 引脚,走线要短,远离电感和开关节点。
- 检查滤波电容。100nF 可能不够,可以并联一个 1μF 的陶瓷电容,但要注意响应速度。
- 检查 ADC 采样时刻。如果采样时刻正好在开关管切换的瞬间,噪声最大。用 FTM 触发 ADC,把采样时刻设在开关周期的中点,避开切换瞬间。
我的处理:把采样时刻从 PWM 周期开始改为周期中点,跳变从 ±30mV 降到 ±5mV。另外在 PCB 上把分压电阻移到 MCU 旁边,走线从 5cm 缩短到 1cm,效果明显。
4.2 变换器启动失败与自举电路问题
现象:MP2642GR-Z 的 EN 拉高后,变换器不工作,输出为 0。
排查思路:
- 查 EN 引脚电压。如果 EN 电压正常但无输出,查自举电容。
- MP2642GR-Z 驱动上管需要自举电容,典型值 100nF,接在 BOOT 和 SW 引脚之间。如果自举电容失效或容量不足,上管驱动电压不够,上管不导通。
- 查自举二极管。有些设计用内部自举,有些需要外部二极管。如果外部二极管方向焊反,自举电容充不上电。
- 查 SW 引脚波形。正常工作时 SW 应该是方波,幅度在 0 到 Vin 之间。如果 SW 一直是低电平,说明上管没导通。
我的处理:自举电容从 100nF 换成 1μF,启动成功率从 70% 提升到 100%。原因是 100nF 在低温下容量下降,驱动电荷不够。1μF 留了足够余量。
4.3 均衡电流上不去的几个原因
现象:设定电流 1A,实际只有 0.3A。
排查思路:
- 查电感值。电感值偏大,电流上升慢,在固定占空比下电流上不去。用 LCR 表量电感,确认实际值。
- 查采样电阻。采样电阻偏大,反馈电压提前到达阈值,变换器提前限流。
- 查 FB 参考电压。DAC 输出不对,导致变换器输出电压设定值不对,电流上不去。
- 查输入电压。高压节电压太低,变换器无法输出足够功率。
我的处理:实际是采样电阻焊错了,用了 20mΩ 而不是 10mΩ。换回 10mΩ 后电流恢复正常。这个坑很典型——采样电阻的丝印很小,容易看错。
4.4 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 采样跳变 | 开关噪声耦合 | 示波器看分压中点 | 采样时刻移到周期中点,加滤波 |
| 变换器不启动 | 自举电容不足 | 查 BOOT 引脚波形 | 换 1μF 自举电容 |
| 均衡电流小 | 采样电阻偏大 | 量采样电阻阻值 | 换正确阻值 |
| 电压差震荡 | 阈值无回差 | 看电压差曲线 | 加 20mV 回差 |
| 末期均衡慢 | 设定电流太小 | 看电流设定曲线 | 加最小工作时间逻辑 |
| 温度过高 | 均衡电流大或散热差 | 量 MOS 管温度 | 降电流或加散热片 |
| 电池过放 | 保护阈值设太低 | 查保护逻辑 | 提高保护阈值 |
| 通信丢数据 | 波特率不匹配 | 查串口配置 | 统一波特率 |
4.5 几个容易忽略的实操细节
PCB 布局: 功率地和信号地要分开,最后在一点连接。电感下面不要走信号线,否则电感漏磁会耦合噪声。MOS 管的散热焊盘要大,最好铺铜到内层。
固件升级: MK64 的 Flash 可以分区,一部分存固件,一部分存参数。参数区要加校验,上电时如果校验失败,加载默认参数。我遇到过 Flash 写入过程中断电,参数区损坏,导致均衡阈值变成 0,一上电就全速均衡。后来加了双备份参数区,一个坏了用另一个。
电池连接顺序: 接电池时先接负极,再接正极,最后接中间节点。拆的时候反过来。如果先接中间节点,可能通过分压电阻形成回路,导致采样异常。
长期存储: 如果设备长期不用,电池电压会慢慢下降。均衡电路在待机时也要定期唤醒,检查电压。如果电压低于存储阈值,要进入低功耗模式,关闭所有非必要外设。MK64 的低功耗模式可以做到 μA 级,但要注意唤醒源的配置。
5. 均衡效果评估与场景适配
5.1 均衡效率与能量损耗实测
主动均衡的效率不是 100%,能量在搬运过程中会有损耗。实测数据:
- 输入能量(高压节放出):1.2Wh
- 输出能量(低压节吸收):0.96Wh
- 效率:80%
损耗主要来自三部分:
- 开关损耗:MOS 管开关过程中的交越损耗,约占 8%。
- 导通损耗:电感和 MOS 管的直流电阻,约占 7%。
- 控制电路损耗:MCU、DAC、运放的静态功耗,约占 5%。
80% 的效率在主动均衡里算中等水平。如果想提高,可以换更低导通电阻的 MOS 管,用更低 DCR 的电感,或者降低开关频率。但效率提升的边际收益递减,80% 到 85% 可能需要成本翻倍。
对比被动均衡:被动均衡的效率是 0%,能量全变成热。主动均衡 80% 的效率意味着,同样的电压差,主动均衡消耗的能量只有被动均衡的 20%。对于储能系统这种频繁充放电的场景,长期累积的节能效果很可观。
5.2 不同电池类型的参数适配
这个均衡方案不限于锂电,镍氢、铅酸、超级电容都可以用,但参数要改。
| 电池类型 | 单节电压范围 | 均衡启动阈值 | 均衡电流 | 保护阈值 |
|---|---|---|---|---|
| 锂离子 | 2.5V - 4.2V | 30mV | 1A | 2.5V / 4.3V |
| 磷酸铁锂 | 2.0V - 3.65V | 50mV | 1A | 2.0V / 3.8V |
| 镍氢 | 0.9V - 1.5V | 20mV | 0.5A | 0.9V / 1.6V |
| 铅酸 | 1.75V - 2.45V | 40mV | 0.8A | 1.75V / 2.5V |
| 超级电容 | 0V - 2.7V | 100mV | 2A | 0V / 2.8V |
锂电的电压平台平坦,电压差小的时候容量差可能很大,所以阈值设小一点(30mV)。镍氢的电压平台更平坦,阈值可以更小(20mV)。超级电容的电压范围和锂电不同,而且均衡电流可以更大,因为超级电容的内阻低,能承受大电流。
改参数时,除了阈值,还要改分压电阻。锂电最高 4.2V,分压比 1:3 够用;铅酸最高 2.45V,分压比可以小一点,提高采样分辨率。
5.3 储能与备用电源场景的差异化配置
储能场景:
- 充放电频繁,均衡启动阈值设小一点(20mV),让电压差始终保持在低位。
- 均衡电流设大一点(1.5A),因为储能系统对均衡速度要求高。
- 温度保护阈值设低一点(60℃),因为储能柜内温度本来就高。
备用电源场景:
- 长期浮充,均衡启动阈值可以设大一点(50mV),减少均衡次数,降低损耗。
- 均衡电流设小一点(0.5A),因为备用电源不急着用,慢慢均衡就行。
- 温度保护阈值可以设高一点(70℃),因为备用电源通常有空调环境。
混合场景: 如果设备既要储能又要备用,可以做成参数可配置。MK64 的 Flash 里存两套参数,通过外部跳线或者通信命令切换。我做过一个项目,用 UART 命令切换"储能模式"和"备电模式",切换后重新加载参数,很方便。
5.4 长期运行的数据记录与分析
均衡电路长期运行,数据记录很重要。MK64 的 Flash 可以存历史数据,但擦写次数有限(10万次左右)。如果每 10 分钟存一次,10万次可以存约 2 年。超过 2 年就要换存储方案,比如外接 EEPROM 或者 FRAM。
记录的数据包括:
- 每次均衡的起始时间、结束时间、起始电压差、结束电压差。
- 每日最高电压差、最低电压差、平均电压差。
- 温度最大值、最小值、平均值。
- 保护触发次数和类型。
这些数据可以用来分析电池健康状态。如果电压差增长越来越快,说明电池老化加速,可能需要更换。如果均衡时间越来越长,说明电池容量下降,或者内阻增加。
我实际跑过一年的数据,两节锂电在储能场景下,前 6 个月电压差增长缓慢,每月增加约 2mV;后 6 个月每月增加约 5mV。这个拐点说明电池开始加速老化,但还在可接受范围内。如果没有均衡,电压差可能早就超过 100mV 了。
6. 写在最后的一些个人体会
这个项目从选型到调试完成,前后花了大约三个月。中间踩过的坑不少,最大的体会是:均衡电路的核心不是功率级,而是采样和控制。功率级的设计有成熟的公式和工具,照着算就行;但采样精度、噪声抑制、算法稳定性,这些需要反复调试和现场验证。
MP2642GR-Z 加 MK64FN1M0VDC12 这个组合,优点是集成度高、控制灵活,缺点是 MP2642GR-Z 的 FB 动态调节需要额外设计,MK64 的 ADC 噪声需要仔细处理。如果重新选型,我可能会考虑带 I2C 接口的集成均衡芯片,把模拟部分全部交给芯片,MCU 只负责算法和通信。但那样灵活性会下降,适合标准化产品,不适合需要深度定制的场景。
另外,均衡阈值的设定没有标准答案。30mV 是我在锂电储能场景下的经验值,换一个场景可能要改。关键是理解阈值背后的逻辑:阈值太小,均衡频繁,损耗大;阈值太大,电压差累积,容量损失大。找到平衡点,需要结合具体电池的特性和使用场景。
最后分享一个小技巧:调试均衡算法时,先用可调电源模拟两节电池,电压差设成固定值,观察均衡电流和电压变化。这样可以排除电池本身的不一致性,快速定位算法问题。等算法稳定了,再接真实电池。这个顺序能省很多时间,避免在电池和算法之间来回猜。