电力电子仿真这个系列写到第七十四期,后台经常收到关于电能质量治理的提问。在工业现场中,电压暂降和电压跌落是出现频率最高的电能质量问题,哪怕只是几十毫秒的跌落,都可能让精密生产线停机、变频器保护跳闸。解决这类问题的主流装置之一就是动态电压恢复器(DVR, Dynamic Voltage Restorer),而把三相四桥臂逆变器作为 DVR 的核心功率变换单元,再配合解耦控制,就构成了一套非常经典的闭环仿真研究课题。
本文将围绕“基于三相四桥臂逆变器的 DVR 解耦控制闭环仿真”展开,从 DVR 为什么需要四桥臂拓扑、解耦控制到底解的是什么耦,到 Matlab/Simulink 中如何搭建完整的闭环仿真模型,一一拆解。文末会给出参考文献方向、常见问题排查表和工程实践建议。无论你是电力电子方向的研究生,还是正在做电能质量治理项目开发的工程师,这篇文章都能帮你把“原理—控制—仿真”这条链路走通。
1. 背景与核心概念
1.1 DVR 是什么,为什么需要它
DVR 是串联型电能质量补偿装置。它通过耦合变压器串接在电源与敏感负载之间,当检测到电网电压发生暂降、暂升或畸变时,DVR 迅速向线路注入一个补偿电压,使负载侧电压恢复为正常水平。
用一个简单的示意来描述:
电网 —— 耦合变压器 —— 敏感负载 ↑ DVR 逆变器从控制角度看,DVR 本质上是一个受控电压源。它需要实时检测系统电压,计算跌落深度,然后生成幅值和相位都可控的补偿电压。整个动作要求在几毫秒内完成,因此控制系统的动态响应速度非常关键。
1.2 为什么要选三相四桥臂逆变器
传统三相三桥臂逆变器在对称负载下表现良好,但在实际配电系统中,负载往往是不平衡的,尤其是单相负载的大量接入,会导致中线电流问题。三相三桥臂逆变器没有中线通路,无法为零序电流提供回路,因此在处理不平衡电压跌落时效果不佳。
三相四桥臂逆变器在传统三相桥臂的基础上增加了一个桥臂,该桥臂直接连接到负载中线。第四桥臂的作用是:
- 为零序电流提供流通路径;
- 扩展逆变器的控制自由度;
- 提高不平衡负载下的补偿能力。
也就是说,三相四桥臂逆变器能同时处理正序、负序和零序分量,这一点对 DVR 应对各类电压跌落工况非常关键。
1.3 解耦控制到底在“解”什么
三相逆变器的数学模型经过坐标变换后,d 轴和 q 轴分量之间会存在交叉耦合项。如果不做解耦,d 轴电压的变化会影响 q 轴电流,q 轴电压的变化也会影响 d 轴电流,控制起来就像“按下一个按钮会同时触发两个动作”,无法实现独立调节。
解耦控制的核心思路是:通过前馈补偿的方式,把交叉耦合项抵消掉,让 d 轴和 q 轴变成两个相对独立的控制通道。这样 d 轴可以独立控制有功分量,q 轴独立控制无功分量,控制器的设计就简单可靠得多。
2. 三相四桥臂逆变器的数学模型与解耦原理
2.1 三相四桥臂逆变器拓扑结构
先看拓扑结构。三相四桥臂逆变器由直流母线、四个桥臂、输出滤波电感和滤波电容组成。
直流母线正极 —— Q1 Q3 Q5 Q7 —— 滤波电感 —— 输出端 A/B/C/N 直流母线负极 —— Q2 Q4 Q6 Q8- Q1/Q2 构成 A 相桥臂;
- Q3/Q4 构成 B 相桥臂;
- Q5/Q6 构成 C 相桥臂;
- Q7/Q8 构成中线桥臂,输出端 N 连接到负载中线。
第四桥臂的加入,使逆变器输出端多了一个可控自由度。通过控制第四桥臂的开关状态,可以主动控制中点电压,为零序电流提供通路。
2.2 坐标变换与 dq0 坐标系
对三相四桥臂系统建模时,一般将三相静止坐标系(abc)通过 Clarke 变换和 Park 变换,转换到两相旋转坐标系(dq0)。变换过程如下:
- abc → αβ0(Clarke 变换)
- αβ0 → dq0(Park 变换)
变换后:
- d 轴分量对应有功相关量;
- q 轴分量对应无功相关量;
- 0 轴分量对应零序相关量,由第四桥臂控制。
对于三相四桥臂逆变器,必须在 dq0 坐标系下分别建立数学模型,因为 0 轴独立于 d-q 轴,但会通过中线回路影响系统行为。
2.3 解耦控制的数学表达
忽略开关谐波后,三相四桥臂逆变器在 dq0 坐标系下的电压方程为:
L * did/dt = -R * id + ωL * iq + vd - vod L * diq/dt = -R * iq - ωL * id + vq - voq L * di0/dt = -R * i0 + v0 - vo0其中:
- vd、vq、v0 为逆变器输出桥臂电压的 dq0 分量;
- vod、voq、vo0 为滤波电容电压(即负载电压)的 dq0 分量;
- ω 为电网角频率;
- R 和 L 为滤波电感等效电阻和电感值。
注意第一和第二个方程中的ωL * iq和-ωL * id就是耦合项。为了实现 d 轴和 q 轴的独立控制,控制器输出中需要加入前馈补偿:
vd_ref = PI_id + vod - ωL * iq vq_ref = PI_iq + voq + ωL * id v0_ref = PI_i0 + vo0这样,d 轴电流环的输出里补偿掉ωL * iq,q 轴电流环的输出里补偿掉ωL * id,交叉耦合就被抵消了。0 轴不与其他轴耦合,单独控制即可。
3. 闭环控制系统整体设计
3.1 双闭环控制架构
DVR 逆变器通常采用电压外环、电流内环的双闭环控制结构:
- 电压外环:控制滤波电容电压,也就是负载侧电压,输出作为电流内环的参考值;
- 电流内环:控制滤波电感电流,提高动态响应速度,并限制过流。
这种结构的优势在于:电压环保证稳态精度和波形质量,电流环提高响应速度和系统稳定性。
3.2 三相四桥臂控制通道划分
三相四桥臂 DVR 解耦控制的通道划分如下:
| 控制通道 | 控制对象 | 主要作用 |
|---|---|---|
| d 轴通道 | 电压/电流 d 轴分量 | 控制有功补偿,维持负载电压幅值 |
| q 轴通道 | 电压/电流 q 轴分量 | 控制无功补偿,调节相位 |
| 0 轴通道 | 电压/电流零序分量 | 消除不平衡,抑制中线电流 |
三个通道完全独立后,可以分别整定控制器参数,互不干扰。
3.3 调制策略选择
三相四桥臂逆变器的调制策略与普通三桥臂逆变器不同,不能直接使用传统空间矢量脉宽调制(SVPWM)。常用的方法是三维空间矢量脉宽调制(3D-SVPWM),它将第四桥臂的开关状态纳入矢量合成中,在三维空间中进行最近三矢量或最近四矢量合成。
3D-SVPWM 的实现步骤通常是:
- 把目标电压矢量投影到 αβ0 坐标系;
- 判断目标矢量所在的四面体区域;
- 选择合成该矢量的开关状态组合;
- 计算各开关状态的占空比;
- 生成 PWM 脉冲。
在 Simulink 仿真中,也可以使用简化的载波调制方案替代 3D-SVPWM,来验证控制算法的核心逻辑,之后再替换为完整调制策略。
3.4 参考电压生成
DVR 的补偿目标是让负载侧电压等于额定值。因此:
Vload_ref = V额定 Vcomp_ref = Vload_ref - Vsource即补偿电压参考值等于额定电压与实际电源电压之差。检测到电压跌落时,控制器计算出每个时刻需要补偿的电压,并输出到调制环节。
4. 仿真环境与参数设计
4.1 仿真平台选择
本文的仿真模型基于 Matlab/Simulink 搭建。Simulink 的 Simscape Electrical(原 SimPowerSystems)工具库提供了三相逆变器桥、变压器、测量模块等现成组件,非常适合电力电子闭环仿真的快速验证。
版本方面,SimPowerSystems 在较新的版本中更名为 Simscape Electrical,模块名称和位置可能随版本有所调整。本文示例的建模思路适用于 R2016a 之后的多数版本,具体操作时以你自己安装的版本为准。
4.2 系统参数设计原则
仿真参数需要根据实际工况设定。以常见的低压配电系统为例,可以按以下范围选取:
| 参数 | 示例值 | 说明 |
|---|---|---|
| 电网线电压有效值 | 380 V / 50 Hz | 三相交流系统额定电压 |
| 直流母线电压 | 700 V | 需高于补偿电压峰值 |
| 开关频率 | 10 kHz | IGBT 典型开关频率 |
| 滤波电感 L | 3 mH | 兼顾滤波效果与动态响应 |
| 滤波电容 C | 30 μF | 与电感构成 LC 滤波器 |
| 耦合变压器变比 | 1:1 | 根据补偿电压范围调整 |
以上数值仅为示例。实际工程中,滤波器的截止频率需要在开关频率的 1/10 到 1/5 之间,以避免开关谐波进入控制带宽。
4.3 跌落工况设置
仿真时通常设置以下跌落场景:
- 单相电压暂降:A 相电压跌落至额定值的 50%,持续 0.1 s;
- 两相电压暂降:A、B 两相同时跌落;
- 三相电压暂降:三相电压对称跌落。
重点观察 DVR 在这些场景下的补偿效果,尤其是负载侧电压是否能恢复为三相对称额定值。
4.4 仿真初始化脚本
在 Simulink 模型中,参数可以通过脚本统一初始化,方便调整工况。下面是一份参数初始化脚本示例:
% 文件路径:init_dvr_params.m % DVR 三相四桥臂逆变器仿真参数初始化 %% 系统参数 f_grid = 50; % 电网频率 Hz Vrms_line = 380; % 线电压有效值 V Vphase_peak = Vrms_line * sqrt(2) / sqrt(3); % 相电压峰值 V Vdc = 700; % 直流母线电压 V %% 滤波器参数 Lf = 3e-3; % 滤波电感 H Rf = 0.1; % 滤波电感等效串联电阻 Ohm Cf = 30e-6; % 滤波电容 F %% 控制参数 fs = 20000; % 采样/开关频率 Hz Ts = 1 / fs; % 采样周期 s w = 2 * pi * f_grid; % 角频率 rad/s %% 电压跌落工况 t_drop_start = 0.05; % 跌落开始时间 s t_drop_end = 0.15; % 跌落结束时间 s drop_depth = 0.5; % 跌落深度,0.5 表示跌至额定值的50% %% 电压电流双闭环 PI 参数 % 电压外环 Kp_v = 2.0; Ki_v = 100; % 电流内环 Kp_i = 10; Ki_i = 500;需要说明的是,PI 参数是最初的试凑值,实际仿真时需要根据波形微调。参数整定的目标是:电压波形无静差、动态超调小、恢复时间短。
5. 基于 Matlab/Simulink 的完整仿真搭建
下面按照完整的搭建流程,从主电路到控制子系统逐个说明。
5.1 主电路搭建
主电路需要以下模块:
- DC Voltage Source:直流电压源,电压值设置为
Vdc; - Universal Bridge:选择“Three-arm bridge”或“Four-arm bridge”,根据版本选择 IGBT 开关;
- 滤波电感 L:三相或单个电感模块,参数设置为
Lf和Rf; - 滤波电容 C:星形连接,其中电容中性点与第四桥臂输出端连接;
- 耦合变压器:使用 Three-Phase Transformer 模块,原边接逆变器输出,副边串联在电源与负载之间;
- 负载:使用 Three-Phase Series RLC Load。
连接方式依次为:直流源 → 四桥臂逆变器 → 滤波电感 → 滤波电容 → 耦合变压器 → 电网与负载串联点。
5.2 第四桥臂的连接细节
第四桥臂的输出端不能悬空。它必须连接到滤波电容的中性点和负载中线。
接线思路:
逆变器 A 相输出 —— LA —— CA —— 变压器 A 相原边 逆变器 B 相输出 —— LB —— CB —— 变压器 B 相原边 逆变器 C 相输出 —— LC —— CC —— 变压器 C 相原边 逆变器 N 相输出(第四桥臂)—— CN —— 负载中线滤波电容采用星形连接,三个电容的公共端接逆变器的 N 相输出。这样零序电流就有完整的通路。
5.3 测量模块配置
仿真中需要测量以下信号:
- 电源电压
Vs_abc:用于计算补偿参考值; - 负载电压
Vload_abc:用于闭环反馈; - 滤波电感电流
iL_abc:用于电流内环反馈; - 逆变器输出电流:用于观测和保护判断。
使用 Three-Phase V-I Measurement 模块,选择输出“Voltage”和“Current”,并根据需要设置标记变量名,例如Vload_abc、iL_abc。
5.4 信号采集与坐标变换
电压电流信号需要从 abc 坐标系转换到 dq0 坐标系。在 Simulink 中可以使用“abc_to_dq0 Transformation”模块,但要注意:
- 变换模块需要输入正弦角速度 θ,一般由三相锁相环(PLL)提供;
- 对于 DVR,锁相信号应从电网侧电压获取,而不是负载侧电压;
- 0 轴分量直接等于三相瞬时值的零序分量,不需要旋转角度参与计算。
如果没有现成的变换模块,也可以使用自定义的 Matlab Function 模块。下面是一个参考实现:
function [vd, vq, v0] = abc_to_dq0(va, vb, vc, theta) % abc --> dq0 变换 sin_t = sin(theta); cos_t = cos(theta); % Clarke 变换 alpha = (2/3) * (va - 0.5*vb - 0.5*vc); beta = (2/3) * (sqrt(3)/2 * vb - sqrt(3)/2 * vc); v0 = (1/3) * (va + vb + vc); % Park 变换 vd = cos_t * alpha + sin_t * beta; vq = -sin_t * alpha + cos_t * beta; end这里使用的是“等幅值”变换系数,即 dq 轴分量幅值与相电压幅值一致。使用不同变换系数时,PI 参数需要相应调整。
5.5 电压外环控制子系统
电压外环的作用是让负载电压跟踪参考值。参考值由额定电压和实际测量电压共同决定:
Vd_ref = 额定电压 d 轴参考值 Vq_ref = 0 V0_ref = 0误差经过 PI 控制器后,输出作为电流内环的参考信号。注意电压环输出要限幅,避免产生过大的电流指令。
5.6 电流内环与解耦补偿
电流内环中包含前馈解耦项。根据前面推导的公式:
% 电流内环输出计算(伪代码) vd_ref = (Kp_i + Ki_i/s) * (id_ref - id) - w * Lf * iq + vod; vq_ref = (Kp_i + Ki_i/s) * (iq_ref - iq) + w * Lf * id + voq; v0_ref = (Kp_i + Ki_i/s) * (i0_ref - i0) + vo0;在 Simulink 中,-w * Lf * iq和+w * Lf * id就是前馈解耦项,它们直接把耦合通道抵消掉。vod、voq和vo0是负载电压的前馈量,能提升动态响应速度,不是必须的,但加入后效果更好。
5.7 反变换与调制脉冲生成
解耦控制器的输出是 dq0 坐标系下的电压指令,需要先反变换回 abc 坐标系,再进入 PWM 调制模块。
function [va, vb, vc] = dq0_to_abc(vd, vq, v0, theta) % dq0 --> abc 反变换 sin_t = sin(theta); cos_t = cos(theta); alpha = cos_t * vd - sin_t * vq; beta = sin_t * vd + cos_t * vq; va = alpha + v0; vb = -0.5 * alpha + sqrt(3)/2 * beta + v0; vc = -0.5 * alpha - sqrt(3)/2 * beta + v0; end得到 abc 三相电压指令后,与三角载波比较,生成 PWM 脉冲。对于三相四桥臂逆变器,需要四路比较信号,第四桥臂的调制信号一般是零序电压指令。
5.8 仿真设置
仿真求解器使用变步长或固定步长均可。对于电力电子闭环仿真,建议:
- 使用固定步长求解器(如 ode3);
- 步长设置为 1e-6 到 5e-6 秒;
- 仿真时长设置为 0.25 s,覆盖跌落前、跌落中、恢复后三个阶段。
如果仿真速度过慢,可以适当增大步长到 1e-5 秒,但要注意波形精度下降的问题。
5.9 参考信号与跌落工况实现
跌落工况可以通过一个可控电压源实现。一种简单的方式是,在电源模型中用三相交流电压源串联一个切换模块,在指定时间改变电压源幅值。
更灵活的方式是使用 Simulink 的 Step 信号控制电压源内部增益:
% 电压跌落控制信号 drop_signal = 1 - drop_depth * (t >= t_drop_start && t < t_drop_end);这里的drop_signal直接乘以额定电压幅值,就能模拟电压跌落。
6. 仿真结果与分析
6.1 电压暂降补偿效果
仿真运行后,需要重点观察负载侧三相电压波形。预期结果是:
- 跌落发生前:负载电压为三相对称额定电压;
- 跌落期间:电源电压幅值下降,但负载电压基本保持额定幅值;
- 跌落后:负载电压平滑恢复,无剧烈冲击。
如果负载电压在跌落期间有明显凹陷,说明动态响应不足或 PI 参数偏保守。适当增大电压环比例系数可以加快恢复速度,但过大会引起振荡。
6.2 中线电流与零序抑制效果
在不平衡负载或单相跌落工况下,中线电流是一个重要的观察指标。第四桥臂正常工作时,负载侧中线电流被有效控制。如果第四桥臂的调制或控制有问题,中线电流会出现明显畸变。
判断标准:
- 补偿前电源侧中线电流可能较大;
- 补偿后负载侧三相电压对称,中线电流明显减小;
- 0 轴电压指令平稳,无高频剧烈波动。
6.3 d-q 轴解耦效果
解耦控制的优势可以通过以下方式验证:
- 单独改变 d 轴参考值,观察 q 轴电流是否受影响;
- 单独改变 q 轴参考值,观察 d 轴电流是否受影响;
- 在跌落发生的动态过程中,观察 d、q 轴电流是否存在明显耦合振荡。
如果没有解耦项,改变 d 轴参考值时,q 轴电流会跟着波动;加了前馈解耦后,两者基本互不影响。
6.4 动态响应指标
读取跌落发生的瞬间到负载电压恢复到额定值的时间,通常称为恢复时间。DVR 的典型恢复时间要求在 5 ms 以内。仿真中可以通过波形测量得到实际恢复时间,如果超过这个范围,需要优化控制器参数或增大滤波器的带宽。
6.5 谐波分析
使用 Powergui 模块的 FFT Analysis 工具,可以对负载电压波形进行谐波分析。重点关注:
- 输出电压总谐波畸变率(THD),一般要求小于 5%;
- 各次谐波含量是否在合理范围;
- 开关频率附近的谐波是否被 LC 滤波器有效衰减。
下面是一个简单的 FFT 分析脚本:
% 文件路径:fft_analysis.m % 对负载电压波形进行 FFT 分析 data = Vload_abc; % 从仿真工作区读取数据 t = data.time; va = data.signals.values(:, 1); % 截取稳态波形 idx = t > 0.2 & t < 0.24; va_steady = va(idx); fs_fft = 1 / (t(2) - t(1)); L = length(va_steady); Y = fft(va_steady); P2 = abs(Y / L); P1 = P2(1:L/2+1); P1(2:end-1) = 2 * P1(2:end-1); f = fs_fft * (0:(L/2)) / L; % 计算基波及 THD [f_M, idx_M] = max(P1); THD = sqrt(sum(P1.^2) - f_M^2) / f_M * 100; fprintf('基波频率: %.2f Hz\n', f(idx_M)); fprintf('电压 THD: %.2f%%\n', THD);7. 参考文献与进一步学习方向
7.1 三相四桥臂逆变器方向
三相四桥臂逆变器的建模和调制策略已经有很多成熟研究,这部分文献的阅读重点是:
- 三维空间矢量调制算法的推导过程;
- 第四桥臂在不对称负载下的工作机理;
- 中点电压偏移问题及抑制策略。
推荐从 IEEE Transactions on Power Electronics 和《中国电机工程学报》中检索“three-phase four-leg inverter”和“3D-SVPWM”相关论文。
7.2 DVR 控制策略方向
DVR 的核心在于补偿策略,重点研究内容包括:
- 电压跌落检测算法:如 dq 变换法、瞬时电压法;
- 补偿策略对比:同相补偿、预跌落补偿、最小能量补偿;
- 串联补偿与锁相环的配合。
7.3 解耦控制在逆变器中的应用
解耦控制是逆变器控制的基础。论文阅读时重点关注:
- 前馈解耦与交叉解耦的优劣对比;
- 解耦控制在弱电网条件下的适应性;
- 零轴通道的独立控制策略。
8. 常见问题与排查思路
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 仿真报错“SimPowerSystems not found” | Matlab 版本过旧或未安装 Simscape Electrical 工具箱 | 安装对应工具箱,或改用 Simscape Electrical 模块库名称 |
| 负载电压跌落时无法恢复 | 电压环 PI 参数太小,响应太慢 | 增大 Kp,适当调整 Ki |
| 波形高频振荡 | 电流内环比例系数过大或滤波器带宽过高 | 减小 Kp_i,增大滤波电感或电容 |
| d 轴与 q 轴相互影响 | 解耦前馈项未接入或符号错误 | 检查解耦项ωL*iq和ωL*id的符号 |
| 中线电流过大 | 第四桥臂调制波缺失或接线错误 | 检查第四桥臂输出是否连接电容中性点和负载中线 |
| 仿真速度极慢 | 步长过小 | 调整步长到 1e-6 或 1e-5 量级,同时保留足够的波形精度 |
| THD 超标 | 滤波器参数不匹配或死区时间设置不合理 | 检查 LC 谐振频率,优化死区补偿 |
9. 工程实践建议
9.1 模型验证优先于参数优化
先让模型跑通,再追求波形质量。很多初学者在搭建 DVR 模型时,一开始就盯着 PI 参数调,结果系统发散却找不出原因。正确顺序是:
- 开环测试:给固定调制波,观察逆变器输出波形;
- 电流环闭环:只接电流内环,验证跟随效果;
- 电压外环闭环:加入电压环,观察负载电压波形;
- 解耦补偿:最后加入前馈解耦项,对比效果。
9.2 控制器参数整定要由内到外
双闭环控制器先整定内环,再整定外环。内环整定时,可以把电压环直通或设为单位比例,只观察电流跟踪效果。内环稳定后,再接电压环。
9.3 仿真步长与精度平衡
电力电子仿真中,采样步长直接影响仿真的稳定性和速度。对于 10 kHz 的开关频率,仿真步长至少要在开关周期的 1/20 以下,也就是 5 μs 左右。如果模型规模较大,可以采用多速率仿真:主电路用小步长,控制器用较大步长。
9.4 留好扩展接口
在搭建模型时,建议把控制器部分封装成子系统,并使用结构化命名,例如:
DVR_System/ ├── PowerCircuit/ │ ├── Inverter_FourLeg │ ├── LC_Filter │ ├── CouplingTransformer │ └── Load ├── Controller/ │ ├── PLL │ ├── abc_dq0_Transform │ ├── VoltageLoop │ ├── CurrentLoop_Decoupling │ └── PWM_3D_SVPWM ├── Measurement/ │ ├── Vs_abc │ ├── Vload_abc │ └── iL_abc这样一来,后续替换调制策略、修改拓扑或扩展其他控制算法时,只需要改动对应子系统即可。
9.5 注意 DVR 系统与电网的交互
实际工程中的 DVR 还需要考虑电网阻抗、锁相环动态特性和故障时 DVR 的旁路保护。仿真中可以在电网侧串联一个小阻抗来模拟线路阻抗,进一步检验控制系统的鲁棒性。
10. 总结
三相四桥臂 DVR 解耦控制闭环仿真,核心在于三个环节的打通:第一是四桥臂逆变器的拓扑建模,第二是 dq0 坐标系下的解耦控制策略,第三是闭环仿真系统的搭建与调试。本文从这三条主线出发,给出了完整的原理推导、Simulink 搭建步骤和参数设置方法,希望能帮你少走弯路。
接下来你可以继续尝试的方向包括:把载波调制替换为三维空间矢量调制,对比不同调制策略下的谐波表现;在 DVR 中加入储能单元约束,研究最小能量补偿策略;或者把控制算法从 PI 扩展为重复控制、无差拍控制,研究在非线性负载下的补偿效果。
动手搭建模型时,如果某个环节的结果和理论预期不符,优先确认坐标变换的系数、PLL 锁相角度和解耦项的符号三个位置,多数闭环问题都能在这三处找到突破口。