目录
手把手教你学 Simulink
—— 交流微电网中双向 DC‑AC 变换器的 多模式切换(Mode Switching)仿真
一、微电网中常见的 5 种运行模式**
二、系统拓扑(终极封顶版)**
三、多模式切换控制架构**
四、关键参数(综合)**
五、Simulink 建模 Step‑by‑Step**
Step ① —— 主功率回路(综合)
Step ② —— PV + Boost MPPT(M2 用)
Step ③ —— BESS SOC 模型
Step ④ —— EMS 决策逻辑(MATLAB Function)
Step ⑤ —— ★模式切换 Stateflow(核心!)
Step ⑥ —— 各模式的 i_d, i_q生成(Switch 汇总)
Step ⑦ —— dq 电流 PI + ωL 解耦(共用)
Step ⑧ —— SVPWM + 死区
Step ⑨ —— 仿真工况(模拟一天 24h 压缩到 24s)**
六、典型结果判读**
✅ 模式切换时序
✅ 孤岛期间(12.5~14s)
✅ 重并网(14s)
七、多模式参数调优建议**
八、常见坑(多模式特有!)**
九、工程意义**
十、结论**
十一、系列完整总结(20 讲)**
十二、最终封顶(全部集成)**
手把手教你学 Simulink
—— 交流微电网中双向 DC‑AC 变换器的多模式切换(Mode Switching)仿真
✅ 本讲是你微电网 / BESS / V2G 系列的第 20 讲,也是封顶实操篇
前面已完成:PQ、V/F、LVRT、下垂、并联CCSC、孤岛检测、MPPT、削峰填谷、V2G、一次调频……
本讲把所有模式集成到一个模型里,用状态机(State Machine) 实现多模式自动切换,复现工程真实的EMS → PCS 多模式运行。
一、微电网中常见的 5 种运行模式**
模式编号 | 模式名称 | 控制策略 | 典型场景 |
|---|---|---|---|
M1 | 并网 PQ(Vdc‑PI) | PLL 锁相 + Vdc‑PI → i_d* | 正常并网,光伏/储能按计划出力 |
M2 | 并网 MPPT + PQ | PV → Boost MPPT → Vdc‑PI → 并网 | 白天光伏优先 |
M3 | 削峰填谷(EMS) | P_ref = f(load, SOC, TOU) → PQ | 峰谷电价差套利 |
M4 | 一次调频 PFR | ΔP = −K·Δf(deadband) → PQ 叠加 | 电网频率异常 |
M5 | 孤岛 V/F(Grid‑Forming) | 本地 θ=∫ω₀ + V‑PI 外环 | 电网掉电,重要负荷不间断 |
👉一个 BESS + PV 微电网,一天之内会经历 M1→M2→M3→M4→M5→M1 的完整循环
二、系统拓扑(终极封顶版)**
┌─ PV Array ──┐ │ (MPPT) │ └──┬──────────┘ │ Vpv ┌──────▼──────────────┐ │ Boost (MPPT) │ │ → Vbus = 700V │ └──────┬──────────────┘ │ Vbus ┌──────▼──────────────┐ │ Battery (BESS) │ │ Bidirectional DC‑DC │ │ (SOC 估算 + 保护) │ └──────┬──────────────┘ │ Vdc = 700 V ┌──────▼──────────────────────────┐ │ 三相两电平逆变器(双向) │ │ ┌────────────────────────────┐ │ │ │ 模式选择 State Machine │ │ │ │ • M1: PQ(Vdc‑PI) │ │ │ │ • M2: MPPT+PQ │ │ │ │ • M3: EMS 削峰填谷 │ │ │ │ • M4: PFR 一次调频 │ │ │ │ • M5: V/F 孤岛 │ │ │ └────────┬─────────────────┘ │ │ ↓ i_d*, i_q* │ │ dq‑PI 电流内环 + ωL 解耦 │ │ + 谐波补偿 HC(5/7次) │ │ + LVRT(并网模式) │ └──────┬──────────────────────────┘ │ Lf = 3 mH └───────┬───────────────┐ │ PCC │ └── 三相电网 / 本地负载✅ 本讲教学简化:
PV + Boost MPPT(已有前讲)
Battery → 理想 DC 源 + SOC 积分(已有前讲)
重点放在 Mode State Machine + 模式切换逻辑
三、多模式切换控制架构**
┌───────────────────────────────────────────┐ │ EMS(Energy Management System) │ │ • 读取:SOC, P_load, f_grid, V_grid │ │ • 决策:Mode = f(time, SOC, grid) │ └───────────────┬───────────────────────────┘ │ Mode ▼ ┌───────────────────────────────────────────┐ │ Mode Switching Logic(Stateflow) │ │ │ │ M1: PQ(Vdc‑PI) │ │ i_d* = PI_vdc(Vdc_ref − Vdc) │ │ i_q* = 0 │ │ │ │ M2: MPPT + PQ │ │ D_boost = f(P&O) │ │ i_d* = PI_vdc(Vdc_ref − Vdc) │ │ │ │ M3: EMS 削峰填谷 │ │ P_ess = f(P_load, SOC) │ │ i_d* = 2·P_ess / (3·v_d) │ │ │ │ M4: PFR 一次调频 │ │ ΔP = −K_pfr·Δf(deadband) │ │ i_d* = i_d*_base + 2·ΔP/(3·v_d) │ │ │ │ M5: V/F 孤岛 │ │ θ = ∫ω₀ dt │ │ i_d* = PI_v(V_ref − v_d) │ │ i_q* = PI_v(0 − v_q) │ └───────────────┬───────────────────────────┘ │ i_d*, i_q* ▼ ┌───────────────────────────────────────────┐ │ dq‑PI 电流内环 + ωL 解耦 │ │ + 谐波补偿 HC(5/7次) │ │ + LVRT(M1~M4 时激活) │ └───────────────┬───────────────────────────┘ ↓ SVPWM → 逆变器四、关键参数(综合)**
参数 | 值 |
|---|---|
Vdc_bus | 700 V |
Vg_ll | 400 V |
f_grid | 50 Hz(可波动) |
Lf | 3 mH |
PV | 5~8 kW(MPPT) |
BESS | 60 kWh, SOC 10%~90% |
P_ess_max | ±20 kW |
K_pfr | 10 kW/Hz |
deadband | ±0.05 Hz |
V‑PI | Kp=0.6, Ki=40 |
i‑PI | Kp=1.0, Ki=80 |
f_sw | 10 kHz |
Ts_power | 1e‑6 |
Ts_ctrl | 100 µs |
Ts_EMS | 1 s(慢环) |
五、Simulink 建模 Step‑by‑Step**
Step ① —— 主功率回路(综合)
PV Array(或受控源)→Boost MPPT(已有前讲)
DC Voltage Source = 700V(代表 Bat+DC‑DC 稳压)
Universal Bridge(3‑Phase IGBT)
Series R‑L:
Lf=3mHPCC →Three‑Phase Programmable V Source(400V LL)
PCC 后接三相时变 R‑L Load(模拟日负荷)
测量:
i_inv_abc,v_grid_abc,Vdc,i_load_abc
✅ Powergui → Discrete(1e‑6)
✅ Dead‑Time 300 ns
Step ② —— PV + Boost MPPT(M2 用)
沿用第 14 讲模型
P&O:ΔD=0.005, Ts_mppt=0.1s
Vdc_ref = 700V
Step ③ —— BESS SOC 模型
P_dc = Vdc · I_dc_approx (or P_ac/η) d(SOC)/dt = −P_dc / (E_bat·3600)E_bat = 60 kWh × 3600 = 2.16e8 J
Integrator IC = 0.6(60%)
Saturate [0.1, 0.9]
Step ④ —— EMS 决策逻辑(MATLAB Function)
function Mode = ems_decision(t, SOC, P_load, f_grid, V_grid_rms) % 时间分段(模拟一天) if t < 4 % 深夜谷 Mode = 3; % 削峰填谷:充电 elseif t < 8 % 早平 if SOC > 0.8 Mode = 1; % PQ 待机 else Mode = 2; % MPPT 充电 end elseif t < 12 % 上午峰 Mode = 3; % 削峰填谷:放电 elseif t < 14 % 中午 Mode = 2; % MPPT 优先 elseif t < 18 % 下午峰 Mode = 3; % 削峰填谷:放电 elseif t < 22 % 晚间平 if SOC < 0.3 Mode = 1; % PQ 待机,保 SOC else Mode = 3; % 适度放电 end else % 深夜 Mode = 3; % 充电填谷 end % 电网异常 → 强制模式 if V_grid_rms < 0.88 * 400 || V_grid_rms > 1.1 * 400 Mode = 5; % 孤岛 V/F elseif abs(f_grid − 50) > 0.5 Mode = 5; % 频率异常 → 孤岛 end % SOC 安全限制 if SOC <= 0.1 && Mode == 3 && P_ess < 0 % 不能放电 Mode = 1; end if SOC >= 0.9 && Mode == 3 && P_ess > 0 % 不能充电 Mode = 1; end endStep ⑤ —— ★模式切换 Stateflow(核心!)
Stateflow 状态机:
┌───────────────────────────────────────────────┐ │ │ │ [M1] ──PQ(Vdc‑PI)──┐ │ │ ▲ │ │ │ │ ┌──────────▼──┐ │ │ │ │ [M2] MPPT+PQ │ │ │ │ └──────────┬──┘ │ │ │ │ │ │ │ ┌──────────▼──────┐ │ │ │ │ [M3] 削峰填谷 │ │ │ │ └──────────┬──────┘ │ │ │ │ │ │ │ ┌──────────▼──────┐ │ │ │ │ [M4] PFR 调频 │ │ │ │ └──────────┬──────┘ │ │ │ │ │ │ │ ┌──────────▼──────┐ │ │ └────│ [M5] V/F 孤岛 │◀──电网异常 │ │ └─────────────────┘ │ │ │ └───────────────────────────────────────────────┘每个状态的输出:
状态 | i_d* 来源 | i_q* 来源 | θ 来源 | LVRT |
|---|---|---|---|---|
M1 | Vdc‑PI | 0 | PLL | ✅ ON |
M2 | Vdc‑PI(MPPT 控 Boost D) | 0 | PLL | ✅ ON |
M3 | EMS P_ess → 2P/(3Vd) | 0 | PLL | ✅ ON |
M4 | M1/M3 的 i_d* + PFR ΔP | 0 | PLL | ✅ ON |
M5 | V‑PI(V_ref − v_d) | V‑PI(0 − v_q) | 本地 ∫ω₀ | ❌ OFF |
切换动作(Transition Actions):
M1 → M5: θ_continue = θ_pll_last; % 继承 PLL 角度 V_ref_ramp = 0→325V(phase) 50ms; M5 → M1: wait until |Δθ|<5°; enable PLL; i_d*_ramp = 0→target 50ms;Step ⑥ —— 各模式的 i_d, i_q生成(Switch 汇总)
用Switch / Multiport Switch 按 Mode 选择:
i_d* = switch(Mode): 1 → PI_vdc(Vdc_ref − Vdc) // M1 2 → PI_vdc(Vdc_ref − Vdc) // M2 (MPPT 控 Boost) 3 → 2·P_ems/(3·v_d) // M3 4 → i_d*_base + 2·ΔP_pfr/(3·v_d) // M4 5 → PI_v(V_ref − v_d) // M5 i_q* = switch(Mode): 1~4 → 0 (or Q_ref) 5 → PI_v(0 − v_q)Step ⑦ —— dq 电流 PI + ωL 解耦(共用)
e_d = i_d* − i_d v_d = PI_i(e_d) − ωL·i_q + v_gd e_q = i_q* − i_q v_q = PI_i(e_q) + ωL·i_d + v_gqStep ⑧ —— SVPWM + 死区
f_sw = 10 kHz
Dead‑Time 300 ns
Step ⑨ —— 仿真工况(模拟一天 24h 压缩到 24s)**
仿真时间 | 对应时刻 | 模式 | 事件 |
|---|---|---|---|
0~4 s | 0:00~4:00 | M3 削峰填谷 | 谷充,SOC↑ |
4~8 s | 4:00~8:00 | M1/M2 | 晨间平段,MPPT 补电 |
8~12 s | 8:00~12:00 | M3 削峰填谷 | 上午峰放,SOC↓ |
12~14 s | 12:00~14:00 | M2 MPPT | 午间光伏高峰 |
14~18 s | 14:00~18:00 | M3 削峰填谷 | 下午峰放 |
18~22 s | 18:00~22:00 | M1/M3 | 晚间(SOC 低则保电) |
22~24 s | 22:00~24:00 | M3 削峰填谷 | 深夜谷充 |
@12.5 s | ~12:30 | → M5 孤岛 | 电网掉电 1.5s |
14~15.5 s | 恢复 | M2→M1 | 重并网 |
Scope 观测:
Mode(1~5)P_grid(各模式下的网侧功率)SOC(t)P_pv(MPPT 时)P_ess(正=放/负=充)f_grid,V_grid_rmsi_a(各模式连续,无中断)
六、典型结果判读**
✅ 模式切换时序
时间 | Mode | P_grid 特征 | SOC |
|---|---|---|---|
0~4 s | M3 谷充 | P_grid 略高于负载(BESS 吸能) | ↑ |
4~8 s | M1/M2 | P_grid ≈ 光伏出力(若有) | ─ |
8~12 s | M3 峰放 | P_grid 被削峰(↓P_grid_max) | ↓ |
12~14 s | M2 MPPT | P_grid ≈ P_pv − P_load | ─ |
12.5~14 s | M5 孤岛 | P_grid=0(断网),本地负载由 BESS 供电 | ↓缓 |
14~15.5 s | M1 重并网 | P_grid 恢复 | ─ |
18~22 s | M3/M1 | 依 SOC 决策 | ─ |
✅ 孤岛期间(12.5~14s)
V/F 控制接管,v_out 保持 400V LL, 50Hz
本地负载电流连续(无停电)
SOC 缓慢下降(供电中)
✅ 重并网(14s)
PLL 重锁 → 平滑切回 M1
P_grid 恢复对应值
无冲击
七、多模式参数调优建议**
参数 | 建议 |
|---|---|
EMS 采样周期 | 1~5 s(慢于电流环 100µs) |
模式切换迟滞 | +200ms 确认时间(防抖动) |
V/F ramp | 20~50 ms(防冲击) |
重并网 Δθ 阈值 | <5°~10° |
SOC 上下限 | 10%~90%(留余量) |
八、常见坑(多模式特有!)**
现象 | 原因 | Fix |
|---|---|---|
模式反复跳变 | EMS 无迟滞 / 无确认时间 | 加 Timer 确认 ≥200ms |
切孤岛时冲击 | V/F ramp 未加 / θ 跳变 | ramp + 继承 PLL θ |
重并网冲击 | Δθ 太大 | 等 Δθ<阈值 再切 |
SOC 极限后模式错 | EMS 未判 SOC 边界 | 加 SOC_min/max 判断 |
MPPT 与 PQ 冲突 | Boost D 和 i_d* 同时控 Vdc | M2 时 i_d* 仅来自 Vdc‑PI |
时变负载不生效 | 用错 Load 模块 | 用 Variable Resistor / R‑L |
九、工程意义**
✅实际 BESS / 微电网 EMS 功能矩阵:
功能 | 标准 | 本讲覆盖 |
|---|---|---|
并网 PQ / Vdc‑PI | IEEE 1547 | ✅ M1 |
MPPT 并网 | IEC 61727 | ✅ M2 |
削峰填谷 | TOU 电价 | ✅ M3 |
一次调频 | IEEE 1547‑2018 | ✅ M4 |
孤岛 V/F | IEEE 1547 / GB/T 33593 | ✅ M5 |
LVRT | IEEE 1547 | ✅ M1~M4 |
谐波抑制 | IEEE 519 | ✅ HC 共用 |
模式切换 | — | ✅ Stateflow |
十、结论**
✅ 你已完成:
✅PV + BESS 混合微电网多模式仿真
✅EMS 决策逻辑(时间 / SOC / 电网状态)
✅5 种模式(M1~M5)无缝切换
✅Stateflow 状态机实现模式管理
✅并网 PQ → MPPT → 削峰填谷 → 一次调频 → 孤岛 V/F → 重并网 完整循环
✅所有模式电流连续、无停电、SOC 安全