Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
查看: 136|回复: 0

风电系统变桨控制算法:从气动原理到增益调度PI与MBD验证

[复制链接]

132

主题

314

帖子

5372

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
5372
QQ
发表于 2026-9-12 20:12:13 | 显示全部楼层 |阅读模式
风电系统变桨控制算法:从气动原理到增益调度PI与MBD验证

风速升高时,风机为什么要转动叶片,而不是一直保持最大捕风角度?变桨控制和发电机转矩控制如何分工?在 Simulink 里搭一个 PI,为什么遇到阵风、执行器限速或额定区切换后,转速还是容易振荡?

本文以三叶片、变速、变桨距、向顺桨方向调节的风力发电机组为对象,介绍一套便于理解和建模的控制结构。重点是正常发电工况下的统一变桨(CPC);最后补充独立变桨(IPC)及 MBD 验证。两张图均为根据本文信号约定绘制的原理示意图,不是实机接线图或已经验证的 Simulink 模型截图。

一、变桨改变的是什么?先看气动功率与转速方程

风轮从气流中获得的机械功率可写为:


  1. Pa = 0.5 * rho * A * v^3 * Cp(lambda, beta)
  2. lambda = omega_r * R / v
  3. Ta = Pa / omega_r
  4. Jeq * d(omega_r)/dt = Ta - Tg,r
复制代码


其中,rho 是空气密度,A = pi*R^2 是风轮扫掠面积,v 是风轮有效来流风速,lambda 是叶尖速比,beta 是桨距角,Cp 是风能利用系数;omega_r 为低速轴转速,Ta 为气动转矩,Tg,r 为折算到低速轴侧的发电机阻转矩。最后一个式子暂时忽略传动链柔性和损耗,用于解释主导关系。Ta = Pa/omega_r 只适用于非零转速;启动和接近停转时,应采用转矩系数或相应气动模型,不能直接除以零。

本文约定 beta 增大表示向顺桨方向转动。在额定以上正常工作区,增大 beta 通常降低攻角和气动转矩;如果输入的气动转矩大于发电机阻转矩,风轮就加速,因此需要适当增桨,让两者重新接近平衡。

需要区分:桨距角、局部攻角和来流角不是同一个角度。攻角还受到叶片扭角、局部流速和诱导速度影响,不能把“beta 增大时 Cp 一定下降”推广到整张气动特性曲面。

二、不同运行区域,转矩与变桨的任务不同

1. 额定以下的最优捕风区:通常让叶片处于高效率的小桨距角附近,发电机转矩负责追踪合适的叶尖速比。经典方案在适用区采用 Tg = Kopt*omega_g^2;Kopt 必须与转速侧、齿轮比、效率和单位一致。最低转速限制、降额运行或特殊桨距调度会改变这一简单关系。

2. 额定附近的过渡区:转矩控制逐步退出最优捕风逻辑,变桨控制开始稳定转速。两套控制器要协调参考值、限值和积分状态,并设置合适的滞环或平滑过渡,避免反复切换。

3. 额定以上的正常发电区:变桨闭环主要稳定额定转速,转矩控制按机组设计采用近似恒转矩或恒功率策略。稳转速不等于瞬时电功率严格恒定,功率表现还取决于转矩策略和电气侧动态。[1]

4. 启停、切出和故障工况:由上层状态机与保护逻辑接管,执行顺桨、卸载及制动协调。实际切出策略可能带高风速降额和滞环,不应仅以一个风速比较器替代完整过程。


图1 统一变桨转速闭环。超速时误差为正,正增益PI增加桨距角,通过降低气动转矩抑制继续加速。


三、增益调度PI:先统一符号,再讨论参数

图1采用低速轴转速,定义:


  1. e[k] = omega_r,f[k] - omega_ref[k]
  2. Kp[k] = Lookup_Kp(beta_f[k])
  3. Ki[k] = Lookup_Ki(beta_f[k])
  4. u[k] = beta0[k] + Kp[k]*e[k] + xI[k]
复制代码


omega_r,f 是滤波转速;beta_f 可取三叶片实测桨距均值经低通滤波后的值;beta0 是可选偏置或前馈,基础 PI 可设为零;xI 是积分项对桨距角的贡献。按这个误差定义,额定以上正常变桨区通常使用正 Kp、Ki。若采用“参考值减实际值”,控制器符号也要相应调整。不能把别人的 PI 参数和自己的误差定义直接拼在一起。

为什么做增益调度?因为气动转矩对桨距角的灵敏度会随工作点改变。可以在多个稳态点附近建立低阶模型,再为各点设计增益,并用滤波桨距角查表插值。ROSCO 公开论文展示了从气动特性求取增益表、再按滤波桨距角插值的方案。[1] 增益表应约束有效范围,不能在气动灵敏度接近零时直接取倒数放大。

下面给出一个便于检查符号的简化推导。在局部工作点,将转矩策略也计入等效模型,令:


  1. delta_omega_dot = a*delta_omega + b*delta_beta
  2. b < 0
  3. delta_beta = Kp*delta_omega + xI
  4. xI_dot = Ki*delta_omega

  5. closed_loop: s^2 - (a+b*Kp)*s - b*Ki = 0
  6. target:      s^2 + 2*zeta*wn*s + wn^2 = 0

  7. Kp = (-2*zeta*wn - a) / b
  8. Ki = -wn^2 / b
复制代码


这给出了初始整定思路,而不是实机最终参数。该推导假设固定参考值,忽略滤波、执行器、时延及结构模态;实际还要检查稳定裕度、载荷和执行器动作量。尤其恒功率转矩随转速变化,不能仍按恒转矩假设计算 a。

所有计算必须统一单位。例如内部可用 rad、rad/s、N·m;界面显示再转换为 deg、rpm。若输入换成发电机转速,增益也要按齿轮比换算。更快的闭环不一定更好,塔架、传动链及叶片模态可能被激励。

四、真正容易出问题的地方:幅值、速率与积分饱和

变桨机构有最大角度、最大变桨速率、伺服带宽和通信延迟。阵风时,PI 可能要求快速增桨,但机构已经到达速率上限,转速误差仍持续存在;如果积分继续累加,风速回落后就容易出现桨距回不来、功率下陷或长时间恢复。

一种可离散实现的方案是:先得到 PI 原始输出 u,再限幅为 a,随后限速得到实际下发指令 r,并把 r-u 回算到积分器:


  1. a[k] = clip(u[k], beta_min, beta_max)
  2. r[k] = r[k-1] + clip(a[k]-r[k-1], -rdown*Ts, rup*Ts)
  3. xI[k+1] = xI[k] + Ts*(Ki[k]*e[k] + Kaw*(r[k]-u[k]))
  4. beta_cmd[k] = r[k]
复制代码


Ts 为控制周期,rup、rdown 为正值,分别表示增桨与减桨的速率上限,clip 表示截断到上下限,Kaw 是回算增益,其单位为 1/s。固定限值且 r 初值有效时,上述串联约束可同时满足角度和速率要求。若运行模式改变导致角度限值突然收紧,两种约束可能暂时冲突,必须明确仲裁优先级和状态重置策略。

这里使用限速后的指令回算,所以能够反映指令的幅值饱和与速率饱和;它并没有自动处理实际执行器的所有跟踪误差。执行器仍需单独建模并诊断卡滞、欠压、通信超时和桨距偏差。若进一步引入实测桨距跟踪,要考虑传感器噪声与伺服滞后,重新验证闭环。


图2 离散PI与回算抗积分饱和。先用当前积分状态计算本拍指令,再更新下一拍积分状态,避免无意形成代数环。


还有两个容易遗漏的细节:

1. 积分状态的保存方式:直接保存 xI,即积分项的角度贡献,再每拍累加 Ki[k]*e[k]*Ts。若保存原始误差积分、随后乘以不断变化的 Ki,增益切换时会把整个历史积分重新缩放,可能造成输出跳变。

2. 模式切换的无扰接管:进入变桨闭环时,可按 xI = beta_track - beta0 - Kp*e 初始化,并让限速器状态与当前接管指令一致;退出时采用跟踪、保持或复位,应由状态机明确规定。Kaw 和 Ts 也要联合整定,不能把“回算更快”直接当成“控制更稳”。

五、统一变桨与独立变桨解决的是不同问题

CPC 为三片叶片提供共同基准角,主要调节整体气动功率和转速。风切变、塔影、偏航误差等会造成随方位角变化的叶片载荷,此时可以在统一变桨上叠加 IPC 修正量:


  1. beta_i_cmd = beta_CPC + delta_beta_i_IPC
复制代码


一种常见思路是采集三叶片根部弯矩,结合方位角做 Coleman/MBC 坐标变换,在固定坐标系处理倾覆与偏航方向的载荷分量,再逆变换得到各叶片修正量。所需控制符号、相位补偿和谐波阶次取决于传感器方向、方位角约定及目标载荷,不能只加三路相差120度的正弦量就认为完成了 IPC。

叠加后的每片叶片指令都要重新检查角度、速率和执行器裕量。高风速时统一变桨已经接近约束,IPC 可能需要缩放或退出,否则单叶片削顶会破坏原来的减载效果。评价 IPC 还应看疲劳载荷与执行器动作量,而不只看转速曲线。

六、在Simulink里怎样组织一个可验证的模型?

建议划分为六个职责明确的部分:

1. 输入处理:转速单位换算、桨距与功率采集、有效性判断、滤波、时间戳检查。
2. 运行状态机:待机、启动、正常发电、降额、正常停机、故障停机及允许恢复条件。
3. 正常控制:转矩策略、参考值协调、增益调度PI、可选前馈与IPC。
4. 指令仲裁与约束:优先级、角度/速率限制、抗积分饱和、模式接管和输出使能。
5. 变桨执行器:位置伺服动态、时延、速率能力、各叶片差异及故障注入。
6. 整机对象:有效风场、气动、传动链、塔架和必要的叶片结构模态。

初期可用 Cp/Cq 查表与低阶传动链模型核对方向和单位;后续引入 OpenFAST 等气动弹性模型检查柔性和载荷影响,其 ServoDyn 提供控制与执行器相关建模接口。[3] 若仿真对象直接接受理想桨距指令,应确认没有漏掉执行器动态。浮式风机还存在平台纵摇与变桨控制的耦合,需单独验证平台稳定性,不能直接照搬固定式机组的带宽。

所有关键量应进入数据字典或统一参数集:额定转速、桨距限值、速率限值、增益表、滤波参数、回算增益、故障阈值及采样周期。多速率模型要明确 Rate Transition 引入的延迟;保护检测与普通控制滤波也应有各自的响应要求。

七、MIL、SIL和HIL至少验证哪些工况?

1. 稳态与缓变风:检查额定以下捕风、额定附近切换、额定以上转速和功率,不出现积分漂移或长期约束饱和。
2. 阵风与湍流:检查最大转速、功率波动、桨距变化率、结构载荷及扰动后的恢复;与基线使用相同风场和湍流种子。
3. 执行器达到极限:主动限制速率、增加延迟,检查回算是否生效,解除限制后积分状态是否合理。
4. 传感器与通信异常:注入转速噪声、冻结值、丢帧和桨距偏差,观察诊断、降额或停机动作。
5. 模式与电气事件:覆盖启动、正常停机、故障顺桨、降额切换和发电机转矩突降,检查接管时的指令连续性与优先级。
6. 代码与实时执行:SIL 对比模型和生成代码的输出及内部状态;HIL 检查真实周期、抖动、通信延迟、量化和I/O行为。

建议同时记录转速峰值/RMS误差、功率偏差、最大桨距速率、总变桨行程、饱和持续时间和关键载荷。开展减载比较时,疲劳等效载荷 DEL 的材料斜率、等效循环数和统计时长必须一致;单次阶跃响应不能代替疲劳验证。合格阈值应来自机组需求与执行器规格,本文不把教学示例参数作为实机标定值。

八、工程上怎么选择算法?

基础方案可从增益调度PI做起,先把工作区协调、执行器约束和状态管理做完整。风速估计或激光雷达前馈可用于提前响应来流变化,但需要处理预览时间和测量可靠性;MPC 可以显式处理预测模型与约束,但还要评估模型误差、在线计算时间和求解失败时的回退行为;IPC 则重点服务于不对称与周期载荷控制。

对于 MBD 工程师,一套变桨算法的交付应能解释:为什么超速后向这个方向调桨、增益从哪里来、执行器跟不上时积分怎么办、模式切换由谁接管,以及这些行为如何由同一套需求和测试证据验证。

参考资料

[1] Abbas 等,A reference open-source controller for fixed and floating offshore wind turbines,Wind Energy Science,2022。参见运行区域、统一变桨及额定区协调部分。
[2] ROSCO Toolbox 官方文档。用于继续查阅控制器参数、调参配置和可选功能。
[3] OpenFAST ServoDyn 官方用户指南。用于继续核对控制接口与仿真对象配置。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyowinners
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-10-15 21:55 , Processed in 0.105329 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表