资讯动态

PMSG风机虚拟惯量控制的Simulink仿真建模与参数整定

发布时间:2026/10/20 8:47:05 来源:尧图企业网站定制
1. 为什么要给PMSG风机“加装”一个虚拟大飞轮先说一个我在仿真里反复观察到的现象你把电网频率设定成50Hz然后在某一刻突然让系统失去一部分平衡功率频率曲线开始往下掉。这个过程中传统同步机组的转子会本能地释放动能就像一个高速旋转的大飞轮在惯性支撑下不会立刻停下来。但旁边的直驱永磁同步风电PMSG机组转速纹丝不动有功功率也纹丝不动——它俩像是“断开”的。这个“断开”就是电力电子变流器带来的解耦效应。PMSG风机通过全功率背靠背变流器并网发电机转速不再像同步机那样被电网频率“锁住”想怎么转就怎么转完全由风速和最大功率跟踪算法决定。好处是风机可以在很宽的风速范围内高效运行坏处是电网需要的惯性响应它一点都提供不了。风电场接入规模越大电网里真实的旋转备用和惯性质量就越小。频率跌落的速度ROCOF即频率变化率会明显变快最低点频率也会压得更低。这时候就要靠控制手段补上这块缺失的“惯量”也就是标题里说的虚拟惯量控制。虚拟惯量的思路并不玄乎。既然风机和电网之间隔着变流器那就让变流器去“感知”电网频率变化在功率参考值上临时附加一个与频率变化率成正比的功率指令。频率在下跌风机就额外多出力频率在反弹就把功率减回来。控制层模拟出来的效果和同步机转子释放动能几乎一样。我见过不少初学者在这个地方卡住风机转速明明不变凭什么能多出力实际上直驱风机在额定转速以下转子本身就有动能只是平时被MPPT控制“按住了”。虚拟惯量支路加进去之后转速允许短时偏离最优值转子的动能被释放出来变成电磁功率送到直流母线、再经网侧逆变器注入电网。等频率稳定了控制再让转速回落到最优工作点。所以这次用Simulink做的仿真核心是解决三件事第一搭出一台带背靠背变流器的PMSG风电系统模型第二在机侧变流器的功率控制环上设计一个可调的虚拟惯量支路第三通过频率扰动实验直观看到有无虚拟惯量时系统响应差多少。这套东西既适合电力电子与新能源方向的学生跑课程项目也适合刚接触风电整机控制的工程师快速建立认知。2. 仿真模型离不开的三层数学描述Simulink建模最忌讳上来就拖模块。控制策略、参数整定全部依赖你对被控对象的数学理解。PMSG风电系统看起来器件很多但拆开就是三层风力机的空气动力学、永磁同步发电机的电磁关系、背靠背变流器与直流母线的能量交换。2.1 风力机从风速到机械转矩风力机输入的机械功率由贝兹理论给出P_m 0.5 * ρ * π * R² * v³ * C_p(λ, β)其中ρ是空气密度R是风轮半径v是来流风速C_p是风能利用系数。C_p不是常数它是叶尖速比λ和桨距角β的函数。叶尖速比定义为风轮叶尖线速度与风速之比λ ω_r * R / vω_r是风轮机械角速度。我做仿真时用的是一个工程上很常用的C_p拟合公式C_p 0.5176 * (116/λ_i - 0.4β - 5) * exp(-21/λ_i) 0.0068λ其中λ_i 1 / (1/(λ 0.08*β) - 0.035/(β³ 1))。在β0时C_p会在λ约8.1附近达到最大值典型值在0.48左右。这个峰值对应的就是最大风能捕获点MPPT就是一直在追这个点。风轮对发电机输出的机械转矩就是T_m P_m / ω_r。代入转速后你会发现在不考虑桨距角调节时最优转矩与转速的平方成正比也就是T_opt k_opt * ω_r²。这个关系在搭建机侧控制时会反复用到仿真里可以直接用查表法也可以用这个解析关系两者结果基本一致。2.2 PMSGdq旋转坐标系下的数学模型直驱风机用的永磁同步电机极对数多、转速低额定转速通常在十几转每分钟量级。仿真没必要去建三维电磁场模型用经典的d-q同步旋转坐标系模型就够准了。定子电压方程在发电机惯例下写成u_sd R_s * i_sd d(ψ_sd)/dt - ω_e * ψ_squ_sq R_s * i_sq d(ψ_sq)/dt ω_e * ψ_sd磁链方程为ψ_sd L_d * i_sd ψ_fψ_sq L_q * i_sq。这里ψ_f是永磁体磁链ω_e是电角速度与机械转速之间满足ω_e p * ω_rp是极对数。电磁转矩方程是T_e 1.5 * p * (ψ_sd * i_sq - ψ_sq * i_sd)在表贴式永磁电机里L_d和L_q差别不大而且控制上几乎都采用i_d0策略。一旦i_d保持为0电磁转矩就退化成T_e 1.5 * p * ψ_f * i_q线性关系控制起来非常干净。这也是为什么机侧变流器的电流内环可以简单做成两个PI调节器一个管d轴电流、一个管q轴电流而q轴电流参考值直接由功率/转矩环给。2.3 背靠背变流器与直流母线PMSG风机并网的结构是发电机先接机侧变流器MSCMachine Side Converter整流成直流经直流母线电容稳压后再通过网侧变流器GSCGrid Side Converter逆变成交流馈入电网。背靠背结构让两侧频率完全解耦机侧频率由转速决定网侧频率被电网钳制。直流母线电容在这里极其重要。虚拟惯量控制带来的功率突变最终体现为机侧输出功率的短时变化而两侧功率的差额会暂存在直流电容上。如果电容选小了功率快速变化时母线电压会出现明显尖峰选大了成本高、响应钝。仿真里一般按单极对容量配几百毫法到法拉级的等效电容后面参数表里会给一组可复现的数值。能量守恒简单写就是C_dc * u_dc * (du_dc/dt) P_m - P_gP_m是机侧送入直流母线的功率P_g是网侧送出的功率。运行中网侧变流器维持直流电压恒定所以虚拟惯量支路产生的额外功率最终由网侧逆变器输出到电网。建模时直流侧母线电压的波动就是P_m和P_g瞬时不等的直接反映调试时看这条曲线能很快判断控制器有没有跑偏。3. 虚拟惯量控制器设计公式、参数和整定思路明确一点虚拟惯量控制不是PMSG系统正常发电的必需品它是在频率异常时叠加在MPPT之上的“附加调节通道”。所以在设计控制器之前你得先想清楚这个附加支路什么时候激活、激活力度多大、什么时候退出。3.1 控制律拆解目前工程上主流的虚拟惯量控制可以写成功率参考增量ΔP_vir -K_df * (df/dt) - K_pf * (f - f_nom)这里f是并网点实测频率f_nom是额定频率50Hz。第一项与频率变化率成正比用来抵抗频率快速跌落趋势对应的是“虚拟惯量”第二项与频率偏差成正比对应的是“一次调频/下垂支撑”可以理解为虚拟下垂。为什么要两项都要只做微分项能延缓跌落速度但频率如果一直维持在偏低水平微分项会归零就没有持续功率输出了。只做比例项相当于下垂控制能支撑到稳态但对跌落初期的抑制能力有限。两者配合就既能在动态瞬间“踩一脚刹车”又能在稳态阶段持续给出支撑。在Simulink里实现时最关键的是符号。以发电机侧输出有功功率增大为正方向频率下跌时df/dt是负值那么-K_df*(df/dt)就是正值附加功率指令增加这个方向是对的。频率上升时同理附加功率为负防止转速超调。3.2 增益怎么取虚拟惯量控制最让人头大的就是K_df和K_pf取多大。取值太小没效果取值太大系统可能振荡。先说K_df的量级。传统同步机组的惯性时间常数H一般在4到8秒之间等效转动惯量反映到功率上就是当频率变化率为1标幺/秒时机组额外提供约2H倍的额定功率也就是8到16倍额定功率——这在物理上是不可能持续的输出只是转子的瞬时动能释放。折算到虚拟惯量控制中K_df一般取1到20之间的标幺值。想偏保守先取2左右跑一遍再逐步往上加。K_pf对应的是一次调频系数。电力系统里常用调差率比如2%到5%。以2%调差率算当频率偏差为1%0.5Hz时机组输出约50%额定功率。换算下来K_pf在20到50这个区间。实际并网标准通常不要求风机承担完整一次调频所以刚开始仿真取10到20足够观察现象。参数需要转换成标幺值计算。在Simulink里最简单的做法是频率f直接用工频标幺值f_pu f / 50功率P_pu参与计算。功率参考增量最后乘上额定功率S_base加在机侧有功参考上。单位匹配是新手最容易犯的错——我在初版模型里就吃过这个亏直接把以Hz为单位的频率微分量乘上功率增益结果附加功率指令放大了几十倍系统直接崩溃。3.3 滤波、限幅和复位逻辑纯微分在实际工程里是不可用的因为电网频率测量本身带噪声50Hz振荡和采样谐波都会被微分放大得吓人。Simulink的Derivative模块虽然能用但不建议直接裸奔。我习惯的做法是用一阶高通滤波或者用带滤波系数的实用微分模块。实际上Simulink的Derivative模块有内置滤波系数N可选典型取值20到100越小滤波效果越强、相位滞后越大。附加功率指令必须加限幅。虚拟惯量毕竟只在短时起作用超出风机变流器允许的过载能力反而引发保护动作。一般限幅设置在额定功率的10%到20%具体看变流器过载能力。最后是控制退出逻辑。虚拟惯量支路本质上是对MPPT最优点的暂时偏离当频率恢复平稳后要平滑撤出让功率参考回到MPPT计算值。直接阶跃撤出会造成二次冲击。仿真里可以在频率偏差小于死区阈值后让附加支路的积分环节缓慢衰减到零或者用一个低通滤波器平滑过渡。这一块很多教程不提但实际调试时特别重要。4. Simulink搭建实操一步一步把模型拼起来我默认你用的是Simulink 2021以后的版本带Simscape Electrical工具箱。如果只有基础Simulink而没有电气仿真库也可以简化处理用数学方程搭风力机用受控电压源或简单的dq等效回路代替实际变流器。但要做完整的PMSG并网仿真还是建议装Simscape Electrical省去大量建模的麻烦。4.1 顶层架构与子系统划分模型的顶层我认为分成四个子系统最清楚Wind Turbine输入风速和桨距角输出机械转矩。PMSG永磁同步电机本体既可以用Simscape Electrical里的预设模块也可以用符合方程的自建模型。MSC GSC Control机侧和网侧的控制逻辑。Grid PLL电网模型和锁相环。画子系统框图时注意信号流向。Wind Turbine算出来的机械转矩从机械端口进PMSGPMSG的电气端口接MSCMSC和GSC之间由直流母线连接GSC接变压器再接三相电压源。控制信号通过Goto/From标签跨子系统传递避免连线绕来绕去。4.2 风力机和发电机模块选择风力机我推荐用Simscape Electrical自带的Wind Turbine模块它内置了C_p曲线输入风速、转速输出机械转矩只需要填风轮半径、额定风速、最优叶尖速比等参数。自己用公式搭也可以一个Fcn模块就能算C_p再乘上转矩系数就行。自建的好处是你能随时改C_p拟合公式深入研究时更方便缺点是模型实际跑起来仿真速度略慢而且容易踩代数环的坑。PMSG模块直接选Permanent Magnet Synchronous Machine设置极对数、定子电阻、L_d、L_q和永磁磁链。需要特别留意的是Simscape电机模块有发电机惯例和电动机惯例两套端口方向机侧整流用发电机惯例电流方向别接反否则转矩和功率符号全反了。我第一次搭建时把电气端口的电流方向弄反最终电磁转矩表达式跟机械转矩符号一致结果风力机转速一路狂飙找了好久才发现是惯例问题。4.3 机侧控制器把虚拟惯量“塞进”功率参考机侧控制器的经典结构是外环功率环算q轴电流参考内环电流PI调节器输出d/q轴电压再经坐标反变换得到三相调制波。MPPT功率参考由最优转速或最优转矩查询得到。虚拟惯量支路就加在MPPT功率参考和电流环之间。具体操作步骤第一步把PLL测到的并网点频率信号送进一个一阶低通滤波滤波时间常数取0.02到0.05秒滤掉测量毛刺。第二步对这个滤波后的频率做微分。用Simulink的Derivative模块或者用传递函数模块s/(1s*T)搭一个实用微分T取0.01秒左右。第三步微分结果乘上-K_df频率偏差乘上-K_pf两者相加再送进饱和限幅模块限幅设为正负0.15标幺也就是额定功率的15%。第四步把附加功率增量加到MPPT功率参考上得到总功率参考P_ref。P_ref除以当前电角速度ω_e就得到q轴电流参考值i_q_ref。注意这里是用当前转速算不是用额定转速否则转矩指令和实际功率对不上。网侧变流器控制器稍微简单一些外环是直流电压控制内环是电流控制。d轴电流用来维持直流电压q轴电流负责无功功率仿真里可以让q轴无功参考为零保持单位功率因数。4.4 求解器设置与仿真步长这类含电力电子开关的模型我倾向于用连续变步长求解器加Simscape电气库求解器选ode23tb或ode15s。开关频率如果设成5kHz变步长求解器会在开关动作附近自动加密步长仿真速度虽然慢一点但数值稳定。关键仿真参数给一组实测能稳定跑的参考值风速额定值11.5 m/s风轮半径50 m空气密度1.225 kg/m³额定功率2 MW直流母线电压1100 V直流电容20 mF定子电阻R_s0.003 pud轴电感L_d和q轴电感L_q0.3 pu和0.3 pu永磁磁链按发电机额定电压折算MPPT最优叶尖速比8.1桨距角0°。仿真时长设10秒相对误差1e-4。如果发现波形在高频开关点附近出现毛刺先检查的是电流环PI参数其次才是求解器。把电流内环PI的带宽设置得远低于开关频率一般取开关频率的十分之一左右就不会有振荡。5. 仿真实验怎么设计扰动、对比与波形判读模型搭完能稳态运行只是完成了第一步。虚拟惯量控制有没有效果必须用扰动实验说话。设计实验时最怕只做单一场景因为频率跌落速度和深度不同控制器表现差异很大。5.1 两个必做的实验场景场景一是频率阶跃扰动。在并网点三相电压源的幅值和相位不变的前提下把频率从50Hz直接跳变到49.8Hz持续1秒后再跳回。这个场景简单粗暴主要用来验证虚拟惯量支路的符号对不对、响应快不快。实际电网频率不会阶跃但它能在仿真里暴露控制方向错误和限幅问题作为初跑测试非常合适。场景二是频率斜坡扰动。更贴近真实的是频率连续以一定速率下降比如从50Hz开始在1秒内线性降到49.5Hz然后维持住。这个场景能清晰对比有无虚拟惯量时频率变化率的不同因为虚拟惯量支路的核心就是抵抗df/dt。有条件的话再加一个风速变化的场景在频率扰动的同时风速从11.5 m/s降到9 m/s。这个场景可以考察MPPT和虚拟惯量支路共同作用时会不会抢控制权。虚拟惯量附加功率方向是正的要增大出力MPPT因为风速降低要减功率两者会互相拉扯。控制器线性叠加没问题但限幅和退出的平滑性会在这个场景下暴露问题。5.2 波形怎么判读仿真结束后重点看四组波形第一组是并网点频率。观察有无虚拟惯量时频率最低点的深度和到达时间。有虚拟惯量时最低点会更高、更低点到来得更晚。第二组是风机输出有功功率。看频率跌落瞬间功率是否出现向上冲击冲击幅值是否在限幅范围内。正常情况是功率先快速抬升然后回落到一个比额定稍高的稳态值这个稳态值对应K_pf的支撑分量。第三组是机侧转速。虚拟惯量起作用时转速会短时下降因为功率增加、电磁转矩增大把转子动能“抽”走了一些。等频率恢复后转速在MPPT环节的驱动下重新爬回最优值。如果转速从头到尾没变化说明虚拟惯量支路根本没接入功率环。第四组是直流母线电压。电压波动大说明两侧功率不平衡严重要么直流电容太小要么附加功率变化太陡。正常情况下母线电压波动控制在正负2%以内。用对比实验时我习惯在同一模型里加一个Manual Switch一键切换“无虚拟惯量”和“有虚拟惯量”两条支路两次仿真用相同的随机扰动这样不仅结果可对比还能反复验证参数。切切记两点切换前先让系统在50Hz稳态跑1秒以上其他条件保持一致。5.3 虚拟惯量支路加多少功率才算合适从一个具体算例直观理解。系统频率跌落速率如果是0.5Hz/s这个频率变化率就是1%标幺每秒。假设K_df取5那么附加功率增量就是5%额定功率也就是0.1MW。对一台2MW的风机来说这个幅度是明显能看到的。K_pf的效果呢频率偏差0.2Hz即0.4%标幺K_pf取15时附加功率为6%额定功率。两者加起来11%额定功率确实超过了限幅的10%设定所以限幅会先截住一部分。这个设计就是合理的——保证短时支撑足够强又不会让变流器过载。我把参数取K_df5、K_pf15、滤液时间常数0.02秒的结果记录过频率最低点比不控制时抬高约0.12Hz最低点延迟约0.2秒出现功率冲击峰值约10%额定功率转速最低跌到额定值的94%左右恢复时间大概3秒。这套响应曲线拿去和同步机惯性响应对比形态上已经有七八分像了。6. 调参过程中踩过的坑从波形异常反推模型问题这一节是真正希望你们少走弯路的经验总结。虚拟惯量控制本身不算复杂但仿真里会把各种问题放大我几乎每跑一轮新场景都会遇到新问题。第一个坑微分模块噪声大得离谱。仿真频率测量信号哪怕只有千分之一的噪声微分之后都可能放大成比额定功率还大的毛刺叠加到功率参考上电机转矩瞬间乱跳。解决办法有两个要么在微分前加一个一阶低通滤波滤波时间常数取0.02到0.05秒要么直接用Simulink的实用微分模块并设置合适的滤波系数NN取20左右时噪声基本能压住。注意滤波时间常数不能太大它会给频率响应引入额外滞后虚拟惯量支路本该“快”的结果被拖慢了。第二个坑代数环。功率参考除以转速时如果转速信号来源存在代数回路Simulink会报“Algebraic loop detected”甚至直接给出错误的运行结果。我的做法是给转速信号过一个Memory模块或者单位延迟打破直接的前馈回路。仿真里引入一个仿真步长的延迟产生的影响可以忽略。第三个坑初始条件不一致。很多人的模型一启动就飞是因为风力机转速初始值和风速对应的最优转速差距太大。MPPT控制直接给一个大功率参考转速瞬间飙升。我习惯的做法是先让风速恒定把转速初始化在最优值附近例如风速11.5m/s时转速初始化为1.86rad/s左右然后让系统先空载建压、再接负载。建压阶段同时检查直流母线电压是否稳定在1100V。第四个坑网格频率测量点选错。虚拟惯量支路的频率信号是并网点频率不是PMSG电机的电频率。有人图方便直接量机侧电频率结果风速一变机侧频率自己就变虚拟惯量支路错误触发功率波形一团糟。机侧信号的频率是转速决定的跟电网频率无关这个搞混了一定要回头检查信号源头。第五个坑限幅值设置不合适。限幅太宽变流器过载保护触发限幅太窄虚拟惯量作用被完全限死波形上看不出效果。我建议先跑一次不限幅的仿真观察附加功率指令的最大值再按这个值的1.2倍左右去设置限幅。如果没有不限幅条件用2MW机组的默认值正负0.15pu起步绝大多数场景都够用。最后再分享一个通用小技巧。如果你在调参过程中发现某组参数下系统振荡不要急着把所有增益都往下调。先用频谱工具看振荡频率振荡频率在几赫兹以上一般和电流环增益太强有关几赫兹以下往往是直流电压环或MPPT外环的问题再针对性地调整对应PI参数。这个方法比盲目试探快得多每当我从控制结构回到数学本质去看振荡来源定位都准很多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑