ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

弱电网下LCL-VSC次/超同步谐振的阻抗分析与Nyquist判据实战

弱电网下LCL-VSC次/超同步谐振的阻抗分析与Nyquist判据实战

开篇先讲一段调试经历:上个月在Simulink里搭了一个LCL滤波的VSC并网模型,电网阻抗参数从接近0改成短路比SCR=2的弱电网条件后,电流波形在30Hz附近开始出现明显的包络振荡。把FFT窗口拉长一看,振荡分量不是基频整数倍,而是25Hz附近的次同步分量慢慢长大,同时还伴有75Hz左右的超同步分量配对出现。这正好就是标题里说的“次+超同步谐振”场景。

很多人会把这类问题归咎于滤波器参数或电流环PI没调好,但真正要回答的是三个递进的层次:第一,弱电网到底改变了什么;第二,从阻抗角度怎么刻画这种改变;第三,如何用Nyquist判据把“可能会振荡”变成“哪个频率振荡、裕度多大、调什么参数能压住”。这篇内容就是沿着这条线,把我自己在建模、扫频、判稳和仿真验证过程中的完整做法和踩坑经验整理出来,适合正在做并网逆变器稳定性分析的研究生和刚接触阻抗法的工程师参考。

1. 弱电网下的LCL-VSC为什么会冒出来次/超同步谐振

要理解这个问题,先得把“弱电网”三个字具体化。弱电网通常指公共连接点(PCC)处的短路容量较低,工程上常用短路比SCR = S_sc / S_n来度量,SCR小于3就可以算是弱电网。SCR低意味着电网阻抗在系统里占据的比重大,PCC处电压不再近似为理想电压源,电网阻抗的动态会显著参与到换流器控制回路的闭环响应中。

在强电网条件下,电网阻抗几乎为零,VSC的电流环设计可以按理想电压源假设来做,系统容易稳定。而弱电网下,电网电感Lg和电阻Rg与LCL滤波器的网侧电感串联,LCL的谐振峰在电网阻抗参与后会明显改变幅频特性。更关键的是,VSC控制环节里的锁相环(PLL)和电流环在PCC处电压波动时会产生动态耦合,这种耦合在某些频率段等效为负电阻或负阻尼,一旦负阻尼大于系统本身的耗散,该频率附近的扰动就会闭环自激增长。

次同步谐振和超同步谐振是负阻尼出现的两个典型频段。电网阻抗与PLL动态的相互作用通常在中低频段(几赫兹到几十赫兹)产生负电阻,表现为次同步谐振;电流环带宽附近、LCL谐振峰附近则容易出现超同步频段的负阻尼。一个很实用的观察是:时域里出现次同步振荡时,FFT频谱上几乎总能看到一对共轭分量——比如25Hz和75Hz,这是因为三相平衡系统正负序分量在静止坐标系下呈现镜像关系,扰动能量按照固定比例分配在次同步和超同步两侧。

这里给一个我自己常用的判断思路:先看PCC处电压谐波或电流谐波在振荡频率处的方向(正序还是负序),再对照该频率下系统等效电阻的正负。若等效电阻为负,说明换流器在该频率上是“发出能量”的,振荡就有能量来源。阻抗建模的核心目标,就是把每个频率下的等效电阻和电抗刻画出来,让稳定性判断不必依赖猜测。

2. 建模选型:为什么推荐序阻抗而不是只做dq阻抗

2.1 dq阻抗与序阻抗的关系

VSC在三相静止坐标系下是周期时变系统,最常见的小信号处理办法是把模型变换到dq旋转坐标系下,得到直流工作点附近的小信号模型,这是电流环设计的标准做法。但dq域阻抗是2x2矩阵形式,Zdd、Zdq、Zqd、Zqq四个元素之间存在相互耦合,直接拿这个矩阵做稳定性判断时,需要处理多输入多输出(MIMO)系统的Nyquist判据,通常用其回比矩阵的特征值来判断,物理意义不够直观。

序阻抗(正负序阻抗)的优势在于:三相平衡系统在某个扰动频率下,正序和负序通道在理想情况下是解耦的,阻抗表现为单输入单输出(SISO)形式,可以直接画波特图和使用经典Nyquist判据。多数情况下,工程稳定性分析想要的只是一条清楚的正序阻抗曲线和一条负序阻抗曲线,而不是一个2x2矩阵。

但要注意一个关键细节:当VSC的控制存在PLL动态时,正序和负序扰动之间会出现频率耦合,也就是说注入正序频率fp的扰动,可能同时激发出另一个耦合频率的响应。严格讲不再完全解耦,但工程上通常忽略这种耦合幅值较小的分量,按SISO处理。这种做法在PLL带宽远低于电流环带宽、且电网阻抗不太极端时精度足够。

从实现上看,dq阻抗和序阻抗之间可以做频率偏移换算。比如在dq坐标系下得到的Zq,其频率为fdq,对应的静止坐标系正序频率为fp = fdq + f1,负序频率为fn = fdq - f1。如果正序频率和负序频率分别有各自的阻抗曲线,最终可以用这两个SISO阻抗来构建稳定性判断。

2.2 谐波线性化建模的基本流程

谐波线性化建模是目前比较主流的手段,核心思路如下:给VSC的PCC电压叠加一个小幅值的正序或负序扰动,然后沿着控制链路——PLL、电流环、调制、滤波网络——逐级推导,找出在扰动频率处的正序电流响应。把电流响应除以扰动电压,就得到对应频率的导纳,取倒数得到阻抗。

具体到LCL-VSC,数学模型包含几个环节。主电路部分由VSC桥臂输出电压经LCL网络(逆变器侧电感Li、滤波电容Cf、网侧电感Lg、阻尼电阻Rd)连接至PCC,PCC再通过电网阻抗接入理想电网。控制部分包含PLL、电流环(通常为dq域PI控制器)、电流测量滤波、PWM延迟。每个环节都要有小信号模型,其中PLL和电流环的耦合项是最容易出错的地方。

建模时有一个容易忽略的点:PLL输出角度的扰动会在Park/反Park变换中产生附加调制分量,即使电流环本身是线性的,角度扰动也会把dq轴电压/电流扰动耦合到静止坐标系的另一个频率上。这就是弱电网下PLL动态不容忽视的原因,也是谐波线性化模型比简单忽略PLL的模型更接近实测结果的原因。

我搭模型时习惯先把各个环节在频域表达式里写清符号关系,再在MATLAB里用symbolic或数值代入。这样后面做参数扫描时可以直接改参数重新计算,不需要重新推导。仿真验证时再对照逐点扫频结果检查一个或两个频率点的阻抗值,确认传递函数链路没写错。

3. Simulink里做阻抗扫频:从扰动注入到阻抗提取的完整流程

3.1 直接谐波注入法

在Simulink里做阻抗扫频,最直接的方法是电流扰动注入法或电压扰动注入法。实测扫频时我更常用电流扰动注入:在PCC处并联一个可控电流源,向系统注入特定频率的小幅值电流扰动,测量PCC处对应频率的电压响应,则该频率下的输入阻抗Zin = Vp / Ip。电压扰动注入法则是在PCC处串联一个电压源扰动,测量电流响应,得到的是导纳。

关键参数设置如下:扰动幅值一般取基波幅值的2%到5%。太小了信噪比低,FFT提取不稳定;太大了会触发非线性效应和谐波耦合,导致测量结果偏离小信号模型。仿真时间要保证扰动频率对应的周期数足够多,建议至少取20到50个扰动周期做FFT平均提取,这样频谱泄漏影响可以压到很低。扫频点一般从1Hz到1kHz按对数间隔取50到100个点,PLL动态主导的次同步段适当加密。

这里给一个我常用的小技巧:做FFT提取时不要直接用整段波形算,而是等仿真稳定后截取最后一个扰动周期或几个完整周期,且采样整周期长度。如果采样窗口不是扰动周期的整数倍,频谱会展宽,提取出来的幅值和相位都会偏差,轻则扫频曲线有毛刺,重则阻抗相位符号判断出错。采样步长必须足够小,建议扰动频率高端的至少20到50个采样点/周期。

3.2 扫频脚本示例

下面给出一个我实际用过的扫频流程脚本结构,不是完整工程代码,但思路可以直接照搬。

% 参数设置 fscan = logspace(0, 3, 80); % 1Hz ~ 1kHz,对数间隔 Ainj = 0.03; % 扰动幅值,基波幅值的3% f1 = 50; % 循环扫频 for k = 1:length(fscan) fp = fscan(k); % 1. 修改Simulink模型中扰动源的频率参数(通过set_param或工作区变量) % 2. 运行仿真,仿真时长为 N/fp 左右,保证足够周期数 % 3. 取PCC电压和注入电流的稳态波形 % 4. 以fp为参考做单频DFT,提取幅值和相位 Vp = dft_single_freq(v_pcc, fs, fp); Ip = dft_single_freq(i_inj, fs, fp); Z(k) = Vp / Ip; % 5. 保存结果,继续下一个频率点 end % 最后绘图:幅值Bode和相位Bode,对比理论模型

这里注意,每次仿真都需要从零启动,运行时间取决于最低扫频频率。低频点比如1Hz,需要仿到50个周期就需要50秒仿真时长,在开关模型下会非常慢。所以扫频任务建模时优先用平均值模型(Average Model),忽略开关纹波,只保留基频动态,这对阻抗测量来说完全够用,扫频速度能提升一个数量级。

如果必须用开关模型校核某个频率点,我会只选振荡风险最高的几个频点做验证,不整段扫频。开关模型下每个频点都要等暂态衰减完毕再提取,建议观察时域波形确认电流包络稳定后再录波。

3.3 扫频结果怎么校验

扫完频之后第一步不是直接算稳定性,而是先把测量结果和理论模型对比。我一般做两个检查:第一,观察幅频曲线是否有明显毛刺,毛刺往往来自FFT窗口选取不当或扰动幅值太大;第二,低频段(比如5Hz到20Hz)阻抗曲线是否符合电网阻抗主导的特征——理想情况下PCC处看进去的系统阻抗在该频段接近电网阻抗的串联形式,即幅值随频率以近似20dB/dec趋势变化。

如果发现低频段阻抗相位接近-90度,幅值趋势对,说明扫频系统整体可信。若相位乱跳,优先检查PLL参考角度是否稳定、扰动源是否对PCC电压产生了抬升导致工作点漂移。工作点漂移在弱电网下很容易发生,因为电网阻抗大,注入扰动电流会明显干扰PCC电压幅值,进而改变PLL和电流环的工作点。一个简单解决办法是把扰动幅值降低到1%到2%,或者在工作点稳定后再使能扰动源。

4. 用阻抗比和Nyquist判据把稳定性算清楚

4.1 阻抗比判稳的数学前提和边界条件

拿到PCC处两侧阻抗后,稳定性判断就可以统一到一个框架下。把系统从PCC处切开,一侧是VSC的输入阻抗Zvsc(含LCL滤波器、控制、PLL),另一侧是电网阻抗Zg。对于电流源型换流器,稳定条件等价于阻抗比T = Zg / Zvsc的开环传递函数满足Nyquist判据。若Zg和Zvsc在右半平面都没有极点和零点,T的Nyquist曲线不包围(-1, j0)点,则系统稳定。

实际操作中很少真的去计算开环传递函数的极点分布,而是直接用Nyquist图的包围结果来判定。若曲线顺时针包围(-1, j0),说明系统不稳定。工程上还要求具有一定裕度:谐振频率处阻抗幅值比最好小于-6dB对应相位裕度至少30到45度。这里有个经验值供参考——弱电网下PCC电压的前馈或锁相环对阻抗比在次同步频段的相位影响很大,务必在模型中保留PLL环节,否则计算出的稳定裕度会偏乐观。

阻抗比方法有一个经典的前提:换流器侧模型使用的是小信号线性化阻抗,且两个子系统解耦。实际上电网阻抗和VSC之间存在功率耦合,但标准做法就是在PCC处切开做戴维南/诺顿等效。通常认为噪声扰动很小、工作点变化不大时,这种方法精度足够。如果系统存在明显的频率耦合(比如正负序耦合不可忽略),则需要考虑广义Nyquist判据或回到MIMO形式,这在工程排查中作为二线手段。

4.2 Nyquist曲线解读与谐振频率对应

绘制Nyquist曲线时,我习惯把频率轴分为三段观察:低频段(几Hz到PLL带宽附近)、中频段(PLL带宽到电流环带宽之间)、高频段(电流环带宽以上)。次同步谐振风险通常出现在低频段和中频段的交界区域,表现为Nyquist曲线在该频率段靠近(-1, j0)点;超同步谐振风险出现在中高频段,对应LCL谐振峰或电流环带宽附近的负阻尼。

一个直观的对应关系是:Nyquist曲线穿越负实轴时的频率,对应幅值裕度最差的频率;该频率附近的时域FFT峰值位置应当与之一致。做仿真验证时,我会在时域波形稳定后对PCC电流做FFT,观察峰值频率是否与Nyquist判据预测的临界频率一致。如果时域振荡频率和Nyquist图中穿越频率对不上,大概率有一侧阻抗模型错了,这本身就是一个很好的排错线索。

再看相位裕度。Nyquist曲线接近(-1, j0)最直观的量化就是该点处曲线与单位圆交点的相角裕度。工程上遇到过PLL带宽增大时裕度从40度掉到10度以下、时域确实出现振荡的情况,这说明Nyquist裕度是很敏感的指标,不能只看“是否包围-1点”,要结合稳定裕度一起看。

5. 参数敏感性:电网短路比和PLL带宽怎么左右稳定裕度

5.1 短路比从5降到2的过程演示

为了直观展示弱电网恶化稳定性的过程,我以一个典型LCL-VSC参数为例做说明。系统基频50Hz,开关频率10kHz,LCL参数为Li=0.6mH、Cf=10uF、Lg=0.15mH、阻尼电阻Rd=1Ω,电流环带宽设计在600Hz左右,PLL带宽设计在30Hz左右。电网电感按SCR=5、3、2三档反算,阻抗角取85度。

从阻抗比T的Nyquist图看,SCR=5时曲线离(-1, j0)点较远,相位裕度约35到40度,时域仿真稳定。SCR降到3时,曲线明显向(-1, j0)靠近,此时次同步频段的相位裕度下降到约15度,时域开始出现阻尼较差的低频分量,但还没有发散。SCR=2时,Nyquist曲线在约27Hz处穿越负实轴并且包围(-1, j0)点,时域波形在25至30Hz出现明显次同步振荡并逐渐发散,FFT同时观察到75Hz附近的超同步分量。

这个过程的物理本质是:电网电感增大后,PCC处电压对电流扰动的响应更加显著,PLL在同步过程中产生的负电阻效应被放大,而LCL网侧电感与电网电感串联后也抬高了谐振峰的Q值。两者叠加,导致次同步频段阻抗幅值比持续增大。

5.2 PLL带宽的权衡

PLL带宽对次同步稳定性的影响几乎是单调的:带宽越大,PLL对PCC电压相位扰动的跟踪越快,但在弱电网下其引入的负电阻效应也越显著。用上面同一组参数、SCR=2时,把PLL带宽从30Hz下调到15Hz,次同步频段的负电阻明显减弱,Nyquist曲线不再包围(-1, j0)点,时域振荡消失;把PLL带宽上调到50Hz,则振荡加剧,发散速度变快。

电流环带宽的敏感性则更多体现在超同步频段。电流环带宽过高时,电流环在高频段仍保持较高增益,容易与LCL谐振峰相互作用,在超同步频段形成负阻尼。弱电网下我会把电流环带宽适当下调到400至500Hz,同时保留足够的相位裕度,避免超同步振荡。

5.3 参数设计经验表

下面是我基于多次仿真得到的参数敏感度汇总,适合作为初始参数选择的参考,具体数值需要根据实际LCL参数和控制结构微调:

参数方向次同步谐振风险超同步谐振风险备注
电网电感增大(SCR降低)显著升高略有升高弱电网主因
PLL带宽增大显著升高小幅升高低带宽有利于弱电网稳定
电流环带宽增大小幅升高显著升高注意与LCL谐振峰的交互
LCL阻尼电阻增大降低降低但增加损耗,效率下降
有源阻尼启用降低降低比无源阻尼更复杂,需额外设计

这个表说明一个很重要的原则:弱电网稳定性设计是多个控制环节折中的结果,不是一个参数能解决的。PLL带宽不能一味压低,因为过低会导致动态响应慢、电网频率波动时跟踪滞后;电流环也不能太低,否则输出电流波形质量差。实际设计要在稳定性和动态性能之间反复试凑,而阻抗扫频和Nyquist判据恰好能把这个试凑过程变成可量化的裕度计算。

6. 仿真验证链路:从扫频到Nyquist到时域FFT闭环

6.1 完整验证流程

一段完整的仿真验证应该包含三个层次:线性模型计算、非线性时域仿真验证、时域结果与线性预测的比对。我通常按下面的顺序执行:先在MATLAB脚本里算出VSC阻抗模型和电网阻抗,画Nyquist图得到稳定裕度和预测的谐振频点;然后在Simulink里用平均值模型做扫频,确认实测阻抗曲线与理论模型基本重合;再用同一个模型跑时域仿真,在不加扰动的自然响应中观察是否有振荡趋势。

时域仿真验证环节有一个容易忽略的启动方式:不要直接在理想电网条件下切换成弱电网参数,这会引入一个很陡的阶跃扰动,带来大量非目标频段的暂态分量,干扰对次同步振荡的观察。更稳妥的做法是保持弱电网条件,让系统从零开始逐步启动,等达到稳态后再人为叠加一个小扰动(比如在PCC处注入一个短时电流脉冲),然后观察振荡分量是否按预测频率增长或衰减。

如果系统在某个参数组合下被预测为临界稳定,时域里往往表现为长时段的缓慢振荡包络,这时仿真时长要足够长(比如5到10秒),否则看不到发散趋势,容易误判为稳定。我在实际中遇到过Nyquist图显示裕度只有5度、时域仿真1秒内看起来正常的案例,加大仿真时长到5秒后才看到明显振荡增长。做弱电网稳定性研究,仿真时长千万不要省。

6.2 双闭环验证的案例数据

用一个SCR=2、PLL带宽30Hz的临界参数组合为例,线性模型给出Nyquist曲线在27Hz处包围(-1, j0)点,相角约-190度。Simulink时域仿真在PCC处叠加一个0.1倍基波幅值的25Hz短时扰动后,电流包络呈指数增长趋势,增长时间常数约0.25秒,频谱峰值落在24到27Hz之间,同时伴有72到78Hz的配对分量。两者结果在可接受误差范围内一致。

随后把PLL带宽改为12Hz,重新计算Nyquist曲线,原来的包围消失,相位裕度恢复到28度。Simulink重复上述扰动试验,25Hz分量呈衰减趋势,波形包络收敛到稳态,FFT中该频段能量密度明显下降。这个对比说明“计算判据”和“时域结果”能够彼此印证,整套方法就能用于参数筛选和优化。

需要注意的是,线性模型的谐振频率和时域FFT峰值频率通常有零点几赫兹的偏差,这很正常,因为时域波形受暂态过程、非线性谐波和仿真步长的影响。工程上只要偏差在5%以内,就可以确认模型和判据本身没有错误。

7. 仿真实现中的坑和排错经验

7.1 扫频过程中常见的四个问题

第一个坑是扰动幅值和工作点漂移。弱电网下PCC电压对电流扰动非常敏感,注入幅值过大时,工作点随扰动源开合发生明显变化,测出来的阻抗实际是两个工作点的混合结果,曲线形状会奇怪。解决方法是降低扰动幅值,并在PCC电压波形上实时监视电压幅值波动不超过2%到3%。

第二个坑是FFT窗口长度和采样率不匹配。前面提到过整周期采样,这里再强调一次具体操作:假设要扫频到fp=1Hz,采样率取10kHz时,一个周期内10000个点,FFT窗口取一个整周期误差最小。如果扫频点分布太密、每个点都要重新运行仿真,总时间会很长。我的做法是先扫粗网格(比如30个点),锁定风险频段后再在该频段加密扫细网格。

第三个坑是平均值模型与开关模型的差异。平均值模型不含开关纹波和谐波,测出的阻抗曲线更光滑,也更快。但开关模型下测出的阻抗在LCL谐振峰附近会有额外耦合分量,实测中发现开关模型在谐振峰附近的阻抗幅值比平均值模型略低、相位滞后更多。差异来源主要是PWM延迟和采样保持效应,在做精细判稳时建议以开关模型校核关键频点,扫频主体用平均值模型。

第四个坑是仿真步长选择。如果使用ode15s这类变步长求解器,在扫频时每个频率点可能采用不同的步长序列,导致提取频率点的相位噪声偏大。建议扫频阶段固定步长(如1e-5秒或1e-6秒),以确保FFT的时间基准一致。固定步长会让单频点仿真变慢,但对数据质量和结果可比性有很大帮助。

7.2 模型错误导致的误判案例

遇到过一个很典型的误判:理论模型和扫频结果在前30个频点一致性很好,但从40Hz开始相位逐渐偏移,到60Hz时误差超过20度。排查后发现,控制链路里有电流测量的一阶低通滤波环节,初始建模时将其作为理想比例环节处理,而40Hz以上这个滤波器的相位延迟开始明显。加入滤波器模型后,扫频曲线与理论模型在整个目标频段都吻合。

这个教训可以推广为一条通用排错顺序:相位误差先怀疑测量/滤波环节,再怀疑PLL动态;幅值误差先检查主电路阻抗参数,再检查控制增益标幺化是否正确。很多建模问题都出现在控制器的标幺化基准错误上:Simulink中电压基值取相电压幅值还是线电压有效值,会导致控制器增益差异根号3倍,阻抗计算结果差异明显。建议在建模初期把标幺化基准写在脚本最前面,避免中途混淆。

7.3 参数扫描的高效做法

做参数敏感性研究时,不建议直接地手动改模型参数。我的做法是把所有参数放在一个MATLAB脚本的struct里,Simulink模型从工作区读取这个struct;扫频脚本在每次循环中修改struct字段、调用sim命令运行模型、提取数据,并自动保存结果。这样SCR、PLL带宽、电流环PI等参数可以批量扫描,配合并行计算工具箱还能进一步缩短总时间。

有些情况下,线性模型计算出的稳定裕度与时域仿真结论矛盾,优先检查的不是公式,而是时域仿真里的初始扰动和仿真总时长。临界稳定时对初始扰动幅值和时间点都很敏感,换一种扰动方式结论可能就在稳定和不稳定之间翻转。遇到这种情况,我会把线性判据看作“趋势参考”,把时域仿真看作“最终结论”,两者差太远时再回头排查模型。

7.4 实际研发展望

阻抗分析这套方法在实际工程中还有一个经常被低估的价值:它可以让控制参数的优化从“试凑”变成“定向”。给出一张全频段阻抗曲线,就能直观看到哪个频段裕度低,然后对照控制环节的贡献来判断是PLL拉低了低频段相位,还是电流环在中频段引入了负电阻。相比反复改PI参数看波形,这种诊断方式每次迭代都更接近问题根源。

我自己现在做并网逆变器稳定性相关研究时,流程基本固定为:建模→扫频→理论对比→Nyquist判稳→时域验证→参数敏感度分析。这套流程对LCL-VSC、L型VSC甚至构网型控制在弱电网下的研究都适用,核心思想都是把非线性时域系统分频段映射成阻抗模型,再借助经典控制理论做出判断。

最后分享一个小习惯:每次做完一个参数组合的稳定性分析,我都会把Nyquist图、扫频阻抗曲线和时域FFT三张图保存成一个结果清单,连同参数组合一起归档。后续复现或调整参数时,这个清单能节省大量重复劳动,也能让审阅者一目了然地看到“预测”与“实测”的对应关系。弱电网下的稳定性问题本身很复杂,但只要有系统的方法,每个现象背后都能找到清晰的控制环路解释。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进