☰
构网型变流器vs同步电机:频率响应对比仿真与参数整定指南
2026/10/20 7:58:58 网站建设 项目流程

大半个夏天我都在和两个模型较劲:一台普通同步电机,一台构网型变流器,目标就一个——让后者的频率响应曲线尽量贴着前者走。做这个对比的起因也很简单,新能源一多,电网里的“惯性”肉眼可见地变薄了,频率像个坐不住的学生,稍有风吹草动就上下乱窜。传统跟网型变流器只会锁相跟着走,帮不上忙;而同步电机那套天然的转子惯量和阻尼,才是电网敢把频率放心交给它的根本原因。

构网型变流器(业内简称GFM)这几年之所以火,核心就是想用控制算法把同步电机的“体感”重新搬回电网。仿真这事看着不难,可真要搭出一套能骗过自己的对比模型,坑比想象中多。这篇内容我按自己实际建模的路线来写,包含模型思路、参数计算、Simulink搭建步骤和踩坑记录,希望给正在做频率稳定性方向的同学一点可复用的参考。

1. 为什么同步电机会变成“频率稳定”的标尺?

1.1 同步电机的天然频率响应机制

电网频率不是哪个人规定出来的,它是系统里所有旋转设备转速的加权平均。同步电机的转速直接锁住电气频率,f = p·n/60,频率稳定本质上就是转子转速稳定。转速为什么会变?根源在于转子上的转矩平衡被打破。发电机出力等于外部负荷时,机械转矩和电磁转矩恰好相抵,频率维持稳定;负荷突然增加,电磁转矩瞬间变大,而原动机的机械转矩还来不及跟上,转速自然往下掉,频率跟着跌落。

这个“掉”的快慢,完全取决于转子的转动惯量。转动惯量越大,同样的功率缺额下,转速变化越缓慢,系统就越抗扰动。我做过一个小类比:带惯量的同步电机像一个体重很大的胖子推旋转门,你推他一下,他只会慢慢晃一晃;没惯量的系统就像是门轴上挂了根羽毛,轻轻一碰就是大动静。除了惯量,同步电机还有阻尼,阻尼绕组和铁芯涡流会在振荡过程中把动能消耗掉,提供与转速偏差成正比的阻尼转矩,这样系统每次扰动后都能逐渐收敛回稳态,而不是永远荡下去。

所以在电力系统频率稳定这个语境里,同步电机提供了一套完整机制:惯量决定“变化有多快”,阻尼决定“振荡多久平息”,调速器下垂决定“最终稳态落在哪里”。三者合起来,构成了电网频率稳定的底盘。只要系统里还有足够比例的同步电机,频率就像绑了安全带一样稳当;当同步电机比例下降,这套底盘就越来越薄。

1.2 构网型变流器:用算法“冒充”同步机

传统新能源并网变流器大多是跟网型:通过锁相环(PLL)盯住电网电压相位,然后把自己当成一个电流源,按指令发有功无功。电网强的时候这种方式没问题,相位总有明确来源;可当电网本身就是很多跟网型设备组成的时候,大家都在“跟”,谁来“领”?没人领,频率就会失去明确的锚点,系统动态特性恶化。

构网型变流器的思路完全反过来。它对外表现为一个电压源,自己生成幅值和频率都可控的电压波形,电网只是在它的支撑下运行。这样一来,变流器不再是电网的“随从”,而是主动扛起电压幅值和频率“框架”的角色。那问题来了:变流器就是个静止的电力电子装置,没有任何实实在在的转子,怎么模拟出同步电机的“手感”?

答案就是虚拟同步机(VSG)。VSG把同步电机的摆动方程写进数字控制器里,用频率偏差的积分再乘增益,模拟出转动惯量;用有功功率偏差反馈生成下垂特性,模拟调速器效果;再引入阻尼系数压住振荡。本质上就是用计算资源换物理转子,让变流器在外特性上尽力“演”得像一台同步电机。

注意:构网型和跟网型是控制策略层面的区别,主电路可以完全一样。同一个三相桥,换一套控制环就能从跟网变构网,这也是为什么构网控制近年来在微电网和新能源场站里这么受关注。

1.3 为什么要做“两者对比”的仿真

做频率稳定性研究,最容易犯的错是只看变流器自己稳不稳,不看它在系统层面表现如何。单独仿真一台VSG和负荷,怎么调都“稳定”,可一旦扔进一个多机环境,问题全暴露出来。所以我做这个项目时定的方法论是:用同步电机做基准,再用构网型变流器替换它,施加完全相同的扰动,逐条对比频率轨迹。

这个对比法的好处是:同步电机的频率动态有明确的物理解释和成熟的参数体系,VSG的虚拟参数(虚拟惯量、下垂、阻尼)可以直接对着同步机的等效惯性时间常数来映射,差异一目了然。哪些环节像、哪些环节不像,直接暴露控制器的短板。这套方法也是后面所有仿真场景的核心框架。

2. 数学模型:从摆动方程到虚拟惯量

2.1 摆动方程的物理本质

同步电机的转子运动方程,业内管它叫“摆动方程”,可以说是频率稳定研究里最重要的一个式子。转子是旋转刚体,牛顿第二定律在旋转运动上的形式是:

J·(dω/dt) = T_m - T_e - D(ω - ω_s)

其中J是转子总转动惯量(kg·m²),ω是电角速度(rad/s),ω_s是同步电角速度,T_m是机械转矩,T_e是电磁转矩,D是阻尼系数(W·s/rad)。等式右边不为零,转速就会持续变化;等式右边等于零,频率才能稳定。

电力系统分析里更喜欢用标幺值形式,把功率代替转矩,公式变成:

2H·(dω*/dt) = P_m* - P_e* - D*(ω* - 1)

这里ω是角速度标幺值,H是惯性时间常数(秒),P_m、P_e*是机械功率和电磁功率标幺值。为什么用H不用J?因为H把容量归一进去了,可以直接跨机组对比。H的定义是额定转速下转子动能除以额定视在功率:

H = (0.5·J·ω_s²) / S_N

这个秒数有明确物理含义:它代表发电机在没有输入功率变化时,单靠释放转子动能能维持额定负荷运行多久。大型火电机组H一般在3~8秒,水电机组在1~4秒,而很多电力电子变流器系统等效H可能低到0.1秒量级。这个差距直接决定了频率跌落的“初速度”能差出一个数量级。

还有一个被讲得不够多、但极其重要的点:频率偏差是功率不平衡量对时间的积分结果。功率平衡决定的是频率的“导数”,不是频率本身。所以频率不能突变,只能连续变化。这种连续性是同步电机给电网带来的第一层保护,它让保护装置有时间识别故障并动作,不会瞬间摔到崩溃。

2.2 下垂、惯量、阻尼三件套

VSG把同步电机的行为拆成三个可控环节:虚拟惯量、阻尼项、有功-频率下垂。典型控制方程可以写成:

J·(dω/dt) = P_ref - P_e - D_p(ω - ω_g) + k_p·(ω_ref - ω)

其中P_ref是参考有功,P_e是实测有功,ω_g是电网实测角频率,ω_ref是额定角频率,D_p是虚拟阻尼系数(W·s/rad),k_p是下垂系数(W/(rad/s))。整个控制环的输出ω经过积分得到相位,再送入PWM调制,让变流器发出的电压相位随功率偏差自动调整。

下垂系数取值是比较工程化的。设变流器额定容量S_N=10kW,频率允许偏差取±1%,即50Hz系统允许±0.5Hz偏差,对应角频率偏差π rad/s。则有功-角频率下垂系数:

k_p = S_N / (0.01·ω_s) = 10000 / (0.01·100π) ≈ 3183 W/(rad/s)

这个值的含义是角频率每偏离额定1 rad/s,变流器输出有功大约调整3.2kW。如果换到标幺值体系,下垂系数就是1/0.01=100。下垂系数越小,相同的频率偏差下功率响应越猛,相当于调差越硬,各台机组之间的功率分配就越不均匀;下垂系数越大,频率稳态偏差越大,但各单元出力能比较均衡。实际工程经常在两者之间折中。

虚拟惯量J则通过指定等效H反推:

J = 2·H·S_N / ω_s²

以10kW变流器、目标H=3s算:J ≈ 2×10000×3/(100π)² ≈ 0.6077 kg·m²。别纠结这个虚拟J的物理单位,它实质是控制器里的一个积分增益。关键认知是:J越大,频率对功率扰动的响应越迟钝、动态偏差越小,但功率环带宽下降,系统反而容易在其他环节出现振荡。J不是越大越好,这是很多初学者最容易踩的坑。

2.3 参数整定的工程逻辑

那H到底取多少合适?我的经验是先看应用场景。孤网微电网里,负荷突变冲击大,需要的等效H往往在2~5秒,这时候变流器的能量来源是直流侧储能或电容,必须核算直流母线电压跌落是否在允许范围。并网型应用场景,系统本身还有同步电源兜底,VSG的等效H可以取小一点,比如1秒左右,主要目的是提供必要的惯量支撑,而不是取代同步电机。

阻尼项D_p的整定则要结合期望的阻尼比。把它看作虚拟振荡环节的阻尼,过小则频率和功率会出现长周期来回拉锯;过大则相当于给虚拟转子加了一个强刹车,扰动后频率恢复很慢,功率输出显得“僵”。我通常先把D_p设成下垂系数的0.1~0.3倍,再通过扫频或阶跃响应修正。这里面没有放之四海而皆准的公式,一定要回到你的目标波形做闭环整定。

能量来源问题必须在建模时就考虑进去。同步电机的惯量支撑来自真实的转子动能,VSG的虚拟惯量支撑则来自直流侧储能电容/电池。仿真里如果省略直流母线模型,你可以在无数种场景下看到完美的频率曲线;但实机上直流电压很可能直接跌破保护线。所以我的建议是:仿真模型里至少加一个一阶直流电压模型,把母线动态一并观察,这样才能读懂“虚拟惯量到底从哪里借能量”。

3. Simulink建模实操:从模块选型到参数落地

3.1 系统架构与模块选型

整个仿真模型我建议按“对比双系统”思路搭:一套同步电机系统,一套VSG构网变流器系统,公共部分用同一套负荷和线路参数。主电路拓扑上,同步电机直接用Simulink电力系统库里的同步电机模块,配置为凸极或隐极都可以,频率稳定性对比更关注转子运动,简化模型就够用;VSG用三相全桥(Universal Bridge)加LC滤波器构成电压源,再在控制侧搭建VSG算法。

我的模型结构大致分三层。功率层:交流电压源或同步电机/三相桥,经过线路阻抗连接到三相RLC负荷。控制层:同步电机带调速器和励磁机;VSG带虚拟惯量外环、电压电流双环和PWM调制。测量层:电压电流测量元件、频率测量模块、有功功率计算。频率测量这里我特别提醒:别用理想PLL那套瞬间锁频的测量模块,它会滤掉很多真实的微动态,推荐用SOGI-PLL或者直接做过零检测计算频率周期,才能看到准的暂态过程。

模块选型上有几个细节。三相全桥的开关器件用理想IGBT就行,导通压降设0,别让器件损耗干扰频率对比。LC滤波器参数要设计合理:电感取0.1~0.3pu,电容取0.05~0.1pu。电感太大会产生明显压降,电容太大会导致逆变器无功输出偏大。断路器模块选Bypass Breaker类型,并且一定要给Breaker设置一个通态电阻,否则合闸瞬间冲击电流会大到模型发散。

3.2 关键参数计算与Matlab初始化脚本

搭建模型前先把参数全部算好,建议所有参数都放到Matlab初始化脚本里,模型里的参数名只填变量。这样后面做参数扫描时不用改模型,一行循环就搞定。

%% 系统公共参数 f0 = 50; % 额定频率 Hz omega_s = 2*pi*f0; % 同步角速度 rad/s S_N = 10e3; % 额定容量 VA V_rms = 400; % 额定线电压 V %% 同步电机参数(基准参照) H_sg = 3; % 惯性时间常数 s J_sg = 2*H_sg*S_N/omega_s^2;% 转子转动惯量 kg*m^2 R_s = 0.01; % 定子电阻 pu x_d = 1.5; % d轴同步电抗 pu x_q = 1.0; % q轴同步电抗 pu x_d_dash = 0.25; % d轴暂态电抗 pu %% VSG构网变流器参数 H_vsg = 3; % 等效惯性时间常数 s J_vsg = 2*H_vsg*S_N/omega_s^2; % 虚拟惯量 kg*m^2 k_p = S_N/(0.01*omega_s); % 有功-频率下垂系数 W/(rad/s) D_p = 0.2*k_p; % 阻尼系数 W/(rad/s) %% LC滤波参数 f_sw = 10e3; % 开关频率 Hz L_f = 0.2 * (V_rms^2/S_N)/omega_s; % 滤波电感 H C_f = 0.06 * (S_N/V_rms^2)/omega_s; % 滤波电容 F %% 负荷参数 P_load0 = 6e3; % 初始有功负荷 W Q_load0 = 0.5e3; % 初始无功负荷 var P_load_step = 3e3; % 阶跃扰动增量 W

脚本里的核心是H到J的换算。很多同学拿到VSG模型,直接填J=几个kg·m²,然后调来调去不知道自己在干什么。用H来设计的好处是你可以直接对标同步电机的物理参数,比如“我要让这台10kW变流器的惯量水平等效于一台3秒惯性时间常数的机组”,J_vsg由公式算出,参数意义非常清晰。

下垂系数k_p的取值逻辑也一样。10kW变流器,允许频率偏差1%,那么全容量对应的角频率偏差就是π rad/s,k_p算出来3183。如果允许2%偏差,k_p就减半到1591。设计时先明确“我想要多少额定容量对应多少频率偏差”,再反推k_p,而不是随便填个数字。

3.3 仿真扰动场景设计

扰动场景设计要覆盖频率稳定的典型工况。我建议至少做四组:

  1. 负荷阶跃投入:t=1s时投入30%额定功率的有功负荷,观察频率跌落曲线。这是最基本的一次调频能力测试。
  2. 负荷阶跃切除:t=1s时切除50%负荷,观察频率上升和超调情况,考验的是阻尼和惯量的配合。
  3. 三相短路故障:t=1s时发生20ms三相短路,观察最恶劣情况下的频率/电压轨迹,重点看故障清除后系统能不能恢复同步。
  4. 异步电机启动场景:系统孤网带一台异步电机直接启动,启动电流大、无功需求高,对构网型变流器的电压支撑是极大考验。

扰动发生时,我建议把断路器合闸时刻设为电压过零点附近,减少合闸冲击的噪声叠加。负荷阶跃用一个Step信号控制负荷开关的投入逻辑,把阶跃值、时间都做成工作区变量,方便批量扫描。仿真求解器用变步长ode23tb或ode15s,最大步长设置不超过20微秒,否则PWM波形和频率测量噪声会大得没法看。

同步电机系统和VSG系统使用完全相同的扰动参数和时间轴,这是对比有效性的前提。我在建模时把所有变量名统一成相同前缀,一个扰动模块拖动复制到两个子系统里,从根本上杜绝手动设置不一致的问题。

4. 仿真结果解读与频率稳定性评估

4.1 频率时域波形怎么读:RoCoF、最大偏差、稳态偏差

仿真跑完,频率波形不是一眼扫过去“稳不稳”就完事的。专业评审和实际工程里看的指标通常有三个。

第一个是最大频率变化率(RoCoF),即频率初始最陡段的斜率。这个指标直接关系到继电保护动作边界,很多微电网规范要求RoCoF不超过0.5Hz/s或1Hz/s。惯量越小,RoCoF越大,保护就越容易误动。我在仿真里习惯把频率信号先滤波再求导,得到的RoCoF曲线更平滑、更接近工程采样结果。

第二个是最大频率偏差,也就是最低点频率或最高点频率。这个值决定了低频减载装置会不会动作。以50Hz系统为例,低频减载第一轮经常整定在49.5Hz左右,如果扰动后频率跌穿这个门槛,系统就会开始甩负荷,这是事故扩大的信号。

第三个是稳态频率偏差,即扰动结束并完成一次调频后,频率稳定在哪个位置。这个值主要由下垂系数决定,下垂系数越大(标幺值越大),稳态频率偏差越小,但功率分配均衡性变差。理想构网控制应该做到一次调频后频率落到允许范围内,而不是简单回到额定值。

举个例子,假设VSG的等效H=3s、下垂系数1%、阻尼系数取下垂系数的0.2倍,在30%负荷阶跃下,典型结果是RoCoF约0.8Hz/s,最大频率偏差约0.3Hz,稳态频率偏差约0.15Hz。同步电机在同样扰动下,由于调速器响应相对滞后,动态轨迹略有不同,但趋势一致。只要把两条曲线叠在一起看,就能直观判断VSG在频率层面“神似”同步机的程度。

4.2 惯量与阻尼参数对稳定性的影响规律

参数扫描是理解这些规律最快的方式。我做了一组典型扫描,把等效H从0.5s逐步加到6s,记录扰动后的RoCoF、最大频率偏差和振荡衰减时间,结果整理成下面这个表:

等效H(s)最大RoCoF(Hz/s)最大频率偏差(Hz)振荡衰减到2%的时间(s)
0.5约2.4约0.42约1.8
1.0约1.6约0.38约2.5
3.0约0.8约0.31约4.0
6.0约0.4约0.27约5.5

数字背后有两条规律。第一,RoCoF和H大致成反比,H翻倍,RoCoF基本减半;但最大频率偏差并没有等比例缩小,因为惯量只延缓和减缓变化速度,真正把频率拉回稳定的是下垂环节,所以H对最大偏差的影响是有限度的。第二,H增大后振荡周期变长,衰减到稳态的时间变长,显得系统“迟滞”了。这和物理直觉一致:大惯量系统动作慢,但稳。

阻尼系数D_p的影响也很直观。D_p过小时,频率波形会出现明显的欠阻尼振荡,功率来回摆很久;D_p适当增大时,第一次回摆的幅度显著下降,系统更“粘滞”。但D_p过大会导致频率恢复缓慢,稳态前的过程拖得很长,甚至出现频率“爬行”现象。实际整定时我用阶跃响应配合试凑法,先把D_p设成k_p的0.1~0.3倍作为基准,再观察第一次频率回摆幅值,逐步微调。

还有一个容易被忽略的观察点:直流母线电压。如果仿真模型里带了直流电容,你会看到虚拟惯量支撑越猛,直流电压跌落越深。因为VSG在虚拟惯量响应过程中,本质上是从直流侧抽取能量补到交流侧。J设得再大,如果直流电容储能不够,频率是撑不住的,母线电压先崩了。这个观察能帮你建立正确的能量观:构网型变流器的惯量支撑能力,最终受限于直流侧可用能量,而不是控制参数的大小。

5. 常见问题与排查技巧实录

我做这套模型期间碰到的问题不少,挑几个典型的列成速查表,照着排查基本能解决大部分仿真上的麻烦:

现象可能原因解决建议
频率波形高频抖动采样步长过大或测量PLL带宽过高控制环采样时间降到10~20μs;频率测量带宽降到几十Hz
仿真出现NaN或发散积分器没限幅,功角无限增长给频率偏差和功角都加限幅;检查虚拟惯量环上限
负荷合闸瞬间电压波形畸变断路器通态电阻过小给断路器的内阻设为0.01Ω级别
初始条件不收敛电机和负荷没有稳态初始化用稳态工具确认初始工作点;或从零功率开始逐步加载
直流电压跌落太大虚拟惯量能量来源不足增大直流电容容值,或调整J到合理范围
两台VSG并联功率分配不均下垂系数未标幺化或测量噪声差异统一用标幺值下垂,并加上功率平均指令滤波

经验里最值得分享的一条是:先跑同步电机,确认它的频率轨迹和理论一致,再切到VSG,用同一条扰动曲线去对比。有一次我调了半天发现VSG频率振荡一直压不住,最后才怀疑到测量环节——频率测量里的PLL带宽太高,把高频开关噪声都带进了控制环。把测量带宽从几百赫兹降到几十赫兹后,波形瞬间干净了。这种“先怀疑测量,再怀疑控制环”的排查顺序,帮我省了大量无用的参数试凑。

还有一个坑是低载波比下的离散化问题。如果控制环采样频率只有开关频率的一半甚至更低,虚拟惯量环就容易出振荡。我个人的经验是把外环采样率降到1kHz左右,内环电压电流环用20kHz左右,这样环与环之间的时间尺度分开,稳定性反而更好判断。所有离散积分器记得用前向欧拉或后向欧拉并保持统一,不要混用,否则会出现纯数值相位误差,不仔细查都不知道问题出在哪里。

另一个容易被忽略的单位坑:Matlab里角度默认用弧度,但不少同学习惯直接用赫兹算频率偏差。VSG控制环里如果混用了Hz和rad/s,惯量、阻尼、下垂三个系数的量纲全乱,模型跑出来的曲线再好看也不真实。我的做法是统一用rad/s作为一个域,输出到示波器时才把频率转换成Hz。初始化脚本里把所有系数注释清楚单位,回头再看模型时能少掉不少头发。

最后再分享一个小技巧。参数扫描别手动一遍遍改模型里的常量,把H_vsg、D_p、k_p都写成工作区变量,然后用for循环批量跑仿真,把每次的RoCoF和最大偏差记录成表格。我后来甚至会把多个仿真结果画在同一张图上,直接把频率轨迹家族曲线拉出来对比,一眼就能看出参数趋势。这套“脚本驱动建模”的习惯,比手动改模型再点运行效率高出一个量级,强烈推荐试试。

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

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

立即咨询