
1. 先搞清楚弱电网、LCL、VSC三个词放在一起意味着什么调了这么多年并网逆变器最怕的不是硬件炸管而是那种眼看波形正常、功率也上去了突然某个晚上电流开始打摆子的工况。后来才明白这种低频振荡绝大多数不是控制参数乱调出来的而是弱电网下LCL型电压源变换器与电网阻抗相互作用产生的次同步/超同步谐振。今天把验证过的方法摊开聊弱电网下LCL-VSC阻抗建模、基于Nyquist判据的稳定性验证以及整套Simulink仿真实现流程。这篇内容适合正在用阻抗法排查并网振荡、或者刚接触VSC稳定性分析的人如果你已经会用伯德图看增益裕度那阅读起来会非常顺手。1.1 LCL滤波器的天然谐振点LCL滤波器由逆变器侧电感L1、滤波电容Cf和网侧电感L2组成相比单L滤波器它的高频衰减特性更好所以大功率并网逆变器几乎都用LCL。但代价是引入了一个不受控的谐振峰频率约为f_res 1 / (2π sqrt(L1 L2 Cf / (L1 L2)))这个公式在并网逆变器设计中会反复出现。比如一套50kW、线电压380V的系统取L11.5mH、L21.0mH、Cf30uF算出来谐振频率大概在1.2kHz左右。设计时通常要求谐振频率避开电流环带宽和开关频率一般取开关频率的1/10到1/5。问题是工程上写到“LCL参数按标准设计好了谐振频率也躲开了”却忘了并网点的电网阻抗不是零。弱电网下电网等效电感Lg会在网侧电感L2外面再串一个电感LCL的等效结构从三阶变成四阶谐振频率会被拉低阻尼特性也变了。更麻烦的是这个被拉低的谐振峰一旦和锁相环、电流环的频段搭上就可能不再是简单的LCL谐振而是可控性变差带来的负电阻失稳。很多人第一次碰到次/超同步谐振时会下意识认为是滤波参数不对反复调LCL阻尼电阻。实际上滤波参数只是把问题“搬了个位置”真正失稳的根源经常在PLL动态和弱电网阻抗的交互上。1.2 次同步和超同步谐振是怎么被“逼”出来的根据我调试的真实工况最典型的场景是电网短路比SCR偏低大概在2到3之间。此时电网阻抗已经很大如果VSC的PLL带宽设置得比较激进当并网点电压发生微小扰动时PLL输出的相位会跟着抖。这个相位扰动会让dq坐标系下的电流指令在真实坐标系里产生一个额外的耦合分量。这个耦合分量的等效阻抗在某个频率范围内会呈现负实部也就是“负电阻”。负电阻意味着能量不是被消耗而是被注入到振荡回路里。只要这个负阻区间的频率与电网电感、LCL电容构成的谐振频率重合系统就会形成闭环负阻尼振荡。电网基波是50Hz时振荡频率往往是成对出现的一个低于50Hz的次同步分量一个高于50Hz的超同步分量。比如工程录波里常见的30Hz和70Hz、40Hz和60Hz。很多人只关注次同步那一半其实超同步频段同样携带能量两者在dq坐标下互为镜像分析时不能只看单频点。我后来养成的习惯是先做全频段阻抗扫描再回到时域看FFT确认这两个分量是否同时出现。只盯着某一个频率做伯德图很容易漏掉另一侧的失稳模态。2. 阻抗建模把时域控制问题变成频域网络问题2.1 为什么放弃状态空间而选阻抗法LCL-VSC并网系统如果写状态空间方程状态量至少包括L1电流、L2电流、Cf电压、PLL内部状态、电流环积分器、直流电压动态一套模型轻松超过10个状态。再加上弱电网阻抗本身也是动态矩阵维数一高什么零点、极点、参与因子都变得很难直观解读。阻抗法换了个思路把VSC整体看成从PCC看进去的一个复频域阻抗Zvsc(s)电网则是一个阻抗源Zg(s)。两个网络串联后稳定性只需要研究Zg(s)Zvsc(s)的最小相位特性。这样不仅模型尺寸小而且物理意义清楚某个频段是感性还是容性、是正阻还是负阻一眼就能看出来。更关键的是阻抗法可以打通“解析模型”和“仿真测量”之间的鸿沟。解析模型用来推导机理Simulink扫频用来验证参数变化两者在Nyquist图上应该对得上。对不上的地方往往就是建模漏掉的那部分比如数字控制延迟、PLL前置滤波、采样保持效应。2.2 从控制结构到VSC输出阻抗的基本推导在dq同步旋转坐标系下不计PLL动态时若电流环带宽足够高VSC可以近似看成受控电流源输出阻抗理论上接近无穷大。但实际系统里采样延迟、PWM滞后和PLL都会让“受控电流源”出现有限的并联阻抗。PLL的影响是最有意思的。假设PCC电压有一个小扰动PLL会把这个扰动识别成相位变化导致内部dq坐标系和真实电网dq坐标系之间出现角度偏差。电流指令虽然在控制器的dq坐标里没变但投影到真实坐标后会产生一个与PCC电压扰动同频的电流响应。这个响应折算成导纳在次同步频段往往是负实部。如果只写理想电流环模型Zvsc(s)里根本看不到负阻项。必须把小信号PLL传递函数T_pll(s)和工作点电流I0耦合进去。常见推导里阻抗表达式分母会出现类似1 - T_pll(s) * G(s) * I0这样的项它在低频段模值小于1特定频率下相位翻转对应的实部就会变负。这也是为什么同一套逆变器在强电网下跑得很稳换到弱电网就振荡。2.3 LCL端口阻抗怎么合成从PCC看进去VSC的端口阻抗并不直接等于逆变器电流环的闭环阻抗而是LCL整个网络的输入阻抗。电网侧电感L2在最外面然后是Cf并联支路再往里是L1和受控电压源组成的逆变器支路。简化表达式可以写成Z_pcc(s) sL2 ( (sL1 R1 Z_cont(s)) ∥ (1/(sCf)) )其中Z_cont(s)是逆变器侧受控电压源的等效内阻包含电流环增益和PLL耦合项。这个式子里Cf支路的影响在谐振频率附近变得非常显著而PLL带来的负阻项主要通过Z_cont(s)进入网络尤其在次同步频段Cf容抗还很大负阻项不会被短路掉。做Simulink阻抗测量时我测到的就是Z_pcc(s)不是L1支路单独阻抗。对比解析模型时要把这个端口合成关系处理好否则高频段数据和理论对不上。3. Nyquist判据验证比单纯看阻尼比更直观3.1 返回比怎么构造把VSC看成负载阻抗Zvsc电网看成理想电压源Vs串联Zg。并网电流可以写成I(s) Vs(s) / (Zg(s) Zvsc(s))系统特征方程是Zg(s)Zvsc(s)0。两边除以Zvsc(s)得到1 Zg(s) / Zvsc(s) 0所以开环传递函数取L(s)Zg(s)/Zvsc(s)画它的奈奎斯特曲线看是否包围-1点。这个做法在电力电子交流侧稳定性分析里非常常见但要注意这不是随便套用的。前提是Zg和Zvsc本身不能带有右半平面极点或者至少要知道右半平面极点数P才能正确判断“不包围”是否等价于稳定。工程里我习惯先用解析模型确认Zg和Zvsc都是最小相位系统再用扫频数据画奈奎斯特图。如果扫频曲线在-1点附近绕来绕去就用iso在图上输出包围圈数不要靠肉眼猜。3.2 广义奈奎斯特与dq耦合严格来说三相平衡系统在dq坐标系下是双输入双输出正序和负序之间存在耦合。PLL动态越强耦合越明显。若只画单回路L(s)Zg(s)/Zvsc(s)在某些边界工况可能误判稳定。这时候需要用广义奈奎斯特判据计算闭环返回比矩阵的特征轨迹。特征值可以近似用复矢量法求出结果是一条或多条曲线它们是否包围(-1,0)决定系统稳定性。Simulink扫频时如果扫了正序和负序两组阻抗就可以组装出二乘二导纳矩阵再做特征轨迹验证。对于初学者我的建议是先用正序单回路扫一遍找出失稳趋势如果发现临界工况周围裕度很小再上广义奈奎斯特做精确判断。不要一上来就追求完整MIMO模型阻抗法的优势本来就在于“用最小的模型找最大的问题”。3.3 奈奎斯特曲线怎么读很多文章只告诉你“不包围-1就稳定”但实际曲线往往是一大圈扫过负实轴离-1点有一段距离。这时要看的是曲线是否从负实轴穿过去而不是绕回原点穿越点是否在-1左侧曲线靠近-1点时的频率是否正好对应时域FFT里的次/超同步峰。经验值是曲线离-1点越近阻尼越弱时域波形衰减越慢。如果曲线已经包住-1点系统通常表现为等幅振荡或发散振荡振荡频率就是曲线穿越负实轴附近的角频率。上面说的30Hz和70Hz成对出现在奈奎斯特图上往往会看到两个不同的穿越频段。4. Simulink仿真实现从模型搭建到奈奎斯特判据验证4.1 仿真模型整体结构和参数设计Simulink里做这套研究我建议先用平均值模型不要一上来就搞IGBT开关模型。平均值模型用受控电压源替代桥臂模型运行速度快扫频几十个频点也不至于跑半天。阻抗趋势验证通过之后再挑失稳参数点搭一个详细开关模型看时域波形和FFT。我常用的一组参数如下。参数数值说明额定功率50 kW并网有功电网线电压380 V / 50 HzPCC额定电压直流母线电压750 V平均值模型给定L11.5 mH逆变器侧滤波电感L21.0 mH网侧滤波电感Cf30 uF滤波电容开关频率10 kHz详细模型使用控制频率10 kHz电流环/PLL采样LCL谐振频率约1.2 kHz计算值电网阻抗按短路比SCR折算。以50kW、380V为例阻抗基值为Z_base 380^2 / 50000 2.888 Ω每个短路比对应的电网阻抗如下。SCRZg(Ω)Lg(mH)Rg(Ω)100.28880.920.028950.57761.840.05782.51.15523.680.11551.61.80505.750.1805Rg按X/R10取值。弱电网重点研究SCR2.5和1.6两档强电网用SCR10作为对照。4.2 用频率扫频法测量VSC输出阻抗在Simulink里测量VSC阻抗最直观的方法是PCC处串联一个小信号电压扰动源。扰动源设置成单频正弦扰动幅值取电网电压峰值2%到5%从1Hz扫到2000Hz。每扫一个频率都要等系统进入稳态然后提取该频率下的电压和电流复幅值两者相除就是该频点阻抗。我实际用过的操作流程是搭建好平均值模型把电网阻抗设为固定值在PCC与电网阻抗之间串联一个可控电压源输入为sin(2πf_inj t)基波源正常运行等到第50ms后开始记录数据取最后一个基波整数倍周期的电压电流数据用单频DFT提取扰动频率下的复数值每个频率重复一次仿真或者用循环批量改参数。核心代码大致是下面这种写法f_list 1:0.5:2000; Z_meas zeros(size(f_list)); for k 1:length(f_list) f_inj f_list(k); set_param(lcl_vsc_scan/Injection, Frequency, num2str(f_inj)); sim(lcl_vsc_scan); t logsout.get(vpcc).Values.Time; v logsout.get(vpcc).Values.Data; i logsout.get(ipcc).Values.Data; idx t (t(end) - 0.1); % 取稳态段 Vf 2/length(v(idx)) * sum(v(idx) .* exp(-1j*2*pi*f_inj*t(idx))); If 2/length(i(idx)) * sum(i(idx) .* exp(-1j*2*pi*f_inj*t(idx))); Z_meas(k) Vf / If; end扫频得到的是端口阻抗需要通过三相电压电流构造成正序复矢量。三相平衡系统里把abc变换到αβ再用vαjvβ做单频DFT能直接得到正序阻抗。如果要做负序注入反向旋转的三相扰动即可。4.3 从扫频数据到Nyquist图扫频数据是离散频点上的复数数组不能直接丢给nyquist函数需要包装成frd对象。假设Zg是解析计算的电网阻抗Zvsc是扫频得到的VSC阻抗开环返回比是L(jω) Zg(jω) / Zvsc(jω)MATLAB里画奈奎斯特图可以这样写w 2*pi*f_list; Zg Rg 1j*w*Lg; L_open Zg ./ Z_meas; sys frd(L_open, w); nyquist(sys); grid on;功率上要注意frd对象默认只包含正频率nyquist会自动补全负频率镜像。因此不需要手工扩充数组。若曲线在-1点附近穿越可以用allmargin(sys)查看增益裕度但奈奎斯特包围圈数还是要看nyquist输出的环绕信息。4.4 时域对比验证与FFT特征阻抗判据只能说明稳定性趋势最终还是要回到时域看一眼波形。同一个Simulink模型去掉扫频扰动源直接让电网阻抗和VSC闭环运行。把SCR设为2.5PLL带宽取50Hz左右并网电流会出现明显的“拍振”。对电流做FFT频谱里通常同时出现两个峰一个在次同步频率一个在超同步频率。下面是一个典型的对照结果。工况SCRPLL带宽电流波形FFT主要频率强电网1050 Hz平稳50Hz及少量开关谐波弱电网2.550 Hz包络波动30Hz、70Hz弱电网2.520 Hz平稳50Hz弱电网1.650 Hz发散25Hz、75Hz这个表格我实际复现过多次很能说明问题PLL带宽低一些弱电网下也稳定PLL带宽一高负阻区就压下来了。做参数化研究时可以批量修改SCR和PLL带宽记录每组参数下的Nyquist曲线穿越情况和FFT峰值两者对上结论就非常扎实。5. 工程中常见的坑与排查技巧5.1 扫频结果毛刺多的主要原因扫频开始前最容易被忽略的是FFT窗口长度。如果取的数据长度不是扰动频率整数倍周期DFT结果会受频谱泄漏影响阻抗曲线就会在某个频点突然跳变。我通常强制取最后一个完整基波周期数的倍数比如0.1秒就是5个基波周期如果扫频频率不是50Hz整数倍0.1秒对它可能是整数个周期也可能不是。因此更稳妥的做法是记录时间戳用最小二乘拟合提取幅值和相位而不是简单截窗。另一个坑是扰动幅值。注入幅值太大PLL会进入非线性区扫出来的负阻频段失真注入太小电流信号淹没在噪声里。实用范围是电网电压峰值的2%到5%弱电网下PCC电压扰动已经被放大可以再往低取。5.2 奈奎斯特判据误判的几个注意点用扫频数据画奈奎斯特图时最怕把“曲线绕远路”误当成“不包围-1”。如果扫频范围只到某个有限频率曲线末端没有闭合奈奎斯特判据严格来说不完整。因此扫描上限至少要到LCL谐振频率的3倍以上最好覆盖开关频率的一半低频段从1Hz开始就够用次同步问题都在几十赫兹附近。还要检查Zvsc在扫频频段内是否存在右半平面零点。若振动形态接近负阻阻抗在某些频率可能表现出非最小相位特性开环L(s)的右半平面极点数P就不是0。这时直接用图形判断会出错建议用闭环特征方程配合极点求解确认。5.3 PLL带宽、SCR与失稳形态的关系现场调参数时我总结出几条规律可以当快速判断依据调节方向对次同步/超同步的影响原因降低PLL带宽失稳风险下降相位扰动变小负阻区减弱增大SCR稳定性变好电网阻抗减小返回比幅值下降增大电流环带宽超同步风险可能上升控制带宽接近LCL谐振峰增加滤波电容谐振频率降低负阻区更可能与LCL峰重叠如果现场条件允许优先降PLL带宽代价是动态响应变慢但转换稳定性改善非常明显。另一种做法是加入附加阻尼控制比如在电流环指令上叠加次同步频段的阻尼支路但参数设计要基于阻抗模型来做不能盲调。我自己的习惯是先在解析阻抗模型上用奈奎斯特扫描一遍参数区间再用Simulink扫频抽检几个拐点省时间又不至于漏掉边界。最后提醒一句做稳定性验证时一定把SRF-PLL完整建模进去很多“明明稳定”的模型就是因为这里被简化掉才低估了负阻尼风险。