做风电、光伏并网或者储能变流器控制的同学,应该都听说过这么一句话:变流器电流环、电压环参数在理想电网下调得好好的,一接到弱电网就出幺蛾子——并网点电压畸变、电流里冒出低频振荡分量,严重的时候直接触发保护跳闸。前几年我处理这类问题时,一度被弄得焦头烂额:时域波形、现场录波都能对上,可为什么偏偏是这个频率振荡、为什么只在某个工况下振荡,却说不清楚。后来老老实实把LCL-VSC阻抗建模和Nyquist稳定性判据这套方法论从头推了一遍,才真正把问题看透。
这篇文章就把这套完整方法——弱电网下LCL-VSC阻抗建模、次同步+超同步谐振机理分析、Nyquist判据验证、以及整套Simulink仿真实现——掰开揉碎讲清楚。内容不是我凭空想出来的,是实际处理弱网振荡问题时反复验证过的流程。适合正在做新能源并网变流器控制、入网稳定性分析,或者准备阻抗法相关毕业设计的同学参考。看完你至少能回答三个问题:次+超同步谐振到底是怎么冒出来的、阻抗模型怎么建、以及Simulink里怎么用扫频法把Nyquist判据验证闭环。
1. 问题从哪来:弱电网怎么把LCL-VSC"带崩"的
要理解这套分析方法的必要性,得先搞明白故障现场长什么样。弱电网不是一个抽象概念,它实实在在地改变了变流器看到的外部阻抗,而这个外部阻抗与控制环路的交互,正是次同步/超同步振荡的根源。
1.1 弱电网的本质——短路比与电网阻抗
弱电网最常用的量化指标是短路比SCR(Short Circuit Ratio)。SCR定义为并网点三相短路容量与设备额定容量之比。工程上SCR大于20算极强电网,10到20算强电网,3到10算中等强度,小于3就属于典型弱电网,高压直流送端、海岛微网、偏远风电场并网口经常是这个状态。
SCR和电网等值电感之间可以直接换算。以690V、1MW的变流器为例,额定阻抗基准Zbase = U²/S = 0.476Ω,SCR=2时电网等值阻抗约为Zbase/2=0.238Ω,折算到60Hz电网对应的电感就是Lg = 0.238/(2π×60) ≈ 0.63mH。别小看这零点几毫亨,它和LCL滤波器、变流器控制环路联合作用时,足以让原本稳定的系统在某个频段出现负阻尼。
这里要建立一个直觉:弱电网意味着并网点电压不再是由无穷大母线"钉死"的刚硬电压源,而是一个被变流器输出电流"顶来顶去"的软节点。电流一波动,并网点电压跟着波动,电压波动又反过来通过PLL、电压前馈影响电流指令,形成闭环交互。
1.2 LCL滤波器与逆变器的谐振隐患
LCL滤波器由逆变器侧电感L1、网侧电感L2、滤波电容Cf组成,它的核心优势是高频衰减率比单L滤波器高得多,高阶谐波抑制效果好。但它天然带一个谐振峰,谐振频率为:
fr = (1/2π) × √[(L1+L2)/(L1×L2×Cf)]
举个具体参数:L1=2mH,L2=1.5mH,Cf=15μF,算下来fr≈1404Hz。这个频率落在控制带宽之外、开关频率之内,是设计时最需要小心的频段。理想电网下,网侧是纯电压源,L2两端被电网电压"夹住",谐振峰基本被L1+L2的阻尼覆盖;但一旦串入Lg,等效成了L2+Lg,谐振点就变了,阻尼特性也变了。
更关键的是,LCL谐振峰与控制环路的相位裕度强烈耦合。电流内环带宽通常设计在1/10到1/5开关频率附近,如果LCL谐振峰落在电流环带宽附近,控制延时又会引入额外相位滞后,原本的谐振谷甚至变成谐振峰,系统在这个频率附近就很脆。
1.3 次+超同步谐振的表象与危害
弱电网下LCL-VSC的振荡有一个非常有意思的现象:在静止abc坐标系里观察,振荡电流往往同时包含一对频率分量——例如基波50Hz上下各偏移fo,即次同步分量(50-fo)Hz和超同步分量(50+fo)Hz同时出现。比如fo=15Hz时,你会同时看到35Hz和65Hz的电流分量。
这不是巧合。三相变流器在dq旋转坐标系里建模后,由于PLL跟踪、不对称控制等因素,变流器阻抗在dq域中表现为一个2×2矩阵(dd、dq、qd、qq四个元素),它在正负序域中映射出来的就是不对称阻抗。正序扰动和负序扰动之间存在耦合:一个频率的正序电压扰动,会同时激发出同频率的正序电流响应和另一频率的负序电流响应。反映到abc坐标系,就是次同步和超同步成对出现。
文献里常说的"次同步控制互作用"(SSCI)、"次同步谐振"(SSR),表象机理各不相同,但阻抗分析框架是通用的。危害方面,轻则电流畸变、并网点电压闪烁,重则变流器过流保护动作、直流母线过压,现场的录波图往往能看到持续数秒的等幅或增幅振荡。
2. 阻抗建模:把时域系统变成"看得见"的频率响应
阻抗建模的核心思想是:把变流器从并网点看进去等效成一个频率相关的复阻抗Zinv(s),把电网等效成Zg(s),然后分析二者串联回路的稳定性。这个思路比时域非线性仿真更接近"根因",因为它直接告诉你系统在哪个频率上容易"失稳"。
2.1 为什么用阻抗法,不用特征值法
做电力系统小信号稳定分析,传统路径是建立完整的状态空间方程,求取特征值,观察实部是否穿越零点。这个方法在固定工况下很精确,但缺点很明显:状态方程动不动就是十几阶、几十阶,参数一改就要重新推导;而且特征值对应的模态与物理量(比如某个频率下的电压电流振荡)之间不是直观的映射关系,排查问题时还得靠参与因子分析逐一对应。
阻抗法的本质是"降维"。它把整个变流器控制系统的动态特性浓缩成一个(或一个矩阵)从端口看进去的等效阻抗,电网侧阻抗也是同样端口的概念。二者串联后,系统的稳定性可以用经典的Nyquist判据判断,控制理论和经典电路理论在这里完美接轨。好处有三:
- 变流器和电网可以分别建模,互不干扰,便于隔离责任。
- 频率响应可以直接通过扫频仿真或现场测量得到,模型不必非得是解析式。
- Nyquist判据给出的是稳定裕度,可以直接指导控制参数优化方向。
当然阻抗法也有短板:它只能判断并网VSC与电网之间的交互稳定性,不能覆盖变流器内部多机之间的全部模态(那需要广义阻抗或节点导纳法),但对单机并网这个场景来说足够用了。
2.2 dq坐标系小信号阻抗建模
三相VSC在abc坐标系中,基波正弦量的小信号扰动会被淹没在工频载波里,直接在abc域做阻抗扫频,需要处理频率搬移,非常别扭。标准做法是变换到dq旋转坐标系,基波工作点变成直流,小信号扰动变成直流附近的偏移,小信号线性化的流程就顺畅得多。
具体步骤如下:
- 写出VSC主电路的时域状态方程,包括L1、L2、Cf的状态变量,以及PCC点电压、电网电压方程。
- 把电压电流变换到dq旋转坐标系,注意Park变换的角度是PLL输出的θ,不是理想工频角度。这意味着PLL动态会进入模型。
- 在稳态工作点((Ud, Uq)、(Id, Iq)、占空比Dd、Dq)附近施加小信号扰动ΔUd、ΔUq,忽略二阶以上项,得到线性化的s域方程组。
- 把控制环(电流内环PI、电压外环PI、PLL环路、前馈补偿、采样/计算延时)的传递函数代入,消去中间变量,最终得到PCC电压扰动和电流扰动之间的关系:
ΔV = Z_dq(s) × ΔI
其中Z_dq是2×2矩阵。工程习惯上直接用电流响应表示阻抗:Zdd = Δvd_dq/Δid_dq等。
这里最容易忽略的是PLL动态。PLL的带宽通常设计在几十赫兹以内,它的动态会改变Park变换角度,导致dq轴变量之间产生额外的耦合项。在电网阻抗较大时,PLL引起的负电阻效应是次同步振荡的重要推手——后文会专门展开。
2.3 关键非线环节:锁相环与控制环的影响
在弱电网条件下,PLL的影响绝不是小修小补的量级。PLL跟踪并网点电压,弱电网下电压相角会随功率波动而摆动,PLL为了追赶相位,等效在阻抗模型中注入了一个动态环节。研究表明,PLL带宽与电网阻抗的交互会在次同步频段产生负电阻,这是SSCI最经典的诱发机制之一。
我举个实际的解析模型片段来说明(不考虑更复杂的耦合时):PLL对q轴电压扰动的响应会以传递函数G_PLL(s)参与进来,导致d/q轴之间的交叉阻抗Zqd不再为零,而且在某个频段内,Zqd的实部为负。当电网阻抗在该频段的感抗与这个负电阻串联后,回路等效电阻可能变成负值,振荡能量持续增长的条件就满足了。
电流内环的影响主要在中高频段。电流环PI参数决定了LCL谐振峰附近的阻抗形状,如果电流环相位裕度不足,在LCL谐振峰附近会出现阻抗峰抬高甚至负阻。电压外环则主要影响低频段(通常几赫兹到十几赫兹),恒功率控制特性本身带来的恒功率负阻效应,也是次同步频段的一个隐患。
建模时建议分层次验证:先闭合电流环、忽略PLL,扫阻抗;再计入PLL动态,观察阻抗曲线在次同步频段的变化;最后加上电压外环和无功环。这样做的好处是,每一个环节对阻抗的贡献都被量化了,后续想通过参数优化来改善稳定性时,能直接对应到具体的控制环节。
3. 稳定性判据:Nyquist曲线怎么判断"稳不稳"
阻抗模型建好之后,稳定性分析就是一个标准的闭环反馈问题:变流器等效阻抗Zinv(s)和电网阻抗Zg(s)串联,电流在两个阻抗之间流动,任何一个频率下回路增益的幅相特性不满足判据,就说明这个频率存在失稳风险。
3.1 阻抗比与返回比L(s)
把变流器看成电压源加内阻抗Zinv,电网看成电压源加内阻抗Zg,并网点电流I(s)可以表达为:
I(s) = (Vg - Vinv) / (Zg + Zinv)
改写一下:
I(s) = (Vg - Vinv) / Zinv × 1/(1 + Zg/Zinv)
定义返回比L(s) = Zg(s) / Zinv(s)。系统的稳定性取决于1/(1+L(s))是否稳定。应用Nyquist判据的前提是:在L(s)不存在右半平面极点的前提下,闭环系统稳定的充要条件是L(s)的Nyquist曲线不包围(-1, j0)点。如果L(s)本身有RHP极点,则需要先确认Zinv(s)的右半平面极点特性。
实际操作中,Zinv(s)通过解析模型计算或者扫频仿真得到后,先检查它的极点实部。如果右侧平面没有极点,那么问题就纯粹变成画Zg/Zinv的Nyquist曲线,看包围情况。这一点和经典控制里的开环传递函数判稳思路一模一样。
3.2 Nyquist判据的使用要点
在MATLAB里画Nyquist图很简单,但对结果的理解有几个容易出错的点,值得展开说。
第一,扫频范围必须覆盖你关心的频段。次同步振动的频段通常在5Hz到45Hz,超同步则在55Hz到95Hz(对应abc侧的互补频率),LCL谐振峰在千赫兹级别。Nyquist曲线要完整扫过这些区域,特别是从低频到超过LCL谐振频率的整个范围,否则交点附近的包围情况可能漏判。
第二,关注曲线与负实轴的交点。如果Nyquist曲线从左侧穿过负实轴且交点幅值大于1,即包围了(-1, j0),说明失稳。如果曲线逼近(-1, j0)但没有包围,则说明系统稳定但有较长的稳定裕度风险,这时候可以等幅振荡临界状态来印证——仿真中把电网阻抗稍微调大一点,失稳通常就在这个点附近爆发。
第三,稳定裕度可以换算成阻尼感。Nyquist曲线离(-1, j0)点的最近距离,对应的就是回路的增益裕度和相位裕度。工程经验上,VSC并网系统回路的相位裕度建议大于30度,增益裕度大于6dB。这个数值比传统电机驱动系统要求低一些,因为VSC并网工况本来就允许一定程度的弱阻尼,但不能到边界。
3.3 稳定裕度与谐振频率的对应关系
阻抗法最有价值的一点是,它能给出"哪个频率不稳"和"有多不稳"的定量解释。某个频率fo下,如果Zg(fo)和Zinv(fo)的幅值相当而相位差接近180度,回路的总阻抗Zg+Zinv出现一个幅度极小的谷值,这个频率上很小的电压扰动就能激发很大的电流响应——这就是谐振条件的阻抗视角。
次同步与超同步成对出现这件事,在Nyquist框架里也能看明白。由于Zinv_dq是非对称矩阵(Zdd≈Zqq,Zdq和Zqd不相等),从正序和负序两个角度分别看,系统展示出两条不同的阻抗频率特性。当正序回路在某个次同步频率fo处满足谐振条件时,负序回路往往在互补频率(2倍工频减去fo)处也满足类似的相位条件。于是你在时域里看到的就是一对互补频率分量同时增长。
我在分析一个具体案例时就踩过这个坑:只检查了单一条Nyquist曲线,没看全频段,时域仿真里明明出现了振荡,Nyquist却显示稳定。后来排查发现,我当时只看了一个序下的曲线,而失稳恰恰发生在另一个序的互补频率上。从那以后,我习惯画Nyquist图时把正序、负序两条曲线叠在一起看,或者直接检查2×2阻抗矩阵的特征值。
4. Simulink仿真实现全流程
理论模型再漂亮,最终要落地到仿真上验证。这一部分是整套方法的关键:用Simulink搭出LCL-VSC并网系统,注入小扰动扫频测量阻抗,把阻抗数据带到Nyquist判据里,最后用时域仿真确认振荡特征。每一步都有不少细节,一个一个说。
4.1 模型搭建与参数设定
推荐用Simulink的Simscape Electrical(以前叫SimPowerSystems)搭建主电路,控制部分用普通Simulink模块手写,不要全用库里的封装变流器模型——封装模型的控制接口不透明,阻抗建模时你需要在PCC点精确注入扰动并测量响应,手写的更可控。
主电路层级自上而下是:三相无穷大电网源(Three-Phase Source,注意把内阻抗设成你想要的Lg值)→ 电网阻抗Lg → LCL的网侧电感L2 → 滤波电容Cf(带阻尼电阻或不带,看你的方案)→ 逆变器侧电感L1 → 两电平VSC桥臂 → 直流源(可以用理想直流电压源替代,重点研究交流侧稳定性)。控制部分包括PLL、电流内环PI、电压外环PI、调制部分(PWM或SPWM)。
一组可复现的基础参数可以参考下表(1MW/690V等级,开关频率4kHz):
| 参数 | 数值 | 说明 |
|---|---|---|
| 电网线电压 | 690V | 三相 |
| 基波频率 | 50Hz | — |
| L1 | 2mH | 逆变器侧电感 |
| L2 | 1.5mH | 网侧电感 |
| Cf | 15μF | 滤波电容 |
| Lg | 0.1~1.5mH | 扫参范围,模拟SCR变化 |
| 电流环PI | Kp=2.5,Ki=300 | 带宽约500Hz |
| PLL带宽 | 约30Hz | 典型弱网设置 |
| 开关频率 | 4kHz | PWM采样频率12kHz |
建模时要把采样/计算延时加进去,一般用一个step延时模块模拟一拍延时。忽略这个延时,高频段的阻抗模型会和仿真对不上,LCL谐振峰附近的Nyquist曲线也会失真。
4.2 阻抗扫描实现(扫频法注入)
阻抗测量的标准做法是扫频法。思路是在系统进入稳态后,在PCC点注入一系列单频小扰动,测量该频率下的电压扰动和电流扰动,相除得到该频率点阻抗。
Simulink里实现时,我建议这样操作:
- 在PCC点并联一个受控电流源(Controlled Current Source),作为扰动注入源。
- 设定注入频率列表,从5Hz到2500Hz(至少覆盖次同步、超同步和LCL谐振峰),按对数或线性间隔取30到60个点。
- 对每个注入频率,运行一段仿真,注入幅值建议取额定电流的3%~5%,太小会被噪声吞掉、太大则激发非线性。等待2~3个工频周期让过渡过程消失后,提取电压电流波形。
- 用FFT提取注入频率处的电压和电流分量的幅值与相位,计算Z = ΔV/ΔI的复数结果。
这里有两个被忽视的重点。第一,dq阻抗矩阵的测量需要在d轴、q轴分别注入扰动,才能填满2×2矩阵。实测中常用旋转坐标系下的dq扫频,或者利用正负序扫频再转换。第二,为了正确捕捉次同步和超同步的耦合效应,PCC点的注入信号本身会激起两个频率的响应,提取FFT时要同时关注基波±fo两个频点,不要只提取注入频率本身。
仿真时长和FFT窗长要匹配。比如注入15Hz扰动,最低要采集0.2秒以上的数据才够分辨15Hz和工频50Hz之间的串扰,建议单次仿真运行0.5~1秒,FFT用汉宁窗并做多周期平均,能显著抑制频谱泄漏。
4.3 Nyquist判据分析与时域验证
扫频完成后,把得到的离散阻抗数据拼接成复数数组,导入MATLAB工作区。用legendre或tfest之类的拟合工具(或者直接对离散点做频响插值)得到Zinv(s)的传递函数近似。电网阻抗Zg(s)解析式很简单:Zg(s) = sLg(如果还有等效电阻就加个Rg)。
然后用控制系统工具箱绘图:
L = freqresp(Zg, w) ./ freqresp(Zinv_fit, w); nyquist(L, w); grid on;画出来后,重点检查三件事:
- Nyquist曲线是否穿越负实轴?
- 穿越点是否在-1点左侧(即包围了临界点)?
- 在次同步频段(5~45Hz)和LCL谐振峰频段附近,曲线是否逼近临界点?
如果结果显示临界稳定或失稳,回到时域仿真里验证:把电网阻抗设成对应工况,启动后观察PCC电流波形,用FFT分析振荡频率。理想情况下,Nyquist预计失稳的频率与时域FFT的主振荡频率应该一致,误差在几赫兹以内。
我在验证一个临界案例时,时域FFT显示36Hz和64Hz(50Hz±14Hz)两个分量同时增长,Nyquist曲线也在对应频段贴着(-1, j0)擦过。把PLL带宽稍微降一点后,Nyquist曲线回缩,时域振荡也消失了。这个"预测—验证—修正"闭环走通,阻抗法的价值才真正体现出来。
5. 工程实战中的坑与经验
这一部分算是压箱底的内容了。阻抗建模和Nyquist分析,论文里写起来挺顺,真正操作起来会有不少细节坑。我把这些年踩过的坑和总结出的经验直接列出来,按建模、仿真、分析三个阶段分类。
5.1 建模阶段常见错误
第一个大坑是PLL建模过于理想化。很多人图省事,直接用理想同步坐标变换,PLL的跟踪误差被忽略。弱电网下PLL的动态恰恰是次同步振荡的关键,这个简化会让阻抗模型在次同步频段完全失真。正确的做法是把PLL的非线性传递函数完整带进小信号模型,至少保留PLL带宽和阻尼比两个参数。
第二个坑是忽略控制延时对高频阻抗的影响。电流采样和PWM更新存在一拍到两拍的延时,在LCL谐振频率千赫兹级别时,延时的相位滞后可能达到几十度,足以改变Nyquist曲线的穿越性质。建模时务必加延时环节,最常用的是零阶保持器模型或e^{-sTs}。
第三个坑是只考虑电流内环而丢弃电压外环。有直流电压控制或无功控制参与的工况,低频段的阻抗特性主要被外环决定,丢弃外环会导致5~15Hz频段的稳定性判据失真。建议做阻抗建模时至少包含电压外环在直流侧的影响(等效为恒功率负载负阻效应)。
5.2 仿真调试技巧
扫频注入幅值的选择是门手艺。幅值太小,FFT提取时信噪比不够,尤其在高频段,数值噪声和采样量化误差会淹没信号;幅值太大,触发PWM饱和或者过流保护,仿真直接崩掉。我的经验是先做一次幅度扫描预试验:在目标频率注入5%、10%、20%额定电流扰动,比较提取出的阻抗幅值,如果10%和20%结果差异明显,说明已经进入非线性区,最终选择5%作为工作注入幅值。
还有一个容易被忽略的点:电网阻抗Lg本身的频率特性。如果Lg是纯电感,Zg(s)=sLg,没问题;但有些场景电网阻抗包含Lg和Rg的串联,且Rg随频率变化(比如集肤效应),你需要在扫频结果里把这个频率特性也纳入Nyquist分析,不能用固定的工频电阻值代替。
仿真步长的设置也要注意:PWM系统建议步长设为开关周期的1/50~1/100,4kHz开关频率对应步长2.5~5μs。步长太大,开关纹波混叠进FFT测量结果;步长太小,单次扫频仿真耗时太长。我常用4μs步长,单频点扫描仿真0.5秒,30个频点跑下来大约需要几分钟到十几分钟,可以接受。
5.3 个人心得与扩展方向
做了这么多轮阻抗分析之后,我的体会有几条。
第一,不要迷信"解析阻抗模型一定准"。解析模型推导过程中总要做各种简化,比如忽略死区、忽略饱和、把数字控制器近似成连续域,这些简化在某个频段总会产生偏差。最可靠的做法是"解析模型定趋势、扫频仿真定数值、时域FFT定验证",三层互相对齐。
第二,Nyquist判据的结论要结合时域工况一起解读。阻抗法本质上是线性化方法,分析的是小扰动稳定性。实际系统里,振荡幅值增大后会触发限幅、保护、控制模式切换等非线性效应,可能看起来"稳住了"或"爆发了",但根因还是小扰动稳定裕度不足。处理现场问题时,先做小扰动分析找准频段,再用时域仿真看大扰动行为,不要跳过第一步。
第三,这套方法完全可以扩展。同一套LCL-VSC阻抗模型,加一个并联变流器就变成多机系统阻抗网络,用广义Nyquist判据或特征值分析继续处理;加一个电网侧的无源阻尼器,直接看Zg的变化对Nyquist曲线的影响;甚至风机全功率变流器、STATCOM、储能PCS,只要端口特性是VSC,都能复用这套建模与仿真流程。
最后再分享一个实用小技巧:做参数灵敏度分析时,与其穷举时域仿真,不如直接在Nyquist图里叠加不同参数下的曲线。我在优化PLL带宽时,就是同时画出10Hz、20Hz、30Hz三组PLL带宽下的Nyquist曲线,一眼就能看出带宽变化对稳定裕度的影响方向,省掉了大量重复扫频的时间。这套方法讲究的就是"把功夫花在建模上,把结论用在系统上",建模准确了,后面的分析、验证、优化都水到渠成。