跟网型逆变器的小干扰稳定性,这几年确实是个绕不开的话题。我自己在仿真和项目里反复和它打交道,最直观的感受是:很多系统在额定工况下怎么测怎么稳,一旦电网变弱、阻抗变大,或者控制器参数按经验值随手一填,就开始出现莫名其妙的振荡。更头疼的是,这种振荡往往不是保护动作能立刻捕捉的,而是小信号层面的问题——波形看着像噪声,FFT一看又有明显的频率分量,处理起来需要一整套分析方法和控制手段配合。这篇文章我想把我在Simulink里复现“跟网型逆变器小干扰稳定性分析与控制策略优化”这套研究路线的完整过程整理出来,包括建模思路、稳定性分析怎么做、控制策略从哪些方向优化,以及过程中踩过的坑,给正在做类似课题或者刚入门的同学一个能直接上手的参考。
1. 先从“跟网”两个字说起
1.1 跟网型逆变器的控制本质
跟网型逆变器,英文里常叫grid-following inverter,它的核心特征是:输出电压和相位必须依赖电网电压和相位来确定。控制上最典型的结构就是锁相环(PLL)加电流内环,外加功率外环。PLL负责实时跟踪电网电压矢量角度,电流环把并网电流控制成期望的正弦波,功率环再决定该发多少有功、多少无功。
这个三层结构有一个基本假设:电网足够强,电压频率稳定,PLL能准确锁定相位,逆变器只要乖乖输出电流就行了。所以在强电网下,跟网型逆变器确实简单、高效,这也是它长期占据光伏、储能电站主流的原因之一。
1.2 所以小干扰稳定性到底是什么
小干扰稳定性,说的准确一点,是系统在某个稳态运行点附近受到一个足够小的扰动后,能否自行恢复到原稳态的能力。小有两个含义:一是扰动幅值足够小,可以忽略非线性,用线性化模型来分析;二是这个分析方法本身只关心“局部”行为,不关心大幅振荡或者故障后的暂态。
用线性化的眼光看,整个逆变器并网系统可以写成一个状态空间模型:
dx/dt = A x + B u
y = C x + D u
系统的所有特征值就是矩阵A的特征值。只要所有特征值都落在复平面左半平面,系统就是小干扰稳定的;只要有一对共轭特征值越过了虚轴,就对应某一种频率的振荡模式。这个判断标准,就是整个课题的方法论基础。
1.3 这个课题的现实触发点
为什么要专门研究跟网型逆变器的小干扰稳定性?因为实际工程里至少有三个场景会把它推上风口:
- 弱电网场景:远端风电、光伏汇集站,短路容量低,电网等效阻抗大,PLL和电流环的动态开始互相影响,系统容易出现几赫兹到几十赫兹的次同步振荡。
- 多逆变器并联:一个集电线路挂几十台逆变器,彼此之间通过电网阻抗耦合,原来单机调好的参数,并机后可能振荡。
- 控制带宽打架:PLL带宽、电流环带宽、功率环带宽如果参数设置不合理,三个环路动态发生交互,也会激发出新的振荡模式。
这些情况用传统静态稳定分析是看不见的,只有用小干扰稳定框架才能解释。
2. 分析框架:从状态空间到阻抗法
2.1 三条主流技术路线
做小干扰稳定性分析,路径大致有三条,我分别说一下。
状态空间法是最正统的方法。把逆变器主电路、滤波器、锁相环、电流环、功率环、电网阻抗全部写成微分方程,然后在稳态工作点线性化,得到完整的A矩阵。优点是可以精确计算每个振荡模式的参与因子、灵敏度,知道哪个状态变量在“拖后腿”。缺点是模型搭建工程量较大,参数多,后期调试很花时间。
阻抗分析法是从外特性切入的。不关心逆变器内部每个状态变量的名字,只看它的端口阻抗特性。先建立逆变器的小信号阻抗模型Z(s),再结合电网阻抗Zg(s),根据Nyquist判据或者阻抗比来分析稳定性。优点是物理意义清晰,控制器参数对阻抗曲线的影响直观,也方便用扫频方式做实验验证。
时域仿真分析法其实是验证手段。直接在Simulink里跑详细的电磁暂态模型,然后注入一个小扰动,观察响应波形,通过Prony分析或者FFT提取振荡频率和阻尼比。这个方法不替代前两种,但它是最终验证控制策略优化效果的标准。
2.2 我推荐从状态空间和阻抗两头夹击
我自己做这个课题时,倾向于两者配合:用状态空间法定位问题,用阻抗法解释问题,用时域仿真验证方案。
为什么是这种组合?因为单用状态空间法,虽然能算出特征值和参与因子,但工程上很难直接把“特征值右移”翻译成控制器参数的直觉改动。而阻抗法虽然看着直观,可一旦控制器多了,推导阻抗表达式也很容易出错。两头夹击的好处是:状态空间模型给出特征值的精确移动轨迹,阻抗模型给出系统交互的频率特征和裕度变化,两边相互印证,就不容易被单一模型的错误带偏。
2.3 关键环节的建模注意点
建模的时候有几个环节特别容易出问题,我逐个说一下。
滤波器环节:如果是L型滤波器,状态方程很简单,两个积分环节搞定;如果是LCL型,那就要注意电容电流、电容电压的状态变量是否完整,以及阻尼方式对模型的影响。很多初做仿真的同学会把LCL简化成L,结果稳定性结论完全变了。建议是按实际拓扑完整建模,哪怕后续降阶,也要先确认降阶误差在允许范围内。
锁相环环节:PLL的非线性是稳定分析的难点之一。严格做,要在同步旋转坐标系里线性化,得到PLL输出角度的小信号增量。简化做法是先用理想电网频率作为角度基准,再单独建模PLL的动态。无论哪种方式,都必须把PLL的带宽参数纳入灵敏度分析,因为实际系统丢失稳定,很大概率就出在PLL带宽和电网阻抗的交互上。
控制器的离散化:Simulink里如果用了离散控制器,分析模型和分析工具最好也是离散化的。连续域分析出来的阻尼比、特征值,在离散化后会有偏移,尤其在控制周期相对较快、开关频率不高的逆变器上,这种偏移不可忽略。我在实际操作中一般先在连续域做理论分析,再在仿真中把离散采样频率、计算延时、PWM更新延时都建进去,最后用离散模型重新校验一遍结论。
3. Simulink仿真模型搭建实录
3.1 顶层架构和模块划分
Simulink里复现这个课题,我搭模型时遵循一个原则:把主电路、控制算法、稳定性观测工具分开,互不干扰。具体模块划分大概是这样:
| 模块 | 内容 | 备注 |
|---|---|---|
| 主电路 | 直流源、三相逆变桥、LCL滤波器、电网阻抗、理想电压源 | 电网阻抗用串联RL模拟,短路比通过调L和R控制 |
| PLL模块 | 三相电压采样、Park变换、PI控制、角度输出 | 带宽可调,输出给控制坐标变换 |
| 电流环模块 | 电流采样、Clark/Park变换、PI控制、前馈解耦、PWM调制 | 需要离散化,采样频率注意和PWM同步 |
| 功率环模块 | 有功/无功计算、功率PI、电流指令生成 | 根据课题需要决定是否开启 |
| 分析模块 | 小信号扰动发生器、FFT、阻抗扫频入口、特征值观测 | 可以单独放在一个子系统里 |
| 观测模块 | 电压电流波形、有功无功、PLL角度、振荡标记 | 用于时域验证和问题定位 |
搭完主电路再搭控制,最后再考虑分析模块。不要一开始就把所有东西堆在一起,那样子模块之间耦合太深,排查问题会非常痛苦。
3.2 控制系统参数的第一次整定
拿到一个新工况点,我先做一次粗整定,目的不是最终优化,而是确认系统能正常工作、特征值都在稳定区域。这个粗整定我一般按如下思路做:
- 电流环:按照典型I型系统整定,内环阻尼比取0.707附近。先忽略电网阻抗影响,把电流环穿越频率定在开关频率的1/10到1/20之间。比如开关频率10kHz,电流环带宽大概取1kHz左右。补偿器设计完,看开环Bode图的相位裕度,我习惯做到45度以上才往下走。
- PLL:带宽先取一个保守值,比如10Hz~30Hz数量级,远低于电流环带宽,这样PLL和电流环的动态耦合在初期比较弱。先把基线搭建完,后期再研究带宽提升、陷波器、前置补偿这些策略。
- 功率环:如果做PQ控制,功率环带宽要明显低于电流环,一般取电流环带宽的1/10以下,避免两个环路互相激励。
粗参数的取值公式,电流环PI可以用工程设计法来算。举个例子,LCL等效电感折算到逆变器侧是2mH,电流环开环期望穿越频率f_c=1kHz,那么比例增益Kp大致是:
Kp ≈ 2π × f_c × L = 2π × 1000 × 0.002 ≈ 12.56
积分时间常数Ti取L/R大约几十毫秒。这个值作为初值足够进入下一步分析了,后面再细化。
3.3 小干扰扫描:时域扰动注入和阻抗提取
小干扰稳定性分析在Simulink里的具体做法,我通常分两步推进。
第一步,特征值辅助计算。先在Simulink里把模型参数导出来,在脚本里构建线性化状态空间模型,直接计算A矩阵的特征值。得到特征值后,把其中实部为负但接近零的那几对挑出来,作为重点关注对象,它们的频率和参与因子决定后续扰动注入的方向。
第二步,时域扰动验证。在稳态运行点,对有功功率参考值施加一个阶跃或脉冲扰动,扰动量建议取额定功率的1%~5%,维持几十毫秒。然后观察有功功率、d轴电流、PLL输出角度的响应波形。如果响应衰减到稳态,说明系统在此工况下稳定;如果出现等幅或增幅振荡,就需要做FFT看振荡频率,再去特征值分析里找对应模态。
阻抗提取我一般用扫频法。在PCC点注入小信号电压扰动,频率从1Hz扫到2kHz,每次仿真记录电流响应,然后通过快速傅里叶变换计算同频率分量的幅值和相位,最后拟合出逆变器端口阻抗的频率特性。这个操作需要跑大量的仿真点,但精度可控,而且能直观看到负电阻区、谐振峰位置。
3.4 仿真参数和数值细节
有一类问题特别隐蔽:明明模型应该是“理论稳定”的,仿真却一直在振荡。这不是控制器的问题,而是数值问题。
- 步长选择:如果模型是离散控制的,我建议用固定步长,步长和PWM周期对齐。比如PWM开关频率10kHz,一个载波周期100μs,仿真步长取10μs,即每个PWM周期采样10次,既有精度又不会太慢。如果用了变步长求解器,某些非线性环节很容易在数值上引入虚假振荡。
- PWM更新延时:数字控制存在一拍延时,即计算电流环输出到下一次PWM更新之间有一个周期延时。这个延时在稳定性分析中必须体现,一般用z^-1环节等效。把它漏掉,你算出来的相位裕度会偏乐观。
- 求解器类型:连续域模型可以用ode23tb这类刚性求解器,能处理开关动态。但如果控制是离散的,我更推荐用离散求解器,模拟真实数字控制的行为。
- 饱和与限幅:控制器输出的限幅、PWM调制比限幅这些非线性因素在稳定分析中常被忽略,但很多“仿真发散”其实是限幅触发了非线性振荡。建议在做小干扰分析时,确保工作点离限幅有一定裕度,分析结果才有意义。
4. 控制策略优化:问题导向的调试
4.1 弱电网下先确认瓶颈在哪
在开始优化控制器之前,我会先做一次“瓶颈识别”。方法很简单:在选定电网阻抗(比如短路比SCR=2)下,扫描关键参数,观察哪些参数变化时特征值轨迹越过虚轴。
我遇到过很多次这样的情况:一上来就怀疑PLL带宽有问题,结果一扫描发现,其实是电流环的比例增益在弱电网下偏大,和电网电感交互导致高频振荡。如果一开始方向错了,优化PLL不仅没有帮助,反而会把电流环裕度进一步压掉。
所以我的建议是做一个参数敏感性矩阵:
| 参数 | 变化范围 | 主要影响模态 | 稳定性趋势 |
|---|---|---|---|
| PLL带宽 | 10Hz→50Hz | 低频同步模态、次同步频率 | 带宽增大容易不稳定 |
| 电流环Kp | 0.5倍→2倍基准值 | 电流环和滤波器谐振峰 | 增益增大容易高频失稳 |
| 电流环Ki | 0.5倍→2倍基准值 | 中频段相位裕度 | 影响不及Kp明显 |
| 电网电感Lg | 对应SCR从∞到2 | 所有模态整体右移 | 电网越弱越不利 |
| 无功功率工作点 | 从0到额定 | 电压幅值和PLL耦合 | 大无功点容易出现负电阻区 |
这个矩阵填完,基本就知道主要矛盾在哪个环节。这个步骤省时间,也避免后面瞎调参数。
4.2 PLL带宽和阻尼的调校
弱电网下PLL的问题本质是:电网阻抗增大后,PLL看到的电压相位不仅仅是电网相位,还混入了输出电流在电网阻抗上产生的压降。于是PLL的输入端出现了一个跟电流相关的反馈回路,电流环的动态又反过来影响这个反馈,形成闭环耦合。
经典的优化思路有这么几步:
第一步,先压低PLL带宽做稳基线。在SCR较低时,PLL带宽低于电流环带宽的1/5到1/10,系统往往能稳定。代价是动态响应慢,但课题里我们先求稳,再求快。
第二步,给PLL输出加陷波器或低通滤波。在PLL的角速度输出或者坐标变换角度之前,加入针对谐振频率的陷波器,可以削弱PLL和电网阻抗谐振之间的交互。这个策略在工程上比单纯压低带宽效果更好,因为不牺牲太多动态响应。
第三步,考虑前置相位补偿。在PLL前端对电压采样信号做一个带通或者相位超前校正,补偿电网阻抗带来的相位滞后。这个做法理论上有效,但参数设计复杂度高,在Simulink里先做敏感性分析,确认相位补偿角度再实现。
4.3 虚拟阻抗与附加阻尼的实现
控制策略优化的另一个重要方向是虚拟阻抗。
虚拟阻抗的思路是在控制层面,并不直接改变物理电路,而是通过修改电流指令或者电压指令,让逆变器的端口特性对外呈现出一个“额外串入的阻抗”效果。比如在弱电网下,给电流指令增加一个和输出电流成比例的修正量,等效于在逆变器端口串了一个正电阻,可以压低负电阻区域的危险程度。
具体在Simulink里的实现有两种路径:
路径一,电流指令修正法:
i_d_ref_new = i_d_ref - Rv × i_d
i_q_ref_new = i_q_ref - Rv × i_q
即把虚拟阻抗产生的压降折算成电流修正,加到指令上。这里的Rv就是虚拟电阻值,可以按期望阻尼效果整定,通常取电网阻抗实部的好几倍。
路径二,电压指令修正法,多用于构网型或者带电压环的结构里,把虚拟阻抗的压降直接减到电压指令上。跟网型逆变器一般走路径一更直接。
附加阻尼控制的思路类似,针对检测到的振荡分量,设计一个带通滤波器提取该频率的波动,再反馈到有功或无功指令上,提供额外的阻尼转矩。等于给系统加了一个“主动阻尼器”。
我在实际调参中,虚拟电阻从0开始逐步加大,观察特征值轨迹和时域振荡衰减速度,一般能找到一个比较明显的拐点,继续加大会牺牲稳态精度,所以只用刚好消除振荡的值就够了。
4.4 优化前后的对比与验证
参数优化不是“调完就完了”,一定要做前后对比,验证改动的效果。我的对比模板一般是这样:
| 指标 | 优化前 | 优化后 | 说明 |
|---|---|---|---|
| 主导特征值实部 | 5.2(不稳定) | -12.8(稳定) | 根轨迹右半平面回到左侧 |
| 振荡频率 | 18.6Hz | 18.2Hz | 模态频率变化不大,说明仍受同一结构主导 |
| 时域振荡衰减 | 持续振荡 | 2~3个周期衰减到2%以内 | 时域验证与特征值分析一致 |
| 电流环相位裕度 | 12° | 46° | 提高阻抗稳定性 |
| THD(满载) | 5.6% | 1.8% | 谐波特性也伴随改善 |
这里要注意:优化后系统“稳了”,不代表所有工况都稳。一定要扫一遍工作点,比如功率点从10%到100%、SCR从2到10,确保整个范围内都是稳定的。只验证一个点,不能说明控制策略优化成功。
5. 我踩过的坑和排查清单
5.1 实测中最容易误导判断的几个现象
仿真做得多的同学,大概率都遇到过下面几种情况,我把我的排查经验整理出来。
第一个坑:波形看起来振荡,但FFT没有明显峰值。这种情况下我会先怀疑是数值振荡,不是系统本身的稳定性问题。看看是不是步长太大、求解器不适合开关动态,或者PWM调制里出现了断续。先修数值再来谈稳定性,否则分析方向会偏。
第二个坑:频谱上出现两个接近的峰值,一时间分不清主导模态。这个需要回到参与因子分析。哪个状态变量的参与因子更大,该频率就对应哪个物理环节。很多情况下低频那个峰值来自PLL和功率环交互,高频那个来自电流环和滤波器谐振,两者都需要处理,但顺序有讲究——先处理低频失稳,再处理高频失稳。
第三个坑:阻抗法分析和特征值分析结论矛盾。我在项目里真实遇到过,阻抗分析显示系统有明显的负电阻区间,但特征值分析却说所有特征值都在左半平面。后来检查发现,阻抗分析里用的稳态工作点和特征值分析不一致,一个取了额定功率点,一个取的是零功率点。工作点对稳定结论影响很大,必须统一。
第四个坑:离散化延时被忽略,优化参数失效。这是最常见的翻车原因之一。连续域设计的相位裕度45度,考虑一拍延时后可能只剩25度,再加电网阻抗的影响,很可能直接失稳。我后来养成了习惯:所有控制器可以先按连续域设计,但最后一定要把“一拍延时+零阶保持器”放进分析里再校验一次。
5.2 参数敏感性速查表
很多新手问,参数调完怎么看有没有余量。我这里给一个简单的经验速查表,适合跟网型逆变器在弱电网下的初步判断:
| 检查项 | 健康范围 | 出现问题的信号 |
|---|---|---|
| PLL带宽 / 电流环带宽 | ≤ 1/5 | 带宽比值太高,低频次同步振荡 |
| 电流环穿越频率 / 开关频率 | ≤ 1/10 | 穿越频率高,采样/延时影响大 |
| 相位裕度 | ≥ 45° | 低于25°时极容易因为参数偏差失稳 |
| SCR下考虑特征值实部 | 稳定裕度≥5 | 实部接近0,参数稍动就失稳 |
| 虚拟阻抗值 | 不造成明显压降偏移 | 压降超过额定5%,影响电能质量 |
这个表不是严格公式,是实践经验,但它能帮你快速判断模型参数是否处在“危险区”,然后再决定要不要做精细优化。
5.3 给打算复现这个课题的同学几条建议
第一,建模要分层,调试要分段。不要试图一次把主电路、PLL、电流环、功率环、稳定性分析一起搭完。先把电流环单独闭环,用理想电网验证电流跟踪性能;再加PLL,验证坐标变换和相位跟踪;最后再加功率环和电网阻抗。每一层稳定了再进下一层,出问题好定位。
第二,稳定性分析和仿真验证要交替进行。我先做特征值分析,看到某个模态实部右移,再去时域仿真里注入这个小干扰,观察对应频率的振荡是否出现。两者对不上,说明模型里某个环节错了,必须排查,而不是直接跳过。这个问题越早发现,改动成本越低。
第三,做参数扫描时要设计好批量流程。Simulink单点仿真可以手动改参数,但要扫描几十上百组参数,必须通过脚本批量运行、批量保存结果。我建议从一开始就把参数定义成脚本里的变量,模型里不写死数值。这样后期做参数敏感性分析、特征值轨迹扫描会快很多。
第四,优化策略尽量做成可开关的。比如虚拟阻抗支路、PLL陷波器、附加阻尼环节,都用常数开关控制,仿真时可以随意启用/禁用。这样对比优化前后效果特别方便,不需要频繁改动模型结构。
最后说一点我个人的体会
跟网型逆变器的小干扰稳定性分析,说难不难,说简单也绝对不简单。核心是要建立一个“从特征值到物理直觉”的映射:当你看到一个振荡频率,能快速猜到是PLL、电流环还是滤波器的问题;当你看到一个控制参数,能大概判断它对哪个模态影响最大。这种直觉不是看几篇论文就能形成的,必须自己反复做仿真、反复做参数扫描、反复分析阻抗曲线才能建立起来。
我自己的经验,做这个课题最忌讳的就是急着上复杂算法。先把基础模型的建模精度、离散化处理、工作点差异这些基本功打扎实,再用状态空间和阻抗法交叉验证,最后加控制策略优化。这套顺序走下来,得到的结果不仅论文上好看,放到实际工程里也能真正指导参数设计。
如果你正准备复现类似的研究,建议从一台简单的跟网型逆变器模型起步,把电网阻抗的影响一点点加进去,观察系统从稳定走向失稳的过程。这个过程本身,就是最好的学习方式。