☰
虚拟惯量时间常数H怎么调?从同步机原理到储能并网调试避坑
2026/10/8 4:05:45 网站建设 项目流程

先问一个场景:并网涉网试验之前,调度侧给你发来一条通知,要求新建场站具备惯量响应能力。你打开控制器的参数表,看到上面写着“虚拟惯量时间常数H”,默认值是4,单位是秒,但组里没人能说清为什么是4、往上调或往下调会有什么后果。我之前做储能调频联合控制时,在这个参数上栽过两次跟头,所以今天把虚拟惯量、时间常数H从物理原理到工程整定彻底拆一遍。这篇文章适合刚接手新能源并网控制、储能PCS调试,或者正在做频率在线监测和参数整定的工程师参考,电力系统方向的学生也可以当补充读物。

先说结论:虚拟惯量时间常数H是电力电子变流器模拟同步发电机转动惯量时引入的等效参数,单位是秒,基准不同算出来的H完全不同。它决定了一台变流器在电网频率变化时,能多大程度地“拦住”频率变化速率(RoCoF)。这跟你平时调的PI参数不一样,H更像一个物理世界映射到控制器里的常量。理解了它,你才明白为什么储能场站能替同步机“扛”住频率跌落最初的那几秒钟。

下面我从同步机转子运动方程讲起,把H的物理意义讲清楚;然后给出完整的计算公式和一个50MW储能电站的算例;再讲控制回路里H怎么落地、整定原则和实测对比;最后附上调试中常见的坑和排查思路。全文偏工程,公式不多,尽量用大白话。

1. 虚拟惯量时间常数H是什么:物理意义与来龙去脉

1.1 从转子运动方程看懂H的本质

同步发电机为什么天然“有惯性”?因为转子是实打实的旋转刚体,有质量、有半径、有转速。遇到功率不平衡,比如负荷突然增加,电磁功率瞬间变大而原动机的机械功率还没跟上,转子就会减速,把自己存储的旋转动能释放出去补上缺口。这个过程用转子运动方程描述:

J × dω/dt = Tm - Te

其中J是转动惯量,ω是转子角速度,Tm和Te分别是机械转矩和电磁转矩。这个方程和牛顿第二定律长一个样,本质就是“转矩不平衡导致转速变化”。

要让这个方程通用,不能每台机组都拿质量、半径这些物理量说话,工程上要做标幺化处理。两边同时乘以额定角速度ω0,再除以额定视在功率S_n,并定义一个参数:

H = J × ω0² / (2 × S_n)

于是转子运动方程变成:

2H × (dω/dt) / ω0 = Pm* - Pe*

带*的Pm、Pe是标幺值功率。这就是电力系统分析里最常见的二阶运动方程形式。你会发现,H的物理本质是转子在额定转速下存储的动能,与机组额定功率的比值,单位约分之后就是秒。

为什么叫“时间常数”?可以这么理解:如果机组带额定负载,靠转子自身存储的动能去支撑,在没有任何输入功率的前提下,最多能撑H秒。比如H=4s,就相当于转子把额定转速下的动能全部拿来发额定功率,4秒烧完。当然现实里转子的机械功率不会瞬间归零,但这个“能量除以功率等于时间”的直觉非常有用。

拿开车打比方最直观。满载的重型卡车H大,踩刹车之后车速变化很柔和,你感觉不到猛烈的顿挫,但滑行距离很长;轻载的小皮卡H小,一脚刹车速度立刻往下掉,反应很灵敏,但车上的东西容易颠散。同步机就是那辆重卡,电力电子变流器就是那辆皮卡——原本没有惯性可言,开关一关电流就断,频率说变就变。

1.2 电力系统为什么突然在乎这个参数

传统电网里同步机数量多,系统整体的等效H可能达到5到6秒甚至更高。但新能源渗透率上来之后情况变了。光伏和风机大多通过电力电子变换器并网,转子机械系统与电网完全解耦,频率波动时它们几乎不提供天然的旋转动能支撑。一个区域里新能源占多了,系统等效H会迅速降到3秒以下,极端情况下可能只有1到2秒。

等效H下降的直接后果是RoCoF变大。同样的功率扰动,频率跌落速度更快、深度更大。低频减载装置是按照频率值分轮次动作的,如果频率跌得太快,好几轮减载可能同时触发,甚至造成更大范围的安全问题。这也是为什么并网导则开始把“具备惯量响应能力”作为新场站的考核项。

虚拟惯量做的事情,就是让光伏、风机、储能这些电力电子设备,在控制器里“伪造”一个H出来。检测到频率变化率之后,通过有功功率控制快速注入或吸收功率,行为上模仿同步机的转子响应。好处不止是响应快,虚拟惯量还可以做成负的、非对称的、按需调整的——这是物理转子做不到的灵活性。

2. H的计算与整定:公式、算例、原则

2.1 H怎么算:一个50MW储能电站的完整算例

先看公式怎么落地。同步机里,转子动能W_k = 0.5 × J × ω0²,于是H = W_k / S_n。工程上计算时注意两点:转动惯量J的单位是kg·m²,额定角速度ω0单位是rad/s,额定功率S_n通常用MVA,最后算出的H单位是秒。

举个例子。假设你要给一个50MW/100MWh的储能电站设计虚拟惯量控制,H目标取4秒。先不急着看控制代码,先算这个H对应的“等效动能”:

W_k = H × S_n = 4s × 50MVA = 200MJ

这意味着,当频率出现变化时,储能系统需要在控制层面表现出“像拥有200MJ旋转动能”一样的功率-频率响应特性。储能本身并不真的转动,不需要飞轮,但它输出功率的时序必须等效。

接着算支撑功率。假设电网发生一次频率跌落,RoCoF为0.5Hz/s。以50Hz为基准,频率变化率的标幺值就是0.5/50 = 0.01每秒。由运动方程可知:

ΔP* = 2H × Δω* = 2 × 4 × 0.01 = 0.08 p.u.

换算到实际功率就是0.08 × 50MW = 4MW。也就是说,这个H=4s的储能场站在0.5Hz/s的频率跌落速率下,需要额外输出约4MW来提供惯量支撑。如果RoCoF更大,比如1Hz/s,需要8MW;如果H再放大到8秒,就是16MW。所以H本质上把“频率变化快慢”和“需要多少功率”做了一个线性绑定。

这个计算有个容易被忽略的陷阱:基准值。H总是关联着一个特定的S_n。单台PCS的H和整个场站的H,不能直接相加,必须先把各自的H折算到同一个基准容量下再综合。折算公式是H_new = H_old × (S_old / S_new)。你现场看到某台PCS参数表上写着H=10,先别激动,看看它是按单机2MW容量算的,还是按整个场站50MW算的,二者等效值差了25倍。

2.2 H怎么设:典型取值与“越大越好”的误区

同步机的H值是有经典范围的:汽轮发电机一般4~8秒,水轮发电机2~4秒,燃气轮机4~6秒。电网调度部门关心的系统等效H,通常在3~5秒左右。这些是真实物理世界的参照系。

虚拟惯量的H取值范围,业内一般建议取2~8秒。取太小的确没用,比如H=0.5秒,频率事件发生时,支撑功率可能只有零点几兆瓦,还不如一次调频的零头。但取太大也并非好事,这是很多人第一次调参时踩的坑。

从二阶系统的小信号模型看,忽略其他环节后,等效振荡频率大约正比于sqrt(Kp/(2H)),H越大振荡频率越低、恢复越慢;而阻尼比又由H和阻尼系数D共同决定。H偏大时,虚拟惯量环和相邻机组、线路控制环节的相互作用频率可能重叠,引发功率振荡。常见直观表现是,某台PCS频率扰动后输出功率来回摆动,摆了几十秒不到头。

我一般按这么三步走:第一步,用小信号模型做根轨迹分析,把H的可选范围框出来;第二步,用时域仿真在这批范围内跑典型的频率跌落事件,看RoCoF抑制效果和功率峰值;第三步,现场做频率扰动试验,在2秒到10秒之间用几个离散值实测,选波形最稳的那个。工程上常见的一个偏保守选择是:储能场站H取2~6秒,光储联合电站取4~8秒,纯光伏(预留功率充足)可以到10秒左右。

下表是我在不同项目里用过的建议初值,注意这是初值,不是最终固化值:

应用场景建议H初值(秒)主要限制因素
储能独立调频场站2 ~ 6PCS功率限幅、SOC约束
光储联合惯量支撑4 ~ 8光伏预留功率、辐照波动
风电场虚拟惯量3 ~ 6风机桨距响应速度、转速限制
纯同步机对照系统4 ~ 8真实物理转子参数决定

3. 虚拟惯量控制回路怎么落地:从公式到控制器

3.1 惯量支撑与一次调频的分工

先理清两个容易混的概念。一次调频(下垂控制)响应的是频率偏差Δf,是比例环节;虚拟惯量支撑响应的是频率变化率df/dt,是微分环节。时间尺度完全分开:频率跌落最初的0到2秒,df/dt最大,惯量支撑是主力;几秒到几十秒之后,频率偏差稳定下来,df/dt趋近于零,惯量支撑自动退出,一次调频接着把频率拖回稳态。

控制回路里,两者通常是并联叠加的。有功功率参考值写成:

P_ref = P0 + Kp × (f0 - f) - 2H_vir × S_n / f0 × (df/dt)

注意第二项是比例于频率偏差,第三项才是惯量支撑。工程实现上第三项的增益就是2H_vir × S_n / f0,标幺化处理之后可以认为就是2H_vir。整个链路的典型信号流是:PLL锁相得到并网点频率 → 低通滤波 → 差分求df/dt → 限幅 → 乘上增益 → 叠加到功率指令 → 送到电流内环执行。

完整版的虚拟同步机(VSG)还要加转子方程、功角环节、虚拟阻抗,模拟得特别像一台同步机。但很多储能调频场景其实不需要那么完整,只把惯量支撑支路加进有功控制就能满足并网考核要求。我自己的经验是:先做简化版,跑通并网试验再考虑要不要升级VSG,避免一上来就把控制的带宽、相位裕度搅成一锅粥。

3.2 参数配置实例:把H写进储能PCS控制

给一套可以直接抄的初值参数配置。场景:50MW储能场站,额定频率50Hz,目标H=4秒,一次调频系数10%额定功率对应1Hz偏差,阻尼系数D=5,功率限幅±6MW,频率采样周期10ms,低通滤波时间常数100ms。

这个配置里,一次调频在频率跌落0.1Hz时的输出是0.1×10%×50MW=0.5MW;而同样的频率事件如果RoCoF是0.5Hz/s,惯量支撑输出是4MW。差别一眼就看出来:惯量支撑在瞬态阶段是调频的八倍,专门对付“频率变化”而不是“频率偏差”。

配合参数写一段简单的计算代码,仿真同样的频率跌落事件,看看每个阶段功率怎么分配。代码不长,核心是标幺化换算和增益计算:

import numpy as np dt = 0.01 # 仿真步长,10ms t = np.arange(0, 20, dt) # 仿真20秒 Sn = 50e6 # 储能场站额定功率 50 MW fn = 50.0 # 额定频率 H = 4.0 # 虚拟惯量时间常数,s Kp = 0.1 # 一次调频系数:1Hz偏差输出10%额定功率 D = 5.0 # 阻尼系数 # 构造简化频率轨迹:0-10s稳定50Hz,10-12s以0.5Hz/s跌落,12s后频率停在49Hz f = np.ones_like(t) * 50.0 f[(t >= 10.0) & (t < 12.0)] = 50.0 - 0.5 * (t[(t >= 10.0) & (t < 12.0)] - 10.0) f[t >= 12.0] = 49.0 # 差分求df/dt,再换成标幺值 df = np.gradient(f, dt) df_pu = df / fn # 惯量支撑输出,单位MW P_iner = -2.0 * H * df_pu * Sn / 1e6 # 一次调频输出,单位MW P_droop = Kp * (50.0 - f) * Sn / 1e6 # 打印关键时间点的功率分配 for tt in [9.5, 10.0, 10.5, 11.0, 11.5, 12.0, 15.0]: idx = int(tt / dt) print(f"t={tt:5.1f}s f={f[idx]:6.3f}Hz P_iner={P_iner[idx]:6.2f}MW P_droop={P_droop[idx]:6.2f}MW")

估算一下输出结果:

时间点频率惯量支撑一次调频
9.5s50.000Hz0.00MW0.00MW
10.5s49.750Hz4.00MW1.25MW
11.0s49.500Hz4.00MW2.50MW
11.5s49.250Hz4.00MW3.75MW
12.0s49.000Hz0.00MW5.00MW
15.0s49.000Hz0.00MW5.00MW

从这几行数据能看到两件事:频率跌得最快时,惯量支撑输出恒定4MW,是主要的瞬态支撑来源;频率不再变化后,df/dt归零,惯量支撑自动退出,只剩一次调频在那里维持稳态出力。这就是整个设计想要的“分工”。

实际DSP控制器里,求df/dt那一环最容易出事。差分求导是噪声放大器,PLL出来的频率本来就有纹波,直接求导后可能出现正负几十MW的虚假功率指令。工程经验是:先做一阶低通,再做均值差分,出口再加斜坡限速。这个顺序不能反过来,滤波要在微分之前,否则噪声已经被放大了,再滤波也很难救回来。

4. 现场调试实录与整定避坑

4.1 频率扰动试验:H=0、4、10秒的实测对比

虚拟惯量的现场验证一般靠频率扰动试验。条件允许就用RTDS闭环测试,条件受限时也可以利用并网点的自然频率波动记录RoCoF。做法是给储能PCS下发不同的H值,然后施加同样的扰动,对比频率变化率和有功响应波形。

下面是某一组实测数据的典型规律。H=0秒,也就是纯一次调频、无惯量支撑时,频率跌落的最大RoCoF约0.15Hz/s,有功输出是缓坡上升,峰值约2MW;H=4秒时,RoCoF降到0.09Hz/s,惯量支撑功率出现一个明显的尖峰,峰值约4.6MW,然后随频率跌落放缓而回落;H=10秒时,功率指令已经触到±6MW限幅,RoCoF改善反而有限——因为输出被限幅截断了,实际释放的能量没有按H的线性关系继续增加。

这个对比信息量很大。H从0调到4秒,RoCoF下降了40%,效果立竿见影;从4再调到10秒,有功完全被限幅吃掉,频率指标却没有同比例提升。限幅是横在所有虚拟惯量工程化面前的一道墙,设计阶段必须预留功率余量。

H设定最大RoCoF有功峰值频率恢复时间现象描述
0s0.15Hz/s2.0MW12.5s纯调频,响应平缓
4s0.09Hz/s4.6MW14.0s尖峰明显,恢复略慢
8s0.07Hz/s5.8MW17.0s接近限幅,出现回落过冲
10s0.065Hz/s6.0MW(限幅)无明显优势限幅截断,相邻机组出现功率对敲

H太高还带来一个麻烦:频率恢复时间明显拉长。原因是H大意味着虚拟“转子动能”大,同样的阻尼条件下,系统要更久才能回到稳态。所以现场固化参数之前,不能只看RoCoF一个指标,频率恢复时间、有功峰值、相邻机组出力分配都要一起看。

4.2 三个最容易被低估的现场问题

第一个是限幅。储能PCS的有功指令后面一定跟着功率限幅,常见的是±0.1~0.15倍额定功率。RoCoF很大的极端工况下,惯量支撑计算值可能超出限幅,这时候控制器输出被截断,H设得再大也无济于事。我见过有人把H从4改到12,结果波形一点变化都没有,查了半天发现是限幅环节先饱和了。调参前先算一次最大RoCoF下的理论支撑功率,确认没有超过限幅才是对的。

第二个是滤波延时。低通滤波和斜坡限速都会让df/dt信号滞后于真实频率事件。并网导则考核RoCoF时,看的是并网点实际频率变化速率,如果你的滤波时间常数取到300ms,频率变化时支撑功率晚到,可能考核曲线已经不认这个响应了。平衡点一般是50~200ms低通,再配合事件触发式的两段检测:连续几个周波频率同方向变化超过阈值才启动惯量支撑,抑制稳态抖动误触发。

第三个是多机并联。一个场站几十台PCS,各台各自运行虚拟惯量算法,如果H设得不一致、基准容量不一致,扰动来临时可能出现“你出力我收力”的相互干扰。理想做法是场站统一算一个等效H,按容量比例分配给各台PCS,同时基于统一的并网点频率,而不是各台PCS锁各自的本地频率。否则就是几台“虚拟同步机”在互相拔河。

5. 常见问题排查速查表:动手调参前必看

把实际调试中常遇到的问题整理成一张表,方便现场对照:

现象可能原因排查与处理
频率跌落时有功剧烈抖动df/dt求导噪声大,滤波不足加大低通时间常数,限制微分增益,出口加斜坡限速
稳态频率偏差没有改善把惯量支撑当调频用了,方向不对增加一次调频系数Kp,惯量只管瞬态不管稳态
H调大后系统反而振荡H与D、Kp不匹配,等效阻尼不足降低H或增大D,重新做根轨迹分析
输出功率一遇事件就触顶限幅设小了,惯量支撑被截断预留功率余量,或降低H使理论支撑值小于限幅
多台PCS功率互相抵消各台H/基准容量不一致,本地频率不一统一场站等效H,基于并网点频率进行功率分配
RoCoF测量值忽大忽小PLL带宽不合适,频率纹波大调整锁相环带宽,采用窗口平均和事件触发检测

这些坑里,最隐蔽的是第一条。差分求导本身放大了PLL频率纹波,哪怕纹波只有0.01Hz,求导后也可能变成每秒好几赫兹的虚假变化率。我刚做这行时第一次联调,H设5秒,频率稳定得和直线一样,PCS有功输出却在那里上下乱跳,一看波形全是高频毛刺。后来在所有微分环节之前串了一阶惯性滤波,毛刺才压下去。

第二条也常被误解。有人调完虚拟惯量发现频率稳态偏差还是那么大,觉得算法没用。实际上惯量支撑是微分作用,稳态时df/dt为零,它天然归零,它解决的是“频率变化有多快”而不是“频率偏差有多大”。想减少稳态偏差,去动一次调频系数,别在H上较劲。

第三条对做并网考核的人特别重要。H越大RoCoF抑制越好,但这是以牺牲阻尼和恢复时间为代价的。真实系统里,电网调度考核往往同时有RoCoF上限、频率恢复时间、功率峰值几个指标,这些指标在H上存在相互矛盾的方向。现场判断的标准是:在满足全部考核指标的前提下,H取最小值——不是取能通过试验的最大值。

最后分享一个我个人的习惯:新项目虚拟惯量参数一律先设2~4秒起步,跑完频率扰动试验、波形确认稳定后再逐步往上加,每次加完留出至少半小时观察稳态出力分配和多机交互。别嫌慢,H这个东西,纸上算得再漂亮,到了现场一个滤波延时、一个限幅就能让设计值完全失真。把算例里的数值当成调试基线,而不是最终答案,这是我在好几个项目里摔打出来的经验。

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

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

立即咨询