直流微电网储能单元功率分配/soc均衡 有参考文献,采用1kw光伏电池代替直流微电网,两台1kw储能单元并联,充放电电流按照soc进行分配。 图中分别为整体仿真图,充放电soc,电流,开始时设置为放电,3s切换为充电,6s切换为放电直到均衡。
最近在实验室折腾直流微电网储能单元的功率分配问题,发现SOC(荷电状态)均衡这个坑比想象中有意思。拿两台1kW的储能单元做并联,配上光伏电池当电源,手动切换充放电状态时,电流分配和SOC变化曲线简直像坐过山车。
先看仿真场景:1kW光伏板作为主电源,两台储能单元初始SOC分别为80%和60%。系统初始状态为放电模式,3秒时切换充电,6秒再切回放电直到SOC均衡。整个过程中电流分配完全由SOC动态调整——SOC高的多出力,SOC低的少干活。
!仿真结构
(此处脑补一张Simulink仿真框图:中间是光伏电池,左右各接一个带控制器的储能单元,总线电压稳稳地维持在48V)
直流微电网储能单元功率分配/soc均衡 有参考文献,采用1kw光伏电池代替直流微电网,两台1kw储能单元并联,充放电电流按照soc进行分配。 图中分别为整体仿真图,充放电soc,电流,开始时设置为放电,3s切换为充电,6s切换为放电直到均衡。
核心算法就藏在电流分配控制器里。看这段伪代码:
function [I1, I2] = current_alloc(soc1, soc2, I_total) delta_soc = abs(soc1 - soc2); k = 1 / (1 + exp(-delta_soc*10)); // 调节斜率 if mode == 放电 I1 = I_total * (soc1/(soc1+soc2)) * (1 + k); I2 = I_total - I1; else // 充电 I1 = I_total * ( (1-soc1)/(2 - soc1 - soc2) ) * (1 + k); I2 = I_total - I1; end end这段代码的鬼点子在于引入了一个sigmoid函数调节分配系数。当SOC差异越大时,k值会让电流分配更激进,防止某个单元过劳死。比如初始阶段80% vs 60%,k≈0.8,SOC高的单元承担近70%的总电流。
仿真波形比代码更带感:
- 0-3秒放电阶段,SOC高的单元电流0.7A,低的0.3A,总线电压轻微下探到47V
- 切换充电瞬间(3秒),电流瞬间反向,SOC低的像饿虎扑食,吞下60%充电电流
- 6秒切回放电时,神奇的事情发生了——两单元SOC差已缩至5%,电流分配接近55:45
!SOC均衡曲线
(此处应有SOC收敛曲线:两条曲线从20%差距开始,经过三个阶段的波动后完美重合)
不过实测时发现个反直觉现象:充电阶段的均衡速度比放电快约30%。后来在代码里加了个充电补偿系数才搞定,果然充放电效率差异这个坑谁踩谁知道。
这种动态分配策略虽好,但别在通信延迟大的场景里用——实测超过200ms延迟时系统会开始抽风。所以实际部署还得配上本地电压观测模块做补偿,这都是后话了。