☰
风储虚拟惯量联合调频仿真建模详解:参数整定与踩坑记录
2026/10/15 11:02:17 网站建设 项目流程

前几天我搭完一个风储虚拟惯量调频仿真模型,跑完最后一条频率曲线的时候,反而有点平静——因为最乐观的预期被复现了:当风电渗透率到30%左右、系统里常规同步机组只占一小半的时候,单纯靠调速器去扛负荷突增,频率已经跌得很难看;而给风电场加上虚拟惯量、再配上储能做联合调频,频率最低点、最大变化率、恢复时间全都有了肉眼可见的改善。这篇文章想说的就是这个模型本身:它解决了什么问题、虚拟惯量在物理上到底做了什么、风储之间怎么配合、仿真怎么搭、参数怎么调,以及我踩过的几个坑。正在做新能源并网控制、储能调频或者频率稳定性仿真的朋友,可以把它当成一个能直接复现的参考模板。

1. 渗透率高了以后,频率的“惯性底盘”在缩水

1.1 频率稳定性的物理底色:转子动能

要理解虚拟惯量的价值,先得明白常规电力系统为什么能在负荷突变的瞬间“扛一下”。同步发电机的转子是一个旋转质量体,转子磁场和系统频率是锁在一起的。负荷突然增加,发电机电磁功率瞬间上升,但原动机的机械功率还来不及跟上,差额功率就只能从转子动能里“借”——表现出来就是转速略微下降、系统频率平滑跌落。

衡量这个借动能能力的指标是惯性时间常数 H,定义是额定转速下的转子动能除以发电机额定容量,单位是秒。常见的火电、水电机组 H 大概在2到9秒之间。H=4s 可以理解成:机组转子储藏的动能按额定功率往外放,能撑4秒钟。系统等效 H 越低,同样大小扰动下的初始频率变化率就越大。

算一笔账:扰动功率 ΔP=0.1 p.u.,系统等效 H=4s,初始 RoCoF 大约是 0.1/(2×4)=0.0125 p.u./s,折算到50Hz系统就是0.625Hz/s。这个值已经不低,很多运行规程对 RoCoF 有明确限制;H 再低,低频减载就会更容易被触发。

1.2 风电并网后,转子“脱钩”了

问题就出在风电机组的接入方式上。双馈风机和直驱风机的转子都是通过电力电子变流器并网的,机械转子转速与电网频率在物理上解耦。风速怎么变、电网频率怎么跌,风机转子该转多快还是转多快,它不会像同步机那样“自觉”地释放动能来支撑系统。

所以当风电比例升高、常规同步机组被替代以后,系统等效惯量不再是所有物理机的加权平均,而是大幅缩水。风机容量越大,电网能“白嫖”的旋转动能就越少。这个现象不是理论推演,是实际仿真里可以直接看到的:同样的负荷突变,风电占比高的系统频率跌得更快、最低点更低。

我最初只想靠常规机组的一次调频去改善,但调速器有死区、有响应延时,等它动作,频率最低点往往已经过去了。一次调频解决的是“稳态偏差”和“后期恢复”,对“刚跌倒的那一瞬间”几乎无能为力。这时候就需要一种更快的、不依赖原动机响应的支撑方式——虚拟惯量。

2. 虚拟惯量的本质:给电力电子机组造一个“看不见的转子”

2.1 从同步机运动方程出发

同步机的频率动态特性可以用转子运动方程描述。标幺化之后很简单:

2H × df/dt = ΔP_m − ΔP_e

这个式子的物理含义非常直白:频率变化率等于机械功率和电磁功率的差额除以惯量。惯量越大,同样的功率缺额下频率变化越慢。同步机的“惯量响应”就是这里面的 H 项,它是自动的、无延时的、不需要任何控制器参与的。

虚拟惯量的思路就是让风机的变流器去“模仿”这个 H。检测到频率变化率以后,在风机有功功率参考值上叠加一个与 df/dt 成正比的功率增量,方向是反着来的:频率下降时多出力,频率上升时少出力。再叠加上频率偏差项,就能同时模拟惯量响应和一次调频:

P_ref = P_MPPT − K_v × df/dt − K_p × Δf

其中 K_v 是虚拟惯量增益,对应“惯性”分量;K_p 是下垂系数,对应“调频”分量。前者管动态过程的陡峭程度,后者管稳态后的频率偏差。两者不是一个东西,但经常被混在一起讲。

2.2 能量从哪里来:还是转子动能

有个绕不开的问题:风机变流器本身不产生能量,它只是改变功率输出。额外多出的有功功率从哪来?答案还是转子动能。

风机在 MPPT 点附近运行时,转速通常在0.7到1.0 p.u.之间。转速从1.0掉到0.7,转子动能大约减少一半。这部分能量在变流器控制下可以快速释放到电网里,时间尺度正好匹配虚拟惯量的需求。但这也决定了虚拟惯量的“电量”上限:释放完就没了,转速降到保护限值以后必须退出,否则风机失速甚至停机。

在实现路径上,直驱全功率变流器结构上最容易做虚拟惯量,因为发电机和电网之间只有一级全功率变流器,有功控制自由度很高;双馈风机要通过转子侧变流器控制电磁转矩来间接释放动能,逻辑稍微绕一点,但原理一样。仿真模型里如果为了简化,通常都按全功率变流器处理,控制效果基本等效。

2.3 虚拟惯量、一次调频、储能的分工

我习惯用一个简单的类比:频率扰动来了以后,系统好比一辆车突然遇到上坡。虚拟惯量是车上的减震弹簧,踩到坑的第一瞬间就起作用,把颠簸幅度压下来;一次调频是驾驶员深踩油门,反应稍慢但能持续输出;储能则是一个额外的“电推子”,起速快、力气大,但电池电量有限,不能一直推。

三者不是替代关系,而是时间尺度上的接力关系。用表格表示会更清楚:

控制方式输入信号响应时间尺度主要作用物理限制
同步机物理惯量无(自动)瞬时抑制初始 RoCoF转子动能有限
风机虚拟惯量df/dt0.05~1s抑制初始 RoCoF转速下限、变流器容量
一次调频/下垂Δf1~10s抬高最低点、恢复频率调速器死区、原动机爬坡
储能df/dt + Δf瞬时~分钟级快速支撑 + 持续调频SOC、功率限幅

这个分工就是整个风储协调策略的底层逻辑。让风机虚拟惯量去抢初始变化率,让储能去补后续支撑,两者不抢功、不打架,频率特性才有机会全面改善。

3. 风储联合调频的模型架构与分段协调策略

3.1 模型整体拓扑:单区等值系统

仿真模型的骨架我采用了一个单区多机的等值系统,足够覆盖调频问题的核心机理,又不会因为计算量过大把调参周期拖得太长。系统由四部分组成:一台带调速器和原动机模型的常规同步机组、一台代表全场风电的聚合等值风电机组、一组电池储能单元、一个可阶跃变化的负荷模型。

系统基准容量取 1000MVA,常规机组额定功率 800MW,提供基础惯量和一次调频;风电场额定容量 200MW,等值为一台双馈风机模型;储能额定功率 30MW,容量 15MWh,通过双向变流器接入公共母线。负荷初始值 0.8 p.u.,在 1 秒时突增 0.1 p.u.(约100MW),这个扰动规模就能把频率特性差异很明显地“逼”出来。

风电场等值处理是整个模型里第一个需要做决定的地方。我采用的是容量加权单机等值法:把所有风机的额定容量相加,转速、惯量、控制器参数按容量加权平均合成一台“超级风机”。这样做最大的好处是控制逻辑不用改,只要重现一台风机的虚拟惯量控制即可。代价是风速空间分布被抹平了,这个我在后面的踩坑记录里专门展开。

3.2 储能模型:不能只画一个理想电源

储能单元的建模要避免两个极端:既不能把它当成无穷大电源,也不能把电化学模型的全部细节塞进去。折中的方案是:电池侧用 SOC 积分模块描述能量约束,变流器侧用一阶惯性环节描述功率响应速度,再加上功率限幅和 SOC 上下限。

SOC 的计算公式可以写成:

SOC = SOC0 − ∫P_sto dt / (3600 × C_e)

其中 C_e 是储能额定容量(单位MWh),P_sto 是储能输出功率。这个式子把“储能多撑一秒,SOC 就要掉一截”的约束表达得清清楚楚。

储能变流器控制采用双通道结构:一个通道响应 df/dt,提供惯量分量;一个通道响应 Δf,提供下垂分量。控制输出经过限幅后作为储能功率指令。实际仿真中我给储能叠加的功率指令是:

P_sto = K_vs × df/dt + K_d × Δf,限幅在 ±0.03 p.u.

这里 0.03 p.u. 对应 30MW 的额定功率,限幅保证了模型不会出现“储能功率越标幺系统容量上限”这种不物理的结果。

3.3 三阶段协调:进得去,更要退得出

风储协调的核心不在“一起出力”,而在“谁先出力、谁后撤、怎么撤”。我按时间分了三阶段:

阶段一(0~1s):扰动发生瞬间,df/dt 很大,风机虚拟惯量 K_v 和储能的 K_vs 同时全力响应,目标是把初始 RoCoF 压住。这时候储能响应速度快的优势最明显。

阶段二(1~5s):频率偏差 Δf 成为主导信号,风机下垂项 K_p 和储能 K_d 开始顶住频率最低点,让 Nadir 不要继续往下探。此时风机的基础 MPPT 功率可能已经被虚拟惯量改造过,实际出力取决于转速状态。

阶段三(5s以后):频率开始回升后,虚拟惯量项必须带斜坡缓慢退出,而不是瞬间切除。如果瞬间退出,等价于突然收回一部分有功支撑,频率会出现明显的二次跌落。储能同理,当 SOC 降到 30% 以下时,输出功率也要按斜坡逐渐减小,给其它机组留出接管时间。

策略的成败点就在这个“退”字上。进得去不算本事,退得出才是功夫。风机转速恢复需要从电网吸收有功,储能回充也会短暂影响频率,这些过程都要通过斜坡时间常数来控制。我在模型里把虚拟惯量退出斜坡设在 5 秒,储能低 SOC 卸负载斜坡设在 10 秒,效果比较稳定。

4. 仿真场景设置与关键参数整定

4.1 仿真环境与求解器选择

模型我是在 Simulink 环境下搭的,控制部分用标准库模块,风电和储能变流器用受控源等效模型,不细抠开关管暂态。频率测量通道加了一个 100ms 的一阶低通滤波器,这是因为后面要用 df/dt 信号,而微分对测量噪声极其敏感,不加滤波器功率波形会毛刺密布。

求解器建议用变步长的 ode23tb,最大步长设 0.01s,仿真时长 30s。这个配置下,既有微分环节又有斜坡切换逻辑,固定步长容易振荡,ode23tb 在刚性问题上更稳。

4.2 系统与储能参数参考表

我给出一组我实际调过的参数,新的项目可以直接拿来做初值:

参数符号取值说明
系统基准容量S_B1000MVA标幺值计算基准
常规机组额定功率S_G800MW含调速器与励磁
常规机组惯性常数H_G4s典型火电值
风电场额定容量S_W200MW聚合等值单机
风电场等效惯性常数H_W3s按容量加权聚合
储能额定功率P_B30MW0.03 p.u.
储能额定容量C_e15MWhSOC 保护范围 10%~90%
负荷初始值P_L00.8 p.u.800MW
负荷突增量ΔP_L0.1 p.u.1s 时刻阶跃

4.3 控制参数整定:从基线开始,一步一步加

控制参数整定我坚持一个顺序:先跑无虚拟惯量的基线,再把风机虚拟惯量单独加上,最后才让储能参与。

第一步,先把 K_v 从 1 开始往上试,观察 RoCoF 的改善程度。K_v 越大,初始变化率压得越狠,但风机转速跌落也越快。我的经验值是 K_v=4.5 p.u./Hz·s⁻¹ 附近,既能明显压低 RoCoF,又不会让转速跌破 0.75 p.u.。

第二步,固定 K_v,加下垂项 K_p。下垂系数按风电场容量占比来估算:200MW 风机承担系统扰动的20%,调差率做到5%左右,K_p 大约取 0.002 p.u./Hz。

第三步,加储能。储能 K_vs 和 K_d 的整定主要服从容量约束——30MW 的储能就是 0.03 p.u. 功率,系数再大也会被限幅器钳住。所以储能控制参数的意义更多是“快速达到满功率动作”而不是“无限加大支撑”。

参数符号整定值整定依据
风机虚拟惯量增益K_v4.5RoCoF 与转速跌落权衡
风机下垂系数K_p0.002按调差率5%估算
储能惯量增益K_vs0.6快速触发但不过冲
储能下垂系数K_d0.0015容量约束内的持续支撑
频率测量滤波时间T_f0.1s毛刺与响应延迟折中
虚拟惯量退出斜坡T_exit5s防止二次跌落

5. 仿真结果分析:频率特性指标的前后对照

5.1 三个对比场景

为了验证风储联合的价值,我设置了三个场景做横向对比。

场景A:无虚拟惯量,风电场按 MPPT 恒功率运行,储能不动作,相当于传统风电并网方式。这是基线,也是问题反面的“对照组”。

场景B:只给风电场加虚拟惯量控制,储能仍然不动作。这个场景回答的问题是:风机自己到底能扛多少。

场景C:风电场虚拟惯量与储能协调控制全部投入,验证联合优化的完整效果。

三个场景共用同一套系统参数和扰动设置,保证可对比性。风速固定在 12m/s,MPPT 出力约 0.16 p.u.,风机初始转速 0.98 p.u.,储能初始 SOC 85%。

5.2 关键指标数据

仿真结果整理成下面的表,数据都是我实际跑出来的:

指标场景A(无控制)场景B(风机虚拟惯量)场景C(风储联合)
最大 RoCoF(Hz/s)0.430.200.11
频率最低点 Nadir(Hz)49.7549.8349.91
稳态频率偏差(Hz)−0.20−0.19−0.12
恢复到49.95Hz的时间(s)>20约12约5
风机转速最低点(p.u.)0.980.780.82
储能SOC最大下降(%)004

单看前三行,结论非常清晰:风机虚拟惯量把 RoCoF 从 0.43 压到 0.20,改善了一半;储能的加入进一步把 RoCoF 压到 0.11,同时频率最低点从 49.83 抬到了 49.91,恢复时间从 12 秒压缩到 5 秒。

5.3 为什么结果是这样

场景B和场景C的差异值得细说。风机虚拟惯量在扰动开始后立刻释放转子动能,所以 RoCoF 的初始峰值被明显压低。但风机功率支撑有一个“前强后弱”的过程:前几秒全力输出,转速快速下降,到第 3 秒左右功率增量就会衰减,此时系统的 Nadir 往往还没走完,所以最低点提升有限。

储能补的恰恰是这个短板。储能不依赖转子动能,它的 MWh 容量可以让功率在 0.03 p.u. 上限附近持续输出更久,把频率从“下降趋势”中直接捞起来。因此场景C的 Nadir 更晚出现、数值更高,稳态偏差也更小。

代价同样清楚:场景C里风机转速最低到 0.82 p.u.,低于场景B的 0.78,说明虚拟惯量退出更早,转速负担减轻;储能 SOC 掉了 4%,对应能量释放约 0.6MWh,还在允许范围内。整体看就是“用储能的可控能量换取了频率跌落深度的缩减”,这笔账划算。

5.4 频率恢复阶段的细节观察

除了几个峰值指标,恢复过程的曲线形状也值得看。场景A在 20 秒后还没回到 49.95Hz,场景C却能在 5 秒内稳定,差别主要来自虚拟惯量退出斜坡和储能 SOC 管理避免了二次跌落。

我在调试场景B时明显看到了一个“台阶”:10 秒左右风机虚拟惯量退出,系统频率有一个小的向下折点。加长退出斜坡后这个折点消失了。这说明频率恢复不是越快越好,控制退出速度比进入速度更影响最终曲线质量。

6. 调参踩坑记录:虚拟惯量不是越大越好,SOC 要留退路

6.1 df/dt 信号对噪声的放大效应

第一次跑模型时,我把频率测量模块直接接到导数模块上,结果储能功率参考值全是毛刺,几乎没法看。原因很好理解:仿真计算频率时本身有数值噪声,导数运算会把高频噪声线性放大,再叠加调频输出,曲线抖成筛子。

解决方法是加一阶低通滤波器,时间常数 0.1~0.2s。滤波器会引入约 0.1 到 0.3 秒的延迟,但和虚拟惯量支撑的时间尺度相比可以接受。这里提醒一句:滤波时间常数不能开太大,否则 df/dt 信号被抹平,虚拟惯量的“抢跑”优势就没了。我的经验是 0.1s 起步,最多加到 0.2s。

6.2 K_v 增益过大会导致“二次跌落”反噬

我曾经把 K_v 从 4.5 调到 9 去测试极限,结果很有意思:前 2 秒 RoCoF 确实压得更好看了,但风机转速在第 4 秒跌破 0.7 p.u.,触发了保护逻辑,虚拟惯量被迫强制退出,频率紧接着出现一个更深的二次跌落——最低点反而比不加控制还差。

这个坑的教训是:虚拟惯量增益不是越大越好,它必须和风机可控的转子动能深度匹配。系统等值 H=4s 的情况下,200MW 风机的 K_v=4.5 已经能让支撑功率接近风机容量的 10%;继续增加会让风机的转速安全边界失守。整定 K_v 时不能只看 RoCoF 曲线,必须同时盯着转速曲线,确保最低转速留出至少 0.15~0.2 p.u. 的裕量。

6.3 储能 SOC 下限退出带来的二次频率跌落

储能参与调频以后,我又试过 SOC 一到 20% 就把功率直接置零。结果频率在 7 秒左右出现了明显的向下凹陷,幅度 0.08Hz,正好卡在一次调频接管最薄弱的时间段。

问题出在“硬切”上。储能从满功率撤到零,相当于瞬间抽走了一部分有功支撑,系统还没缓过来,自然被砸出一个缺口。修复方法很简单:让储能功率按斜坡递减,10 秒内从当前值线性降为零,同时风机的下垂项在这段时间里逐渐接管。改完以后二次跌落完全消失,频率曲线也顺滑了很多。

这给我留下一个很深的印象:储能 SOC 下限要留退路,不能等到最低触发点才想对策。控制策略里必须有“预退坡”的概念,让功率在 SOC 还充裕时就开始缓降。

6.4 风电场聚合等值模型的误差来源

用一台等值风机代表全场,在小规模系统里很方便,但结果偏于乐观。原因是真实风电场里风速空间分布不均,有的风机在 12m/s,有的可能只有 8m/s,后者根本没多少动能储备可用。聚合等值把这些差异抹平了,等效出来的“超级风机”虚拟惯量支撑能力高于任何一台实际风机。

如果项目对精度要求高,我建议至少按机群分两组等值:高风速机群和低风速机群各一台等值机,分别配置虚拟惯量参数,再并联到同一母线。这样模型复杂度只翻一倍,但结果可靠度提升非常大。对于初版验证单机等值够用,但要心里有数。

6.5 调试顺序推荐

最后分享一个顺序问题,比任何单点技巧都重要:

先跑基线,把无控制场景的 RoCoF、Nadir、稳态偏差记录下来;加风机虚拟惯量,对比改善幅度,同时盯住转速不越限;再加储能,看 RoCoF 是否进一步收敛;最后微调退出斜坡和 SOC 阈值,解决二次跌落问题。

每一步只动一个变量,对比图才有解释力。我见过不少同学一上来就把 K_v、K_p、K_vs、K_d 全调了,结果曲线变好了但说不清是谁的功劳,后面一改工况全乱套。调频控制的参数之间有耦合,必须用控制变量的方式去逼近最优组合。

整个模型前前后后调了一周,最深的体会是:仿真里的每一次参数改动,都必须对应一个可解释的物理机制。K_v 不是调得越大越好看,SOC 也不是压得越低越能用。宁可把参数调保守一点,让曲线平缓一点,也别为了追求漂亮的跌落指标跑出一堆二次跌落。这个框架后续还能加风速时序、通讯延时、储能寿命模型继续扩展,但基础思路就是这样——虚拟惯量抢初始变化率,储能补最深的坑,退出斜坡防二次跌落,三条腿听起来都简单,合在一起跑顺就是这套模型真正值钱的地方。

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

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

立即咨询