配电网中并网逆变器无功-电压下垂控制稳定性分析与Matlab仿真
做分布式并网逆变器仿真的同学十有八九都遇到过这种情况静态电压控制调得好好的并网点电压也压得住无功分配也算均匀但仿真波形就是莫名其妙出现持续振荡频率不高不低电流畸变甚至触发过流保护。我最早碰这个“基于变流器驱动稳定性在配电网中的 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 附近的有效阻尼变成负值能量不断注入振荡模式。这也是为什么我会把稳定性分析分为三步走建模并求出环路传递函数在频域绘制 Bode 图和奈奎斯特曲线评估幅值裕度与相位裕度用参数扫描找出临界稳定边界为控制参数设计提供约束。三步走完逻辑闭环就形成了。下一步就是把这些判断落到 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 的上限根据无功容量 Q_max 和最大电压偏差 ΔV_max 计算最低下垂需求kq_min Q_max / ΔV_max在 kq_min 到 2 倍 kq_min 的范围内做参数扫描观察相位裕度曲线选择相位裕度不低于 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 图。这样不管是评估新项目还是排查旧项目的振荡问题都能在几分钟内得到第一手结论节约下来的时间可以拿去做更有价值的控制方案对比。稳定性分析的价值往往不在于一次计算有多精确而在于它能在你建模和调试的每一步都给出方向感。