双馈风机调频控制详解:从虚拟惯性到变桨,PowerFactory仿真实践
双馈风机调频这个话题这几年在新能源并网圈儿里越来越绕不开。只要做风力发电仿真或者并网友好性分析DIgSILENT PowerFactory里面对DFIG双馈异步发电机建模和调频控制基本是必选项。原因很简单双馈风机占了陆上风电的大头而电网对风机参与频率调节的需求已经从“可选”变成了“刚性要求”。这篇博文我就把DFIG参与调频的几条主路——虚拟惯性、下垂控制、超速减载、变桨控制——从原理到DIgSILENT中的实现方式完整过一遍包括我自己在仿真和现场数据对照中踩过的坑和调参经验。适合正在做风机并网仿真、懂一点PowerFactory但还没完全理清调频控制逻辑的同行也适合想入门风电调频策略的学生。1. 为什么双馈风机一定要参与调频从电网需求谈起在高比例风电接入之前系统频率基本靠同步机组的一次调频和二次调频搞定。但风电占比上来以后事情变了风机本身通过电力电子变流器并网转子转速与电网频率解耦你电网频率是50Hz还是49.8Hz风机几乎无感不会像同步机那样自动释放转子动能。这意味着同样的有功缺额下频率跌落速度更快、跌落深度更大。所以电网调度规程越来越明确要求风电场具备类似同步机的一次调频能力至少要有惯量响应和下垂响应。DFIG跟直驱风机还不一样它转子侧通过变流器励磁定子直接并网。这个结构给了DFIG两个很有意思的特性一个是转子动能可以快速释放变流器控制响应比机械系统快得多另一个是桨距角可以调节有功备用。所以DFIG调频策略天然分成“电控快通道”和“机械慢通道”两类。虚拟惯性、下垂控制属于电控快通道超速减载、变桨控制属于机械备用通道。1.1 高比例风电带来的频率稳定挑战我举个例子你就有体感了。假设某区域电网负荷突然增加100MW如果原来全是同步机系统频率下降斜率大约由系统等效惯量决定惯量时间常数通常在4到8秒频率不会瞬间跳水。但要是这个电网里风电占了一半以上等效惯量可能被拉到2秒以下同样的扰动频率下降速率直接翻倍。更麻烦的是风电出力的不确定性本身就是扰动源比如阵风导致全场输出先涨后跌频率曲线就会出现明显的“先低频再恢复”的过程单纯靠同步机兜底压力非常大。所以现代并网规范里对风电场调频的要求通常分为两类一类是“主动支撑”即频率异常时自动增加有功输出另一类是“被动适应”即频率异常时不能退出运行要有一定的耐受能力。DFIG调频策略主要针对前者。主动支撑里又分惯量响应提供瞬时功率对应频率变化率和一次调频持续功率对应频率偏差这就引出了虚拟惯性和下垂控制。1.2 DFIG与传统同步机组的本质区别要把DFIG调频策略做好必须理解它的“双通道”特性。同步机是转子绕组和定子磁场刚性耦合频率变化时转子转速跟着变转子动能自动“吐出来”或“吸进去”。DFIG的定子并网、转子接变流器转子电频率和转速、电网频率之间的关系是f_r n_f * f_m f_s这种同步关系但机械转速和电网频率之间没有直接刚性问题转速可以在一定范围内自由调整。正常MPPT运行时转子转速跟随风速变化差不多运行在0.7到1.2 p.u.之间。这个解耦特性是优点也是缺点。优点是你可以不依赖机械惯性用变流器控制快速改变电磁转矩让输出有功暂时越过MPPT点释放转子动能。缺点是“释放多少、持续多久”完全靠控制算法做出来不像同步机是物理性的自动响应一旦控制参数设置不好可能出现频率响应后“功率塌陷”或者二次跌落风险。理解这一点后面再看虚拟惯性、下垂控制的配合就会清晰很多。2. 三大类调频控制策略的运行原理与优劣拆解DFIG的调频策略不是凭空拍脑袋来的每一类都对应同步机组的某一项物理特性目的就是让电网“看起来”风机也有一台同步机的那种责任感。下面分别拆开讲。2.1 虚拟惯性控制用变流器模拟转子动能虚拟惯性的核心逻辑是当系统频率变化率df/dt较大时立刻附加一个与频率变化率成正比的有功增量方向相反。公式上就是ΔP -K_inertia * df/dt。K取正值时频率下降df/dt为负则功率增加。这个附加功率从哪里来物理上就是转子动能。因为DFIG的转子转速是可变的电磁转矩临时增大转速会下降转子释放动能。虚拟惯量响应的时间尺度非常短一般在几百毫秒到一两秒。它的意义是“在频率最低点到来之前提前刹车”不是说把频率彻底拉回来。实际仿真中我见过有人把虚拟惯性系数设得特别大想用这个策略扛住所有频率跌落结果就是转速跌到最低转速保护动作变流器限流输出功率反而突降频率二次跌落更严重。所以虚拟惯性只能作为“初始支撑”需和控制器的功率恢复逻辑配合。在DIgSILENT中实现虚拟惯性通常有两种方式一是直接修改DFIG的有功控制参考值在MPPT参考功率上叠加一个微分项二是在内环电流控制器层面附加一个频率变化率前馈。前者更常用因为容易调参数也容易看到仿真曲线变化。2.2 下垂控制靠近同步机的一次调频下垂控制对应同步机的调差特性。同步机转子转速随频率变化稳态时有功功率和频率偏差成比例关系。DFIG做下垂控制就等于给风机赋予一条下垂特性曲线当电网频率低于额定值时在MPPT功率基础上增加ΔP -K_droop * (f - f_ref)。这里的K_droop可以看成是倒调差系数。关键问题是下垂控制需要有功备用。如果你风机本来就满发没有任何余量下垂控制就会指令一个超出风力可提供功率的参考值这时变流器要么限功率、要么转速快速下降。所以下垂控制必须和超速减载或者变桨配合把风机运行点从MPPT点移到低于MPPT的某个减载点留出功率裕量。这也是为什么很多文献里把“下垂减载”绑定在一起说。下垂控制的时间尺度比虚拟惯量长从几秒到几十秒对应一次调频的持续支撑。它不需要转速快速变化只要风机有备用就可以长时间保持增发功率。在参数整定时下垂系数一般用“调差率”来定义比如2%到5%。调差率越小同样频率偏差下增发功率越多但容易造成风机之间功率分配不均。2.3 超速减载与变桨控制备用功率的来源没有备用的调频策略全是空谈。DFIG的备用功率可以通过两种方式实现超速减载和变桨减载。超速减载顾名思义就是让转子转速运行在MPPT对应的最优转速之上。例如最优叶尖速比对应转速1.0 p.u.我把转速提到1.13 p.u.风能利用系数Cp就会从最大值降到较低值输出功率低于MPPT功率空出来的那部分就是减载功率。这个策略响应速度快因为变流器可以快调但它受转速上限限制转速最高不能超过1.2或1.25 p.u.不同机型不一样而且风速较低时超速空间不足减载能力很有限。变桨控制减载则是通过增大桨距角让叶片在风中“打滑”降低气动功率捕获。比如正常0度桨距角时候Cp是最大值往负的方向理解就是增桨距Cp降下来输出功率也降下来。变桨减载可以覆盖全风速段但响应速度慢液压变桨系统动作时间通常要几百毫秒到秒级而且频繁变桨会加剧机械疲劳。工程上常用“协调减载”低风速段用超速减载高风速段用变桨减载中间过渡区两者协调。2.4 三种策略的配合关系时间尺度与能量来源这三条策略不是互相替代的而是按时间前后配合的。虚拟惯性作用在频率跌落初期0~2s利用转子动能提供最大瞬时冲击力下垂控制作用在2~30s甚至更长利用超速减载或者变桨留出的功率裕量超速减载和变桨控制更像是“后勤部门”它们决定了风机能有多大持续调频能力。一个完整的DFIG调频控制结构应该是MPPT参考功率 减载量 - 虚拟惯性附加量 - 下垂附加量并且这个总的功率参考值要经过转速和桨距角限制逻辑防止超速或者限流。在DIgSILENT里做仿真时别贪心一开始就把三种策略全耦合进一个模型。建议先单独验证虚拟惯性响应曲线再单独验证下垂控制最后再组合组合时还要看转速是否越限、功率恢复阶段是否产生二次冲击。这是我自己在项目里总结的最稳的路径。3. DIgSILENT PowerFactory里的建模与参数设置很多人拿到PowerFactory就翻模型库找“DFIG”模板其实PowerFactory里自带的DFIG模型已经很成熟关键是怎么把调频控制外环加进去。下面按步骤走。3.1 模型选型与基础参数准备PowerFactory里面常用的是User Defined Model结合内置的DSLDIgSILENT Simulation Language来写控制逻辑。先要确定DFIG的电气模型一般用异步发电机 变频器的综合模型也就是GENERATOR TYPE里面选择Asynchronous Machine的Doubly-fed模式变流器则用PWM Converter或者直接用等效可控电压源。对于调频控制来说电气细节不需要精确到每个开关管重点在控制参考值如何修改。准备以下基础参数额定功率比如某机型2MW、额定电压、定转子匝比、定子电阻漏抗、转子电阻漏抗、励磁电抗、变流器最大电流限值、转速范围通常0.7~1.2p.u.、以及风轮机的气动参数Cp曲线、λ曲线、桨距角范围。如果你手头没有真实机型参数可以用PowerFactory自带的示例DFIG模型改再把调频控制外环挂进去先跑通逻辑再替换真实参数。3.2 加入虚拟惯性控制环在PowerFactory的DFIG模型里有功控制通常是一个输入为Pref的环节它被送到变流器的电流控制器。我们需要修改这个Pref。具体做法是在DFIG的Frame里新建一个DSL模型输入信号是系统频率f_sys可以从电网母线测量输出信号dP_vin叠加到Pref。DSL代码核心就一行dP -K_vir * (df / dt)不过PowerFactory的语法里对连续信号求导可以用der(t)或者通过一阶惯性环节近似求导。我建议用一阶惯性环节近似dP -K_vir * (f - f_delay) / T_filter其中f_delay lagger(f_sys, T_filter)。这样相当于一个带滤波的微分器。T_filter通常取0.1到0.5秒太大则响应滞后太小则容易引入噪声。在DSL中你还需要引入触发条件比如if (df/dt -0.05) then enable防止正常微小频率波动时频繁动作。具体触发判据根据并网规范设定也可以用频率偏差超过死区如±0.03Hz来启动。3.3 加入下垂控制环下垂控制是一个比例环节直接把频率偏差乘下垂系数。但注意下垂控制一旦启动风机的功率参考值可能超过减载点的功率所以还要在输出端限幅。DSL里可以这样写dP_droop -K_droop * (f_sys - f_ref) if abs(f_sys - f_ref) deadband then dP_droop 0 lim dP_droop to [0, P_reserve]这里的P_reserve就是减载储备功率。比如风机减载10%运行额定功率2MW那么P_reserve就是0.2MW。需要注意的是下垂控制输出和虚拟惯性输出是相加关系但它们的持续时间不一样。虚拟惯性可能几秒后就结束下垂要持续到频率恢复或风机切备用状态。调差率换算调差率定义为频率偏差百分比与功率变化百分比的比值工程常用3%~5%。如果你的下垂控制系数K_droop单位是MW/Hz那么K_droop -P_rated / (调差率 * f_rated)。举个例子2MW风机调差率4%额定频率50Hz那K_droop 2 / (0.04 * 50) 1 MW/Hz。频率下降0.1Hz增发0.1MW够直观吧。3.4 超速减载的初始工作点设置在PowerFactory中设置超速减载需要在风轮机模型里把MPPT曲线附近做一个偏移。你可以在找风模型Wind Turbine Model里控制转子转速参考值。正常MPPT下转速参考值是omega_mppt f(lambda_opt, v_w)的函数。减载运行时把转速参考值提高到omega_mppt * (1 delt_omega)同时确认气动模型中的Cp会相应下降。超速减载比例delt_omega通常取5%~12%。需要注意风速高于额定风速时转速已经达到上限超速空间没了这时应该切换到变桨减载。所以在DSL里需要一个风速或功率判断逻辑当风速低于切入风速到额定风速之间用超速减载当风速高于额定风速时用变桨减载。这个逻辑我用过一个简易表达式if v_w v_rated then omega_ref omega_mppt * (1 delt_omega) pitch_ref 0 else omega_ref omega_max pitch_ref pitch_trim(v_w) // 查表得到减载桨距角 endifpitch_trim表格可以根据Cp曲线反向计算。你在PowerFactory的通用气动模型里可以直接定义Cp(λ, β)二维表通过目标Cp反查β。这个过程有点繁琐但值得做因为不同风速下减载10%对应的桨距角不是常数通常风速越高需要的桨距角越大。3.5 变桨控制环节的参数整定变桨控制在PowerFactory里一般是一阶惯性环节限速环节。你的输入是桨距角参考值输出是实际桨距角再进入气动模型计算Cp。实现减载变桨可以把MPPT对应的桨距角基础上增加一个偏置。控制参数中最关键的是变桨速度限制。真实液压变桨系统的速率大概是3~10度/秒仿真中如果不限速变桨瞬间到位波形看起来很理想但实际设备做不到会导致频率响应差异很大。所以我建议设置变桨速率限幅例如lim_rate 5 deg/s。变桨控制的死区也要注意频率偏差小于0.03Hz时不要动桨角否则桨距角频繁调节对疲劳载荷影响很大。在调频结束后桨距角应缓慢恢复到减载点对应角度恢复速率也要限制不然会出现有功功率过冲。3.6 仿真场景设计与频率跌落测试建完模型就要设计测试场景。推荐用“在并网点附加一个负荷突变事件”来制造频率跌落。具体操作在公共连接点母线接一个可变负荷在2秒时突然投入一个额定负荷比如5%系统容量制造频率下降。仿真时长设为30秒到60秒步长可以设0.001秒太细没必要一般0.01秒即可。重点观察三个量风机输出有功、转子转速、系统频率曲线。将“不调频”结果和“虚拟惯性下垂减载”结果对比你会看到频率最低点被抬高频率稳态偏差缩小这就是调频策略起效了。如果条件允许可以做“频率跌落幅度敏感性分析”分别设置3%和5%的负荷阶跃看策略在不同扰动强度下的表现。这有助于发现触发逻辑和限幅是否合理。4. 实操心得与参数整定的经验碎碎念4.1 虚拟惯性系数不能“贪大”虚拟惯性控制系数 K_vir 的数值需要结合风机转速的可用动能范围来定。一个粗算方法是设风机转子惯性时间常数H约为2~4秒当频率变化率1Hz/s时如果释放全部动能转速从1.0降到0.9 p.u.可输出功率约为2 * H * P_r的瞬时功率但实际只能持续很短时间。工程上建议K_vir的取值让附加功率峰值不超过额定功率的10%~20%。例如一个2MW风机虚拟惯性附加功率峰值限制在0.2~0.4MW比较稳。如果你在仿真中发现转速跌到0.8以下那肯定是K_vir太大了或者恢复逻辑没设计好。4.2 下垂系数要跟备用容量匹配下垂系数对应的最大增发功率必须小于等于减载备用功率否则频率还没恢复风机已经超发到机械极限转速飞快下降变流器开始限流或低转速保护动作。最直观的检验方法是做“最大频率偏差”测试按你该区域最大负荷扰动算出的频率最低点对应下垂增发功率应该比备用功率小10%~20%留出裕量给虚拟惯性释放后的功率恢复。4.3 超速减载比例的选择要兼顾全年发电量超速减载比例不是越大越好。减载10%意味着正常工况下一年少发10%的电对风电场收益是巨大损失。很多场站的并网协议只要求2%~5%的调频备用个别要求10%。所以仿真中应该作为参数扫描而不是固定值。我做过一个模拟把减载比例从0%到15%扫描看频率最低点改善程度和年发电量损失之间的曲线结论是当减载比例超过10%后频率最低点的改善开始饱和——因为风机的转速已经接近上限再超速会让Cp掉得更快但可用动能没有等比例增加。所以建议优先选择5%~8%的超速减载不够再加变桨。4.4 变桨响应速度的“慢性子”效应很多人第一次仿真变桨调频会把变桨速度设成理想的“瞬间到位”然后发现频率最低点改善并不大原因就是变桨延迟导致功率增加滞后于频率跌落。实际上变桨减载在初始阶段根本帮不上忙主要靠虚拟惯性和超速减载的功率余量。变桨减载的作用是维持中后期的持续功率。在整定变桨速度时可以配合“桨距角前馈”或“快速变桨增强”技术但工程上更务实的是做好模式切换逻辑频率跌落瞬间先调用电控通道然后根据持续时间慢慢把变桨控制的参考值加上去。5. 常见问题与排查技巧实录5.1 频率响应方向反了这个错误很经典。DSL里搭好了控制器仿真看到频率跌落功率反而减少了。排查思路很简单看df/dt的符号是否正确。PowerFactory里频率测量元件的输出可能是“频率偏差”而不是绝对频率如果你用f_sys直接参与计算要先确认量纲。另外注意DFIG模型内部的参考方向是“发电机吸收功率为正”还是“输出功率为正”PowerFactory中同步机和异步机的参考方向可能不一样。如果功率符号反了就在增益前面加个负号或者把输入变量取反。5.2 输出功率曲线振荡厉害常见原因有两个一是虚拟惯性环节的微分滤波器时间常数太小放大了频率测量噪声二是附加功率限幅和恢复逻辑相互作用形成了正反馈。解决方法是先增大滤波器时间常数比如从0.2秒改到0.5秒看看振荡频率是否下降。另外给虚拟惯性附加量加一个“速率限制”也很有效限制每毫秒功率增加量避免突变。5.3 频率最低点改善不明显如果加了调频策略频率最低点还是很低问题大概率在备用容量不足而不是控制器没响应。你可以把虚拟惯性、下垂控制、减载点全部拿出来画一下总的有功增加曲线看看峰值功率是不是低于理论备用功率。还要检查频率测量环节的延迟PowerFactory里的测量模块如果用均值测量会有20ms时的相位延迟对于秒级频率响应影响不大但对于虚拟惯量的短时响应可能削弱一半效果。建议频率测量直接取母线模型的瞬时频率不要用测量模块的滤波输出。5.4 仿真不收敛或者步长敏感加入调频控制后如果仿真出现数值振荡或不收敛优先检查控制模型里是否存在代数环。比如功率参考值反馈到转速计算转速又影响气动功率可能形成代数环。在DSL里加入一阶惯性环节可以打破代数环也可以把步长从默认0.001秒改到0.01秒看看能否收敛。另外注意变桨控制模型的离散采样时间设置不要设得太小否则容易触发算法不稳定。5.5 表格速查典型调参方向现象可能原因调整方向虚拟惯性响应过猛、转速骤降K_vir过大或触发死区太小减小K_vir增大触发死区频率恢复后功率有“坑”功率恢复逻辑太激进增加恢复斜坡时间下垂增发功率无法持续备用功率不足增大超速减载比例或切换变桨变桨响应滞后明显变桨速度限制太低适当提高限速检查执行机构能力频率测量噪声大导致抖动滤波时间常数太小增加到0.3~0.5秒最后再分享一个我在实际项目里的体会DFIG调频策略别只盯控制器还要看风机自身的机械载荷和变流器热容量。虚拟惯性释放转子动能时转速下降转速回升阶段要额外从电网吸收功率这个过程对齿轮箱的扭振冲击很大下垂控制长时间增发则会让变流器电流持续偏高尤其夏季散热条件差时容易触发降额。所以仿真方案过了之后最好再做一次机电暂态与机械载荷的联合仿真把转速加速度限制、转矩变化率限制加进去这样拿给验收方看说服力强得多。调频这条路上物理约束永远大于控制野心。