你遇到过这种情况吗变流器并网之后一切正常但只要电网侧合上一条较长馈线或者投切一组无功补偿设备输出电流就出现十几赫兹的连续振荡直流母线跟着抖动保护还没来得及动作系统就先跳了。早几年我做并网调试时第一次碰到这种问题第一反应是控制参数没调好改了半天的PI增益结果越改越糟。后来才明白问题根子出在“弱电网”三个字上——电网不再是一个无限大节点它的等效阻抗会和变流器的输出阻抗“配唱”两者在某些频率点相位对不上就会唱出次同步或超同步谐振。这篇文章想把我当时从阻抗建模到稳定性分析再到Simulink仿真验证的完整思路整理出来。内容围绕弱电网下LCL型VSC的阻抗模型建立、次同步/超同步谐振机理、奈奎斯特判据的工程用法以及如何在Simulink里一步步把阻抗扫频和稳定性验证复现出来。适合正在做并网变流器调试、搞阻抗稳定性研究、或者需要仿真支撑课题结论的工程师和研究生参考。1. 先从“弱电网谐振”这对组合说起1.1 弱电网不是“电压低”而是“阻抗大”很多人一看“弱电网”三个字以为指的是电压等级低或者功率容量小其实工程上衡量弱电网有一个更直接的指标——短路比SCRShort Circuit Ratio。短路比定义为公共连接点PCC处的短路容量与变流器额定容量之比[ SCR \frac{S_{sc}}{S_{vsc}} \frac{U_N^2 / Z_g}{S_{vsc}} ]通常情况下SCR大于10可以认为是强电网小于10就是弱电网低于3基本属于极弱电网。弱电网的本质是电网等效阻抗 Zg 很大而且这个阻抗主要是感性的。在工频下它是 Rg jωLg 的样子其中 Lg 对应从PCC看进去的电网等值电感。用Simulink搭建弱电网模型时最常用的做法就是在理想三相电压源后面串联一个R-L阻抗支路。参数可以从短路比反推出来。举个例子额定线电压380V、额定容量100kVA时阻抗基准值 Z_base 380² / 100000 ≈ 1.444Ω。如果取SCR5那么电网等值阻抗大约是 Z_base / 5 ≈ 0.289Ω也就是 Xg ≈ 0.289Ω对应50Hz下的等值电感 Lg ≈ 0.92mH。再配上一个较小的电阻分量 Rg ≈ 0.1Xg 或者按 X/R10 来取。这里有个容易忽略的细节电网阻抗会让PCC电压不再是理想的正弦源。当变流器向电网注入功率时PCC电压会发生幅值和相位的偏移锁相环PLL获取的电网电压角度也随之抖动。SCR越小这个抖动越明显控制性能受的影响越大。1.2 次同步与超同步同一个病灶的两种表现次同步谐振指的通常是频率低于工频比如5~50Hz50Hz系统里的功率振荡超同步谐振则是指频率高于工频比如150~300Hz的振荡。两类问题在现象上不同但机理上往往是同一件事变流器输出阻抗与电网阻抗在某个频段发生“负阻尼”配合系统在该频点附近缺少足够的阻尼扰动能量被持续放大。LCL型滤波器在这里比单L型滤波器更敏感。原因在于LCL结构里多了一个电容支路和网侧电感它们构成一个二阶谐振回路。在谐振峰附近变流器端口阻抗的相角会发生剧烈跳变。如果控制环路的相位补偿没做好超同步频段就很容易出现相位裕度不足甚至负阻尼。而次同步频段的失稳更多来自锁相环和电流环的交互作用。PLL在PCC电压畸变时给出一个抖动的参考相位相当于把电压扰动折算成了控制环路的附加误差进而等效为一个负电阻。下面这个表是我常见的两类谐振特征对比放在一起看会更清楚特征次同步谐振超同步谐振典型频段5~50Hz150~300Hz主要诱因PLL动态、电流环带宽不足、负阻效应LCL谐振峰、控制延迟、电容支路相互作用现象电流低频振荡有功/无功功率周期性波动电流波形畸变PCC电压谐波增大典型应对减小PLL带宽、加入虚拟阻抗改善有源阻尼、补偿控制延迟理解这个区分至关重要因为后面阻抗建模和奈奎斯特判据的判断重点在次同步和超同步频段是完全不同的。2. 阻抗建模把“变流器”看成一个阻抗2.1 从LCL滤波器到VSC端口阻抗在阻抗稳定性分析里我们关心的核心对象是“从PCC看向变流器”的等效阻抗 Zvsc(s)。这个概念可以类比成你把变流器当成一个黑盒子在它的交流端口施加一个小扰动电压会有一个相应的小扰动电流流入这个扰动电压与扰动电流之比就是端口阻抗。如果变流器没投控制只是一个被动的LCL网络那么阻抗模型就是纯粹的R-L-C串联/并联关系。但实际变流器是闭环运行的电流内环、电压外环、锁相环都在工作控制环路的动态会通过调制过程“映射”到主电路上此时端口阻抗不再是被动元件决定而是与控制策略强相关的“有源阻抗”。LCL滤波器自身的谐振频率是一个最底层的参考点近似用下式计算[ f_{res} \frac{1}{2\pi\sqrt{(L_1 L_2)C_f}} ]其中 L1 是变流器侧电感L2 是网侧电感Cf 是滤波电容。在谐振频率两侧LCL网络的相频特性差很远。控制环路的带宽只能做到开关频率的十分之一左右所以LCL谐振峰往往落在控制带宽之外必须靠有源阻尼或被动阻尼把它压住否则超同步频段很容易出现阻抗相角的急剧变化。2.2 电流环、锁相环如何“改写”阻抗电流环对阻抗的影响可以这么理解当端口电压出现扰动时并网电流会产生一个微小变化电流控制器检测到这个变化后会调整调制波改变变流器输出端电压从而改变流向电网的电流。这个闭环动作等效成在原有LCL模型上并联或串联了一个受控源网络最终呈现出来的端口阻抗与开环时完全不同。在dq同步旋转坐标系下电流环通常采用PI控制。PI参数决定了电流环的带宽也就决定了阻抗在哪个频段受控制器影响。一般说低于电流环带宽的频段变流器更像一个受控电流源输出阻抗幅值很大高于带宽的频段控制环增益下降阻抗慢慢退回无源网络形态。锁相环的影响更隐蔽。它让PCC电压相位进入Park变换和反Park变换一旦电网阻抗大、PCC电压相位受扰动PLL输出角度就会跟着动。这个动态过程会在电流环参考坐标和实际三相坐标之间引入额外的转换误差等效成阻抗中串联了一个由PLL传递函数决定的项。经典结论是PLL会把变流器在次同步频段的阻抗相角往负方向拉形成负电阻效应。SCR越低这种负阻效应越明显系统越容易失稳。工程上有个很实用的经验如果做阻抗扫频时发现次同步段阻抗实部为负基本可以锁定是PLL和电流环交互导致。处理方向是先收紧PLL带宽再考虑增加虚拟阻抗补偿而不是盲目调电流环增益。2.3 频率耦合与正负序处理严格来说VSC的阻抗并不是单输入单输出的对象。由于控制环路在旋转坐标系下运行一个频率为 fp 的正序电压扰动除了在 fp 处产生电流响应外还会在 2f0 - fp 处f0是基波频率产生耦合频率分量这就是频率耦合现象。尤其当考虑PLL后耦合效应不可忽略。工程上处理频率耦合有两种深度如果只做初步判断可以忽略耦合分别测量正序阻抗和负序阻抗认为系统由这两个独立的序阻抗决定。对大多数对称系统结论已经足够可靠。如果要严格验证需要建立2×2的复阻抗矩阵描述正序扰动产生的正序/耦合序响应以及负序扰动产生的负序/耦合序响应。这个建模复杂度上升不少但好处是能解释一些单输入模型解释不了的奇异失稳情况。在Simulink仿真中验证频率耦合最直接的办法是在PCC处注入单一频率的小扰动电压然后用FFT分析出该扰动频率下的电压电流相量同时关注 2f0 - fp 附近的响应幅值。如果耦合分量的幅值不超过主分量的10%工程上就可以按单输入阻抗处理。2.4 一套可以直接落地的建模流程我在实际项目中一般按下面这个流程推进先理论建模再仿真确认避免一上来就陷入复杂的矩阵推导写出LCL滤波器在静止坐标下的传递函数加入电流环闭环模型得到从PCC电压扰动到并网电流扰动的闭环关系加入PLL小信号模型把PLL输出角度的扰动折算到控制环路联立方程推导 Zvsc(s) 的表达式在Simulink里做频率扫频把仿真扫出来的阻抗频响和理论表达式对比如果偏差较大先检查是否有开关延迟没建模再检查频率耦合分量是否被忽略。这个流程的核心思想是“先粗后细”先用最容易实现的模型抓住主要矛盾再看误差在哪里决定要不要引入更高阶的修正。3. 稳定性判定奈奎斯特判据到底怎么看3.1 为什么不用特征值或者根轨迹拿到系统模型后判断稳定性有好几条路。传统思路是建立完整的状态空间模型求解特征值看特征值实部是否都为负。但在含变流器的系统中这条路走起来很别扭——变流器和电网相互独立建模各自可能有不同的阶数和内部状态合在一起求特征值需要拿到双方全部参数工程上常常做不到。阻抗法的优势在于“分而治之”。电网侧测一个阻抗变流器侧测一个阻抗两侧都只需要端口信息。把两个阻抗的比值作为环路增益用奈奎斯特判据判断闭环稳定性。这个思路和电力电子中常见的“源-负载”系统稳定判据是一脉相承的。奈奎斯特判据的物理含义也很直接它看的是环路增益 T(s) 的奈奎斯特曲线是否穿越或者绕过 (-1, j0) 这个关键点。如果不绕过闭环系统稳定如果绕过了就有右半平面极点系统失稳。3.2 阻抗比怎么取变流器并网系统可以画成诺顿/戴维南等效变流器看作理想电流源并联输出阻抗 Zvsc电网看作理想电压源串联电网阻抗 Zg。在PCC节点上系统的环路增益可以写成[ T(s) \frac{Z_g(s)}{Z_{vsc}(s)} ]稳定性条件就是 T(s) 的奈奎斯特曲线不包围 (-1, j0) 点。这个表达式的物理意义很清楚电网阻抗越大、变流器输出阻抗越小环路增益越大越容易触碰失稳边界。SCR降低时Zg 增大T(s) 的幅值整体抬高这也是弱电网更容易失稳的直接原因。实际操作中还有个常见问题有人习惯直接看 Zg Zvsc 0 的条件在Bode图上比较两个阻抗的幅值和相角。这个方法在频率点处判单个点的谐振风险是直观的但要看全局稳定裕度还是奈奎斯特曲线更可靠。我个人建议统一都换算成 T(s) Zg / Zvsc画奈奎斯特图这样程序里只需做一次复数除法不容易出错。3.3 次/超同步频段的判稳技巧判断次同步频段的风险可以先看阻抗相角。弱电网下 Zg 基本是感性相角接近 90°如果 VSC 在次同步段因为 PLL 负阻效应出现阻抗相角低于 -90° 甚至接近 -180°那么 Zg 和 Zvsc 的相角差就可能跨越180°这就在奈奎斯特图上形成包围 (-1, j0) 的趋势。超同步频段的看点和次同步不一样。超同步段主要盯着 LCL 谐振频率附近。由于控制延迟和滤波电容的共同作用Zvsc 在该频段可能出现谐振尖峰和剧烈相变。如果这时 Zg 又恰好处于感性区两者相角差同样可能触发奈奎斯特判据失稳。我在仿真里习惯做一张“风险频率定位图”把从1Hz到500Hz范围分成次同步、基频附近、超同步三段分别看每段的 T(s) 奈奎斯特曲线离 (-1, j0) 的最近距离。哪个频段最近就优先处理哪个频段的问题调参也更有针对性。3.4 相位裕度和阻尼的换算奈奎斯特曲线不包围 (-1, j0) 只是“稳定”的及格线工程上还要看裕度。常见的做法是根据奈奎斯特曲线计算增益裕度和相位裕度或者更实用一点用 T(s) 在穿越频点处的相位裕度反推闭环阻尼比。如果相位裕度低于30°即使当前稳定电网阻抗继续增加或者控制器参数漂移一点系统就可能进入振荡状态。所以我在仿真验收时会要求弱电网最恶劣工况下的相位裕度不低于45°。曾经有一次仿真里奈奎斯特曲线看起来勉强不绕点实际加一个电网阻抗波动就发散了后来一查相位裕度只有十几度这种工况在工程上不可能批过。4. Simulink仿真实现从搭建模型到跑通扫频4.1 模型总体结构与时步设置Simulink里搭建这套系统建议用Simscape Electrical中的三相元件把主电路和控制部分分开搭。主电路包含四段三相可编程电压源模拟理想电网串联R-L阻抗支路模拟弱电网等值阻抗LCL滤波器即变流器侧电感L1、滤波电容Cf、网侧电感L2三相两电平VSC直流侧用电压源或直流电容替代。控制部分包含PLL、dq坐标变换、电流PI控制器、坐标反变换以及PWM脉冲发生器。仿真初期建议先用平均模型VSC替代开关模型。平均模型没有开关纹波扫频得到的结果平滑、仿真速度快适合和理论模型对比等具体验证某个失稳工况时再换回开关模型用PWM产生实际触发脉冲观察电流波形是否发散。仿真步长也要区分。平均模型步长取5~10微秒足够开关模型因为PWM载波通常是10kHz步长最好压到1~2微秒甚至更小否则开关时刻容易失真扫出来的阻抗相位会有偏差。4.2 弱电网与LCL-VSC参数设置参考下面这组参数是我用来做原理性仿真的典型取值不代表所有工况但可以直接抄来跑通流程参数数值说明额定功率100 kVA现规模下仿真速度较快电网线电压380 V / 50 Hz低压并网或实验室级验证直流侧电压750 V两电平VSC调制比留有裕度L11.5 mH变流器侧电感L20.8 mH网侧电感Cf20 μF滤波电容配合阻尼控制开关频率10 kHzPWM载波频率Rg0.028 Ω电网电阻SCR5时按X/R10折算Lg0.92 mH电网等值电感由SCR5反推其中LCL谐振频率按公式算大约是 1316Hz落在10kHz开关频率的谐振限制范围内。这个谐振频率不能太高也不能太低太低会把开关纹波放大太高又起不到滤波作用一般取开关频率的1/10~1/5比较合适。LCL阻尼方式我用的是电容电流反馈有源阻尼。在dq坐标下把滤波电容电流引入电流环反馈路径等效于在谐振峰处增加一个虚拟电阻。相比无源阻尼有源阻尼不额外损耗功率参数调节也更灵活。只不过有源阻尼对数字延迟比较敏感建模时务必把一拍计算延迟和PWM零阶保持器放进去。4.3 频率扫描脚本的思路阻抗扫频的原理不复杂在PCC处注入一个幅值很小、频率可变的扰动源等待仿真进入稳态后提取该频率下的电压和电流相量两者相除得到该频点的阻抗。逐个频点扫过去就得到阻抗频响曲线。具体操作有两种注入方式一是在PCC与变流器之间串入一个小电压源二是在PCC处并联一个电流扰动源。串电压源容易影响系统运行点需要注意扰动幅值并电流源对系统运行点影响小我实践中更常用。核心的Matlab脚本简化如下f_list 1:1:500; % 扫频范围 Zvsc zeros(size(f_list)); for k 1:length(f_list) fp f_list(k); set_param(vsc_model/Perturbation_Freq, Value, num2str(fp)); sim(vsc_model, StopTime, 0.5); % 从仿真输出中提取PCC电压和并网电流 vpcc_fft fft(vpcc(end-2000:end)); ipcc_fft fft(ipcc(end-2000:end)); % 找到扰动频率对应的FFT bin idx round(fp / fs * N) 1; Vp vpcc_fft(idx); Ip ipcc_fft(idx); Zvsc(k) Vp / Ip; end % 画Bode图 figure; subplot(2,1,1); semilogx(f_list, 20*log10(abs(Zvsc))); subplot(2,1,2); semilogx(f_list, angle(Zvsc)*180/pi);这里有几个细节需要注意。仿真时长要足够长保证每个频点下暂态完全衰减通常取扰动信号10个周期以上FFT窗口取最后一个稳定段避免起始暂态污染数据如果数据噪声偏大可以多跑几次取平均。扰动幅值的选择也很关键。幅值太大会唤醒变流器内部的限幅和死区非线性测出来的阻抗偏离小信号模型幅值太小又会淹没在数值噪声里。我通常取额定电压幅值的2%~5%对100kVA系统大约在5V~10V量级。4.4 稳定性验证的完整流程扫出Zvsc之后把电网阻抗Zg按解析表达式代入计算环路增益 T(s) Zg / Zvsc再画奈奎斯特曲线。验证流程我建议分四步走先把仿真扫频得到的Zvsc与理论模型表达式画在一起确认频段内幅值和相位对得上这是模型可信的前提计算 T(s) 的奈奎斯特曲线检查是否包围 (-1, j0)在时域仿真里叠加一个阶跃扰动比如把电网电压幅值突然抬升5%观察并网电流是否衰减回稳态改变SCR取值重复步骤2~3画出“稳定边界随SCR变化”的曲线。我记得第一次完整跑通这个流程时理论模型预测SCR降到3.2附近就失稳时域仿真在SCR3.0时确实看到次同步电流振荡逐渐发散频率大约28Hz。当时那种“理论曲线和仿真波形终于咬合在一起”的感觉比单纯跑出控制环路时踏实得多。5. 仿真中的坑与调试心得5.1 数字控制延迟不可省略这是我在自己建模和看别人建模时踩得最多的坑。刚搭好模型直接扫频发现超同步段的理论阻抗相位与仿真结果差了二三十度怎么改参数都对不上。后来想起来控制器在Simulink里是离散化执行的从采样到PWM输出天然存在一拍计算延迟加上PWM调制过程的等效延迟加起来大概1.5个采样周期。把这一拍延迟用单位延迟模块加进控制链路再把理论模型中乘上对应的e^{-1.5T_s s}项扫频结果立刻贴合。这个细节在次同步段影响可能不大在超同步段特别是LCL谐振频率附近相位误差足以把奈奎斯特曲线从稳定判成失稳。5.2 平均模型与开关模型的差异处理平均模型扫出的阻抗曲线很干净适合快速迭代参数。但开关模型的PWM调制会带来电压谐波和PCC电压畸变这些谐波会通过PLL进入到控制环路产生中心频率附近的耦合分量。结果就是在开关模型里某些频率段的阻抗测量噪声明显增大特别是接近开关频率或者其倍频的整数分之一。应对办法有两个一是把采集到的电压电流先经过一个窄带滤波器中心频率等于当前扰动频率再计算阻抗二是在FFT中用整周期截断并加窗减少频谱泄漏。我一般优先用整周期截断加Hanning窗简单有效。5.3 扫频扰动幅值的敏感性扰动幅值不是越大越好也不是越小越好。我用5%额定电压幅值扫出来的次同步段阻抗和理论模型拟合得很好把幅值加到15%后由于电流内环出现限幅扫出来的实部明显往正值方向偏移把原本的负阻现象“藏住”了。这在工程上会造成误判仿真认为系统稳定实际投入运行后扰动一大就振荡。所以我在做扫频时会在同一频点分别用1%、3%、5%三种扰动幅值各扫一次如果三条阻抗曲线基本重合说明系统在该频点还处于线性工作区扫频结果可信。如果差异明显说明运行点已进入非线性区小信号结论不能直接外推。5.4 电网相角的初始值别忽略还有一个很容易被忽略的细节PLL启动时如果电网初始相角设置不当仿真一开始会有很长的锁相暂态拖慢扫频效率。更麻烦的是如果每个频点仿真都是从0时刻开始跑而这个0时刻的电网相角又不一致FFT提取出来的相位会带一个固定偏移导致阻抗相角曲线发生整体平移。解决方法是把所有频点的仿真都从同一个稳态运行点初始化或者在脚本里先跑一段不注入扰动的仿真把稳态PCC电压相角记录下来再在扰动注入后的数据处理中减去这个相角偏移。这样扫出来的相角曲线才是真正可比的。结尾做阻抗建模和奈奎斯特验证这件事最核心的收获不是会建模或者会画图而是能建立一种“端口视角”的思维方式不要一上来就钻到控制环路内部看每个增益而是先问这台设备从交流端口看出去是什么样的等效阻抗再问这个阻抗和电网阻抗配合得稳不稳。弱电网下的次同步和超同步谐振很多情况下都藏在两者的相位配合里。最后分享一个小技巧把扫频得到的Zvsc数据保存成复数向量后续写一个自动判稳脚本在每一组SCR下计算T(s)的最小包围距离和相位裕度把结果输出成表格。这样当你需要对比多种控制参数组合时不需要反复盯奈奎斯特图直接从表格里筛选裕度最高的方案效率会高很多。如果你也正在折腾LCL-VSC的稳定性问题希望这篇文章能帮你少走几步弯路。