
前阵子做了一台并网变流器的弱电网稳定性分析项目从阻抗建模、次/超同步谐振机理推导到Nyquist判据验证最后在Simulink里逐个跑扫频和时域仿真前后折腾了不少时间。整个过程走下来最大的体会是阻抗分析法不止是理论工具它和仿真验证组合起来能非常高效地把“系统会不会振荡”这个问题量化清楚。这篇文章就把整套方法和踩过的坑整理出来如果你也在做新能源并网、微电网或者电力电子化电力系统相关研究应该能省不少功夫。这篇文章围绕的核心关键词是LCL-VSC、阻抗建模、稳定性分析、Nyquist判据、Simulink仿真。我会按照“为什么用阻抗法→怎么推导阻抗模型→次/超同步谐振怎么产生→Nyquist判据怎么用→Simulink怎么复现→实测遇到哪些问题”这条线来讲尽量把理论逻辑和实操细节都交代明白。1. 弱电网下的稳定性问题为什么非要用阻抗法1.1 强电网与弱电网的本质区别传统并网变流器控制设计时普遍假设电网是“刚性”的也就是并网点电压基本不随功率变化电网等效阻抗近似为零。在这个前提下变流器的输出功率主要由控制器决定电流内环、锁相环都可以按理想电压源环境来设计。这个假设在短路比SCR大于10的强电网里基本成立工程上问题不大。但弱电网不是这样。弱电网最直接的特征是电网等效阻抗Z_g不能再忽略。短路比SCR定义为并网点短路容量与变流器额定功率的比值可以粗略理解为电网阻抗功率基准下的标幺值倒数。SCR小于3通常就算弱电网小于2甚至接近1时电网阻抗会显著影响变流器的控制回路。电网阻抗一上来PCC电压就不是刚性了。变流器输出电流在L_g上产生压降PCC电压会随功率波动、随电流谐波波动甚至随控制器的动态响应波动。锁相环追踪的电压相位本身包含扰动电流环的反馈电压也包含扰动整个控制系统和电网阻抗之间形成了一个相互耦合的闭环。这个闭环在某些频段可能是负阻尼的振荡就会从这里冒出来。1.2 阻抗分析法的核心优势传统稳定性分析用状态空间法把变流器、滤波器、电网全部状态变量写出来计算特征值判断稳定性。这个方法在固定参数下是准确的但有一个尴尬的问题电网阻抗一变、控制器参数一改、运行功率一换所有状态矩阵都要重新推导一遍。弱电网稳定性分析恰恰需要大量参数扫描状态空间法就显得笨重。阻抗分析法的思路完全不同。它把变流器端口等效为一个阻抗Z_vsc(s)把电网侧等效为另一个阻抗Z_g(s)。两个子系统在PCC点“面对面”连接稳定性就看这两个阻抗在频域上是否匹配。因为电网阻抗就是简单的R_g加L_g模型变换参数只需要改两个数变流器阻抗可以解析推导也可以直接通过仿真或实验测量得到。频域曲线画出来之后稳定性趋势一目了然。另一个优势是阻抗模型可以直接用实验数据。实际装置里你很难测量全部内部状态变量但通过注入扰动获取端口阻抗频率响应很方便。仿真验证时阻抗扫频结果与解析模型对比如果曲线吻合说明建模正确性有保障如果失配也能快速定位是哪个环节的模型出了问题。1.3 研究对象边界设定这篇文章分析的对象是LCL滤波的三相两电平VSC。LCL滤波器在并网变流器里很常见优点是高频衰减比单电感好但代价是引入了一个谐振峰弱电网下电网阻抗还会让这个谐振峰移动问题就更复杂。控制策略采用最常见的“dq同步旋转坐标系PI电流内环功率外环SRF-PLL”。这里提一句我自己在实际项目中用的是一组典型参数额定功率10kW、线电压400V、开关频率10kHz、滤波电感L11.5mH、L20.6mH、滤波电容C15μF。后面所有的仿真结论都以这组参数为参照。你的项目参数不同没关系方法完全一致只是数值会变化。2. LCL-VSC阻抗建模从控制结构到端口阻抗2.1 坐标系的选取与小信号线性化阻抗建模最核心的思维是“在稳态工作点附近做小信号线性化”。三相变流器在abc坐标系下是时变的周期系统但转换到同步旋转dq坐标系后稳态电流电压都是直流量小信号模型就成了LTI系统可以用拉普拉斯变换分析。dq坐标系下电压和电流扰动分解为d轴和q轴分量。变流器端口阻抗在这个坐标系下是一个2x2矩阵Z_dq(s) | Z_dd(s) Z_dq(s) | | Z_qd(s) Z_qq(s) |对角项就是传统的自阻抗非对角项是交叉耦合。理想情况下电网电压对称、控制器对称时Z_dd(s)≈Z_qq(s)Z_dq(s)与Z_qd(s)互为相反数。但实际控制中存在异步旋转的负序分量耦合项不可简单地忽略这正是后面频率耦合问题的基础。建模时电流正方向的定义必须在一开始就固定下来。我习惯定义“从变流器流向电网为正”此时端口电压V_pcc与电流I_s的关系写成戴维南形式V_pcc(s) V_th(s) - Z_vsc(s) * I_s(s)如果定义成“从电网流向变流器为正”阻抗表达式就会差一个负号。一个负号足以让Nyquist判据的结论反着来。这个坑我踩过当时用错方向Nyquist曲线绕-1点绕了整圈对着公式查了两天才发现是符号问题。2.2 关键环节动态的等效阻抗贡献变流器端口阻抗不是滤波器那么简单它是“滤波器网络控制系统动态”共同作用的结果。控制系统的每一环都会在阻抗表达式里“投影”出对应频段的特征。锁相环PLL是最关键的一个。SRF-PLL通过q轴电压调节输出相位当PCC电压存在扰动时PLL输出角度会跟踪扰动量这时Park变换的旋转角本身不再是一个固定值控制信号里就混入了扰动信息。PLL带宽范围内它对阻抗的影响非常显著具体表现为变流器在次同步频段可能出现负电阻特性。PLL带宽越高这个负电阻作用的频率范围越宽弱电网下的稳定性风险就越大。电流内环直接把电感电流dq分量控制在参考值附近电流环带宽决定了中频段阻抗形状。在电流环带宽以内变流器呈现近似电流源特性对外阻抗幅值很大高于带宽后电流环失效阻抗趋于滤波器网络和延时决定的形状。数字控制延时也不可忽视。一个控制周期T_s的计算延时加上PWM的平均保持延时大约造成1.5个控制周期的纯滞后。这个滞后在全频段引入线性相位延迟频率越高相位滞后越大。到LCL谐振频率附近相位可能已经滞后了几十度对超同步频段的稳定性影响极其关键。2.3 频率耦合单输入单输出不够用dq坐标系下的阻抗矩阵本质上已经包含了频率耦合的数学形式。因为Park变换把基波频率偏移了50Hz一个频率为f_p的扰动信号在dq坐标系下表现为f_p-50Hz的信号对于正序和f_p50Hz的信号对于负序。控制器中的PI环节、PLL动态会在这个偏移频率下形成回路导致某个频率f_p的正序扰动不仅在该频率产生响应还会在镜像频率2*f_1-f_p处产生一个耦合响应。也就是说在abc坐标系下变流器端口阻抗不是单输入单输出而是正序扰动会产生负序响应。如果只用对角项Z_dd(s)、Z_qq(s)做单回路稳定性判断在某些频段会得到过分乐观的结论。严格的分析需要把2x2矩阵放在一起用广义Nyquist判据或者把阻抗矩阵转换成正负序阻抗矩阵后再分析。仿真验证频率耦合很简单PCC注入10Hz扰动FFT分析V_pcc和I_s的频谱时除10Hz分量外还会看到90Hz分量。90Hz就是这个10Hz扰动的镜像频率。我第一次扫频时看到这个分量还以为是自己FFT算法写错了后来查资料才意识到这是正常的频率耦合现象。2.4 阻抗推导的统一视角完整的阻抗模型推导一般分几步先列写主电路LCL滤波器的频域方程再列写电流环、PLL、外环的控制器方程并转换成小信号形式最后把控制方程代入滤波器方程消去中间变量得到V_pcc与I_s之间的关系整理出Z_vsc(s)。外环功率外环或直流母线电压环在次同步低频段的作用也要考虑。功率外环带宽通常小于20Hz当电网阻抗较大时功率环动态会通过电流参考值的调制影响阻抗低频段。如果项目里外环带宽设置得比较高低频段阻抗会明显偏离“只有内环PLL”的简化模型。所以建模时建议把外环动态也加进去即使它只影响低频段也不要在建模阶段省略。3. 次同步谐振与超同步谐振机理与阻抗表现3.1 谐振频段的划分根据振荡频率与工频的关系弱电网下变流器系统的谐振分为次同步谐振和超同步谐振两大类。在中国50Hz系统里次同步谐振大致指1~45Hz频段的振荡超同步谐振指50Hz以上、通常到一两千赫兹的振荡。二者的主导机制完全不同分析时要分开看待。次同步谐振在风电领域发生过多次实际事故典型振荡频率十几到二十几赫兹。这类振荡发生的共同背景都是弱电网大量变流器集中接入、电网阻抗大、PLL和功率外环动态耦合严重。超同步谐振的频率范围更宽可能出现在几百赫兹到1kHz以上。LCL谐振峰附近是超同步谐振的高发地带因为这里滤波器网络的相位跳变剧烈再加上控制延时的相位滞后很容易形成负阻尼条件。3.2 次同步谐振的负电阻机理从阻抗视角看次同步谐振可以用一个比较直观的方式理解变流器在次同步频段对外的等效阻抗实部可能是负数。正常的RLC回路中电阻R消耗能量扰动会衰减。但变流器通过PLL和控制器的动态反馈可以等效为一个“负电阻”元件。负电阻不消耗能量反而向系统注入能量。当电网阻抗是正电阻感抗时系统总电阻是R_g加上变流器等效电阻。如果这个总电阻在某频段为负系统的特征方程在该频段就存在右半平面极点时域表现为增幅振荡。负电阻出现的频段很大程度由PLL带宽决定。PLL带宽以内的扰动会被PLL跟踪并反馈到控制回路促成一个正反馈机制PLL带宽之外的扰动PLL基本不响应负电阻特性消失。所以弱电网下PLL带宽设计过高就是给次同步振荡埋雷。我在参数扫描时试过不同PLL带宽10Hz带宽时Nyquist曲线远离-1点调到50Hz后曲线直接穿过去了效果非常直观。3.3 超同步谐振的主导因素超同步谐振与次同步谐振的机理不同它更多地由电流环延时和LCL滤波器谐振峰共同决定。电流环在高频段的相位滞后主要来自三个部分采样/计算延时、PWM保持延时、电流PI控制器的惯性。这些滞后叠加起来到某个频率后变流器阻抗的相位可能由容性变成感性再变成容性在特定频段形成一个相位反转。如果这个频段正好和LCL谐振峰或者电网阻抗谐振点重合就可能激发超同步振荡。LCL谐振峰本身的阻尼也很关键。LCL谐振频率f_res的计算公式是f_res 1 / (2 * π * sqrt(L1 * L2 * C / (L1 L2)))以我用的参数计算f_res大约在1984Hz。接入弱电网后电网电感L_g和L2串联等效网侧电感增大f_res向低频移动。SCR越低L_g越大f_res移动得越厉害。原来主动阻尼参数是针对原始谐振频率设计的谐振点一移动阻尼效果就会打折。这是弱电网下LCL变流器超同步振荡的重要诱因。3.4 阻抗曲线上的“危险区”识别通过扫频获得Z_vsc(s)的幅频和相频曲线后有两个位置要特别留意。一个是阻抗幅值曲线与电网阻抗幅值曲线的交点频率。电网阻抗Z_g(s)R_gsL_g幅值随频率线性上升。Z_vsc的幅值曲线则在特定频段有起伏甚至尖峰两条曲线相交的位置就是两个阻抗幅值相等的频率点。在这个频率点回路增益幅值为1最可能发生振荡。另一个位置是Z_vsc相频曲线穿越“电网阻抗相位”的频段。电网阻抗相位接近90°纯感性如果Z_vsc在某个频段相位也接近90°两者总阻抗相位接近180°系统就可能处于负阻尼状态。把这些“危险区”频率点和时域FFT出来的振荡频率对照你会发现对应得很好。4. Nyquist判据的工程化应用4.1 从阻抗比到开环传递函数把研究对象等效为两个阻抗串联后稳定性判断变成一个标准的反馈系统问题。以我前面的正方向定义系统特征方程可以整理为1 Z_g(s) / Z_vsc(s) 0定义回路增益T(s) Z_g(s) / Z_vsc(s)。如果Z_vsc(s)和Z_g(s)都在右半平面没有极点那么系统稳定等价于T(s)的Nyquist曲线不包围-1点。这个前提条件很关键变流器自身必须稳定Z_vsc没有右半平面极点电网阻抗是被动元件天然稳定整个系统才会退化成简单的开环曲线判据。实际判断时我习惯画出T(s)从ω0到ω→∞的极坐标曲线观察它是否绕过-1点。如果曲线穿过-1点说明该频率是临界稳定曲线从-1点右侧绕过系统稳定但裕度有限曲线把-1点包围系统不稳定。4.2 单入单出与广义Nyquist的取舍前面提到了频率耦合这就牵出一个现实问题严格的稳定性判断应该用2x2矩阵的广义Nyquist判据也就是计算回比矩阵L(s) Z_g(s) * Z_vsc^(-1)(s)的特征值λ1(s)、λ2(s)分别画两条Nyquist曲线判定是否包围-1点。广义Nyquist工程化理解也不难特征值本质上等效于对阻抗矩阵解耦后的“等效标量回路增益”。只不过求解2x2矩阵特征值会涉及平方根和复数运算表达和掃频都比SISO麻烦。我的实践习惯是分两步走第一步用SISO近似取对角项或正负序对角项快速扫描电网阻抗、PLL带宽等参数画出趋势性的稳定边界图第二步在SISO判断处在临界状态或者需要精确定论的关键工况下用广义Nyquist做最终判断。这样既能控制工作量也能避免SISO过度乐观带来的误判。还有一个辅助工具是Bode图。把Z_vsc和Z_g的幅频曲线、相频曲线画在同一张图里阻抗交点频率和相位差一目了然。相位裕度PM可以定义为PM 180° - |∠T(jω_c)|其中ω_c是增益穿越频率。PM小于30°时实际系统的阻尼已经很弱即使判定为稳定时域也会有明显的振荡衰减过程现场感受就是波形“拖泥带水”地晃几下才稳下来。4.3 稳定裕度的参数灵敏度分析Nyquist判据不仅给稳定/不稳定二元结论还能分析参数变化的趋势。我做过一组PLL带宽扫描固定SCR1.8依次设置PLL带宽为10Hz、20Hz、30Hz、50Hz观察T(jω)曲线的形状。10Hz时曲线与-1点保持较远距离20Hz时距离缩小30Hz已经趋近-1点50Hz直接包围了-1点。趋势非常清晰判据给出的临界带宽和时域仿真相差不超过2Hz。电网阻抗的影响同样可以这样扫。把SCR从5、3、2、1.5分别代入Z_gNyquist曲线簇会直观显示稳定裕度如何随短路比减小而恶化。这类图放在论文或技术报告里非常有说服力评审一眼就能看到规律。5. Simulink仿真实现全流程5.1 主电路搭建要点Simulink里做这类仿真建议使用Simscape Electrical Specialized Power Systems库里面的Three-Phase Source、Three-Phase Series RLC Branch、Universal Bridge、Three-Phase Transformer等模块可以直接搭主电路。主电路拓扑是直流电压源→三相两电平VSC→LCL滤波器→带R_g/L_g的电网。直流侧在PQ控制模式下可以简化为恒定直流源Vdc700V省掉直流母线电容和电压环专注研究交流侧稳定性。如果你要分析直流母线电压环参与的振荡再把直流侧动态加回来。特别提醒Universal Bridge模块里面可以选IGBT还是平均模型。平均模型在分析低于开关频率一半的动态时和开关模型结果一致但仿真速度快很多阻抗扫频强烈建议先用平均模型。开关模型的优势是能观察到真实纹波和PWM谐波但扫频时FFT里会混入大量高频噪声处理起来很麻烦。电网阻抗用Three-Phase Series RLC Branch串联在电网电压源和PCC之间。R_g和L_g的计算方法Z_base V_nominal^2 / S_rated Z_g Z_base / SCR R_g Z_g * cos(φ_g) L_g Z_g * sin(φ_g) / (2 * π * f_1)典型电网阻抗角φ_g取70°到90°之间感性为主。我的10kW参数里Z_base约14.44ΩSCR2时Z_g约7.22ΩL_g约23mHR_g约1.1Ω。5.2 控制系统建模细节控制部分完全用标准Simulink模块搭建。PLL可以用SRF PLL也可以自己搭一个Park变换PI调节器积分器结构。PLL的参数设置为Kp_pll180、Ki_pll1800时带宽约30Hz对应前面扫描的结果。电流内环PI参数按典型设计公式Kp_ci L1 * α_ci Ki_ci R1 * α_ci其中α_ci是电流环角频率带宽取2π*300R1取0.1Ω时Kp≈2.83Ki≈188。为了模拟数字控制延时在调制波输出端加一个1.5T_s的延时模块T_s100μs。有些文章用Transport Delay模块加零阶保持器来精确模拟我在实际仿真中直接加1.5T_s纯延时也能得到较好的近似。功率外环用PI控制器带宽取10Hz左右输出作为电流内环d轴参考值q轴电流参考由无功功率指令给定。外环带宽尽量低因为弱电网稳定性研究中外环带宽过高会扩宽负阻尼频带但这也是实际工况的反映不能为了“好结果”故意把外环带宽设成极低值。5.3 阻抗扫频的两种实现方式阻抗扫频有两种主流方法我在项目里都试过各有利弊。第一种是扰动注入法。在PCC点并联一个小电流源注入频率为f_p的正弦小信号测量PCC电压和变流器输出电流在MATLAB里做FFT提取f_p分量的幅值和相位计算Z_vsc V_pcc(f_p) / I_s(f_p)。扰动幅值取稳态电流幅值的1%到5%我常用0.2A的扰动电流注入到10A的稳态电流里。频率范围从1Hz到2000Hz按对数间隔扫80到100个点。这部分写脚本时我用MATLAB的for循环驱动sim函数每个频率点运行一次模型duration设为0.3s前0.1s丢弃不计后0.2s用于FFT分析。采样数据的To Workspace模块采样时间要足够小我设的是1e-5s保证FFT能分辨到几千赫兹。第二种方法是Simulink Control Design的Model Linearizer。定义PCC电压作为输入扰动点变流器输出电流作为输出点可以直接得到线性化传递函数的Bode图。优点是快缺点是稿不清PLL内部非线性状态下的工作点而且对开关模型不友好。我的做法是用Model Linearizer先获取初步阻抗形状再针对关键频率点用扰动法做精确验证两者结果一致的时候模型才算是真正可信。5.4 Nyquist验证与时域校验扫频数据拿到后在MATLAB工作空间里计算T(s) Z_g ./ Z_vsc使用nyquist函数画极坐标图。注意频率向量要覆盖你分析的目标频段至少从1Hz到2倍工频以上。通常情况下Nyquist曲线重点关注低频段几Hz到几十Hz和中高频段数百Hz到2kHz的两段轨迹。时域校验是闭环验证的最后一步。在同一个工况下不给注入扰动运行仿真0.5s后观察PCC电压或并网电流波形。如果Nyquist判据判定不稳定时域波形在1秒内就会显现明显的增幅振荡振荡频率用FFT分析后和Nyquist曲线穿越-1点的频率基本一致。如果Nyquist判据判定稳定时域波形会在初始扰动后衰减衰减速度和相位裕度大小呈正相关。我在SCR1.8、PLL带宽50Hz的工况下实测结果是Nyquist曲线包围-1点时域电流波形在0.3秒后出现明显的19Hz包络振荡FFT峰值恰好落在19Hz。和理论判断对得上整个验证链条就算闭环了。6. 常见问题与排查技巧实录6.1 扫频结果与解析模型偏差大这个坑出现的频率最高。排查顺序先是检查FFT是否做了正确的频谱归一化然后是仿真时长是否覆盖了足够的扰动周期最后是扰动频率和开关频率是否产生了拍频污染。低频扰动很容易被PLL和功率外环的稳态动态干扰高频扰动则容易被开关纹波淹没。解决办法是低频段降低扰动幅值但不低于信噪比下限高频段适当增加仿真时长并加大FFT窗口。还有一个细节是扫频时模型必须稳定。如果原系统本身就已经振荡了扫出来的“阻抗”根本不是小信号意义下的阻抗曲线会乱得一塌糊涂。这种情况先降低PLL带宽或者增大阻尼让系统在稳态下运行再开始扫频。6.2 Nyquist曲线出现“镜像对称”的困惑Nyquist曲线在正频率和负频率下的轨迹不同MATLAB默认只画ω从0到正无穷的轨迹。但在某些画法下T(s)的Nyquist轨迹可能看起来像是绕了半圈“反向路径”初学者容易误判。关键是要先确认Z_vsc(s)和Z_g(s)是物理可实现的稳定传递函数。如果模型里存在未建模的延时环节符号错误Nyquist曲线会出现非物理的螺旋围绕此时不要先急着画判据回头检查延时方向。曾经一次仿真中我把延时模块写成了负延时Nyquist曲线绕着-1点转了三圈折腾了半天才发现是这样一个低级错误。6.3 时域振荡频率与Nyquist预测不一致如果Nyquist判定不稳定预测频率是19Hz但时域FFT看到的是35Hz有几种可能原因。第一存在两个负阻尼频段时域振荡会优先选择阻尼更负或净负阻值更强的那个频段。这时绘制多个频率下系统总阻抗实部找到最负的频率点。第二时域振荡已经进入大信号非线性区域频率发生偏移。这时把仿真初始扰动减小在线性化工作点附近观察初始300ms内的振荡频率就基本对得上了。第三扫频时的稳态工作点和时域仿真工作点不同。功率指令或者直流电压基准稍有偏移阻抗曲线就差不少。要确保两者在完全一致的工况下。6.4 平均模型和开关模型的结果不一致平均模型用延时模块模拟PWM开关模型用真实调制。两者在低于开关频率一半的频段理论上应一致实际不一致的原因通常是平均模型里延时模块的等效精度不够。1.5T_s延时只是一个近似更精确的做法是用一个二阶Padé近似模拟PWM和计算延时。我用Padé近似替换纯延时后两个模型在2000Hz以内的阻抗曲线差异降到了2%以内。另外平均模型没有开关纹波含PLL的反馈回路在某些频段的相位特征和开关模型存在细微差别。这种情况建议以开关模型扫频结果为准尤其是超同步高频段的验证必须用开关模型复测关键工况。6.5 正负序控制的处理如果你的控制器本身就包含正负序分离控制阻抗建模的复杂性会上升。正负序控制器在两个序坐标系下分别调节对应阻抗模型也是正序阻抗和负序阻抗分开写。此时dq阻抗矩阵的耦合项会更强SISO近似更危险建议直接上广义Nyquist判据。仿真里正负序控制的实现通常是用延时1/4周期的信号分离器这个模块会带来额外的相位滞后建模时不能忽略。做这类项目时我习惯在Simulink模型里把“线性化点扰动注入模块PCC测量点”封装成一个子系统扫频脚本只需要调用一个函数就能输出完整阻抗数据。后续如果要扩展到实时仿真平台这套模型和脚本也可以直接迁移Simulink生成的C代码部署到实时仿真器后阻抗扫频的流程完全一致。最后再分享一个小技巧做参数扫描时别一次性把SCR从5扫到1逐档调低每档都记录Nyquist曲线和时域波形你能清晰看到系统阻尼如何一步步“被吃掉”这种直观感受对理解弱电网稳定性问题非常有帮助。项目报告里放一组这样的连续变化图比堆一堆特征值表格有说服力得多。