3、被动均衡仿真:基于Simulink的被动均衡模型搭建与参数计算

好,咱们进入正题。被动均衡,说白了就是给电压高的电池「放点血」。用电阻把多余的能量以热量形式消耗掉。听起来简单,但参数怎么算?模型怎么搭?这里头有不少门道。

我个人习惯,做仿真前先手算一遍。别急着开Simulink,先把物理量搞清楚。你想想看,如果连电阻功率都算不对,仿真跑出来的结果就是自欺欺人。

3.1 被动均衡的核心原理

被动均衡的原理其实就一句话:检测到某节电池电压过高,就给它并联一个放电电阻。电流从电池正极流出,经过电阻回到负极,把多余的电能变成热量散掉。

这里有个关键点——均衡电流的大小。电流太小,均衡时间太长;电流太大,电阻发热严重。我在项目中遇到过一块BMS板,均衡电阻选小了,工作半小时后PCB板都烫手。嗯,从那以后我对热设计就特别敏感。

核心公式:

均衡电流 I_bal = V_cell / R_bal

电阻功率 P_R = I_bal² × R_bal = V_cell² / R_bal

其中 V_cell 是电池电压,R_bal 是均衡电阻值。

举个例子。假设电池电压3.6V,你选了个33Ω的电阻。那么均衡电流就是:

I_bal = 3.6V / 33Ω ≈ 109mA
P_R = 3.6² / 33 ≈ 0.39W

看到没?109mA的电流,电阻上就要消耗0.39W的功率。如果你选的是0805封装的贴片电阻,额定功率才0.125W,那肯定烧。我建议至少用1206封装(0.25W)或者2512封装(1W)的电阻。

3.2 Simulink模型搭建步骤

好,理论讲完了,咱们动手搭模型。我用的是MATLAB R2021b版本,但低版本也差不多,核心模块没变。

3.2.1 需要的模块清单

打开Simulink,新建一个空白模型。你需要从库中拖出以下模块:

模块名称 库路径 用途
Series RLC Branch Simscape / Electrical / Passive 模拟电池内阻和均衡电阻
DC Voltage Source Simscape / Electrical / Sources 模拟电池开路电压
Ideal Switch Simscape / Electrical / Switches 控制均衡通断
Voltage Sensor Simscape / Electrical / Sensors 测量电池端电压
Current Sensor Simscape / Electrical / Sensors 测量均衡电流
PS-Simulink Converter Simscape / Utilities 物理信号转Simulink信号
Relational Operator Simulink / Logic and Bit Operations 比较电压阈值

3.2.2 单节电池均衡模型

我个人习惯先搭单节电池的模型,调试通过后再复制成多节。这样排查问题方便。

具体连线思路是这样的:

  1. 用DC Voltage Source串联一个Series RLC Branch(只设电阻,电感电容设为0),模拟电池。
  2. 在电池两端并联一个Ideal Switch,再串联一个均衡电阻(另一个Series RLC Branch)。
  3. 用Voltage Sensor测电池端电压,经过PS-Simulink Converter转成数字信号。
  4. 用Relational Operator判断电压是否超过阈值(比如3.65V)。
  5. 超过阈值就给Ideal Switch发导通信号,开始均衡。

小技巧: 我建议在均衡电阻支路上串一个Current Sensor,实时监控电流。这样你可以验证理论计算值是否和仿真一致。我曾经发现仿真电流比手算小了5%,查了半天发现是开关的导通电阻忘了考虑。

3.3 参数计算与选型

参数计算这块,我把它分成三步走:

3.3.1 第一步:确定均衡电流

均衡电流不是随便选的。它取决于两个因素:

  • 电池容量:一般取0.05C~0.1C。比如50Ah的电芯,均衡电流取2.5A~5A。
  • 散热能力:电流越大,电阻发热越严重。PCB上能散掉多少热,心里要有数。

我做过一个项目,客户要求均衡电流1A。我算了一下,3.6V电压下电阻功率3.6W。乖乖,这得用铝壳电阻加散热片。后来跟客户沟通,改成0.5A,电阻功率降到1.8W,用两个2W的2512电阻并联搞定。

3.3.2 第二步:计算电阻值

电阻值由均衡电流和电池电压决定:

R_bal = V_cell_max / I_bal_target

举个例子:电池最高电压4.2V,目标均衡电流0.5A。

R_bal = 4.2V / 0.5A = 8.4Ω

实际选型时,选标称值8.2Ω或10Ω。选8.2Ω的话,实际电流会略大:

I_bal = 4.2V / 8.2Ω ≈ 512mA

差不太多,可以接受。

3.3.3 第三步:计算电阻功率

这个步骤很多人会忽略。电阻功率必须留余量,我一般留1.5~2倍。

P_R = V_cell_max² / R_bal
P_R_选型 = P_R × 1.5

还是上面的例子:

P_R = 4.2² / 8.2 ≈ 2.15W
P_R_选型 = 2.15 × 1.5 ≈ 3.23W

所以选一个5W的功率电阻比较稳妥。别心疼那点成本,电阻烧了BMS板就废了。

注意: 均衡电阻的温漂系数也要关注。普通贴片电阻温漂200ppm/°C,温度升高100°C,阻值变化2%。对于精密均衡来说,这可能导致电流偏差。我建议用金属膜电阻或厚膜功率电阻,温漂控制在50ppm/°C以内。

3.4 仿真结果分析

模型搭好,参数设好,点运行。你会看到什么?

正常情况下,电池电压会从初始值(比如3.7V)开始上升。当电压超过阈值(3.65V)时,开关闭合,均衡电阻接入。电压会迅速下降一点,然后进入一个动态平衡——充电电流和均衡电流互相拉扯。

我遇到过一种情况:仿真跑出来电压纹波特别大,一抖一抖的。查了半天,发现是均衡开关的导通电阻设成了0.01Ω,太小了。开关动作时电流冲击太大,导致电压波动。后来把导通电阻改成0.1Ω,波形就平滑了。

这里有个经验值:均衡开关的导通电阻建议取均衡电阻的1%~5%。比如均衡电阻10Ω,开关导通电阻取0.1Ω~0.5Ω。太小了容易振荡,太大了浪费功耗。

3.5 多节电池的均衡仿真

单节调通了,多节就简单了。把单节模型复制粘贴,每节电池独立控制。但要注意一点:多节电池的均衡是并行工作的,每节电池的均衡电路互不影响。

我建议用Subsystem封装一下单节均衡电路,然后实例化4个或6个。这样模型看起来清爽,修改参数也方便。

仿真时重点关注两个指标:

  • 均衡结束时间:从开始均衡到所有电池电压一致,需要多长时间。
  • 能量损耗:所有均衡电阻消耗的总能量。这个数据对热设计很重要。

我记得有一次仿真4串电池组,初始电压差200mV。用0.5A均衡电流,跑了将近40分钟才均衡好。客户嫌慢,后来把电流提到1A,时间缩短到18分钟。但代价是电阻功率翻倍,散热方案得重新设计。这就是工程上的取舍。

总结一下关键参数:

  • 均衡电流:0.05C~0.1C,根据散热能力调整
  • 均衡电阻:R = V_max / I_bal,选标称值
  • 电阻功率:P = V² / R,留1.5~2倍余量
  • 开关导通电阻:均衡电阻的1%~5%
  • 电压阈值:一般取充电截止电压减50mV~100mV

好了,被动均衡的仿真就讲到这里。下一章咱们聊主动均衡,那个更有意思。有什么问题欢迎交流,我在公众号「蓝海资料掘金营」和微信deep3321上经常分享一些仿真踩坑经验。