聊到风电并网仿真,Simulink几乎是绕不开的工具。而“连接到无限电网的小型风电场的无功功率控制”这个题目,看着简单,实际上把“电网模型怎么简化”“变流器控制怎么设计”“无功功率怎么调”这几件关键事全串起来了。很多同学刚拿到这个题目时,容易一上来就堆模块,结果仿真要么发散,要么波形乱七八糟,根本分不清是模型问题还是控制问题。这篇文章我按自己实际做这个项目的思路,把从原理到建模再到参数整定的完整过程讲一遍,最后附上我踩过的一些坑,希望能帮你少走弯路。
1. 一次说清楚:这个仿真项目到底在解决什么问题
1.1 “无限电网”这个前提是什么意思
无限电网,英文叫 Infinite Bus,在电力系统里是一个经典的理想化模型。你可以把它想象成一个“电压和频率绝对不会被改变的巨型电池”:无论你往里面注入多少有功功率、吸收多少无功功率,它的电压幅值、频率、相角都纹丝不动。在Simulink里实现这个模型,最直接的办法就是用一个三相可编程电压源,电压设为恒定值,内阻拉到很小,频率锁在50Hz。
为什么要强调“无限电网”这个前提?因为电网的强弱直接决定了无功控制的“手感”。如果接到的是弱电网(比如长距离输电线路、孤岛微电网),风电场无功功率一变,并网点电压就会跟着波动,这时控制逻辑会更复杂,要考虑电压调节。而无限电网把这一层干扰完全隔离了,让你可以专心验证变流器本身的无功跟踪能力、响应速度和解耦效果。换句话说,这个题目是先让你在“考场”里把基本功练好,后续再上“实战场地”去应对复杂电网。
1.2 小型风电场为什么要做无功功率控制
很多人会问:风机本来就发有功,为什么还要专门去控制无功?这里有个关键点:现代并网导则对风电场的功率因数有明确要求,通常在 0.95 左右,也就是说风电场不能只发有功,还必须具备吸收或发出无功的能力,用来维持电网电压稳定、降低输电线路损耗。无限电网虽然电压不被影响,但风电场的并网功率因数、输送电流的合理性、变流器容量利用率,这些全都要靠无功控制来保证。
在实际项目里,无功功率控制的目标一般有三种:
- 恒功率因数控制:让风电场按照给定的功率因数运行。
- 恒无功控制:直接给定无功功率参考值,让风电场吸收或发出指定大小的无功。
- 电压支撑控制:通过无功调节把并网点电压维持在设定范围(无限电网下这个目标变化不大,但算法上可以保留)。
我们这个项目以第二种——恒无功控制为主,因为它在Simulink里最好验证,也最能直观地展现无功控制回路的工作过程。你可以给定一个无功阶跃信号,比如从 0 突跳到 +0.3 Mvar,然后观察系统是否能在几百毫秒内跟踪到位,并且不引起有功功率的明显波动。
1.3 什么基础的人适合上手这个项目
简单说,做过电力电子或电机控制仿真的人上手最快。你需要会看三相电路模型,知道坐标变换的基本概念,会用Simulink的Simscape Electrical模块库,最好之前搭过三相整流器或逆变器的模型。如果你是零基础,也不是不能做,但要先补三个知识点:DQ坐标变换、PI控制器的基本原理、三相PWM变流器的工作方式。只要这三块心里有数,这个项目就不会卡壳太久。
2. 控制方案怎么选:从拓扑到双闭环DQ解耦
2.1 主电路选型:全功率变流器加RL滤波器
小型风电场目前主流的技术路线是全功率变流器并网,也就是风机发出的电先经过背靠背变流器,再通过滤波器和升压变压器接入电网。这样做的好处是风机转速和电网频率完全解耦,控制灵活,无功能力也强。在这个项目里,我们用的是永磁直驱风机的全功率变流器拓扑,但为了聚焦“无功功率控制”这个核心,我把机侧整流器和风机部分先简化掉,只保留网侧变流器加直流电压源。
主电路结构可以描述成:直流电源接到三相两电平VSC变流器,变流器交流侧串RL滤波器,再经过升压变压器接入无限电网。这里的R代表滤波器和线路的等效电阻,L代表滤波电感。RL滤波器的作用是把PWM产生的高频谐波滤掉,让并网电流尽量接近正弦。
2.2 为什么要先做坐标变换
三相交流信号平时看着就那么直观:就是三条正弦波。但在控制里直接对三个正弦量做PI调节,根本做不到无静差跟踪,因为正弦参考值本身一直在变。工程上通行的做法是Clarke变换再加Park变换,把abc三相坐标下的量投影到与电网电压同步旋转的dq坐标系里。变换之后,稳态时Vd、Vq、Id、Iq全是直流分量,这时候再用PI控制器就能实现零稳态误差。
你可以把DQ变换理解为“视角切换”:原来你站在地面看旋转的风车,叶片一直在转;现在你站在风车轴上跟着一起转,看到的叶片就是静止的。控制系统采用“跟着电网旋转”的视角之后,原本难搞的交流控制问题就变成了轻松的直流控制问题。
2.3 外环与内环:双闭环结构拆解
无功功率控制的核心是双闭环结构:
- 外环是功率环/电压环:接收无功功率参考值 Qref,与实际测量值 Q 比较,经过PI控制器输出电流内环的 q 轴参考值 Iqref。
- 内环是电流环:接收 Iqref 和 Idref,经过PI控制器直接控制变流器输出电压,从而控制并网电流。
内环又分成 d 轴和 q 轴两条通道。d 轴电流控制有功功率,q 轴电流控制无功功率。通过坐标变换和交叉解耦补偿,两条通道可以近似独立工作,这就是所谓的“有功无功解耦控制”。
如果模型里带有直流母线电容,还需要一个直流电压外环来维持直流侧电压稳定,它的输出作为 d 轴电流的参考值 Idref。不过这个项目既然聚焦无功控制,为了简化可以先在直流侧放一个理想直流电压源,暂时跳过直流电压外环,专心调 q 轴无功通道。等无功控制调通了,再改成直流电容加电压外环,这也是我从实际调试中总结出来的一个比较稳妥的推进顺序。
2.4 小型风电场的等值聚合处理
题目里明确写了“小型风电场”,那是不是要建模十几台风机?不需要,至少在这个题目里不建议这么做。一个典型的小型风电场,比如总容量 2MW,由 4 台 500kW 或 2 台 1MW 风机构成。如果所有风机运行在相同风况下,它们的电气响应基本一致,这时候我们可以用“单机等值法”:把所有风机等效为一台 2MW 的机组,容量参数直接相加,电气模型和控制策略保持不变。
等值聚合的意义非常实在:第一,仿真速度大幅提升,因为各台机组之间的通信延迟、并联均流、尾流效应这些因素在这个题目里不是重点;第二,控制算法的验证逻辑不变,你在单机上验证通过的控制参数,理论上放大到多机系统时基础结论依然成立。当然,这个近似成立的前提是风机之间距离不远、风速差异不大。如果后面你要做风电场内部损耗分析或尾流影响,那就得把每台风机分开建模了。
3. Simulink模型一步步搭出来
3.1 顶层模型布局和各模块清单
打开Simulink,我习惯先把顶层模型分成三块区域,用不同颜色区分:左边是主电路和电网,中间是测量和坐标变换,右边是控制系统和PWM。这样布局的好处是排查问题的时候一眼就能定位是哪一层出了问题。
这个项目的核心模块清单如下:
- Three-Phase Programmable Voltage Source:模拟无限电网。
- Three-Phase V-I Measurement:测量并网电压和电流。
- Three-Phase Transformer (Two Windings):升压变压器。
- Three-Phase Series RLC Branch:线路阻抗和滤波器。
- Universal Bridge 或 Three-Level Bridge:作为网侧VSC变流器。
- DC Voltage Source:模拟直流母线。
- Discrete 3-Phase PLL:锁相环,用于获取电网电压相位。
- 自建 Park 变换模块或者 Discrete abc to dq0 模块。
- PI Controller 和 PWM Generator。
我在搭模型之前习惯先在纸上画一个信号流程图:从电网进入测量模块,然后电压电流进坐标变换,同时PLL输出角度,变换后的 Vd、Vq、Id、Iq 送到控制器,控制器输出调制波,再经过PWM模块产生桥臂开关信号。信号流向理清楚之后,Simulink里连线基本不会乱。
3.2 电网、变压器与滤波器的建模细节
电网这层最关键。无限电网的理想电压源幅值设置要和你选的低压侧一致,我习惯先设为 690V(线电压有效值),频率 50Hz,三相相位分别是 0、-120、120 度。很多初学者在这里容易把相电压和线电压搞混:如果模块参数要求填相电压峰值,就填 690×√2/√3 ≈ 563.6V;如果填线电压有效值就直接 690V。不同版本的Simulink模块定义不一样,建议先在模型里放一个电压测量模块,运行后看波形幅值是否符合预期。
变压器变比如果设计成 690V/33kV,就可以把风电场低压侧和送出的中压电网联系起来。当然,在无限电网模型里变压器更重要的作用是提供电气隔离和电压变换,如果你关注的是低压侧变流器控制,变压器也可以简化成漏抗电抗器。
并联在变流器和变压器之间的RL滤波器,我建议用电感 L=0.2mH、内阻 R=0.01Ω 来起步。这里的内阻不要设成零,否则仿真中容易出现数值振荡,也不利于后续电流控制器的稳定。线路阻抗可以单独用一组串联RLC分支,体现“风电场到无限电网”之间的传输阻抗。为了便于观察无功阶跃响应,线路阻抗不宜过大,否则即使无限电网电压不变,中压侧母线电压也会有比较明显的暂态变化。
3.3 变流器与直流侧建模:先聚焦网侧
网侧变流器我常用 Universal Bridge 模块,桥臂数选3,功率开关器件用 IGBT/Diode 组合,导通电阻、缓冲电路都用默认值就行。这一步不需要太纠结器件级参数,后面如果要分析开关损耗再细化。
直流侧如果直接放一个理想直流电压源,比如 1200V,会让整个模型简单很多。为什么可以用理想源?因为这个项目只研究网侧变流器的无功功率控制,不关注直流母线电压波动问题。直流电压外环的动态特性不会干扰无功通道的验证。你要清楚地知道:这里的直流电压可以理解为“已经被机侧整流器稳定住了”,所以暂时不建模。如果后续要做完整背靠背系统,再把理想直流源换成直流电容加机侧整流器。
3.4 测量、PLL与坐标变换搭建
测量环节用 Three-Phase V-I Measurement 模块,勾选电压和电流,输出类型设为“Complex”或“Magnitude/Phase”都可以,关键是把三相瞬时值以信号形式引出。坐标变换这一步我建议直接使用 Simscape Electrical 里的 Discrete abc to dq0 模块,同时配置一个 Discrete 3-Phase PLL 来提供同步角度。
PLL是整套控制的眼睛,它的作用就是实时锁定电网电压的相位,让dq变换的坐标系跟电网同步。PLL 的输出 angle 直接接到 abc → dq0 模块的 sine/cosine 输入。搭建时要注意 PLL 的初始相角和电网电压初始相角匹配,否则启动阶段会有一段较长的锁相过程,控制波形会很难看。我之前调试时就出现过 PLL 锁相正常但 dq 分量不对的情况,最后发现是变换模块的相位参考设置反了,把角度加了个 π/2 的偏移才解决。
3.5 控制器、PWM与求解器设置
控制器部分我用Simulink标准库里的 PI Controller 模块,外环一个,内环两个(Id、Iq各一个)。内外环的搭建顺序是:测量得到的 P、Q 与参考值比较,经过外环PI得到 Iqref;Idref 在直流理想源模型下可以设为一个常数参考有功电流,先设为0或者与有功方向匹配的值;然后内环PI输出 Vd、Vq 调制参考电压,再加前馈补偿项抵消电网电压交叉耦合,得到最终调制电压,经过反 Park 变换得到调制波送到 PWM 发生器。
PWM 方式用最常用的载波调制,载波频率 5kHz,三角载波幅值 1,调制波幅值限制在 0.95 左右。Universal Bridge 的触发信号可以从 PWM generator 引出,记得勾选“Show measurement ports”方便观测桥臂电流。
求解器设置也很关键。我建议用固定步长离散仿真,步长取 1e-5 秒或者 5e-6 秒。步长太大 PWM 谐波会严重失真,步长太小仿真速度会变得很慢。Powergui 模块选择“Discrete”模式,采样时间与仿真步长保持一致。
4. 参数怎么定:从电感计算到PI整定
4.1 并网电感按纹波指标计算
我这个项目里的L值不能随便填,电感的取值直接影响电流纹波大小和动态响应速度。经验上按尖峰电流纹波不超过额定电流的 10% 到 15% 来设计。对于三项两电平VSC,最恶劣情况下电流纹波公式可以近似为:
Δi ≈ Vdc / (8 × L × fsw)
以额定容量 2MW、直流电压 1200V、开关频率 5kHz、额定相电流约 1676A 为例,若允许 10% 纹波(约 168A),代入得到 L ≈ 1200 / (8 × 168 × 5000) ≈ 0.18mH。我取 0.2mH 留一点裕量,同时内阻设置为 0.01Ω。这个值不是随便定出来的,你可以根据自己模型的容量重新算一遍。
4.2 电流内环PI的工程整定
电流内环的带宽决定了系统整体的响应速度。工程上一般把电流环带宽取在开关频率的 1/10 到 1/5 之间,也就是 500 到 1000Hz,对应角频率约 3000 到 6000rad/s。PI参数可以按典型Ⅰ型系统整定:
Kp = L × ωc
Ki = Kp × R / L
取 ωc = 3000rad/s、L=0.2mH,算出 Kp=0.6。R只有0.01Ω,Ki=0.6×0.01/0.0002=30。实际仿真时我发现 Ki=30 偏小,积分速度略慢,会适当调大到 50 左右,Kp 保持 0.6 到 0.8 之间。注意Kp太大会导致电流脉冲尖峰或振荡,Ki太大会造成超调。
4.3 无功外环PI的整定与限幅
无功外环的带宽要明显低于电流内环,一般取电流环带宽的 1/10 左右,也就是 50 到 100Hz。无功通道的传递函数近似为一个积分环节加电流内环闭环,外环PI可以用零极点对消的思路试凑。起始参数我推荐 Kp 取 0.5,Ki 取 20,然后在阶跃响应里观察超调量和调节时间。如果无功功率阶跃响应超调大,就减小Kp;如果响应太慢,就加大Ki。我在实际调参过程中一般会做一张表格记录每组参数对应的超调量和稳定时间:
| Kp(外环) | Ki(外环) | 超调比例 | 调节时间 | | 0.2 | 10 | 几乎无超调 | 约300ms | | 0.5 | 20 | 约10% | 约120ms | | 1.0 | 30 | 约25% | 约80ms |
我最终选 Kp=0.5、Ki=20,因为它兼顾快速性和稳定性,后续阶跃测试波形比较干净。
4.4 仿真波形该怎么判读
先看无功功率的阶跃响应:设定 Qref 从 0Mvar 阶跃到 +0.3Mvar,观察实际 Q 是否在约 100ms 内到达目标并保持稳定。再看有功功率 P,如果 P 在无功阶跃前后几乎不变,说明解耦控制做得比较好。如果 P 跟着 Q 一起大幅波动,多半是 dq 变换模块的 d 轴和 q 轴定义反了,或者解耦补偿项符号有误。第三看三相电流波形:稳态时应该有正弦度良好、谐波小的电流,用FFT分析总谐波畸变率最好能控制在5%以内,否则说明滤波电感和开关频率的匹配不够好。
5. 调试现场:常见问题与排查方法
5.1 五个高频问题与解决思路
这个仿真项目调试阶段大概率会遇到下面几个问题,我按自己的实际经验整理成速查表:
| 现象 | 可能原因 | 解决办法 | | 启动后电流爆炸式增长 | 初始时刻PLL相位未同步 | 检查PLL初始角度与电网电压相位;适当增加启动缓冲 | | 功率测量值比参考值小一半 | dq变换模块用的是峰值还是有效值不一致 | 统一整定Vdc、V测量基准,保持全链路基准一致 | | 有功无功相互干扰严重 | 解耦补偿项符号错误或前馈电压未加 | 检查Vd/Vq前馈公式符号;补上解耦项 | | PI输出饱和、波形长时间震荡 | 积分饱和 | 给PI控制器加输出限幅,外环给Iqref限制在安全范围内 | | 仿真速度慢到无法忍受 | 步长太小或连续模式求解器 | 改为离散模式,步长1e-5,必要时降低PWM载频和示波采样率 |
5.2 我常用的调试顺序
遇到问题不要慌,我习惯用“由内到外、先开环后闭环”的顺序排查。第一步,先断开控制信号,手动给定一个固定的调制比,观察变流器交流侧电压波形和电流波形是否符合基本物理规律。第二步,给电流内环单独加入阶跃参考,看 dq 轴电流能不能稳定跟踪,这能排除掉大部分坐标变换和PWM问题。第三步,把外环接上,用缓慢斜坡信号代替阶跃,观察无功功率跟踪是否平滑。第四步,再加阶跃,测响应时间、超调量。这套顺序最大的好处是每一步都能快速定位问题所在,不用等到整个系统跑起来之后才发现根源。
还有一个小技巧:把 Id、Iq、Vd、Vq、P、Q 这些关键信号用 Scope 记录下来,同时输出到工作区保存。仿真结束后用绘图工具对比波形,比在Scope上直接看要清晰得多,尤其在分析启动振荡和稳态误差时非常有用。
6. 模型还能往哪里扩展
6.1 从恒无功到电压支撑
本项目用的是无限电网模型,所以无功控制的结果主要体现在功率因数和电流上。但实际工程里,风电场往往需要在并网点提供电压支撑能力,也就是把电压幅值引入无功控制回路:测量并网点电压幅值,与参考电压比较,多一个电压外环,输出无功参考值 Qref。这样的话,当电网电压跌落时,风电场会自动增大无功输出,帮助电压恢复。你可以在现有模型基础上把这个电压外环加进去,就能很自然地从恒无功控制升级到自动电压控制。
6.2 从无限电网到弱电网
无限电网模型练手之后,可以把理想的电压源替换成戴维南等值电网:一个理想电压源串联一个阻抗(其中电阻很小、感抗较大),模拟一段传输线路。这种情况下,风电场的无功电流会在电网阻抗上产生电压降落,你会看到无功控制与并网点电压之间存在明显的耦合,控制器的整定难度也随之增加。这是从学校仿真走向工程实践最有价值的一步。
6.3 一点个人体会
说实话,这个题目看着只是一个基础仿真,但做完一遍之后,对变流器并网控制的理解会上一个台阶。我最大的体会是,仿真模型是一种“思维放大器”:如果你对DQ变换理解不到位,模型就给你看乱糟糟的波形;如果你对PI参数整定心里有数,仿真就变得顺滑无比。还有一点建议:调参的时候不要只盯稳态,多关注暂态过程,启动、无功阶跃、有功扰动这几个瞬间才真正暴露问题。别急着追求一次成功,多记录几组波形,你会越来越有手感。