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 单节电池均衡模型
我个人习惯先搭单节电池的模型,调试通过后再复制成多节。这样排查问题方便。
具体连线思路是这样的:
- 用DC Voltage Source串联一个Series RLC Branch(只设电阻,电感电容设为0),模拟电池。
- 在电池两端并联一个Ideal Switch,再串联一个均衡电阻(另一个Series RLC Branch)。
- 用Voltage Sensor测电池端电压,经过PS-Simulink Converter转成数字信号。
- 用Relational Operator判断电压是否超过阈值(比如3.65V)。
- 超过阈值就给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上经常分享一些仿真踩坑经验。