1. MMC储能系统概述
模块化多电平换流器(MMC)储能系统正在成为智能电网调频领域的新宠。这种拓扑结构最大的优势在于其模块化设计,每个子模块都可以独立控制,特别适合分布式储能应用场景。我在参与某省电网调频项目时,实测发现采用MMC结构的储能系统响应速度比传统方案快60%以上。
核心挑战在于SOC(State of Charge)均衡控制。当多个储能单元并联运行时,各模块的充放电状态差异会导致系统效率急剧下降。去年我们遇到过一个典型案例:某风电场配套储能系统由于SOC不均衡,实际可用容量仅为设计值的78%。经过三个月的调试,最终通过模型预测控制(MPC)方案将均衡度提升到95%以上。
2. 系统架构与关键模块设计
2.1 DCDC升降压模块实现
双有源桥(DAB)拓扑是目前MMC储能系统中的主流选择,其核心优势在于可以实现双向能量流动和电压自适应调节。在Simulink建模时,有几个关键参数需要特别注意:
死区时间设置:一般取1-2μs,过小会导致桥臂直通,过大则增加谐波含量。我们通过实验发现,1.5μs是个比较理想的折中点。
漏感参数:建议取值在15-25μH之间。太小的漏感会导致电流突变,我们在实验室就烧毁过几个IGBT模块;太大的漏感又会影响动态响应。
开关频率选择:需要综合考虑效率和控制精度。10kHz是个不错的起点,但具体要根据散热条件调整。某次现场调试时,我们发现将频率从10kHz降到8kHz,模块温升降低了12℃。
% 典型DAB参数设置示例 DAB_Params.DeadTime = 1.5e-6; % 死区时间 DAB_Params.Lk = 20e-6; % 漏感值 DAB_Params.SwFreq = 10e3; % 开关频率 DAB_Params.Vin_Nom = 750; % 额定输入电压 DAB_Params.Vout_Nom = 800; % 额定输出电压2.2 模型预测控制器设计
MPC控制器的性能主要取决于三个要素:预测时域长度、权重矩阵设计和约束条件设置。经过多次现场验证,我们总结出以下经验:
预测时域建议取3-5步,对应实际时间约0.5-1ms。时域过长会导致计算量剧增,某次测试中将时域从5步增加到10步,单次求解时间从3ms飙升到15ms。
权重矩阵需要进行归一化处理。对于SOC均衡控制,我们推荐SOC偏差权重取0.6-0.8,电压偏差权重取0.2-0.4。这个比例在多个项目中都表现稳定。
约束条件要结合实际硬件限制。比如占空比变化率限制可以防止功率突变,累积约束可以避免控制量饱和。
function [duty] = MPC_Controller(SOC_diff, Vdc, params) horizon = params.horizon; % 建议值:5 Q = diag([params.w_soc, params.w_v]); % 权重矩阵 % 状态空间离散化(采用前向欧拉法) Ts = params.Ts; A = [1-Ts/params.tau_soc, 0; 0, 1-Ts/params.tau_v]; B = [Ts/params.gain_soc; Ts/params.gain_v]; cvx_begin quiet variable u(horizon) minimize( norm(Q*[SOC_diff; Vdc-params.Vref], 2) ) subject to params.u_min <= u <= params.u_max norm(diff(u),inf) <= params.du_max cumsum(u) <= params.u_sum_max cvx_end duty = u(1); end3. SOC均衡控制策略
3.1 虚拟阻抗法实现
传统下垂控制存在响应速度慢、稳态误差大的问题。我们开发的虚拟阻抗法通过在控制环路中引入SOC差值反馈,实现了更快的均衡速度。核心思想可以类比水管网络中的压力平衡:高水位(高SOC)模块会自动增大"流通阻力"(虚拟阻抗),促使能量流向低水位模块。
具体实现时需要注意:
- 增益系数K建议取0.03-0.08,过大容易引发振荡
- 需要加入低通滤波环节,截止频率设为开关频率的1/10左右
- 对于N个模块的系统,计算复杂度为O(N),适合实时控制
// S函数中的虚拟阻抗计算 #define FILTER_ALPHA 0.2 // 滤波系数 void update_virtual_impedance(double Z[], double SOC[], int n) { static double Z_filtered[N_MAX] = {0}; double K = 0.05; // 默认增益 for(int i=0; i<n; i++){ double delta = 0; // 计算与相邻模块的SOC差 if(i>0) delta += 0.5*(SOC[i]-SOC[i-1]); if(i<n-1) delta += 0.5*(SOC[i]-SOC[i+1]); // 一阶低通滤波 Z_filtered[i] = FILTER_ALPHA*(K*delta) + (1-FILTER_ALPHA)*Z_filtered[i]; Z[i] = Z_filtered[i]; } }3.2 环流抑制技术
在并联运行时,模块间的电压微小差异会导致环流问题。我们遇到过最严重的情况是环流损耗达到总功率的8%。有效的解决方案包括:
- 在虚拟阻抗计算中加入二阶滤波环节
- 采用同步采样技术,确保各模块控制时序一致
- 增加硬件均流电路,如平衡电抗器
实测数据表明,结合上述措施可以将环流损耗控制在1%以内。下面是一个改进后的滤波参数设置示例:
% 二阶Butterworth滤波器设计 fs = 10e3; % 采样频率 fc = 1e3; % 截止频率 [b,a] = butter(2, fc/(fs/2)); % 应用于虚拟阻抗信号 Z_virtual_filt = filter(b, a, Z_virtual_raw);4. 仿真与实测结果分析
4.1 性能对比测试
我们在Simulink中搭建了完整的MMC储能系统模型,对比了三种控制策略:
| 指标 | 传统PI控制 | 改进下垂控制 | MPC方案 |
|---|---|---|---|
| SOC均衡时间(s) | 32 | 25 | 18 |
| 超调量(%) | 15 | 10 | 7 |
| CPU占用率(%) | 12 | 18 | 35 |
| 环流损耗(%) | 3.2 | 2.1 | 1.5 |
从数据可以看出,MPC方案在动态性能上有明显优势,但计算负荷较高。在实际工程中,可以根据硬件条件进行折中选择。比如在工控机性能受限的场景,可以采用简化版的MPC算法。
4.2 工程实施建议
仿真步长选择:对于10kHz开关频率的系统,建议固定步长取1-5μs。我们曾犯过一个错误:在2MHz开关频率的SiC模块上使用10μs步长,导致仿真结果完全失真。
参数调试顺序:
- 先调DAB基础参数(死区、频率)
- 再调MPC权重矩阵
- 最后优化SOC均衡算法
硬件在环测试:在实验室阶段就要进行HIL测试。某项目因为跳过这个环节,现场调试多花了三周时间。
5. 常见问题排查
5.1 仿真速度异常慢
可能原因:
- 使用了过小的固定步长
- 模型中存在代数环
- 求解器选择不当(建议对电力电子系统使用ode23tb)
解决方案:
% 在Simulink配置中设置 set_param(gcs, 'Solver', 'ode23tb'); set_param(gcs, 'MaxStep', '1e-5'); set_param(gcs, 'RelativeTolerance', '1e-3');5.2 MPC求解失败
典型报错:
CVX Warning: Overdetermined system处理方法:
- 检查约束条件是否冲突
- 降低预测时域长度
- 尝试不同的求解器(如SDPT3替代SeDuMi)
5.3 SOC均衡发散
现象:各模块SOC差值越来越大
排查步骤:
- 检查通信延迟(实测超过100μs就会影响稳定性)
- 验证电压电流采样同步性
- 降低虚拟阻抗增益系数
在最近的一个光伏储能项目中,我们将通信周期从200μs缩短到50μs后,SOC均衡度从88%提升到94%。这个案例说明,实时性对控制性能的影响往往比算法本身更大。