
前段时间有个做新能源接入的朋友跟我聊起风电并网的电压稳定问题他说自己调了好久的模型并网点电压还是动不动就跌落最后发现问题的核心不在风电机组本身而在无功补偿的动态响应上。后来我给他推荐了基于DSTATCOM配电网静止同步补偿器的方案在Matlab/Simulink里把风电并网模型和无功补偿控制搭在一起问题一下就理顺了。这篇文章就把这套模型的完整思路、搭建过程和调试经验梳理一遍给同样做风电并网仿真、电能质量研究的朋友做个参考。1. 风电并网的“电压困局”为什么要做动态无功补偿风电并网之后并网点PCC的电压问题比传统火电、水电要复杂得多。很多人一开始会以为电压跌落无非是电网短路容量不够把风机有功功率控制好就行了。实际跑过仿真之后你会发现风电场的无功需求是动态变化的而且变化速度非常快传统无功补偿装置根本跟不上。1.1 风电场电压波动的根源在哪里先说物理层面。风电并网之后并网点电压可以近似用这样一个关系描述V_PCC ≈ V_grid - (P·R Q·X) / V_grid 其中 R 和 X 是线路阻抗的电阻和电抗P 和 Q 是注入电网的有功和无功功率。注意这个公式里的 R配电网线路的 R/X 比通常比输电网高得多所以在配电网接入的风电场有功功率波动也会直接引起电压波动不只是无功的影响。这就解释了为什么风电场的电压问题比传统电站更频繁——风速一变P 就在变V_PCC 自然跟着抖。另一个问题是风机本身的励磁特性。现在主流风电机组是双馈异步发电机DFIG和永磁直驱PMSG两类。DFIG的转子侧变流器虽然具备一定的无功调节能力但在电网电压深度跌落时撬棒保护Crowbar会动作这时候电机退化为普通异步发电机无功需求激增PMSG虽然通过全功率变流器并网无功能力受限于变流器容量在满发工况下往往没有足够裕量去支撑系统电压。1.2 传统无功补偿手段的局限风电并网工程里常用的无功补偿手段有三类补偿手段响应速度连续调节能力电压跌落时表现经济性并联电容器组秒级依赖机械开关分级投切不连续电压越低容量反而下降Q∝V²便宜电抗器并联电抗秒级固定/分级过电压时吸收无功便宜SVC静止无功补偿器10~30ms连续但有输出边界容性输出随电压平方衰减中等STATCOM静止同步补偿器1~5ms连续且容性/感性双向输出主要受器件限流约束电压支撑能力强较贵这里最坑的是并联电容器组。电压跌落正好是最需要无功支撑的时候电容器因为 QωCU² 的关系无功输出反而按电压平方骤降。SVC里的TCR晶闸管控制电抗器支路本质上是可控电抗器感性调节范围够用但容性补偿要靠固定电容组电压一跌照样走下坡路。而DSTATCOM是通过电压源逆变器VSC产生可控的电压通过耦合电抗和系统交换无功其无功输出主要由IGBT的电流容量决定电压跌落时只要逆变器不过流无功支撑能力基本可以维持。这就是它在这个场景里被选中的根本原因。2. DSTATCOM的补偿机理它凭什么能撑住并网点电压DSTATCOM的结构核心是一个电压源型PWM逆变器经过耦合电抗器并联接入配电线路。理解它的工作原理不要从头开始推逆变器拓扑抓住“在PCC点建立一个可调电压源”这个本质就行。2.1 从交流侧看它相当于一个可变无功电流源假设DSTATCOM输出的基波电压为 V_invPCC点电压为 V_PCC两者之间的耦合电感为 L_c。那么DSTATCOM注入系统的电流为I_q (V_inv - V_PCC) / (j·ω·L_c)当 V_inv 的幅值大于 V_PCC 且相位由PLL锁定在系统电压相位上时电流呈容性DSTATCOM向系统注入无功反之V_inv 幅值小于 V_PCC 时电流呈感性吸收无功。通过调节 V_inv 的幅值实际上是调节调制比M和相位实际上是一个很小的有功交换用于维持直流电容电压就能连续控制无功电流。这里要特别解释一个常识误区很多人以为DSTATCOM和SVC一样都是改变自身的等效阻抗。不对。SVC本质是一个可调电抗器它通过改变自身阻抗来间接影响系统的无功分布阻抗是什么取决于触发角跟电压也耦合。而DSTATCOM是直接控制输出电流的大小和相位它是一个电流源型特征的装置跟系统电压的耦合弱得多。所以它响应快、电压支撑能力强原理上就比SVC高一层。2.2 从直流侧看电容电压是能量缓冲池逆变器的直流侧是一个电解电容或薄膜电容。DSTATCOM几乎不和系统交换有功开关损耗和耦合电感损耗除外所以直流电容电压的理论平均值基本不变它只需要承担为逆变器提供稳定的直流电压的作用。控制上通过一个很小的有功电流指令通常是 d 轴电流的微小分量来补偿损耗维持直流电压恒定。在设计电容容值时有一个经验公式C_dc (2·S_N·Δt) / (V_dc_max² - V_dc_min²)其中 S_N 是装置额定容量Δt 是允许的直流电压跌落持续时间V_dc_max 和 V_dc_min 是允许的电压波动上下限。实际工程里电容值往往取得比理论值偏大因为仿真和实际的损耗特性还是有差别留够裕量不容易出现直流电压振荡。2.3 为什么本文选DSTATCOM而不是SVG或SVGC很多人会把STATCOM和SVG搞混这俩本质上是同一类设备只是叫法不同STATCOM偏向输配电领域的学术称呼SVG是国内的商业产品惯称静止无功发生器。DSTATCOM的“D”代表Distribution强调它是面向配电网的STATCOM。选它来给风电并网做补偿理由很直接风电接入点在配电网或35kV/10kV汇集站电压等级不高但线路阻抗大、电压敏感而DSTATCOM的连续双向无功调节能力恰好对症同时它的响应速度能跟上风速变化引起的电压波动这是应付“风电并网电压闪变”的关键。3. 控制策略核心dq坐标系下的电压定向与双闭环控制策略是这套仿真模型的心脏。我采用的架构是经典的电压外环、电流内环双闭环加上SRF-PLL锁相环所有控制都在dq旋转坐标系下完成。控制器输出的调制波最后要经过SVPWM转化为IGBT的驱动脉冲。下面把这个链条完整拆开每一步都说清楚为什么这么做。3.1 PLL锁相整个控制系统的“基准时钟”dq变换必须知道电网电压的实时相位。如果参考相位不准所有控制量都会偏轻则无功补偿效果打折重则直流电压失控、逆变器过流保护误动作。我在模型里用的是同步旋转坐标系锁相环基本原理是这样的把三相电压做Clark变换和Park变换得到 V_q 分量如果锁相相位对准了A相电压峰值V_q 应该等于0。如果 V_q 不等于0说明相位有偏差用这个偏差经过一个PI调节器去校正角频率和相位形成一个闭环。仿真模型里PLL的参数我通常这样设为初始Kp180Ki3200带宽选在10Hz左右。这个带宽太低锁相太慢在电网电压频率波动时会拖累整个控制响应太高了又会把电网背景谐波放大进相位信号里导致调制波畸变。做风电并网模型时如果风机侧还有整流器等非线性负载PCC点电压本身就有谐波PLL前面最好加一个低通滤波环节截止频率放到100~200Hz把高次谐波滤掉再锁相。3.2 电流内环dq解耦与PI整定电流环的控制对象是耦合电抗 L_c 上的电流。在三相静止坐标系下电流是正弦交流量PI控制器对正弦指令的跟踪是有静差的。而到了dq旋转坐标系下基波正弦量变成了直流量PI就能实现无静差跟踪。电流环的数学模型是V_id V_PCC_d ω·L_c·I_q - (Kp Ki/s)(I_d_ref - I_d) V_iq V_PCC_q - ω·L_c·I_d - (Kp Ki/s)(I_q_ref - I_q)注意这个 ω·L_c·I_q 和 ω·L_c·I_d 是d轴和q轴之间的交叉耦合项。不做解耦的话d轴电流的变化会扰动q轴反之亦然调试起来会非常痛苦。在Simulink里实现解耦非常简单就是把L_c的数值、ω的数值和另一轴电流的测量值乘起来加上前馈代码量很小效果立竿见影。电流内环的PI参数基整定上我一般从被控对象的一阶惯性模型出发电流环的开环传递函数近似为 G(s) (Kp·s Ki) / (s·L_c·s)。把零点设计成和对象极点对消即 Kp/Ki L_c/R_c然后根据期望的电流环带宽 f_bw 来确定增益。经验上取 Kp L_c · 2π·f_bwKi R_c · 2π·f_bwf_bw 放在500~800Hz。太高了会放大采样噪声太低了跟不上无功突变。3.3 电压外环无功-电压的闭环整定电压外环的目的是调节PCC点电压。把 PCC 点电压的幅值用dq变换后的 V_d 或者求 V_d² V_q² 再开方和给定参考值比较偏差经过一个PI调节器输出就是电流内环的 q 轴电流参考值 I_q_ref。电压环的带宽必须远低于电流环工程上取1/5到1/10。我常用的整定值是电流环带宽600Hz电压环带宽取80Hz左右PI参数大致范围 Kp2~5Ki50~150但要结合线路阻抗和补偿容量微调。电压环加一个限幅器把 I_q_ref 限制在逆变器额定电流范围内防止大扰动时直流电容电压崩掉或IGBT过流。还有一个细节dq变换得到的 V_d 在正常情况下等于相电压幅值但电压跌落或不对称故障时 V_d 波形会畸变。所以电压反馈回路里必须加滤波不然PI控制器会被高频分量干扰输出抖得厉害。我用的是一个截止频率在20Hz左右的一阶低通滤波器既保留电压波动的有效成分又不让谐波影响控制。4. Simulink模型整体架构风电单元、电网阻抗和DSTATCOM的装配逻辑模型的顶层架构我建议分成四个大模块它们之间的信号流和控制流要理清楚否则搭到后面想加个测量点都觉得乱。4.1 四个核心子系统的划分我用的是这种分层结构子系统核心内容对外接口风电机组等效模型DFIG/PMSG本体变流器或者简化的PQ功率源输出有功/无功功率至电网接收PCC电压配电网与负荷35kV/10kV线路阻抗、变压器、本地负荷提供PCC点电压响应DSTATCOM功率电路VSC逆变器、耦合电抗、直流电容注入无功电流至PCC控制系统PLL、电压外环、电流内环、PWM发生器给VSC发脉冲风电机组模块是这套模型里最容易被低估的部分。很多人喜欢把DFIG的完整电磁暂态模型搭出来发电机定子、转子、齿轮箱、变流器一应俱全模型文件又大又慢跑一次仿真十分钟起步。我的建议是除非你专门研究风电机组本体控制否则用等效模型就行——把风机当成一个受控电流源或者PQ节点有功功率按给定的风速曲线输出无功功率按给定的功率因数运行。这样既能保留风电波动对PCC电压的影响又省去了大量计算时间Simulink跑起来顺畅得多。如果你是做并网点电能质量分析这点等效误差完全可以接受。4.2 电网阻抗参数怎么给才合理这是一个很多人会问的问题电网模型直接用三相电压源模块Three-Phase Source就行了吗答案是不行。如果直接用理想电压源PCC点阻抗几乎为零你再多无功补偿电压也不会波动整个模型的意义就没了。正确的做法是在三相电压源后面串联一个RL阻抗支路阻抗值按“短路比”来设计。短路比SCR定义为系统短路容量与风电场额定容量之比即 SCR S_sc / S_wind。在弱电网场景下SCR一般取3~8。短路容量 S_sc V_n² / Z_grid所以给定SCR和目标电压等级就能反算出 Z_grid 的大小再按配电网典型 R/X 比一般取0.3~1.5之间取决于电缆还是架空线分配电阻和电抗。R 和 X 分别设置之后电网模型就有的调了把SCR调低电压波动会明显增大正好用来验证DSTATCOM的支撑能力。我实际测试过的典型参数组合是这样的10kV系统、风电场额定容量5MVA、SCR取5则 Z_grid ≈ V_n² / (SCR·S_wind) 10000²/(5·5e6) 4Ω取R1.2Ω、X3.8Ω。配电网正常水平这个参数下PCC电压在风速波动时会有4%~6%的波动幅度正好在DSTATCOM可补偿范围内。4.3 离散化设置和步长选择Simulink模型里的电力电子部分PWM载波频率我取的是10kHz。如果你用的是连续求解器IGBT的开关动作会导致仿真时间异常长如果你用固定步长离散求解器步长必须小于载波周期的1/20也就是1e-5秒左右才能准确捕捉PWM脉冲和电流纹波。这类模型我推荐用离散求解器选 ode45 之前在模型配置里把求解器类型改成固定步长步长设1e-6~5e-6秒然后跑到稳态结果比较平滑。如果你把步长放太宽比如1e-4秒DTOM波形的脉动会严重到控制环都产生错觉PI参数怎么调都调不出理想效果。原因很简单步长不够采样到的电流波形失真反馈信号里混入了大量数值噪声控制器误以为系统在剧烈波动。另外还有一点PLL这种带积分环节的模块在离散求解器下必须把积分器初始条件设好不然前几百个仿真微秒内相位偏差很大容易触发过流保护。我是直接给PLL的积分器设置初始相位为0然后让仿真从稳态值开始跑这样起始瞬态就小很多。5. 参数整定与调试顺序从点亮器件到全系统闭环很多仿真跑不起来或跑起来波形乱跳问题不全在模型结构更多在调试顺序和参数初始值。这套模型我调试过很多轮总结出一个相对固定的顺序按这个顺序走每个环节的问题都能定位得干净。5.1 第一步开环调试逆变器和PWM先把控制系统断开只给逆变器一个恒定的调制比和固定的调制波相位。这时候看DSTATCOM输出的电流波形如果三相电流对称正弦谐波含量小说明功率电路和PWM脉冲发生器没有接错。这个阶段最好把调制比设成0.8左右载波比按系统频率和载波频率设置好确认输出线电压波形能看到清晰的SPWM脉冲序列。我先这样试调制波频率50Hz载波10kHz直流电压设1200V看输出线电压基波幅值是否约为 V_dc 乘以调制比再乘以桥臂系数两电平桥臂是三相交错合成线电压基波幅值 V_ll ≈ (√3/2)·M·V_dc。如果这一步就对不上后面上了闭环更没法判断是哪一个环节的问题。5.2 第二步PLL锁相验证给PLL接上PCC电压观察输出的相位和三相电压波形对齐。判断标准是看dq变换后的 V_q 分量稳态应该在0附近抖动。如果 V_q 稳态偏置明显说明PLL的PI参数或者初始相位设置不对。这一步我一般只调PLL参数不动其他环节。用示波器模块同时画出A相电压和 PLL 输出的 sin(θ) 信号两者过零点对齐、相位差为零才算PLL合格。有个细节仿真里每次重新跑电网三相电压源的初始相位角Phase内设置可能跟上次不同。如果在调试过程中改了电源的初始相位PLL的初始积分器也要相应调整不然每次启动都会有一段几十毫秒的相位锁定瞬态PCA电压波形前几百个周期都会变得奇怪。5.3 第三步电流内环单独闭环整定把电压环断开直接把 I_q_ref 设成一个固定值比如标幺值0.3电流环闭环跟踪这个常数指令。这时看你 q 轴电流的阶跃响应超调量控制在10%以内调节时间在几个毫秒。如果电流响应慢增大Kp如果出现振荡减小Kp或者增大Ki前先降低Kp。这个阶段调试要心细我一直按“先Kp后Ki先比例后积分”的准则一步一步来。设置参考值时用标幺值体系非常方便整个模型我建议把电压基准设为系统线电压峰值比如10kV系统就是 10000·√2/√3 V电流基准设为变压器侧额定电流峰值。这样所有控制器里的限幅值直接对应1.0、0.5这样的数更方便判断裕量。5.4 第四步电压环投入全闭环并网电流环稳定后把电压环接上。给定 V_ref 等于初始PCC电压然后依次做三件事投切一组本地负荷、改变风机有功输出、降低电网短路容量。观察PCC电压在扰动后能否回到 V_ref 附近DSTATCOM输出无功电流的方向对不对——电压跌了无功电流要向系统注入电压升了无功电流要反向。这一步最花时间的是电压环PI的配合。我的经验是先让电压环只做比例控制Ki0观察是否有稳态误差然后逐步增大Ki消除稳态误差注意Ki过大会出现低频率电压振荡。调完后如果直观感受是PCC电压挺稳了但DSTATCOM的无功电流输出抖得厉害大概率是电压反馈滤波和限幅没配好这时候优先检查滤波器截止频率和电流限幅值不要急着再改PI。6. 结果怎么验证判断无功补偿有效的几条硬指标模型跑通之后怎么证明这套方案真的有效不是看一眼波形就完事儿的。我建议从这三条硬指标来评估这也是评审看论文或者项目验收常抓的点。6.1 电压波动幅度与恢复时间最直观的指标是PCC电压的波动幅度。我测试工况是风速在9m/s到13m/s之间阶跃变化风机有功从3MW跳到5MW。不加DSTATCOM时PCC电压跌落约6%加了DSTATCOM后电压跌落控制在2%以内。恢复时间从几百毫秒缩短到几十毫秒。在Simulink里画一个阶跃响应图标出电压跌落偏差量和恢复时间这比一堆文字描述有说服力得多。如果你做论文的话这一个截图就够撑起一个章节。6.2 无功功率交换与功率因数第二个指标是PCC处的无功功率和功率因数。用功率测量模块测PCC点三相有功 P 和无功 Q然后求功率因数 cosφ P/√(P²Q²)。空载或轻载时风电场消耗的无功主要来自变压器和线路加装DSTATCOM前后对比功率因数应该从0.85左右提升到0.95以上同时无功功率曲线要能被控制在一定范围比如0±0.5Mvar不要再随有功波动剧烈起伏。6.3 网侧电流谐波水平逆变器工作产生的谐波电流注入电网后如果耦合电抗和滤波器设计不当PCC处电流总谐波畸变率可能超标。我在模型里加了电流测量的FFT分析功能观察5次、7次、11次谐波的含量。DSTATCOM投入之后的THD应控制在5%以内这是电能质量国标的底线。如果超过这个值优先调耦合电抗器的值不要轻易加大LC滤波器因为它会引入新的谐振点在仿真里表现出来就是某种特定频率下谐波反而被放大了。值得注意的还有一点在风电机组等效模型本身谐波表现良好的前提下DSTATCOM加入后THD应该是略微增加的因为电力电子开关总在产生新的高频成分。如果仿真结果里THD下降了很多要检查是不是采样时间步长设置不当导致高频分量被数值滤波强制平滑了那属于“假的改善”。7. 这类模型调试中我踩过的坑都是仿真里的隐性问题仿真和实际工程最大的不同在于实际里的误差有传感器精度、环境干扰、器件老化等因素而仿真里的误差是你自己不小心引入的。以下这几个坑是我在调试这套DSTATCOM风电并网模型过程中反复遇到的我认为值得单独说一说。7.1 风机模型里的无功功率初始值冲突如果风电机组等效模型是PQ节点类型你给它设置的无功功率初始值会和DSTATCOM的无功调节目标产生冲突。比如你给风机设置了 Q0 恒功率因数1.0运行但DSTATCOM的电压环又把PCC电压往参考值拉两者只会在稳态时偷偷达成一个协议动态过程中可能反复争夺控制权仿真波形表现为无功功率振荡频率在几赫兹左右看起来就很像控制参数没调好。解决思路是明确分工风机有功按风速特性出力无功按指定的功率因数范围或电压跌落期间的自定义无功策略运行DSTATCOM专门负责动态电压支撑。这两者的无功指令不要同时都接PCC电压闭环否则会发生控制模式竞争。我就干过这样的事把风机 PQ 模型的无功源也接上了电压闭环结果两个控制器互相较劲用了两天时间查出来的问题。7.2 变压器连接组别导致的相位偏移风电并网总要通过变压器常见的是 Dyn11 或 YNd11 连接组别。变压器模型里的连接组别设置不对会导致低压侧和高压侧电压相位差一个30°、150°之类的角度。如果你直接从PCC点取电压送给PLL和控制环而忽略了变压器两侧相位关系那么控制基准会偏一个固定角度结果就是DSTATCOM输出的无功电流方向正确但幅值打了折扣。我建议在PCC点和逆变器連接点之间所有电气量和控制量都明确标识是哪一侧的。如果逆变器接在变压器低压侧而PCC电压在高压侧那么送进控制环的电压信号必须经过变压器相位修正环节。Simulink里的三相变压器模块有三个绕组设置连接组别要严格按照实际接线不要用默认的 Y-Y 直接连接。7.3 限幅器初始值和启动瞬态问题每个闭环控制环节都有限幅器包括电流参考限幅、PI输出限幅、调制波限幅。限幅器的初始值如果设置不合理仿真开始阶段就会触发限幅然后控制器积分器因为持续饱和而累积产生很大的超调。比如直流电压初始值设为0PI控制器看到电压误差很大就会一直让调制比疯狂上升导致启动电流飙升。我的处理办法在模型里给所有状态变量设置和稳态工作点一致的初始值。启动过程先在断网状态下把直流电容预充到额定电压modulation从0开始PWM输出为零经一个软启动模块把直流电压抬到额定值然后再合闸并网启动瞬态就会小一个数量级。这个操作不需要增加额外硬件仿真里就是加一个初始状态设置或者用一个时序逻辑开关控制使能信号很简单。7.4 避免把仿真三要素偷换精度、速度、稳定性Simulink仿真在风电并网这类电力电子模型上往往面临精度、速度、稳定性三者不可兼得的局面。步长设小了仿真慢得让人怀疑人生步长设大了结果振荡、PI参数调不准。我在这套模型上最终用了变速策略启动阶段大步长快速逼近稳态接近稳态后切小步长精细捕捉运行波形。如果你用的是自适用求解器可以在模型配置里设置最大步长和最小步长同时限制定误差容限这样就能兼顾。调试周期长的参数整定阶段我会把仿真时长设短一点0.5~1秒波形已经足够反映稳态质量验证最终性能时再看跑到2~3秒的完整风况变化过程。仿真这种事