ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

基于MATLAB/Simulink的DFIG风电并网DSTATCOM无功补偿仿真建模与控制

基于MATLAB/Simulink的DFIG风电并网DSTATCOM无功补偿仿真建模与控制 做风电并网仿真的人迟早要跟无功补偿打交道。不管是DFIG双馈机组还是永磁直驱并网点的功率因数往往很难看——风速一抖无功跟着抖电压也跟着抖母线电压动不动就贴着运行上限或下限跑。我前阵子基于Matlab/Simulink搭了一套带DSTATCOM配电型静止同步补偿器无功补偿的风电并网模型从主电路到控制环路全部手搭跑稳态、跑风速阶跃、跑电压突变波形和指标都挺扎实前后也花了不少时间调参。这篇文章把整个建模思路、控制策略、参数整定和调试过程完整梳理一遍给正在做风电并网仿真、或者想搞明白DSTATCOM补偿效果的朋友做个参考顺便把我踩过的坑都标出来。1. 风电并网的无功困境为什么功率因数总是不达标1.1 风电出力波动带来的连锁反应风电的功率天生就是波动的。风速从切入风速到额定风速之间不断变化机组按最大功率跟踪MPPT运行时有功出力一直在变。问题在于很多风电机组为了降低成本变流器容量是按满足有功传输设计的自身能够输出的无功范围其实很有限。DFIG机组转子侧变流器虽然具备一定的无功调节能力但在有功高、机端电压波动大的工况下它能给并网母线提供的无功支撑经常捉襟见肘。你如果直接把一台DFIG模型接上无穷大电网跑并网点的功率因数大概率在0.9左右甚至更低这还只是稳态。更麻烦的是动态过程。风突变、机端电压骤降、线路跳闸这些暂态发生时系统瞬时缺的无功可能有好几兆乏尔靠机组自己根本补不上。母线电压跌落超过一定深度变流器本身还要进入低电压穿越状态自顾不暇。这时候就需要一个独立的、响应快的无功源来兜底。1.2 并网导则其实是个硬门槛做这个仿真之前我重新翻了并网规程。国内对风电场并网点的要求早就不是能发电就行了功率因数在并网点要满足超前0.95到滞后0.95的范围具体由电网调度根据电压情况下发无功指令。这就意味着风电场必须具备连续调节无功的能力而不是靠投切电容器的阶梯式补偿。电压方面同样有要求。风电场并网点电压要控制在额定电压的一定偏差范围内电压偏差超限时还要求具备一定的动态无功支撑能力响应时间通常是几十毫秒到几百毫秒级别。SVC那种基于晶闸管的装置响应速度能达到这个要求但连续调节范围、谐波特性和占地成本都不太理想。DSTATCOM作为一种基于电压源换流器的动态无功补偿装置响应时间可以做到5~10毫秒而且输出连续可调、没有机械惯性非常适合这种对动态性能有硬指标的场合。1.3 不补偿的直观后果我在建模初期故意先不挂DSTATCOM把风机的有功从0.7倍额定阶跃到额定值观察并网点电压。结果是母线电压直接往下掉了近7%功率因数掉到0.86。这意味着并网点电压已接近运行下限如果再叠加系统侧电压偏低的工况风电场根本没法正常并网运行。这组数据也让我后面做补偿效果对比时有了基准线。要判断DSTATCOM到底有没有用不能用感觉上电压稳了来糊弄得有同样的工况条件、同样的机组模型补偿前后放在同一张图上对比。这种对比思路在后面调试时也救了我很多次——改一个参数是不是有效先跟基准波形对照而不是凭肉眼猜测。2. DSTATCOM的原理与选型为什么是它而不是SVC或SVG2.1 本质是一台电压源换流器DSTATCOM说白了就是一台由IGBT组成的电压源换流器VSC通过耦合电抗器并联到电网母线上。它通过控制换流器输出电压的幅值和相位来改变流过耦合电抗器的电流从而向系统注入或吸收无功功率。这个原理用公式表达更清楚。设耦合电抗为X系统母线电压为Vs换流器输出电压为Vc换流器输出到系统的无功功率近似为Q ≈ Vs·(Vc·cosδ − Vs) / X当Vc Vs时Q为正换流器向系统注入无功相当于一个可调的容性负载当Vc Vs时Q为负换流器从系统吸收无功相当于感性。实际运行时通过PWM调制连续调节Vc的幅值无功输出就是连续的没有电容电抗分档切换那种跳变。这个原理决定了它的两个先天优势一是没有惯性环节IGBT开关周期就是毫秒级二是输出特性跟电压高度相关系统电压跌落时它能输出的无功反而会在一定范围内增大这就是所谓的电压支撑效应SVC在同样条件下无功输出会同比缩水这是原理性差异。2.2 三种无功补偿装置横向对比为了把选型逻辑讲清楚我做了个简单对比表对比项SVC晶闸管电抗/电容CS-STATCOM链式DSTATCOM两电平PWM-VSC响应速度20~40ms5~10ms2~5ms无功输出连续性分档相控连续连续连续低电压支撑能力弱电压跌落时输出下降中强谐波特性需要配套滤波器谐波小多电平更优开关频率高时谐波较小控制复杂度低中高中适用场景输电网集中补偿高压大容量配电/风电场集电母线做配电级或风电场并网级仿真DSTATCOM是性价比最高的选择。MATLAB/Simulink里直接有现成的VSC桥臂模块不用自己去搭链式换流器的复杂结构控制策略又能完整体现STATCOM的核心逻辑。2.3 接入位置与容量的工程考量DSTATCOM一般接在风电场升压变压器的低压侧母线或者集电线路的公共连接点。接在低压侧的好处是电压等级低、绝缘成本小耦合电感和直流电容的参数也更容易匹配缺点是补偿电流要经过升压变才能对高压母线产生电压支撑变压器本身的漏抗会吃掉一部分无功。容量方面工程上通常按风电场额定容量的20%~30%选取DSTATCOM容量。比如一座50MW的风电场配10Mvar左右的动态无功比较常见。仿真模型里不用抠得太细但至少要把这个配比逻辑放进去——你要是用一个比风机额定容量还大的DSTATCOM补偿效果当然好看但那不是工程实际。3. Simulink建模全流程主电路、PLL与双环控制的落地细节3.1 模型总体结构设计整个模型我分成了四块风力发电单元、并网变压器与线路、DSTATCOM本体、测量与控制逻辑。风力单元我用了一台1.5MW的DFIG模型通过690V/35kV升压变压器并入35kV母线再通过一条30km的等效线路接入无穷大电网。DSTATCOM接在风机升压变低压侧690V母线上这样模型麻雀虽小五脏俱全。选用DFIG而不是永磁直驱是因为DFIG本身需要吸收无功建立磁场正常运行时无功需求是动态变化的跟DSTATCOM的补偿逻辑能形成更真实的耦合。如果你手上只有PQ有功无功恒定的简化风机模型也能跑但动态效果会打折扣。3.2 主电路模块与关键参数主电路我用的模块清单和参数如下模块Simulink对应模块关键参数无穷大电网Three-Phase Source35kV50Hz短路容量1000MVA线路Three-Phase PI SectionR0.115Ω/kmX0.4Ω/km30km升压变Three-Phase Transformer690V/35kV1.6MVAUk6%DFIG机组Simscape专项DFIG模型1.5MW690V50HzDSTATCOM桥臂Three-Level Bridge / Universal Bridge两电平IGBT额定电流按容量耦合电抗Three-Phase Series RLC BranchL1.2mHR0.01Ω直流电容DC Bus CapacitorC30mFVdc_ref1200VPWMPWM Generatorf_sw4kHz载波同步这里说一个选参数的逻辑。直流母线电压要留出调制余量对SPWM调制Vdc至少要大于线电压峰值的一点一五倍690V系统我取了1200V裕量大概在20%到30%之间。耦合电抗不能太小太小了谐波电流大也不能太大太大了要达到同样的无功输出需要更高的Vc直流电压就得跟着上调。我这版在1.2mH附近试了很久算是个折中值。3.3 SRF-PLL实现坐标系的命门DSTATCOM控制的第一步是把三相量换到dq同步旋转坐标系PLL做不好后面全部白搭。我用的SRF-PLL基于同步旋转坐标系的锁相环结构很经典把PCC三相电压Ua、Ub、Uc做Clark变换到静止αβ坐标系再通过Park变换转到dq系。假设PLL锁准了d轴对齐A相电压那么Uq趋近于0。所以PLL的闭环就是让Uq等于0Uq经过PI调节器输出角频率再积分得到角度θ反馈回Park变换。这个环路在Simulink里搭起来有几点要注意Park变换要选对相位对齐方式我用的是d轴对齐A相电压PI参数不能太激进否则电网电压稍微畸变一点θ就开始抖电流环参考值也跟着抖整个系统就嗡嗡响。我给的PLL带宽约50HzKp20Ki300实测在电压畸变率3%以内都能稳定锁相。3.4 双环控制的组织方式DSTATCOM控制结构分内外两层。内环是电流环通过解耦后的d轴电流控制直流母线电压q轴电流控制无功输出。外环有两个直流电压外环输出d轴电流参考值交流母线电压外环或无功功率外环输出q轴电流参考值。dq轴之间存在耦合项d轴方程里会串q轴量反之亦然所以需要在控制器输出前加上前馈解耦量。具体做法是Ud_ref −(Kp_id·ΔId Ki_id·∫ΔId) ωL·Iq Usd Uq_ref −(Kp_iq·ΔIq Ki_iq·∫ΔIq) − ωL·Id Usq式中的ωL·Iq和ωL·Id就是解耦补偿项Usd和Usq是PCC电压前馈。不解耦的话两个轴互相干扰调参数的时候你会发现在d轴加的PI增益会通过耦合项影响q轴响应永远调不利索。PWM调制用的是载波移相SPWM还是空间矢量SVPWM在仿真层面差别不大SVPWM的直流电压利用率更高但通用性差一些。我用的标准正弦PWM加了三倍次谐波注入效果介于两者之间。4. 控制器参数整定从传递函数到仿真试凑的完整路径4.1 电流内环被控对象就是耦合电抗电流内环的物理对象是耦合电抗和连接线路电阻传递函数是典型的一阶惯性环节G(s) 1 / (Ls R)对一阶对象PI参数可以用极点配置法直接算。把PI调节比分写成Kp Ki/s选择期望闭环时间常数τ令Kp L/τKi R/τ原理上是让PI零点对消对象的极点。我这里L1.2mHR0.05Ω考虑线路选τ2ms算出来Kp_id 0.0012 / 0.002 0.6 Ki_id 0.05 / 0.002 25实际仿真里把Kp取到1.2Ki取到50动态更快因为模型里还有数字控制延时和PWM零阶保持留点余量反而稳定。这个理论算一遍然后根据仿真微调的流程比纯试凑靠谱得多。4.2 外环整定直流电压环与交流电压环的配合直流电压外环的带宽要比电流内环低一个数量级否则内外环会互相激励。一般取内环带宽的1/5到1/10。直流电压的被控关系来源于电容上的功率平衡C·Vdc·(dVdc/dt) P_in − P_out其中P_out 1.5·Usd·Id所以电压环输出的是d轴电流指令。实际调参时我先把内环冻结把电流环当作增益为1的快跟踪环节单独看Vdc阶跃响应Kp_vdc从我计算的50开始调小到30积分项留到15让超调控制在5%以内。交流电压外环稍微麻烦一点因为它控制的是PCC电压被控对象包含变压器电感和线路阻抗不是一个简单的惯性环节。我实际用的是无功功率外环加一个下垂系数外环比较PCC电压测量值和参考值的偏差乘以一个下垂系数比如2%~5%转换成无功参考量或者直接作为q轴电流参考。这样既满足电压支撑的要求又避免电压控制环在弱电网下振荡。4.3 限幅、抗积分饱和与坐标系对齐参数整定之外的坑都在细节里。第一个坑是积分饱和。风速突变时无功指令大跳变Pi积分项会冲到很高的值等误差反向时还要好几秒才能泄下来这段时间DSTATCOM的行为就是失控的。我全部PI调节器都加了输出限幅并且在积分路径上加反馈限幅确保输出到达限幅时积分项停止累积误差反向时导数项先起作用系统能快速脱离饱和。第二个坑是d轴和q轴方向定义必须跟PLL严格对应。我调试时碰过一次q轴电流正负号搞反的情况系统缺无功DSTATCOM却吸收了更多无功母线电压不降反升直接把仿真拉偏。后来我加了个极性验证的步骤先把无功参考设为负的看实际无功是不是也变为负确认方向正确后再恢复参考值。第三个坑是坐标变换的系数。Simulink的Park变换有幅值不变和功率不变两种形式前面那个系数1.5还是2/3的差别直接决定电流环PI的增益换算。我用了功率不变形式功率公式就是P1.5·Usd·Id、Q1.5·Usd·Iq按q轴电流方向定义取正负整定计算时全程用这套系数统一不混用。5. 仿真结果怎么看电压支撑、功率因数与动态响应的判读5.1 稳态补偿效果补偿前后的直观对比模型跑稳态时我把风机有功阶跃到额定值观察并网点三个关键量母线电压幅值、功率因数、母线电压THD。补偿前和补偿后放在同一张图里对比指标补偿前补偿后PCC电压幅值pu0.931.005功率因数0.860.997电压THD3.5%1.2%剩余主要为PWM开关谐波这个结果说明两个问题。第一电压幅值被拉回来了说明电压外环起了作用通过调节q轴电流来维持PCC电压在参考值附近。第二功率因数接近1这是附带的效果——因为PCC电压稳定了风机和变压器吸收的无功得到补偿整个风电场对外呈现近似纯有功特性。注意一点功率因数太高不一定是好事。如果电网调度要求风电场发出无功来支撑远端电压那功率因数就要低于1快进相运行。所以模型里不要死板地把无功参考设为0要留一个无功参考的输入接口我从一开始就把q轴外环做了双模式切换电压模式或无功模式一句代码就能切换非常方便。5.2 动态响应阶跃工况下的三大指标动态性能评估我做了三个测试风速阶跃、无功参考阶跃、电网电压跌落。风速从8m/s阶跃到12m/s风机有功从约0.4pu跳到0.9pu过程中风机无功需求先增加后回落。DSTATCOM的响应是PCC电压先跌3%在约30ms内恢复并稳定在1.0pu附近超调量不到2%没有持续振荡。这个30ms包含了变流器电流内环的快速响应和电压外环的调节相比SVC的典型响应时间优势非常明显。无功参考阶跃测试更直接参考值从0Mvar跳到5Mvar向系统注入容性无功DSTATCOM输出电流的上升时间在8ms以内基本就是电流内环的带宽决定。这个指标反映了整定内环PI时选的τ值是否合理——如果响应慢于15ms回去把电流环带宽调高如果出现超调超过15%说明Kp偏大或者限幅提前动作了。电网电压跌落测试我看的是低压穿越辅助支撑35kV母线电压跌到0.8pu持续0.5sDSTATCOM在50ms内把无功输出推向最大值PCC电压最低点从0.8pu被抬升到接近0.86pu虽然不能完全阻止电压跌落但明显延缓了跌破保护门槛的时间。这种动态无功支撑能力是电容器组和SVC给不了的。5.3 谐波含量与控制方式的关系PWM开关频率直接决定DSTATCOM注入系统的谐波。我对比了2kHz、4kHz、8kHz三种开关频率下的PCC电流THD开关频率PCC电流THD2kHz高达7.2%需要LC滤波器4kHz4.1%可以用小容量滤波器8kHz2.3%基本可接受工程上不会为了降低THD一味提高开关频率因为IGBT损耗跟开关频率成正比。仿真的好处是你可以随意试我最终选4kHz然后在耦合电抗支路并联一组5%容量的高通滤波器让THD压到2.5%以内。这个滤波器参数需要跟耦合电抗配合整定避免在开关频率附近形成谐振放大。6. 调试路上的坑与解法附参数速查6.1 PLL不收敛是我遇到的第一个大坑模型搭完第一次跑波形直接是乱的。查了半天问题出在启动瞬态仿真开始时PCC电压从0建立PLL的Park变换在这种非正弦、带直流偏置的启动段会输出异常值PI调节器直接把θ拉偏后面全乱。解法是在PCC电压测量模块后加一个0.02s的使能信号让PLL在前0.02s锁定在额定频率上不参与反馈控制等电压建立正常了再切入闭环。这个先开环锁频、后闭环锁相的做法在PSCAD其他仿真里也常用属于通用技巧。6.2 直流母线电压起不来的典型原因DSTATCOM启动时要给直流电容充电。如果直流电压外环参与控制的时刻太靠前电容还没充到额定值外环就会输出一个巨大的d轴电流参考导致过流保护动作仿真里表现为波形发散或数值过冲。我的做法是给直流电压参考加一个斜坡上升段0到0.1s内从0线性升到1200V让充电电流受控。还有一个隐蔽问题直流电容初值。在Simulink里电容模块的初始电压默认是0如果仿真用精确模式第一步就会出现巨大的充电冲击。我把电容初始电压设为800V跟斜坡参考起始点匹配既避免了冲击也缩短了启动时间。6.3 数值振荡与求解器设置这是仿真模型特有的坑。我开始用的ode45变步长求解器步长自动有时会拉大到毫秒级IGBT开关瞬间产生的尖峰被步长跨过去波形看着干净但控制逻辑采样的电流值不稳定PCC电压波形在高频段抖动明显。后来换成ode23tb适用于刚性系统的变步长求解器最大步长限制在1e-5s控制采样周期固定为50us问题立刻消失。经验总结带PWM换流器的模型求解器必须选刚性求解器ode23tb、ode15s最大步长要小于载波周期的三分之一。否则你看到的仿真结果只能骗自己。6.4 参数速查表下面是我这版模型最终使用的控制器参数供参考内环按4.1节公式推导实际微调过控制环KpKi限幅说明锁相环PLL20300输出角频率限±5%带宽约50Hzd轴电流内环1.250±0.5pu控制直流电压q轴电流内环1.250±0.5pu控制无功/电压直流电压外环3015±0.3pud轴电流参考带宽低于内环5倍交流电压外环840±0.3puq轴电流参考带2%下垂这些参数换了工况比如改电网短路容量、改耦合电抗值全部要重新校一遍不能直接抄。但整定顺序是可以照搬的先锁PLL再整电流内环然后加直流电压外环最后接交流电压外环。每加一环前面一环参数基本不动只调新增环。6.5 我给同样在做这套仿真的人的一个建议如果你打算复现这套模型别急着把控制策略加到最复杂先跑通一条最简单的链路无穷大电源加负荷加DSTATCOM让DSTATCOM固定输出某个无功参考值观察波形和控制量。链路确认无没问题了再替换成DFIG风电模型再扩大工况范围。我最初直接上DFIG加弱电网加DSTATCOM全套联调结果花了两天时间才定位到是PLL启动问题要是先用简化模型验证核心控制至少能省一天。最后再分享一个小技巧把仿真结果导出到工作区前先记录一组关键测量量PCC电压d/q分量、功率因数、DSTATCOM无功输出、直流母线电压在后面统一用脚本绘图。你对比工况的时候能非常快地发现哪一环出了问题而不是盯着密密麻麻的三相波形图发愁。这套工作流我用了很多次确实比在Scope上肉眼比对效率高太多。
返回列表