VSG序阻抗扫频实战:双闭环控制下并网逆变器稳定性分析
2026/9/10 3:34:02 网站建设 项目流程

这几年做新能源并网和微电网项目,VSG(虚拟同步发电机)相关的稳定性问题一直是绕不开的硬骨头。很多同学一开始接触VSG,觉得无非就是在外环加了个转子运动方程,内环还是熟悉的电压电流双闭环,仿真波形也好看,但等真正把逆变器接到带阻抗的电网里,或者做项目验收需要提交稳定性分析报告时,才发现事情没那么简单:明明单机仿真一切正常,并网之后却在某个频率附近开始振荡;或者幅值裕度、相位裕度算了一堆,现场出问题的频段完全对不上。这时候你就会理解,为什么序阻抗扫频和时域下的稳定性分析会成为工程标配。

这篇文章我就从自己实际做过的VSG序阻抗扫频项目出发,把电压电流双闭环控制下,如何通过序阻抗扫频获得逆变器端口正序、负序阻抗特性,如何在时域仿真中完成阻抗扫描与稳定性判定,以及整个建模仿真的落地步骤、参数取值和踩坑经验一次性讲透。内容主要面向做变流器控制、微电网稳定性分析、新能源并网接入的工程师和研究生,默认你具备基本的三相逆变器知识,但我会把从原理到仿真的每个关键环节都讲细一点,方便照着复现。

1. 项目背景与整体思路拆解

1.1 为什么VSG要专门做序阻抗分析

VSG和传统PQ控制、下垂控制最大的区别,在于它用一套转子运动方程模拟了同步发电机的惯性和阻尼特性。这带来了好处,比如系统频率变化时VSG能提供惯性支撑,微网离网切换时电压频率过渡更平滑。但代价是控制结构变复杂了,功率外环、电压中环、电流内环再加上虚拟阻抗和PWM调制,多个环路叠加在一起,从交流侧看进去的输出阻抗形态和传统的双闭环逆变器差异很大。

在并网场景下,逆变器和电网之间本质上是一个阻抗网络的关系。逆变器可以等效成一个理想电压源或者电流源串联一个输出阻抗,电网则等效成理想电压源串联一个电网阻抗。如果这两者的阻抗在某些频段发生不利交互,比如幅值交点处相位裕度不足,系统就会在该频段出现谐振甚至失稳。VSG因为引入了惯性和阻尼以及功率外环,它的输出阻抗在整个频带内都可能呈现出与传统控制截然不同的谐振峰和负阻尼特性,这就让阻抗分析变得尤为重要。

但为什么一定要分正序、负序来做,不能只看三相阻抗?因为实际电网故障、负载不平衡、以及逆变器控制环路的不对称,会让系统存在负序通道。VSG并网时如果电网电压不平衡,负序分量会通过控制环路耦合到正序通路里,导致某些频段出现奇怪的振荡。而且三相系统在旋转坐标系下的dq阻抗是耦合的,直接测量三相阻抗再去判断稳定性会非常麻烦。把三相量拆成正序和负序,分别测出正序阻抗Z1(s)和负序阻抗Z2(s),就能把这种耦合问题解耦,在每个序网里单独做稳定性判断。这也是经典的对称分量法在现代电力电子系统里的延伸。

从工程角度来说,项目验收或者故障复现时,你手里有一份覆盖5Hz到1000Hz的正负序阻抗扫频曲线,相当于拿到了这个逆变器在频域上的“身份证”。电网阻抗变了、滤波器参数改了、控制参数换了,阻抗曲线都会如实发生变化,问题出在哪一目了然。

1.2 电压电流双闭环在序阻抗扫频中的角色

电压电流双闭环是VSG内层控制的骨架。VSG的功率外环生成电压幅值和相位指令,电压外环负责把电容电压控制在指令值附近,电压环的输出作为电流内环的指令,电流环再控制电感电流跟踪。双闭环的带宽设计直接决定了逆变器在某个频段内对外呈现的阻抗特性。

这里有一个很多初学者最容易忽略的点:电流内环带宽越高,电感电流跟踪越快,但逆变器在高频段呈现的负阻抗特性会越明显,和电网感抗交互时越容易出现高频谐振;电压外环带宽则决定了中频段电压支撑的强度,带宽不合适会在基波倍数频率附近出现阻抗幅值凹陷。

所以序阻抗扫频时,测出来的阻抗曲线其实反映了整个级联控制环路(功率环+电压环+电流环+PWM+滤波器)的综合频响。扫频结果不是用来“看个热闹”的,而是用来反推控制参数是否合理的。像我在做10kW VSG样机时,设计电压环穿越频率在150Hz附近,电流环穿越频率在1.2kHz左右,测出来的正序阻抗在中频段就有一个由电压环引入的负阻特性区域,扫频曲线就能把这个频段清清楚楚地暴露出来。没有扫频数据,你可能要到系统真正振荡了才知道问题。

1.3 时域扫频与建模仿真的完整工作流

所谓“时域下阻抗扫频”,指的是在时域仿真环境里,用瞬态波形数据来提取频域的阻抗特性。核心思路是:在并网逆变器的端口叠加一个已知频率的电压小信号扰动,等待系统进入周期稳态后,提取端口处的电压和电流波形,通过FFT分解出该扰动频率下的电压电流分量,两者相量相除就得到该频率下的阻抗。

整个建模仿真的工作流大致分四步:第一步搭建VSG双闭环控制的时域电磁暂态模型,包括主电路、控制算法和PWM,这一步是基础,模型精度不够后面扫频结果全是错的;第二步在端口注入正序和负序的电压扰动源,并配置好扫频范围和步长;第三步批量跑不同频率点的仿真工况,提取每个频率点下的稳态波形,用FFT和后处理脚本算出阻抗幅值和相位;第四步把扫频得到的阻抗曲线与电网阻抗做阻抗比分析,用奈奎斯特判据或伯德图判据判定系统在各频段的稳定性。

这套流程看起来不复杂,但每一步都有很多细节。比如扰动源加在哪里、幅值取多少、FFT的窗口怎么选、仿真步长怎么设,这些都会直接影响扫频结果的精度。我下面分章节把每个环节的实操细节和参数设计过程展开讲。

2. 序阻抗扫频的原理与关键参数设计

2.1 序阻抗是怎么“测”出来的

要从原理上理解序阻抗扫频,先回忆一下最基础的概念:在一个三相对称系统中,任意一组三相电压或电流都可以分解为正序、负序、零序三组对称分量。对于三线制系统,零序电流没有通路,一般只需要关注正序和负序。正序分量的三相按A-B-C相序排列,负序分量按A-C-B相序排列。

测量正序阻抗时,在并网点叠加一组按正序排列的电压扰动源,例如A相扰动初相位为0°,B相为-120°,C相为120°,角频率为ωp。与此同时,控制器内部对扰动频率ωp是“看不见”的,它仍然按照基波频率50Hz进行电压电流双闭环控制,所以扰动会通过控制环路的调节行为在端口产生相应的阻抗特性。测量得到的端口电流中包含基波分量、扰动分量和其他次谐波分量。用FFT提取角频率ωp下的电压和电流相量,计算得到的就是正序阻抗。

负序阻抗的测量原理完全一样,只是叠加的电压扰动源按负序排列,即A相0°,B相+120°,C相-120°。需要注意的是,如果控制环路本身在dq坐标系下是完全对称的,那么正负序阻抗曲线会完全重合;一旦出现不对称环节,比如控制延时不完全一致、滤波器三相参数有差异,或者电网存在不平衡电压,正负序阻抗就会有明显差异。

2.2 正序/负序扰动注入的实现方式

在仿真中实现扰动注入有两种常见思路。第一种是直接在电网电压源上叠加小信号谐波源。在MATLAB/Simulink中,可以在理想电压源的内部串联电压源时用受控电压源,把基波和扰动叠加;在PSCAD中则可以直接在电压源模块里叠加一个频率可变的谐波分量。第二种思路是在并网点与电网之间串联一个小电压源,专门用于注入扰动信号。两者相比,我习惯用第二种,因为这样可以保证扰动信号的相位可控、幅值精确,而且不会污染电网源模型本身的特性。

如果用Simulink做,我是这样搭的:电网模型用三相可编程电压源(Three-Phase Programmable Voltage Source),把基波电压设为380V/50Hz,然后在三相电压源的“Harmonics”选项卡里把需要注入的扰动频率、幅值和相位填进去。扫频时,每次仿真只注入一个频率点的扰动,跑完一个点修改频率参数再跑下一个点。这样做虽然要跑几十次仿真,但胜在结果干净可靠,每个频率点的扰动工况完全可控。

在PSCAD里面做就更加直观一点,直接用一个小的受控电压源串联在并网点与电网之间,通过数据记录模块控制扰动电压的幅值和频率。PSCAD的优点是电磁暂态计算精度高、数值稳定性好,和FFT模块配合起来很顺手;缺点是批量扫频需要写脚本,PSCAD的Python接口没有Simulink的MATLAB脚本那么方便。所以我个人的建议是:如果是验证控制算法、参数整定阶段,用Simulink加MATLAB脚本跑自动化扫频;如果是做项目报告,需要贴合工程电磁暂态波形,用PSCAD补一轮更严谨的数据。

关于扰动注入位置,有一个细节值得注意。如果扰动源加在逆变器端口和电网之间,那么测量得到的阻抗实际上是逆变器输出阻抗和并网线路阻抗的串联,你需要通过空载标定扣除线路阻抗的影响;如果扰动源直接加在逆变器出线端,相当于测量逆变器的端口输出阻抗,那就可以直接和电网阻抗做比较。我建议直接测量逆变器出线端,这样后处理时不需要额外的线路阻抗补偿,稳定性判据也更直接。

2.3 扫频范围、步长与扰动幅值怎么定

扫频范围的选择依据是控制环路的带宽和可能发生的振荡频率范围。对于工频50Hz的VSG系统,振荡问题通常出现在两个区间:次同步振荡区间(5Hz到50Hz)和由LC滤波器引起的谐振区间(几百赫兹到1kHz以上)。因此我一般把扫频范围设为1Hz到2000Hz,低频段覆盖次同步振荡,高频段覆盖滤波谐振。如果项目关注的是高频电磁暂态问题,可以扩展到5kHz,但超过3kHz后,数字控制延时对阻抗的影响基本已经衰减到可以忽略的程度,工程意义有限。

扫频步长的选取更有讲究。线性等间隔扫频效率低,而且低频段点数不够,高频段点数过多浪费计算资源。我通常采用对数分布扫频,在1Hz到20Hz之间取5到8个点,20Hz到200Hz之间每10Hz取一个点,200Hz到2000Hz之间每50Hz取一个点,总共约50到60个频率点。这个密度画出来的伯德图曲线已经足够光滑,能捕捉到带宽附近的谐振峰和相位变化。

扰动幅值需要控制在额定电压的1%到5%之间。幅值太小,FFT提取时信噪比不够,测量结果被基波泄漏和开关纹波污染;幅值太大,系统进入非线性区甚至触发保护,测量结果不再反映小信号阻抗特性。我在10kW样机上取的扰动幅值是额定相电压峰值311V的3%,大约9.3V,实测结果比较理想。如果是100kW甚至MW级的大功率模型,扰动幅值比例可以适当降低到1%到2%,因为大功率系统对电压扰动更敏感,电压波动更容易触发保护逻辑。

2.4 提取响应和计算阻抗的几个工程细节

扫频仿真跑完后,每个频率点会得到一组时域波形,处理流程是固定的:取扰动加入后、系统进入稳态的0.1到0.2秒波形,对三相电压和电流分别做FFT,提取扰动频率下的幅值和相位,然后计算复阻抗。

这里有一个关键细节:FFT提取时,必须保证取数窗口包含整数个扰动周期和整数个基波周期,否则会发生频谱泄漏。比如扰动频率为50Hz时,基波周期是0.02秒,扰动周期也是0.02秒,取0.2秒窗口刚好是10个扰动周期和10个基波周期。但扰动频率为47Hz时,扰动周期约为0.02128秒,0.2秒窗口内扰动周期数是9.4个,不是整数,直接FFT就会泄漏。解决办法是调整采样窗口长度,使窗口内尽量包含完整的扰动周期,或者在FFT之前加汉宁窗。我实际操作中更偏好调整窗长,因为计算量小,结果也比加窗更干净。

另一个细节是三相坐标变换的应用。直接对A相电压电流做FFT得到的是A相序分量阻抗的三倍关系,因为要把三相谐波统一换算到正序或负序空间序分量。更标准的方法是把三相电压电流采样值通过对称分量变换矩阵,得到正序、负序分量的时域波形,再对正序或负序的电压电流波形做FFT。这样得到的阻抗直接就是序阻抗,不需要再做系数换算,也避免了单相数据受其他相耦合影响的问题。

在MATLAB中,可以用式V1 = (Va + a·Vb + a²·Vc)/3 计算出正序电压分量,其中a = e^(j120°)。同理计算电流正序分量,两者做除法得到正序阻抗。对负序则用V2 = (Va + a²·Vb + a·Vc)/3。注意这个变换在时域上是对复数形式的瞬时值做运算,所以你处理的数据需要是复数形式,或者分别对三相波形做FFT后再用相量组合计算,两种方式结果一致。我习惯的做法是先把三相波形存成复数相量形式,再用对称分量矩阵,代码简洁很多。

3. 时域下的阻抗稳定性分析与判据应用

3.1 时域扫频和频域传递函数的关系

很多读者会问:既然可以建立小信号模型直接推导阻抗表达式,为什么还要费这么大劲在时域仿真里扫频?答案很简单:VSG这种多环级联控制系统,加上PWM调制、采样延时、零阶保持器和饱和限幅之后,精确的解析模型极其复杂,推导出来也未必准确。

时域扫频本质上是一个“黑盒辨识”过程:不管系统内部有多少非线性环节,我直接在端口加扰动、测响应,得到的阻抗曲线就是系统真实的小信号频域特性,包含了解析建模时容易遗漏的数字控制延时、PWM死区、饱和限幅等因素的影响。这和高速信号完整性领域用TDR测阻抗、用网络分析仪测S参数是同一个思路,都是通过外部激励测量系统的端口特性,而不是从内部模型推导。

当然,时域扫频也有代价,就是只能得到离散频率点上的阻抗特性,得不到连续的解析表达式。但对于稳定性分析来说,离散频率点的阻抗曲线已经足够了。稳定性判断的本质是看逆变器阻抗和电网阻抗的“大小关系”和“相位关系”,对数分布下50个频率点足以画出精确的趋势,在关键的穿越频率附近加密扫频点即可。

3.2 阻抗比判据与奈奎斯特判据怎么用

时域阻抗扫频获取了逆变器输出阻抗Z_inv(s),电网侧通常简化为阻抗Z_g(s)。并网逆变器系统的稳定性可以用阻抗比判据来分析:系统稳定当且仅当回比矩阵L(s) = Z_g(s) / Z_inv(s)满足奈奎斯特判据。简单地说,在复平面上画出L(s)的轨迹,如果这条轨迹不包围-1点,那么系统闭环稳定;如果包围-1点,则系统不稳定。

这条判据在我做过的项目中是非常好用的。扫频得到Z_inv在某个频率点的幅值和相位,电网阻抗Z_g可以根据电网短路比(SCR)和线路参数计算得出,然后把二者比值L随频率变化的曲线画出来。重点看两个指标:一是L的幅值在哪个频率点穿越0dB,这个频率点就是潜在的谐振频率;二是穿越0dB时L的相位,如果相位接近-180°,说明相位裕度很小,系统在该频段接近不稳定。

工程上更直观的做法是直接画Z_inv和Z_g的伯德图。两条幅频曲线的交点就是谐振点,比较该频率下两条曲线的相位差,相位差大于180°-60°即相位裕度不足则存在风险。如果Z_g是纯感性(电网阻抗通常以感抗为主),感抗的相位是+90°,那么逆变器在谐振点处的相位必须大于-90°以上才能保证足够的相位裕度。VSG双闭环控制下的逆变器输出阻抗在某些频段因为控制环路的负阻特性,相位会跌破-90°甚至接近-180°,这就是振荡风险所在。

3.3 一个实测数据的谐振分析实例

我在做某微电网项目时遇到过一次实际的次同步振荡,正好可以用来说明这套分析方法的完整应用过程。那是一个500kW级别的VSG储能系统,接入的电网短路比较低,大约SCR=5,等效电网阻抗约0.9mH。并网后现场监测到大约125Hz附近有持续功率振荡,幅值不大但因为持续不衰减,无法正常并网运行。

我把系统在Simulink里搭了完整的时域电磁暂态模型,扫频范围设为1Hz到1000Hz,对正序阻抗进行了完整扫频。扫频结果出来后,在125Hz附近看到Z_inv的幅频曲线有一个明显的谐振峰,此时相位约为-117°。同时电网感抗在125Hz下呈现+90°相位,两者相位差达到207°,已经超过了180°,相位裕度为负值,这就说明在该频段系统不满足稳定的相位条件。对比时域仿真中的振荡频率,两者高度吻合,基本锁定问题根源是逆变器输出阻抗在该频段相位过低。

后续排查发现,这个相位跌落主要是电压外环的PI参数在中频段引入了一个负谐振峰,同时VSG的虚拟惯量参数偏大,导致功率外环响应和电压环产生了交互。调整方案是把电压环穿越频率从250Hz压低到150Hz,同时把虚拟惯量从20调整为12,重新扫频后125Hz处的相位提升到了-62°,相位裕度恢复到了28°以上,时域波形也验证了振荡被完全抑制。整个过程如果没有序阻抗扫频数据的支撑,光靠经验和试错,可能需要好几轮改参数加实验的循环,时间和成本都高得多。

4. VSG与双闭环的建模仿真实操步骤

4.1 仿真平台选择与主电路搭建

建模仿真平台我常用的有两套:MATLAB/Simulink和PSCAD。前者胜在控制算法搭建灵活、和MATLAB脚本配合可以自动化批量扫频,后处理工具丰富;后者胜在电磁暂态精度高、数值稳定性好,接口模型更贴近实际工程。

下面以Simulink为例,讲一下主电路的搭建过程。主电路部分是标准的三相两电平电压源型逆变器,直流侧用理想直流电压源,设电压为700V,交流侧接LC滤波器,L取1.5mH,C取10μF,再通过一个并网接触器和电网阻抗连接到理想三相电网。电网电压设为380V/50Hz。开关频率设为10kHz,采用SPWM或者SVPWM调制均可,我习惯用SVPWM,因为母线电压利用率高15%,在同样的直流电压下能输出更高的交流电压。

主电路的搭建有几个细节值得注意。一是变压器或者电感模型的寄生电阻要如实填入,不要设成0,否则扫频时会在谐振点出现无穷大峰值,失真严重。二是电网阻抗模型中,纯感性阻抗需要串联一个小电阻来模拟实际线路损耗,R/L时间常数一般取0.01到0.05秒之间。三是直流侧如果用的是理想电压源,不需要额外加直流电容;但如果要模拟真实直流母线动态,则要加电容并考虑直流源的内阻。

对于LC滤波器设计,可以按工程经验估算:截止频率f_c = 1 / (2π√(LC)),用L=1.5mH、C=10μF计算得到约1.3kHz。这个截止频率通常选择在开关频率的1/10到1/5之间,这样既能把开关纹波衰减到足够低,又不会对控制带宽内的基波和主要谐波造成太大相移。

4.2 电压电流双闭环参数设计

电压电流双闭环的参数设计是整个VSG控制的核心,因为扫频出来的阻抗曲线直接由这些参数决定。以10kW/380V样机为例,我用的参数是:电压环PI参数Kp=2.2,Ki=310,电流环PI参数Kp=3.5,Ki=1200。下面简单说一下设计和验证的思路。

电流内环设计时,把电流环对象近似为电感串联电阻,即G_i(s) = 1 / (Ls + R),L为滤波电感1.5mH,R为电感串联电阻加开关损耗等效电阻,约0.1Ω。用PI控制器校正后穿越频率取1.2kHz,相位裕度约60°。电流环的等效传递函数在低频段接近1,所以电压环设计时可以把电流内环近似为单位增益处理。

电压外环对象是容性负载加电流环等效电流源的并联结构,即G_v(s) = 1 / (Cs)乘以电流环闭环传递函数。电压环穿越频率取150Hz左右,远低于电流环的1.2kHz,这样两个环路不会产生相互干扰,这是多闭环系统设计的一个基本原则:外环带宽要小于内环带宽的1/5到1/10,否则外环会激励起内环的谐振。

这个设计原则非常关键,很多稳定性问题就是内外环带宽比不够导致的。我在一次实验中发现,当电压环带宽达到300Hz以上时,在600Hz附近阻抗曲线出现了一个尖锐的相位凹陷,相位直接跌破-120°,和电网感抗交叠后就会出现高频振荡风险。这就是电压外环和电流内环在中频段产生了交互,外环带宽过高导致电流环的幅值裕度快速耗尽。

4.3 VSG转子方程与惯量参数的工程取值

VSG控制器的核心是转子运动方程,即J·dω/dt = P_ref/ω - P_e - D·(ω - ω_ref),其中J是虚拟惯量,D是虚拟阻尼系数,P_ref是有功功率指令,P_e是实测有功功率,ω是VSG输出的角频率,ω_ref是额定角频率。

转子运动方程的输出ω经积分得到VSG虚拟转子角度θ,这个θ被用于坐标变换和生成电压相位指令。同时电压幅值指令由无功电压下垂环节生成,即E = E_ref + n·(Q_ref - Q_e),其中n是无功下垂系数。最终生成的电压指令幅值和相位,作为电压外环的参考值输入。

虚拟惯量J和阻尼系数D的取值直接影响VSG的固有振荡频率和阻尼比。根据转子运动方程可以推导出VSG的固有振荡频率约为ω_n = √(P_ref / (J·ω)),阻尼比约为ζ = D / 2·√(J·ω/P_ref)。以10kW样机为例,取J=0.5 kg·m²,D=20 N·m·s/rad,计算得到固有频率约1.6Hz,阻尼比约0.25,这个参数使得VSG在阶跃响应下能快速恢复稳定,又保留了一定的惯性动态。

但要注意,J和D不仅影响基波功率动态,还会通过功率外环耦合到电压环,在低频频段改变阻抗特性。J越大,VSG的等效惯性越大,低频段阻抗幅值越大;D越大,低频段的阻尼特性越好,阻抗相位越接近阻性。扫频时如果发现低频段(5Hz到30Hz)的阻抗出现负阻特性或相位异常,先检查J和D的取值,往往比调电压环参数更有效。

4.4 扫频脚本实现流程

在Simulink中做批量扫频,我是通过MATLAB脚本控制的。基本流程:先用set_param把Simulink模型中的扰动频率参数修改为当前扫描频率,然后调用sim或者simOut方式运行模型,仿真结束后从工作区或日志中提取三相电压电流数据,调用自己写的函数计算正序和负序阻抗,存入结果表,循环扫描全部频率点。

下面是一个简化版的批处理流程文字描述,便于你理解:整个过程的代码结构大致是定义频率数组,通常在对数坐标下从1Hz到2000Hz生成40到60个点;每个频率点运行一次仿真,仿真时长为0.6秒,第0.2秒时投入扰动源,确保前0.2秒是未加扰动的稳态运行;仿真结束后截取第0.3秒到第0.5秒的数据作为FFT分析的窗口。按照扰动频率自动调整窗口长度,然后计算该频率下的正负序阻抗,保存为结果结构体。

仿真步长的选择很关键。总步长一般用固定步长,取2微秒到10微秒。时间步长太大,PWM谐波会污染FFT结果;步长太小,一次仿真跑50多个频率点,仿真时间会非常漫长。我通常用固定步长5微秒,对应的奈奎斯特频率是100kHz,远高于PWM开关频率10kHz和最高的扫频频率2000Hz,精度足够,一次仿真大概3到5分钟,全部频率点跑完需要两三个小时。

5. 实操中的常见问题与排查技巧

5.1 扫频结果毛刺多、FFT分辨率差怎么处理

我最初做扫频时就碰到过阻抗曲线毛刺特别多、完全看不出规律的问题。后来排查发现原因有三个:一是FFT分析窗口没有对准整数个扰动周期,导致频谱泄漏;二是扰动幅值太小,FFT结果被开关纹波淹没;三是提取数据时包含了扰动投入瞬间的动态过程,这一段是非稳态数据,不属于周期稳态。

解决办法分别是:用前面提到的窗口长度调整法,在扫描频率变化时同步调整分析数据窗口长度;把扰动幅值从2%提高到3%到5%,提高信噪比;在数据提取时,跳过扰动投入后的前3到5个扰动周期,只保留完全进入周期稳态后的数据。这套优化做完后,扫频曲线干净了很多,不用做平滑滤波就能直接使用。

5.2 扰动注入导致过流保护动作怎么办

扰动电压虽然只有额定电压的3%到5%,但在某些频率点正好遇到逆变器输出阻抗的谐振峰,电流响应会被放大好几倍,可能触发过流保护模块,导致仿真中断或者电流畸变,测量自然失效。

遇到这种情况,处理方法有几种。第一种是减小扰动幅值,先把电流控制在保护阈值以内,如果信噪比不够,可以通过延长FFT分析窗口来弥补,而不是直接加大扰动。第二种是暂时提高保护阈值,但这个做法要谨慎,因为保护限幅会影响控制器的实际行为,模型失真反而失去参考意义。第三种是检查该频点的谐振是由什么环节引起的,如果是LC滤波器固有谐振,可以在仿真里给滤波电感并联一个阻尼电阻,模拟实际工程中的阻尼措施,不过这会略微改变阻抗曲线,需要谨慎处理。

我个人的经验是:先看保护动作时刻的电流波形,确定过流主要来自哪个频段的谐振峰,再决定是调整扰动幅值还是先解决谐振问题。如果谐振峰是系统本身存在的,那即便你不做扫频,实际运行中它也是隐患,应该回到控制参数设计层面解决。

5.3 正负序阻抗测量相互耦合的问题

正序扰动注入时,理论上只会在正序通道产生响应。但实际上因为VSG控制内部的坐标变换和不对称的数字控制延时,负序通道也会被激起一定的分量。这会导致正序阻抗测量值中混入了负序分量,幅值和相位失真。

我在实际处理时,是通过对称分量变换后再分别对正序和负序电压电流做FFT来降低耦合的,但更彻底的办法是采用双扰动法:同时注入正序和负序扰动,然后利用系统线性的特点,通过解耦计算分离出正序和负序的独立响应。这类似于双端口网络测量中的多激励法,虽然计算量增加一倍,但结果精度明显提升。

对于多数工程分析,单扰动加对称分量变换已经够用了。我在最大耦合频段(通常是电源频率附近的低频段)发现正负序结果差异在10%以内,说明耦合影响可以忽略;但如果你需要非常精确的负序阻抗数据用于质量评估,建议直接上双扰动法。

5.4 仿真时间和步长怎么选才既准又高效

这是整个扫频流程中最容易被低估的一个问题。扫频点数和仿真时间的组合直接决定总计算成本。我的配置是每个频率点仿真0.8秒,用固定步长5微秒,总点数约55个,一台16核工作站跑完需要大约4小时。如果你只有笔记本,可以考虑把仿真时间压到0.5秒,剔除后面多余的稳态数据,步长放宽到10微秒,这样总时间能压到1到1.5小时,结果精度损失不大。

另外一个提升效率的小技巧是并行仿真。MATLAB的parfor循环可以把多个频率点的仿真任务分配到不同核心上并行运行,只要注意每个worker的工作目录要独立、中间变量不要互相覆盖,基本能获得接近核心数倍的加速比。如果你的机器是8核,全流程时间可以从4小时压到1小时以内。

仿真步长方面,我强烈建议不要用变步长求解器,虽然它能自动调整步长,但在PWM开关切换瞬间会产生大量小步长计算,整体仿真时间反而更长,而且结果的可重复性不如固定步长。固定步长配合离散求解器,结果稳定,也方便批量对比。

6. 两点额外想说的实操心得

在项目里反复做过几轮VSG序阻抗扫频之后,我个人的体会是:扫频本身不难,难的是让扫频结果能真正指导控制参数修改。很多人拿到阻抗曲线不知道怎么看,这其实只需要盯住三个指标:谐振峰的频率和幅值、相位最低点的频段和数值、以及和电网阻抗的交点裕度。把这三点和你设计的控制参数对应起来,很快就能定位问题环节。

最后再分享一个小技巧:做扫频分析时,尽量把控制环路的数字化实现细节也一起建模进去,包括采样保持、PWM延时一拍、控制周期等。很多实际振荡问题都不是连续域设计能解释的,而是离散化延时带来的相位滞后。模型里加上这些细节后,扫频曲线和实测数据的高度一致性会大幅提升。这个经验是我在一次项目中,连续域模型预测稳定但实验振荡后总结出来的,之后我所有的稳定性分析都会保留数字化细节,几乎没有再失手过。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询