ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

5MW永磁直驱风电并网Simulink仿真:从参数设计到控制实现全拆解

5MW永磁直驱风电并网Simulink仿真:从参数设计到控制实现全拆解 做风电并网仿真的人多少都有这样的体验查文献时别人5MW直驱机组跑得行云流水自己搭模型时却连“永磁同步发电机该用哪个模块”都要犹豫半天。我这套模型从最初一个粗糙的demo到现在能完整复现5MW永磁直驱海上机组从风速输入到电网并网的全过程中间踩过的坑比参数表还长。今天就把这套Simulink仿真里的系统设计、核心参数、控制链路和踩坑实录完整拆一遍。先给不熟悉风电的人一句话定位这套仿真模拟的是海上永磁直驱机组风轮不带齿轮箱直接带动一台低速大扭矩的永磁同步发电机发电机发出的频率随转速变化的交流电经过背靠背全功率变流器变成与电网同频同相的交流电完成并网。变流器的直流母线我设定在1200V对应目前主流中压风电变流器设计里常见的电压平台。整个系统在Simulink里覆盖了从风轮气动特性、PMSG电磁特性到IGBT开关动作、锁相环、电流内环的全过程。如果你是刚接触风电仿真的学生或者正在用Simulink复现机组并网特性的工程师这篇文章可以直接当参考。1. 先把系统架构定下来5MW直驱机组参数从哪来1.1 海上直驱和双馈为什么我选PMSG风电技术路线里永远绕不开“直驱”和“双馈”两派。双馈机组带齿轮箱变流器只处理转差功率所以变流器容量小、成本低但齿轮箱在大海上是一个非常现实的故障源换一台海上机组的齿轮箱吊装、租船、停机成本加起来几乎等于买一台新机。直驱方案虽然电机本身更重更贵但去掉齿轮箱之后机械链路的可靠性大幅提升这对运维成本极高的海上场景是决定性的。永磁励磁又比电励磁省掉了励磁绕组和励磁电源转子侧没有铜耗效率高两三个百分点。两台同样5MW的机组在海上一跑十年纯靠效率差异就能拉开非常可观的发电量差距。所以这几年海上新增装机里直驱永磁PMSG的比例一直在走高。我做仿真时选PMSG并不是因为它建模更简单恰恰是因为它最能代表当前海上风电的主流技术方向拿出来讨论也有时效性。再说直驱机组变流器是全功率拓扑机侧和网侧电流都需要完整建模对学习变流器控制的帮助也比双馈更大。1.2 关键参数公式推导和工程惯例都不能少仿真最怕“参数靠编”。你从文献里抄一组5MW参数不一定匹配你的控制策略硬套网上下的模型又经常出现直流母线过压、电流飞升这种让人抓狂的现象。我的做法是先建立一套自洽的参数体系再根据仿真结果反向微调宁可多花半天把参数算明白也别搭完模型才回去补。依据气动功率公式 P 0.5ρπR²V³Cp额定风速取11.5 m/s空气密度取1.225 kg/m³风能利用系数Cp上限取0.48反推叶轮直径约130 m这个值和真实5MW机组基本吻合。发电机额定转速取14 rpm极对数取70按 f P·n/60 计算电气频率约16.3 Hz。这个频率决定了PMSG的输出电压水平要让电机在这个频率下感应出接近690V的定子线电压磁链和电感需要按电机电压方程配合调整不能随便填。下表是我在仿真里用到的核心参数可以直接照抄起步参数项典型值仿真里怎么用额定功率5 MW并网功率机侧和网侧按这个定基准额定风速11.5 m/s达到额定功率的风速点叶轮直径130 m反推气动功率发电机额定转速14 rpm直驱低速大扭矩极对数70对应电气频率16.3 Hz电机定子电压690 V配合1200V直流母线直流母线电压1200 V仿真里的固定设定关于定子电压我做过690V和1140V两版。1200V直流母线配690V交流侧时调制比余量比较宽配1140V时整流后需要的直流母线偏高1200V会明显偏紧必须配合升压环节。考虑到Simulink里额外加一路升压变换会引入更多稳定性问题基础版本用690V交流侧方案就够了这也是很多文献里的默认配置。1.3 模型边界先把链路跑通再逐步放开任何一个仿真模型都有边界不讲边界就容易把问题带偏。我在这套模型里明确设了几条假设只建“PMSG 背靠背变流器 电网”三个环节电网用理想三相电压源加线路阻抗代替不建变压器和35kV集电网络机械传动链简化为单质量块模型不研究塔筒振动和传动链扭振气动模型用“风速-转速-叶片角”的Cp查表不引入FAST这类气弹软件联合叶片变桨只做了慢速逻辑重点放在电气控制和直流母线动态。这样做的考虑很朴素如果第一版模型就塞进传动链模态、塔影效应、湍流风场Simulink会非常难收敛而且一旦出问题根本分不清是电气问题还是机械问题。先把边界划干净电气部分跑通再逐步放开边界这是我反复试错后的结论。仿真不是画得越复杂越高级每个模块你都得知道它为什么在那里。2. 推开Simulink工具箱电气与控制的模块组合拳2.1 主电路建模Simscape Electrical是必选项Simulink里做电力电子仿真电气主电路部分基本绕不开Simscape Electrical老版本叫SimPowerSystems。这里有一个很关键的良心提醒如果你只装了基础的Simulink而没装Simscape Electrical工具箱那在库浏览器里翻半天也找不到IGBT和三相变压器千万别以为是自己姿势不对极大概率是工具箱缺失。第一次配置环境时建议对照Simulink Toolbox功能列表把Simscape Electrical、Simulink Control Design、Simulink Coder都装齐后面基本都会用到。主电路我按背靠背结构搭机侧是PMSG定子三相输出直接接入机侧三相全桥IGBT整流器整流后进直流母线直流侧是母线电容加卸荷支路用一个IGBT串联电阻构成直流制动斩波器用来在电网故障或负载突变时限制母线电压网侧是三相逆变器经进线电感接到理想电网电压源。PMSG模块直接用Simscape Electrical自带的“Permanent Magnet Synchronous Machine”选国际单位制把上一节算好的定子电阻、电感、磁链和转动惯量填进去。这里有个新手特别容易崩溃的坑电机模块里“Rotor Type”下拉框有“Round”和“Salient”分别对应表贴式和内置式。表贴式LdLq内置式LdLq。如果你选的电机类型跟控制策略不匹配比如在表贴式电机上用最大转矩电流比MTPA分配电流仿真结果会非常奇怪。我用的表贴式控制里用id0所以必须确保这个下拉框选的是“Round”。2.2 控制链路常规库就能搭但采样和离散化要注意控制部分用Simulink常规库就能搭起来不需要额外装电力电子专用工具箱。核心控制量有机侧转速环、机侧d/q电流环网侧直流电压外环、网侧d/q电流内环PLL锁相环以及SVPWM调制。想看完整调制波形可以直接用Simscape Electrical里的PWM Generator想自己写SVPWM逻辑用三角函数、比较器和逻辑运算也能搭出来费时间但极加深理解我建议至少动手搭一次。仿真步长是决定稳定性的关键之一。主电路我用了离散求解器步长设在1e-5到5e-5秒之间控制部分如果开关频率设成2到5kHz电流环的采样周期一般取1e-4秒波形观测精度已经不错。这里要特别提醒Simulink里每往模块里加一个Transport Delay或离散滤波器都会引入一拍延迟这些延迟在电流内环带宽较高时会放大振荡。我一开始把电流环PI带宽压得很高结果高频抖动明显后来把采样延迟和PWM每周期更新次数都算进去把带宽调回来抖动立刻消失。2.3 联合仿真的思路迁移Carsim那套逻辑风电也在用最近热词里“carsim和simulink联合仿真”是车辆圈的话题但思路完全可以迁移到风电。风电领域的联合仿真常见有两种一种是气动-控制联合比如用Bladed或FAST算叶片气动载荷把转矩和风速接口给Simulink另一种是场站级-机组级联合用Simulink做单机电气模型再接外部电网分析软件跑整个场站。我在做单机模型时用了一个相对轻量的方式把Cp表和转矩公式直接写成MATLAB Function模块替代外部气动软件。这样Simulink纯离线就能跑后续想接FAST时只需要把风速和机械转矩的端口替换掉接口留好即可。这种“先内嵌、后解耦”的思路本质上就是Carsim联合仿真里“先各自仿真、再对接口”的同一套哲学。先让每个域自己跑通再通过明确定义的接口连起来比一开始就搞复杂的协同仿真要稳得多。2.4 外部模式离线仿真走向实时硬件的一座桥Simulink的“External Mode”在风电仿真里的应用场景比很多人想的重要。外部模式的本质是让Simulink模型跑在目标硬件上比如dSPACE、Speedgoat或者某块DSP开发板同时与主机保持参数在线修改和波形可视化。风电控制器实机验证如果非要等代码写完再盯波形效率太低用好外部模式先在实时目标上跑控制算法用手操台改转速环参数观察直流母线动态确认无误后再锁定参数做C代码生成这是工程上非常顺滑的一条路。我后来把这套离线模型的一个简化版控制部分下到TI的C2000开发板试过外部模式下模型跑16kHz的中断直流母线电压和网侧电流波形都能在主机上实时看到参数修改几百毫秒生效。光调试效率这一点就比“改代码-烧录-看波形”的旧流程强太多。3. 一路追着能量走风轮到并网的控制链路实现3.1 风力机模型与最大功率跟踪先让风能变成转矩风力机把风动能转化为机械功率核心是风能利用系数Cp它与叶尖速比λ和桨距角β的关系是Cp(λ,β)。叶尖速比λωR/V表示风轮叶片尖端线速度与风速的比值低于额定风速时控制目标就是在当前风速下追踪最优叶尖速比λ_opt让Cp保持最大值这就是最大功率跟踪MPPT。实现上有三种主流方案最优叶尖速比法、功率信号反馈法、爬山法。我在Simulink里用最优叶尖速比法因为仿真环境里风速信号可以直接从风模型里取爬山法则更贴近实机因为它不需要准确风速。把转矩指令写成 Te* 0.5ρπR³V²Cp_max/λ_opt这个转矩指令直接作为机侧q轴电流参考的主要输入。风轮模型我用MATLAB Function写气动表达式输入风速、转速、桨距角输出气动转矩好处是方便替换成查表或外部气动软件。下面是一个示意代码结构实际用的时候把Cp查表补进去就行function Tm windTurbineTorque(Vw, wr, beta, R, rho) % 输入风速、风轮转速、桨距角、叶轮半径、空气密度 lambda wr * R / max(Vw, 0.1); % 叶尖速比 if Vw 3 || Vw 25 Tm 0; % 超出运行范围 else Cp interp1(LUT_lambda, LUT_Cp, lambda, linear, 0); % 查表 Tm 0.5 * rho * pi * R^2 * Vw^2 * Cp / lambda; end end这里有个很容易被忽略的细节初始参数一定要设稳否则模型一启动时电磁转矩和气动转矩失配会造成转速骤变极容易触发母线过压或者电流冲击。我的做法是在启动前先用手动转矩让系统进入稳态再切换到MPPT控制。3.2 机侧变流器转速外环和电流内环的串级结构机侧变流器的任务有两个把PMSG发出的可变频率交流电整流到直流母线同时调节发电机转速实现MPPT。我用的是转速外环加电流内环的典型串级结构转速PI输出q轴电流参考d轴电流参考设0表贴式电机电流环用PI加解耦项把转速耦合项和磁链项都补偿进去。内环带宽设在200多rad/s外环带宽设在20到50rad/s保证内外环在时间尺度上分离这是避免振荡的经典纪律。PMSG在dq旋转坐标系下的电压方程是ud Rs·id Ld·did/dt - ωe·Lq·iq uq Rs·iq Lq·diq/dt ωe·Ld·id ωe·ψf这两个方程是机侧控制器设计的基础。Simulink里实现时直接用Gain、Integrator、Sum搭PI用Bus Selector取转速反馈不复杂。最需要注意的是单位统一电机模块的SI单位是国际单位制但你控制环里用rpm还是rad/s得一致否则PI参数差得离谱。另外PMSG转子是永磁体机侧过流非常危险电流环的限幅一定要做同时把母线过压保护和IGBT过流保护逻辑加上虽然仿真不会真烧东西但这些保护逻辑本来就是控制系统的一部分。3.3 网侧逆变器稳住1200V母线同时控制并网电流网侧逆变器的目标有两个维持直流母线在1200V附近控制并网电流为单位功率因数。我用的结构是电压外环加电流内环直流电压外环的输出作为d轴电流参考反映有功功率流向q轴电流参考设0让无功功率为零。电流内环里要有电网电压前馈和dq解耦项否则并网电流的动态响应会很差。这里值得展开的是直流电压外环和电流内环的带宽配合。直流外环的带宽必须远低于电流内环否则母线的波动会直接反馈到电流指令上造成电流剧烈变化。我一般把电流内环带宽放在300到500rad/s直流电压外环放在20到50rad/s功率控制响应时间约几十毫秒这在真实机组里也是合理范围。验证两者配合是否合适的方法很简单做一次电网电压跌落工况如果直流电压外环带宽太高直流电压会跟着网侧电压一起抖带宽太低故障恢复时直流电压过冲会很大。调参时建议用Simulink Control Design里的Control System Designer看Bode图比肉眼调PI快很多。3.4 1200V直流母线电容估算与电压波动粒度1200V这个电压等级的选择背后是IGBT器件耐压和调制比的平衡。1200V IGBT器件虽然标称就是1200V但工程上直流母线电压通常要降额使用长期运行一般在900到1100V如果选1700V的IGBT母线才可以稳定跑在1200V。我在仿真里直接用1200V母线对应1700V耐压器件保留约40%的安全裕度开关动作时的电压尖峰不容易击穿器件。调制方式用SVPWM直流电压利用率和谐波性能都比SPWM好。母线电容有一个工程上常用的粗略估算公式 C ≥ 2·ΔP·t_h/(Udc² - Udc_min²)这里的ΔP是故障或甩负荷时的功率冲击t_h是你要求母线电压在冲击后能撑住的时间。如果直接把5MW、20ms、10%降压代入算出来会是数百mF量级这个结果偏保守工程上很少直接按它选电容因为直流电压外环和卸荷支路会分担动态任务。我更推荐按纹波抑制和动态响应来定在仿真里从2mF起步观察突加5MW负载时的母线跌落如果超过5%就加大。我最后用的模型电容是2.2mF再加一组高频吸收RC支路吸收开关频率附近的纹波。4. 正负序控制不平衡电网下的一次模拟4.1 为什么单相故障会难住并网变流器电网的正常运行是三相对称的但故障并不罕见单相接地是最常见的一种。单相接地故障后并网点电压出现不平衡用对称分量法可以把不平衡电压分解成正序、负序和零序三个分量。变流器一般三相三线制没有中线零序电流不流通真正影响控制的是负序分量。负序分量会让并网电流畸变同时带来2倍频的功率脉动直流母线电压也会出现100Hz的纹波。如果不处理负序轻则谐波超标重则低电压穿越失败、机组跳闸。我在基础模型里做了一个“电压不平衡度5%”的工况A相电压跌落20%其它两相保持不变。波形上能明显看出网侧电流三相不对称直流母线出现100Hz的二次纹波。这个现象正是引入正负序控制的直接理由。仿真做故障的好处是把问题可视化比读理论公式的直觉来得快得多。4.2 正负序分离延迟信号消除法在Simulink里怎么落地要做正负序控制分离环节是第一步。常用方法有基于信号延迟消除的DSC法、陷波滤波器法、用二阶广义积分器SOGI构造正交信号。我常用DSC法对静止坐标系下的电压信号延迟四分之一工频周期也就是5ms与当前信号做加减运算就可以得到αβ轴上的正序和负序分量。这个思路在Simulink里用Transport Delay加加减法就能实现非常适合离线仿真缺点是延迟在数字化实时系统里会占比较多采样周期实时性要求高时改用SOGI更稳。分离出正负序后正序dq系和负序dq系各用一套PI调节器。控制目标可以分成几种抑制负序电流让并网电流三相对称抑制有功功率的2倍频脉动抑制无功功率的2倍频脉动。不同目标对应的负序电流指令是不同的。我在仿真里做了两组对比不加负序控制时负序电流明显可见把负序电流控制环接入后三相电流波形恢复对称但直流母线仍保留少量100Hz纹波。这个对比很能说明问题正负序控制能解决电流质量问题但直流母线的2倍频脉动只能被削弱、不会完全消失因为两者成因不同前者是负序电流造成的后者是瞬时功率波动造成的。4.3 正负序仿真模型网上下载前先看这三点现在你在搜索引擎里打“正负序控制 simulink”能出来一大堆论文和模型但质量参差不齐。我提供一个判断标准看模型里用的是αβ静止坐标系分离还是dq旋转坐标系分离有没有完整的PLL、正负序dq变换和电流限幅只给了一堆公式截图、没有实际波形输出通道的模型基本不用浪费时间下载。真正有用的模型一定是能改电网电压不平衡度、能切换控制目标、能在Scope里看到正序负序分离效果的。我在搭模型时就是把这三个要素作为验收标准缺一个都说明作者没真正调通过。5. 从离线仿真到实物外部模式、C代码与控制器落地5.1 外部模式控制算法先在实时硬件上跑起来上一章提过的外部模式在风电控制器的快速原型里是核心玩法。具体来说Simulink模型先编译成目标硬件上的可执行代码通过以太网或串口和主机连接主机的Simulink界面仍然负责参数调整和波形显示。这样你就有了一个“随时可以改参数的实物控制器”虽然它跑的算法代码仍由Simulink生成但已经是在真实的处理器上按照真实的中断时序在运行。和纯离线仿真相比外部模式能暴露定时器、中断优先级、通信延迟这类纯模型里看不见的问题。我建议的落地路径是先从离线模型里拆出控制算法也就是机侧和网侧的串级控制、PLL和SVPWM放到外部模式里跑把IGBT主电路暂时换成仿真里的受控电压源也就是一开一关的理想等效先把控制器的实时性验证清楚之后再逐步把真实功率平台接进来。这样做每一步的风险都可控也方便定位问题是来自算法还是硬件。5.2 Simulink Coder把框图变成干净的控制代码说“Simulink模型能生成C代码”很多人都知道但真正生成过的人会明白要得到能直接烧进DSP用的代码配置过程不是点一下“Generate”就完事的。首先求解器必须设成定步长离散连续求解器在嵌入式目标上根本跑不了然后要在Embedded Coder里配置硬件板卡类型、字节序和优化等级数据接口这一关最重要控制算法生成的函数输入输出都是Simulink信号对象要在模型里明确定义好变量名和数据类型不然生成代码里全是一堆没有业务含义的局部变量。真正做工程时有个体会Simulink模型有时间轴的概念而嵌入式代码是按事件驱动的所以生成的步进函数一般是“step函数”需要在实时中断里被周期调用。电流环这种高速任务占一步转速环和直流电压外环这种低速任务占另一步。这种多速率模型在Simulink里要用Rate Transition模块正确连接否则生成代码会出问题而且初始化阶段的状态一致性也容易丢。前期花时间把模型里的速率关系理顺后期生成代码会少踩很多坑。5.3 从AUTOSAR想到的控制器分层算法和驱动解耦热词里“simulink autosar”更多是汽车电子的概念用来做整车控制器的软件分层和接口标准化。风电控制器虽然不强制用AUTOSAR但同样受益于分层建模的思想把控制算法、故障保护、通信接口分成独立层Simulink模型承担算法层的快速原型角色。代码生成后算法层以函数形式接入底层驱动。这样将来换硬件平台时算法模型基本不需要重写只重新对接驱动接口就行。我在几个项目里试过这种分层迁移成本下降非常明显。比如把直流母线电压采集从原来的ADC通道换成新主板的另一路接口只需要改模型里一个数据源配置而控制算法完全不动。这和汽车上AUTOSAR把软件和硬件解耦的理念是同构的只是实现了一个轻量版。对做风电控制器的人来说这个习惯越早养成后面越省心。6. 常见问题与排查技巧实录6.1 电流环PI参数初值给多少PI参数没有唯一解但有一个能起步的经验假设电流内环希望带宽ωc那么比例系数Kp约等于L·ωc积分时间取L/R的两到三倍。电感L和电阻R是电机或进线电感的参数。比如进线电感0.6mH带宽300rad/sKp约等于0.18。这个初值一般都能稳住再手动微调10%到20%即可。不要一上来就盲目扫描参数先把物理含义算清楚调整时才不会迷路。提示调PI参数时先用Simulink Control Design做一下Bode图看一眼你设定的带宽是否在预期范围再回到模型里微调比例增益。这比闭着眼试凑至少快一倍。6.2 直流母线电压过冲怎么救直流母线过冲是我调试过程中出现最频繁的故障之一。原因通常是突加负载或电网电压扰动时网侧逆变器的能量来不及送出多余能量全部充进母线电容。解决办法按优先级排加卸载支路也就是直流chopper让多余能量在电阻上消耗掉其次是降低直流电压外环的带宽让外环响应更平缓而不是激进出一个过大的电流指令最后是检查网侧电流内环是不是饱和了如果电流指令超出限幅逆变器根本没有能力送出那么多功率母线自然要过冲。三者配合能解决绝大多数过压问题。6.3 仿真速度慢到怀疑人生怎么办5MW的PMSG加背靠背变流器如果全程跑详细开关模型时间步长1e-5秒仿真几秒钟就够你喝一杯咖啡。提速办法有几条发电机和变流器如果只看外特性可以用平均模型替代IGBT开关细节Scope尽量少挂多余信号用To Workspace保存结束再画图把不参与控制的电气环节改成受控电压源或电流源模型。如果模型确实大就开Simulink的Accelerator或Rapid Accelerator模式离线仿真提速很明显。熟悉基础特性之后再回到详细开关模型看具体波形这就是“先宏观、后微观”的调参节奏。6.4 代数环和初始条件两个仿真新手的老朋友代数环的典型表现是Simulink报“Algebraic loop detected”或者在仿真开始阶段硬卡住。原因是存在一个代数上自环的信号路径比如电流环的输出又直接反馈到同一时刻的输入。解决办法很直接在反馈路径上加入单位延迟或Transport Delay或者用一个Memory模块打破代数环。PWM Generator和变流器模块之间也建议加入采样保持避免同一时刻互相依赖。初始条件的问题则表现为启动瞬间电流电压剧烈冲击。补救办法是给积分器设置合理的初始值比如转速PI的初始输出设成稳态转矩对应的电流直流电压外环的初始输出设成稳态有功电流让系统一开机就接近工作点。不要小看这一步仿真能不能“软启动”往往就取决于初始条件设置得够不够贴。6.5 查资料的热词雷达搜索效率怎么提升最后聊一个很实际的话题仿真遇到问题网上搜什么最有效率。我的经验是直接搜“simulink教程 具体问题关键词”比如“simulink 直流母线过压 pmsg”比泛泛搜“风电并网仿真”有用得多。如果你需要系统学习优先找带模型下载的教程光看文字和公式截图很容易被误导工具箱用法类问题去MathWorks官方文档点开“Simulink Toolbox功能列表”确认自己装的工具箱覆盖哪些功能再搜索具体功能名。搜索引擎的热词会帮你扩大视野但最后还是要回到官方文档和可运行的模型上来。我自己从这套模型里收获最大的一句话是仿真不是画得越复杂越高级而是每个模块你都知道它为什么在那里。1200V母线、正负序控制、C代码生成这些概念分开看都是知识点连起来才是一台机组从风到电再到电网的完整叙事。你现在如果刚下载好Simulink不妨照着文章里的参数先把主电路跑起来再一个环节一个环节地加控制。模型里很多参数细节比如C2000外部模式下的中断配置、正负序控制的指令切换逻辑都还有继续展开的空间想看我细聊哪一块评论区告诉我我接着写。
返回列表