1. 直流微电网保护系统概述
在新能源发电占比不断提升的背景下,直流微电网因其高效率、易接入分布式电源等优势,正成为电力系统研究的热点。本次实现的仿真系统包含本地松弛母线、光伏发电系统、锂离子电池储能系统和直流负载四大核心模块,构成一个完整的直流微电网典型架构。
本地松弛母线作为系统的电压参考节点,其作用类似于交流电网中的平衡节点。在仿真中我们将其设置为380V的恒定电压源,这相当于给整个微电网提供了一个稳定的"锚点"。光伏系统通过升压变换器(Boost Converter)接入母线,标准光伏模型采用单二极管等效电路,能够准确反映光照强度和环境温度变化对输出的影响。电池储能系统使用锂离子电池模型配合双有源桥(DAB)变换器,这种组合既能实现能量的双向流动,又能保证不同电压等级之间的高效转换。
关键设计选择:选用DAB而非传统Buck-Boost拓扑,主要考虑其在隔离型应用中的高效率(实测可达97%)和天然软开关特性,这对频繁充放电的储能系统尤为重要。
系统保护机制需要应对的主要故障类型包括:光伏侧短路、电池端口接地、负载侧过流以及母线电压失稳等。在Simulink中我们将通过电流电压检测、故障逻辑判断和保护动作执行三个层次来实现完整的保护方案。
2. 光伏系统建模与升压控制
2.1 标准光伏模型参数化
采用Simulink自带的Solar Cell模块构建光伏阵列,关键参数设置如下:
matlab复制% 典型250W光伏组件参数
Iph = 8.5; % 光生电流(A)
I0 = 9.8e-9; % 二极管反向饱和电流(A)
Rs = 0.25; % 串联电阻(Ω)
Rp = 500; % 并联电阻(Ω)
n = 1.3; % 理想因子
Ns = 60; % 串联电池数
通过MATLAB Function模块实现最大功率点跟踪(MPPT)算法,采用扰动观察法(P&O)的核心逻辑:
matlab复制function DutyCycle = MPPT(Vpv, Ipv, prev_D, prev_P)
delta_D = 0.01; % 扰动步长
Pnow = Vpv * Ipv;
if Pnow > prev_P
DutyCycle = (Vpv < prev_V) ? prev_D + delta_D : prev_D - delta_D;
else
DutyCycle = (Vpv < prev_V) ? prev_D - delta_D : prev_D + delta_D;
end
% 限制占空比在0.1~0.9之间
DutyCycle = min(max(DutyCycle, 0.1), 0.9);
end
2.2 升压变换器设计与保护
Boost变换器参数计算过程:
- 输入电压范围:光伏阵列Vmp=30V~36V
- 输出电压:380V(母线电压)
- 开关频率选择50kHz(权衡开关损耗和磁性元件体积)
- 电感计算:
$$ L = \frac{V_{in} \times D}{\Delta I_L \times f_{sw}} $$
取纹波电流ΔIL=20%*Iin_max=1.5A → L≈200μH
过流保护实现方案:
- 在变换器输入端设置电流传感器
- 当检测电流超过25A(1.5倍额定)持续100μs时
- 立即关闭PWM驱动信号并触发故障指示灯
- 需手动复位后才能重新运行
3. 电池储能系统实现细节
3.1 锂离子电池模型校准
使用Simulink的Battery模块配置三元锂电池参数:
code复制Capacity = 50Ah (20hr rate)
Nominal Voltage = 3.7V
Initial SOC = 60%
Cell number = 104S(串联获得385V标称电压)
R0 = 0.05Ω (25℃时)
Temperature = 25℃ (恒温假设)
SOC估算采用安时积分结合开路电压(OCV)校正:
matlab复制function [SOC, V_oc] = SOC_Estimation(I_bat, V_bat, init_SOC)
persistent Q_acc;
if isempty(Q_acc)
Q_acc = (init_SOC - 0.5) * 50; % 初始容量偏差
end
Q_acc = Q_acc + I_bat * Ts; % Ts为采样周期
SOC = 0.5 + Q_acc/50;
% OCV-SOC关系曲线拟合
V_oc = 3.4 + 0.8*(1 - exp(-5*SOC)) + 0.2*SOC;
% 当电流接近零时进行OCV校正
if abs(I_bat) < 0.1
SOC = interp1(OCV_Table, SOC_Table, V_bat);
Q_acc = (SOC - 0.5) * 50;
end
end
3.2 双有源桥变换器控制
DAB变换器采用单移相控制(SPS)策略,关键实现步骤:
-
高频变压器设计(MATLAB代码实现):
matlab复制Lk = (V1*V2)/(8*fsw*Prated*0.2); % 20%功率作为环流功率 N1_N2 = V1_nom/V2_nom; % 变比计算 -
移相角计算:
$$ \phi = \frac{\pi}{2} \times \frac{P_{ref}}{P_{max}} $$
其中Pmax由电压和电感参数决定 -
实现软启动:移相角从0开始,在100ms内线性增加到目标值
保护功能配置:
- 原边过流阈值:±15A
- 副边过压阈值:420V
- 变压器饱和检测:di/dt异常监控
- 热关断:模拟温度>85℃时停止工作
4. 系统级保护策略实现
4.1 分层保护架构设计
| 保护层级 | 检测量 | 阈值 | 动作延时 | 动作内容 |
|---|---|---|---|---|
| 第一级 | 母线电压 | >400V | 50ms | 切断光伏输入 |
| 第二级 | 电池电流 | >20A | 10ms | 限制DAB功率 |
| 第三级 | 负载电流 | >15A | 5ms | 分段卸负荷 |
| 后备级 | 绝缘电阻 | <50kΩ | 100ms | 全系统断电 |
4.2 Simulink实现要点
-
故障检测模块搭建:
- 使用RMS模块计算电压电流有效值
- 通过Compare To Constant设置阈值
- 逻辑判断采用Stateflow实现状态机
-
保护动作执行:
matlab复制function [PV_en, Bat_en, Load_shed] = Protection_Logic(V_bus, I_bat, I_load) persistent timer1, timer2, timer3; % 母线过压保护 if V_bus > 400 if timer1 < 0.05 timer1 = timer1 + Ts; else PV_en = false; end else timer1 = 0; end % 其他保护逻辑类似... end -
仿真步长设置:
- 电力电子部分:50ns (对应50kHz开关频率)
- 控制部分:100μs
- 保护逻辑:1ms
5. 仿真调试与结果分析
5.1 典型测试场景
-
光伏骤降测试:
- 初始光照1000W/m² → 突然降至200W/m²
- 观察电池从放电切换到充电的过渡过程
- 关键指标:母线电压波动应<5%
-
负载冲击测试:
- 突然接入额外50%负载
- 检查电池和光伏的功率再分配动态
- 保护系统不应误动作
-
短路故障测试:
- 在t=0.5s时模拟负载侧短路
- 验证保护动作时间和隔离效果
5.2 实测波形解读
图1显示母线电压在负载突变时的响应:
- 0.2s时负载从5kW增加到7.5kW
- 电压瞬时跌落至372V(-2.1%)
- 电池在100ms内增加输出功率2.3kW
- 电压恢复至379V(<1%误差)
调试发现:增大DAB的电流环带宽可改善动态响应,但需注意避免开关管过应力。最终选择2kHz带宽作为平衡点。
5.3 常见问题解决
-
代数环问题:
- 现象:仿真报错"Algebraic loop"
- 解决方法:在反馈路径中加入Unit Delay模块
- 原理:打破Simulink求解器的直接反馈依赖
-
仿真速度过慢:
- 优化措施:
- 将连续系统改为离散系统
- 使用Parallel Computing Toolbox
- 对非关键部分改用较大的步长
- 优化措施:
-
收敛性问题:
- 典型表现:仿真中途停止报错
- 调整方法:
- 减小初始步长(1e-6起步)
- 修改求解器为ode23tb
- 检查是否有参数突变(如阶跃信号)
