☰
配电网中并网逆变器无功-电压下垂控制稳定性分析与Matlab仿真
2026/10/10 11:04:44 网站建设 项目流程

做分布式并网逆变器仿真的同学,十有八九都遇到过这种情况:静态电压控制调得好好的,并网点电压也压得住,无功分配也算均匀,但仿真波形就是莫名其妙出现持续振荡,频率不高不低,电流畸变,甚至触发过流保护。我最早碰这个“基于变流器驱动稳定性在配电网中的 Q(V)-特征控制稳定性分析”的课题时,也在这个问题上卡了很久。后来把目光从控制框图挪到阻抗交互上,才慢慢看懂:所谓驱动稳定性,本质上是个环路增益的问题,而配电网的阻抗特性——尤其阻感比——往往是决定稳定性的隐藏变量。

这篇文章想把这块内容一次性讲透。我会先把 Q(V) 特征控制为什么会失稳的物理机理拆开,再给出能直接落地的稳定性判据和分析流程,最后附上一套完整的 Matlab 频域分析代码,包括参数扫描和稳定边界绘制。本文适合正在做并网逆变器控制、微电网仿真或者分布式电源并网评估的研究生和工程师,也适合想从“调参数”走向“看原理”的仿真选手。

1. 问题背景与整体思路拆解

1.1 分布式变流器为什么会在配电网里“翻车”

先把场景摆出来。一个光伏或储能变流器接在10kV或380V配电网的末端,采用 Q(V) 下垂控制来参与电压调节。所谓 Q(V) 特性,就是让逆变器根据并网点电压偏差自动调节无功输出:电压偏高就少发无功甚至吸收无功,电压偏低就多发无功把电压顶起来。从静态看,这个逻辑没有问题,甚至还很直观。

但一旦走进动态世界,麻烦就来了。变流器通过滤波器、线路阻抗和电网电压源相连,本身是一个闭环控制系统,而并网点电压又是由逆变器注入电流和电网阻抗共同决定的。也就是说,逆变器输出无功 → 改变并网点电压 → 电压反馈又反过来改变无功指令,这就形成了一个闭合回路。配电网和输电网最大的区别在于阻抗特性:输电网基本是感性的,R/X 很小;而中低压配电网线路电阻占比很大,甚至 R/X 可能接近 1 甚至更高。

这个 R/X 特性直接决定了电压和无功之间的耦合关系,也让 Q(V) 控制回路在特定频率下出现相位滞后叠加。如果某一频段上环路增益和相位条件同时“踩雷”,系统就会出现持续振荡,也就是常说的稳定性失稳。所以驱动稳定性问题的本质,是变流器闭环输出阻抗和电网阻抗之间的交互稳定性,而不是单纯的控制参数整定问题。

1.2 Q(V)特征控制的本质与选择逻辑

Q(V) 下垂控制本质上是一种无互联通信的就地电压支撑策略,属于分布式控制里最容易落地的一类。公式表达可以写成:

Q = Q_ref + kq * (V_ref - V_pcc)

其中 kq 是无功-电压下垂系数,单位是 var/V。当 PCC 电压低于参考值时,kq 乘以正的偏差,无功指令增加;电压高于参考值时,无功指令减小。部分文献也会写成 V_ref = V0 - n_q * Q 的形式,两者是对偶关系,但做频域分析时我更喜欢用 Q = f(V) 这种写法,因为它的反馈结构更清晰。

选择 Q(V) 而不是 P(f) 或 Q(V) 与 P(f) 联合控制,主要是考虑到配电网中感性无功对电压调节更直接,而且不会像有功频率控制那样牵扯到一次调频和电力市场的问题。不过在稳定性分析这个维度上,Q(V) 反而比 P(f) 更微妙,因为电压反馈环路的带宽天生受限,电网阻抗的变化范围又大,增益选取稍不留神就会进入振荡区。

换句话说,Q(V) 控制看起来简单,但它的稳定边界不是由静态工作点决定的,而是由动态回路决定的。理解了这一点,后面所有分析才有意义。

2. Q(V)控制稳定性的核心原理

2.1 从一张等效电路说起:把问题压缩成三个变量

要分析驱动稳定性,第一步就是把复杂的并网系统压缩成“看得懂”的模型。工程上最常用的方法就是诺顿等效:把逆变器看作一个受控电流源并联输出阻抗,电网看作理想电压源串联电网阻抗。

![电路示意:逆变器诺顿等效与电网戴维南等效相连](因平台限制,此处用文字说明等效结构)

在这个模型里,并网点电压可以写成:

V_pcc(s) = (Z_g(s) * I_inv(s) + V_g(s)) / (Z_inv(s) + Z_g(s)) * Z_inv(s) (简化示意)

直观的理解是:逆变器注入的电流在电网阻抗上产生电压降落,这个电压降落反过来影响 PCC 电压反馈量,而 PCC 电压又通过 Q(V) 下垂决定注入电流。整个环路就像两个人拽一根绳子:你拉的力量取决于绳子的松紧,而绳子的松紧又取决于你拉的幅度。如果配合不好,整个系统就会以某个频率“抖”起来。

把问题压缩之后,真正影响稳定性的变量只剩三个:逆变器等效输出阻抗 Z_inv(s)、电网阻抗 Z_g(s)、下垂系数 kq。 三个变量相互耦合,但每个变量的物理含义都很清晰,这为定量分析提供了路径。

2.2 阻抗比如何决定稳定区域

配电网和输电网在阻抗特性上的差异,是 Q(V) 控制失稳的一个关键推手。在高压输电网中,电网阻抗基本是纯感性,Z_g = jωL_g,相位接近 90 度;而逆变器输出阻抗经过电流环和滤波器的塑造,在中频段往往呈感性或容性。这时两者相减或相加得到的相位关系相对简单,不容易出现负阻尼。

但在中低压配电网中,电网阻抗必须写成 R_g + jωL_g,而且阻感比 R_g / (ωL_g) 可能达到 0.5 到 2.0 之间。这时候问题就变得微妙起来:

  • 电阻分量的存在使 PCC 电压与无功电流之间的相位关系偏离 90 度,Q(V) 回路在某个频点上可能引入额外的相位滞后;
  • 当 Z_g 和 Z_inv 的幅值比接近 1 时,两者之间的交互会放大谐振峰;
  • 如果配电网还带有并联补偿电容,阻抗特性进一步复杂化,可能引入多个谐振点。

在仿真中我曾做过一组对照实验:同一组控制参数,把电网阻抗从纯感性改为阻感比 1.0 的等效阻抗,结果系统的相角裕度从 38 度直降到 9 度,示波器上从稳定变成了 25Hz 左右的持续振荡。这组对比让我意识到:忽略配电网的电阻分量做稳定性分析,结论可能完全相反。

2.3 特征方程、失稳机制与小信号分析

既然是一个闭环回路,就必然存在特征方程。忽略电流内环的动态(假设其带宽足够高),只考虑 Q(V) 外环,可以得到简化的开环传递函数:

L(s) = kq * (Z_g(s) / (Z_inv(s) + Z_g(s))) * G_delay(s)

其中 G_delay(s) 表示采样、计算和 PWM 调制引入的延迟环节。整个系统的稳定性由 1 + L(s) 的零点位置决定,也就是 L(s) 的奈奎斯特曲线与 (-1, j0) 点的相对关系决定。

失稳的本质可以从阻尼角度理解。对于某一频率 ω0,如果 L(jω0) 的幅值接近 1,且相位接近 -180 度,则在该频点上环路增益足够大、相位滞后也足够大,负反馈变成了正反馈,振荡就会建立起来。换句话说,系统在 ω0 附近的有效阻尼变成负值,能量不断注入振荡模式。

这也是为什么我会把稳定性分析分为三步走:

  1. 建模并求出环路传递函数;
  2. 在频域绘制 Bode 图和奈奎斯特曲线,评估幅值裕度与相位裕度;
  3. 用参数扫描找出临界稳定边界,为控制参数设计提供约束。

三步走完,逻辑闭环就形成了。下一步就是把这些判断落到 Matlab 代码里。

3. 稳定性分析方法与判据选择

3.1 奈奎斯特判据与阻抗比判据

实际做工程分析时,最常用的判据有两个。第一个是奈奎斯特稳定性判据,核心是看 L(s) 的奈奎斯特曲线是否包围 (-1, j0) 点。这个判据适用范围广,既适用于最小相位系统,也适用于含延迟的非最小相位系统,所以对并网逆变器这种带采样延迟的模型特别合适。

但奈奎斯特曲线的缺点是“不太直观”,一般人很难从曲线形状快速判断出“该调哪个参数”。所以工程上我更常用第二个判据:基于阻抗比的中频段判据。理论上,只要逆变器输出阻抗 Z_inv(s) 与电网阻抗 Z_g(s) 的比值满足某种约束,系统就是稳定的。

具体做法是:把环路传递函数写成阻抗比的形式 L(s) = Z_g(s) / Z_inv(s)(注意不同控制结构可能差一个符号或增益系数),然后在 Bode 图上寻找 Z_g 和 Z_inv 幅值曲线的交点。如果交点的频率处相位裕度不足,就说明该处存在振荡风险。

这里有一个经验规律:当 Z_g 与 Z_inv 幅值相等时,如果两者的相位差接近 180 度,系统极大概率失稳。反过来,如果让 Z_inv 的相位始终与 Z_g 保持足够差距,或者让 Z_inv 的幅值在整个相关频段内都高于 Z_g,系统就会有比较好的鲁棒性。

3.2 Bode图、相角裕度与参数窗口

Bode 图是稳定性分析中最直观的工具。对 L(s) 绘制幅频和相频曲线后,我会重点看以下三件事:

  • 剪切频率(幅值曲线穿越 0dB 的频率)处的相角裕度是否大于 30 度;
  • 相位曲线是否在某个频段内多次穿越 -180 度,穿越次数越多越危险;
  • 幅值曲线上是否存在明显的谐振峰,谐振峰的峰值越高说明阻尼越差。

在我做过的仿真项目里,Q(V) 控制回路的剪切频率一般在几十赫兹以内,远低于电流内环的带宽。如果设计得当,相位裕度可以做到 40 度以上。但如果下垂系数 kq 偏大、电网阻抗偏大或采样延迟偏长,剪切频率附近的相位就会掉得非常快,相位裕度迅速缩水到 10 度以下,系统进入振荡临界区。

由此可以导出一个重要的参数设计窗口:kq 不能太小,太小则电压支撑能力不足;kq 也不能太大,太大则稳定裕度丧失。这个“窗口”的下限由调压需求(无功容量和电压偏差的比值)决定,上限由稳定性分析决定。两者相交的区间,就是 Q(V) 控制的可行参数域。

4. Matlab仿真实现与代码解析

4.1 仿真模型搭建与参数设置

频域稳定性分析不需要搭完整的 Simulink 时域模型,直接用传递函数在 Matlab 脚本里计算就行,速度快、改参数方便。但要让结果有意义,参数设置必须和时域模型保持一致。下面这套参数是我在做配网逆变器分析时常用的基准值:

参数取值说明
额定容量 S_n100 kVA逆变器基准容量
额定电压 V_n380 V(线电压)配电网低压侧
电网频率 f050 Hz基波频率
开关频率 f_sw10 kHzPWM 载波频率
滤波电感 L_f0.4 mHLCL 或 L 滤波
滤波电容 C_f10 μFLCL 滤波使用
采样延迟 T_d100 μs一个采样周期
电网电感 L_g0.2~2 mH弱电网到强电网扫描
电网电阻 R_g0.05~0.5 Ω对应不同阻感比
下垂系数 kq200~2000 var/V需要扫描的参数区间

注意,LCL 滤波器的谐振峰对稳定性影响非常大,如果直接忽略电容支路,会得到偏乐观的结果。我做简化分析时会保留 LCL 的等效模型,至少要把谐振峰的位置算出来,再决定是否可以忽略。

4.2 核心代码逐段拆解

先建立逆变器输出阻抗和电网阻抗的传递函数。下面这段代码是整套分析的地基:

%% 参数定义 f0 = 50; w0 = 2*pi*f0; Sn = 100e3; Vn = 380; Vphase = Vn/sqrt(3); Zb = Vn^2 / Sn; % 基准阻抗 fs = 10e3; Ts = 1/fs; Td = 100e-6; % 等效延迟 Lf = 0.4e-3; Cf = 10e-6; Rf = 0.01; % 滤波电感寄生电阻 Lg = 0.5e-3; % 电网电感 Rg = 0.1; % 电网电阻 kq = 800; % 下垂系数 var/V s = tf('s'); %% 逆变器闭环等效输出阻抗(简化) % 电流内环设为高带宽,简化为比例增益 Ki Ki = 10; Zinv = (s*Lf + Rf) / (1 + Ki) + 1/(s*Cf); % 说明:实际项目中 Zinv 需要根据电流环结构和滤波器类型推导 % 这里给出的是便于复现的近似表达式 %% 电网阻抗 Zg = Rg + s*Lg; %% 开环环路传递函数 G_delay = exp(-Td*s); L = kq * Zg / (Zinv + Zg) * G_delay;

这里的 Zinv 表达式是一个简化近似,目的是让代码可复现性高。实际项目中,逆变器等效输出阻抗需要从电流环控制框图严格推导,一般会得到二阶或三阶传递函数,可以用 zpk 或 tf 直接代入。如果电流环采用了 PR 控制,Zinv 的表达会复杂一些,但分析方法完全一致。

接着做频域分析:

%% Bode 图 figure; bode(L, {2*pi*0.1, 2*pi*1e4}); grid on; title('Q(V)控制环路开环传递函数 Bode 图'); %% 稳定裕度 [Gm, Pm, Wcg, Wcp] = margin(L); fprintf('幅值裕度: %.2f dB\n', 20*log10(Gm)); fprintf('相位裕度: %.2f deg\n', Pm); fprintf('相位穿越频率: %.2f Hz\n', Wcg/(2*pi)); fprintf('剪切频率: %.2f Hz\n', Wcp/(2*pi)); %% 奈奎斯特曲线 figure; nyquist(L); grid on; axis equal; title('Q(V)控制环路奈奎斯特曲线');

运行这组代码之后,如果 Pm 小于 30 度,就说明当前参数下系统裕度不足,需要调整 kq、Zg 或者前向通道的延迟。注意,margin 函数在遇到非最小相位系统时会得到保守结果,如果曲线在穿越点附近非常敏感,建议再用奈奎斯特曲线二次确认。

4.3 结果怎么看:几组典型工况对照

为了让大家建立直觉,我把不同参数下的运行结果列成对照表。这是一次典型的参数扫描结果:

kq (var/V)Lg (mH)Rg (Ω)相位裕度 (deg)结果
8000.20.0552稳定
8000.50.1034临界稳定
8001.00.2014易振荡
15000.50.108失稳
8001.00.0521弱阻尼
8001.00.3012失稳

从表格里能明显看到两个趋势:第一,kq 越大,相位裕度越低;第二,Lg 和 Rg 同时增大的时候,稳定裕度恶化得非常快。还有一个容易被忽略的规律:在弱电网场景下,电阻 Rg 的存在并不总是有利于稳定。适度的电阻可以增加阻尼,但 Rg 过大时会使阻抗比相位关系恶化,反而加剧失稳风险。这就是为什么只看 Lg 不看 Rg 会导致误判。

除了表格,还可以用参数扫描画出稳定边界:

%% 参数扫描:kq 与 Lg 的稳定边界 kq_list = 200:100:2000; Lg_list = 0.1e-3:0.1e-3:2e-3; PM_matrix = zeros(length(kq_list), length(Lg_list)); for i = 1:length(kq_list) for j = 1:length(Lg_list) kq_tmp = kq_list(i); Lg_tmp = Lg_list(j); Zg_tmp = Rg + s*Lg_tmp; L_tmp = kq_tmp * Zg_tmp / (Zinv + Zg_tmp) * G_delay; [~, Pm_tmp] = margin(L_tmp); PM_matrix(i, j) = Pm_tmp; end end %% 绘制相位裕度等值线 figure; [C, h] = contour(kq_list, Lg_list*1000, PM_matrix', [15, 30, 45]); clabel(C, h); xlabel('下垂系数 kq (var/V)'); ylabel('电网电感 Lg (mH)'); title('相位裕度等值线(15/30/45度)'); grid on;

这段代码运行后会得到一张二维等值线图。图中 30 度等值线以内的区域可以视为“安全设计区”,边界之外就要非常小心。我在实际项目里就是用这张图去说服团队调整下垂系数的——相比口头解释“会振荡”,一张带着频率刻度的边界图更有说服力。

5. 常见问题与排查技巧实录

5.1 频域说稳定,但 Simulink 时域一跑就炸

这个坑我踩过不止一次。频域分析显示相位裕度 35 度,仿真跑出来却在 30Hz 附近持续振荡,问题出在哪?

大概率出在两个地方。第一,频域模型里把电流内环简化成了比例环节,但实际电流环的 PI 参数在中频段还有明显相位滞后,这个滞后叠加到 Q(V) 环路上会吃掉十几度相位裕度。第二,采样延迟 Td 设置得过于理想,实际代码里的电压采样滤波、坐标变换计算、PWM 更新都会额外增加延迟,而延迟在现代控制里是最伤稳定性的因素。

排查建议:先用频域模型把所有闭环环节的相位滞后一一算出来,包括电压采样低通滤波器的截止频率、数字控制延迟的等效时间,最后再和时域模型对照。如果频域裕度不到 25 度以上,不要轻易说“稳定”。

5.2 下垂系数 kq 不是越大越好

Q(V) 控制的目的越强,越容易踩雷。有些项目为了提高电压支撑能力,把 kq 调到 2000 var/V 甚至更高,结果并网点电压波动没怎么改善,无功输出反而在来回震荡。

原因很简单:kq 直接进入环路增益,它与稳定裕度呈反比关系。从 Bode 图上看,增大 kq 相当于把幅频曲线整体上移,剪切频率右移,而相位曲线则随着频率增加持续下降,结果就是相位裕度快速缩水。工程上我通常按下面的步骤来确定 kq 的上限:

  1. 根据无功容量 Q_max 和最大电压偏差 ΔV_max 计算最低下垂需求:kq_min = Q_max / ΔV_max;
  2. 在 kq_min 到 2 倍 kq_min 的范围内做参数扫描,观察相位裕度曲线;
  3. 选择相位裕度不低于 40 度、且剪切频率不低于 10Hz 的最大 kq 值。

这样选出来的 kq 既能满足调压需求,又留出了充足的稳定裕度。

5.3 阻抗比分析中的常见误区速查

现象可能的错误原因处理方式
把电网阻抗简化为纯感性R/X 较高的配电网场景下结果过于乐观保留 Rg,至少按 Rg/Xg = 0.5 校核
忽略采样延迟 Td高频段相位裕度虚高在环路中加入 exp(-Td*s) 环节
只用 Bode 图不用奈奎斯特相位穿越多次时漏判两个判据交叉验证
忽略 LCL 谐振峰中频段出现意外振荡保留 Cf 支路或测量等效阻抗
只在额定工况下分析弱电网 Lg 变化后失稳对 Lg 和 Rg 做参数扫描

表格里列的每一条都是真实项目中见过的错误,尤其第一和第三条最隐蔽。纯感性阻抗模型在某些文献里默认成立,但拿到配电网场景就完全失效;而 Bode 图在相位曲线多次穿越 -180 度时可能给出错误的结论,必须借助奈奎斯特曲线判断。

5.4 用“留有余地”的心态看仿真结果

最后说一个心态上的经验:频域分析给出的是线性化模型下的稳定判据,而实际系统还有饱和限幅、锁相环非线性、电网背景谐波等因素,这些都会让真实系统的稳定裕度进一步下降。

我在实际项目里一般会对频域算出的参数做打折处理:相位裕度按计算值的 70%~80% 估算真实裕度;算出来 30 度就当 22 度用。这样虽然保守了一点,但换来的是时域仿真的一次通过率大幅提高。如果项目对动态响应速度有要求,再在这个基础上逐步放宽参数,而不是一上来就贴着稳定边界设计。

6. 实操总结与个人心得

这套“基于变流器驱动稳定性在配电网中的 Q(V)-特征控制稳定性分析”流程,说到底就是把一个看起来复杂的并网稳定性问题,转化成了三个变量之间的频率响应匹配问题。Z_inv、Z_g、kq,三者之间的关系清楚了,稳定性边界自然就画出来了。

我个人在实际操作中的一个深刻体会是:稳定性分析不是算一次就完事的工作,它应该嵌入到参数设计的每一个迭代里。每改一次滤波器参数、每换一种电网阻抗条件、每调一次电流环带宽,都要回到频域模型里重新看一眼裕度。不要因为上一次仿真是稳定的,就想当然认为下一次也稳定。

最后再分享一个小技巧:把上面这套脚本封装成一个函数,输入是 Zinv、Zg、kq、Td,输出是幅值裕度、相位裕度和一组 Bode 图。这样不管是评估新项目还是排查旧项目的振荡问题,都能在几分钟内得到第一手结论,节约下来的时间可以拿去做更有价值的控制方案对比。稳定性分析的价值,往往不在于一次计算有多精确,而在于它能在你建模和调试的每一步都给出方向感。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询