1. 风电调频为什么成了绕不开的话题
做电力系统仿真的朋友,对三机九节点这个经典模型应该都不陌生。它虽然规模不大,但包含了完整的发电、输电、负荷环节,用来验证控制策略特别顺手。这几年我陆陆续续在Simulink里搭过不少风电并网的模型,最常被问到的一个问题是:风机明明在MPPT运行,为什么还要让它参与调频?
这个问题的答案,要从电力系统的频率特性说起。传统电网里,同步发电机的转子本身就是天然的储能元件,负荷突增时转子转速下降,动能释放出来支撑频率,这就是所谓的惯量响应。但双馈风机(DFIG)通过电力电子变流器并网,转子转速和电网频率在电气上是解耦的,风机对频率变化几乎“无感”。当风电渗透率越来越高,电网里旋转备用容量被挤占,系统惯量水平下降,频率跌落速度和深度都会恶化。所以,让风电在MPPT运行的同时具备调频能力,不是锦上添花,而是实实在在的刚需。
这篇文章就把我做三机九节点风电调频模型的过程完整拆开讲。从控制原理到Simulink搭建,从参数整定到结果分析,包括调试时踩过的坑,都给读者捋一遍。内容有一定深度,但我会尽量把关键环节讲透,哪怕你是刚接触Simulink和电力系统仿真的新手,跟着步骤走,也能把模型跑起来。
2. 控制框架选型:下垂控制和虚拟惯性该怎么配合
2.1 为什么选择“MPPT+调频”的双层结构
风电调频的方案有很多,有桨距角控制、转子动能控制、超速减载控制等等。但要注意,项目前提是“MPPT运行”,这意味着风机本身就工作在最大功率点,没有额外的功率备用。在这个前提下,能用的调频手段主要是转子动能控制和变流器有功控制。
我的做法是在DFIG的转子侧变流器控制里加了一个频率响应模块。正常工况下,风机按MPPT曲线输出有功功率;当系统频率偏离额定值,控制模块根据频率偏差计算出附加有功分量,叠加到MPPT指令上。这样做的好处是:稳态时不影响发电量,动态时又能快速响应频率变化,和火电机组的调频逻辑也能自然衔接。
渗透率选20%也是有讲究的。三机九节点系统的总装机容量在600MW左右,20%意味着风电机组容量约120MW。这个比例既能明显改变系统惯量水平,又不会让模型仿真出现数值稳定性问题。我做过的测试里,渗透率超过30%后,频率跌落深度会显著增加,对控制参数的要求也更苛刻,初学者容易把参数调到失稳。
2.2 两种控制策略的原理对比
下垂控制(Droop Control)和虚拟惯性控制(Virtual Inertia Control)是风电调频最常用的两种策略,它们的本质区别可以用一句话概括:下垂控制响应频率偏差,虚拟惯性控制响应频率变化率。
下垂控制的表达式很简单:
ΔP_droop = -K_d × Δf
其中K_d是下垂系数,Δf是频率偏差。它的特点是稳态时能提供一个与频率偏差成正比的有功增量,相当于模拟同步发电机的有差调频特性。频率跌得越多,风机补得越多。
虚拟惯性控制的表达式是:
ΔP_inertia = -K_i × df/dt
它只在频率变化过程中起作用,频率稳定下来后,这个附加分量会自动归零。它的作用是抑制频率变化速率,等效于给风机增加了一份额外的“虚拟转子动能”。
我把两种控制同时加进去了:
ΔP = -K_d × Δf - K_i × df/dt
这样下垂控制保证稳态频率偏差可控,虚拟惯性控制改善动态频率最低点(Nadir)。有点像汽车里的定速巡航加预碰撞系统,一个管稳态,一个管瞬态。
2.3 控制框图拆解:附加信号怎么接入变流器
具体到Simulink实现,我需要说明附加功率信号注入的位置。DFIG转子侧变流器的有功控制环通常是功率外环加电流内环,MPPT模块输出有功功率指令Pref,经过PI调节器生成转子电流参考值。调频附加信号就加在Pref这里:
Pref_final = Pref_mppt + ΔP_droop + ΔP_inertia
频率测量模块用PLL锁相环提取系统频率,然后经过一个低通滤波器滤除高频噪声。低通滤波器的截止频率我取20Hz左右,太低了会把频率信号衰减得太多,响应变慢;太高了又容易放大噪声引起功率抖动。这个参数我花了些时间调试,最终定在20Hz是性能和稳定性的折中。
这里要特别强调一个细节:附加的调频功率信号必须有上下限幅。我设置的是±0.1pu(以风机额定功率为基准),防止频率大幅度波动时风机过载。实际运行中曾遇到过频率骤降导致功率指令超过变流器限值的情况,加上限幅后系统稳定性明显改善。
3. 系统模型搭建:从九节点电网到风机接入
3.1 三机九节点系统的Simulink实现要点
三机九节点系统是经典算例,我直接用Simulink里的电力系统模块库搭的。三台同步发电机参数按经典模型设置,G1是平衡节点,G2和G3是PV节点。负载集中在节点5、6、8,具体的有功无功数值我就不列了,这些数据在相关文献里都能查到,关键是仿真步长和求解器的选择。
我试了好几组配置,最终用的是变步长ode23tb求解器,相对容差设为1e-4。这个选择不是随意的,因为模型里含有电力电子开关器件和快速控制环节,ode23tb对刚性系统的处理能力比较强,仿真速度也快。如果选ode45,仿真步长会被强制压得很小,一个20秒的仿真要跑很久;选ode15s的话,数值阻尼偏大,频率曲线的细节会丢失。
变压器采用饱和变压器模型,饱和特性对电压稳定性有影响,但不能省。这里花了不少精力校准变压器的饱和参数,否则空载合闸时励磁涌流会和仿真结果对不上。
3.2 DFIG风电机组建模:用平均模型还是详细模型
三机九节点系统本身不算复杂,但加上了风电场的变流器模型,整个系统的状态变量数量会激增。风机的建模方式直接影响仿真效率和准确性,我对比了三种方案:
第一种是详细开关模型,IGBT的开关过程都建模,精度最高但仿真速度极慢,20秒仿真跑一个下午都不一定完事,完全不实用。
第二种是平均模型,用受控电压源和受控电流源代替变流器,忽略开关过程但保留外特性,精度和速度的平衡点很好。我最终选的就是这个方案。
第三种是简化模型,直接把DFIG等效成一个受控有功源,调整控制参数只能改变功率输出。这种模型用来测试频率控制策略也可以,但少了变流器的响应延迟特性,调出来的参数拿到实际系统里不保证能用。
用平均模型还有一个好处:可以方便地修改变流器的控制参数而不需要重新初始化模型。调试过程中我频繁调整PI参数和调频系数,如果用详细开关模型,每次修改都要重新等待模型初始化,效率低下。
3.3 风电场的等值方案:单机等值还是多机等值
一个风电场往往有几十台风机,如果逐台建模,仿真规模会爆炸。我用的等值方案是单机等值法:把整个风场等效为一台大容量的DFIG。
等值的关键在于容量换算。20%渗透率对应120MW,我选择一台1.5MW的风机来等值。这里比较重要的地方是基准值设置,等值机的容量基准变成了120MW,要正确设置,否则标幺值下的控制参数会出差错。
具体来说:单台DFIG的参数是按1.5MW标幺的,等值后的容量变为原来的80倍,等效阻抗参数相应除以80,转动惯量乘以80,MPPT曲线按容量同比放缩。这些换算容易出错,我建议在模型里做一个参数计算表,明确每个量的换算关系,避免后续调试时在数值计算上浪费精力。
风速输入我用的是阶跃风加湍流风的组合。恒定风速时MPPT曲线对应的最优转速不变,风机始终运行在最大功率点,控制策略的变化才能被有效观察。
4. 参数整定方法与仿真结果分析
4.1 下垂系数和虚拟惯性系数的整定思路
参数整定是我花费时间最多的环节,也是最容易出问题的环节。下垂系数K_d取太大,风机有功输出很快达到限幅值,频率还没有恢复,功率已经饱和了;取太小,调频效果不明显。虚拟惯性系数K_i也有类似的矛盾,取大了容易引起功率振荡,取小了抑制频率变化率的效果减弱。
我的整定思路分两步走。
第一步,单独测试下垂控制。先令K_i=0,让系统在1秒时发生负荷阶跃,频率跌落。从小到大逐步增大K_d,观察系统频率最低点和稳态频率偏差的变化。我最终选择的K_d使稳态频率偏差比不加控制时改善了约30%。
第二步,在K_d固定后整定K_i。加入K_i后观察频率最低点的改善情况。K_i取0.5左右时比较合适。继续增大会出现功率指令的振荡现象,频率曲线虽然最低点更低,但低频振荡明显增加,得不偿失。
需要说明的是,这些参数是在20%渗透率下整定的。如果渗透率变化,参数也要相应调整。项目如果要求做渗透率对比,建议把K_d和K_i设成渗透率相关的函数,这样模型的可扩展性会好很多。
4.2 核心仿真场景与结果解读
我的仿真场景设计如下:
- 0秒到10秒:系统稳定运行,所有发电机按MPPT/AGC指令输出功率
- 10秒时刻:节点8的负荷突增50MW(约为总负荷的10%)
- 仿真时长25秒
不加任何调频控制时,系统频率的最低点约为49.2Hz,稳态频率为49.7Hz。加入下垂控制后,频率最低点变为49.4Hz,稳态频率恢复到了49.8Hz。再加入虚拟惯性控制,频率最低点提升到了49.5Hz,但稳态频率基本不变——这符合理论预期,虚拟惯性只在动态过程中起作用。
这里要特别说一个观察技巧:频率曲线不能只看最低点,还要看恢复速率。我记录的一个典型数据是:不加控制时,频率从最低点恢复到49.9Hz大约需要8秒;加上双重控制后,只需要5秒左右。这个恢复速率的提升对系统稳定性的意义不亚于最低点的改善。
4.3 风机有功输出的变化规律
风机有功输出的变化曲线同样很说明问题。负荷突增的瞬间,频率开始下跌,调频附加信号迅速增加到正的最大值附近,风机有功出力跃升约8%,随后随着频率的恢复逐渐回落到MPPT水平。
这个“快速上升、缓慢回落”的过程,本质上是风机动能释放与回购的体现。虚拟惯性控制对应的是动能释放阶段,转子转速下降,风机把一部分动能转化为电功率注入电网;下垂控制对应的是持续支撑阶段,维持一个额外的功率输出。频率恢复后,风机转子需要从电网吸收能量重新加速到最优转速,所以有功输出会短暂低于MPPT值。
如果只看有功曲线,可能觉得这个现象像是控制不稳定,但实际上这是转子动能控制的固有特征。仿真时如果观察到这个现象,不用慌张,这是正确的物理过程。
5. 调试心得:我在搭建过程中踩过的坑
5.1 频率测量模块的延时问题
频率测量的准确性直接影响调频效果。我一开始用的PLL带宽设得比较低,导致频率测量存在约100ms的延迟。这个延迟在静态分析中看不出问题,但动态仿真中会明显削弱虚拟惯性控制的效果。后来我把PLL带宽提高到50Hz,频率响应的延时就基本可以忽略了。模块参数在相关文档里可以查到,按照说明书调整即可。
5.2 限幅器切在哪个位置,效果完全不同
限幅器的位置,看起来是个小细节,但实际上影响很大。我最初的方案是在MPPT指令和调频附加信号叠加之后再限幅,总功率不超过1.1pu。测试中发现一个比较隐蔽的问题:频率跌落时MPPT指令本身就在增大,调频信号叠加后很容易触发上限,导致调频功率被截断。
后来我调整了策略:先对调频信号本身限幅(±0.1pu),叠加后总功率再限幅(1.1pu)。这样即使MPPT指令接近最大功率,调频信号仍然能够输出,调频效果有保障。这个细节值得留意,因为绝大多数的教材和论文都不会写到这里。
5.3 初始化顺序:先稳态后暂态
Simulink仿真最大的坑在于初始化优先级不正确时会出现非物理的振荡。我第一次搭建时,直接在稳态工作点开始仿真,结果初始0.1秒内频率和功率就出现了大幅振荡,完全不符合实际物理过程。
解决方案是用Simulink的“Powergui”工具进行稳态初始化。先把负荷设为初值,让系统稳定运行5秒后,再在10秒时施加负荷阶跃。这样系统在扰动前已经处于真实的稳态工作点,仿真结果才是可信的。
5.4 关于参数灵敏度的几点经验
调试过程中我记录了一些参数灵敏度的观察数据。频率测量滤波器的截止频率从20Hz调整到10Hz后,虚拟惯性控制的相位滞后增大,系统的阻尼特性明显变差;从20Hz增加到50Hz后,频率信号噪声增大,功率指令开始出现小幅高频抖动。下垂系数的变化对系统的影响则是单调的,但过高的下垂系数会让风机的功率限幅器频繁动作。
惯性时间常数的设定也值得关注。我设置了5秒,如果设置的惯量时间常数太小,虚拟惯性控制的效果会大打折扣;如果太大,频率响应会过于缓慢。
这些调试经验有一个共性:调频控制的参数不像MPPT参数那样有明确的解析最优解,必须在具体系统中多次尝试。保存不同参数组合的仿真结果,多对比几条曲线,比盲目相信经验值靠谱得多。
6. 后续扩展方向与个人总结
模型搭好之后,扩展空间其实很大。从我个人经验看,往这几个方向走都挺顺:
- 加电池储能配合风电调频,对比纯风机调频的差异
- 把单机等值拆成多机等值,研究风电场内部功率分配对调频效果的影响
- 考虑风速随机性下的调频能力评估,这需要配合蒙特卡洛仿真
- 把调频控制从DFIG推广到永磁直驱风机,对比不同机型调频特性的差异
主要心得还是要重申两点:第一,20%渗透率的MPPT运行风机完全可以具备良好的调频能力,关键在于控制策略的参数匹配和限幅设计;第二,Simulink建模的细节决定了仿真结果的可靠性,初始化顺序、频率测量、限幅位置这些“不起眼”的环节恰恰是最容易出错的地方。
最后分享一个我做了很多模型才养成的习惯:每一个参数都做好注释,每一个模块都标注单位和标幺基准。项目做多了你会发现,模型跑通只是一个开始,能让人快速看懂、方便修改的模型才算真正完成。参数满天飞又不留注释的模型,过两个月再打开,连自己都要猜半天。