☰
光伏逆变器并网稳定性分析:阻抗建模与扫频验证全流程解析
2026/10/14 6:48:16 网站建设 项目流程

1. 并网事故背后:阻抗分析为什么比传统时域仿真更接近本质

如果你调试过光伏并网逆变器,一定见过那种让人头皮发麻的现场:电流波形本来干干净净,电网阻抗一变,比如并到一段很长的架空线路,或者同一并网点下挂了十几台机器,几十赫兹的振荡突然冒出来。逆变器要么过流保护,要么反复启机,控制参数怎么调都压不住,因为你始终在时域里打转,不知道问题到底出在控制环路的哪一段。

把视角换成阻抗之后,很多谜团会立刻变得清晰:逆变器本质是一个随频率变化的输出阻抗,电网也只是一个阻抗,两条曲线放在一起,该不该振荡、在哪个频率振荡,几乎一眼就能判断。这也是为什么近些年的博士论文里,阻抗建模、扫频验证、基于阻抗比的稳定性分析,几乎是光伏并网研究绕不开的三大件。这篇文章就把这条技术路线完整拆开,从建模到验证再到仿真复现,把每一步的为什么讲清楚。

1.1 弱电网下的“幽灵振荡”到底从哪来

先说一个反直觉的事实:逆变器的控制系统是围绕“电网电压是理想电压源”这个假设设计的。电流内环采样电网电压做前馈,锁相环用电网电压定向,直流侧电压由MPPT和外环维持。可真实电网是一条带阻抗的线路,并网点电压会随逆变器输出电流的波动而波动。

这个波动的电网电压会进入锁相环,导致锁相角发生扰动;锁相角的扰动又会改变电流参考值的d轴和q轴分量;参考值一变,逆变器实际输出电流又跟着变,电流变化又反过来改变并网点电压。于是一条完整的负反馈路径形成了。如果这条路径上某个频段的增益太大、相位又凑巧反转,系统就会在这个频率上振荡。

在时域仿真里,你能看到的只是电流波形开始发散,至于为什么在这个频率发散、电网阻抗增加之后系统还稳不稳,时域给不出直觉判断。阻抗分析的价值在于把这条复杂的耦合路径压缩成几个等效阻抗曲线,让你从频域完全掌控系统的动态边界。

1.2 时域仿真只能告诉你“发生了什么”

我不否认时域仿真在波形观测、保护逻辑验证上的价值,但它做稳定性分析有天然短板。第一,你需要在不同电网阻抗、不同功率点、不同控制参数下反复试,试到振荡出现,才能确认系统稳定边界,这个过程非常费时间。第二,时域仿真结果很难告诉你“留了多少裕度”,你只知道当前参数下稳不稳定,不知道把电网阻抗再调大10%会不会炸。

频域阻抗分析则完全不同。你把逆变器的小信号输出阻抗Zinv(s)求出来,把电网阻抗Zg(s)拿到手,然后看两者的比值是否满足Nyquist判据。这个过程是解析的、可重复的,而且可以直接给出稳定裕度。更关键的是,它能把问题“定位分级”:振荡是锁相环带宽造成的,还是电流环带宽造成的,还是直流侧动态造成的,从阻抗曲线形状上就能区分。

这就是为什么复现博士论文中的扫频验证这么重要——解析模型算得再漂亮,如果和仿真扫频结果对不上,那模型里八成有简化错误。扫频法就是给解析模型做“体检”的。

1.3 阻抗视角的技术革命:把逆变器和电网看成两个黑盒子

阻抗视角的核心哲学是“黑盒子化”。逆变器内部那些复杂的开关逻辑、控制器状态、滤波拓扑,全部封装成一个两端口网络,从并网点往逆变器看进去,就是一个频率复变函数Zinv(s)。电网那边同理,从并网点往电网看,是Zg(s)。两个黑盒子合在一起,系统是否稳定,完全由两者的“阻抗关系”决定。

这个概念最大的优势是模块化。逆变器厂商不需要知道电网里每个变压器、每条线路的具体参数,只要知道电网等效阻抗;电网调度也不需要理解每一台逆变器的内部控制细节,只要拿到它的阻抗模型。两边的信息通过阻抗谱线这个统一的语言交换,这在工程协调上太重要了。

2. 光伏逆变器小信号阻抗建模的两个核心:锁相环与电流环的贡献

2.1 为什么非要用dq坐标系

三相交流系统在abc坐标系下,稳态是周期时变信号,直接做小信号线性化会处处遇到时间变量,非常难处理。dq旋转坐标系把工频量变成直流量,系统有了一个明确的直流工作点,在这个工作点上求偏导,才能得到真正意义上的线性时不变小信号模型。

dq坐标系下,逆变器的输出阻抗是一个2x2矩阵,而不是一个标量:

阻抗分量物理含义
Zdd(s)d轴电压扰动对d轴电流的影响
Zdq(s)q轴电压扰动对d轴电流的影响
Zqd(s)d轴电压扰动对q轴电流的影响
Zqq(s)q轴电压扰动对q轴电流的影响

把电网阻抗也变换到同一旋转坐标系下,同样得到Zgdq矩阵。然后就可以用广义Nyquist判据,或者简化成单输入单输出形式进行稳定性分析。

这里初学者最容易犯的错,是把dq阻抗矩阵当作两个独立的标量阻抗直接跟电网阻抗比较。实际上Zdq和Zqd这两个交叉项自带耦合信息,尤其是锁相环存在时,交叉项的幅值在中低频段往往比对角项更“活跃”,忽略交叉项等于把PLL的动态直接抹掉了。

2.2 锁相环如何“改写”输出阻抗

锁相环的理想效果是把并网点电压相位精确锁到工频,但在弱电网条件下,它的动态会在输出阻抗里引入一个“负阻效应”。负阻的含义是:电压升高时电流反而增大,从能量角度看,这个频率点上的功率不是被消耗掉,而是被“注入”,系统就不稳定了。

负阻频段通常出现在锁相环带宽以下的低频段,典型是几赫兹到几十赫兹。电网阻抗越大,并网点电压波动越强,这个负阻段就越突出。很多光伏电站出现的次同步振荡,根源就在这。

在dq阻抗建模时,锁相环的作用过程是:PLL输出θ扰动→Park变换矩阵被扰动→电流反馈量出现额外的小信号分量→控制输出改变。这个过程不能靠直觉推,必须写成矩阵扰动展开,把PLL小信号模型接入控制环路。复现论文时,我建议先把不含PLL的模型做通,再逐步把PLL加进去,这样能清楚看到阻抗曲线在哪一段发生了变化,也方便排错。

PLL参数对阻抗的影响可以通过带宽来理解:

  • PLL带宽高,锁相速度快,但负阻频段也宽,更容易和电网阻抗交叉;
  • PLL带宽低,锁相慢,负阻影响小,但对电网频率跳变的跟踪能力差。

这就是为什么很多论文会给出PLL带宽的上限建议,本质上是在锁相动态和稳定性之间找折中。

2.3 电流环如何塑造中频段阻抗

电流内环是逆变器控制的基础,它的带宽决定了输出阻抗在中频段的形状。电流环带宽以内,逆变器表现为“受控电流源”,输出阻抗很高,对外部电压扰动不敏感;带宽之外,电流环失去调节能力,输出阻抗回落到滤波电感阻抗特性。

在dq阻抗矩阵里,电流环主要贡献Zdd、Zqq的基值,并和PLL交叉项形成耦合。但要注意,电流环参数一旦设计不当,比如PI积分增益过大,会在中高频段引入相位滞后,使阻抗曲线出现尖峰或相位穿越。

实际建模时,电流环不能只看理想控制器传递函数,还要考虑数字控制延时。一拍延时在开关频率处对应相当可观的相位滞后,会显著影响高频段阻抗。Simulink复现中最好显式加入延时模块,不然扫频结果在高频段会和解析模型明显偏差。

2.4 直流侧动态要不要放进模型

这是复现博士论文时一个很容易忽略的分支。如果直流母线电容足够大,或者直流侧被理想电压源替代,那阻抗模型里不需要包含直流侧动态。但如果你研究的是真实光伏组件+MPPT,直流侧电压会随功率扰动波动,进而在输出阻抗上叠加一个低频动态。

工程上有一个简化处理:把直流侧看成电压源,然后单独分析直流侧阻抗与控制环路的交互。这样把问题解耦,先解决并网稳定性,再考虑直流侧MPPT的影响,逐步递进。我见过不少同学一上来就把MPPT、Boost级全塞进阻抗模型,结果模型复杂到根本没法验证,扫频结果对不上也不知道改哪。

3. 扫频法验证阻抗模型:原理、扰动注入与响应提取

3.1 扫频法到底在扫什么

扫频法的本质是“黑盒辨识”。你不需要知道逆变器内部的具体拓扑和控制参数,只需要在并网点注入一个小幅度的正弦扰动电压(或电流),然后测量同频率下的电流(或电压)响应,二者的复数比值就是该频率下的阻抗值。

具体地说,假如你在d轴注入角频率为ωi的电压扰动,幅值是ΔVd,那么从逆变器端口流出的d轴电流会包含同频率的分量ΔId。Zdd(ωi)就等于ΔVd/ΔId。为了得到Zdq,需要在q轴同样注入一遍,再测d轴电流响应。所以完整测一个频率点的dq阻抗矩阵,需要在d轴和q轴各做一次注入,一共两个工况。

扫频范围通常从1Hz一直做到1kHz甚至2kHz,低频段看PLL、直流侧动态,中高频段看电流环和滤波器的行为。频率步长的选择直接影响分辨率,一般是几十到几百个频点对数均匀分布,高频段稀疏一些、低频段密一些。

3.2 扰动注入方式选择:串联电压源与并联电流源

在Simulink仿真里,注入扰动有几种方式,最常规的是串联电压源和并联电流源两种:

注入方式实现方法适合场景
串联电压源在并网点串联一个可控电压源,输出为工频基波叠加扫频小信号测量逆变器输出阻抗,扰动是电压量
并联电流源在并网点并联一个可控电流源,注入扫频小信号电流测量电网阻抗,或研究恒压源场景

串联电压源注入时,电压源需要同时产生基波和扰动分量,不然会改变系统的工作点。这里有个技巧:基波分量由理想电网提供,扰动电压源只负责叠加一个纯扫频信号,幅值控制在基波的1%-5%之间。

扰动幅值的选择是扫频验证里最需要拿捏的事。幅值太小,响应信号淹没在开关纹波和数值噪声里,提取出来的阻抗谱线毛刺很多;幅值太大,系统偏离线性工作点,阻抗值本身就不再成立。我常用的做法是先仿真一个频点,看注入处的电压和电流波形,确认扰动分量清晰可见且总谐波畸变率不高,再固定这套幅值批量跑完全部频点。

3.3 从时域波形到阻抗曲线的三步处理

跑完仿真后,每个频点你得到的是电压、电流的时域波形,要把它变成复数阻抗,需要做傅里叶变换。但直接对整个波形做FFT会有一个问题:仿真启动瞬态和扰动暂态会污染频谱。正确做法是等系统达到稳态后再开始记录数据,通常每个频点仿真时长为0.1到0.5秒,取后面30%到50%的波形做FFT。

三步处理流程如下:

  1. 取稳态段波形,减去工频基波分量,保留扰动分量;
  2. 对扰动频率点做离散傅里叶变换(不是整段FFT),提取该频率下电压和电流的幅值与相位;
  3. 用复数除法计算阻抗,并矫正坐标变换和采样时间引入的相位偏移。

第二步为什么用单频DFT而不是整段FFT?因为注入的是单频正弦,整段FFT会把能量分散到频率分辨率的格子里,但单频DFT直接对准频率点计算,精度更高,也不受频率分辨率限制。这一段处理用脚本批量完成,一百个频点几秒钟就能出全部阻抗谱线。

4. 阻抗曲线拿到手之后:稳定性判据怎么用

4.1 单输入单输出思维下的阻抗比判据

阻抗比判据的思路是:把逆变器和电网的连接看作一个反馈回路,前向通路是逆变器输出阻抗,反馈通路是电网阻抗(按电流源视角),开环传递函数是Zg(s)/Zinv(s),于是系统稳定等价于这个比值满足Nyquist判据。

在实际工程中,我们通常不用画完整的Nyquist图,而是看两个关键点:增益交点频率和相位裕度。在Bode图上找到|Zg|=|Zinv|的频点,然后看该频点下两者的相位差是否小于180度。相位裕度越大,系统抗参数漂移的能力越强。

这里必须强调一个工程误区:很多人只比对角阻抗Zdd和Zqq,而忽略了交叉项Zdq和Zqd。如果锁相环带宽范围内交叉项很大,单靠对角项的阻抗比判断会得出“稳定”的错误结论。简单做法是把dq阻抗矩阵换算成序阻抗(正序、负序),用序阻抗来判断,能更直接地处理三相不平衡场景。

4.2 一个能看出问题的实例分析

假设你搭好的Simulink模型在某个电网阻抗下振荡了,振荡频率大约是25Hz。你从扫频结果里得到逆变器阻抗曲线,在25Hz处幅值和相位分别是A1和Φ1,电网阻抗在25Hz处幅值和相位是A2和Φ2。

如果A2/A1接近1,且相位差接近180度,那这个振荡就能完全解释为两个阻抗的“谐振交会”。这时候解决方案有几个方向:放大电流环增益提高中频阻抗幅值;降低PLL带宽缩小负阻频段;或者调整滤波器参数改变相位曲线。每个方向在阻抗曲线上都会留下清晰的指纹,做完改动再跑一次扫频,就能直接确认是否有效。

我在复现时最深刻的体会是:很多时候改进控制参数在时域波形上看不出明显变化,但在阻抗曲线上一目了然。锁相环带宽降下来之后,25Hz附近那个负阻凹陷立刻变小,振荡斜率明显改善。

4.3 无源性与现代稳定性观点的演进

近几年的研究还会用到无源性判据。一个端口网络是无源的,意味着它只消耗能量不产生能量,对应到阻抗频域特性就是阻抗实部在任意频率下都不小于零。逆变器控制系统因为PLL、数字延时等原因,会在某些频段呈现负电阻,这就是非无源的来源。

无源性判据的优势在于它完全独立于电网阻抗。只要逆变器阻抗无源,并到任何电网都不会失稳;反之,非无源段一旦被电网阻抗激发,就有振荡风险。所以很多学者把稳定性设计目标从“针对特定电网调参数”升级为“让逆变器在目标频段内无源化”,比如通过附加阻尼控制来消除负阻段。

这个思路在扫频验证里也很有用:你不光要对比解析模型和仿真扫频的一致性,还应该检查阻抗实部是否有负数段。如果复现出的模型既满足解析一致性,又在目标频段实现了无源化,那就是一个相当扎实的稳定方案。

5. Simulink仿真复现步骤:从零搭一个能跑通的平台

5.1 主电路模型的选择:平均模型还是开关模型

复现博士论文时,第一个关键决策是主电路模型选平均模型还是开关模型。开关模型更接近实物,包含IGBT通断的高频纹波,但仿真速度慢、对求解器步长要求高;平均模型把调制过程等效成受控电压源和电流源,速度快,适合长时间扫频仿真。

我个人的建议是:解析建模和扫频验证阶段用平均模型,能省大量时间;只在最终需要验证PWM谐波影响时,切换回开关模型跑关键频点。平均模型中有一个先决条件,那就是直流侧电压要足够稳定,且调制深度不能进入饱和区。

一个常见坑是平均模型里把调制器等效成增益1,但实际逆变器存在直流电压利用率限制、死区等非线性因素。好在扫频法测的是小信号阻抗,扰动幅值很小,非线性误差有限,平均模型的扫频结果已经足够和解析模型对标。

5.2 电流内环与PLL的Simulink实现细节

电流内环的Simulink实现,一般用离散PI控制器加限幅,注意采样频率和控制周期要一致。PLL部分最常用的是同步参考坐标系锁相环(SRF-PLL),由Park变换、PI控制器和压控振荡器组成。

有几个实现细节极其影响阻抗扫频结果:

第一,PI控制器的抗积分饱和要处理好。扫频扰动进入后,参考值可能在瞬间偏大,积分饱和会让控制器在一段时间内失去调节能力,导致这个频点扫出的阻抗值无效。

第二,PLL输出角度是反馈量,必须拿它做Park变换,而不是直接用理想角度。很多初学复现时随手用理想工频角度做dq变换,等于把PLL的动态完全绕过,阻抗曲线自然对不上。

第三,控制环路里加一拍延时,用单位延时节模拟数字控制器计算与PWM更新的滞后。这个延时在5kHz开关频率下就是200微秒,对应高频段几十度的相位偏差,不能省。

5.3 扫频模块的配置与脚本化参数设计

扫频模块可以做成独立子系统,内部放一个可控电压源,电压表达式为:

V = Vm * cos(2*pi*f0*t) + Va * cos(2*pi*fsweep*t)

其中f0是工频,fsweep是当前扫描频率,Va是扰动幅值。在Simulink里把fsweep设置成变量,然后用脚本循环调用sim()函数,每跑完一个频点自动改频率、记录结果,一百个频点全部跑完只需要一段循环脚本。

仿真参数方面,我使用定步长求解器,步长取1e-6秒,确保最高扫频频率下每个周期仍有足够多采样点。仿真时长取决于最低扫频频率,比如扫到2Hz时,需要让稳态段覆盖至少10个工频周期,加上暂态时间,单频点仿真可能要到1秒。高频段可以适当缩短时长,用脚本自适应设置。

还有一个值得注意的点,就是在脚本里保存每个频点的实际注入电压和响应电流时,不要直接存全波形,只存稳态段的最后几千个点,否则数据文件会非常大。我试过直接存全波形跑100个频点,结果生成了几个GB的数据,处理脚本跑半天。

6. 复现过程中的坑与数据校验经验

6.1 仿真步长与FFT窗长:高频段误差的主要来源

扫频低频段对仿真步长不敏感,但扫到500Hz以上时,定步长如果太大,波形重建会失真,单个正弦周期内采样点不足会直接导致DFT精度下降。经验准则是:最高扫频频率的周期内至少要有100个仿真采样点。扫到1kHz时,步长1e-6秒刚好满足这个要求。

FFT窗长的坑更隐蔽。如果你取稳态段长度不正好是扫频频率周期的整数倍,DFT计算会引入频谱泄漏。解决办法不是无限拉长窗口,而是截取整周期数,比如固定取“扫频频率对应周期数的整数倍”,在脚本里动态设置数据长度。

6.2 dq变换初相角与正负序的陷阱

dq变换结果的相位与Park变换的初始相位角直接相关。如果不刻意对齐,测量出的Zdq和Zqd会整体平移一个相角,导致交叉项完全对不上解析模型。

解决方法是在扫频失真后统一做相位校正:先跑一个标准工况,比如纯电感负载,测一次阻抗,电感在dq坐标系下的相位是已知的,用这个差量把所有频率点的相位统一校正。我每次复现新模型都会先跑这个标定步骤,后面所有数据的一致性检查才有意义。

另一个相关陷阱是正负序分量。在Simulink里注入单相扰动等效于同时注入了正序和负序扰动,但dq阻抗矩阵测的是正序响应。所以要么注入三相平衡的正序扰动,要么在做数据处理时做负序分离。很多复现结果对不上号,就是这个环节出了问题。

6.3 三组数据的一致性检查流程

完成仿真后,建议按以下顺序做一致性检查:

  1. 解析模型计算阻抗谱线,注意PLL、电流环参数必须和Simulink完全一致,包括延时;
  2. 仿真扫频阻抗谱线,记录每个频点的幅值、相位;
  3. 稳定性判定结果,即是否振荡、振荡频率多少。

先看幅值曲线整体趋势是否一致,再看相位曲线,特别是-180度穿越点附近是否有系统性偏差。如果只有个别频点偏差大,先怀疑这个频点的瞬态没有滤干净;如果全频段有固定相位偏移,优先检查坐标变换初相;如果在某一频段突然对不上,那大概率是模型里某个动态被简化掉了,比如直流侧电容或滤波器寄生参数。

我复盘过自己复现失败的案例,大部分都是因为仿真里忘了加数字延时,或者PLL采样相位用了理想假设。把这两处补上之后,解析模型和扫频结果几乎是完美贴合——那一刻你会真正理解扫频法作为“验证工具”的巨大价值。

6.4 最后再分享一个小技巧

做大幅扫频前,先用十来个关键频点快速验证模型正确性。这些点选在PLL带宽附近、电流环带宽附近、滤波器谐振频率附近,各扫两三个频点,就能判断整体趋势是否合理。如果趋势对,再放开扫全频段,省时又省力。

另外一个经验是保留好每次扫频的原始波形数据。换控制参数前后对比阻抗曲线时,只有原始数据才能在事后解释“为什么这个参数会导致振荡”,只看曲线截图往往会漏掉细节。把数据、脚本、模型整理成一套完整的复现包,对后续的论文写作还是调试定位都有大帮助。

阻抗建模、扫频验证、稳定性分析这条路线,说难不算难,说简单也不简单。它的门槛不在公式推导,而在于你愿不愿意慢下来把每个环节的数据都对到严丝合缝。一旦你真正跑通一次完整的“建模-验证-分析”循环,再回头看那些时域仿真里反复折腾的振荡问题,会发现一切都清晰得让人惊讶。

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

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

立即咨询