浮式海上风力机系统的超螺旋二阶滑模观测最大功率点跟踪【附代码】
✅博主简介擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导毕业论文、期刊论文经验交流。✅ 如需沟通交流扫描文章底部二维码。1自适应超螺旋扩张状态观测器风速估计为取消对风速传感器的依赖构建基于超螺旋算法的扩张状态观测器实时估计风力机气动转矩进而通过转矩-风速映射关系推算有效风速。观测器通过测量风轮转速和发电机转矩输出在超螺旋项中引入自适应增益增益基于等效输出注入信号的幅值动态调整当海况变化导致系统不确定性增大时自动增大增益以提高观测带宽。在 FAST-MATLAB 联合仿真中该观测器在湍流风、台风浪联合激励下估计的气动转矩误差 RMSE 小于 3.5%风速估计误差均值 0.15 m/s且无需预先精确已知气动参数表仅依赖于 Cp-λ 参考曲线鲁棒性大幅提升。自适应机制使增益在平静海况自动降低以减小噪声放大在恶劣海况自动升高至原基础值的 2.3 倍以确保跟随速度。2快速超螺旋滑模转矩控制器与功率波动抑制低风速区采用快速超螺旋滑模控制实现最大功率点跟踪。控制器在传统超螺旋算法中引入线性矫正项以处理浮式平台运动带来的线性增长扰动使滑模变量能够在有限时间内收敛至零。控制律为发电机转矩指令 T_g K_t·s^(1/2)·sign(s) K_1·s ∫[K_2·sign(s)] dt其中 sω_r−ω_opt 为滑模面。通过 Lyapunov 分析证明有限时间收敛并给出保守增益选择准则。仿真表明与常规 PI 控制相比功率波动标准差减小 28%塔架前后振动载荷 DEL 降低 17%即使在 14 m/s 以上湍流强度下仍能保持良好性能。3高风速区快速二阶滑模桨距复合控制降载当风速超过额定风速风机切换至变桨控制以保持功率恒定。提出基于超螺旋扩张状态观测器的快速二阶滑模桨距控制器观测器实时估计平台运动、风波动等集总扰动并前馈补偿控制器部分采用快速二阶滑模算法滑模变量设计为发电机转速偏差和功率偏差的线性组合。联合桨距角变化率限幅 8 deg/s 和位置限幅 0–90 deg 进行实际约束。仿真工况为额定风速 11.4 m/s 以上的湍流风叠加波浪载荷结果表明发电机功率波动幅值较传统 PI 降低 36%塔架底部弯矩疲劳载荷等效值减小 22%叶片面外弯矩降低 19%浮式平台纵摇和垂荡运动减小 10% 左右验证了复合控制方案在极限海况下的降载与稳定功率输出效果。import numpy as np from scipy.integrate import solve_ivp class ASTW_Observer: def __init__(self, K_base100, beta0.1): self.K K_base; self.K_hat K_base self.e_sum 0.0 def observe(self, omega_r, T_gen, J_rot, dt): # 超螺旋扩张状态观测器 e omega_r - self.omega_hat # 自适应增益 self.K_hat self.K 0.5 * abs(e) # 超螺旋项 z1 self.K_hat * np.sqrt(abs(e)) * np.sign(e) self.e_sum self.e_sum 0.3 * self.K_hat * np.sign(e) * dt # 气动转矩估计 T_aero_hat J_rot * z1 - T_gen self.omega_hat dt * (T_aero_hat - T_gen)/J_rot return T_aero_hat, self.omega_hat class Fast_SuperTwist_TorqueControl: def __init__(self, Kt50, K120, K210): self.KtKt; self.K1K1; self.K2K2; self.integral0 def control(self, omega_r, omega_opt): s omega_r - omega_opt T_gen self.Kt * np.sqrt(abs(s)) * np.sign(s) self.K1 * s self.integral self.integral self.K2 * np.sign(s) * 0.01 # 积分项 return T_gen class PitchController: def __init__(self, lambda10.5, lambda20.3): self.lambda1lambda1; self.lambda2lambda2 def control(self, omega, P, omega_ref, P_ref, disturbance_est): s self.lambda1*(omega-omega_ref) self.lambda2*(P-P_ref) # 快速二阶滑模控制律 扰动前馈 pitch_rate -1.0 * np.sign(s) - 0.5*s disturbance_est * 0.02 return pitch_rate # FAST-Matlab联合仿真接口模拟 def FAST_simulation(T_gen, pitch_angle): # 返回转速、功率、载荷等 return 12.0, 5.0e6, 1.2e6 # 示例 if __name__ __main__: observer ASTW_Observer() omega_hat 8.0 for t in range(1000): T_aero, omega_hat observer.observe(10.5, 3e6, 4e6, 0.01) print(观测转矩:, T_aero) controller Fast_SuperTwist_TorqueControl() T_cmd controller.control(10.2, 9.8) print(转矩指令:, T_cmd) pitch_ctrl PitchController() pitch_rate pitch_ctrl.control(12.5, 5.2e6, 12.1, 5e6, disturbance_est0.1) print(变桨速率:, pitch_rate)如有问题可以直接沟通