前几天我搭完一个风储虚拟惯量调频仿真模型,跑完最后一条频率曲线的时候,反而有点平静——因为最乐观的预期被复现了:当风电渗透率到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/dt | 0.05~1s | 抑制初始 RoCoF | 转速下限、变流器容量 |
| 一次调频/下垂 | Δf | 1~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_B | 1000MVA | 标幺值计算基准 |
| 常规机组额定功率 | S_G | 800MW | 含调速器与励磁 |
| 常规机组惯性常数 | H_G | 4s | 典型火电值 |
| 风电场额定容量 | S_W | 200MW | 聚合等值单机 |
| 风电场等效惯性常数 | H_W | 3s | 按容量加权聚合 |
| 储能额定功率 | P_B | 30MW | 0.03 p.u. |
| 储能额定容量 | C_e | 15MWh | SOC 保护范围 10%~90% |
| 负荷初始值 | P_L0 | 0.8 p.u. | 800MW |
| 负荷突增量 | ΔP_L | 0.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_v | 4.5 | RoCoF 与转速跌落权衡 |
| 风机下垂系数 | K_p | 0.002 | 按调差率5%估算 |
| 储能惯量增益 | K_vs | 0.6 | 快速触发但不过冲 |
| 储能下垂系数 | K_d | 0.0015 | 容量约束内的持续支撑 |
| 频率测量滤波时间 | T_f | 0.1s | 毛刺与响应延迟折中 |
| 虚拟惯量退出斜坡 | T_exit | 5s | 防止二次跌落 |
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.43 | 0.20 | 0.11 |
| 频率最低点 Nadir(Hz) | 49.75 | 49.83 | 49.91 |
| 稳态频率偏差(Hz) | −0.20 | −0.19 | −0.12 |
| 恢复到49.95Hz的时间(s) | >20 | 约12 | 约5 |
| 风机转速最低点(p.u.) | 0.98 | 0.78 | 0.82 |
| 储能SOC最大下降(%) | 0 | 0 | 4 |
单看前三行,结论非常清晰:风机虚拟惯量把 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 也不是压得越低越能用。宁可把参数调保守一点,让曲线平缓一点,也别为了追求漂亮的跌落指标跑出一堆二次跌落。这个框架后续还能加风速时序、通讯延时、储能寿命模型继续扩展,但基础思路就是这样——虚拟惯量抢初始变化率,储能补最深的坑,退出斜坡防二次跌落,三条腿听起来都简单,合在一起跑顺就是这套模型真正值钱的地方。